!(function(){var qle=Object.defineProperty,_le=Object.defineProperties;var $le=Object.getOwnPropertyDescriptors;var WL=Object.getOwnPropertySymbols,eue=Object.getPrototypeOf,tue=Object.prototype.hasOwnProperty,nue=Object.prototype.propertyIsEnumerable,rue=Reflect.get;var i5=Math.pow,QL=(Tt,zn,Me)=>zn in Tt?qle(Tt,zn,{enumerable:!0,configurable:!0,writable:!0,value:Me}):Tt[zn]=Me,Dl=(Tt,zn)=>{for(var Me in zn||(zn={}))tue.call(zn,Me)&&QL(Tt,Me,zn[Me]);if(WL)for(var Me of WL(zn))nue.call(zn,Me)&&QL(Tt,Me,zn[Me]);return Tt},ym=(Tt,zn)=>_le(Tt,$le(zn));var ZL=(Tt,zn,Me)=>rue(eue(Tt),Me,zn);var Fs=(Tt,zn,Me)=>new Promise((fe,st)=>{var rt=at=>{try{$e(Me.next(at))}catch(lt){st(lt)}},nt=at=>{try{$e(Me.throw(at))}catch(lt){st(lt)}},$e=at=>at.done?fe(at.value):Promise.resolve(at.value).then(rt,nt);$e((Me=Me.apply(Tt,zn)).next())});(self.webpackChunk=self.webpackChunk||[]).push([[8823],{66543:function(){"use strict"},59598:function(){"use strict"},21697:function(Tt,zn){"use strict";zn.Z={lists:"lists___xhHyq",item:"item___pWJAA",children:"children___sDG61",diamond:"diamond___FwgzD",button:"button___WPN6r",mathWrap:"mathWrap___FmnMJ",mathFillWrap:"mathFillWrap___PmY3H"}},69063:function(Tt,zn){"use strict";zn.Z={flex_box_center:"flex_box_center___IBr6x",flex_space_between:"flex_space_between___n2Iz0",flex_box_vertical_center:"flex_box_vertical_center___1umwO",flex_box_center_end:"flex_box_center_end___SRZYb",flex_box_column:"flex_box_column___b90Da",form:"form___V3fAH",title_icon:"title_icon____uDZy",title:"title___RxKwK",content:"content___vFT5m",pubColSty:"pubColSty___dfLkL",selectSty:"selectSty____Wuek",borderSty:"borderSty___EuFYV",delSty:"delSty___AdEeI",delBorder:"delBorder___vcTJc",copHover:"copHover___JVVXI",multiple_select:"multiple_select___ZMPhl",work_checkbox_group:"work_checkbox_group___sGLxY",disabled_link:"disabled_link___usmze"}},37992:function(Tt,zn){"use strict";zn.Z={flex_box_center:"flex_box_center___vhwFp",flex_space_between:"flex_space_between___rbHwE",flex_box_vertical_center:"flex_box_vertical_center___AF_yr",flex_box_center_end:"flex_box_center_end___FqGSd",flex_box_column:"flex_box_column___ujWr7",failedList:"failedList___KGsCg",name:"name___bbsWC",publish:"publish___mai8J",modal:"modal___t6wU6"}},11081:function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(){if(typeof window.GGBApplet=="function"){console.warn("deployggb.js was loaded twice");return}var isRenderGGBElementEnabled=!1,scriptLoadStarted=!1,html5AppletsToProcess=null,ggbHTML5LoadedCodebaseIsWebSimple=!1,ggbHTML5LoadedCodebaseVersion=null,ggbHTML5LoadedScript=null,GGBApplet=function(){"use strict";for(var Tt={},zn="5.0",Me={},fe=null,st=!1,rt=!1,nt=null,$e=!1,at=null,lt=null,it=0;it4?parseFloat($t):5};Tt.setHTML5Codebase=function($t,Jt){lt=$t,er($t,Jt)},Tt.setJavaCodebase=Tt.setJavaCodebaseVersion=Tt.isCompiledInstalled=Tt.setPreCompiledScriptPath=Tt.setPreCompiledResourcePath=function(){},Tt.setHTML5CodebaseVersion=function($t,Jt){var hn=parseFloat($t);if(hn!==NaN&&hn<5){console.log("The GeoGebra HTML5 codebase version "+hn+" is deprecated. Using version latest instead.");return}at=$t,qe($t,Jt)},Tt.getHTML5CodebaseVersion=function(){return St},Tt.getParameters=function(){return Me},Tt.setFontsCSSURL=function($t){Ot=$t},Tt.setGiacJSURL=function($t){},Tt.setJNLPFile=function($t){He=$t},Tt.setJNLPBaseDir=function($t){},Tt.inject=function(){function $t(){return window.frameElement&&window.frameElement.getAttribute("data-singleton")}for(var Jt="auto",hn=Me.id,_n,xn=!1,Yt=0;Yt=5)return!0;var $t=Tt.getAppletObject();return $t&&typeof $t.recalculateEnvironments=="function"?($t.recalculateEnvironments(),!0):!1},Tt.startAnimation=function(){var $t=Tt.getAppletObject();return $t&&typeof $t.startAnimation=="function"?($t.startAnimation(),!0):!1},Tt.stopAnimation=function(){var $t=Tt.getAppletObject();return $t&&typeof $t.stopAnimation=="function"?($t.stopAnimation(),!0):!1},Tt.getAppletObject=function(){var $t=Me.id!==void 0?Me.id:"ggbApplet";return window[$t]},Tt.resize=function(){};var Cn=function($t,Jt,hn){var _n=document.createElement("param");_n.setAttribute("name",Jt),_n.setAttribute("value",hn),$t.appendChild(_n)},Qt=function($t){return $t&&$t!=="false"},sn=function($t,Jt,hn){jn(St)<=4.2&&(hn=!0);var _n=!isRenderGGBElementEnabled&&!scriptLoadStarted;(!isRenderGGBElementEnabled&&!scriptLoadStarted||ggbHTML5LoadedCodebaseVersion!==St||ggbHTML5LoadedCodebaseIsWebSimple&&!gt)&&(_n=!0,isRenderGGBElementEnabled=!1,scriptLoadStarted=!1);var xn=document.createElement("div");xn.classList.add("appletParameters","notranslate");var Yt=Jt.width,Fn=Jt.height;if(Jt.disableAutoScale=Jt.disableAutoScale===void 0?GGBAppletUtils.isFlexibleWorksheetEditor():Jt.disableAutoScale,Jt.width!==void 0)if(jn(St)<=4.4)Qt(Jt.showToolBar)&&(Jt.height-=7),Qt(Jt.showAlgebraInput)&&(Jt.height-=37),Jt.width<605&&Qt(Jt.showToolBar)&&(Jt.width=605,Yt=605);else{var qr=100;(Qt(Jt.showToolBar)||Qt(Jt.showMenuBar))&&(Jt.hasOwnProperty("customToolBar")&&(Jt.customToolbar=Jt.customToolBar),qr=Qt(Jt.showMenuBar)?245:155),Yt=5?(Jt.appletOnLoad=function(Ra){var ws=$t.querySelector(".ggb_preview");ws&&ws.parentNode.removeChild(ws),window.GGBT_spinner&&window.GGBT_spinner.removeSpinner(Pe),window.GGBT_wsf_view&&$(window).trigger("resize"),We(Ra)},we||Pe.appendChild(je)):xn.appendChild(je),Pe.appendChild(xn),we||$t.appendChild(Pe),setTimeout(function(){Tt.resize()},1)}else{var Ke=document.createElement("div");Ke.className="applet_scaler",Ke.style.position="relative",Ke.style.display="block",Ke.appendChild(xn),$t.appendChild(Ke),Jt.appletOnLoad=function(Ra){Tt.resize(),We(Ra)}}function Te(Ra,ws){ws&&typeof ws.appletOnLoad=="function"&&typeof renderGGBElement=="function"?renderGGBElement(Ra,ws.appletOnLoad):renderGGBElement(Ra),yi("GeoGebra HTML5 applet injected and rendered with previously loaded codebase.",ws)}function fn(Ra,ws){typeof renderGGBElement=="undefined"?(html5AppletsToProcess===null&&(html5AppletsToProcess=[]),html5AppletsToProcess.push({article:Ra,params:ws}),window.renderGGBElementReady=function(){isRenderGGBElementEnabled=!0,html5AppletsToProcess!==null&&html5AppletsToProcess.length&&(html5AppletsToProcess.forEach(function(qo){Te(qo.article,qo.params)}),html5AppletsToProcess=null)},jn(St)<5&&(Ra.className+=" geogebraweb")):Te(Ra,ws)}if(_n){scriptLoadStarted=!0;for(var Wn=0;Wn0?(ts.remove(),Pe.attr("id","fullscreencontent").show(),jQuery(We).append(Pe),window.dispatchEvent(new Event("resize"))):sn(ts,Jt,!1),window.GGBT_wsf_view.launchFullScreen(We)}else Nt=_n,sn($t,Jt,!1);if(!window.GGBT_wsf_view)for(Fn=0;Fn$t/4*3&&(ts=$t/4*3),We=ts/5.8,qr.setAttribute("src",Ft),qr.setAttribute("width",ts),qr.setAttribute("height",We);var Pe=($t-ts)/2,we=(Jt-We)/2;qr.style.left=Pe+"px",qr.style.top=we+"px",xn.appendChild(qr)}}return xn.appendChild(Fn),xn},Rr=function($t){return $t=$t.toLowerCase(),$t==="html5"||$t==="screenshot"?$t:"html5"},mt=["web","webSimple","web3d","tablet","tablet3d","phone"],qe=function($t,Jt){if(St=$t,Jt){er(St,!0);return}var hn=!st;if(hn){var _n=jn(St);!isNaN(_n)&&_n<4.4&&(hn=!1)}var xn,Yt;window.location.protocol.substr(0,4)==="http"?xn=window.location.protocol:xn="http:";var Fn=St.indexOf("//");Fn>0?Yt=St:Fn===0?Yt=xn+St:Yt="https://www.geogebra.org/apps/5.2.814.0/";for(var qr in mt)if(St.slice(mt[qr].length*-1)===mt[qr]||St.slice((mt[qr].length+1)*-1)===mt[qr]+"/"){er(Yt,!1);return}!GGBAppletUtils.isFlexibleWorksheetEditor()&&hn&&!fe.is3D&&!fe.AV&&!fe.SV&&!fe.CV&&!fe.EV2&&!fe.CP&&!fe.PC&&!fe.DA&&!fe.FI&&!fe.PV&&!Qt(Me.showToolBar)&&!Qt(Me.showMenuBar)&&!Qt(Me.showAlgebraInput)&&!Qt(Me.enableRightClick)&&(!Me.appName||Me.appName=="classic")?Yt+="webSimple/":Yt+="web3d/",er(Yt,!1)},er=function($t,Jt){if($t.requirejs){ct=$t;return}$t.slice(-1)!=="/"&&($t+="/"),ct=$t,Jt===null&&(Jt=$t.indexOf("http")===-1),Mt=Jt,xt="web.nocache.js",gt=!1;var hn=ct.split("/");hn.length>1&&(!Jt&&hn[hn.length-2]==="webSimple"?(xt="webSimple.nocache.js",gt=!0):mt.indexOf(hn[hn.length-2])>=0&&(xt=hn[hn.length-2]+".nocache.js")),hn=$t.split("/"),St=hn[hn.length-3],St.substr(0,4)==="test"?St=St.substr(4,1)+"."+St.substr(5,1):(St.substr(0,3)==="war"||St.substr(0,4)==="beta")&&(St="5.0");var _n=parseFloat(St);_n!==NaN&&_n<5&&$t.indexOf("geogebra.org")>=0&&(console.log("The GeoGebra HTML5 codebase version "+_n+" is deprecated. Using version latest instead."),qe("5.0",Jt))},yi=function($t,Jt){window.console&&window.console.log&&(!Jt||typeof Jt.showLogging=="undefined"||Jt.showLogging&&Jt.showLogging!=="false")&&console.log($t)};Me.material_id!==void 0?ir(pi):pi();function pi(){var $t=zn;at!==null?$t=at:parseFloat($t)<5&&($t="5.0"),qe($t,!1),lt!==null&&er(lt,Mt),$e=!0}return Tt},GGBAppletUtils=function(){"use strict";function Tt(){return window.GGBT_wsf_edit!==void 0}function zn($e,at){at!=1?($e.style.transformOrigin="0% 0% 0px",$e.style.webkitTransformOrigin="0% 0% 0px",$e.style.transform="scale("+at+","+at+")",$e.style.webkitTransform="scale("+at+","+at+")",$e.style.maxWidth="initial",$e.querySelector(".ggb_preview")!==null&&($e.querySelector(".ggb_preview").style.maxWidth="initial"),$e.querySelectorAll(".ggb_preview img")[0]!==void 0&&($e.querySelectorAll(".ggb_preview img")[0].style.maxWidth="initial"),$e.querySelectorAll(".ggb_preview img")[1]!==void 0&&($e.querySelectorAll(".ggb_preview img")[1].style.maxWidth="initial")):($e.style.transform="none",$e.style.webkitTransform="none")}function Me($e,at,lt,it,vt,He){var ct=null;if(He!=null&&He!="")for(var Mt=$e.parentNode;Mt!=null;)if((" "+Mt.className+" ").indexOf(" "+He+" ")>-1){ct=Mt;break}else Mt=Mt.parentNode;var Nt=0,St=0,xt=0,gt=0,Ct=0,Ft=0,It=0;if(ct)Nt=ct.offsetWidth,St=Math.max(it?ct.offsetWidth:0,ct.offsetHeight);else{if(window.innerWidth&&document.documentElement.clientWidth?(Nt=Math.min(window.innerWidth,document.documentElement.clientWidth),St=Math.min(window.innerHeight,document.documentElement.clientHeight),xt=Nt):(Nt=window.innerWidth,St=window.innerHeight,xt=window.innerWidth),$e){var Ot=$e.getBoundingClientRect();Ot.left>0&&Ot.left<=Nt&&(vt===void 0||!vt)&&(document.dir==="rtl"?(Ct=Nt-Ot.width-Ot.left,Ft=xt<=480?10:30):(Ft=Ot.left,Ct=xt<=480?10:30),gt=Ft+Ct)}if($e&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){var ln=$e.getBoundingClientRect();window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(gt=40,It=0):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(gt=0,It=40)}}return $e&&((lt===void 0||!lt)&&at>0&&at+gt1&&(He=!0)),at&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&(He=!0),!($e.hasOwnProperty("disableAutoScale")&&$e.disableAutoScale))vt=fe($e,at,He,lt,$e.scaleContainerClass);else return it;return He&&(!$e.hasOwnProperty("scale")||it===1)?vt:Math.min(it,vt)}function rt($e){var at=Math.min(window.innerWidth,document.documentElement.clientWidth),lt=Math.min(window.innerHeight,document.documentElement.clientHeight),it=$e.getBoundingClientRect(),vt=(at-it.width)/2,He=(lt-it.height)/2;He<0&&(He=0),$e.style.position="relative",window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(vt<40?$e.style.left="40px":$e.style.left=vt+"px",$e.style.top=He+"px"):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(He<40?$e.style.top="40px":$e.style.top=He+"px",$e.style.left=vt+"px")}function nt($e,at){var lt=$e.querySelector(".appletParameters");if(lt){if(typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){if(at.id!==lt.getAttribute("data-param-id"))return;window.GGBT_wsf_view.setCloseBtnPosition($e)}if(lt.parentElement&&/fullscreen/.test(lt.parentElement.className))return;var it=st(at,$e);Tt()&<.setAttribute("data-param-scale",it);for(var vt=null,He=0;He<$e.childNodes.length;He++)if($e.childNodes[He].className!==void 0&&$e.childNodes[He].className.match(/^applet_scaler/)){vt=$e.childNodes[He];break}if(vt!==null&&vt.querySelector(".noscale")!==null)return;var ct=at.id!==void 0?at.id:"ggbApplet",Mt=window[ct];(Mt==null||!Mt.recalculateEnvironments)&&vt!==null&&!vt.className.match(/fullscreen/)&&(vt.parentNode.style.transform="",!isNaN(it)&&it!==1?(vt.parentNode.style.width=at.width*it+"px",vt.parentNode.style.height=at.height*it+"px",zn(vt,it)):(zn(vt,1),vt.parentNode.style.width=at.width+"px",vt.parentNode.style.height=at.height+"px")),typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&rt($e),window.GGBT_wsf_view&&!window.GGBT_wsf_view.isFullscreen()&&window.GGBT_wsf_general.adjustContentToResize($(lt).parents(".content-added-content"))}}return{responsiveResize:nt,isFlexibleWorksheetEditor:Tt,positionCenter:rt,getScale:st,scaleElement:zn}}();__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_RESULT__=function(){return GGBApplet}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),__WEBPACK_AMD_DEFINE_RESULT__!==void 0&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__),GGBAppletUtils.makeModule=function(name,permutation){function webModule(){var H="bootstrap",I="begin",J="gwt.codesvr."+name+"=",K="gwt.codesvr=",L=name,M="startup",N="DUMMY",O=0,P=1,Q="iframe",R="position:absolute; width:0; height:0; border:none; left: -1000px;",S=" top: -1000px;",T="Chrome",U="CSS1Compat",V="",W="",X="",Y="undefined",Z="readystatechange",$=10,_="script",ab="javascript",bb="Failed to load ",cb="moduleStartup",db="scriptTagAdded",eb="moduleRequested",fb="meta",gb="name",hb=name+"::",ib="::",jb="gwt:property",kb="content",lb="=",mb="gwt:onPropertyErrorFn",nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb="gwt:onLoadErrorFn",qb='" for "gwt:onLoadErrorFn"',rb="#",sb="?",tb="/",ub="img",vb="clear.cache.gif",wb="baseUrl",xb=name+".nocache.js",yb="base",zb="//",Ab="selectingPermutation",Bb=name+".devmode.js",Cb=permutation,Db=":",Eb=".cache.js",Fb="loadExternalRefs",Gb="end",n=window,o=document;function p(){var Tt=n.location.search;return Tt.indexOf(J)!=-1||Tt.indexOf(K)!=-1}function q(Tt,zn){}webModule.__sendStats=q,webModule.__moduleName=L,webModule.__errFn=null,webModule.__moduleBase=N,webModule.__softPermutationId=O,webModule.__computePropValue=null,webModule.__getPropMap=null,webModule.__installRunAsyncCode=function(){},webModule.__gwtStartLoadingFragment=function(){return null},webModule.__gwt_isKnownPropertyValue=function(){return!1},webModule.__gwt_getMetaProperty=function(){return null};var r=null,s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L},webModule.__moduleStartupDone=function(Tt){var zn=s[L].bindings;s[L].bindings=function(){for(var Me=zn?zn():{},fe=Tt[webModule.__softPermutationId],st=O;st=O)continue;if(j==jb){if(k=i.getAttribute(kb),k){var l,m=k.indexOf(lb);m>=O?(j=k.substring(O,m),l=k.substring(m+P)):(j=k,l=W),c[j]=l}}else if(j==mb){if(k=i.getAttribute(kb),k)try{d=eval(k)}catch(Tt){alert(nb+k+ob)}}else if(j==pb&&(k=i.getAttribute(kb),k))try{e=eval(k)}catch(Tt){alert(nb+k+qb)}}}__gwt_getMetaProperty=function(Tt){var zn=c[Tt];return zn==null?null:zn},r=d,webModule.__errFn=e}function B(){function Tt($e){var at=$e.lastIndexOf(rb);at==-1&&(at=$e.length);var lt=$e.indexOf(sb);lt==-1&&(lt=$e.length);var it=$e.lastIndexOf(tb,Math.min(lt,at));return it>=O?$e.substring(O,it+P):W}function zn($e){if(!$e.match(/^\w+:\/\//)){var at=o.createElement(ub);at.src=$e+vb,$e=Tt(at.src)}return $e}function Me(){var $e=__gwt_getMetaProperty(wb);return $e!=null?$e:W}function fe(){for(var $e=o.getElementsByTagName(_),at=O;at<$e.length;++at)if($e[at].src.indexOf(xb)!=-1)return Tt($e[at].src);return W}function st(){var $e=o.getElementsByTagName(yb);return $e.length>O?$e[$e.length-P].href:W}function rt(){var $e=o.location;return $e.href==$e.protocol+zb+$e.host+$e.pathname+$e.search+$e.hash}var nt=Me();return nt==W&&(nt=fe()),nt==W&&(nt=st()),nt==W&&rt()&&(nt=Tt(o.location.href)),nt=zn(nt),nt}function C(Tt){return Tt.match(/^\//)||Tt.match(/^[a-zA-Z]+:\/\//)?Tt:webModule.__moduleBase+Tt}function D(){var Tt=[],zn=O,Me=[],fe=[];function st($e){var at=fe[$e](),lt=Me[$e];if(at in lt)return at;var it=[];for(var vt in lt)it[lt[vt]]=vt;throw r&&r($e,it,at),null}if(__gwt_isKnownPropertyValue=function($e,at){return at in Me[$e]},webModule.__getPropMap=function(){var $e={};for(var at in Me)Me.hasOwnProperty(at)&&($e[at]=st(at));return $e},webModule.__computePropValue=st,n.__gwt_activeModules[L].bindings=webModule.__getPropMap,p())return C(Bb);var rt;try{rt=Cb;var nt=rt.indexOf(Db);nt!=-1&&(zn=parseInt(rt.substring(nt+P),$),rt=rt.substring(O,nt))}catch($e){}return webModule.__softPermutationId=zn,C(rt+Eb)}function F(){n.__gwt_stylesLoaded||(n.__gwt_stylesLoaded={})}A(),webModule.__moduleBase="/js/mathematicalGraphics/"+name+"/",s[L].moduleBase=webModule.__moduleBase;var G=D();return F(),w(G),!0}return webModule},typeof window.web3d!="function"&&(window.web3d=GGBAppletUtils.makeModule("web3d","A18F540516513B1292CA7CEF2F6AFC7E")),typeof window.webSimple!="function"&&(window.webSimple=GGBAppletUtils.makeModule("webSimple","96B09BF1B436BF53F0DF54116700F16A")),window.GGBApplet=GGBApplet})()},67303:function(Tt,zn,Me){"use strict";Me.d(zn,{Ax:function(){return nt},Ds:function(){return $e},KI:function(){return lt},SI:function(){return rt},f1:function(){return st}});var fe=Me(90524);function st(it){let vt=!0;if(it.length>0){for(let He=0;Hext in St?lt(St,xt,{enumerable:!0,configurable:!0,writable:!0,value:gt}):St[xt]=gt,vt=(St,xt,gt)=>it(St,typeof xt!="symbol"?xt+"":xt,gt),He=(St,xt,gt)=>new Promise((Ct,Ft)=>{var It=jn=>{try{ln(gt.next(jn))}catch(Nn){Ft(Nn)}},Ot=jn=>{try{ln(gt.throw(jn))}catch(Nn){Ft(Nn)}},ln=jn=>jn.done?Ct(jn.value):Promise.resolve(jn.value).then(It,Ot);ln((gt=gt.apply(St,xt)).next())});class ct extends fe.Component{constructor(xt){super(xt),vt(this,"canvas"),vt(this,"randomNum",(gt,Ct)=>Math.floor(Math.random()*(Ct-gt)+gt)),vt(this,"drawPic",()=>{this.randomCode()}),vt(this,"reloadPic",()=>{this.drawPic()}),vt(this,"changeCode",gt=>{console.log(gt.target.value,222),this.setState({value:gt.target.value,showError:!1})}),vt(this,"onVerify",()=>{let gt;return this.state.value.toLowerCase()!==""&&this.state.value.toLowerCase()!==this.state.code.toLowerCase()?(gt=!0,st.ZP.error("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u9A8C\u8BC1\u7801"),this.reloadPic()):this.state.value.toLowerCase()===""?(gt=!0,st.ZP.error("\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801")):this.state.value.toLowerCase()===this.state.code.toLowerCase()&&(gt=!1),this.setState({showError:gt}),gt}),this.canvas=fe.createRef(),this.state={value:"",code:"",codeLength:4,fontSizeMin:20,fontSizeMax:22,backgroundColorMin:240,backgroundColorMax:250,colorMin:10,colorMax:20,lineColorMin:40,lineColorMax:180,contentWidth:96,contentHeight:38,showError:!1}}componentDidMount(){this.drawPic()}randomColor(xt,gt){const Ct=this.randomNum(xt,gt),Ft=this.randomNum(xt,gt),It=this.randomNum(xt,gt);return`rgb(${Ct}, ${Ft}, ${It})`}drawText(xt,gt,Ct){xt.fillStyle=this.randomColor(this.state.colorMin,this.state.colorMax);const Ft=this.randomNum(this.state.fontSizeMin,this.state.fontSizeMax);xt.font=Ft+"px SimHei";const It=10,Ot=(this.state.contentWidth-40)/(this.state.code.length-1);let ln=It;Ct>0&&(ln=It+Ct*Ot);let jn=this.randomNum(this.state.fontSizeMax,this.state.contentHeight-5);Ft>40&&(jn=40);const Nn=this.randomNum(-10,10);xt.translate(ln,jn),xt.rotate(Nn*Math.PI/180),xt.fillText(gt,0,0),xt.rotate(-Nn*Math.PI/180),xt.translate(-ln,-jn)}drawLine(xt){for(let gt=0;gt<1;gt++)xt.strokeStyle=this.randomColor(this.state.lineColorMin,this.state.lineColorMax),xt.beginPath(),xt.moveTo(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight)),xt.lineTo(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight)),xt.stroke()}drawDot(xt){for(let gt=0;gt<100;gt++)xt.fillStyle=this.randomColor(0,255),xt.beginPath(),xt.arc(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight),1,0,2*Math.PI),xt.fill()}randomCode(){let xt="";const gt="QWERTYUPLKJHGFDSAZXCVBNMqwertyupkjhgfdsazxcvbnm1234567890";for(let Ct=0;Ct{const Ft=this.canvas.current.getContext("2d");Ft.textBaseline="bottom",Ft.fillStyle=this.randomColor(this.state.backgroundColorMin,this.state.backgroundColorMax),Ft.fillRect(0,0,this.state.contentWidth,this.state.contentHeight);for(let It=0;It{let gt;Modal.confirm({centered:!0,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",title:"\u63D0\u793A",content:React.createElement("div",null,React.createElement("p",null,xt),React.createElement(ct,{ref:Ct=>gt=Ct})),onOk:()=>He(void 0,null,function*(){if(gt.onVerify())return Promise.reject();St()})})};var Nt=ct},6077:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return ct}});var fe=Me(59301),st={imageDimensions:"imageDimensions___a7crR",img:"img___Kroat",fullWidth:"fullWidth___c492T"},rt=Me(92310),nt=Me.n(rt),$e=Me(29787),at=Me(2859),lt=Me(82093),it=Me(49661),vt=(Mt,Nt,St)=>new Promise((xt,gt)=>{var Ct=Ot=>{try{It(St.next(Ot))}catch(ln){gt(ln)}},Ft=Ot=>{try{It(St.throw(Ot))}catch(ln){gt(ln)}},It=Ot=>Ot.done?xt(Ot.value):Promise.resolve(Ot.value).then(Ct,Ft);It((St=St.apply(Mt,Nt)).next())}),ct=({data:Mt,className:Nt,fullWidth:St,style:xt={},onClose:gt,onOk:Ct,showFullTools:Ft,noAssociationId:It})=>{const Ot=(0,fe.useRef)(null),ln=(0,fe.useRef)(null),jn=(0,fe.useRef)(null),Nn=(0,fe.useRef)(null),[pn,ir]=(0,fe.useState)(!1),[Gt,Zt]=(0,fe.useState)("\u6B63\u5728\u52A0\u8F7D\u4E2D");(0,fe.useEffect)(()=>(jn.current||(jn.current=document.createElement("style"),document.head.appendChild(jn.current)),Mt!=null&&Mt.visible?(document.body.setAttribute("data-custom","y-hidden"),jn.current.innerHTML=" html { overflow-y: hidden; }",Mt!=null&&Mt.src&&Cn()):(document.body.removeAttribute("data-custom"),jn.current&&(document.head.removeChild(jn.current),jn.current=null)),()=>{document.body.removeAttribute("data-custom"),jn.current&&(document.head.removeChild(jn.current),jn.current=null)}),[Mt==null?void 0:Mt.visible]);const Cn=()=>vt(void 0,null,function*(){ir(!0),Zt("\u6B63\u5728\u52A0\u8F7D\u4E2D");const Zn=yield(0,it.ZJ)(Mt==null?void 0:Mt.src);Ot.current.src="",Ot.current.src=Zn,Ot.current.onload=function(){_t()},ir(!1),Zt("")}),Qt=Zn=>vt(void 0,null,function*(){ir(!0),Zt("\u6B63\u5728\u4FDD\u5B58\u4E2D");const Yn=yield(0,lt.ZP)("/api/attachments.json",{method:"post",body:{file_type:"base64",original_filename:Mt.title,file:Zn.dataUrl}});Yn!=null&&Yn.id&&!It?(yield(0,lt.ZP)(`/api/attachments/${Mt.id}/add_subitem.json`,{method:"post",body:{subitem_id:Yn==null?void 0:Yn.id,settings:JSON.stringify(Zn.state)}})).status===0&&Ct():Yn!=null&&Yn.id&&Ct(Yn),ir(!1),Zt("")}),sn=()=>{const Zn=document.querySelector('a[href="https://markerjs.com/"]');Zn&&Zn.parentNode&&(Zn.parentNode.style.display="none"),[{name:'[data-action="select"]',title:"\u9009\u62E9"},{name:'[data-action="delete"]',title:"\u5220\u9664\u5143\u7D20"},{name:'[data-action="undo"]',title:"\u64A4\u9500"},{name:'[data-type-name="FrameMarker"]',title:"\u77E9\u5F62"},{name:'[data-type-name="FreehandMarker"]',title:"\u753B\u7EBF"},{name:'[data-type-name="ArrowMarker"]',title:"\u7BAD\u5934"},{name:'[data-type-name="TextMarker"]',title:"\u6587\u672C"},{name:'[data-type-name="EllipseMarker"]',title:"\u692D\u5706"},{name:'[data-type-name="HighlightMarker"]',title:"\u65B9\u5757"},{name:'[data-type-name="CalloutMarker"]',title:"\u6CE8\u91CA"},{name:'[data-action="render"]',title:"\u4FDD\u5B58"},{name:'[data-action="close"]',title:"\u9000\u51FA"}].forEach(gn=>{const kn=document.querySelector(gn.name);kn&&kn.setAttribute("title",gn.title)})},_t=()=>{ln.current=new at.hP(Ot.current),ln.current.targetRoot=Nn.current,ln.current.addEventListener("render",Qt),ln.current.addEventListener("beforeclose",gt),Ft&&(ln.current.availableMarkerTypes=ln.current.ALL_MARKER_TYPES,ln.current.uiStyleSettings.redoButtonVisible=!0,ln.current.uiStyleSettings.notesButtonVisible=!0,ln.current.uiStyleSettings.zoomButtonVisible=!0,ln.current.uiStyleSettings.zoomOutButtonVisible=!0,ln.current.uiStyleSettings.clearButtonVisible=!0),window.markerArea=ln.current.uiStyleSettings,ln.current.show(),Mt!=null&&Mt.snapshotData&&ln.current.restoreState(Mt.snapshotData),setTimeout(()=>{window.scrollTo(0,0),sn()},300)};return fe.createElement(fe.Fragment,null,(Mt==null?void 0:Mt.visible)&&fe.createElement($e.Z,{spinning:pn,tip:Gt,style:{position:"absolute",width:"100vw"}},fe.createElement("div",{ref:Nn,className:nt()(st.imageDimensions,Nt,St?st.fullWidth:""),style:xt},fe.createElement("img",{className:st.img,ref:Ot}))))}},88615:function(Tt,zn,Me){"use strict";var fe=Me(59301),st=Me(77019),rt=Me(5269),nt=Me(20554),$e=Me(99571),at=Me(38394),lt=Me(21697),it=Me(48136),vt=Me(59301);const He=(0,fe.forwardRef)(({callback:ct,showSaveButton:Mt,value:Nt=""},St)=>{const xt=(0,fe.useRef)(),gt=[{name:"\u5206\u6570\u5F97\u5206",value:"\\frac{x}{y}",children:[{name:"\u5206\u6570 Fractions",data:[{value:"\\frac{a}{b}"},{value:"x\\tfrac{x}{a} "},{value:"\\mathrm{d}t"},{value:"\\partial t"},{value:"\\frac{\\partial y}{\\partial x}"},{value:"\\nabla\\psi"},{value:"\\frac{\\partial^2}{\\partial x_1\\partial x_2}y"},{value:"\\cfrac{1}{a + \\cfrac{7}{b + \\cfrac{2}{9}}} = c"}]},{name:"\u5BFC\u6570 Derivative",data:[{value:"\\dot{a} "},{value:"\\ddot{a}"},{value:"{f}^{\\prime}"},{value:"{f}^{\\prime\\prime}"},{value:"{f}^{(n)}"}]},{name:"\u6A21\u7B97\u672F Modular arithmetic",data:[{value:"a \\bmod b"},{value:"a \\equiv b \\pmod{m} "},{value:"\\gcd(m, n) "},{value:"\\operatorname{lcm}(m, n) "}]}]},{name:"\u6839\u5F0F\u89D2\u6807",value:"\\sqrt{x}",children:[{name:"\u6839\u5F0F Radicals",data:[{value:"\\sqrt{x}"},{value:"\\sqrt[y]{x}"}]},{name:"\u4E0A\u4E0B\u6807 Sub&Super",data:[{value:"x^{a}"},{value:"x_{a}"},{value:"x_{a}^{b} "},{value:"_{a}^{b} x"},{value:"x_{a}^{b} "}]},{name:"\u91CD\u97F3\u7B26\u53CA\u5176\u4ED6 Accents and Others",data:[{value:"\\hat{a} "},{value:"\\sqrt[y]{x}"},{value:"\\check{} "},{value:"\\grave{a} "},{value:"\\acute{a}"},{value:"\\tilde{a}"},{value:"\\breve{a}"},{value:"\\bar{a}"},{value:"\\vec{a}"},{value:"\\not{a}"},{value:"\\widetilde{abc}"},{value:"\\widehat{abc}"},{value:"\\overleftarrow{abc} "},{value:"\\overrightarrow{abc}"},{value:"\\overline{abc}"},{value:"\\underline{abc}"},{value:"\\overbrace{abc}"},{value:"\\underbrace{abc}"},{value:"\\overset{a}{abc}"},{value:"\\underset{a}{abc} \\stackrel\\frown{ab}"},{value:"\\overline{ab} "},{value:"\\overleftrightarrow{ab}"},{value:"\\overset{a}{\\leftarrow}"},{value:"\\overset{a}{\\rightarrow}"},{value:"\\xleftarrow[abc]{a}"},{value:"\\xrightarrow[abc]{a} "}]}]},{name:"\u6781\u9650\u5BF9\u6570",value:"\\lim_{x \\to 0}",children:[{name:"\u6781\u9650 Limits",data:[{value:"\\lim a"},{value:"\\lim_{x \\to 0}"},{value:"\\lim_{x \\to \\infty}"},{value:"\\max_b{a}"},{value:"\\min_a{b}"}]},{name:"\u5BF9\u6570\u6307\u6570 Logarithms and exponentials",data:[{value:"\\log_{a}{b}"},{value:"\\lg_{a}{b}"},{value:"\\ln_{a}{b}"},{value:"\\exp a"}]},{name:"\u754C\u9650 Bounds",data:[{value:"\\min x"},{value:"\\sup t"},{value:"\\inf s"},{value:"\\lim u"},{value:"\\limsup w"},{value:"\\dim p"},{value:"\\ker\\phi "}]}]},{name:"\u4E09\u89D2\u51FD\u6570",value:"\\sin a",children:[{name:"\u4E09\u89D2\u51FD\u6570 Trigonometric functions",data:[{value:"\\sin a"},{value:"\\cos a"},{value:"\\tan a"},{value:"\\cot a "},{value:"\\sec a "},{value:"\\csc a "}]},{name:"\u53CD\u4E09\u89D2\u51FD\u6570 Inverse trigonometric functions",data:[{value:"\\sin^{-1}"},{value:"\\cos^{-1}"},{value:"\\tan^{-1}"},{value:"\\cot^{-1}"},{value:"\\sec^{-1}"},{value:"\\csc^{-1}"},{value:"\\arcsin a"},{value:"\\arccos a"},{value:"\\arctan a"},{value:"\\operatorname{arccot} a"},{value:"\\operatorname{arcsec} a"},{value:"\\operatorname{arccsc} a"}]},{name:"\u53CC\u66F2\u51FD\u6570 Hyperblic functions",data:[{value:"\\sinh a"},{value:"\\cosh a"},{value:"\\tanh a"},{value:"\\coth a"},{value:"\\operatorname{sech} a"},{value:"\\operatorname{csch} a"}]},{name:"\u53CD\u53CC\u66F2\u51FD\u6570 Inverse hyperbolic functions",data:[{value:"\\sinh^{-1}"},{value:"a\\cosh^{-1} a"},{value:"\\tanh^{-1} a"},{value:"\\coth^{-1} a"},{value:"\\operatorname{sech}^{-1} a"},{value:"\\operatorname{csch}^{-1} a"}]}]},{name:"\u79EF\u5206\u8FD0\u7B97",value:"\\int_{a}^{b}",children:[{name:"\u79EF\u5206 Integral",data:[{value:"\\int"},{value:"\\int_{a}^{b}"},{value:"\\int\\limits_{a}^{b}"}]},{name:"\u53CC\u91CD\u79EF\u5206 Double integral",data:[{value:"\\iint"},{value:"\\iint_{a}^{b} "},{value:"\\iint\\limits_{a}^{b} "}]},{name:"\u4E09\u91CD\u79EF\u5206 Triple integral",data:[{value:"\\iiint"},{value:"\\iiint_{a}^{b}"},{value:"\\iiint\\limits_{a}^{b} "}]},{name:"\u66F2\u7EBF\u79EF\u5206 Closed line or path integral",data:[{value:"\\oint"},{value:"\\oint_{a}^{b} "}]}]},{name:"\u5927\u578B\u8FD0\u7B97",value:"\\sum_{a}^{b}",children:[{name:"\u6C42\u548C Summation",data:[{value:"\\sum"},{value:"\\sum_{a}^{b}"},{value:"{\\textstyle \\sum_{a}^{b}} "}]},{name:"\u4E58\u79EF\u4F59\u79EF Product and coproduct",data:[{value:"\\prod"},{value:"\\prod_{a}^{b}"},{value:"{\\textstyle \\prod_{a}^{b}}"},{value:"\\coprod"},{value:"\\coprod_{a}^{b}"},{value:"{\\textstyle \\coprod_{a}^{b}} "}]},{name:"\u5E76\u96C6\u4EA4\u96C6 Union and intersection",data:[{value:"\\bigcup"},{value:"\\bigcup_{a}^{b}"},{value:"{\\textstyle \\bigcup_{a}^{b}}"},{value:"\\bigcap"},{value:"\\bigcap_{a}^{b}"}]},{name:"\u6790\u53D6\u5408\u53D6 Disjunction and conjunction",data:[{value:"\\bigvee"},{value:"\\bigvee_{a}^{b}"},{value:"\\bigwedge"},{value:"\\bigwedge_{a}^{b}"}]}]},{name:"\u62EC\u53F7\u53D6\u6574",value:"\\left [ \\left ( \\right ) \\right ] ",children:[{name:"\u62EC\u53F7 Brackets",data:[{value:"\\left ( \\right )"},{value:"\\left [ \\right ]"},{value:"\\left \\langle \\right \\rangle "},{value:"\\left | \\right | "},{value:"\\left \\lfloor \\right \\rfloor "},{value:"\\left \\lceil \\right \\rceil "}]}]}],Ct=[{name:"\u4EE3\u6570",value:"\\sqrt{a^2+b^2}",children:[{data:[{value:"\\left(x-1\\right)\\left(x+3\\right) "},{value:"\\sqrt{a^2+b^2}"},{value:"\\left ( \\frac{a}{b}\\right )^{n}= \\frac{a^{n}}{b^{n}}"},{value:"\\frac{a}{b}\\pm \\frac{c}{d}= \\frac{ad \\pm bc}{bd} "},{value:"\\frac{x^{2}}{a^{2}}-\\frac{y^{2}}{b^{2}}=1 "},{value:"\\frac{1}{\\sqrt{a}}=\\frac{\\sqrt{a}}{a},a\\ge 0\\frac{1}{\\sqrt{a}}=\\frac{\\sqrt{a}}{a},a\\ge 0 "},{value:"\\sqrt[n]{a^{n}}=\\left ( \\sqrt[n]{a}\\right )^{n} "},{value:"x ={-b \\pm \\sqrt{b^2-4ac}\\over 2a} "},{value:"y-y_{1}=k \\left( x-x_{1}\\right) "},{value:`\\left\\{\\begin{matrix} \r x=a + r\\text{cos}\\theta \\ \r y=b + r\\text{sin}\\theta \r \\end{matrix}\\right. `},{value:`\\begin{array}{l} \r \\text{\u5BF9\u4E8E\u65B9\u7A0B\u5F62\u5982\uFF1A}x^{3}-1=0 \\ \r \\text{\u8BBE}\\text{:}\\omega =\\frac{-1+\\sqrt{3}i}{2} \\ \r x_{1}=1,x_{2}= \\omega =\\frac{-1+\\sqrt{3}i}{2} \\ \r x_{3}= \\omega ^{2}=\\frac{-1-\\sqrt{3}i}{2} \r \\end{array} `},{value:`\\begin{array}{l} \r a\\mathop{{x}}\\nolimits^{{2}}+bx+c=0 \\ \r \\Delta =\\mathop{{b}}\\nolimits^{{2}}-4ac \\ \r \\left\\{\\begin{matrix} \r \\Delta \\gt 0\\text{\u65B9\u7A0B\u6709\u4E24\u4E2A\u4E0D\u76F8\u7B49\u7684\u5B9E\u6839} \\ \r \\Delta = 0\\text{\u65B9\u7A0B\u6709\u4E24\u4E2A\u76F8\u7B49\u7684\u5B9E\u6839} \\ \r \\Delta \\lt 0\\text{\u65B9\u7A0B\u65E0\u5B9E\u6839} \r \\end{matrix}\\right. \r \\end{array} `},{value:`\\begin{array}{l} \r a\\mathop{{x}}\\nolimits^{{2}}+bx+c=0 \\ \r \\Delta =\\mathop{{b}}\\nolimits^{{2}}-4ac \\ \r \\mathop{{x}}\\nolimits_{{1,2}}=\\frac{{-b \\pm \r \\sqrt{{\\mathop{{b}}\\nolimits^{{2}}-4ac}}}}{{2a}} \\ \r \\mathop{{x}}\\nolimits_{{1}}+\\mathop{{x}}\\nolimits_{{2}}=-\\frac{{b}}{{a}} \\ \r \\mathop{{x}}\\nolimits_{{1}}\\mathop{{x}}\\nolimits_{{2}}=\\frac{{c}}{{a}} \r \\end{array} `}]}]},{name:"\u51E0\u4F55",value:"\\Delta A B C ",children:[{data:[{value:"\\Delta A B C "},{value:"a \\parallel c,b \\parallel c \\Rightarrow a \\parallel b "},{value:"l \\perp \\beta ,l \\subset \\alpha \\Rightarrow \\alpha \\perp \\beta"},{value:`\\left.\\begin{matrix} \r a \\perp \\alpha \\ \r b \\perp \\alpha \r \\end{matrix}\\right\\}\\Rightarrow a \\parallel b`},{value:"P \\in \\alpha ,P \\in \\beta , \\alpha \\cap \\beta =l \\Rightarrow P \\in l "},{value:`\\alpha \\perp \\beta , \\alpha \\cap \\beta =l,a \\subset \\alpha ,a \\perp l \r \\Rightarrow a \\perp \\beta `},{value:`\\left.\\begin{matrix} \r a \\subset \\beta ,b \\subset \\beta ,a \\cap b=P \\ \r a \\parallel \\partial ,b \\parallel \\partial \r \\end{matrix}\\right\\}\\Rightarrow \\beta \\parallel \\alpha `},{value:"\\alpha \\parallel \\beta , \\gamma \\cap \\alpha =a, \\gamma \\cap \\beta =b \\Rightarrow a \\parallel b "},{value:"A \\in l,B \\in l,A \\in \\alpha ,B \\in \\alpha \\Rightarrow l \\subset \\alpha "},{value:`\\left.\\begin{matrix} \r m \\subset \\alpha ,n \\subset \\alpha ,m \\cap n=P \\ \r a \\perp m,a \\perp n \r \\end{matrix}\\right\\}\\Rightarrow a \\perp \\alpha `},{value:`\\begin{array}{c} \r \\text{\u76F4\u89D2\u4E09\u89D2\u5F62\u4E2D,\u76F4\u89D2\u8FB9\u957Fa,b,\u659C\u8FB9\u8FB9\u957Fc} \\ \r a^{2}+b^{2}=c^{2} \r \\end{array}`}]}]},{name:"\u4E0D\u7B49\u5F0F",value:"a > b",children:[{data:[{value:"a > b,b > c \\Rightarrow a > c "},{value:"a > b,c > d \\Rightarrow a+c > b+d "},{value:"a > b > 0,c > d > 0 \\Rightarrow ac bd "},{value:`\\begin{array}{c} \r a \\gt b,c \\gt 0 \\Rightarrow ac \\gt bc \\ \r a \\gt b,c \\lt 0 \\Rightarrow ac \\lt bc \r \\end{array}`},{value:"\\left | a-b \\right | \\geqslant \\left | a \\right | -\\left | b \\right | "},{value:"-\\left | a \\right |\\leq a\\leqslant \\left | a \\right | "},{value:"\\left | a \\right |\\leqslant b \\Rightarrow -b \\leqslant a \\leqslant \\left | b \\right | "},{value:"\\left | a+b \\right | \\leqslant \\left | a \\right | + \\left | b \\right | "},{value:`\\begin{array}{c} \r a \\gt b \\gt 0,n \\in N^{\\ast},n \\gt 1 \\ \r \\Rightarrow a^{n}\\gt b^{n}, \\sqrt[n]{a}\\gt \\sqrt[n]{b} \r \\end{array}`},{value:`\\left( \\sum_{k=1}^n a_k b_k \\right)^{\\!\\!2}\\leq \r \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right) `},{value:`\\begin{array}{c} \r a,b \\in R^{+} \\ \r \\Rightarrow \\frac{a+b}{{2}}\\ge \\sqrt{ab} \\ \r \\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \r \\end{array}`},{value:`\\begin{array}{c} \r a,b \\in R \\ \r \\Rightarrow a^{2}+b^{2}\\gt 2ab \\ \r \\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \r \\end{array}`},{value:`\\begin{array}{c} \r H_{n}=\\frac{n}{\\sum \\limits_{i=1}^{n}\\frac{1}{x_{i}}}= \\frac{n}{\\frac{1}{x_{1}}+ \\frac{1}{x_{2}}+ \\cdots + \\frac{1}{x_{n}}} \\ G_{n}=\\sqrt[n]{\\prod \\limits_{i=1}^{n}x_{i}}= \\sqrt[n]{x_{1}x_{2}\\cdots x_{n}} \\ A_{n}=\\frac{1}{n}\\sum \\limits_{i=1}^{n}x_{i}=\\frac{x_{1}+ x_{2}+ \\cdots + x_{n}}{n} \\ Q_{n}=\\sqrt{\\sum \\limits_{i=1}^{n}x_{i}^{2}}= \\sqrt{\\frac{x_{1}^{2}+ x_{2}^{2}+ \\cdots + x_{n}^{2}}{n}} \\ H_{n}\\leq G_{n}\\leq A_{n}\\leq Q_{n} \r \\end{array}`}]}]},{name:"\u79EF\u5206",value:"\\frac{\\mathrm{d}\\partial}{\\partial x}",children:[{data:[{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}x^n=nx^{n-1} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}e^{ax}=a\\,e^{ax} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\ln(x)=\\frac{1}{x} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\sin x=\\cos x "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\cos x=-\\sin x "},{value:"\\int k\\mathrm{d}x = kx+C "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\tan x=\\sec^2 x "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\cot x=-\\csc^2 x "},{value:"\\int \\frac{1}{x}\\mathrm{d}x= \\ln \\left| x \\right| +C "},{value:"\\int \\frac{1}{\\sqrt{1-x^{2}}}\\mathrm{d}x= \\arcsin x +C "},{value:"\\int \\frac{1}{1+x^{2}}\\mathrm{d}x= \\arctan x +C "},{value:"\\int u \\frac{\\mathrm{d}v}{\\mathrm{d}x}\\,\\mathrm{d}x=uv-\\int \\frac{\\mathrm{d}u}{\\mathrm{d}x}v\\,\\mathrm{d}x "},{value:"f(x) = \\int_{-\\infty}^\\infty \\hat f(x)\\xi\\,e^{2 \\pi i \\xi x} \\,\\mathrm{d}\\xi "},{value:"\\int x^{\\mu}\\mathrm{d}x=\\frac{x^{\\mu +1}}{\\mu +1}+C, \\left({\\mu \\neq -1}\\right) "}]}]},{name:"\u4E09\u89D2",value:"e^{i \\theta}",children:[{name:"\u6C42\u548C Summation",data:[{value:"e^{i \\theta} "},{value:"\\left(\\frac{\\pi}{2}-\\theta \\right ) "},{value:"\\text{sin}^{2}\\frac{\\alpha}{2}=\\frac{1- \\text{cos}\\alpha}{2} "},{value:"\\text{cos}^{2}\\frac{\\alpha}{2}=\\frac{1+ \\text{cos}\\alpha}{2} "},{value:"\\text{tan}\\frac{\\alpha}{2}=\\frac{\\text{sin}\\alpha}{1+ \\text{cos}\\alpha} "},{value:"\\sin \\alpha + \\sin \\beta =2 \\sin \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2} "},{value:"\\sin \\alpha - \\sin \\beta =2 \\cos \\frac{\\alpha + \\beta}{2}\\sin \\frac{\\alpha - \\beta}{2} "},{value:"\\cos \\alpha + \\cos \\beta =2 \\cos \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2} "},{value:"\\cos \\alpha - \\cos \\beta =-2\\sin \\frac{\\alpha + \\beta}{2}\\sin \\frac{\\alpha - \\beta}{2} "},{value:"a^{2}=b^{2}+c^{2}-2bc\\cos A "},{value:"\\frac{\\sin A}{a}=\\frac{\\sin B}{b}=\\frac{\\sin C}{c}=\\frac{1}{2R} "},{value:"\\sin \\left ( \\frac{\\pi}{2}-\\alpha \\right ) = \\cos \\alpha "},{value:"\\sin \\left ( \\frac{\\pi}{2}+\\alpha \\right ) = \\cos \\alpha "}]}]},{name:"\u7EDF\u8BA1",value:"C_{r}^{n}",children:[{data:[{value:"C_{r}^{n} "},{value:"\\frac{n!}{r!(n-r)!} "},{value:"\\sum_{i=1}^{n}{X_i} "},{value:"\\sum_{i=1}^{n}{X_i^2} "},{value:"X_1, \\cdots,X_n "},{value:"\\frac{x-\\mu}{\\sigma} "},{value:"\\sum_{i=1}^{n}{(X_i - \\overline{X})^2} "},{value:`\\begin{array}{c} \r \\text{\u82E5}P \\left( AB \\right) =P \\left( A \\right) P \\left( B \\right) \\\\ \r \\text{\u5219}P \\left( A \\left| B\\right. \\right) =P \\left({B}\\right) \r \\end{array}`},{value:"P(E) ={n \\choose k}p^k (1-p)^{n-k} "},{value:"P \\left( A \\right) = \\lim \\limits_{n \\to \\infty}f_{n}\\left ( A \\right ) "},{value:"P \\left( \\bigcup \\limits_{i=1}^{+ \\infty}A_{i}\\right) = \\prod \\limits_{i=1}^{+ \\infty}P{\\left( A_{i}\\right)} "},{value:`\\begin{array}{c} \r P \\left( \\emptyset \\right) =0 \\\\ \r P \\left( S \\right) =1 \r \\end{array}`},{value:`\\begin{array}{c} \r \\forall A \\in S \\\\ \r P \\left( A \\right) \\ge 0 \r \\end{array}`},{value:"P \\left( \\bigcup \\limits_{i=1}^{n}A_{i}\\right) = \\prod \\limits_{i=1}^{n}P \\left( A_{i}\\right) "},{value:`\\begin{array}{c} \r S= \\binom{N}{n},A_{k}=\\binom{M}{k}\\cdot \\binom{N-M}{n-k} \\\\ \r P\\left ( A_{k}\\right ) = \\frac{\\binom{M}{k}\\cdot \\binom{N-M}{n-k}}{\\binom{N}{n}} \r \\end{array}`},{value:`\\begin{array}{c} \r P_{n}=n! \\\\ \r A_{n}^{k}=\\frac{n!}{\\left( n-k \\left) !\\right. \\right.} \r \\end{array}`}]}]}],Ft=ln=>{xt.current.setValue(xt.current.getValue()+" "+ln.value+" ")},It=[{key:"1",label:"\u5FEB\u6377\u6A21\u677F",children:vt.createElement(st.Z,{className:lt.Z.lists,gutter:[10,10]},gt.map((ln,jn)=>vt.createElement(rt.Z,{flex:"110px",className:lt.Z.item},vt.createElement("div",null,vt.createElement(at.Z,{value:`$$${ln.value}$$`}),ln.name),vt.createElement("div",{className:lt.Z.children},ln.children.map((Nn,pn)=>vt.createElement("div",{key:pn},vt.createElement("h1",null,Nn.name),vt.createElement(st.Z,{gutter:[10,10]},Nn.data.map((ir,Gt)=>vt.createElement(rt.Z,{key:Gt,onClick:()=>Ft(ir),className:lt.Z.diamond},vt.createElement(at.Z,{value:"`$$"+ir.value+"$$`"}))))))))))},{key:"2",label:"\u516C\u5F0F\u6A21\u677F",children:vt.createElement(st.Z,{className:lt.Z.lists,gutter:[10,10]},Ct.map((ln,jn)=>vt.createElement(rt.Z,{flex:"110px",className:lt.Z.item},vt.createElement("div",null,vt.createElement(at.Z,{value:"`$$"+ln.value+"$$`"}),ln.name),vt.createElement("div",{className:lt.Z.children},ln.children.map((Nn,pn)=>vt.createElement("div",{key:pn},Nn.name&&vt.createElement("h1",null,Nn.name),vt.createElement(st.Z,{gutter:[10,10]},Nn.data.map((ir,Gt)=>vt.createElement(rt.Z,{key:Gt,onClick:()=>Ft(ir),className:lt.Z.diamond},vt.createElement(at.Z,{value:"`$$"+ir.value+"$$`"}))))))))))}],Ot=()=>{var ln=document.createElement("div");ln.innerHTML=xt.current.getValue();var jn=ln.innerText;return ct&&ct(jn),jn};return(0,fe.useImperativeHandle)(St,()=>({getData:Ot})),vt.createElement("div",{className:lt.Z.mathWrap},vt.createElement(nt.default,{defaultActiveKey:"1",items:It}),vt.createElement("math-field",{locale:"zh_cn",className:lt.Z.mathField,placeholder:"\u8BF7\u6253\u5F00\u952E\u76D8\uFF0C\u8F93\u5165\u516C\u5F0F",ref:xt,style:{width:800,marginTop:30,fontSize:18}},Nt||""),Mt&&vt.createElement("div",{className:lt.Z.button},vt.createElement($e.ZP,{size:"large",onClick:Ot,style:{zIndex:8,marginTop:10},type:"primary"},"\u4FDD\u5B58\u5230\u7F16\u8F91\u5668")))});zn.Z=He},2748:function(Tt,zn,Me){"use strict";Me.d(zn,{Q:function(){return at}});var fe=Me(59301),st=Me(82326),rt=Me(47889),nt=Me(71051),$e=Me(59301),at=(it=>(it[it.Number=1]="Number",it[it.Percent=2]="Percent",it))(at||{});const lt=({value:it,onChange:vt,disabled:He,hidePercentOption:ct=!1,percentType:Mt="select"})=>{const Nt=(0,fe.useMemo)(()=>ct?1:2,[ct]),[St,xt]=(0,fe.useState)(Nt);console.log(St);const gt=Ft=>it.type===1?`${Ft}\u5206`:`${Ft}%`,Ct=(0,fe.useCallback)(Ft=>{if(St===1){const It=Ft.replace("\u5206","");return isNaN(parseInt(It,10))?0:It}else return Ft.replace("%","")},[St]);return(0,fe.useEffect)(()=>{xt(it.type)},[it]),$e.createElement("div",{style:{display:"flex",alignItems:"center"}},Mt=="select"&&$e.createElement(st.default,{size:"large",onChange:Ft=>{xt(Ft),vt({type:Ft,inputValue:Ft===1?5:20})},value:St||Nt,style:{width:100},options:ct?[{label:"\u5206\u503C",value:1}]:[{label:"\u767E\u5206\u6BD4",value:2},{label:"\u5206\u503C",value:1}],disabled:He}),Mt=="radio"&&$e.createElement(rt.ZP.Group,{size:"large",onChange:Ft=>{const It=Ft.target.value;xt(It),vt({type:It,inputValue:It===1?5:20})},value:St||Nt,disabled:He},!ct&&$e.createElement(rt.ZP,{value:2,style:{marginRight:"50px"}},"\u767E\u5206\u6BD4\u6263\u5206"),$e.createElement(rt.ZP,{value:1},"\u56FA\u5B9A\u5206\u503C")),Mt=="radio"&&$e.createElement("div",{style:{marginRight:"10px",color:"#000000"}},it.type==2?"\u6263\u9664\u8865\u4EA4\u9636\u6BB5\u5F97\u5206\u7684":"\u6263\u9664\u603B\u6210\u7EE9\u7684"),$e.createElement(nt.Z,{size:"large",disabled:He,value:it.inputValue,style:{width:"120px"},parser:Ct,addonAfter:it.type===1?"\u5206":"%",max:St===2?100:Number.MAX_SAFE_INTEGER,min:0,precision:0,onChange:Ft=>{vt({type:St,inputValue:Ft})}}),Mt=="radio"&&it.type==2&&$e.createElement("div",{style:{marginLeft:"10px",color:"#000000"}},"\u5206\u6570"))};zn.Z=lt},6681:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return it}});var fe=Me(59301),st={flex_box_center:"flex_box_center___rQJfc",flex_space_between:"flex_space_between___MDW24",flex_box_vertical_center:"flex_box_vertical_center___RZbAv",flex_box_center_end:"flex_box_center_end___ILhJA",flex_box_column:"flex_box_column___Fmij7",orangeColor:"orangeColor___U5vU6",redColor:"redColor___qYa6X",statustitle:"statustitle___pTBLm",statusbody:"statusbody___qUPQx",flex:"flex___VtL45"},rt=Me(62957),nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAAAXNSR0IArs4c6QAAAUFJREFUOE+V0ktKw1AUxvH/rVqIxT4wkgwEUSmK4APRBfiYCKU7cOZEBOkadAMZiwhuwJETBQciFRTtwJkPBLW2BRGrRanU9kpN2sSYiGaWc/PjuznnCN2Qh8AkPo+AzXxKLLiPhW7ICtDqB4GzQkqM/huGFZgZcDCBBDaaicsTMKbZH2xfwdY5/ICAEGSasC0AwRYblj+gKkENwfy4WS9V4LHsgsk49EZteJKHdBa6w7AybdZzr3D64ILxGKjtNrx9gfsSRBSYtf6xZh1/u+qQClrIhtdFuHmGvhisJcz65RPsZl2Jc/3QE7FhpgDHuT80x2+O9cR1K/GiCDt3rkQ/+Ns43gDFD0YVmHIuQGOOmiGTARhxwkGd1cZ7Vwd0OppWr3911StpcV++Iwn67q/kyBMuHchErcqwFxT1XZXsfQJqo2zI6kdI4QAAAABJRU5ErkJggg==",$e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAW1JREFUOE+dkj1IQmEUht9z/blp4VQEjS39eW+oSCFCpFCI4BiKFGWWQUSrCjVVg+lQNJZQDZGNTm1B4NTibS3n2lo0wuqEN8i/a0HfeN7v+d73nO+QJEcKAJzQPAwCnSpKNtoqkyRHqgDrtUFAb6Rnedx43KgT6O5P0GQijFiNLe/Sy3/B8g+YTIRRrb5jP32JYNADr8eOldU0RJEqVlm8r1kyuA/AIEB10OWy4vBgA4ryCIdjCJlMDmfn1zAY6EmyGY/UrAwrgGATWKsn4mGEQl4Uiw+YX9hT73aZiEcl8eMbZAGA0AT6/ZPY3Ykiny/A55tA7uoGqdQFBD2VbDbDugoSTTEj3gTGYgG8Vt7UeG63hNkZJ7a2s+gw1XqPnf5REKhkt4kxNakO08ycbOtRC/7FcakCwNTJ0WwmDI+1LUCZZDkSYGa5Eewf0G0KAnprNYtFQHdPbZhNS1cmLafF5bUTJsyBSVMHPm+/ADTrfrtCH68WAAAAAElFTkSuQmCC",at=(vt,He,ct)=>new Promise((Mt,Nt)=>{var St=Ct=>{try{gt(ct.next(Ct))}catch(Ft){Nt(Ft)}},xt=Ct=>{try{gt(ct.throw(Ct))}catch(Ft){Nt(Ft)}},gt=Ct=>Ct.done?Mt(Ct.value):Promise.resolve(Ct.value).then(St,xt);gt((ct=ct.apply(vt,He)).next())}),it=({type:vt,resdata:He,onok:ct,oktext:Mt,okloading:Nt})=>{const[St,xt]=(0,fe.useState)(!1),{can_copy_list:gt,can_copy_num:Ct,challenge_type:Ft,course_data_list:It,no_copy_list:Ot,no_copy_num:ln,no_use_list:jn,no_use_num:Nn,repeat_shixun_num:pn,student_count:ir,total_num:Gt,use_num:Zt}=He;let Cn=Ct>0||vt==="exercise";(0,fe.useEffect)(()=>{(He==null?void 0:He.student_count)>0&&xt(!0)},[He]),console.log("---11",Nt),(0,fe.useEffect)(()=>{Nt||xt(!1)},[Nt]);const Qt=()=>{if(vt==="exercise"&&Ft===1)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u5176\u4ED6\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u4F5C\u7B54\u5DF2\u6311\u6218\u8FC7\u7684\u5B9E\u8BAD\u9898\u3002"));if(vt==="exercise"&&Ft===2)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="shixun"&&Ft===1)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u8BE5\u5B9E\u8DF5\u9879\u76EE\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="shixun"&&Ft===2)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7\u8BE5\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="subject"&&Ft===1)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="subject"&&Ft===2)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709 ",fe.createElement("span",{className:st.orangeColor},ir)," \u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u6311\u6218\u8FC7\u5176\u4E2D\u7684 ",fe.createElement("span",{className:st.orangeColor},Zt)," \u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="exercisepush")return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u5176\u4ED6\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u8BD5\u5377\u4E2D\u7684",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE \uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u5728\u5F53\u524D\u8003\u8BD5\u4E2D\u8FDB\u884C\u4F5C\u7B54\u3002"));if(vt==="shixunpush"&&Ft===1)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(vt==="shixunpush"&&Ft===2)return fe.createElement(fe.Fragment,null,"\u8BFE\u5802\u5185\u6709",fe.createElement("span",{className:st.orangeColor},ir),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7",fe.createElement("span",{className:st.orangeColor},Zt),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",fe.createElement("span",{className:st.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"))},sn=()=>{if(vt==="exercise"||vt==="subject"||vt==="exercisepush"||vt==="shixunpush")return fe.createElement("div",{style:{marginTop:20}},ln>0&&fe.createElement("div",null,fe.createElement("span",{className:st.flex},fe.createElement("img",{src:$e,style:{width:14}}),fe.createElement("span",{className:st.statustitle},"\u4E0D\u652F\u6301\u590D\u5236\u7684\u5B9E\u8DF5\u9879\u76EE")),fe.createElement("div",{className:st.statusbody},vt==="exercise"&&fe.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",fe.createElement("span",{className:st.redColor},"\u4EE5\u4E0B\u8BD5\u9898\u5C06\u4E0D\u4F1A\u88AB\u53D1\u9001\u81F3\u8BFE\u5802\u4E2D\u3002"),"\u60A8\u4E5F\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),(vt==="subject"||vt==="exercisepush")&&fe.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",Cn&&fe.createElement("span",{className:st.redColor},"\u4E00\u952E\u590D\u5236\u4E0D\u4F1A\u590D\u5236\u6B64\u90E8\u5206\u9879\u76EE\u3002"),"\u60A8\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),vt==="shixunpush"&&fe.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",Cn&&fe.createElement("span",{className:st.redColor},"\u4E00\u952E\u590D\u5236\u4E0D\u4F1A\u590D\u5236\u6B64\u90E8\u5206\u9879\u76EE\u3002"),"\u5EFA\u8BAE\u60A8\u91CD\u65B0\u9009\u62E9\u5B9E\u8DF5\u9879\u76EE\u518D\u53D1\u5E03\u4F5C\u4E1A\uFF0C\u4E5F\u53EF\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),fe.createElement("div",null,Ot==null?void 0:Ot.map((_t,Zn)=>fe.createElement("a",{href:`/shixuns/${_t.identifier}/challenges`,target:"_blank"},"\u300A",_t==null?void 0:_t.name,"\u300B",Zn+1!==ln&&"\u3001"))))),Ct>0&&fe.createElement("div",{style:{marginTop:20}},fe.createElement("span",{className:st.flex},fe.createElement("img",{src:nt,style:{width:14}}),fe.createElement("span",{className:st.statustitle},"\u652F\u6301\u590D\u5236\u7684\u5B9E\u8DF5\u9879\u76EE")),fe.createElement("div",{className:st.statusbody},vt==="exercise"&&fe.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362\u8BD5\u9898\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\u66FF\u6362\u8BD5\u5377\u4E2D\u7684\u539F\u8BD5\u9898\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),(vt==="subject"||vt==="exercisepush")&&fe.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u53D1\u9001\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),vt==="shixunpush"&&fe.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362\u8BD5\u9898\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\u66FF\u6362\u5F53\u524D\u4F5C\u4E1A\u4E2D\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),fe.createElement("div",null,gt==null?void 0:gt.map((_t,Zn)=>fe.createElement("a",{href:`/shixuns/${_t.identifier}/challenges`,target:"_blank"},"\u300A",_t==null?void 0:_t.name,"\u300B",Zn+1!==Ct&&"\u3001"))))));if(vt==="shixun")return fe.createElement("div",{style:{marginTop:20}},Ct>0?"\u8BE5\u9879\u76EE\u652F\u6301\u590D\u5236\uFF0C\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u53D1\u9001\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002":"\u8BE5\u9879\u76EE\u4E0D\u652F\u6301\u590D\u5236\uFF0C\u60A8\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002")};return fe.createElement(rt.default,{open:St,onCancel:()=>{xt(!1)},cancelText:"\u53D6\u6D88",title:"\u63D0\u793A",width:700,centered:!0,cancelButtonProps:{style:{display:!Cn&&"none"}},zIndex:1003,confirmLoading:Nt,okText:Cn?Mt:"\u6211\u77E5\u9053\u4E86",onOk:()=>at(void 0,null,function*(){Cn?yield ct([...gt,...jn]):xt(!1)})},fe.createElement("div",{style:{maxHeight:600,overflow:"auto"}},Qt(),sn()))}},77087:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return Ct}});var fe=Me(59301),st=Me(76560),rt=Me(62957),nt=Me(60242),$e=Me(99571),at={con_warp:"con_warp___UwmUW",success_txt:"success_txt___bixIU"},lt=Me(82093),it=Me(56656),vt=Me.n(it),He=Me(59301),ct=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,St=(Ft,It)=>{var Ot={};for(var ln in Ft)Mt.call(Ft,ln)&&It.indexOf(ln)<0&&(Ot[ln]=Ft[ln]);if(Ft!=null&&ct)for(var ln of ct(Ft))It.indexOf(ln)<0&&Nt.call(Ft,ln)&&(Ot[ln]=Ft[ln]);return Ot},xt=(Ft,It,Ot)=>new Promise((ln,jn)=>{var Nn=Gt=>{try{ir(Ot.next(Gt))}catch(Zt){jn(Zt)}},pn=Gt=>{try{ir(Ot.throw(Gt))}catch(Zt){jn(Zt)}},ir=Gt=>Gt.done?ln(Gt.value):Promise.resolve(Gt.value).then(Nn,pn);ir((Ot=Ot.apply(Ft,It)).next())});const gt=Ft=>{var It=Ft,{shixunsDetail:Ot,globalSetting:ln,loading:jn,dispatch:Nn,showModal:pn,onCancel:ir,onOk:Gt,okBtnName:Zt="\u5B8C\u6210",info:Cn,source:Qt}=It,sn=St(It,["shixunsDetail","globalSetting","loading","dispatch","showModal","onCancel","onOk","okBtnName","info","source"]);const[_t,Zn]=(0,fe.useState)(0),[Yn,gn]=(0,fe.useState)(0);return(0,fe.useEffect)(()=>{let kn=null;const Rr=()=>xt(void 0,null,function*(){let mt={id:Cn==null?void 0:Cn.courseId,send_time:vt()().format("YYYY-MM-DD HH:mm"),exercise_id:Cn!=null&&Cn.exercise_id?Cn==null?void 0:Cn.exercise_id:null},qe={id:Cn==null?void 0:Cn.courseId,course_id:Cn==null?void 0:Cn.courseId,identifier:Cn==null?void 0:Cn.courseId,type:"normal",is_use:1,is_copy:!0};Qt==="\u8BD5\u5377"?(mt.examination_bank_ids=Cn==null?void 0:Cn.examination_bank_ids,mt.type="ExaminationBank"):Qt==="\u5B9E\u8BAD"?mt.shixun_info=(Cn==null?void 0:Cn.shixun_info.length)>0?Cn==null?void 0:Cn.shixun_info:[qe]:Qt==="\u5B9E\u8BAD\u548C\u8BD5\u5377"&&(mt.examination_bank_ids=Cn==null?void 0:Cn.examination_bank_ids,mt.shixun_info=(Cn==null?void 0:Cn.shixun_info.length)>0?Cn==null?void 0:Cn.shixun_info:[qe]);const er=yield(0,lt.ZP)(`/api/courses/${Cn==null?void 0:Cn.courseId}/send_shixun_progress.json`,{method:"post",body:mt});(er==null?void 0:er.status)===0&&(Zn(er==null?void 0:er.complete_num),gn(er==null?void 0:er.total_num),(er==null?void 0:er.complete_num)!==(er==null?void 0:er.total_num)?(kn&&clearInterval(kn),kn=setInterval(Rr,5e3)):kn&&clearInterval(kn))});return pn&&(Cn!=null&&Cn.courseId)&&Rr(),()=>{kn&&clearInterval(kn)}},[pn]),He.createElement(rt.default,{centered:!0,maskClosable:!1,width:400,title:"\u5B9E\u8BAD\u52A0\u5165\u8BFE\u5802\u63D0\u793A",closable:_t==Yn,open:pn,destroyOnClose:!0,footer:null,onCancel:ir},He.createElement("div",null,"\u5F53\u524D\u9009\u4E2D",He.createElement("span",{className:"mr5 ml5",style:{color:"#3061D0"}},Yn),"\u4E2A\u5B9E\u8BAD\u52A0\u5165\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u3002"),He.createElement("div",{className:at.con_warp},He.createElement(nt.Z,{className:"mt15 mb5",strokeColor:"#3061D0",trailColor:"rgba(144, 150, 163, 0.1)",percent:_t==Yn&&Yn!=0?100:_t/Yn*100,showInfo:!1,size:[350,10]}),He.createElement("div",{className:at.success_txt},"\u5DF2\u6210\u529F\u53D1\u9001",He.createElement("span",{className:"mr5 ml5",style:{color:"#3061D0"}},_t),"\u4E2A"),_t!=Yn&&He.createElement($e.ZP,{disabled:!0},"\u5904\u7406\u4E2D"),_t==Yn&&He.createElement($e.ZP,{type:"primary",onClick:Gt},Zt)))};var Ct=(0,st.connect)(({shixunsDetail:Ft,loading:It,globalSetting:Ot})=>({shixunsDetail:Ft,globalSetting:Ot,loading:It.models.index}))(gt)},44905:function(Tt,zn,Me){"use strict";Me.d(zn,{h:function(){return ln}});var fe=Me(59301),st=Me(82326),rt=Me(28284),nt=Me(99571),$e=Me(89780),at=Me.n($e),lt=Me(66543),it=Me(59598),vt=Object.defineProperty,He=Object.defineProperties,ct=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertySymbols,Nt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,xt=(jn,Nn,pn)=>Nn in jn?vt(jn,Nn,{enumerable:!0,configurable:!0,writable:!0,value:pn}):jn[Nn]=pn,gt=(jn,Nn)=>{for(var pn in Nn||(Nn={}))Nt.call(Nn,pn)&&xt(jn,pn,Nn[pn]);if(Mt)for(var pn of Mt(Nn))St.call(Nn,pn)&&xt(jn,pn,Nn[pn]);return jn},Ct=(jn,Nn)=>He(jn,ct(Nn));const Ft=st.default.Option,It={labelCol:{span:4},wrapperCol:{span:20}},Ot={asp:["ASP","vbscript"],actionscript:["ActionScript(3.0)/Flash/Flex","clike"],bash:["Bash/Bat","shell"],css:["CSS","css"],c:["C","clike"],cpp:["C++","clike"],csharp:["C#","clike"],coffeescript:["CoffeeScript","coffeescript"],d:["D","d"],dart:["Dart","dart"],delphi:["Delphi/Pascal","pascal"],erlang:["Erlang","erlang"],go:["Golang","go"],groovy:["Groovy","groovy"],html:["HTML","text/html"],java:["Java","clike"],json:["JSON","text/json"],javascript:["Javascript","javascript"],lua:["Lua","lua"],less:["LESS","css"],markdown:["Markdown","gfm"],"objective-c":["Objective-C","clike"],php:["PHP","php"],perl:["Perl","perl"],python:["Python","python"],r:["R","r"],rst:["reStructedText","rst"],ruby:["Ruby","ruby"],sql:["SQL","sql"],sass:["SASS/SCSS","sass"],shell:["Shell","shell"],scala:["Scala","clike"],swift:["Swift","clike"],vb:["VB/VBScript","vb"],xml:["XML","text/xml"],yaml:["YAML","yaml"]};zn.Z=({callback:jn,onCancel:Nn})=>{const[pn,ir]=(0,fe.useState)("python");function Gt(Cn){ir(Ot[Cn][1])}function Zt(Cn){jn(Cn)}return fe.createElement(rt.default,Ct(gt({},It),{className:"code-block-panel",initialValues:{language:"python",content:""},onFinish:Zt,style:{width:500}}),fe.createElement(rt.default.Item,{label:"\u4EE3\u7801\u8BED\u8A00",name:"language"},fe.createElement(st.default,{getPopupContainer:Cn=>Cn.parentNode,onChange:Gt},Object.keys(Ot).map(Cn=>fe.createElement(Ft,{key:Cn,value:Cn},Ot[Cn][0])))),fe.createElement(rt.default.Item,{label:"\u4EE3\u7801\u5185\u5BB9",name:"content",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4EE3\u7801\u5185\u5BB9"}]},fe.createElement(ln,{mode:pn})),fe.createElement("div",{className:"flex-container flex-end"},fe.createElement(nt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),fe.createElement(nt.ZP,{type:"ghost",onClick:Nn},"\u53D6\u6D88")))};function ln({value:jn,onChange:Nn,mode:pn,options:ir={}}){const Gt=(0,fe.useRef)(),[Zt,Cn]=(0,fe.useState)();return(0,fe.useEffect)(()=>{if(Zt){let Qt=function(sn){const _t=sn.getValue();Nn&&Nn(_t)};return Zt.on("change",Qt),()=>{Zt.off("change",Qt)}}},[Zt,Nn]),(0,fe.useEffect)(()=>{Zt&&Zt.setOption("mode",pn)},[Zt,pn]),(0,fe.useEffect)(()=>{Zt&&(jn!==Zt.getValue()||jn==="")&&setTimeout(()=>{Zt.setValue(jn||"")},300)},[Zt,jn]),(0,fe.useEffect)(()=>{if(Gt.current&&!Zt){const Qt=at().fromTextArea(Gt.current,gt({mode:pn,lineNumbers:!0,lineWrapping:!0,autoCloseBrackets:!0,tabSize:4,autofocus:!0,autoCloseTags:!0,matchBrackets:!0,styleActiveLine:!0},ir));Cn(Qt)}},[Gt.current,Zt]),fe.createElement("div",{className:"my-codemirror-container"},fe.createElement("textarea",{ref:Gt}))}},2978:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return Ps}});var fe=Me(59301),st=Me(76560),rt=Me(89780),nt=Me.n(rt),$e=Me(76374),at=Me(66543),lt=Me(6313),it=Me(25717),vt=Me(99498),He=Me(25419),ct=Me(67549),Mt=Me(38394),Nt=({value:ur="",className:Hr,showTextOnly:mi,showLines:Ss,style:ro={}})=>{const Ns=(0,fe.useMemo)(()=>"",[ur]);return fe.createElement(fe.Fragment,null,fe.createElement("div",{dangerouslySetInnerHTML:{__html:Ns}}))},St=Object.defineProperty,xt=Object.defineProperties,gt=Object.getOwnPropertyDescriptors,Ct=Object.getOwnPropertySymbols,Ft=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable,Ot=(ur,Hr,mi)=>Hr in ur?St(ur,Hr,{enumerable:!0,configurable:!0,writable:!0,value:mi}):ur[Hr]=mi,ln=(ur,Hr)=>{for(var mi in Hr||(Hr={}))Ft.call(Hr,mi)&&Ot(ur,mi,Hr[mi]);if(Ct)for(var mi of Ct(Hr))It.call(Hr,mi)&&Ot(ur,mi,Hr[mi]);return ur},jn=(ur,Hr)=>xt(ur,gt(Hr));let Nn=[{title:"\u7C97\u4F53",icon:"md-iconfont icon-bold",actionName:"bold"},{title:"\u659C\u4F53",icon:"md-iconfont icon-italic",actionName:"italic"},"|",{title:"\u65E0\u5E8F\u5217\u8868",icon:"md-iconfont icon-unorder-list",actionName:"list-ul"},{title:"\u6709\u5E8F\u5217\u8868",icon:"md-iconfont icon-order-list",actionName:"list-ol"},"|",{title:"\u884C\u5185\u4EE3\u7801",icon:"md-iconfont icon-code",actionName:"code"},{title:"\u4EE3\u7801\u5757\uFF08\u591A\u8BED\u8A00\u98CE\u683C\uFF09",icon:"md-iconfont icon-file-code",actionName:"code-block"},{title:"\u94FE\u63A5",icon:"md-iconfont icon-link",actionName:"link"},"|",{title:"\u884C\u5185\u516C\u5F0F",icon:"md-iconfont icon-sum",actionName:"inline-latex"},{title:"\u6570\u5B66\u516C\u5F0F",icon:"iconfont icon-shuxuetuxiang2",actionName:"maths-latex"},{title:"\u591A\u884C\u516C\u5F0F",icon:"md-iconfont icon-formula",actionName:"latex"},"|",{title:"\u6DFB\u52A0\u56FE\u7247",icon:"md-iconfont icon-picture",actionName:"upload-image"},{title:"\u63D2\u5165\u753B\u56FE",icon:"iconfont icon-sheji",actionName:"draw-image"},{title:"\u63D2\u5165\u6D41\u7A0B\u56FE",icon:"iconfont icon-liucheng",actionName:"add-flowchart"},{title:"\u8868\u683C",icon:"md-iconfont icon-table",actionName:"add-table"},"|",{title:"\u6362\u884C",icon:"md-iconfont icon-minus",actionName:"line-break"},{title:"\u6E05\u7A7A",icon:"md-iconfont icon-eraser",actionName:"eraser"}];function pn({onActionCallback:ur,title:Hr,icon:mi,actionName:Ss,className:ro="",children:Ns}){function bn(){ur(Ss)}return fe.createElement("a",{title:Hr,className:ro,onClick:bn},fe.createElement("i",{className:`${mi}`}),Ns)}var ir=({watch:ur,showNullButton:Hr,showNullProgramButton:mi,onActionCallback:Ss,fullScreen:ro,insertTemp:Ns,hidetoolBar:bn,extraUse:Vn})=>{const rs=[...Nn,{title:`${ur?"\u5173\u95ED\u5B9E\u65F6\u9884\u89C8":"\u5F00\u542F\u5B9E\u65F6\u9884\u89C8"}`,icon:`${ur?"md-iconfont icon-eye-slash":"md-iconfont icon-eye"}`,actionName:"trigger-watch"}];return fe.createElement("ul",{className:"markdown-toolbar-container"},!bn&&rs.map((za,ca)=>fe.createElement("li",{key:ca},za.actionName?fe.createElement(pn,jn(ln({},za),{onActionCallback:Ss})):fe.createElement("span",{className:"v-line"}))),Hr?fe.createElement("li",null,fe.createElement(pn,{icon:"md-iconfont icon-edit insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-null-ch",onActionCallback:Ss},fe.createElement("span",{className:"fill-tip"},"\u70B9\u51FB\u63D2\u5165\b\u586B\u7A7A\u9879"))):null,mi?fe.createElement(fe.Fragment,null,fe.createElement("li",null,fe.createElement(pn,{icon:"md-iconfont icon-edit insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-signal",onActionCallback:Ss},fe.createElement("span",{className:"fill-tip"},"\u6DFB\u52A0\u5355\u884C\u586B\u7A7A\u9879"))),fe.createElement("li",null,fe.createElement(pn,{icon:"md-iconfont icon-uniE900 insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-multiple",onActionCallback:Ss},fe.createElement("span",{className:"fill-tip"},"\u6DFB\u52A0\u591A\u884C\u586B\u7A7A\u9879")))):null,Ns&&fe.createElement("li",null,fe.createElement(pn,{icon:"md-iconfont icon-edit",className:"btn-null",title:"\u63D2\u5165\u6A21\u677F",actionName:`inster-template-${Ns}`,onActionCallback:Ss},fe.createElement("span",{className:"fill-tip"},"\u63D2\u5165\u6A21\u677F"))),Vn&&fe.createElement("li",null,Vn),fe.createElement("li",{className:"btn-full-screen"},fe.createElement(pn,{icon:`${ro?"md-iconfont icon-shrink":"md-iconfont icon-enlarge"}`,title:ro?"\u5173\u95ED\u5168\u5C4F":"\u5F00\u542F\u5168\u5C4F",actionName:"trigger-full-screen",onActionCallback:Ss})))},Gt=Me(75790),Zt=Me(28284),Cn=Me(37568),Qt=Me(99571),sn=Object.defineProperty,_t=Object.defineProperties,Zn=Object.getOwnPropertyDescriptors,Yn=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,kn=Object.prototype.propertyIsEnumerable,Rr=(ur,Hr,mi)=>Hr in ur?sn(ur,Hr,{enumerable:!0,configurable:!0,writable:!0,value:mi}):ur[Hr]=mi,mt=(ur,Hr)=>{for(var mi in Hr||(Hr={}))gn.call(Hr,mi)&&Rr(ur,mi,Hr[mi]);if(Yn)for(var mi of Yn(Hr))kn.call(Hr,mi)&&Rr(ur,mi,Hr[mi]);return ur},qe=(ur,Hr)=>_t(ur,Zn(Hr));const er={labelCol:{span:4},wrapperCol:{span:20}};var yi=({callback:ur,onCancel:Hr})=>{function mi(Ss){ur(Ss)}return fe.createElement(Zt.default,qe(mt({},er),{initialValues:{link:"http://",title:""},className:"link-panel",onFinish:mi,style:{width:500}}),fe.createElement(Zt.default.Item,{label:"\u94FE\u63A5\u5730\u5740",name:"link",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u94FE\u63A5\u5730\u5740"}]},fe.createElement(Cn.default,null)),fe.createElement(Zt.default.Item,{label:"\u94FE\u63A5\u6807\u9898",name:"title",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u94FE\u63A5\u6807\u9898"}]},fe.createElement(Cn.default,null)),fe.createElement("div",{className:"flex-container flex-end"},fe.createElement(Qt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),fe.createElement(Qt.ZP,{type:"ghost",onClick:Hr},"\u53D6\u6D88")))},pi=Me(44905),$t=Me(45596),Jt=Me(62957),hn=Me(77019),_n=Me(6077),xn=Me(59301),Yt=({callback:ur,onCancel:Hr})=>{const mi=document.createElement("canvas"),Ss=mi.getContext("2d");mi.width=1e3,mi.height=800,Ss.fillStyle="#ffffff",Ss.fillRect(0,0,mi.width,mi.height);const ro=mi.toDataURL("image/png");return xn.createElement(Jt.default,{open:!0,width:"100vw",style:{height:"100vh",top:0},footer:null,title:null,closable:!1},xn.createElement(hn.Z,{style:{height:"100vh"}},xn.createElement(_n.Z,{fullWidth:!0,noAssociationId:!0,showFullTools:!0,data:{src:ro,visible:!0,title:String(Date.now())},onOk:Ns=>{ur({src:Ns.url})},onClose:Hr})))},Fn=Me(30641),qr=Me(5269),ts=Me(6767),We={myPaletteDiv:"myPaletteDiv___Xjz2I",flowChartWrp:"flowChartWrp____f45r",maxH60:"maxH60___Pd4Re",drawerWrap:"drawerWrap___MfDw8"},Pe=Me(59301),je=(0,fe.forwardRef)(({onCancel:ur,editImgId:Hr,callback:mi},Ss)=>{let ro=(0,fe.useRef)(),Ns=(0,fe.useRef)(),bn=(0,fe.useRef)(),Vn=(0,fe.useRef)(!1);const rs=(0,fe.useRef)(!1);console.log("ref:",Ss);const[za,ca]=(0,fe.useState)(0),[si,mo]=(0,fe.useState)("100vh");return(0,fe.useEffect)(()=>{ca(1)},[]),(0,fe.useImperativeHandle)(Ss,()=>({setHeight:mo})),Pe.createElement("div",{ref:rs,className:"body-overflow-initial"},Pe.createElement(Fn.Z,{width:"100vw",height:si,footer:null,closable:!0,placement:"bottom",open:!!za,destroyOnClose:!0,maskClosable:!1,mask:!1,rootClassName:`zIndex-9999 ${We.drawerWrap}`,onClose:()=>{window.saveDrawData(Wa=>{mi({src:`/api/attachments/${Wa}`,id:Wa})})},title:Pe.createElement(hn.Z,{align:"middle"},Pe.createElement(qr.Z,{flex:1},"\u63D2\u5165\u6D41\u7A0B\u56FE"),Pe.createElement(qr.Z,{onClick:()=>{mo(si==="60px"?"100vh":"60px")}},Pe.createElement("span",{className:"current c-blue",style:{fontWeight:400}},"\u5C55\u5F00/\u6536\u8D77")),Pe.createElement(qr.Z,{onClick:()=>{window.saveDrawData(Wa=>{if(Wa===null){ts.ZP.warning({content:"\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u8BF7\u5148\u7ED8\u5236\u6D41\u7A0B\u56FE",key:"saveFlowChart"});return}ts.ZP.success({content:"\u4FDD\u5B58\u6210\u529F",key:"saveFlowChart",style:{zIndex:999999999}}),mi({src:`/api/attachments/${Wa}`,id:Wa,disabledClose:!0})})}},Pe.createElement(Qt.ZP,{type:"primary",className:"ml20"},"\u4FDD\u5B58")))},Pe.createElement("iframe",{src:`/drawio/src/main/webapp/?id=${Hr||""}&gapi=0&od=0&db=0&gh=0&gl=0&local=0`,width:"100%",height:"100%",frameBorder:"0",ref:Ns})))}),Ke=Me(90524),Te=Me(47889),fn=Me(71051);const Wn=Te.ZP.Group,Rn={margin:"0 8px"};var hs=({callback:ur,onCancel:Hr})=>{function mi(Ss){ur(Ss)}return fe.createElement(Zt.default,{className:"add-table-panel",initialValues:{row:3,col:2,align:"default"},onFinish:mi},fe.createElement("div",{className:"flex-container",style:{alignItems:"baseline"}},fe.createElement("span",{style:Rn},"\u5355\u5143\u683C\u6570\uFF1A"),fe.createElement("span",{style:Rn},"\u884C\u6570"),fe.createElement(Zt.default.Item,{name:"row",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u884C\u6570"}]},fe.createElement(fn.Z,null)),fe.createElement("span",{style:Rn},"\u5217\u6570"),fe.createElement(Zt.default.Item,{name:"col",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5217\u6570"}]},fe.createElement(fn.Z,null))),fe.createElement("div",{className:"flex-container",style:{marginTop:12,alignItems:"baseline"}},fe.createElement("span",{style:Rn},"\u5BF9\u9F50\u65B9\u5F0F\uFF1A"),fe.createElement(Zt.default.Item,{name:"align"},fe.createElement(Wn,null,fe.createElement(Te.ZP,{value:"default"},fe.createElement("i",{className:"fa fa-align-justify"})),fe.createElement(Te.ZP,{value:"left"},fe.createElement("i",{className:"fa fa-align-left"})),fe.createElement(Te.ZP,{value:"center"},fe.createElement("i",{className:"fa fa-align-center"})),fe.createElement(Te.ZP,{value:"right"},fe.createElement("i",{className:"fa fa-align-right"}))))),fe.createElement("div",{className:"flex-container flex-end"},fe.createElement(Qt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),fe.createElement(Qt.ZP,{type:"ghost",onClick:Hr},"\u53D6\u6D88")))},Ji=Me(71411),Ni=Me(11081),Ra=Me.n(Ni),qo=(0,fe.forwardRef)(({use3d:ur,width:Hr,height:mi,callback:Ss,showSaveButton:ro},Ns)=>{const bn=(0,fe.useRef)(),Vn=(0,fe.useRef)(),[rs,za]=(0,fe.useState)(!1),ca=(0,fe.useRef)({id:bn,appName:"graphing",width:Hr||1e3,height:mi||600,showToolBar:!0,showMenuBar:!0,allowStyleBar:!0,showAlgebraInput:!0,enableLabelDrags:!1,enableShiftDragZoom:!0,showToolBarHelp:!1,errorDialogsActive:!0,showTutorialLink:!0,showLogging:!0,useBrowserForJS:!1});(0,fe.useEffect)(()=>{Vn.current=new(Ra())(ca.current,!0),window.onload=function(){Vn.current.inject("applet_container")}},[]);const si=()=>{var mo=window.ggbApplet.getPNGBase64(1,!0,72);return Ss&&Ss(mo),mo};return(0,fe.useEffect)(()=>{ca.current.appName=rs?"3D":"graphing",Vn.current.inject("applet_container")},[rs]),(0,fe.useEffect)(()=>{za(ur)},[ur]),(0,fe.useImperativeHandle)(Ns,()=>({getImgData:si})),fe.createElement(fe.Fragment,null,fe.createElement("div",{style:{width:"100%",height:"100%"},id:"applet_container",ref:bn}),fe.createElement(hn.Z,{align:"middle"},fe.createElement(qr.Z,{flex:1},fe.createElement(Ji.Z,{size:"default",checkedChildren:"\u5173\u95ED3D\u56FE\u50CF",unCheckedChildren:"\u5F00\u542F3D\u56FE\u50CF",checked:rs,onChange:mo=>za(mo)})),fe.createElement(qr.Z,null,fe.createElement(Qt.ZP,{size:"large",onClick:si,style:{zIndex:8,marginTop:10},type:"primary"},"\u4FDD\u5B58\u5230\u7F16\u8F91\u5668"))))}),pl=Me(88615);const Xi="link",Cs="upload-image",Pa="add-flowchart",Ki="draw-image",ha="add-flowchart",Hn="code-block",ri="add-table",qa="------------",no={default:qa,left:`:${qa}`,center:`:${qa}:`,right:`${qa}:`};var sd=Me(17904),So=Me(49661);function uc(){}let lu=0;const ol=1e4,Oi="\u2581",cc="@\u2581\u2581@",ll="@\u2581@",Gu=` **\u6A21\u677F\u6807\u9898** \u6A21\u677F\u6B63\u6587\u5185\u5BB9\uFF0C\u53EF\u8F93\u5165\u6587\u672C\u5185\u5BB9\u548C\u7C98\u8D34\u56FE\u7247\u7B49\u64CD\u4F5C`,Ba=["pptm","pptx","ppt","pot","pps","ppa","potx","ppsx","ppam","pptm","potm","ppsm","doc","docx","dot","dotx","docm","dotm","xls","xlsx","csv","xlt","xla","xltx","xlsm","xltm","xlam","xlsb"];function Na(ur){return/^\d+$/.test(ur)?`${ur}px`:ur}const Cr=navigator.platform.toUpperCase().indexOf("MAC")>=0?"Cmd":"Ctrl",Wr={[Cr+"-B"]:"bold",[Cr+"-I"]:"italic"},xs={[Xi]:"\u6DFB\u52A0\u94FE\u63A5",[Hn]:"\u6DFB\u52A0\u4EE3\u7801\u5757",[Cs]:"\u6DFB\u52A0\u56FE\u7247",[Ki]:"\u6DFB\u52A0\u753B\u56FE",[Pa]:"\u63D2\u5165\u6D41\u7A0B\u56FE",[ri]:"\u6DFB\u52A0\u8868\u683C","maths-latex":"\u6570\u5B66\u56FE\u50CF","inline-latex":"LATEX\u516C\u5F0F"};var Ps=({defaultValue:ur="",onChange:Hr,width:mi="100%",height:Ss=400,miniToolbar:ro=!1,isFocus:Ns=!1,watch:bn,insertTemp:Vn,mode:rs="markdown",id:za="markdown-editor-id",showResizeBar:ca=!1,noStorage:si=!1,showNullButton:mo=!1,showNullProgramButton:Wa=!1,hidetoolBar:Da=!1,fullScreen:Vs=!1,onBlur:io,onCMBeforeChange:Hl,onFullScreen:Kl,className:xr="",disablePaste:Ln=!1,disabled:go=!1,disabledFill:Mo=!1,placeholder:ps="",values:Dd="",extraUse:Wf})=>{const[nr,Rh]=(0,fe.useState)(null),[ad,fc]=(0,fe.useState)(ur),[Do,Ho]=(0,fe.useState)(bn),[_a,ul]=(0,fe.useState)(Vs),[pa,ml]=(0,fe.useState)(""),[ql,Mc]=(0,fe.useState)(0),[Wc,Td]=(0,fe.useState)(Ss),[ho,Dc]=(0,fe.useState)(!1),[xl,Qf]=(0,fe.useState)(0),[bl,Zf]=(0,fe.useState)(0),Xu=(0,fe.useRef)(),Tl=(0,fe.useRef)(),oo=(0,fe.useRef)(),Yf=(0,fe.useRef)(),Uo=(0,fe.useRef)(),sf=(0,fe.useRef)(),Wu=(0,st.useDispatch)();(0,fe.useEffect)(()=>{const Ri=window.scrollY||window.pageYOffset;fc(Dd),nr==null||nr.setValue(Dd),window.scrollTo(0,Ri)},[Dd]),(0,fe.useEffect)(()=>{Kl==null||Kl(_a)},[_a]),(0,fe.useEffect)(()=>{if(Xu.current){let Ri=function(tt,Ye){var ut;if(Ln){Ye.preventDefault();return}const ht=Ye.clipboardData;if(ht){const Wt=ht.types.toString(),Kt=ht.items;if(Wt==="Files"||ht.types.indexOf("Files")>-1){if(Ye.preventDefault(),rs=="stex")return;try{let qt=Kt[1];((ut=Kt[0])==null?void 0:ut.kind)==="file"&&(qt=Kt[0]);const Gn=qt.getAsFile(),rr=Gn.name.split(".").pop();(0,$t.I)(Gn,un=>{var dr,Pr,fr;un.id?((dr=Gn==null?void 0:Gn.type)==null?void 0:dr.indexOf("image"))>-1?Se.replaceSelection(``):((Pr=Gn==null?void 0:Gn.type)==null?void 0:Pr.indexOf("video"))>-1?Se.replaceSelection(``):((fr=Gn==null?void 0:Gn.type)==null?void 0:fr.indexOf("pdf"))>-1?Se.replaceSelection(`${Gn.name}`):Ba.includes(rr)?Se.replaceSelection(`${Gn.name}`):Se.replaceSelection(`[${Gn.name}](/api/attachments/${un.id}?type=${un.content_type})`):(un==null?void 0:un.status)===401&&(document.location.href="/user/login")})}catch(qt){ts.ZP.warning("\u8BF7\u4F7F\u7528chrome\u6D4F\u89C8\u5668\u7C98\u8D34")}return!0}else return!0}return!0};const Se=nt().fromTextArea(Xu.current,{mode:rs,lineNumbers:!ro,lineWrapping:!0,value:ur,autoCloseTags:!0,autoCloseBrackets:!0});return Se.on("keyup",function(tt,Ye){Ye.keyCode===8&&(tt.getValue()==""?Se.setOption("placeholder",ps):Se.setOption("placeholder",null))}),Se.on("keydown",function(tt,Ye){if(Ye.keyCode===8){var ut=Jf(tt);ut&&Ye.preventDefault()}}),Ns&&Se.focus(),Se.on("paste",Ri),go&&Se.on("beforeChange",function(tt,Ye){(Ye.origin==="paste"||Ye.origin==="+input")&&Ye.cancel()}),Rh(Se),()=>{Se.off("paste",Ri)}}},[]);const Pu=(0,fe.useCallback)(()=>{if(Tl.current)try{}catch(Ri){console.log(Ri,"---- to set md editor body height")}},[Wc,Tl,_a]);(0,fe.useEffect)(()=>{function Ri(){let Se=new $e.Z(tt=>{for(let Ye of tt)(Ye.target.offsetHeight>0||Ye.target.offsetWidth>0)&&(Pu(),nr.setSize("100%","100%"),nr.refresh())});return Se.observe(Xu.current.parentElement),Se}if(nr){const Se=Ri();return()=>{var tt,Ye;(tt=Xu.current)!=null&&tt.parentElement&&Se.unobserve((Ye=Xu.current)==null?void 0:Ye.parentElement)}}},[nr,Pu]),(0,fe.useEffect)(()=>{if(nr){let Ri=[];for(const[Se,tt]of Object.entries(Wr)){let Ye={[Se]:()=>{Ja(tt)}};Ri.push(Ye),nr.addKeyMap(Ye)}return()=>{for(let Se of Ri)nr.removeKeyMap(Se)}}},[nr]),(0,fe.useEffect)(()=>{Vs!==_a&&ul(Vs)},[Vs]),(0,sd.Z)(()=>{if(!si&&ql>0){let Ri=new Date().getTime(),Se=window.sessionStorage.getItem(za);Ri>=ql+ol&&(!Se||Se!==ad)&&(window.sessionStorage.setItem(za,ad),Dc(!0))}},ol),(0,fe.useEffect)(()=>{Ho(bn)},[nr,bn]),(0,fe.useEffect)(()=>{nr&&Ns&&nr.focus()},[nr,Ns]),(0,fe.useEffect)(()=>{if(Do&&nr){let Ri=function(tt){let Ye=tt.target;if(Yf.current){let ut=Ye.scrollTop/Ye.scrollHeight;Yf.current.scrollTop=Yf.current.scrollHeight*ut}};const Se=nr.getScrollerElement();return Se.addEventListener("scroll",Ri),()=>{Se.removeEventListener("scroll",Ri)}}},[nr,Do]),(0,fe.useEffect)(()=>{if(nr&&Hl){let Ri=function(Se,tt){Hl(Se,tt)};return nr.on("beforeChange",Ri),()=>{nr.off("beforeChange",Ri)}}},[nr,Hl]),(0,fe.useEffect)(()=>{if(nr&&io){let Ri=function(){io(nr.getValue())};return nr.on("blur",Ri),()=>{nr.off("blur",Ri)}}},[nr,io]);function Jf(Ri,Se){var tt=Ri.getDoc(),Ye=tt.getCursor(),ut=tt.getLine(Ye.line),ht=ut.charAt(Ye.ch-1),Wt=ut.lastIndexOf("@\u2581@",Ye.ch),Kt=ut.lastIndexOf("@\u2581\u2581@",Ye.ch),qt=Wt>Kt?Wt:Kt,Gn=Wt>Kt?3:4;if(cc.indexOf(ht)===-1)return null;if(console.log("change1:",Se,Ri,ut,Ye,qt,Wt,Kt,ht),qt>=0&&Ye.ch-qt<5){var rr=qt+Gn;return tt.replaceRange("",{line:Ye.line,ch:qt},{line:Ye.line,ch:rr}),{line:Ye.line,ch:rr}}return null}(0,fe.useEffect)(()=>{if(nr){let Ri=function(Se,tt){const Ye=Se.getValue();fc(Ye),Mc(new Date().getTime()),Se.getScrollerElement().dispatchEvent(new CustomEvent("scroll")),Hr&&(Wa?Hr(Ye,Bu(Ye)):Hr(Ye))};return nr.on("change",Ri),()=>{nr.off("change",Ri)}}},[nr,Hr]),(0,fe.useEffect)(()=>{if(nr)if(ur==null)nr.setValue(""),fc("");else{const Ri=window.scrollY||window.pageYOffset;ur!==nr.getValue()&&(nr.setValue(ur),fc(ur),nr.setCursor(go?1:nr.lineCount(),0),window.scrollTo(0,Ri))}},[nr,ur]);const Ja=(0,fe.useCallback)(Ri=>{const Se=nr.getCursor(),tt=nr.getSelection();let Ye=tt.split(` `);switch(Ri){case"bold":return nr.replaceSelection("**"+tt+"**"),tt===""&&nr.setCursor(Se.line,Se.ch+2),nr.focus();case"italic":return nr.replaceSelection("*"+tt+"*"),tt===""&&nr.setCursor(Se.line,Se.ch+1),nr.focus();case"code":return nr.replaceSelection("`"+tt+"`"),tt===""&&nr.setCursor(Se.line,Se.ch+1),nr.focus();case"inline-latex":return(0,So.Ye)(Wu)?void 0:(ml("inline-latex"),nr.focus());case"latex":return nr.replaceSelection("```latex\n"+tt+"\n```"),nr.setCursor(Se.line+1,tt.length+1),nr.focus();case"line-break":return nr.replaceSelection(`
`),nr.focus();case"list-ul":return tt===""?nr.replaceSelection("- "+tt):nr.replaceSelection(Ye.map(ut=>ut===""?"":`- ${ut}`).join(` `)),nr.focus();case"list-ol":return tt===""?nr.replaceSelection("1. "+tt):nr.replaceSelection(Ye.map((ut,ht)=>ut===""?"":`${ht+1}. ${ut}`).join(` `)),nr.focus();case"add-null-ch":return tt===""&&nr.setCursor(Se.line,Se.ch),nr.replaceSelection(Oi),nr.focus();case"add-signal":return tt===""&&nr.setCursor(Se.line,Se.ch),nr.replaceSelection(ll),nr.focus();case"add-multiple":return tt===""&&nr.setCursor(Se.line,Se.ch),nr.replaceSelection(cc),nr.focus();case"inster-template-1":return tt===""&&nr.setCursor(Se.line,Se.ch),nr.replaceSelection(Gu),nr.focus();case"eraser":return nr.setValue(""),nr.focus();case"trigger-watch":return Ho(!Do),nr.focus();case"trigger-full-screen":return ul(!_a),nr.focus();case Xi:ml(Xi);return;case Hn:ml(Hn);return;case Cs:ml(Cs);return;case Ki:ml(Ki);return;case"maths-latex":if((0,So.Ye)(Wu))return;ml("maths-latex");return;case Pa:Uo.current="",sessionStorage.removeItem("file_id"),ml(Pa);return;case ri:ml(ri);return;default:throw new Error}},[nr,Do,_a]),uu=(0,fe.useCallback)((Ri,Se)=>{var tt,Ye,ut,ht,Wt,Kt;Ri!=null&&Ri.disabledClose||ml("");const{src:qt,alt:Gn,id:rr}=Ri||{};switch(pa){case Xi:const{title:mr,link:br}=Ri;return nr.replaceSelection(`[${mr}](${br})`),nr.focus();case Hn:const{language:wr,content:Jn}=Ri;return nr.replaceSelection(["```"+wr,Jn,"```"].join(` `)),nr.focus();case"maths-latex":for(var un=atob(Ri),dr=new Uint8Array(un.length),Pr=0;Pr{wi.id?nr.replaceSelection(`![,](/api/attachments/${wi.id}?type=${wi.content_type})`):(wi==null?void 0:wi.status)===401&&(document.location.href="/user/login")});break;case"inline-latex":if((0,So.Ye)(Wu))return;nr.replaceSelection("`$$"+Ri+"$$`");break;case ha:if(!rr)return;nr.getValue().indexOf(qt)===-1?nr.replaceSelection(`
${Gn||
`):document.getElementById(rr).src=Ke.Z.API_SERVER+qt+"?t="+Date.now();break;case Cs:case Ki:const Fr=Se,Mr=(ut=(Ye=(tt=Fr==null?void 0:Fr.name)==null?void 0:tt.split("."))==null?void 0:Ye.pop)==null?void 0:ut.call(Ye);return((ht=Fr==null?void 0:Fr.type)==null?void 0:ht.indexOf("image"))>-1||!(Fr!=null&&Fr.type)?Fr!=null&&Fr.align||Fr!=null&&Fr.width?nr.replaceSelection(`

${Gn||

`):nr.replaceSelection(`${Gn||`):((Wt=Fr==null?void 0:Fr.type)==null?void 0:Wt.indexOf("video"))>-1?nr.replaceSelection(``):((Kt=Fr==null?void 0:Fr.type)==null?void 0:Kt.indexOf("pdf"))>-1?nr.replaceSelection(`${Fr.name}`):Ba.includes(Mr)?nr.replaceSelection(`${Fr.name}`):nr.replaceSelection(`[${Fr.name}](${qt})`),nr.focus();case ri:const{row:Dr,col:_r,align:Lr}=Ri;let Ur=` `;for(let wi=0;wi{switch(pa){case Xi:return fe.createElement(yi,{callback:uu,onCancel:Il});case Hn:return fe.createElement(pi.Z,{callback:uu,onCancel:Il});case Cs:return fe.createElement($t.Z,{callback:uu,onCancel:Il});case Pa:return fe.createElement(je,{editImgId:Uo.current,callback:uu,onCancel:Il});case ri:return fe.createElement(hs,{callback:uu,onCancel:Il});case"maths-latex":return fe.createElement(qo,{showSaveButton:!0,callback:uu});case"inline-latex":return fe.createElement(pl.Z,{showSaveButton:!0,callback:uu});default:return null}},[pa]);function Il(){ml("")}(0,fe.useEffect)(()=>{if(oo.current){let Ri=function(Wt){ut=!0,ht=Wt.pageY},Se=function(){ut=!1},tt=function(Wt){if(ut){let Kt=Wt.pageY-ht;Kt<0&&(Kt=0),Kt>300&&(Kt=300);let qt=Ss+Kt+"px";Td(qt)}},Ye=oo.current,ut=!1,ht=0;return Ye.addEventListener("mousedown",Ri),document.addEventListener("mousemove",tt),document.addEventListener("mouseup",Se),()=>{Ye.removeEventListener("mousedown",Ri),document.removeEventListener("mousemove",tt),document.removeEventListener("mouseup",Se)}}},[nr,oo]),(0,fe.useEffect)(()=>{Td(Ss)},[Ss]);const Tc=Na(mi),od=Na(Wc),Id={width:Tc,height:od},Ip=(0,fe.useMemo)(()=>{if(ql){let Ri=new Date(ql),Se=Ri.getHours(),tt=Ri.getMinutes(),Ye=Ri.getSeconds();return Se=Se<10?"0"+Se:Se,tt=tt<10?"0"+tt:tt,Ye=Ye<10?"0"+Ye:Ye,`${Se}:${tt}:${Ye}`}return 0},[ql]),Bu=Ri=>{const Se=[];if(Wa){let tt=-1;Ri=Ri.replace(/(@▁▁@|@▁@)/g,function(Ye,ut,ht){Se.push({multiLine:Ye!==ll})})}return Se};function Fp(){window.sessionStorage.removeItem(za),Dc(!1),Mc(0)}function af(){Dc(!1),Mc(0),nr.setValue(window.sessionStorage.getItem(za))}(0,fe.useEffect)(()=>{xs[pa]&&pa!==Ki&&pa!==Pa&&setTimeout(()=>{const Ri=document.getElementsByClassName("markdown-popup-form")[0],Se=window.innerWidth/2-Ri.offsetWidth/2,tt=window.innerHeight/2-Ri.offsetHeight/2;Qf(Se),Zf(tt)},0)},[pa]);const Qu=Ri=>{Ri.preventDefault();const Se=Ri.clientX-xl,tt=Ri.clientY-bl;document.body.onmousemove=Ye=>{let ut=Ye.clientX-Se,ht=Ye.clientY-tt;const Wt=document.getElementsByClassName("markdown-popup-form")[0],Kt=window.innerWidth-Wt.offsetWidth,qt=window.innerHeight-Wt.offsetHeight;ut=Math.max(0,Math.min(ut,Kt)),ht=Math.max(0,Math.min(ht,qt)),cu(Ye.clientX,Ye.clientY,Se,tt)&&(Qf(ut),Zf(ht))},document.body.onmouseup=function(){document.body.onmousemove=null}},cu=(Ri,Se,tt,Ye)=>{const ut=document.body.clientHeight,ht=document.body.clientWidth;return Ri<20&&tt>Ri||Ri>ht-20&&ttSe||Se>ut-20&&Ye{var Se;Uo.current=Ri,(Se=sf.current)==null||Se.setHeight("100vh"),setTimeout(()=>{ml("add-flowchart")},150)}})):null))),ca?fe.createElement("a",{ref:oo,className:"editor-resize"}):null,pa===Ki&&fe.createElement(Yt,{callback:uu,onCancel:Il}),pa===Pa&&fe.createElement(je,{ref:sf,editImgId:Uo.current,callback:uu,onCancel:Il}),fe.createElement(Gt.Z,null,xs[pa]&&pa!==Ki&&pa!==Pa?fe.createElement(Jt.default,{maskClosable:!1,centered:!0,style:{position:"absolute",left:xl,top:bl},title:fe.createElement("div",{style:{cursor:"move"},onMouseDown:Qu},xs[pa]),open:!0,onCancel:Il,footer:null,destroyOnClose:!0,width:pa===Pa?"1200px":null,height:pa===Pa?"80vh":null,className:"markdown-popup-form"},Tp):null))}},45596:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return Nn},I:function(){return ir}});var fe=Me(28284),st=Me(6767),rt=Me(37568),nt=Me(77736),$e=Me(71051),at=Me(47889),lt=Me(99571),it=Me(67303),vt=Me(59301),He=Me(59301),ct=Object.defineProperty,Mt=Object.defineProperties,Nt=Object.getOwnPropertyDescriptors,St=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,gt=Object.prototype.propertyIsEnumerable,Ct=(Gt,Zt,Cn)=>Zt in Gt?ct(Gt,Zt,{enumerable:!0,configurable:!0,writable:!0,value:Cn}):Gt[Zt]=Cn,Ft=(Gt,Zt)=>{for(var Cn in Zt||(Zt={}))xt.call(Zt,Cn)&&Ct(Gt,Cn,Zt[Cn]);if(St)for(var Cn of St(Zt))gt.call(Zt,Cn)&&Ct(Gt,Cn,Zt[Cn]);return Gt},It=(Gt,Zt)=>Mt(Gt,Nt(Zt));const{useForm:Ot}=fe.default,ln={width:280,marginRight:10},jn={labelCol:{span:5},wrapperCol:{span:19}};var Nn=({callback:Gt,onCancel:Zt})=>{const[Cn]=Ot();let Qt=(0,vt.useRef)();function sn(Yn){Qt.current.width=Cn.getFieldValue("width"),Qt.current.align=Cn.getFieldValue("align"),Gt(Yn,Qt.current)}function _t(Yn,gn){if(Yn.status===-1){st.ZP.error(Yn.message);return}Cn.setFieldsValue({src:`/api/attachments/${Yn.id}`,type:gn.type})}function Zn(Yn){let gn=Yn.target.files[0];Qt.current=gn,ir(gn,_t)}return He.createElement(fe.default,It(Ft({form:Cn},jn),{className:"upload-image-panel",onFinish:sn,style:{width:470,overflow:"hidden"}}),He.createElement(fe.default.Item,{label:"\u56FE\u7247\u5730\u5740",required:!0},He.createElement("div",{className:"flex-container"},He.createElement(fe.default.Item,{noStyle:!0,name:"src",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u56FE\u7247\u5730\u5740"}]},He.createElement(rt.default,{style:ln})),He.createElement(pn,{onFileChange:Zn}))),He.createElement(fe.default.Item,{label:"\u56FE\u7247\u63CF\u8FF0",name:"alt"},He.createElement(rt.default,{style:{width:264}})),He.createElement(fe.default.Item,{label:"\u56FE\u7247\u5BBD\u5EA6",name:"width"},He.createElement(nt.Z,null,He.createElement(fe.default.Item,{name:"width",style:{margin:0}},He.createElement($e.Z,{style:{width:264}})),He.createElement("span",{className:"ml8"},"%"))),He.createElement(fe.default.Item,{label:"\u5BF9\u9F50\u65B9\u5F0F",name:"align"},He.createElement(at.ZP.Group,{name:"align",defaultValue:1,options:[{value:"left",label:"\u5DE6\u5BF9\u9F50"},{value:"center",label:"\u5C45\u4E2D\u5BF9\u9F50"},{value:"right",label:"\u53F3\u5BF9\u9F50"}]})),He.createElement("aside",null,He.createElement(fe.default.Item,{style:{textAlign:"right",position:"relative",right:-98}},He.createElement(lt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),He.createElement(lt.ZP,{type:"default",onClick:Zt},"\u53D6\u6D88"))))};function pn({onFileChange:Gt}){return He.createElement("label",{className:"upload-button",style:{cursor:"pointer"}},"\u672C\u5730\u4E0A\u4F20",He.createElement("input",{type:"file",onChange:Gt}))}function ir(Gt,Zt){if(!Gt)throw new String("\u6CA1\u6709\u6587\u4EF6");let Cn=new FormData;Cn.append("editormd-image-file",Gt),Cn.append("file_param_name","editormd-image-file"),Cn.append("byxhr","true");var Qt=new window.XMLHttpRequest;Qt.withCredentials=!0,Qt.addEventListener("load",function(sn){Zt(JSON.parse(sn.target.responseText),Gt)},!1),Qt.addEventListener("error",function(sn){console.error(sn)},!1),Qt.open("POST",`${it.KI}/api/attachments.json`),Qt.send(Cn)}},75790:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return rt}});var fe=Me(59301),st=Me(4676);class rt extends fe.Component{constructor($e){super($e);const at=window.document;this.node=at.createElement("div"),at.body.appendChild(this.node)}render(){const{children:$e}=this.props;return(0,st.createPortal)($e,this.node)}componentWillUnmount(){window.document.body.removeChild(this.node)}}},17904:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return st}});var fe=Me(59301);function st(rt,nt){const $e=(0,fe.useRef)();(0,fe.useEffect)(()=>{$e.current=rt}),(0,fe.useEffect)(()=>{function at(){$e.current()}if(nt!==null){let lt=setInterval(at,nt);return()=>clearInterval(lt)}},[nt])}},69577:function(Tt,zn,Me){"use strict";Me.d(zn,{Q8:function(){return qe},d0:function(){return er},w6:function(){return mt}});var fe=Me(59301),st=Me(16326),rt=Me(82326),nt=Me(6767),$e=Me(62957),at=Me(47889),lt=Me(77019),it=Me(5269),vt=Me(25399),He=Me(62673),ct=Me(99571),Mt=Me(56656),Nt=Me.n(Mt),St=Me(34055),xt=Me(82093),gt=Me(89392),Ct=Me.n(gt),Ft=Me(49661),It=Me(69063),Ot=Me(76560),ln=Me(2748),jn=Me(23869),Nn=Me(97202),pn=Me(6681),ir=Me(67135),Gt=Me(59301),Zt=Object.defineProperty,Cn=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,sn=Object.getOwnPropertySymbols,_t=Object.prototype.hasOwnProperty,Zn=Object.prototype.propertyIsEnumerable,Yn=(hn,_n,xn)=>_n in hn?Zt(hn,_n,{enumerable:!0,configurable:!0,writable:!0,value:xn}):hn[_n]=xn,gn=(hn,_n)=>{for(var xn in _n||(_n={}))_t.call(_n,xn)&&Yn(hn,xn,_n[xn]);if(sn)for(var xn of sn(_n))Zn.call(_n,xn)&&Yn(hn,xn,_n[xn]);return hn},kn=(hn,_n)=>Cn(hn,Qt(_n)),Rr=(hn,_n,xn)=>new Promise((Yt,Fn)=>{var qr=Pe=>{try{We(xn.next(Pe))}catch(we){Fn(we)}},ts=Pe=>{try{We(xn.throw(Pe))}catch(we){Fn(we)}},We=Pe=>Pe.done?Yt(Pe.value):Promise.resolve(Pe.value).then(qr,ts);We((xn=xn.apply(hn,_n)).next())});function mt(hn,_n){const xn=[];for(let Yt=hn;Yt<_n;Yt++)xn.push(Yt);return xn}const qe=(hn,_n,xn)=>{const Yt=hnNt()(_n).endOf("day"),qr=hn{const xn=parseInt(Nt()(hn).format("HH")),Yt=parseInt(Nt()().format("HH")),Fn=parseInt(Nt()().format("mm"));if(!hn)return{disabledHours:()=>mt(0,Yt),disabledMinutes:()=>mt(0,Fn)};if(_n){const qr=parseInt(Nt()(_n).format("HH")),ts=parseInt(Nt()(_n).format("mm"));return Nt()(hn).isSame(Nt()(_n),"day")?{disabledHours:()=>mt(0,qr),disabledMinutes:()=>xn<=qr?mt(0,ts):[]}:void 0}if(Nt()(hn).isSame(Nt()(),"day"))return{disabledHours:()=>mt(0,Yt),disabledMinutes:()=>Nt()(hn).isSame(Nt()(),"hour")&&xn<=Yt?mt(0,Fn):[]}},yi=(hn,_n)=>hn==null?void 0:hn.map(xn=>{var Yt;return(Yt=_n==null?void 0:_n.find(Fn=>Fn.value===xn))==null?void 0:Yt.id}),{RangePicker:pi}=st.default,{Option:$t}=rt.default,Jt=({shixunHomeworks:hn,loading:_n,dispatch:xn,classroomList:Yt,user:Fn})=>{var qr,ts,We,Pe,we,je,Ke,Te,fn;const Wn=(0,Ot.useParams)(),{workSetting:Rn,workList:hs,shixunWorkList:Ji,headerInfo:Ni,changeData:Ra}=hn,[ws,qo]=(0,fe.useState)(!1),[pl,Xi]=(0,fe.useState)(!1);let[Cs,Pa]=(0,fe.useState)([]),[Ki,ha]=(0,fe.useState)([]),[Hn,ri]=(0,fe.useState)({unified_setting:!1,publish_time:"",end_time:"",allow_late:!1,unified_late:!0,late_time:"",late_penalty:0,penalty_type:ln.Q.Percent,challenge_settings:[],work_efficiency:!1,shixun_evaluation:"",answer_open_evaluation:!1,answer_public:!1,score_open:!1,comment_public:!0,total_score:"",eff_score:0,action_analysis:!1,work_end_forbid_evaluate:!1});const[qa,no]=(0,fe.useState)({}),[sd,So]=(0,fe.useState)({});(0,fe.useEffect)(()=>()=>{Pa([])},[]),(0,fe.useEffect)(()=>{qo(!(0,St.GJ)())},[(0,St.GJ)()]);const uc=()=>{xn({type:"shixunHomeworks/getWorkSetting",payload:gn({},Wn)})};(0,fe.useEffect)(()=>{if(!(Rn!=null&&Rn.course_id))return;Object.keys(Hn).map(function(Wr){Hn[Wr]=Rn[Wr]}),(!Hn.allow_late||!Hn.unified_late)&&(Hn.late_penalty=20,Hn.penalty_type=ln.Q.Percent),Hn.unified_setting||(Hn.unified_late=!1,Hn.unified_anonymous_comment=!1,Hn.unified_anonymous_appeal=!1),Cs=JSON.parse(JSON.stringify(Rn.group_settings.map(Wr=>kn(gn({},Wr),{group_name:[Wr.group_name]})).filter(Wr=>Wr.publish_time!==null))),Ki=JSON.parse(JSON.stringify(Rn.allow_late_settings.map(Wr=>kn(gn({},Wr),{group_name:[Wr.group_name]})).filter(Wr=>Wr.late_time!==null))),ri(gn({},Hn));const Cr=(0,Ft.QE)((Cs==null?void 0:Cs.length)>0?Cs:[]);Pa([...Cr]),(Ki==null?void 0:Ki.length)<=0?ha([{penalty_type:ln.Q.Percent,late_penalty:20}]):ha([...Ki])},[Rn]);const lu=()=>Rr(void 0,null,function*(){var Cr,Wr;if(((Cr=Fn==null?void 0:Fn.userInfo)==null?void 0:Cr.user_status)===2){(0,jn.Rd)();return}const xs=JSON.parse(JSON.stringify(Hn));if(xs.challenge_settings.filter(ur=>!ur.hide),xs.categoryId=Wn.categoryId,(Wr=xs.challenge_settings)!=null&&Wr.every(ur=>!ur.checked)){nt.ZP.warning("\u5173\u5361\u4E0D\u80FD\u5168\u90E8\u8BBE\u7F6E\u4E3A\u53EF\u4E0D\u505A");return}if(console.log(Cs),!Hn.unified_setting)Cs=Cs==null?void 0:Cs.map(ur=>{var Hr;if(!ur.publish_time||!ur.end_time)throw nt.ZP.error("\u8BF7\u628A\u53D1\u5E03\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u53D1\u5E03\u65F6\u95F4\u586B\u5199\u5B8C\u6574");if(!ur.group_name)throw nt.ZP.error("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0"),new String("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0");return ur.group_name=typeof(ur==null?void 0:ur.group_name)=="string"?[ur==null?void 0:ur.group_name]:ur==null?void 0:ur.group_name,ur.group_id=(Hr=Rn.group_settings)==null?void 0:Hr.filter(mi=>{var Ss;return(Ss=ur==null?void 0:ur.group_name)==null?void 0:Ss.includes(mi.group_name)}).map(mi=>mi.group_id||mi.id).toString().split(","),ur});else if(!Hn.publish_time||!Hn.end_time)throw nt.ZP.error("\u53D1\u5E03\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A"),new String("\u53D1\u5E03\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A");if(xs.group_settings=Cs,Hn.allow_late)if(Hn.unified_late){if(Hn.late_penalty===null||Hn.late_penalty===void 0||Hn.late_penalty<0||Hn.late_penalty>100)throw nt.ZP.error("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100"),new String("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100");if(!Hn.late_time)throw nt.ZP.error("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574")}else Ki=Ki==null?void 0:Ki.map(ur=>{var Hr,mi;if(ur.late_penalty===null||ur.late_penalty===void 0||ur.late_penalty<0||ur.late_penalty>100)throw nt.ZP.error("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100"),new String("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100");if(!ur.late_time)throw nt.ZP.error("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574");if(!ur.group_name)throw nt.ZP.error("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0"),new String("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0");return ur.group_name=typeof(ur==null?void 0:ur.group_name)=="string"?[ur==null?void 0:ur.group_name]:ur==null?void 0:ur.group_name,ur.group_id=(mi=(Hr=ur==null?void 0:ur.group_name)==null?void 0:Hr.map(Ss=>{var ro,Ns;let bn=(Ns=(ro=Rn.group_settings)==null?void 0:ro.filter(Vn=>(Vn==null?void 0:Vn.group_name)===Ss))==null?void 0:Ns[0];return bn==null?void 0:bn.group_id}))==null?void 0:mi.toString().split(","),ur}),xs.allow_late_settings=Ki;let Ps=yield(0,ir.Tr)({homework_common_ids:[parseInt(Wn.categoryId)],course_id:Wn.coursesId,type:"homework_common"});(Ps==null?void 0:Ps.student_count)===0?ol(xs):(So(xs),no(Ps))}),ol=Cr=>{var Wr;if(Cr.total_score===null){nt.ZP.warning("\u603B\u5206\u503C\u4E0D\u80FD\u4E3A\u7A7A");return}if(Cr!=null&&Cr.work_efficiency&&Cr.eff_score===null){nt.ZP.warning("\u6548\u7387\u5206\u4E0D\u80FD\u4E3A\u7A7A");return}const xs=Cr.challenge_settings.reduce((Hr,mi)=>Hr+Number(mi.challenge_score),0);if((xs==null?void 0:xs.toFixed(10))!==((Wr=Cr.total_score-Cr.eff_score)==null?void 0:Wr.toFixed(10))){nt.ZP.warning(`\u6548\u7387\u5206\u52A0\u5173\u5361\u4EFB\u52A1\u603B\u5206\u5FC5\u987B\u7B49\u4E8E\u603B\u5206\u503C\uFF1A${Cr.total_score}\u5206`);return}const Ps={shixun_evaluation:Cr.shixun_evaluation,challenge_settings:Cr.challenge_settings};let ur=()=>{var Hr;const mi=()=>Rr(void 0,null,function*(){Xi(!0),(yield(0,xt.ZP)(`/api/homework_commons/${Wn.categoryId}/publish_setting.json`,{method:"post",body:gn({},Cr)})).status===0&&(nt.ZP.success("\u66F4\u65B0\u6210\u529F"),uc(),xn({type:"shixunHomeworks/getShixunWorkHeadInfo",payload:gn({},Wn)})),Xi(!1)});!(0,gt.isEqual)(Ra,Ps)&&!((Hr=Ni==null?void 0:Ni.homework_status)!=null&&Hr.includes("\u672A\u53D1\u5E03"))?$e.default.confirm({title:"\u66F4\u65B0\u6210\u7EE9",content:"\u60A8\u6539\u52A8\u4E86\u672C\u6B21\u4F5C\u4E1A\u7684\u5173\u5361\u5F97\u5206\u8BBE\u7F6E\uFF0C\u8FD9\u53EF\u80FD\u5BFC\u81F4\u5DF2\u5B8C\u6210\u4F5C\u4E1A\u7684\u5B66\u751F\u7684\u6210\u7EE9\u4EA7\u751F\u9519\u8BEF\u3002\u70B9\u51FB\u201C\u786E\u5B9A\u201D\u6309\u94AE\u5C06\u4FDD\u5B58\u6700\u65B0\u8BBE\u7F6E\u5E76\u6309\u6700\u65B0\u8BBE\u7F6E\u66F4\u65B0\u5168\u73ED\u6210\u7EE9\u3002",okText:"\u786E\u8BA4",cancelText:"\u53D6\u6D88",onOk:mi}):mi()};Rn!=null&&Rn.high_resources_consume&&!(Rn!=null&&Rn.high_resources_consume_permission)?xn({type:"classroomList/setActionTabs",payload:{key:"\u6388\u6743\u4F7F\u7528",id:Wn.coursesId,type:"shixun",type_id:Wn.categoryId,name:Rn.homework_name,fn:()=>{ur()}}}):ur()},Oi=(Cr,Wr,xs="group_id")=>{var Ps;return Wr?Wr.find(ur=>ur[xs]===Cr):(Ps=Rn==null?void 0:Rn.group_settings)==null?void 0:Ps.find(ur=>ur.group_id[0]===Cr)},cc=(Rn==null?void 0:Rn.allow_late)||(Rn==null?void 0:Rn.anonymous_comment),ll=Cr=>{var Wr,xs;const Ps=Oi(Cr,Rn==null?void 0:Rn.allow_late_settings,"id"),ur=Oi(Cr,Rn==null?void 0:Rn.anonymous_comment_settings),Hr=Oi(Cr);return(Rn==null?void 0:Rn.allow_late)&&Ps&&Nt()(Ps==null?void 0:Ps.late_time)<=Nt()()||(Rn==null?void 0:Rn.anonymous_comment)&&ur&&(ur==null?void 0:ur.evaluation_start)!==null||((xs=(Nt()(Hr==null?void 0:Hr.end_time)<=Nt()()&&((Wr=Rn==null?void 0:Rn.allow_late_settings)==null?void 0:Wr.filter(mi=>mi.group_id.includes(Cr))))[0])==null?void 0:xs.late_time)!=null},Gu=(0,fe.useMemo)(()=>(Rn==null?void 0:Rn.allow_late)||(Rn==null?void 0:Rn.all_group_late),[Rn,Ni]),Ba=Rn==null?void 0:Rn.anonymous_comment,Na=Cr=>{if(!Cr)return!1;const Wr=Oi(Cr,Rn==null?void 0:Rn.anonymous_comment_settings);return(Rn==null?void 0:Rn.anonymous_comment)&&Wr&&(Wr==null?void 0:Wr.evaluation_start)!==null},dc=(Cr,Wr)=>{var xs,Ps,ur,Hr,mi;Cr!=null&&Cr.group_id||(Cr.group_id=yi(Cr==null?void 0:Cr.group_name,Rn==null?void 0:Rn.group_settings)),xn({type:"classroomList/setActionTabs",payload:{key:"\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",data:Cr,index:Wr,rangePickerDisabled:(Ps=(xs=Cr==null?void 0:Cr.group_id)==null?void 0:xs[0])!=null&&Ps.publish_time?ws||(Nt()()<=Nt()((Hr=Oi((ur=Cr==null?void 0:Cr.group_id)==null?void 0:ur[0]))==null?void 0:Hr.publish_time)?!1:[!0,ll((mi=Cr==null?void 0:Cr.group_id)==null?void 0:mi[0])]):!1,disabledDate:Rn==null?void 0:Rn.course_end_date}})};return Gt.createElement("section",{className:It.Z.form},Gt.createElement("div",{className:It.Z.title},"\u4F5C\u4E1A\u53D1\u5E03",Gt.createElement("span",{className:"c-grey-666 font14",style:{fontWeight:400}},"\uFF08\u4F5C\u4E1A\u4E00\u65E6\u53D1\u5E03\u540E\u4E0D\u53EF\u53D8\u66F4\u8BD5\u9898\u53D1\u5E03\u6A21\u5F0F\uFF09")),Gt.createElement("div",null,Gt.createElement("div",{style:{background:"#F6F7F9",padding:"13px 30px",display:"flex",alignItems:"center"}},Gt.createElement(at.ZP.Group,{disabled:ws||!((qr=Ni==null?void 0:Ni.homework_status)!=null&&qr.includes("\u672A\u53D1\u5E03"))||(0,St.Rm)()&&!((ts=Yt.AssistantObject.practice)!=null&&ts.can_publish),value:Hn.unified_setting,onChange:Cr=>{var Wr;if(!((Wr=Ni==null?void 0:Ni.homework_status)!=null&&Wr.includes("\u672A\u53D1\u5E03"))){nt.ZP.error("\u5DF2\u53D1\u5E03\uFF0C\u4E0D\u80FD\u518D\u4FEE\u6539\u7EDF\u4E00\u8BBE\u7F6E");return}if(Hn.unified_setting=!Hn.unified_setting,Hn.unified_setting||(Hn.unified_late=!1,ha([{late_penalty:5}])),ri(Object.assign({},Hn)),Hn.unified_setting===!1&&Cs==""){Pa(Cs.concat({}));return}Hn.unified_setting&&(Pa([]),ha([{late_penalty:5}]))}},Gt.createElement(at.ZP,{value:!0,disabled:ws||!(Rn!=null&&Rn.manage_all_group),style:{marginRight:"50px"}},"\u7EDF\u4E00\u53D1\u5E03"),Gt.createElement(at.ZP,{disabled:ws||!((We=Rn==null?void 0:Rn.group_settings)!=null&&We.length),value:!1},"\u5206\u73ED\u53D1\u5E03")),((Pe=Rn==null?void 0:Rn.group_settings)==null?void 0:Pe.length)===0&&Gt.createElement("div",{style:{color:"rgba(0, 0, 0, 0.25)",height:"22px"}},"\uFF08\u672C\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03\u201C\uFF09")),Hn.unified_setting&&Gt.createElement("div",{style:{display:"flex",color:"#666666",background:"#F6F7F9",padding:"5px 30px",height:"50px",marginTop:"1px"}},Gt.createElement(lt.Z,{align:"middle"},Gt.createElement(it.Z,{style:{marginLeft:"23px"}},"\u53D1\u5E03\u65F6\u95F4"),Gt.createElement(it.Z,{className:"ml10"},Gt.createElement(st.default,{size:"large",disabled:ws||!((we=Ni==null?void 0:Ni.homework_status)!=null&&we.includes("\u672A\u53D1\u5E03")||(je=Ni==null?void 0:Ni.homework_status)!=null&&je.includes("\u672A\u5F00\u59CB"))||(0,St.Rm)()&&!((Ke=Yt.AssistantObject.practice)!=null&&Ke.can_publish),style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm"},allowClear:!1,format:"YYYY-MM-DD HH:mm",disabledDate:Cr=>qe(Cr,Rn==null?void 0:Rn.course_end_date),disabledTime:Cr=>er(Cr),value:Hn.publish_time?Nt()(Hn.publish_time):"",onChange:(Cr,Wr)=>{Hn.publish_time=Wr,(Hn.end_time==""||!Hn.end_time)&&Hn.unified_setting&&(Hn.end_time=Nt()(Cr).add(7,"days").format("YYYY-MM-DD HH:mm:ss")),ri(Object.assign({},Hn))}}))),Gt.createElement(lt.Z,{align:"middle",className:"pl30"},Gt.createElement(it.Z,null,"\u622A\u6B62\u65F6\u95F4"),Gt.createElement(it.Z,{className:"ml10"},Gt.createElement(st.default,{size:"large",style:{width:170},allowClear:!1,placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Nt()((0,Ft.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",disabled:(Rn==null?void 0:Rn.allow_late)&&(Rn==null?void 0:Rn.homework_status.includes("\u5DF2\u622A\u6B62"))||ws||(Rn==null?void 0:Rn.allow_late)&&Nt()()>=Nt()(Rn==null?void 0:Rn.end_time)||(0,St.Rm)()&&!((Te=Yt.AssistantObject.practice)!=null&&Te.can_publish),disabledDate:Cr=>qe(Cr,Rn==null?void 0:Rn.course_end_date,Hn.publish_time),disabledTime:Cr=>er(Cr,Hn.publish_time),value:Hn.end_time?Nt()(Hn.end_time):"",onChange:(Cr,Wr)=>{Hn.end_time=Wr,ri(Object.assign({},Hn))}})))),!Hn.unified_setting&&(Cs==null?void 0:Cs.length)>0&&Gt.createElement(lt.Z,{style:{display:"flex",color:"#666666",background:"#F6F7F9",padding:"5px 30px",marginTop:"1px"}},Cs&&Cs.map(function(Cr,Wr){var xs,Ps,ur,Hr,mi,Ss,ro;return Gt.createElement(it.Z,{span:24,key:Wr},Gt.createElement(lt.Z,{gutter:[8,16],style:{display:"flex",alignItems:"center",marginBottom:Wr==(Cs==null?void 0:Cs.length)-1?"0px":"10px"}},Gt.createElement("div",{style:{minWidth:85,marginRight:"15px",textAlign:"right"}},"\u53D1\u5E03\u89C4\u5219",Wr+1),Gt.createElement(rt.default,{disabled:ws||((xs=Ni==null?void 0:Ni.homework_status)!=null&&xs.includes("\u672A\u53D1\u5E03")&&Cr.id||Nt()(){var bn;if((0,St.Rm)()&&!((bn=Yt.AssistantObject.practice)!=null&&bn.can_publish)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Cs[Wr].group_name=Ns,Cs[Wr].group_id=Cr.group_id;const Vn=(0,gt.flattenDeep)(Cs.map(za=>za.group_name)),rs=Ki.map(za=>{let ca=(za==null?void 0:za.group_name)||[];return kn(gn({},za),{group_name:(0,gt.remove)(ca,si=>Vn.includes(si))})});ha(rs),Pa(Cs.slice())},maxTagCount:4,maxTagPlaceholder:Ns=>Gt.createElement("div",{style:{cursor:"pointer"},onClick:()=>dc(Cr,Wr)},"+",Ns==null?void 0:Ns.length)},Rn.group_settings&&Rn.group_settings.map(function(Ns){if(!Cs.map(Vn=>Vn.group_name).flat().includes(Ns.group_name))return Gt.createElement($t,{value:Ns.group_name,key:Ns.id},Ns.group_name)})),Gt.createElement("div",{className:"ml20"},Gt.createElement(pi,{size:"large",ranges:{\u6B64\u523B:[Cr.publish_time?Nt()(Cr.publish_time):Nt()(),Nt()()]},allowClear:!1,disabled:ws||(Nt()()<=Nt()((Hr=Oi((ur=Cr==null?void 0:Cr.group_id)==null?void 0:ur[0]))==null?void 0:Hr.publish_time)?!1:[!0,ll((mi=Cr==null?void 0:Cr.group_id)==null?void 0:mi[0])]),style:{width:605},placeholder:["\u53D1\u5E03\u65F6\u95F4\uFF08\u5B66\u751F\u6536\u5230\u4F5C\u4E1A\u65F6\u95F4\uFF09","\u622A\u6B62\u65F6\u95F4\uFF08\u5B66\u751F\u201C\u6309\u65F6\u201D\u63D0\u4EA4\u4F5C\u54C1\u65F6\u95F4\u622A\u70B9\uFF09"],disabledDate:Ns=>qe(Ns,Rn==null?void 0:Rn.course_end_date),disabledTime:Ns=>er(Ns),showTime:{showNow:!0,format:"HH:mm",defaultValue:[Nt()((0,Ft.U6)(),"HH:mm"),Nt()((0,Ft.U6)(),"HH:mm")]},format:"YYYY-MM-DD HH:mm",value:[Cr.publish_time?Nt()(Cr.publish_time):void 0,Cr.end_time?Nt()(Cr.end_time):void 0],onChange:(Ns,bn)=>{var Vn;if((0,St.Rm)()&&!((Vn=Yt.AssistantObject.practice)!=null&&Vn.can_publish)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Cs[Wr].publish_time=bn[0],!Cr.end_time&&bn[0]?Cs[Wr].end_time=Nt()(bn[0]).add(7,"days"):Cs[Wr].end_time=bn[1],Pa([...Cs])},onCalendarChange:(Ns,bn,Vn)=>{if(bn!=null&&bn[0]&&!bn[1]){const rs=Nt()(bn[0]).add(7,"days");Cs[Wr].publish_time=bn[0],Cs[Wr].end_time=rs,Pa([...Cs])}}})),!ws&&Gt.createElement("div",{style:{display:"flex",width:"50px"}},((Ss=Cr==null?void 0:Cr.group_id)==null?void 0:Ss.length)>1&&Gt.createElement(vt.Z,{title:"\u89C4\u5219\u62C6\u5206"},Gt.createElement("i",{className:"iconfont icon-chaifen ml10",style:{cursor:"pointer",color:"#3061d0"},onClick:()=>dc(Cr,Wr)})),Cs.length<((ro=Rn==null?void 0:Rn.group_settings)==null?void 0:ro.length)&&Gt.createElement("i",{className:"iconfont icon-zengjia1 ml10 mr10",style:{cursor:"pointer",color:"#00B187"},onClick:()=>{var Ns;if((0,St.Rm)()&&!((Ns=Yt.AssistantObject.practice)!=null&&Ns.can_publish)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Pa(Cs.concat({}))}}),((Cr==null?void 0:Cr.publish_time)&&Nt()(){const Ns=(0,gt.cloneDeep)(Ki);Ns.forEach((bn,Vn)=>{bn.group_name&&(bn.group_name=bn.group_name.filter(rs=>{var za;return!((za=Cs[Wr].group_name)!=null&&za.includes(rs))}))}),Cs=Cs.filter((bn,Vn)=>Wr!==Vn),ha(Ns),Pa(Cs.slice()),setTimeout(()=>Pa(Cs.slice()),10)}}))))}))),Gt.createElement(lt.Z,null,Gt.createElement(it.Z,null,Gt.createElement("div",{className:It.Z.title,style:{marginTop:"30px"}},"\u8865\u4EA4\u8BBE\u7F6E",Gt.createElement("span",{className:"c-grey-666 font14",style:{fontWeight:400}},"\uFF08\u53EF\u5BF9\u5728\u4F5C\u4E1A\u53D1\u5E03\u65F6\u95F4\u8303\u56F4\u5185\u672A\u5B8C\u6210\u4F5C\u4E1A\u7684\u5B66\u751F\uFF0C\u5EF6\u957F\u65F6\u95F4\u8FDB\u884C\u8865\u4EA4\uFF09"))),Gt.createElement(it.Z,{span:24,style:{background:"#F6F7F9",padding:"13px 30px",display:"flex",alignItems:"center"}},Gt.createElement(He.default,{checked:Hn.allow_late,disabled:ws||Gu,onChange:Cr=>{var Wr;if((0,St.Rm)()&&!((Wr=Yt.AssistantObject.practice)!=null&&Wr.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Cr.target.checked&&$e.default.warning({title:"\u5F00\u542F\u8865\u4EA4\u63D0\u793A",centered:!0,width:480,content:Gt.createElement("div",{style:{padding:10,background:"#f5f6f9"}},Gt.createElement("div",null,"1.\u5F00\u542F\u8865\u4EA4\u540E\u4E0D\u53EF\u5173\u95ED\uFF0C\u8865\u4EA4\u65B9\u5F0F\u63D0\u4EA4\u4FDD\u5B58\u540E\u4E0D\u53EF\u4FEE\u6539\uFF1B"),Gt.createElement("div",null,"2.\u8865\u4EA4\u622A\u6B62\u65F6\u95F4\u5FC5\u987B\u665A\u4E8E\u4F5C\u4E1A\u622A\u6B62\u65F6\u95F4\uFF1B"),Gt.createElement("div",null,"3.\u73ED\u7EA7\u9636\u6BB5\u8FDB\u5165\u201C\u8865\u4EA4\u4E2D\u201D\u5219\u4E0D\u53EF\u53D8\u66F4\u4F5C\u4E1A\u622A\u6B62\u65F6\u95F4\u3002"))}),Hn.allow_late=!Hn.allow_late,Ki==""&&ha([{late_penalty:5}]),ri(Object.assign({},Hn))}},Gt.createElement("strong",null,"\u5F00\u542F\u8865\u4EA4")))),(Hn==null?void 0:Hn.allow_late)&&Gt.createElement("div",{style:{background:"#F6F7F9",padding:"10px 30px",marginTop:"1px",color:"#666666"}},Gt.createElement("div",{style:{display:"flex"}},Gt.createElement("div",{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u65B9\u5F0F"),Gt.createElement(at.ZP.Group,{style:{marginLeft:"20px"},disabled:ws||(Rn==null?void 0:Rn.anonymous_comment)||(Rn==null?void 0:Rn.allow_late),value:Hn.unified_late,onChange:Cr=>{var Wr;if((0,St.Rm)()&&!((Wr=Yt.AssistantObject.practice)!=null&&Wr.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Hn.unified_late=Cr.target.value,Ki==""&&!Cr.target.value&&ha([{penalty_type:ln.Q.Percent,late_penalty:20}]),ri(gn({},Hn))}},(Hn==null?void 0:Hn.unified_setting)&&Gt.createElement(at.ZP,{value:!0,disabled:!(Rn!=null&&Rn.manage_all_group),style:{marginRight:"50px"}},"\u7EDF\u4E00\u8865\u4EA4"),((fn=Rn==null?void 0:Rn.group_settings)==null?void 0:fn.length)>0&&Gt.createElement(at.ZP,{value:!1},"\u5206\u73ED\u8865\u4EA4"))),Hn!=null&&Hn.unified_late?Gt.createElement(Gt.Fragment,null,Gt.createElement(lt.Z,{align:"middle",style:{marginTop:"10px"}},Gt.createElement(it.Z,{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u6263\u5206"),Gt.createElement(it.Z,{className:"ml20"},Gt.createElement(ln.Z,{disabled:ws||Ba,value:{type:Hn.penalty_type,inputValue:Hn.late_penalty},onChange:Cr=>{var Wr;if((0,St.Rm)()&&!((Wr=Yt.AssistantObject.practice)!=null&&Wr.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}ri(kn(gn({},Hn),{late_penalty:Cr.inputValue,penalty_type:Cr.type}))}})),Gt.createElement(it.Z,{flex:"1",className:"ml5"},Gt.createElement("span",{className:"c-grey-c ml10"},Hn.penalty_type===ln.Q.Number?"(\u8865\u4EA4\u65F6\u6309\u7167\u5B66\u751F\u603B\u6210\u7EE9\u6263\u5206)":"(\u5B66\u751F\u6700\u7EC8\u5F97\u5206=\u8865\u4EA4\u524D\u5F97\u5206+\u8865\u4EA4\u9636\u6BB5\u589E\u52A0\u7684\u5206\u503C*\uFF08100%-\u767E\u5206\u6BD4%\uFF09)"))),Gt.createElement(lt.Z,{align:"middle",style:{marginTop:"15px"}},Gt.createElement(it.Z,{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u622A\u6B62\u65F6\u95F4"),Gt.createElement(it.Z,{className:"ml20"},Gt.createElement(st.default,{size:"large",allowClear:!1,style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Nt()((0,Ft.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",disabled:ws||Ba,value:Hn.late_time?Nt()(Hn.late_time):"",disabledDate:Cr=>qe(Cr,Rn==null?void 0:Rn.course_end_date),onChange:(Cr,Wr)=>{var xs;if((0,St.Rm)()&&!((xs=Yt.AssistantObject.practice)!=null&&xs.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Hn.late_time=Wr,ri(Object.assign({},Hn))}})))):Ki.map(function(Cr,Wr){var xs;return Gt.createElement(it.Z,{span:24,key:Wr},Gt.createElement(lt.Z,{style:{display:"flex",alignItems:"center",marginTop:"10px"}},Gt.createElement("div",{style:{width:"85px",marginLeft:"27px",textAlign:"right"}},"\u8865\u4EA4\u89C4\u5219",Wr+1),Gt.createElement(rt.default,{disabled:ws||!((xs=Ni==null?void 0:Ni.homework_status)!=null&&xs.includes("\u672A\u53D1\u5E03"))&&Cr.id||(Rn==null?void 0:Rn.anonymous_comment),mode:"multiple",className:It.Z.multiple_select,style:{width:"212px",marginLeft:"18px"},value:typeof Cr.group_name=="string"?[Cr.group_name]:Cr.group_name,placeholder:"\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0",onChange:Ps=>{var ur;if((0,St.Rm)()&&!((ur=Yt.AssistantObject.practice)!=null&&ur.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ki[Wr].group_name=Ps,Ki[Wr].group_id=Cr.group_id,ha(Ki.slice())}},Rn.group_settings&&Rn.group_settings.map(function(Ps){const ur=Ki.map(mi=>mi.group_name).flat(),Hr=Cs.map(mi=>mi.group_name).flat();if(Hn!=null&&Hn.unified_setting){if(!ur.includes(Ps.group_name))return Gt.createElement($t,{value:Ps.group_name,key:Ps.id},Ps.group_name)}else if(Hr.includes(Ps.group_name)&&!ur.includes(Ps.group_name))return Gt.createElement($t,{value:Ps.group_name,key:Ps.id},Ps.group_name)})),Gt.createElement("div",{className:"ml20 mr10"},"\u8865\u4EA4\u6263\u5206"),Gt.createElement(ln.Z,{disabled:ws||Na(Cr.id),value:{type:Cr.penalty_type,inputValue:Cr.late_penalty},onChange:Ps=>{var ur;if((0,St.Rm)()&&!((ur=Yt.AssistantObject.practice)!=null&&ur.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ki[Wr].late_penalty=Ps.inputValue,Ki[Wr].penalty_type=Ps.type,ha([...Ki])}}),Gt.createElement("div",{className:"ml20 mr10"},"\u8865\u4EA4\u622A\u6B62\u65F6\u95F4"),Gt.createElement(st.default,{size:"large",disabled:ws||Na(Cr.id),style:{width:225},showTime:{format:"HH:mm",defaultValue:Nt()((0,Ft.U6)(),"HH:mm")},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",disabledDate:Ps=>qe(Ps,Rn==null?void 0:Rn.course_end_date),format:"YYYY-MM-DD HH:mm",value:Cr!=null&&Cr.late_time?Nt()(Cr.late_time):void 0,onChange:(Ps,ur)=>{var Hr;if((0,St.Rm)()&&!((Hr=Yt.AssistantObject.practice)!=null&&Hr.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ki[Wr].late_time=ur,ha([...Ki])}}),!ws&&Gt.createElement("div",{style:{display:"flex",width:"50px"}},Gt.createElement("i",{className:"iconfont icon-zengjia1 ml10 mr10",style:{cursor:"pointer",color:"#00B187"},onClick:()=>{var Ps;if((0,St.Rm)()&&!((Ps=Yt.AssistantObject.practice)!=null&&Ps.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}ha(Ki.concat({penalty_type:ln.Q.Percent,late_penalty:20}))}}),Wr>0&&!Cr.id&&Gt.createElement("i",{className:"iconfont icon-shanjian1",style:{cursor:"pointer",color:"#E30000"},onClick:()=>{var Ps;if((0,St.Rm)()&&!((Ps=Yt.AssistantObject.practice)!=null&&Ps.can_late)){nt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ki=Ki.filter((ur,Hr)=>Wr!==Hr),ha(Ki.slice()),setTimeout(()=>ha(Ki.slice()),10)}}))))})),!ws&&Gt.createElement(Gt.Fragment,null,Gt.createElement(ct.ZP,{type:"primary",size:"large",loading:pl,style:{width:"138px",marginTop:"30px"},onClick:()=>lu()},"\u4FDD\u5B58")),Gt.createElement(Nn.Z,{onConfirm:(Cr,Wr)=>{Cs.splice(Cr,0,...Wr),Cs.splice(Cr+Wr.length,1);const xs=(0,Ft.QE)([...Cs]);Pa([...xs])}}),Gt.createElement(pn.Z,{resdata:qa,type:"shixun",okloading:pl,oktext:(qa==null?void 0:qa.can_copy_num)===0?"\u786E\u5B9A":"\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362",onok:Cr=>Rr(void 0,null,function*(){Xi(!0);let Wr=yield(0,xt.ZP)(`/api/courses/${Wn.coursesId}/batch_copy_shixuns.json`,{method:"post",body:{type:"homework_common",ids:[parseInt(Wn.categoryId)]}});Xi(!1),(Wr==null?void 0:Wr.status)===0&&ol(sd)})}))};zn.ZP=(0,Ot.connect)(({shixunHomeworks:hn,classroomList:_n,loading:xn,user:Yt})=>({shixunHomeworks:hn,classroomList:_n,loading:xn.effects,user:Yt}))(Jt)},62787:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return He}});var fe=Me(59301),st=Me(37568),rt=Me(62673),nt=Me(77019),$e={leftdiv:"leftdiv___aBzsX",listClass:"listClass___bxIEW",spantitle:"spantitle___v_Vc4",rightdiv:"rightdiv___xWu4M"},at="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAbVJREFUOE+Nk79rFUEUhb+zE4OFwUD+CyGKKQQbSaMikQQ7C1tBBIsUQaJvl2Fn/cWDpAiIYJsi7YOIaCUWFoKKRhG0sbEzEImFGnev7G6yyXsxeU5159yZb87l3hG9q2WLiBO79FIwXpLp0s6cwITnQCMWrGDM43jdBckZQ0wTMdrong2R2Bxm0/98sZ8ozdcOEm5hjOC41u9Olc9ZQKySclOVkNhljCmCzjeAJM/4FbW5p+8k5tlggTtarfKxLSM6pHq4BTiL0SboaAOIi284jeP1nti+ApMEvdoEvEPMkOpJDZi1IwzwgqDh/wSsYZwk08ca4O0Qua3zW8OV5crmHg6u22EGbQ2nIbx+1IC6rrK+cYJW9gXEVrbxGUEj5bltQGJvgBapHu0LSGwCyEh1vBsQWwd4TNCDPg6uAOcImuoFlL1dJ9WNPg5uYwwRVM3MzhJmKIpjZK6e9bj4jNNpvL4QFx9wuoDXJ1r5IlH0llTtXgcXwa4SolObnYnwKnbFcfEcdJ+gpW6AtzFynuIop/Fn053u4CA5yzjO4FV9tu0Syl2S38WiSWBgD8AfoEPQ7Fb+LwIiyhxWwe2KAAAAAElFTkSuQmCC",lt=Me(57884),it=(ct,Mt,Nt)=>new Promise((St,xt)=>{var gt=It=>{try{Ft(Nt.next(It))}catch(Ot){xt(Ot)}},Ct=It=>{try{Ft(Nt.throw(It))}catch(Ot){xt(Ot)}},Ft=It=>It.done?St(It.value):Promise.resolve(It.value).then(gt,Ct);Ft((Nt=Nt.apply(ct,Mt)).next())}),He=({data:ct,value:Mt=[],handleChangePage:Nt,className:St="",setSelectedRowKeys:xt,selectedRowKeys:gt,onChange:Ct=()=>{}})=>{const[Ft,It]=(0,fe.useState)([]),[Ot,ln]=(0,fe.useState)([]),[jn,Nn]=(0,fe.useState)([]);let[pn,ir]=(0,fe.useState)(1),[Gt,Zt]=(0,fe.useState)();return(0,fe.useEffect)(()=>{It(ct),ln([]),Nn([])},[ct]),(0,fe.useEffect)(()=>{xt&&(ln(gt),Nn(gt))},[gt]),fe.createElement("div",{className:`flex justify-between w-full ${St}`},fe.createElement("div",{className:$e.leftdiv},fe.createElement(st.default.Search,{size:"middle",style:{marginBottom:"10rem"},onChange:Cn=>it(void 0,null,function*(){It(ct.filter(Qt=>{var sn;return(sn=Qt==null?void 0:Qt.name)==null?void 0:sn.includes(Cn.target.value)}))}),placeholder:"\u53EF\u8F93\u5165\u73ED\u7EA7\u540D\u79F0\u67E5\u8BE2"}),Ft.length===0&&fe.createElement(lt.Z,{styles:{margin:"70rem auto"},customText:"\u6682\u65E0\u5206\u73ED"}),fe.createElement("div",{style:{height:"85%",overflow:"auto",overflowX:"hidden"}},fe.createElement(rt.default.Group,{value:Ot.map(Cn=>`${Cn.id}`),onChange:Cn=>{xt(Ft.filter(Qt=>Cn.includes(`${Qt.id}`)))},style:{marginTop:"10px",flexDirection:"column"}},Ft.map((Cn,Qt)=>fe.createElement(nt.Z,{key:Cn.id,style:{marginTop:"10rem",lineHeight:"24rem",display:"flex",width:"200rem"}},fe.createElement(rt.default,{style:{display:"flex",height:"24px",alignItems:"center"},disabled:Cn.is_published,value:`${Cn.id}`},fe.createElement("div",{className:$e.listClass},fe.createElement("span",{className:$e.spantitle,style:{width:Cn.is_published?"108px":"170px"}},Cn.name),Cn.is_published&&fe.createElement("span",{style:{width:"52px",height:"24px",background:"#B8B8B8",borderRadius:"13px",color:"white",lineHeight:"24px",textAlign:"center",display:"inline-block"}},"\u5DF2\u53D1\u5E03")))))))),fe.createElement("div",{className:$e.rightdiv},fe.createElement(st.default.Search,{onChange:Cn=>{Nn(Ot.filter(Qt=>Qt.name.includes(Cn.target.value)))},size:"middle",placeholder:"\u53EF\u8F93\u5165\u73ED\u7EA7\u540D\u79F0\u67E5\u8BE2"}),jn.length===0&&fe.createElement(lt.Z,{imgStyles:{width:"200rem"},styles:{margin:"70rem auto"},customText:"\u6682\u672A\u9009\u62E9\u5206\u73ED"}),jn.length>0&&fe.createElement("div",{style:{marginTop:"10px",height:"85%",overflow:"hidden",position:"relative"}},fe.createElement("div",{style:{overflowX:"hidden",overflowY:"scroll",position:"absolute",left:0,top:0,right:-17,bottom:0}},jn.map((Cn,Qt)=>fe.createElement("div",{className:"flex justify-between item-center",style:{marginTop:"10rem"},key:Cn.id},fe.createElement("div",{className:"multi_ellipsis1 flex-1 minW-0",style:{margin:"0 5rem"}},Cn.name),fe.createElement("img",{src:at,className:"current",style:{height:"16rem",marginRight:"17rem"},onClick:()=>{xt(Ot.filter(sn=>`${sn.id}`!=`${Cn.id}`))}})))))))}},97202:function(Tt,zn,Me){"use strict";Me.d(zn,{Z:function(){return Ct}});var fe=Me(59301),st=Me(76560),rt=Me(16326),nt=Me(62957),$e=Me(37568),at=Me(6767),lt=Me(77019),it=Me(5269),vt={title_tooltip:"title_tooltip___LLdrn",multiple_select:"multiple_select___kDXUm",modal_con:"modal_con___ERnkW"},He=Me(56656),ct=Me.n(He),Mt=Me(49661),Nt=Me(57884),St=Me(59301);const{RangePicker:xt}=rt.default,gt=({dispatch:Ft,classroomList:It,onConfirm:Ot})=>{const[ln,jn]=(0,fe.useState)([]),[Nn,pn]=(0,fe.useState)([]),[ir,Gt]=(0,fe.useState)(""),[Zt,Cn]=(0,fe.useState)([!1,!1]);(0,fe.useEffect)(()=>{var _t,Zn,Yn,gn;if(It.actionTabs.key==="\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206"){console.log((_t=It.actionTabs)==null?void 0:_t.rangePickerDisabled),(Zn=It.actionTabs)!=null&&Zn.rangePickerDisabled?Cn((Yn=It.actionTabs)==null?void 0:Yn.rangePickerDisabled):Cn([!1,!1]);let kn=It.actionTabs.data,Rr=(gn=kn==null?void 0:kn.group_name)==null?void 0:gn.map((mt,qe)=>{var er;return{group_id:kn==null?void 0:kn.group_id[qe],group_name:kn==null?void 0:kn.group_name[qe],is_admin:kn==null?void 0:kn.is_admin,end_time:kn==null?void 0:kn.end_time,publish_time:Array.isArray(kn==null?void 0:kn.publish_time)?(er=kn==null?void 0:kn.publish_time)==null?void 0:er[0]:kn==null?void 0:kn.publish_time}});Rr&&(jn([...Rr]),pn([...Rr]))}},[It.actionTabs]);const Qt=()=>{Ft({type:"classroomList/setActionTabs",payload:{}}),Gt("")},sn=_t=>{if(_t){const Zn=Nn==null?void 0:Nn.filter(Yn=>{var gn,kn;return(kn=(gn=Yn==null?void 0:Yn.group_name)==null?void 0:gn.toLowerCase())==null?void 0:kn.includes(_t==null?void 0:_t.toLowerCase())});jn(Zn)}else jn(Nn)};return St.createElement(nt.default,{width:980,title:St.createElement("div",{style:{fontWeight:"bold",display:"flex"}},St.createElement("div",null,"\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",St.createElement("span",{className:vt.title_tooltip},"\uFF08\u5F53\u5206\u73ED\u53D1\u5E03\u65F6\u95F4\u548C\u622A\u6B62\u65F6\u95F4\u4E0D\u76F8\u540C\u65F6\u5019\uFF0C\u73ED\u7EA7\u81EA\u52A8\u62C6\u5206\u51FA\u53BB\u65B0\u8D77\u89C4\u5219\uFF09")),St.createElement($e.default.Search,{allowClear:!0,placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",style:{width:220,marginLeft:"60px"},value:ir,onChange:_t=>{Gt(_t.target.value.trim()),sn(_t.target.value.trim())}})),centered:!0,maskClosable:!1,open:It.actionTabs.key==="\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",onCancel:()=>Qt(),onOk:()=>{var _t;if(Nn.some(Yn=>!Yn.end_time||!Yn.publish_time)){at.ZP.warning("\u8BF7\u5C06\u5217\u8868\u6570\u636E\u4E2D\u7684\u53D1\u5E03\u65F6\u95F4\u548C\u622A\u6B62\u65F6\u95F4\u8865\u5145\u5B8C\u6574\uFF01");return}Ot((_t=It.actionTabs)==null?void 0:_t.index,Nn),Qt()}},St.createElement("div",{className:vt.modal_con},St.createElement(lt.Z,{style:{display:"flex",color:"#666666",padding:"5px",marginTop:"1px"}},(ln==null?void 0:ln.length)>0?ln.map(function(_t,Zn){return St.createElement(it.Z,{span:24,key:Zn},St.createElement(lt.Z,{gutter:[8,16],style:{display:"flex",alignItems:"center",marginBottom:Zn==(ln==null?void 0:ln.length)-1?"0px":"10px"}},St.createElement("div",{className:vt.multiple_select,title:_t==null?void 0:_t.group_name},_t==null?void 0:_t.group_name),St.createElement("div",{className:"ml20"},St.createElement(xt,{size:"large",allowClear:!1,disabled:Zt,style:{width:600},placeholder:["\u53D1\u5E03\u65F6\u95F4\uFF08\u5B66\u751F\u6536\u5230\u4F5C\u4E1A\u65F6\u95F4\uFF09","\u622A\u6B62\u65F6\u95F4\uFF08\u5B66\u751F\u201C\u6309\u65F6\u201D\u63D0\u4EA4\u4F5C\u54C1\u65F6\u95F4\u622A\u70B9\uFF09"],disabledDate:Yn=>{var gn;return(0,Mt.Q8)(Yn,(gn=It.actionTabs)==null?void 0:gn.disabledDate)},disabledTime:Yn=>(0,Mt.d0)(Yn),showTime:{showNow:!0,format:"HH:mm",defaultValue:[ct()((0,Mt.U6)(),"HH:mm"),ct()((0,Mt.U6)(),"HH:mm")]},format:"YYYY-MM-DD HH:mm",value:(_t==null?void 0:_t.publish_time)&&[ct()(_t==null?void 0:_t.publish_time),_t!=null&&_t.end_time?ct()(_t==null?void 0:_t.end_time):void 0],onChange:(Yn,gn)=>{ln[Zn].publish_time=gn[0],ln[Zn].end_time=gn[1],jn([...ln]),Nn.forEach(kn=>{kn.group_id===(_t==null?void 0:_t.group_id)&&(kn.publish_time=gn[0],kn.end_time=gn[1])}),pn([...Nn])},onCalendarChange:(Yn,gn,kn)=>{if(gn!=null&&gn[0]&&!gn[1]){const Rr=ct()(gn[0]).add(7,"days");ln[Zn].publish_time=gn[0],ln[Zn].end_time=Rr,jn([...ln]),Nn.forEach(mt=>{mt.group_id===(_t==null?void 0:_t.group_id)&&(mt.publish_time=gn[0],mt.end_time=Rr)}),pn([...Nn])}}})),Zt[0]?St.createElement("i",{className:"iconfont icon-shanjian1 ml15",style:{color:"#E30000",opacity:"0.2",cursor:"not-allowed"}}):St.createElement("i",{className:"iconfont icon-shanjian1 ml15",style:{cursor:"pointer",color:"#E30000"},onClick:()=>{ln.splice(Zn,1),jn([...ln]),Nn.forEach((Yn,gn)=>{Yn.group_id===(_t==null?void 0:_t.group_id)&&Nn.splice(gn,1)}),pn([...Nn])}})))}):St.createElement(Nt.Z,null))))};var Ct=(0,st.connect)(({classroomList:Ft})=>({classroomList:Ft}))(gt)},54517:function(Tt,zn,Me){"use strict";Me.r(zn),Me.d(zn,{default:function(){return Kle}});var fe=Me(59301),st=Me(76560),rt=Me(62957),nt=Me(6767),$e=Me(99571),at={flex_box_center:"flex_box_center___wc3oP",flex_space_between:"flex_space_between___YV6tt",flex_box_vertical_center:"flex_box_vertical_center___DBgDc",flex_box_center_end:"flex_box_center_end___uIUDS",flex_box_column:"flex_box_column___kQEdA",banner:"banner____Henj",wrp:"wrp___PZhnF",titleWrap:"titleWrap___GqIYn",titleFlexEnd:"titleFlexEnd___yQ3st",title:"title___djFnh",titleName:"titleName___o55kJ",titleIcon:"titleIcon___iO27M",contentWrap:"contentWrap___EkBTW",verticalLine:"verticalLine___aj4o0",contentLeftWrap:"contentLeftWrap___O08fb",openCourseTag:"openCourseTag___M35c8",tagsWrap:"tagsWrap____zRBh",ratingWrap:"ratingWrap___FD4BS",ratingTitle:"ratingTitle___sKXr7",rating:"rating___pPcWF",popoverWrap:"popoverWrap___XLvdy",popverLeft:"popverLeft___JghVb",popoverRight:"popoverRight___iN5hL",popverScore:"popverScore___LpP2e",popoverRateWrap:"popoverRateWrap___y3lUU",popoverProgress:"popoverProgress___SPsPq",button:"button___w71Iu",operationWrap:"operationWrap___xfwLx",forkWrap:"forkWrap___PUfTF",fork:"fork___SPjy6",forkNum:"forkNum___fwVaA",buttonTransparent:"buttonTransparent___V0ey6",buttonLearnStatistics:"buttonLearnStatistics___sWuSx",publishPopverWrap:"publishPopverWrap___maOAE",colorFF6802:"colorFF6802___Gb0xJ",w140:"w140___XOi_m",nav:"nav___j9ULg",navLeft:"navLeft___EEDpJ",navContent:"navContent___p8ZjQ",flexRow:"flexRow___cGkPG",navRight:"navRight____bBx2",navLeftIcon:"navLeftIcon___yRiiz",colorOrange:"colorOrange___isY7L",contentItem:"contentItem___OdKIu",contentItemTitle:"contentItemTitle___MBdkH",contentItemText:"contentItemText___YDgQC",classButton:"classButton___gidYF",bg28e:"bg28e___AuhUg",bgGray:"bgGray___zHFT7",btn:"btn___n_xyk",name:"name___AkijA",titleright:"titleright___AQpHe",edits:"edits___h0Etp",edit:"edit___YwQgI",deletes:"deletes___AEqz3",delete:"delete___C4ZUp",content:"content___urv2c",go:"go___BHrT0",goicon:"goicon___b33d6",tabs:"tabs___bmtXw"},lt=Me(37034),it=Me(28284),vt=Me(47889),He=Me(17149),ct=Me(37568),Mt=Me(29787),Nt=Me(82093),St={applyPublicContainer:"applyPublicContainer___pImhb",applyPublicContent:"applyPublicContent____dPHq",spin:"spin___bBN3v",tips:"tips___uXmwo",action:"action___D3zVt"},xt=Me(87169),gt=Me(59301),Ct=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),It=({type:b,onCancel:a,onOk:y})=>{const[x]=it.default.useForm(),[E,z]=(0,fe.useState)(1),[ee,te]=(0,fe.useState)(!1),[ne,ie]=(0,fe.useState)([]);(0,fe.useEffect)(()=>{x.setFieldValue("type",1),ae()},[]);const ae=()=>Ct(void 0,null,function*(){if(b){te(!0);const le=yield(0,Nt.ZP)("/api/disciplines.json",{method:"get",params:{source:b}});ie(le.disciplines||[]),te(!1)}}),oe=()=>{const{sub_discipline_id:le,discipline_name:de,sub_discipline_name:he,type:ye}=x.getFieldsValue();if((!le||le&&le.length===0)&&(!de||!he))return nt.ZP.warning("\u8BF7\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B"),!1;y({user_customize:ye==2,sub_discipline_id:ye==1?[le[1]]:null,discipline_name:de,sub_discipline_name:he})};return gt.createElement(rt.default,{width:640,className:St.applyPublicContainer,centered:!0,title:"\u516C\u5F00\u8BFE\u7A0B",okText:"\u7533\u8BF7\u516C\u5F00",open:!0,onCancel:()=>{a(),x.resetFields()},onOk:()=>{x.validateFields().then(le=>{if(E==2&&(le.discipline_name.replaceAll(" ","").length<=0||le.sub_discipline_name.replaceAll(" ","").length<=0)){nt.ZP.info("\u65B9\u5411\u6216\u8BFE\u7A0B\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u586B\u5199\u540E\u518D\u63D0\u4EA4\uFF01");return}oe(),x.resetFields()})}},gt.createElement("div",{className:St.applyPublicContent},gt.createElement("div",{className:St.tips},gt.createElement(xt.Z,{style:{color:"#FF8C29",marginRight:10}}),"\u586B\u5199\u5B9E\u8DF5\u8BFE\u7A0B\u7684\u65B9\u5411&\u8BFE\u7A0B\u4E4B\u540E\uFF0C\u65B9\u53EF\u7533\u8BF7\u516C\u5F00"),gt.createElement(it.default,{labelAlign:"left",form:x},gt.createElement(it.default.Item,{name:"type"},gt.createElement(vt.ZP.Group,{onChange:le=>{z(le.target.value),le.target.value==1?x.setFieldsValue({discipline_name:"",sub_discipline_name:""}):x.setFieldsValue({sub_discipline_id:[]})}},gt.createElement(vt.ZP,{value:1},"\u5FEB\u901F\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B"),gt.createElement(vt.ZP,{value:2,style:{marginLeft:40}},"\u81EA\u5B9A\u4E49\u65B9\u5411&\u8BFE\u7A0B"))),E==1&>.createElement(it.default.Item,{label:"\u65B9\u5411&\u8BFE\u7A0B",name:"sub_discipline_id",rules:[{required:!0}]},gt.createElement(He.Z,{expandTrigger:"hover",placeholder:"\u8BF7\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B",options:ne,fieldNames:{label:"name",value:"id",children:"sub_disciplines"},onChange:(le,de)=>x.setFieldsValue({sub_discipline_id:le})})),E==2&>.createElement(gt.Fragment,null,gt.createElement(it.default.Item,{label:"\u65B9\u5411",name:"discipline_name",rules:[{required:!0}]},gt.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u65B9\u5411",autoComplete:"off"})),gt.createElement(it.default.Item,{label:"\u8BFE\u7A0B",name:"sub_discipline_name",rules:[{required:!0}]},gt.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u8BFE\u7A0B",autoComplete:"off"})))),ee&>.createElement("div",{className:St.spin},gt.createElement(Mt.Z,null))))},Ot=Me(38394),ln="data:image/png;base64,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",jn="data:image/png;base64,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",Nn=Me(37639),pn=Me(25399),ir={flex_box_center:"flex_box_center___HlHga",flex_space_between:"flex_space_between___ZXfWh",flex_box_vertical_center:"flex_box_vertical_center___B_34d",flex_box_center_end:"flex_box_center_end___XaWUl",flex_box_column:"flex_box_column___dfD_W",ClassDesc:"ClassDesc___hvKGJ",LeftTitle:"LeftTitle___GVStZ",textname:"textname___KypkX",tupugx:"tupugx___iHe5s"},Gt=Me(90524),Zt=Me(49661),Cn=Me(98072),Qt=Me(20554),sn=Me(22061),_t=Object.defineProperty,Zn=Object.defineProperties,Yn=Object.getOwnPropertyDescriptors,gn=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,Rr=Object.prototype.propertyIsEnumerable,mt=(b,a,y)=>a in b?_t(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,qe=(b,a)=>{for(var y in a||(a={}))kn.call(a,y)&&mt(b,y,a[y]);if(gn)for(var y of gn(a))Rr.call(a,y)&&mt(b,y,a[y]);return b},er=(b,a)=>Zn(b,Yn(a)),yi=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const pi=({value:b=[],onChange:a})=>{const[y,x]=(0,fe.useState)(null),E=(ee,te,ne)=>{const ie=Array.from(ee),[ae]=ie.splice(te,1);return ie.splice(ne,0,ae),ie},z=(ee,te)=>yi(void 0,null,function*(){if(!ee.destination)return;const ne=E(te,ee.source.index,ee.destination.index);console.log("---",ne),a==null||a([...ne])});return fe.createElement(fe.Fragment,null,fe.createElement(ct.default,{value:y,placeholder:"\u8BF7\u8F93\u5165\u6807\u7B7E",maxLength:6,showCount:!0,addonAfter:"\u56DE\u8F66\u521B\u5EFA\u6807\u7B7E",onChange:ee=>{x(ee.target.value)},onPressEnter:ee=>{y&&(a==null||a([...b,y]),x(null))}}),fe.createElement("div",{className:"flex flex-wrap gap-14px-rem mt-12px-rem"},fe.createElement(sn.Z5,{onDragEnd:ee=>z(ee,b)},fe.createElement(sn.bK,{droppableId:"droppable",direction:"horizontal"},(ee,te)=>fe.createElement("div",er(qe({ref:ee.innerRef},ee.droppableProps),{style:{display:"flex",overflow:"auto",flexWrap:"wrap",gap:5}}),b.map((ne,ie)=>fe.createElement(sn._l,{key:ie,draggableId:ie.toString(),index:ie},(ae,oe)=>fe.createElement("div",er(qe(qe({ref:ae.innerRef},ae.draggableProps),ae.dragHandleProps),{className:"p-8px-rem flex item-center gap-8px-rem rounded-2px-rem",style:qe({margin:"0px"},ae.draggableProps.style)}),fe.createElement("div",{key:ie,className:"p-8px-rem flex item-center gap-8px-rem rounded-2px-rem",style:{background:"#EAF0F7"}},fe.createElement("div",{className:"c-black"},ne),fe.createElement("span",{className:"iconfont icon-guanbi10 c-grey-999 current",style:{fontSize:"10rem"},onClick:()=>{a==null||a(b==null?void 0:b.filter(le=>le!=ne))}}))))),ee.placeholder)))))},$t=({pathsDetail:b,dispatch:a,DataProps:y,onFinish:x})=>{const E=(0,st.useParams)(),{actionTabs:z,detail:ee}=b,[te]=it.default.useForm(),[ne,ie]=(0,fe.useState)("0"),[,ae,oe]=(0,Cn.U)(lt.j_,{subject_id:E==null?void 0:E.pathId}),le=[{title:"\u667A\u6167\u8D44\u6E90",node_types:["\u5B9E\u8BAD","\u89C6\u9891","\u8BFE\u4EF6","\u8BD5\u5377","\u95EE\u5377","\u7F16\u7A0B","\u865A\u4EFF","\u5206\u7EC4"],relation:"\u5173\u8054"},{title:"\u77E5\u8BC6\u56FE\u8C31",node_types:["\u8BFE\u7A0B\u56FE\u8C31","\u5927\u7EB2\u56FE\u8C31","\u601D\u653F\u56FE\u8C31","\u601D\u7EF4\u56FE\u8C31","\u80FD\u529B\u56FE\u8C31"],relation:"\u5173\u8054"},{title:"\u5B66\u4E60\u8DEF\u5F84",node_types:["\u521D\u59CB\u8DEF\u5F84","\u590D\u4E60\u8DEF\u5F84","\u8003\u524D\u8DEF\u5F84","\u8D44\u6E90\u63A8\u8350"],relation:"\u5173\u8054"},{title:"\u5B66\u60C5\u5206\u6790",node_types:["\u5B66\u60C5\u7EDF\u8BA1","\u80FD\u529B\u5206\u6790","\u638C\u63E1\u5206\u6790"],relation:"\u5173\u8054"}];return(0,fe.useEffect)(()=>{y&&te.setFieldsValue(er(qe({},y),{knowledge_statistics:le==null?void 0:le.map((de,he)=>{var ye;return qe(qe({},de),((ye=y==null?void 0:y.knowledge_statistics)==null?void 0:ye.at(-(he+1)))||{})})}))},[y]),fe.createElement(rt.default,{title:"\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91",open:z.key==="\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91",centered:!0,width:656,onCancel:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{}}})},okText:"\u4FDD\u5B58",confirmLoading:ae,onOk:()=>{te.validateFields(["knowledge_statistics"],{recursive:!0}).then(()=>{te.submit()}).catch(de=>{var he,ye;const Ae=(he=de==null?void 0:de.errorFields)==null?void 0:he.at(-1);Ae&&ie(`${(ye=Ae==null?void 0:Ae.name)==null?void 0:ye[1]}`)})}},fe.createElement(it.default,{form:te,colon:!1,labelAlign:"right",labelCol:{span:5},size:"large",onFinish:de=>yi(void 0,null,function*(){const he=yield oe(er(qe({},de),{subject_id:E==null?void 0:E.pathId}));(he==null?void 0:he.status)==0&&(nt.ZP.success("\u4FDD\u5B58\u6210\u529F"),x==null||x())})},fe.createElement(it.default.List,{name:"knowledge_statistics"},(de,{add:he,remove:ye})=>fe.createElement(fe.Fragment,null,fe.createElement(Qt.default,{defaultActiveKey:"1",activeKey:ne,onTabClick:Ae=>{ie(Ae)},items:de.map((Ae,me)=>({forceRender:!0,key:`${me}`,label:`\u7B2C${(0,Zt.EM)(me+1)}\u5C42`,children:fe.createElement(fe.Fragment,null,fe.createElement(it.default.Item,{name:[Ae.name,"title"],label:"\u6807\u9898",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6807\u9898"},{whitespace:!0,message:"\u8F93\u5165\u7684\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},fe.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u6807\u9898",maxLength:6,showCount:!0})),fe.createElement(it.default.Item,{name:[Ae.name,"node_types"],label:"\u6807\u7B7E",rules:[{required:!0,validator(Ce,Ee){const Be=[8,6,5,5][me];return(Ee==null?void 0:Ee.length)==0?Promise.reject(new Error("\u8BF7\u6DFB\u52A0\u6807\u7B7E")):(Ee==null?void 0:Ee.length)>Be?Promise.reject(new Error(`\u6700\u591A${Be}\u4E2A\u6807\u7B7E`)):Promise.resolve()}}]},fe.createElement(pi,null)),me!==3&&fe.createElement(it.default.Item,{name:[Ae.name,"relation"],label:`\u4E0E\u7B2C${(0,Zt.EM)(me+2)}\u5C42\u5173\u7CFB`,rules:[{required:!0,message:`\u8BF7\u8F93\u5165\u4E0E\u7B2C${(0,Zt.EM)(me+2)}\u5C42\u5173\u7CFB`},{whitespace:!0,message:"\u8F93\u5165\u7684\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},fe.createElement(ct.default,{placeholder:`\u4E0E\u7B2C${(0,Zt.EM)(me+2)}\u5C42\u5173\u7CFB`,maxLength:6,showCount:!0})),fe.createElement(it.default.Item,{label:"\u7EDF\u8BA1\u6570\u636E"},fe.createElement("div",{style:{color:"#232B40"}},fe.createElement("span",null,["\u5168\u90E8\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8D44\u6E90\u8282\u70B9","\u8BFE\u7A0B\u4E2D\u521B\u5EFA\u7684\u6240\u6709\u77E5\u8BC6\u56FE\u8C31\uFF0C\u5305\u62EC\u80FD\u529B\u56FE\u8C31","\u8BFE\u7A0B\u4E2D\u521B\u5EFA\u7684\u5B66\u4E60\u8DEF\u5F84","\u83B7\u53D6\u5F53\u524D\u5DF2\u7ECF\u4E0A\u7EBF\u7684\u5B66\u60C5\u5206\u6790\u80FD\u529B\uFF0C\u5F53\u524D\u4E3A0"][me]))))}))})))))};var Jt=(0,st.connect)(({pathsDetail:b})=>({pathsDetail:b}))($t),hn="data:image/png;base64,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",_n="data:image/png;base64,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",xn="data:image/png;base64,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",Yt=Me(59301),Fn=Object.defineProperty,qr=Object.getOwnPropertySymbols,ts=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable,Pe=(b,a,y)=>a in b?Fn(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,we=(b,a)=>{for(var y in a||(a={}))ts.call(a,y)&&Pe(b,y,a[y]);if(qr)for(var y of qr(a))We.call(a,y)&&Pe(b,y,a[y]);return b},je=(b,a)=>{var y={};for(var x in b)ts.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&qr)for(var x of qr(b))a.indexOf(x)<0&&We.call(b,x)&&(y[x]=b[x]);return y};const Ke=({title:b,className:a="",style:y={},index:x,name:E,dispatch:z,detail:ee})=>Yt.createElement("div",{className:`absolute ${a}`,style:y},Yt.createElement("img",{src:_n,width:"187rem",style:{width:"187rem"}}),Yt.createElement(Nn.Z,{content:x!==0&&Yt.createElement("div",{style:{alignItems:"center",textAlign:"center"}},Yt.createElement("div",null,"\u8BFE\u7A0B\u4E2D\u5305\u542B",b,"\u4E2A",E),(ee==null?void 0:ee.can_managed)&&b===0&&Yt.createElement("a",{onClick:()=>{console.log("----",x===1?2:3),z({type:"pathsDetail/setActionTabs",payload:{key:"\u4FEE\u6539tab\u4FE1\u606F",type:x===1?2:3}})}},"\u524D\u5F80\u521B\u5EFA")),title:""},Yt.createElement("div",{className:"absolute",style:{top:"32rem",right:"65rem",color:"#FFCF1B",fontSize:"30rem"}},b))),Te=({title:b,className:a="",style:y={}})=>Yt.createElement("div",{className:`flex item-center justify-center absolute ${a}`,style:we({width:"200rem",height:"54rem",fontSize:"24rem",left:"50%",transform:"translateX(-50%)",bottom:"10rem",background:`url(${Me(11862)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",color:"#59F7FF"},y)}," ",b," "),fn=({DataProps:b=[],angleStep:a=.2,radius:y=500,top:x=0,verticalRadius:E=y})=>{const z=(0,fe.useRef)(null),ee=Math.PI+(Math.PI-((b==null?void 0:b.length)-1)*a)/2,te=({DataProps:ne={},style:ie={}})=>Yt.createElement("div",{className:"flex flex-col item-center c-white absolute",style:we({fontSize:"14rem"},ie)},Yt.createElement(pn.Z,{title:ne,placement:"topLeft"},Yt.createElement("div",{className:"multi_ellipsis1"},ne)),Yt.createElement("img",{src:xn,width:"97rem",height:"97rem",style:{width:"97rem",height:"97rem"}}));return Yt.createElement("div",{ref:z,className:"relative"},b==null?void 0:b.map((ne,ie)=>{const ae=ee+ie*a,oe=y*Math.cos(ae),le=E*Math.sin(ae);return Yt.createElement(te,{key:ie,DataProps:ne,style:{left:`calc(50% + ${oe}rem)`,bottom:`${le+E+x}rem`,transform:"translateX(-50%)"}})}))},Wn=({DataProps:b={},dispatch:a,detail:y})=>{var x;return Yt.createElement("div",{className:"flex flex-col item-center justify-center w-full h-full",style:{gap:"125rem"}},(x=b==null?void 0:b.knowledge_statistics)==null?void 0:x.map((E,z)=>Yt.createElement(Yt.Fragment,null,z==0&&Yt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Yt.createElement("div",{className:"relative flex item-center justify-center",style:{background:`url(${Me(47444)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"296rem",height:"100rem",marginTop:"82rem",zIndex:4}},Yt.createElement(Ke,{detail:y,dispatch:a,index:0,name:E==null?void 0:E.title,title:E==null?void 0:E.knowledge_graph_count,style:{right:"-120rem",top:"-64rem"}}),Yt.createElement(fn,{DataProps:E==null?void 0:E.node_types,angleStep:1.35,radius:100,top:-60,verticalRadius:30}),Yt.createElement(Te,{title:E==null?void 0:E.title}))),z==1&&Yt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Yt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${Me(425)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"404rem",height:"168rem",marginTop:"10rem",zIndex:3}},Yt.createElement(Ke,{detail:y,dispatch:a,index:1,name:E==null?void 0:E.title,title:E==null?void 0:E.knowledge_graph_count,style:{right:"-134rem",top:"-10rem"}}),Yt.createElement("div",{className:"absolute",style:{left:"-30rem",top:"0rem"}},Yt.createElement("img",{src:hn,width:"93rem",style:{width:"93rem"}}),Yt.createElement("div",{className:"absolute",style:{top:"5rem",left:"-25rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Yt.createElement(fn,{DataProps:E==null?void 0:E.node_types,angleStep:.15}),Yt.createElement(Te,{title:E==null?void 0:E.title}))),z==2&&Yt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Yt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${Me(49260)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"542rem",height:"228rem",marginTop:"-65rem",zIndex:2}},Yt.createElement(Ke,{detail:y,dispatch:a,index:2,name:E==null?void 0:E.title,title:E==null?void 0:E.knowledge_graph_count,style:{right:"-135rem",top:"24rem"}}),Yt.createElement("div",{className:"absolute",style:{left:"-40rem",top:"40rem"}},Yt.createElement("img",{src:hn,width:"114rem",style:{width:"114rem"}}),Yt.createElement("div",{className:"absolute",style:{top:"20rem",left:"-15rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Yt.createElement(fn,{DataProps:E==null?void 0:E.node_types,angleStep:.16}),Yt.createElement(Te,{title:E==null?void 0:E.title}))),z==3&&Yt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Yt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${Me(24219)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"764rem",height:"257rem",marginTop:"-70rem",zIndex:1}},Yt.createElement(Ke,{detail:y,dispatch:a,index:3,name:E==null?void 0:E.title,title:E==null?void 0:E.knowledge_graph_count,style:{right:"-115rem",top:"20rem"}}),Yt.createElement("div",{className:"absolute",style:{left:"-15rem",top:"34rem"}},Yt.createElement("img",{src:hn,width:"123rem",style:{width:"123rem"}}),Yt.createElement("div",{className:"absolute",style:{top:"25rem",left:"-15rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Yt.createElement(fn,{DataProps:E==null?void 0:E.node_types,angleStep:.16}),Yt.createElement(Te,{title:E==null?void 0:E.title}))))),Yt.createElement("div",{className:"flex item-center justify-center",style:{height:0}},Yt.createElement("img",{src:Me(32682),width:"600rem",height:"465rem",style:{width:"600rem",height:"465rem",marginTop:"-260rem"}})))},Rn=({DataProps:b,className:a="",style:y={}})=>Yt.createElement("div",{className:`flex flex-col item-center w-full h-full ${a}`,style:we({padding:"20rem 30rem",background:"#162442",borderRadius:"8rem",gap:"10rem"},y)},(b==null?void 0:b.AvatarDom)||Yt.createElement("img",{src:Gt.Z.API_SERVER+"/images/"+((b==null?void 0:b.image_url)||(b==null?void 0:b.avatar)),width:"60rem",height:"60rem",style:{borderRadius:"50%",width:"60rem",height:"60rem"}}),Yt.createElement(pn.Z,{title:(b==null?void 0:b.username)||""},Yt.createElement("div",{className:"multi_ellipsis1"},(b==null?void 0:b.username)||""))),hs=b=>{var a=b,{pathsDetail:y,dispatch:x}=a,E=je(a,["pathsDetail","dispatch"]),z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re,Oe,ze,Le,_e,Et,yt,jt;const tn=(0,st.useParams)(),{actionTabs:cn,detail:kt}=y,pt=(0,fe.useRef)(null),[An]=(0,st.useSearchParams)(),[Vt,rn]=(0,fe.useState)(0),[,Bn,hr,bt]=(0,Cn.U)(lt.dX,{subject_id:tn.pathId});return(0,fe.useEffect)(()=>{pt.current&&setTimeout(()=>{const on=(0,Zt.ZR)(pt.current,"rem",1);rn(on)},500)},[pt.current,(z=y==null?void 0:y.detail)==null?void 0:z.description]),(0,fe.useEffect)(()=>{hr({subject_id:tn.pathId})},[]),Yt.createElement(Mt.Z,{spinning:Bn},Yt.createElement("section",null,Yt.createElement("div",{className:"w-full relative c-white flex flex-col",style:{background:`url(${Me(12175)})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},Yt.createElement("div",{className:"w-full flex justify-center item-center absolute blod text-center",style:{background:`url(${Me(93148)})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",height:"282rem",letterSpacing:"5rem",lineHeight:"32rem",top:0,left:0,fontSize:"32rem",padding:"0 500rem 173rem"}},Yt.createElement(pn.Z,{title:(te=(ee=y.detail)==null?void 0:ee.name)==null?void 0:te.split(` `)[0]},Yt.createElement("div",{className:"multi_ellipsis2"},(ie=(ne=y.detail)==null?void 0:ne.name)==null?void 0:ie.split(` `)[0]))),Yt.createElement("span",{className:ir.tupugx,onClick:()=>{var on;An.get("type")==="classrooms"?window.open((on=y==null?void 0:y.detail)==null?void 0:on.first_category_url):window.open(`/paths/${tn.pathId}`)}},"\u8FD4\u56DE"),Yt.createElement("div",{className:"flex flex-1 minW-0",style:{paddingTop:"140rem",paddingLeft:"40rem",paddingRight:"40rem"}},Yt.createElement("div",{className:"flex-1 flex flex-col minW-0 relative",style:{padding:"50rem",borderRadius:"8rem",background:"rgba(32,47,79,0.3)",backdropFilter:"blur(10rem)",gap:"50rem"}},Yt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${ir.ClassDesc}`},"\u8BFE\u7A0B\u7B80\u4ECB"),Yt.createElement("div",{className:"relative"},Yt.createElement("div",{style:{height:"110rem",overflow:"hidden"}},Yt.createElement("div",{ref:pt},Yt.createElement(Ot.Z,{className:"c-white",value:((ae=y==null?void 0:y.detail)==null?void 0:ae.description)||""}))),Vt>=110&&Yt.createElement("div",{className:"flex item-center justify-center current",style:{padding:"0 220rem",color:"#3061D0",marginTop:"10rem"},onClick:()=>{var on;rt.default.confirm({title:"\u8BFE\u7A0B\u7B80\u4ECB",centered:!0,icon:null,width:900,closable:!0,cancelButtonProps:{style:{display:"none"}},content:Yt.createElement("div",{style:{maxHeight:"70vh",overflow:"auto"}},Yt.createElement(Ot.Z,{value:((on=y==null?void 0:y.detail)==null?void 0:on.description)||""}))})}},"\u67E5\u770B\u5168\u90E8")),Yt.createElement("div",{className:"flex w-full minW-0"},Yt.createElement("div",{className:"flex flex-col item-center"}," ",Yt.createElement("img",{src:Me(12260),width:"20rem",height:"17rem"})," \u5B66\u6821 "),Yt.createElement("div",{style:{padding:"12rem 38rem",background:"#162442",borderRadius:"8rem",marginLeft:"20rem"}},((oe=y==null?void 0:y.detail)==null?void 0:oe.school)||"")),Yt.createElement("div",{className:"flex w-full minW-0"},Yt.createElement("div",{className:"flex flex-col item-center",style:{marginTop:"25rem"}}," ",Yt.createElement("img",{src:Me(69303),width:"20rem"})," \u6559\u5E08 "),Yt.createElement("div",{className:"flex-1 minW-0",style:{gap:"10rem",marginLeft:"20rem",display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr 1fr"}},(me=((de=(le=y==null?void 0:y.detail)==null?void 0:le.subject_members)==null?void 0:de.length)>10?(ye=(he=y==null?void 0:y.detail)==null?void 0:he.subject_members)==null?void 0:ye.slice(0,9):(Ae=y==null?void 0:y.detail)==null?void 0:Ae.subject_members)==null?void 0:me.map((on,dn)=>Yt.createElement(Rn,{key:dn,DataProps:on})),((Ee=(Ce=y==null?void 0:y.detail)==null?void 0:Ce.subject_members)==null?void 0:Ee.length)>10&&Yt.createElement(Nn.Z,{content:Yt.createElement("div",{className:"c-white",style:{gap:"10rem",maxWidth:"515rem",maxHeight:"425rem",display:"grid",overflow:"auto",gridTemplateColumns:"repeat(auto-fit, minmax(120rem, 1fr))"}},(Fe=(Ne=(Be=y==null?void 0:y.detail)==null?void 0:Be.subject_members)==null?void 0:Ne.slice(9))==null?void 0:Fe.map((on,dn)=>Yt.createElement(Rn,{key:dn,DataProps:on}))),title:null,trigger:"click",color:"rgba(32, 47, 79, 1)",className:"c-white"},Yt.createElement("div",null,Yt.createElement(Rn,{className:"current",DataProps:{AvatarDom:Yt.createElement("div",{className:"flex item-center justify-center",style:{borderRadius:"50%",width:"60rem",height:"60rem",background:"#202F4F"}},"+",((Re=(ke=y==null?void 0:y.detail)==null?void 0:ke.subject_members)==null?void 0:Re.slice(11)).length),username:"\u66F4\u591A"}})))))),Yt.createElement("div",{className:"flex-1 minW-0 relative",style:{padding:"50rem"}},(kt==null?void 0:kt.can_managed)&&Yt.createElement("div",{className:"current absolute flex item-center rounded-full",style:{padding:"5rem 10rem",top:0,right:0,gap:"10rem",background:"#202F4F"},onClick:()=>{x({type:"pathsDetail/save",payload:{actionTabs:{key:"\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91"}}})}},Yt.createElement("span",{className:"iconfont icon-bianji14",style:{color:"#82A8FF"}})," \u7F16\u8F91"),Yt.createElement(Wn,{detail:kt,dispatch:x,DataProps:(bt==null?void 0:bt.data)||{}}))),Yt.createElement("div",{className:"w-full flex",style:{marginTop:"20rem",paddingLeft:"40rem",paddingRight:"40rem",height:"168rem"}},Yt.createElement("div",{className:"flex flex-1 minW-0 relative",style:{borderRadius:"8rem 0 0 8rem",background:"rgba(32,47,79,0.5)",backdropFilter:"blur(10px)",padding:"22rem 20rem 22rem 36rem",borderRight:"1rem solid rgba(79,151,255,0.34)",gap:"10rem"}},Yt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${ir.LeftTitle}`},"\u5B66\u4E60\u7EDF\u8BA1"),[{value:(Oe=kt==null?void 0:kt.knowledge_statistics)==null?void 0:Oe.course_count,title:"\u5E94\u7528\u8BFE\u5802\uFF08\u4E2A\uFF09"},{value:(ze=kt==null?void 0:kt.knowledge_statistics)==null?void 0:ze.school_count,title:"\u5E94\u7528\u9662\u6821\uFF08\u4E2A\uFF09"},{value:(Le=kt==null?void 0:kt.knowledge_statistics)==null?void 0:Le.initiative_study_count,title:"\u81EA\u4E3B\u5B66\u4E60\u4EBA\u6570\uFF08\u4EBA\uFF09"},{value:(_e=kt==null?void 0:kt.knowledge_statistics)==null?void 0:_e.course_study_count,title:"\u8BFE\u5802\u5B66\u4E60\u4EBA\u6570\uFF08\u4EBA\uFF09"},{value:(Et=kt==null?void 0:kt.knowledge_statistics)==null?void 0:Et.knowledge_visits,title:"\u7D2F\u8BA1\u6D4F\u89C8\u6B21\u6570\uFF08\u6B21\uFF09"}].map((on,dn)=>Yt.createElement("div",{key:dn,className:"flex flex-col item-center justify-center c-white flex-1 minW-0",style:{gap:"10rem",background:"#162442",borderRadius:"8rem"}},Yt.createElement("div",{style:{fontSize:"30rem",lineHeight:"30rem"}},on==null?void 0:on.value),Yt.createElement("div",{style:{fontSize:"14rem",lineHeight:"14rem"}},on==null?void 0:on.title)))),Yt.createElement("div",{className:"flex flex-1 minW-0 relative",style:{borderRadius:"0 8rem 8rem 0",background:"rgba(32,47,79,0.5)",backdropFilter:"blur(10px)",padding:"22rem 20rem 22rem 36rem",gap:"10rem"}},Yt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${ir.LeftTitle}`},"\u8D44\u6E90\u7EDF\u8BA1"),(jt=(yt=kt==null?void 0:kt.knowledge_statistics)==null?void 0:yt.resource_data)==null?void 0:jt.map((on,dn)=>Yt.createElement("div",{key:dn,className:"flex flex-col item-center justify-center c-white flex-1 minW-0",style:{gap:"10rem",background:"#162442",borderRadius:"8rem"}},Yt.createElement("div",{style:{fontSize:"30rem",lineHeight:"30rem"}},on==null?void 0:on.num),Yt.createElement("div",{style:{fontSize:"14rem",lineHeight:"14rem"}},on==null?void 0:on.node_type,"\uFF08\u4E2A\uFF09")))))),(cn==null?void 0:cn.key)==="\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91"&&Yt.createElement(Jt,{DataProps:(bt==null?void 0:bt.data)||{},onFinish:()=>{hr({subject_id:tn.pathId}),x({type:"pathsDetail/save",payload:{actionTabs:{}}})}})))};var Ji=(0,st.connect)(({pathsDetail:b})=>({pathsDetail:b}))(hs),Ni=Me(59301),Ra=Object.defineProperty,ws=Object.defineProperties,qo=Object.getOwnPropertyDescriptors,pl=Object.getOwnPropertySymbols,Xi=Object.prototype.hasOwnProperty,Cs=Object.prototype.propertyIsEnumerable,Pa=(b,a,y)=>a in b?Ra(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Ki=(b,a)=>{for(var y in a||(a={}))Xi.call(a,y)&&Pa(b,y,a[y]);if(pl)for(var y of pl(a))Cs.call(a,y)&&Pa(b,y,a[y]);return b},ha=(b,a)=>ws(b,qo(a)),Hn=(b,a)=>{var y={};for(var x in b)Xi.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&pl)for(var x of pl(b))a.indexOf(x)<0&&Cs.call(b,x)&&(y[x]=b[x]);return y},ri=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const qa=[{name:"\u672A\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u6B63\u5728\u5F00\u53D1\u4E2D\uFF0C\u4E0D\u53EF\u88AB\u4ED6\u4EBA\u4F7F\u7528",bkcolor:"#D8D8D8",txcolor:"#FFFFFF"},{name:"\u9759\u9ED8\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u53EF\u4EE5\u901A\u8FC7\u5206\u4EAB\u94FE\u63A5\u4F7F\u7528\uFF0C\u4F46\u4E0D\u80FD\u88AB\u5F00\u653E\u68C0\u7D22",bkcolor:"#7B92C7",txcolor:"#FFFFFF"},{name:"\u516C\u5F00\u5BA1\u6838",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u7533\u8BF7\u7EB3\u5165\u5F00\u653E\u68C0\u7D22\uFF0C\u76EE\u524D\u5E73\u53F0\u6B63\u5728\u5BA1\u6838\u4E2D",bkcolor:"#F9AF7E",txcolor:"#A44C11"},{name:"\u516C\u5F00\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u4E14\u53EF\u88AB\u5F00\u653E\u68C0\u7D22",bkcolor:"#FFE9C1",txcolor:"#A45204"}],no=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee}=a,te=Hn(a,["pathsDetail","user","globalSetting","loading","dispatch"]),ne,ie,ae,oe,le,de,he,ye,Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re;const[Oe]=(0,st.useSearchParams)(),ze=(0,st.useParams)(),[Le,_e]=(0,fe.useState)({}),Et=(0,fe.useRef)(1),[yt,jt]=(0,fe.useState)(),[tn,cn]=(0,fe.useState)(!1),[kt,pt]=(0,fe.useState)(!1),An=(0,fe.useRef)(null),Vt=!((ne=y.detail)!=null&&ne.can_managed),[rn,Bn]=(0,fe.useState)({status:!1}),hr=((ie=y.detail)==null?void 0:ie.is_free)||((ae=y.detail)==null?void 0:ae.can_learning);(0,fe.useEffect)(()=>{Bn({status:!1})},[]),(0,fe.useEffect)(()=>{function Qn(){return ri(this,null,function*(){var Un,Kn,Nr,Xr,Ht,En,qn;if((Un=y.detail)!=null&&Un.courses){const vr=(Kn=y.detail)==null?void 0:Kn.courses;if((Nr=vr==null?void 0:vr.toast)!=null&&Nr.is_open&&((Xr=vr.toast)==null?void 0:Xr.open_num)===-1)pt(!0);else if((Ht=vr==null?void 0:vr.toast)!=null&&Ht.is_open&&((En=vr==null?void 0:vr.toast)==null?void 0:En.open_num)===1){let cr=JSON.parse(localStorage.getItem("pathsshow"))||[];((qn=cr.filter(Vr=>Vr===(ze==null?void 0:ze.pathId)))==null?void 0:qn.length)>0?pt(!1):(pt(!0),cr.push(ze==null?void 0:ze.pathId),localStorage.setItem("pathsshow",JSON.stringify(cr)))}else pt(!1)}})}Qn()},[(oe=y.detail)==null?void 0:oe.courses]),(0,fe.useEffect)(()=>{var Qn,Un,Kn,Nr,Xr,Ht,En,qn,vr,cr,Vr;if(!((Un=(Qn=y.detail)==null?void 0:Qn.courses)==null?void 0:Un.length))return;let Jr;if((Kn=y.detail)!=null&&Kn.has_start){const ms=(Xr=(Nr=y.detail)==null?void 0:Nr.courses)==null?void 0:Xr.findIndex(Es=>{var Pt;return((Pt=Es.course_status)==null?void 0:Pt.status)===1});Jr=ms>-1?ms:0}else{let ms=(qn=(En=(Ht=y.detail)==null?void 0:Ht.courses)==null?void 0:En.map(Es=>{var Pt;return(Pt=Es.course_status)==null?void 0:Pt.status}))==null?void 0:qn.lastIndexOf(2);Jr=ms>-1?ms:0,ms=(cr=(vr=y.detail)==null?void 0:vr.courses)==null?void 0:cr.findIndex(Es=>{var Pt;return((Pt=Es.course_status)==null?void 0:Pt.status)===0}),Jr=ms>-1?ms:Jr}_e(((Vr=y.detail)==null?void 0:Vr.courses[Jr])||{})},[y.detail]);const bt=Qn=>{Bn({status:Qn})},on=Qn=>{rt.default.confirm({centered:!0,width:590,title:"\u63D0\u793A",okText:"\u786E\u5B9A\u7533\u8BF7",cancelText:"\u53D6\u6D88\u7533\u8BF7",icon:null,content:Ni.createElement("div",{className:"tc",style:{color:"#5F6367",textAlign:"left"}},"\u516C\u5F00\u8BFE\u7A0B\u9700\u7ECF\u8FC7\u5E73\u53F0\u6807\u51C6\u5316\u5BA1\u6838\uFF0C\u5BA1\u6838\u5468\u671F\u4E3A1-2\u5929\uFF0C\u516C\u5F00\u7684\u8BFE\u7A0B\u5C06\u5BF9\u5E73\u53F0\u6240\u6709\u4EBA\u53EF\u89C1\u3002",Ni.createElement("br",null),"\u82E5\u4EC5\u672C\u4EBA\u6559\u5B66\u4F7F\u7528\u5219\u65E0\u9700\u7533\u8BF7\u516C\u5F00\uFF0C\u76F4\u63A5\u53D1\u9001\u5230\u8BFE\u5802\u5373\u53EF",Ni.createElement("br",null)),onOk:()=>ri(void 0,null,function*(){let Un={user_customize:Qn.user_customize,type:Qn.type};Qn.user_customize?Un=ha(Ki({},Un),{discipline_name:Qn.discipline_name,sub_discipline_name:Qn.sub_discipline_name}):Qn.sub_discipline_id&&(Un=ha(Ki({},Un),{sub_discipline_id:Qn.sub_discipline_id}));const Kn=yield(0,lt.WO)(Ki({id:ze.pathId},Un));((Kn==null?void 0:Kn.status)===0||(Kn==null?void 0:Kn.status)===1)&&(dn(),nt.ZP.success("\u516C\u5F00\u7533\u8BF7\u5DF2\u63D0\u4EA4\uFF0C\u8BF7\u7B49\u5F85\u7BA1\u7406\u5458\u7684\u5BA1\u6838"))})})},dn=()=>{ee({type:"pathsDetail/getPathsDetail",payload:{id:ze.pathId,knowledge:!0}}),ee({type:"pathsDetail/getRightData",payload:{id:ze.pathId}})};return Ni.createElement("section",null,Oe.get("type")!=="classrooms"?Ni.createElement(Ji,null):Ni.createElement("aside",{className:at.banner,style:{backgroundImage:(he=(de=(le=y==null?void 0:y.detail)==null?void 0:le.attachments)==null?void 0:de[0])!=null&&he.url?`url(${(me=(Ae=(ye=y==null?void 0:y.detail)==null?void 0:ye.attachments)==null?void 0:Ae[0])==null?void 0:me.url})`:`url(${ln})`}},Ni.createElement("aside",{className:at.wrp},Ni.createElement("div",{className:at.name},(Ee=(Ce=y.detail)==null?void 0:Ce.name)==null?void 0:Ee.split(` `)[0]),Ni.createElement("div",{className:at.content},(Ne=(Be=y==null?void 0:y.detail)==null?void 0:Be.resource_data)==null?void 0:Ne.map((Qn,Un)=>Ni.createElement("span",{key:Un},Qn==null?void 0:Qn.node_type,"\uFF1A",Qn==null?void 0:Qn.num)),((Fe=y.detail)==null?void 0:Fe.origin_subject_identifier)&&Ni.createElement("div",{onClick:()=>{var Qn;window.open(`/paths/${(Qn=y.detail)==null?void 0:Qn.origin_subject_identifier}`)},className:at.go},Ni.createElement("img",{src:jn,className:at.goicon})," ",Ni.createElement("div",{style:{cursor:"pointer"}},"\u524D\u5F80\u8BFE\u7A0B\u5B66\u4E60"))))),rn.status&&Ni.createElement(It,{type:"subject",onCancel:()=>bt(!1),onOk:Qn=>{bt(!1),on(Qn)}}),Ni.createElement(rt.default,{open:kt,title:"\u8BFE\u7A0B\u516C\u544A",width:593,maskClosable:!1,onCancel:()=>{pt(!1)},centered:!0,footer:Ni.createElement("div",null,Ni.createElement($e.ZP,{type:"primary",onClick:()=>{pt(!1)}},"\u6211\u77E5\u9053\u4E86"))},Ni.createElement(Ot.Z,{style:{maxHeight:378,overflow:"auto"},value:(Re=(ke=y==null?void 0:y.detail)==null?void 0:ke.toast)==null?void 0:Re.content})))};var sd=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(no),So=Me(33796),uc={flex_box_center:"flex_box_center___gyNAa",flex_space_between:"flex_space_between___zekzh",flex_box_vertical_center:"flex_box_vertical_center___GQtHt",flex_box_center_end:"flex_box_center_end___P3hWY",flex_box_column:"flex_box_column___YRmML",bg:"bg___w3m29",wrap:"wrap___DQAaW",content:"content___ISSC7",wrapTabs:"wrapTabs___UH3jY",intro:"intro___GxOgI",introTitle:"introTitle___LyPY5"},lu={flex_box_center:"flex_box_center___FSHWz",flex_space_between:"flex_space_between___xMj_8",flex_box_vertical_center:"flex_box_vertical_center___TftIO",flex_box_center_end:"flex_box_center_end___KM3sc",flex_box_column:"flex_box_column___o0txR",tabs:"tabs___kpTFv",activied:"activied___IE4FQ",tab:"tab___JSx4b",placeholder:"placeholder___xpvd2",content:"content___I7f9K",nametext:"nametext___E8ley",modal:"modal___oIdtc",mHead:"mHead___tmQjG",form:"form___q76Kb",mType:"mType___zss8M",dropdownst:"dropdownst___NZ0IN",dropnametext:"dropnametext___v6FZZ"},ol={information:"information___cwV7S",body:"body___1JINN",title:"title___b5sMx",left:"left___yeFML",right:"right___uofAp",listWarp:"listWarp___mIMgF",li:"li___fF9zA",imgTitle:"imgTitle___HGcli",box:"box___pdLe8"},Oi="data:image/png;base64,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",cc="data:image/png;base64,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",ll="data:image/png;base64,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",Gu="data:image/png;base64,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",Ba=Me(33402),Na=Me(59301),dc=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),Wr=({})=>{var b;const[a,y]=(0,fe.useState)(!0),[x,E]=(0,fe.useState)({}),z=(0,st.useSelector)(ne=>ne),{pathsDetail:{detail:ee}}=z;(0,fe.useEffect)(()=>{ee!=null&&ee.id&&te()},[ee==null?void 0:ee.id]);const te=()=>dc(void 0,null,function*(){E(ee),y(!1)});return Na.createElement(Ba.Z,null,Na.createElement("div",{className:ol.information},a&&Na.createElement(Mt.Z,{style:{width:"100%",marginTop:"300rem"},spinning:!0}),!a&&Na.createElement("div",{className:ol.body},Na.createElement("div",{className:ol.left},Na.createElement("div",{className:ol.box,style:{marginBottom:"20rem"}},Na.createElement("img",{className:ol.imgTitle,src:Oi,style:{width:"453rem"}}),Na.createElement(Ot.Z,{value:(x==null?void 0:x.description)||""})),!!(x!=null&&x.learning_notes)&&Na.createElement("div",{className:ol.box},Na.createElement("img",{className:ol.imgTitle,src:ll,style:{width:"453rem"}}),Na.createElement(Ot.Z,{value:(x==null?void 0:x.learning_notes)||""}))),Na.createElement("div",{className:ol.right},Na.createElement("img",{className:ol.imgTitle,src:cc,style:{width:"323rem"}}),Na.createElement("div",{className:ol.listWarp},(b=x==null?void 0:x.subject_members)==null?void 0:b.map(ne=>Na.createElement("div",{key:ne==null?void 0:ne.login,className:ol.li},Na.createElement("img",{src:`${Gt.Z.IMG_SERVER}/images/${ne==null?void 0:ne.avatar}`}),(ne==null?void 0:ne.role)===1&&Na.createElement("img",{src:Gu,style:{width:"68rem",position:"absolute",right:"-1rem",top:"-1rem"}}),Na.createElement("div",null,Na.createElement(pn.Z,{title:ne==null?void 0:ne.username},Na.createElement("b",{className:"c-grey-333"},(0,Zt.Pq)(ne==null?void 0:ne.username,7))),Na.createElement(pn.Z,{title:ne==null?void 0:ne.school_name},Na.createElement("span",{className:"c-grey-999"},(0,Zt.Pq)(ne==null?void 0:ne.school_name,7)))))))))))},xs={exchange:"exchange___eh7R3",body:"body___oRT9t",liWarp:"liWarp___QSKqk",li:"li___qd10l",head:"head___X7rTk",btns:"btns___JOV8d",reply:"reply___FAse7",delete:"delete___cv2H_",praise:"praise___O_5sJ",active:"active____gfgF",num:"num___Vv9Co",secondWrap:"secondWrap___S4NT9",secondLi:"secondLi___KiwQK",secondHead:"secondHead___xyIHf",secondBtns:"secondBtns____BxwD",md:"md____p6F5",comment:"comment___YPf7o",addBtn:"addBtn___S8KeD",pagination:"pagination___iRtcm"},Ps=Me(13747),ur=Me(92310),Hr=Me.n(ur),mi=Me(2978),Ss={md:"md___NMHUA",dark:"dark___hYBxG"},ro=Me(59301),Ns=Object.defineProperty,bn=Object.defineProperties,Vn=Object.getOwnPropertyDescriptors,rs=Object.getOwnPropertySymbols,za=Object.prototype.hasOwnProperty,ca=Object.prototype.propertyIsEnumerable,si=(b,a,y)=>a in b?Ns(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,mo=(b,a)=>{for(var y in a||(a={}))za.call(a,y)&&si(b,y,a[y]);if(rs)for(var y of rs(a))ca.call(a,y)&&si(b,y,a[y]);return b},Wa=(b,a)=>bn(b,Vn(a)),Da=(b,a)=>{var y={};for(var x in b)za.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&rs)for(var x of rs(b))a.indexOf(x)<0&&ca.call(b,x)&&(y[x]=b[x]);return y},io=b=>{var a=b,{value:y,onChange:x,theme:E}=a,z=Da(a,["value","onChange","theme"]);const ee={dark:Ss.dark};return ro.createElement(Ba.Z,{prefixCls:"md"},ro.createElement("div",{className:Hr()(Ss.md,ee[E])},ro.createElement(mi.Z,Wa(mo({},z),{defaultValue:y,onChange:(te,ne)=>{console.log("a:",te,ne),ne!=null&&ne.length?x(te,ne):x(te)}}))))},Hl={noData:"noData___Luxe1"},Kl="data:image/png;base64,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",xr=Me(61485),Ln=Me(59301),Mo=({style:b={},className:a,text:y="\u6682\u65E0\u6570\u636E",textColor:x="#666",buttonText:E,buttonTexttow:z,ontwoClick:ee,onClick:te})=>Ln.createElement("div",{className:Hr()(Hl.noData,a),style:b},Ln.createElement("img",{src:Kl}),!!y&&Ln.createElement("span",{style:{color:x}},y),Ln.createElement("span",{style:{display:"flex"}},!!E&&Ln.createElement("div",{onClick:te},E),!!z&&Ln.createElement("div",{style:{marginLeft:"20rem",display:"flex",alignItems:"center",justifyContent:"center"},onClick:ee},z," ",Ln.createElement(pn.Z,{title:"\u6839\u636E\u65E7\u7248\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u6216\u8BFE\u7A0B\u7AE0\u8282\u53CA\u8D44\u6E90\u5185\u5BB9\u81EA\u52A8\u751F\u6210\u77E5\u8BC6\u56FE\u8C31"},Ln.createElement(xr.Z,{style:{color:"#fff",marginLeft:5,marginTop:0}}))))),ps=Me(59301),Dd=Object.defineProperty,Wf=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,Rh=Object.prototype.propertyIsEnumerable,ad=(b,a,y)=>a in b?Dd(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,fc=(b,a)=>{for(var y in a||(a={}))nr.call(a,y)&&ad(b,y,a[y]);if(Wf)for(var y of Wf(a))Rh.call(a,y)&&ad(b,y,a[y]);return b},Do=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Ho=({type:b,onEnter:a})=>{const[y,x]=(0,fe.useState)("");return ps.createElement("div",{className:xs.comment},ps.createElement(io,{theme:"dark",height:b===1?"264rem":"134rem",value:y,onChange:E=>x(E)}),ps.createElement($e.ZP,{size:"large",shape:"round",onClick:()=>a(y,b),type:"primary",style:{width:"100rem",marginBottom:"12rem",float:"right"}},"\u53D1\u9001"),ps.createElement("div",{style:{clear:"both"}}))};var ul=({})=>{const b=(0,st.useParams)(),[a,y]=(0,fe.useState)(!0),[x,E]=(0,fe.useState)({page:1}),[z,ee]=(0,fe.useState)(0),[te,ne]=(0,fe.useState)(!1),[ie,ae]=(0,fe.useState)([]);(0,fe.useEffect)(()=>{oe(x)},[]);const oe=Ae=>Do(void 0,null,function*(){y(!0);const me=yield(0,Nt.ZP)(`/api/paths/${b==null?void 0:b.pathId}/discusses.json`,{method:"get",params:Ae});me!=null&&me.comments&&(ae(me==null?void 0:me.comments),ee(me==null?void 0:me.disscuss_count)),y(!1)}),le=(Ae,me)=>Do(void 0,null,function*(){y(!0);const Ce=yield(0,Nt.ZP)(`/api/paths/${b==null?void 0:b.pathId}/post_discuss.json`,{method:"post",body:{content:Ae}});(Ce==null?void 0:Ce.status)===0&&(x.page=me===1?1:x.page,E(fc({},x)),oe(x),ne(!1))}),de=(Ae,me)=>Do(void 0,null,function*(){y(!0);const Ce=yield(0,Nt.ZP)(`/api/discusses/${te}/reply.json`,{method:"post",body:{container_type:"Shixun",content:Ae}});Ce!=null&&Ce.discuss&&(ne(!1),oe(x))}),he=(Ae,me)=>Do(void 0,null,function*(){y(!0);const Ce=yield(0,Nt.ZP)(`/api/discusses/${Ae}/plus.json`,{method:"post",body:{container_type:"Discuss",type:me}});(Ce==null?void 0:Ce.status)!==-1&&oe(x)}),ye=(Ae,me)=>Do(void 0,null,function*(){y(!0);const Ce=yield(0,Nt.ZP)(`/api/discusses/${Ae}.json`,{method:"delete",body:{}});(Ce==null?void 0:Ce.status)===1&&(x.page=me===1&&ie.length===1&&x.page!==1?x.page-1:x.page,E(fc({},x)),oe(x))});return ps.createElement(Ba.Z,null,ps.createElement(ps.Fragment,null,ps.createElement("span",{className:"relative",style:{float:"right"}},ps.createElement("div",{className:xs.addBtn,onClick:()=>ne(!0)},"\u53D1\u5E03\u8BA8\u8BBA")),ps.createElement("div",{className:xs.exchange},ps.createElement("div",{className:xs.body},ps.createElement(Mt.Z,{spinning:a},te===!0&&ps.createElement(Ho,{type:1,onEnter:le}),z?ps.createElement(ps.Fragment,null,ps.createElement("div",{className:xs.liWarp},ie==null?void 0:ie.map(Ae=>{var me,Ce,Ee,Be;return ps.createElement("div",{key:Ae==null?void 0:Ae.id,className:xs.li},ps.createElement("img",{src:`${Gt.Z.IMG_SERVER}/images/${(me=Ae==null?void 0:Ae.author)==null?void 0:me.image_url}`}),ps.createElement("aside",{style:{flex:1}},ps.createElement("div",{className:xs.head},ps.createElement("b",null,(Ce=Ae==null?void 0:Ae.author)==null?void 0:Ce.name),ps.createElement("span",null,Ae==null?void 0:Ae.time),ps.createElement("div",{className:xs.btns},ps.createElement(pn.Z,{placement:"top",title:"\u56DE\u590D",color:"#434B64"},ps.createElement("div",{onClick:()=>ne(Ae.id),className:xs.reply},ps.createElement("i",{className:"iconfont icon-a-huifupinglun"}))),(Ae==null?void 0:Ae.manage)&&ps.createElement(pn.Z,{placement:"top",title:"\u5220\u9664\u8BA8\u8BBA",color:"#434B64"},ps.createElement("div",{onClick:()=>ye(Ae.id,1),className:xs.delete},ps.createElement("i",{className:"iconfont icon-shanchu17"}))),ps.createElement(pn.Z,{placement:"top",title:"\u70B9\u8D5E",color:"#434B64"},ps.createElement("div",{onClick:()=>he(Ae==null?void 0:Ae.id,Ae!=null&&Ae.user_praise?0:1),className:Hr()(xs.praise,(Ae==null?void 0:Ae.user_praise)&&xs.active)},ps.createElement("i",{className:"iconfont icon-dianzan7"}))),!!(Ae!=null&&Ae.praise_count)&&ps.createElement("aside",{className:xs.num},Ae==null?void 0:Ae.praise_count))),ps.createElement(Ot.Z,{className:xs.md,value:(Ae==null?void 0:Ae.content)||""}),!!((Ee=Ae==null?void 0:Ae.children)!=null&&Ee.length)&&ps.createElement("div",{className:xs.secondWrap},(Be=Ae==null?void 0:Ae.children)==null?void 0:Be.map(Ne=>{var Fe;return ps.createElement("div",{className:xs.secondLi},ps.createElement("div",{className:xs.secondHead},ps.createElement("b",null,(Fe=Ne==null?void 0:Ne.author)==null?void 0:Fe.name),ps.createElement("span",null,Ne==null?void 0:Ne.time),ps.createElement("div",{className:xs.secondBtns},(Ne==null?void 0:Ne.manage)&&ps.createElement(pn.Z,{placement:"top",title:"\u5220\u9664\u8BA8\u8BBA",color:"#434B64"},ps.createElement("div",{onClick:()=>ye(Ne.id,2),className:xs.secondDelete},ps.createElement("i",{className:"iconfont icon-shanchu17"}))))),ps.createElement(Ot.Z,{className:xs.md,value:(Ne==null?void 0:Ne.content)||""}))})),te===Ae.id&&ps.createElement(Ho,{type:2,onEnter:de})))})),ps.createElement("div",{className:xs.pagination},ps.createElement(Ps.Z,{onChange:Ae=>{x.page=Ae,E(fc({},x)),oe(x)},total:z,current:x==null?void 0:x.page,pageSize:10,hideOnSinglePage:!0,showSizeChanger:!1,showQuickJumper:!1,style:{marginTop:"20rem",marginBottom:"40rem"},showTotal:Ae=>ps.createElement("span",{style:{marginLeft:"10rem",color:"#fff"}},"\u5171",ps.createElement("span",{style:{color:"#37AD83",margin:"0 5rem"}},Ae),"\u6761\u6570\u636E")}))):!te&&ps.createElement(Mo,{textColor:"#fff",style:{visibility:a?"hidden":"visible"}}))))))},pa={learning:"learning___axerA",body:"body___xn5Fa",tabs:"tabs___C2Adc",name:"name___VKGdS",tabWrap:"tabWrap___EnXyi",tab:"tab___EBO0d",active:"active___XXAsu",head:"head___XDru2",numerical:"numerical___APDFZ",action:"action___V6i8x",studentHead:"studentHead___I1em7",headLi:"headLi___UsDfK",btn:"btn___SXQTV",disabledBtn:"disabledBtn___gfcug",addBtn:"addBtn___oYSpZ",ChangeBut:"ChangeBut___XjMr5",PublishBut:"PublishBut___r0ltL",SwitchStyle:"SwitchStyle___ioClp",spin:"spin___Oa3YX"},ml=Me(71411),ql="data:image/png;base64,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",Mc="data:image/png;base64,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",Wc="data:image/png;base64,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",Td="data:image/png;base64,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",ho=Me(82326),Dc=Me(18287),xl={flex_box_center:"flex_box_center___g95QO",flex_space_between:"flex_space_between___DdZrd",flex_box_vertical_center:"flex_box_vertical_center___XptQo",flex_box_center_end:"flex_box_center_end___OeRyD",flex_box_column:"flex_box_column___GCZDS",addModal:"addModal___rkVQM",contentWrap:"contentWrap___hdqno",boxTitle:"boxTitle___messp",tip:"tip___w9Tak",leftBox:"leftBox___kDArQ",formSty:"formSty___RXRPG",rightBox:"rightBox___BUv9Q",nodeData:"nodeData___FbbqZ",yc:"yc___lhz8B",yclj:"yclj___Z6AKQ",nametitle:"nametitle___lR1nK",treeheight:"treeheight___RZ8Gb"},Qf=Me(89489),bl=Me(57884),Zf=Me(71360),Xu={contentWrap:"contentWrap___ni2IK",titleSty:"titleSty___EglCE",leftBox:"leftBox___s2Tog",rightBox:"rightBox___UXF7P",tipSty:"tipSty___tamqo"},Tl=Me(16326),oo=Me(62673),Yf=Me(56656),Uo=Me.n(Yf),sf=Me(62787),Wu=Me(64948),Pu=Me(69577),Jf=Me(77087),Ja=Me(59301),uu=Object.defineProperty,Tp=Object.defineProperties,Il=Object.getOwnPropertyDescriptors,Tc=Object.getOwnPropertySymbols,od=Object.prototype.hasOwnProperty,Id=Object.prototype.propertyIsEnumerable,Ip=(b,a,y)=>a in b?uu(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Bu=(b,a)=>{for(var y in a||(a={}))od.call(a,y)&&Ip(b,y,a[y]);if(Tc)for(var y of Tc(a))Id.call(a,y)&&Ip(b,y,a[y]);return b},Fp=(b,a)=>Tp(b,Il(a)),af=(b,a)=>{var y={};for(var x in b)od.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&Tc)for(var x of Tc(b))a.indexOf(x)<0&&Id.call(b,x)&&(y[x]=b[x]);return y},Qu=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const cu={\u8BD5\u5377:"#F65160",\u89C6\u9891:"#4237E7",\u5B9E\u8BAD:"#145DFF",\u8BFE\u4EF6:"#1B8565",\u4F5C\u4E1A:"#21B292",\u5176\u4ED6:"#B96B18",\u6559\u6750:"#B96B18",\u56FE\u6587:"#B96B18",\u5206\u7EC4:"#21B292",\u7AE0\u8282:"#B16514"},Ri={\u8BD5\u5377:"#FEEDEF",\u89C6\u9891:"#ECEAFC",\u5B9E\u8BAD:"#E7EEFF",\u8BFE\u4EF6:"#EBF6F2",\u4F5C\u4E1A:"#ECFBF7",\u5176\u4ED6:"#FFF7EF",\u6559\u6750:"#FFF7EF",\u5206\u7EC4:"#ECFBF7",\u56FE\u6587:"#FFF7EF",\u7AE0\u8282:"#FFF3EC"},Se=b=>{var a=b,{pathsDetail:y,classroomList:x,user:E,globalSetting:z,dispatch:ee,visible:te,setVisible:ne,detail:ie,uuid:ae,treeList:oe,onOk:le}=a,de=af(a,["pathsDetail","classroomList","user","globalSetting","dispatch","visible","setVisible","detail","uuid","treeList","onOk"]),he;const ye=(0,st.useParams)(),[Ae,me]=(0,fe.useState)([]),[Ce,Ee]=(0,fe.useState)([]),[Be]=it.default.useForm(),[Ne,Fe]=(0,fe.useState)(1),[ke,Re]=(0,fe.useState)([]),[Oe,ze]=(0,fe.useState)(0),[Le,_e]=(0,fe.useState)([]),[Et,yt]=(0,fe.useState)(!0),[jt,tn]=(0,fe.useState)(!1),[cn,kt]=(0,fe.useState)(!1),[pt,An]=(0,fe.useState)(!1),[Vt,rn]=(0,fe.useState)({});ye.coursesId=ye.pathId,ye.id=ye.coursesId,(0,fe.useEffect)(()=>{if(te){if(Qn(),hr(),x.actionTabs.type===2){const Kn=x.actionTabs.selectArrsAll[0];yt(Kn.unified_setting)}else yt(!1);const Un=Bn(oe);Ee(Un),me([])}},[te]);const Bn=Un=>Un==null?void 0:Un.map(Kn=>{const{id:Nr,node_type:Xr,name:Ht,children:En,position:qn}=Kn;return{key:Nr,title:"has_children"in Kn?`${Ht}`:Ja.createElement(Ja.Fragment,null,Ja.createElement("span",{style:{color:cu[Xr],backgroundColor:Ri[Xr],padding:"2px 4px",marginRight:"5px"}},Xr),Ja.createElement("span",null,Ht)),children:(En==null?void 0:En.length)>0?Bn(En):[],tag:"has_children"in Kn?"":Xr}}),hr=Un=>Qu(void 0,null,function*(){tn(!0);const Kn=yield(0,Wu.c_)(Fp(Bu({},ye),{page:Un||Ne,limit:2e4}));Kn==null||Kn.course_groups.map((Nr,Xr)=>{Nr.key=Nr.id,Nr.title=Nr.name,Nr.disabled=Nr.is_published}),Kn&&(Re([...Kn==null?void 0:Kn.course_groups]),ze(Kn==null?void 0:Kn.course_groups_count),tn(!1),Un||Be.setFieldsValue({publish_time:Uo()(Uo()(new Date).add(0,"days").format("YYYY-MM-DD HH:mm")),end_time:Uo()(Uo()(new Date((0,Zt.qd)("/"))).add(7,"days").format("YYYY-MM-DD HH:mm"))}))}),bt=Un=>{console.log("onCheck",Un),me(Un)},on=()=>Qu(void 0,null,function*(){var Un,Kn,Nr;const Xr=Bu({},Be.getFieldsValue());if(Xr.end_time<=Xr.publish_time){nt.ZP.info("\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u5927\u4E8E\u6216\u7B49\u4E8E\u53D1\u5E03\u65F6\u95F4"),kt(!1);return}if((Le==null?void 0:Le.length)<=0&&!Et&&ke.length>0){nt.ZP.info("\u53D1\u5E03\u73ED\u7EA7\u4E0D\u80FD\u4E3A\u7A7A"),kt(!1);return}let Ht={ids:[...Ae],group_ids:Le.length>0?Le.map(qn=>qn.id):(Un=x.detailShixunsList)==null?void 0:Un.course_groups,end_time:Uo()(Xr.end_time).format("YYYY-MM-DD HH:mm"),publish_time:Uo()(Xr.publish_time).format("YYYY-MM-DD HH:mm"),unified_setting:!Le.length,subject_id:ye.pathId};kt(!0);const En=yield(0,Nt.ZP)("/api/subject_knowledge/batch_publish.json",{method:"post",body:Bu({},Ht)});En.status===0&&(((Kn=En==null?void 0:En.examination_bank_ids)==null?void 0:Kn.length)>0||((Nr=En==null?void 0:En.shixun_info)==null?void 0:Nr.length)>0?(rn(Fp(Bu({},En),{courseId:ye==null?void 0:ye.coursesId})),ne(!1),An(!0)):dn()),kt(!1)}),dn=()=>{le(ae,""),ee({type:"classroomList/setActionTabs",payload:{}}),ee({type:"pathsDetail/setActionTabs",payload:{key:"\u66F4\u65B0\u6570\u636E"}}),tn(!1),Qn(),(0,Zt.L9)(["\u6559\u5B66\u8BFE\u5802","\u8BFE\u7A0B\u5B9E\u9A8C","\u7ACB\u5373\u53D1\u5E03"]),nt.ZP.success("\u53D1\u5E03\u6210\u529F")},Qn=()=>{Fe(1),Re([]),_e([])};return Ja.createElement(rt.default,{title:"\u53D1\u5E03\u5B66\u4E60\u8D44\u6E90",open:te,confirmLoading:cn,width:"1200rem",centered:!0,onOk:on,onCancel:()=>{ne(!1)},maskClosable:!1},Ja.createElement(Mt.Z,{spinning:jt},Ja.createElement("div",{className:`flex w-full ${Xu.contentWrap}`},Ja.createElement("div",{className:`p-10px-rem flex-1 minW-0 ${Xu.leftBox}`},Ja.createElement("div",{className:Xu.titleSty},"\u9009\u62E9\u8D44\u6E90"),Ja.createElement(Dc.default,{checkable:!0,onCheck:bt,checkedKeys:Ae,treeData:Ce,defaultExpandedKeys:[(he=oe==null?void 0:oe[0])==null?void 0:he.id]})),Ja.createElement("div",{className:`flex flex-col flex-1 minW-0 ${Xu.rightBox}`},Ja.createElement("div",{className:Xu.titleSty},"\u53D1\u5E03\u89C4\u5219"),Ja.createElement("p",{className:Xu.tipSty},"\u5230\u8FBE\u53D1\u5E03\u65F6\u95F4\u540E\uFF0C\u5B66\u751F\u5C06\u5728\u5404\u6559\u5B66\u6A21\u5757\u4E2D\u67E5\u770B\u5230\u5B66\u4E60\u8DEF\u5F84\u7684\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u3001\u8D44\u6E90\u7B49 \u53D1\u5E03\u64CD\u4F5C\u4EC5\u9488\u5BF9\u672A\u53D1\u5E03\u8D44\u6E90\u7684\u5206\u73ED\u751F\u6548"),Ja.createElement(it.default,{className:"flex flex-col",form:Be},Ja.createElement("div",{className:"flex item-center gap-10px-rem"},Ja.createElement(it.default.Item,{className:"flex-1 minW-0",name:"publish_time",label:"\u53D1\u5E03\u65F6\u95F4"},Ja.createElement(Tl.default,{disabledDate:Un=>(0,Pu.Q8)(Un,null),disabledTime:Un=>(0,Pu.d0)(Un),placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Uo()((0,Zt.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",allowClear:!1})),Ja.createElement(it.default.Item,{className:"flex-1 minW-0",name:"end_time",label:"\u622A\u6B62\u65F6\u95F4:"},Ja.createElement(Tl.default,{placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Uo()((0,Zt.U6)(),"HH:mm")},disabledDate:Un=>(0,Pu.Q8)(Un,null,Be.getFieldValue("publish_time")),disabledTime:Un=>(0,Pu.d0)(Un,Be.getFieldValue("publish_time")),format:"YYYY-MM-DD HH:mm",allowClear:!1}))),ke.length<=0&&x.actionTabs.type===2&&Ja.createElement("span",{style:{marginLeft:"65px",color:"rgba(0, 0, 0, 0.25)"}},'\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03"'),ke.length>0&&Ja.createElement("div",{className:"flex justify-between ",style:{marginBottom:"10rem"}},Ja.createElement(oo.default,{className:"flex-1 minW-0",checked:Le.length===ke.length,onChange:Un=>{Le.length===ke.length?_e([]):_e(ke)}},"\u5168\u9009"),Ja.createElement("div",{className:"flex-1 minW-0"},"\u5DF2\u9009\u62E9",Le.length||0,"\u4E2A\u5206\u73ED")),(x.actionTabs.type===1||!Et)&&ke.length>0&&Ja.createElement(sf.Z,{className:"flex-1 minW-0",data:ke,selectedRowKeys:Le,setSelectedRowKeys:_e,handleChangePage:()=>{}}))))),Ja.createElement(Jf.Z,{source:"\u5B9E\u8BAD\u548C\u8BD5\u5377",showModal:pt,onCancel:()=>An(!1),info:Vt,onOk:dn}))};var tt=(0,st.connect)(({pathsDetail:b,classroomList:a,user:y,globalSetting:x})=>({pathsDetail:b,classroomList:a,user:y,globalSetting:x}))(Se),Ye=Me(59301),ut=Object.defineProperty,ht=Object.defineProperties,Wt=Object.getOwnPropertyDescriptors,Kt=Object.getOwnPropertySymbols,qt=Object.prototype.hasOwnProperty,Gn=Object.prototype.propertyIsEnumerable,rr=(b,a,y)=>a in b?ut(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,un=(b,a)=>{for(var y in a||(a={}))qt.call(a,y)&&rr(b,y,a[y]);if(Kt)for(var y of Kt(a))Gn.call(a,y)&&rr(b,y,a[y]);return b},dr=(b,a)=>ht(b,Wt(a)),Pr=(b,a)=>{var y={};for(var x in b)qt.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&Kt)for(var x of Kt(b))a.indexOf(x)<0&&Gn.call(b,x)&&(y[x]=b[x]);return y},fr=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const mr=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee,addmodal:te,setaddmodal:ne,uuid:ie,onOk:ae}=a,oe=Pr(a,["pathsDetail","user","globalSetting","loading","dispatch","addmodal","setaddmodal","uuid","onOk"]),le,de,he,ye,Ae,me,Ce,Ee,Be,Ne,Fe;const ke=(0,st.useParams)(),[Re,Oe]=(0,fe.useState)([]),[ze,Le]=(0,fe.useState)(!1),[_e,Et]=(0,fe.useState)([]),[yt]=it.default.useForm(),jt=it.default.useWatch("uuid",yt),[tn,cn]=(0,fe.useState)(!1);(0,fe.useEffect)(()=>{var Bn,hr;if(te){if(pt(),ie){const bt=((hr=(Bn=y==null?void 0:y.detail)==null?void 0:Bn.route_nodes)==null?void 0:hr.find(on=>(on==null?void 0:on.id)==ie))||{};(bt==null?void 0:bt.knowledge_labels)=="--"&&(bt.knowledge_labels=""),yt.setFieldsValue(un({},bt))}An()}},[te]);function kt(Bn,hr){for(let bt of Bn)hr.push(bt),bt.children&&bt.children.length>0&&kt(bt.children,hr)}const pt=()=>fr(void 0,null,function*(){Le(!0);let Bn=yield(0,Nt.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:3,subject_id:ke==null?void 0:ke.pathId}});(Bn==null?void 0:Bn.status)===0&&Et([{id:1,name:"\u5168\u90E8"},...(Bn==null?void 0:Bn.data)||[]]),Le(!1)}),An=()=>fr(void 0,null,function*(){const Bn=yt.getFieldValue("knowledge_labels")||[],hr=yt.getFieldValue("resource_labels")||[],bt=(Bn==null?void 0:Bn.length)>0?Bn:["\u5168\u90E8"],on=yt.getFieldValue("uuid")||ie;if(!on){nt.ZP.info("\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31");return}Le(!0);let dn=yield(0,Nt.ZP)("/api/subject_knowledge/tree.json",{method:"post",body:{uuid:on,subject_id:ke==null?void 0:ke.pathId,knowledge_labels:bt,resource_labels:hr,id:ie,is_edit:!!ie}});(dn==null?void 0:dn.status)===0&&Oe(dn==null?void 0:dn.data),Le(!1)}),Vt=Bn=>{console.log(Bn);const hr=Bn.node.id,bt=Bn.dragNode.id,on=Bn.node.pos.split("-"),dn=Bn.dropPosition-Number(on[on.length-1]),Qn=(Nr,Xr,Ht)=>{for(let En=0;En{Ht.splice(Xr,1),Kn=Nr}),!Bn.dropToGap)Qn(Un,hr,Nr=>{Nr.children=Nr.children||[],Nr.children.unshift(Kn)});else{let Nr=[],Xr;Qn(Un,hr,(Ht,En,qn)=>{Nr=qn,Xr=En}),dn===-1?Nr.splice(Xr,0,Kn):Nr.splice(Xr+1,0,Kn)}Oe(Un)},rn=Bn=>fr(void 0,null,function*(){var hr,bt,on,dn,Qn;let Un=[];if(kt(Re,Un),(Re==null?void 0:Re.length)<=0||((hr=Un==null?void 0:Un.filter(Xr=>!(Xr!=null&&Xr.is_out)))==null?void 0:hr.length)===0||((bt=Re==null?void 0:Re.filter(Xr=>!(Xr!=null&&Xr.is_out)))==null?void 0:bt.length)===0){nt.ZP.info("\u5B66\u4E60\u8DEF\u5F84\u4E0D\u53EF\u4E3A\u7A7A");return}cn(!0);const Kn=dr(un({},Bn),{uuid:Bn.uuid||ie,subject_id:ke==null?void 0:ke.pathId,routes:Re});ie&&(Kn.id=(Qn=(dn=(on=y==null?void 0:y.detail)==null?void 0:on.route_nodes)==null?void 0:dn.find(Xr=>Xr==null?void 0:Xr.is_choice))==null?void 0:Qn.id);const Nr=yield(0,Nt.ZP)("/api/subject_knowledge.json",{method:"post",body:un({},Kn)});(Nr==null?void 0:Nr.status)===0&&(nt.ZP.success(ie?"\u7F16\u8F91\u6210\u529F":"\u65B0\u589E\u6210\u529F"),ae(Nr==null?void 0:Nr.id,""),ne(!1)),cn(!1)});return Ye.createElement(rt.default,{title:ie?"\u7F16\u8F91\u5B66\u4E60\u8DEF\u5F84":"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84",open:te,width:"1140rem",className:xl.addModal,centered:!0,onOk:()=>fr(void 0,null,function*(){yt.submit()}),okButtonProps:{loading:tn},okText:ie?"\u5B8C\u6210\u7F16\u8F91":"\u5B8C\u6210\u521B\u5EFA",onCancel:()=>{ne(!1)},maskClosable:!1},Ye.createElement(Mt.Z,{spinning:ze},Ye.createElement("div",{className:xl.contentWrap},Ye.createElement("div",{className:xl.leftBox},Ye.createElement("div",{className:`flex item-center gap-10px-rem ${xl.boxTitle}`},"\u57FA\u672C\u4FE1\u606F",Ye.createElement(pn.Z,{title:Ye.createElement(Ye.Fragment,null,"\u8DEF\u5F84\u540D\u79F0\uFF1A\u586B\u5199\u672C\u5B66\u4E60\u8DEF\u5F84\u540D\u79F0\uFF0C\u5982\uFF1A\u6587\u79D1\u5B66\u4E60\u8DEF\u5F84\u3001\u57FA\u7840\u5B66\u4E60\u8DEF\u5F84\u7B49",Ye.createElement("br",null),"\u9002\u7528\u4EBA\u7FA4\uFF1A\u586B\u5199\u9002\u5408\u9002\u7528\u672C\u5B66\u4E60\u8DEF\u5F84\u7684\u7528\u6237\uFF0C\u5982\uFF1A\u6587\u79D1\u4E13\u4E1A\u5B66\u751F\u7B49",Ye.createElement("br",null),"\u7B80\u4ECB\uFF1A\u5BF9\u672C\u5B66\u4E60\u8DEF\u5F84\u505A\u57FA\u672C\u4ECB\u7ECD\uFF0C\u5982\uFF1A\u4ECB\u7ECD\u8D44\u6E90\u7C7B\u578B\u7B49",Ye.createElement("br",null),"\u77E5\u8BC6\u56FE\u8C31\uFF1A\u9009\u62E9\u672C\u8BFE\u7A0B\u4E2D\u5DF2\u7ECF\u521B\u5EFA\u7684\u77E5\u8BC6\u56FE\u8C31",Ye.createElement("br",null),"\u8D44\u6E90\u7C7B\u578B\uFF1A\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8D44\u6E90\u7C7B\u578B",Ye.createElement("br",null),"\u56FE\u8C31\u6807\u7B7E\uFF1A\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u6807\u7B7E",Ye.createElement("br",null),"\u6CE8\u610F\uFF1A\u53EF\u4EE5\u901A\u8FC7\u8D44\u6E90\u7C7B\u578B\u548C\u56FE\u8C31\u6807\u7B7E\u7B5B\u9009\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u5185\u5BB9\uFF0C\u66F4\u5FEB\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84")},Ye.createElement("span",{className:"iconfont icon-tishi7 current",style:{color:"#FF8C29"}}))),Ye.createElement(it.default,{className:xl.formSty,form:yt,layout:"horizontal",onFinish:rn,scrollToFirstError:!0,size:"large",colon:!1,labelAlign:"right",initialValues:{knowledge_labels:["\u5168\u90E8"],uuid:((de=(le=y==null?void 0:y.detail)==null?void 0:le.nodes)==null?void 0:de.length)>1?(Ae=(ye=(he=y==null?void 0:y.detail)==null?void 0:he.nodes.slice(1))==null?void 0:ye[0])==null?void 0:Ae.uuid:""}},Ye.createElement(it.default.Item,{label:"\u8DEF\u5F84\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8DEF\u5F84\u540D\u79F0"}]},Ye.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u8DEF\u5F84\u540D\u79F0",maxLength:20})),Ye.createElement(it.default.Item,{label:"\u9002\u7528\u4EBA\u7FA4",name:"applicable_people"},Ye.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u9002\u7528\u4EBA\u7FA4",maxLength:50})),Ye.createElement(it.default.Item,{label:"\u7B80\u4ECB",name:"description"},Ye.createElement(ct.default.TextArea,{placeholder:"\u8BF7\u8F93\u5165\u7B80\u4ECB",rows:3,maxLength:200})),Ye.createElement(it.default.Item,{label:"\u77E5\u8BC6\u56FE\u8C31",name:"uuid",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31"}]},Ye.createElement(ho.default,{placeholder:"\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31",options:((Ce=(me=y==null?void 0:y.detail)==null?void 0:me.nodes)==null?void 0:Ce.length)>1?(Ee=y==null?void 0:y.detail)==null?void 0:Ee.nodes.slice(1):[],fieldNames:{label:"name",value:"uuid"}})),Ye.createElement(it.default.Item,{label:"\u8D44\u6E90\u7C7B\u578B",name:"resource_labels",initialValue:["\u5168\u90E8"]},Ye.createElement(ho.default,{placeholder:"\u8BF7\u9009\u62E9\u8D44\u6E90\u7C7B\u578B",mode:"multiple",showSearch:!0,optionFilterProp:"node_type",options:((Fe=(Ne=(Be=y==null?void 0:y.detail)==null?void 0:Be.nodes)==null?void 0:Ne.find(Bn=>(Bn==null?void 0:Bn.uuid)==jt))==null?void 0:Fe.resource_labels)||[],fieldNames:{label:"node_type",value:"node_type"}})),Ye.createElement(it.default.Item,{label:"\u56FE\u8C31\u6807\u7B7E",name:"knowledge_labels"},Ye.createElement(ho.default,{allowClear:!0,mode:"multiple",placeholder:"\u8BF7\u9009\u62E9\u56FE\u8C31\u6807\u7B7E",options:_e,fieldNames:{label:"name",value:"name"}}))),Ye.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Ye.createElement(Zf.op,{shape:"default",onClick:An},"\u67E5\u8BE2"))),Ye.createElement("div",{className:xl.rightBox},Ye.createElement("div",{className:xl.boxTitle},"\u5B66\u4E60\u8DEF\u5F84",Ye.createElement("span",{className:xl.tip},"\uFF08\u62D6\u52A8\u53EF\u8C03\u6574\u8DEF\u5F84\u987A\u5E8F\uFF09")),Ye.createElement("div",{style:{maxHeight:"500rem",overflow:"auto"}},(Re==null?void 0:Re.length)>0?Ye.createElement(Dc.default,{style:{background:"#FAFAFA"},treeData:Re,showLine:!0,blockNode:!0,fieldNames:{key:"id"},className:xl.treeheight,draggable:!0,onDrop:Vt,switcherIcon:Ye.createElement(Qf.Z,null),titleRender:Bn=>Ye.createElement("div",{className:xl.nodeData,style:{color:Bn!=null&&Bn.is_out?"#999999":"#000000"}},Ye.createElement("span",{style:{color:cu[Bn==null?void 0:Bn.node_type],backgroundColor:Ri[Bn==null?void 0:Bn.node_type],padding:"2px 4px",marginRight:"5px"}},Bn==null?void 0:Bn.node_type),Ye.createElement("div",{className:xl.nametitle,title:Bn==null?void 0:Bn.name,style:{flex:1}},(Bn==null?void 0:Bn.is_out)&&Ye.createElement("span",{className:xl.yc},"\u5DF2\u79FB\u51FA")," ",Bn==null?void 0:Bn.name),Ye.createElement("span",{className:xl.yclj,style:{color:Bn!=null&&Bn.is_out?"#37AD83":"#E30000",fontSize:"14rem"},onClick:()=>{const hr=(on,dn)=>{var Qn;on.is_out=dn,((Qn=on==null?void 0:on.children)==null?void 0:Qn.length)>0&&on.children.forEach(Un=>hr(Un,dn))},bt=!Bn.is_out;Bn.is_out=bt,hr(Bn,bt)}},Bn!=null&&Bn.is_out?"\u52A0\u5165\u5B66\u4E60\u8DEF\u5F84":"\u79FB\u51FA\u5B66\u4E60\u8DEF\u5F84")," ")}):Ye.createElement(bl.Z,{styles:{margin:"20rem auto"}}))))))};var br=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(mr),wr=Me(85143),Jn={tree:"tree___nmqFN",center:"center___zS18i",head:"head___VcDyA",del:"del___VM4Mh",body:"body___YCIVW",tabs:"tabs___SW1M6",active:"active___p1mR9",scrollBox:"scrollBox___reAJO",treeWarp:"treeWarp___oNJ2m",treeNode:"treeNode___qHtQK",node:"node___AIr0l",info:"info___FnWMG",resource:"resource___WYrQp",action:"action___gQRZY",tags:"tags___iMesf",tag:"tag___ImQuD",leftLine:"leftLine___KCWcy",rightLine:"rightLine____XB16",icon:"icon___QEn9F",nodeWrap:"nodeWrap___CLyJX",line:"line___njEbX",statusbutton:"statusbutton___yMqes",checkbox:"checkbox___jNN_4",loading:"loading___zOI_x",allTreeNode:"allTreeNode___csU65"},Fr=Me(88887),Mr=Me(77019),Dr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA1lJREFUWEfFl09oXFUUxn/nvTEpbXXRos4bgwgGRYtZCIILhQSFtgEjgnShCNJV05pMqQstpV1UjW6seY1pFERB6EYEJVJbRMmALgqCixTFlgoupjOjUhdNo0068z65w0ycmcxMJmbk3e39zne+d/69c40Oz45P1PPnbwxZxEgkHjQjJUg5c4OcRM4zfpLH7LY7mftxjy13Qm1rge6ZVnK5yLEInkfctha+fG9c8+B0T4Ljvx6wQjublgL6T6r3L3EkEoeALR05Xg1a9IwTm403Lo/bUjOOpgLcV98o8hni0f/ouN7MOL8pwTPNorFKQN+kBkrGGYm+rjivkJiR9T2Gs2N2oZa3ToD78qUi33fbedWhE9Gb4JHaSKwIcDm/LjJdC3ur8BnntxqD1ZpYEZAKdTwSR7sZ9lZcnvFaLm3HKi0M5aK7yeUNVPt6dS9uuoV+l4pyBFKhTkVidL0sG8F7xkwubfvNTbiref7oeMhsxGt9+V/bHnC7BVPaqRLnusW7Hh7z2WWpUNOR2N/W0Jj3jBcRd0fi8zqsMW/iKYzDEvs8n6cxslGJjxAD7Xg945QlJzUHDLbuGj72U+zL7rG/g0k9Jvi2FpvwGcqOWSYI9abEqwaP5w/ad6n3tVk3eE/ihTYiMhaEuihx3yqQIYwDhXGbcXfJk3qWiA+BW1ewxheFtI3cO6M7FpfKXeTuFvDYWxi3Tyt2o4jpMlvDMeOSJUMtILY2EfBNIW1PDs4pcfECbyni5QZM0fN5KDdmPwehZlz462rMOHH/AK9khqyYDPU14okmPq63FGDGuXzadt/1rrZHRU4LdtYSVNsomNYDusk8kGgQ8JXn89yVl+xqEOqsxK4mqVhonQIo4jNSGLOzkiwIOWQwIehxYd7SS/8vo/Z7MtQsrggrx2BZxpH8OG+bmZJT2k2J2UaB5SlYTkG7IjRk8M62gMNuw0mGGkacMXg9f9CO9k1psFjCFfG/x2fYiS5vUAUm5PaJJvmvGGRcG645BQ1+8Dz2lowUJb40mJTHBMLltr7VfIY9UVDEB4KH12zD2AdR7KPYhaiTNKxnxHaCXfkZOXDsv+NKFOJbSJyA2FeyaipiW0qrhRPrWl4VEevDpCoi1qdZbR/H9jhtHCb/1/P8H/hZr0qiHgOCAAAAAElFTkSuQmCC",_r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA/1JREFUWEe1l19oW2UYxp/nNMmWdO1cZmcSW3TYKWwKoh3MmdBVUOmEDSeINvNGGEwRLwRR0Y12FHF44c2qTvEuCaNCRS+KiJiQP512eOFFB3XzX7FNXVnLlrRL8+e8ck6XmS45OUc9O5fnfO/7/L7n/b7vvB9h8dk1OuVaLF3po1QOqMBOEgGBBLRwgnMimFOA88KWr7zOzfGpZ3cVraSm2aC7Ryd9xVLxuCoSBqTdbPzad14lJeba6DnxxzM92WYxhgDd4xc2rCxl31YFrwFotSZcN2qZ5AetW3zDF/fvWG2UoyGANutCcfULQPb8R+GbwvjDBrf76UZu1AF0RiYeqKA8LkCnPeLXiwLOKg48Nftc6KfavOsAtJmvFgvn7BavChKcdbndu2uduAGg1Ty/OJ+wz3YD/4jJjYGu3t/7thfWdtD1JxBNnlAFx+y03SgXyeFsOKRr6QBri65w0Wi1EyiAvGaUUASbAVGswhNccbnd3VopdIBANP2hKupLBtuk0N6mbJs+GMwZCfijqXEAPSLS8S8gTmcPh45SO+EuFxcXjA4ZkkvZcMjbLLE/kvrY4VBOlSvqd9YhmNvq8t5Of3TiSZHy103qZQ4QTUYgzAO4SyiPQ9BixQkq7GcgkhpRIS//H4DaWF8kqR29PisACpWP6Iuk4oDsu0UAywQ+BRkUkZ56DSboj6amReReKwAyiV4Qz9eNJcbYg2+09zccIPIk+7MDoXTgzNmH1HLpx5vjSP5MXzSZg2CTFQArtuoAxKaquA4VTb0HkTcagOe1ElwFpM0OgEER5XQ0dQkKD2cHQvrC9kfSbwnUdxvnZ862Egw9LN9+EsucEshZCPo7OtqPLCzkXjUW1xuZaVsWoTZzXZwS02reOTrRXSlVPheRB5uWjYzbsg190fSxFiA9Gw7GzW2vQSJHbDmIfJHUZ0fDwSODpNq85uv9UBTlCVuOYl8sdZICHwTXBHgREKfpjiGu3Hmfp8P8Z0SsOkH/TDi0ZJRUWwOJBJRf59JtJcGfAvGYA3BkPhx6xdLvGESZgrJZUiEcEDjMxoHIu+nq/m1gz1//NCSR9JAK9bhpsB0DyMH5cGhIS7W+JVvKxiF4xA6NJgdbxuv0Pla9uKxrSrfHvr+jIMVzIui6FRAEZzweZfcvhx69VM1f15Z3ncncX65Uxu2G0MSdCvfPDASnaifX8GKiO6EWxwTYa4cTJDMet3KoduaGDlQ/6K1a+fKbELze7G/ZHJA5kO9vdW45aXRZNb2c3jOW2ba8Iu8Q6gsC3GbFEa2PFGGk1cPhRrM2LUEjkX1xcVyYT/WqKg8A2CmAn4B+PRdgjoDWip1XqHy5w783meij6bmhxf4NftTdgSGLQUwAAAAASUVORK5CYII=",Lr="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAsVJREFUWEfFl0tIVGEUx39nZsxoKpGISlqmC42gxwxCEApBUhC0iR7bMLRyhrZRC6Ntecc0CtoVRRshkbKN0iJ0RmtRBj0WLUKLoEAz0po5cWe4zdWZO/czJuauzz3n9/3P6/sE02/qwSp+fm5FM4dRbUSlDqEu+7syjeg0Iq+RwENWbxqh6eiiiWvxNZrq28z870vASdD1vvZZA5kF7hIOddN05lOpf7wB3iWq+aYXED2PEjYLvMxKmEflKrVyhfquhWI+igPkTj0A2vxPgQt+kjHCoSPF1CgEmOzZQVqGQLeWJ7jjRT4SCBxkz7mXbr9LAXInT5U/uAsiHIq4lcgD5HI+Wj7ZvfSTMWqlxamJPEDS6ga9WF7ZPSEuE43ZnUUOwJb+x6/3ntUujBOqPsbOjg+egBNWK6qDRh1jd8eaqm12KnIASasftMPTuXCKSPy2rzrPr+8jnR5Cda2vLXKDaKxTsCfc/MyXkkNGAieIdN3zdwqkevei6UfAutL2Mkt4y0ZhsvcA6fTjksYrAbAdTSaaSeuw7+QMBtuECauPjHaWFcB2lkrE0cy1kn4D0i+kekZQWsoOMJHoIJPpL+2XUSFpvQFtMAZIWneA7Xl7HSQaL2xfEwDkrZCy5nyr1l0DKasdJT+mg7xgd2yg4AAmACLfVw4wcbMGqCqqWM3CIvVd9ioGEwCYM0yBHCcSu591nLLGUY16pGyYaLzNHCCbApMidAMkdqIUv5gE5OvfbWeigNhFaNSGSwD2o7KhqAIhmWHX2afGCmTb0GgQuQCSPc+ASFEAkSdEYoeMAbKDyGgUuwCM5rFJETqj2GgZyWkisVumsXPF6jcJnWVkG/uuY3lFMNhOpsp7HbvpMgsNoPaGbSyequXrOKdCBS8kNkDFr2ROKip2KXWSVdFruQNR0YeJA1HRp5m7dyr2OF3ewP/pef4HW7pxo3nDj9QAAAAASUVORK5CYII=",Ur="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA75JREFUWEe1l19sU2UYxn9v2dwGzmSoEZJtRhY1StAQtN2YkEUiYOL/C6LhQtPWLQwXwXAlRKsXcjMUJQzFrUaCesGFjptBREJ0iXQmXOGCIQKJZDH4Z2Jm6UZ7HnNqCx30z2ktJ2lz8p3ned7ne8/7ft/5DI9Xb5dunonzJLDSgWVAi0GTjGlgIvM76RPDzXP5NnLMkl6krRSoe7naUileF7yAaCiFd5+bMYn4pL6Rd3Z/Y38U4xQ0EInId/4QbzhiG2KOl8DXYgwu4mP7mhb61x2wVD6NvAb6Vuj2+AyfSTxWSeDrOMaRulrW7Rm1yTwmZw+FOrQUh4MSzVUJnhUxTtfVsnbPqJ3J1Z2Vge4u3ZaMc8ItsKoGv2riVE0j7XuP2MWrQ5k7953/MsKIxOobEjwjanBozZ08ka2JKxkItyviOLx5I4NntX3GK4Mx253uGPfPbbVkip8qrfayTRsX6htoGzhmU2kDoYCGJIJehAx+NzgsuF+w1AunACYSHbO3zF3hEpe44GWRMWPKxAODY3Y2bdyvZ4B+QVu5Rsw4OxSzRRYK6HmJLzwKHI6O2dpcbN/jqotPsgmxVaLRo04a5jMedA18KNHjkfhldMyey4ft7dKC6Utsl3gxW1ulNH0+tlnQrzHg4VLgzPOCBrL8YKce4jLvA8tLaZqx383ArxJ3lAJ7NXDFSLtew2FHUV3jqIX8Sgjqqm0g013jEvcV1DZOWTCguJcOKDcDLj7o18/AokIGDH50MzAhWFjNDLid8c+f7EBsLKZrxtduDYxKdFbLwMsdejaVor/YzLOxDD61sF8fOND3fw10d2hJ0mEn4lGPWu46sMXCAT3tiK88kYyj0ZitysVuXKVbE1O8Legpdy+pNe6xzPtyl+JbSpowEjVG597jdiLSpZrzCXolIhJNJbnXAozxaMwWpzejYEDvITZ5EjESBj9I3A0s8MTJA/IZmwdjtvO/7XiFFiZnOIOor1SwLJ5xrrWVeyMHbCb3g2SD4zBQllCFYJvD+qHv7XOXPuubMOzXfgfWV6jrjWbsi8bM3bDS1ywDW1Zr3uRfxASLvamVhzLj+Nz5dO0aMfc0db0BdyTs112OMYxYUp58cXQ6+E08tes7+y0XmfdgsrlDDX87DEi8VBUTxr558+nOnXnBDOQGDPsVcox3Pa0R+Zwa58zH1mzB5YeUmOKGR9R0OcmrEiHPpyVj3AcfN7cy4LZasRAlT8dZsiTraaczKVaasUyixYwmxDTGBGIC42QNDH8Us9NeX92/T9xk1NzUiXsAAAAASUVORK5CYII=",wi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA9tJREFUWEe9l11sFFUUx///3ZmyrVWMCQsWig+1Kr6w2wZM/CwaP/CBByM8mOhrQyBYt2pMwGD8NmG7tX7yZEx8gsTAg2J4sDUBjJKy1QSjQiNF0WA3tdDalp3Z+ZvZ6W637W5nt906bzNz7v/8zrnnnnsvUeajQ9tr7D8GH6S0TdQGCQ0kGiBIxJ8E/qJwVkEcNWqDfWzvt8qRpp+REq03Z+Dsl6OnBFzvZ+/+J3iF0GfB4IrX2PHd5YXGlATQJ20h+58rewHEJNWV43iuDYlxEAeMtc1vccfhdDGNogBu1LYyRyRsXozjIiAnjdq6J7jz1N/z/s39oHh0o019IWFtNZznNciLpoGt3JP8qVB3VgamIz9ddeczFEOmiU3ckxzOfcoDeHM++k210l4qewROGI3ND+VqIg9gxSOvC3CLbtkfBgL7zOfOvOGtGABe6p3zi632SolJXjWuCzSxvT+VBbAT0Y8dR+2VCi3Fngy8a8bOdDDb4X4/l/JrMqbJcGHx6KO7w9bExGWSGQOhMGPfjuSA9MGmRmvKurhgAyJGjHXNYVpdLY9JzjG/aGo6B+b1jHQ8IhLXzNhAqHC8W9DWyOiknyYDxhba8eiHDrTTz3gugCRaXVFnSQBEwhXpk/RApQCu/ZIzQH7FdDzyC4Db/AAqqoHu1vVWJjPkpwnyR1pdkTEJ9b7Gy2BAMEUrHrnqtwKmG8YYiIk8h1A3axxxIcDAPjk6IGhNObwkh5nuivwM4Xa/AeaqcD2fOf7vzFJrq7emRsey78QFs4Zt3J0c0nutd9hpp7csCPIHdwp6JbT5AZRahoXO83BlQpA8Rjseed8BdlUKkFuGAJ+t6Uz2zB1vJaIvy9GrCzcjxml1Rx5WBscrBShYhuMIBLeaHf0nchpWd8ujyOiIoFkNaq4PMnA/dbDVtMedYUErF4Iwg4GNMIMzJ5ope7UFDWRLwD16TUOU7RxMGY23rvE2ozKnwae3jwM8CGGXX+QeNONmLPm8tx1337Xadq6d/7/6AYlRA7VN7gY2cyBJRPbLwSt+tVCN/wRfMjuT70z3F0/Su3ic+1rCPdVwUkqDRK8RvfERbumzZwFkIdw9fnLyNKT1ywPBQZOhzYVnh3l7vHqid1oWvgR0S3UhOGiuMB/n7u9/LdQtfjHpia6yLX0u4N5qQGTTjtonCyPP6Za+mrk1cWnwBUgvSrphMSButUN822hZGc/N+bxm5CcsNxs29wLO0xJu8rP3CospEJ8aCL1ZLGrfKSjmRIe2B+1Lv90H2dsAbhDQQKEBhATveg7gLMCjxrqmU9xxOFMO7H8KhNHxXAeU2AAAAABJRU5ErkJggg==",vi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAAAXNSR0IArs4c6QAAA05JREFUSEvFl1+IVHUUxz/n3jvOH92HfFpWEi2tWAwLIvChh+1lc9bY7EFS8iGKtIdeCnwxREmEXgyfEoRktdIgKrLdQqRFLURQ0lr/ryy02QwLK9u67uzsvfd39I6uzNyZO3PHQZzH+Z1zvp/f9/x+Z34jNPG5NUCn4/MigmMpkz7kxSGXSpGXLmaaKPUgVOImTfXT7kBvVLwxTIhFTiCf9MhJL7fi1C4B6CCp2QJbjNKDsAxlYZzkqBiB/zVwB/rF5sviNPm2tdwUQcM5EogXC5xVpbMV0Tow54C9CrMi5D0lNz/DsHQxFeRIcYBtRtnxKMTnaorwBcr5cg2x+T35Ghek0M9p4OVHCgAnga/LNdRgUgX6pDDAeKs9bwRvCVdU+Twcl5zH4cCBqoPRqGCz6yL8i7KzIs9Ch/5h/2MDMIbxzOt81zKA1bGRxLOfov407tAH6M3jVQbVcsAIQ5ksf7QEYD+1hcRznz0Q1MIoxcHFsQAQjqWyXG8AYAN+zZY7z+zEWba1Yk292xSPtgWjreL7Wg5MOHzV3s3tSAB76UcEIniTuH+/jxn76X5Rwencg7Pkwyow98pW/Ou7GjpgYDLTw6HSIKp5C5IdJF8dRcQqFVPj4Z57C5P/Eef5fThPvlMl4l3bgXdte023wg6ocjW9hsFIAEkvIdk1Ummv8dCJU1gLX6ne+aWP8Ud2R97OMIA4HE92cznaAcBZsRdn8aa6V17V4A1txh/dVzcuDFCY5dsn1jJRFwAsEiv7sBe9XbN4qS3nN2JyhxvOpXIAVWbSa+ibS2p4CxIrD2Av2lDZDn8G9891mLEjDcVLuyyfhMJIKsvRmABBmE3ihYPYHevvHUhvCvdsL2b8t1jiYQDP4tSC1fzVBECpBFbHBiTzNOa/b9Dp4djiYQC3yA9tbzLWJEBTepFzQBUvdYb9sh3zWAB8uDG/h5/LCVv6LYjry9whdIWTbVkuhgFyd99s7XGLPUycCBeMYdvFGxx5aRNuGOAEUD3eHkYpKkc4kErzrnThhUOCFrwH1B9lLcAET3HLZtW87tLbs/qAqiLFX/helTda0KmZGogr7Epn+STanPsrxV/pVUPP3dfrcmjtjwmQQxi2LA5G7XwO6A7Rr2QOpC6bTgAAAABJRU5ErkJggg==",Si="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAAAXNSR0IArs4c6QAAAg1JREFUSEvtl09IFFEcx7/fN6hhQS5FiOShEjwUFIWt00FPdYlw25BO/YOOC0XQHmT35EgYHYJOQacugrC7eDa7iLbbpWutWUSGJR1WpSLZfb8YYWtWZ5gZkT3EzPV9v7/vh++8ebxhPGctAnIUQR5ymZBZ1cb0/MXMp7rFLFhntWCEkD4RdAUYpUnOsLN9iPHcqAQwNEhIrktL65nSpfSCWbBSovFYIEboOUpdbQAg+BaUdbdBAhyHoL2+RnJakemalteAtFzoPoHLR07j4J59vhzp4iQ+rn2HUrj9D4BYKiWz3V5uMz92X4t+6AD4DcGEQG4OdvVivH/YN7guuP7yGcqVr1sBWC4lM72eAAUrpbU8ca4bSlVqWnfY4TZE0McVgERVwKyCxysQXBMg7hbydPAGTh7wLG+bxb2BoPguuv8GYEMR9wD19ysQkT6BpPzK2Z0GuH0TmlMPenS1utAUAIJfilcyh51h5wpjp2pav2kKwGYIsUTAcRCxU0RizQPwS/JY3509sMNw2xYBRA1EDUQNRA3YDcTa9uJdZRmrG798z9Tn5Xms/Fzbcif0tXkLevYfwvvVldATaOA8zZx1V4BjgdxETIABiLheAEkuAvgQYFaNwMyrZOYRA4gbJMMyaXzOl+0fEcdNiT9oSKKYyL4IOy80QD2gPz9qAbgFwTfDMO7MJUZmw4bb+j/0UVXnXVodrAAAAABJRU5ErkJggg==",ai="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABSZJREFUaEPlWltMHFUY/v+ZWWCBliJbhAopIgaEgsAu0CoJ1jYpaYyJ4UFNrKlPFNrSGl9MBDoFTEyMsaVye2vERF+IL8bQhFpJaGRhuShQt0lBCFgQ2CAU2GV3Zo45S5YsuzPsLCypo/N6/tt3/us5ZxA0/mEo7Od5wtng13yn5DyBwDyPhBwlhBwkiFFUPhKyhogrBHGKgPRHGBP2Sxy8PMjzKOxV/64BtLVZdMOzTAkRXK8BYjEARgdnDFkFQnqQ0/2cmyh1l5ebXMHxb1IHDYAQghevD54RRbESAY/sRqkvDwHymGXZ5qZr+XcQkQQjMygAl/nhQpcgVAGSjGCUqKYlaNVxXOMtPrdPLY8qADxPmL9ESxUBeE+t4L3QIcA3z7KmRp5HKZCcgAAq+bFoIPZPJYm8GkhYKNcZBu8D6j9p5rNWd5K7I4BL1waPCJLQCIApgYwTXBuwtPgIbHNWsK8tgnNjFRz2ZTdbhD4GwsKjQR9lgLiEDIg1pAGnCw8kEgDIJMdwVV9dz3+sRKwIgO68JK7dDmT8k+U/YdL6E9jmrUBEdVURWQ7i4jMgJeN1OBDzXAAgZJJho84reUIWAI35eTLw5U5hY19fgonf78D89JCKnVQmiU/Og9SXzoA+MlaRiIZTPBo/lMsJWQAVNf1Xd0pY29xDeDDwLQgu+56M9zBzOj1kGt+FuIR0RXk0sVvqC274EvgBuFhnKRJdpElJ0vR4Nzwa6QSAgAUiSHAMpGWXQvILJYp8OlZX6VtitwGgTaqiZqBdqc5vGv9jkIYFR56WfVYZBEFrS73xnHez2wagkh8olUSpQU4lDZvfem/vw877amMg5/h5xXBiWKa6mTfSEHB/WwDobDM4I3XIjQc0YS33boYs5gP5hOaE6eQV2cSmY0d+ElPmmZ22AFTwg6eJKH4mJ3xs4DvV1UYfFad7MefNZDk5G/YV58PhjplAAOg6rU5ZxndkSZFlP27h87u2eeBCtbkBkCn15aB13nKvUY1ON030oaQIU8mlLDkGx5rN3tv1+QO1wkwnq+T7BJE6WxuKqrcA0Hl+TuzvkhuJR83tsDA7qlZnSAEYEo9BdtE5Gd1kNYEtOE3PE+4Qck+ZoqvZl5KOBz2ddao7bKg9QDt2cWmt7NjhKaluAEqNa2F2DEbNX6ve/VADoPKOFb0PhxP9I5IgaW+rK7zpBnCh1nIDCCn2tdQ61AGzU8qjOU1YVqdnvfkiow+HZxrfTpNNYseyY8TcPu675lhfcgrONdnOmHi0EDLyyvzFIfa01pmuejzwPQHwqxxDPW3w9+KEogdyTnyQ+kx8uvIQo9J31uGOibmp/iU58kOGVMgrLvdbQoDplvqCtzY9UN13FxBjfKnMd7+A9SfzTxVA5IF4KDr1kb8NhCy3NhSecgMor+nvRQDOl6r7h1qQhI2nCoDhwqHkjTo/GwiA0FZfcPy/AUDzIVRR06/xJN5lGU3PLUuKNaQe9A5QZDkMj4iJkE0cSZIc9iW/pBof65xZmB1ZkeNRVUbLa/uuIEG/nq2ZRqb5UWKnYW7E3A6L//ZhbrOZaXicdg90ITrQhOo8EPSBJlRHSi4sijEkZvqNJXSTRKdDVKo23hVoV0dKKkDTh3oKQPPXKhSEpi+2PHGo6atFCkLzl7ubCa3h63VPKGn6gcMDQtNPTB4Qmn7k8+6Q7hLrhMv7+czKhsGtplqTWeWFxv/sodt7VzT7q4Gcaz0/ewii6xWCmKKJnz3Uxuh+0/0DF9aFXrFDGJoAAAAASUVORK5CYII=",cs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABL5JREFUaEPdWntMW1UY/53b0s4sQAfDPeKWza1kPDIFCjHRRBM3p0xDnG7Z2PxHjVCn0fjYoqF4bYlmmxqNTkp8/OMeuk0N0REnmmiiiYECZgFmaJDFmT1kkDKyzEJ7PnMKl8Dtvb0trY/r/fd8r9/5vvM9zrkMJv9YJuyXZbIO857bI4huAqGYgQpByCPGsoV8RjQOhlECGwBDvxWWUwVS2feyzCLp6p83AFnus13i12qI8xpibDOIHCkZw1iIEZ1kktS6RLquVZZLJlLinyZOGQARsccbu3Zw4k0AVs9HqQbPkMSkhne9FUcZY5SKzJQA7G7svjPCo/sBKk9FSfK0rNsqWfYc9JZ/myxPUgBkmaRL0a59nPhzyQpOh05i0mtLLBV7ZZlxIzmGAJ58KZgzyUNHiajaSFgm1xljbVmSY8fbLzuvJJKbEEC93LMK0UgbERUZGWe3WVDszEVpYS4K8uxwZNuQm50VYxsbn0RofALDo2H0DoyhPziG8ETUSCQYY2dgsVb75bKzesS6AKZ3/icj41cuX4jqO5aj1JkLq9XQoTE7IhFCb3AMbd+dx2/nryYEIkBkSY5b9DyhqVHE/MVo4ItEYZPvsKNm4w2oWp9nuJOJCDpOj6K1/XeMhMK6ZCKcllpc92mdCU0Abk/gQKIDW1rowKPbbsQCuyUt4xXmP8NRvH/sV/QOhHTliYPd7HM9ryaIA+CWOzfwCLXrSdp421JsuWsFWHLRkjRAIuCzr8+h/YeLujxWybpBnWLnmCGKVL0nENDL88L4BzatSNqo+RB+eioRCNbt97lcs4vdHABuT6CWEz+spViEze5dzozvvFqX8MTBQ0HdcJKYtLPZ5zqi8M0AEL3NhcjVX7TaA3FgPU+UZCzmjTwjzoTvnT69gz20zLpwndI7zQBwNwa2cs6PaQl/eOuatLONkdHqdZGdPjw+qMkmSdK2Zq/ruFicAVDf0HGIgJ1qDpHnX3QXp6o/I/SvNPdr1gkGHPY3Ve2aASD6+QvRwLBWS+yudeKmotQ65YxYD+DnMyH4jwTjxTEWWmZxFYh5IuaBqS4z8o2aUrQHr79QlnSFzZThihxRsZ99tUez7VBSagyAXuEqK8lD3fY1mbYrJXktHw+ip280nkdiB1q8lXtiAOo8nV+CaLOa6qH7V+PW8sW6CkNXJnEtbNyUGVm8KMeGBXZJk+zH7sv46PMhrTA62eKrvDcGoN7TMUAEp5rqmUfWoXBVbKzV/N77ZBBdvRq7Y2Sxav2x7WtRXrJIk2vg7Dje+EBk97kfYwj6fVWFUwAaOi4TkK8m8j69Htfn2/9VAH+MhNH45ul4AMCIv6lqsRJCYRDZ1FRveSpgt2m7VtD+Ex4IT3A85evSCqGJFl+l/f8BwPQhZPpDPN80euKrc7H5Nt3vwXtWonhtzvzTaF1j535wipt2TFPITN9KJGrm6muduPm/3sxNFzPzttMCgOkHGtOPlDEvmHmoFwBMf60S84KZL7aUUmjqq0UBwvSXuwKEqa/XlVAy9QOHAsLUT0wKCFM/8s1u0qdSLPb9nc+skhV7m+XKuEs2vZkj5WcKUz90z94F0/5qoOVK5WcPTvxuDioyxc8e6c7BmeL/C6MjFF4PO1ITAAAAAElFTkSuQmCC",Ai=Me(5269),Ci=Me(37992),Yr=Me(59301),Wi=Object.defineProperty,os=Object.defineProperties,Ls=Object.getOwnPropertyDescriptors,Os=Object.getOwnPropertySymbols,Ts=Object.prototype.hasOwnProperty,zi=Object.prototype.propertyIsEnumerable,ei=(b,a,y)=>a in b?Wi(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,bi=(b,a)=>{for(var y in a||(a={}))Ts.call(a,y)&&ei(b,y,a[y]);if(Os)for(var y of Os(a))zi.call(a,y)&&ei(b,y,a[y]);return b},Di=(b,a)=>os(b,Ls(a)),Vi=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Is=({classroomList:b,dispatch:a,courseEndTime:y})=>{const x=(0,st.useParams)(),[E]=it.default.useForm(),[z,ee]=(0,fe.useState)(1),[te,ne]=(0,fe.useState)([]),[ie,ae]=(0,fe.useState)(0),[oe,le]=(0,fe.useState)(20),[de,he]=(0,fe.useState)(!0),[ye,Ae]=(0,fe.useState)([]),[me,Ce]=(0,fe.useState)(!0);x.coursesId=x.pathId,x.id=x.coursesId,(0,fe.useEffect)(()=>{if(b.actionTabs.key==="\u7ACB\u5373\u53D1\u5E03")if(Ne(),Ee(),b.actionTabs.type===2){const ze=b.actionTabs.selectArrsAll[0];Ce(ze.unified_setting)}else Ce(!1)},[b.actionTabs]);const Ee=ze=>Vi(void 0,null,function*(){he(!0);const Le=yield(0,Wu.c_)(Di(bi({},x),{page:ze||z,limit:2e4}));Le==null||Le.course_groups.map((_e,Et)=>{_e.key=_e.id,_e.title=_e.name,_e.disabled=_e.is_published}),Le&&(ne([...Le==null?void 0:Le.course_groups]),ae(Le==null?void 0:Le.course_groups_count),he(!1),ze||E.setFieldsValue({publish_time:Uo()(Uo()(new Date).add(0,"days").format("YYYY-MM-DD HH:mm")),end_time:Uo()(Uo()(new Date((0,Zt.qd)("/"))).add(7,"days").format("YYYY-MM-DD HH:mm"))}))}),Be=()=>Vi(void 0,null,function*(){var ze;const Le=bi({},E.getFieldsValue());if(Le.end_time<=Le.publish_time){nt.ZP.info("\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u5927\u4E8E\u6216\u7B49\u4E8E\u53D1\u5E03\u65F6\u95F4"),Oe(!1);return}if((ye==null?void 0:ye.length)<=0&&!me&&te.length>0){nt.ZP.info("\u53D1\u5E03\u73ED\u7EA7\u4E0D\u80FD\u4E3A\u7A7A"),Oe(!1);return}let _e={ids:[...b.actionTabs.selectArrs],group_ids:ye.length>0?ye.map(yt=>yt.id):(ze=b.detailShixunsList)==null?void 0:ze.course_groups,end_time:Uo()(Le.end_time).format("YYYY-MM-DD HH:mm"),publish_time:Uo()(Le.publish_time).format("YYYY-MM-DD HH:mm"),unified_setting:!ye.length,subject_id:x.pathId};Oe(!0),(yield(0,Nt.ZP)("/api/subject_knowledge/batch_publish.json",{method:"post",body:bi({},_e)})).status===0?(a({type:"classroomList/setActionTabs",payload:{}}),a({type:"pathsDetail/setActionTabs",payload:{key:"\u66F4\u65B0\u6570\u636E"}}),Oe(!1),Ne(),(0,Zt.L9)(["\u6559\u5B66\u8BFE\u5802","\u8BFE\u7A0B\u5B9E\u9A8C","\u7ACB\u5373\u53D1\u5E03"]),nt.ZP.success("\u53D1\u5E03\u6210\u529F")):Oe(!1)}),Ne=()=>{ee(1),ne([]),Ae([])},Fe=ie>z*oe,{detailShixunsList:ke}=b,[Re,Oe]=(0,fe.useState)(!1);return Yr.createElement(rt.default,{width:600,centered:!0,confirmLoading:Re,title:"\u53D1\u5E03\u8282\u70B9",open:b.actionTabs.key==="\u7ACB\u5373\u53D1\u5E03",okText:"\u786E\u8BA4\u53D1\u5E03",cancelText:"\u53D6\u6D88",className:Ci.Z.modal,onOk:()=>Be(),onCancel:()=>{Ne(),a({type:"classroomList/setActionTabs",payload:{}})}},Yr.createElement("p",null,"\u5230\u8FBE\u53D1\u5E03\u65F6\u95F4\u540E\uFF0C\u5B66\u751F\u5C06\u5728\u5404\u6559\u5B66\u6A21\u5757\u4E2D\u67E5\u770B\u5230\u5B66\u4E60\u8DEF\u5F84\u7684\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u3001\u8D44\u6E90\u7B49",Yr.createElement("br",null),"\u53D1\u5E03\u64CD\u4F5C\u4EC5\u9488\u5BF9\u672A\u53D1\u5E03\u8D44\u6E90\u7684\u5206\u73ED\u751F\u6548"),Yr.createElement(it.default,{form:E},Yr.createElement("div",{style:{paddingLeft:0}},Yr.createElement(Mr.Z,{className:"mt30",align:"middle"},Yr.createElement(Ai.Z,null,Yr.createElement(it.default.Item,{name:"publish_time",label:"\u53D1\u5E03\u65F6\u95F4"},Yr.createElement(Tl.default,{style:{width:170,marginRight:"25px"},disabledDate:ze=>(0,Pu.Q8)(ze,y),disabledTime:ze=>(0,Pu.d0)(ze),placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Uo()((0,Zt.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",allowClear:!1}))),Yr.createElement(Ai.Z,{className:"ml20"},Yr.createElement(it.default.Item,{name:"end_time",label:"\u622A\u6B62\u65F6\u95F4:"},Yr.createElement(Tl.default,{style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:Uo()((0,Zt.U6)(),"HH:mm")},disabledDate:ze=>(0,Pu.Q8)(ze,y,E.getFieldValue("publish_time")),disabledTime:ze=>(0,Pu.d0)(ze,E.getFieldValue("publish_time")),format:"YYYY-MM-DD HH:mm",allowClear:!1})))),b.actionTabs.type===2&&Yr.createElement(Mr.Z,{style:{marginBottom:"10px"}},Yr.createElement("span",{className:"mr5"},"\u53D1\u5E03\u8BBE\u7F6E:"),Yr.createElement(vt.ZP.Group,{value:me,onChange:ze=>{Ce(ze.target.value),Ae([])}},Yr.createElement(vt.ZP,{value:!0,disabled:!b.actionTabs.manage_all_group},"\u7EDF\u4E00\u53D1\u5E03"),Yr.createElement(vt.ZP,{className:"ml20",disabled:te.length<=0,value:!1},"\u5206\u73ED\u53D1\u5E03"))),te.length<=0&&b.actionTabs.type===2&&Yr.createElement("span",{style:{marginLeft:"65px",color:"rgba(0, 0, 0, 0.25)"}},'\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03"')),(b.actionTabs.type===1||!me)&&te.length>0&&Yr.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"10px"}},Yr.createElement("span",{style:{flex:1}},Yr.createElement(oo.default,{checked:ye.length===te.length,onChange:ze=>{ye.length===te.length?Ae([]):Ae(te)}},"\u5168\u9009")),Yr.createElement("span",{style:{width:16}}),Yr.createElement("span",{style:{flex:1}},"\u5DF2\u9009\u62E9",ye.length||0,"\u4E2A\u5206\u73ED")),(b.actionTabs.type===1||!me)&&te.length>0&&Yr.createElement(sf.Z,{data:te,selectedRowKeys:ye,setSelectedRowKeys:Ae})))};var Gs=(0,st.connect)(({classroomList:b})=>({classroomList:b}))(Is),Tr=Me(59301),Ms=Object.defineProperty,Ds=Object.defineProperties,na=Object.getOwnPropertyDescriptors,da=Object.getOwnPropertySymbols,ka=Object.prototype.hasOwnProperty,va=Object.prototype.propertyIsEnumerable,Ua=(b,a,y)=>a in b?Ms(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,ea=(b,a)=>{for(var y in a||(a={}))ka.call(a,y)&&Ua(b,y,a[y]);if(da)for(var y of da(a))va.call(a,y)&&Ua(b,y,a[y]);return b},xa=(b,a)=>Ds(b,na(a)),Rs=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Ta=[{name:"\u672A\u53D1\u5E03",color:"#9AA4B3"},{name:"\u5DF2\u53D1\u5E03",color:"#37AD83"},{name:"\u672A\u5F00\u542F",color:"#92D2B7"},{name:"\u672A\u901A\u5173",color:"#EE5D5D"},{name:"\u6309\u65F6\u901A\u5173",color:"#37AD83"},{name:"\u8865\u4EA4\u901A\u5173",color:"#288A67"},{name:"\u622A\u6B62\u540E\u901A\u5173",color:"#929628"},{name:"\u672A\u5F00\u59CB",color:"#92D2B7"},{name:"\u8003\u8BD5\u4E2D",color:"#FFC86B"},{name:"\u5DF2\u4EA4\u5377",color:"#37AD83"},{name:"\u5DF2\u4EA4\u5377/\u672A\u7B54",color:"#929628"},{name:"\u672A\u770B\u5B8C",color:"#FFC86B"},{name:"\u5DF2\u770B\u5B8C",color:"#37AD83"},{name:"\u672A\u67E5\u770B",color:"#9AA4B3"},{name:"\u5DF2\u67E5\u770B",color:"#37AD83"},{name:"\u5DF2\u4E0B\u8F7D",color:"#377DFF"}],La=({pathsDetail:b,setselectitems:a,publishshow:y,node:x,index:E,onExpandClick:z,onClickDetails:ee,selectitems:te})=>{var ne,ie,ae;const[oe,le]=(0,fe.useState)(!1),de=(0,fe.useRef)(null),{name:he,complete_rate:ye,node_type:Ae,resource_info:me,grasp_rate:Ce,has_children:Ee,children:Be,expand:Ne,key:Fe,is_publish:ke,status:Re,id:Oe,url:ze}=x||{};(0,fe.useEffect)(()=>{var kt;Le();const pt=(kt=de.current)==null?void 0:kt.parentElement;if(!pt)return;const An=new ResizeObserver(()=>{Le()});return An.observe(pt),()=>{An.disconnect()}},[Ne]);const Le=()=>{if(!de.current)return;const kt=de.current,pt=kt.parentElement,An=kt.previousElementSibling,Vt=pt==null?void 0:pt.firstElementChild;if(pt&&An&&Vt){const rn=An.getBoundingClientRect().height,Bn=pt.getBoundingClientRect().height,hr=Vt.getBoundingClientRect().height,bt=rn/2,on=Bn-(hr+rn)/2;kt.style.bottom=`${bt}px`,kt.style.height=`${on}px`}},_e=(ne=Number(ye))==null?void 0:ne.toFixed(0),Et=_e==="100",yt=Et?Ae==="\u5B9E\u8BAD"?"\u5DF2\u901A\u5173":"\u5DF2\u5B8C\u6210":`${_e}%`,jt=me==null?void 0:me.reduce((kt,pt)=>kt+pt.value,0),tn={\u5B9E\u8BAD:Dr,\u8BD5\u5377:_r,\u8BFE\u4EF6:Lr,\u89C6\u9891:Ur},cn=()=>{z(Fe)};return Tr.createElement("div",{className:Jn.treeNode,"data-index":E},Tr.createElement("div",{className:Jn.node,style:Et?{background:"#EDF7EE"}:{}},!ke&&!((ie=b==null?void 0:b.detail)!=null&&ie.can_managed)&&Tr.createElement("div",{style:{background:"rgba(0, 0, 0, 0.5)",width:"100%",height:"100%",position:"absolute",zIndex:5,left:"50%",bottom:0,transform:"translateX(-50%)",textAlign:"center",paddingTop:"30rem",borderRadius:"10rem"}},Tr.createElement("div",null,Tr.createElement("i",{className:"iconfont icon-suo1",style:{color:"#fff",fontSize:"28rem"}}),Tr.createElement("div",{style:{color:"#fff",fontSize:"12rem"}},"\u8D44\u6E90\u6682\u672A\u53D1\u5E03"))),Tr.createElement("div",{className:Jn.statusbutton,style:{background:(ae=Ta.find(kt=>kt.name===Re))==null?void 0:ae.color}},Re),y&&Tr.createElement(oo.default,{checked:te==null?void 0:te.map(kt=>kt.id).includes(Oe),onChange:()=>{if(te!=null&&te.map(kt=>kt.id).includes(Oe))a(te.filter(kt=>kt.id!==Oe));else{let kt=[...te];kt.push(x),a(kt)}},className:Jn.checkbox}),Tr.createElement(Mr.Z,{style:{padding:Ee?"initial":"3rem 0"}},Tr.createElement(pn.Z,{title:"\u5B8C\u6210\u7387"},Tr.createElement("div",{style:{flexShrink:0,marginLeft:"24rem",marginTop:"17rem"}},Tr.createElement(Fr.Z,{strokeColor:"#60C059",percentage:ye,startAngle:270,trackColor:"#E3E8EF",text:yt,textSize:"12rem",textColor:"#60C059",outerDiameter:"62rem",innerDiameter:"46rem",textPadding:"3rem",hoverEffect:!1}))),Tr.createElement("div",{className:Jn.info},Tr.createElement(Mr.Z,{align:"middle"},Tr.createElement(pn.Z,{title:Ae},Tr.createElement("img",{src:tn[Ae]||wi,style:{marginRight:"10rem",width:"16rem"}})),Tr.createElement(pn.Z,{title:he},Tr.createElement("b",{onClick:()=>{ee(x)},className:"c-grey-333 current",style:{fontSize:"16rem"}},(0,Zt.Pq)(he,19)))),Tr.createElement(Mr.Z,{align:"middle",style:{marginTop:"5rem",marginLeft:"26rem",marginBottom:Ee?"0":"30rem"}},Tr.createElement(Mr.Z,{align:"middle"},Tr.createElement(pn.Z,{title:"\u638C\u63E1\u7387"},Tr.createElement("img",{src:vi,style:{marginRight:"4rem",width:"16rem"}})),Tr.createElement("span",{style:{color:"#1B8565",fontSize:"14rem"}},Ce,"%")),Tr.createElement(Mr.Z,{align:"middle",style:{marginLeft:"55rem"}},Tr.createElement(pn.Z,{title:"\u5B8C\u6210\u7387"},Tr.createElement("img",{src:Si,style:{marginRight:"4rem",width:"16rem"}})),Tr.createElement("span",{style:{color:"#1B8565",fontSize:"14rem"}},ye,"%"))),Ee&&Tr.createElement(Mr.Z,{className:Jn.resource},Tr.createElement("span",{style:{color:"#666",fontSize:"14rem"}},"\u8D44\u6E90\u6570\uFF1A",jt),Tr.createElement("div",{onClick:()=>le(!oe),className:Jn.action},oe?Tr.createElement(Tr.Fragment,null,"\u6536\u8D77",Tr.createElement("i",{className:"iconfont icon-xialajiantou1",style:{transform:"scale(0.6)"}})):Tr.createElement(Tr.Fragment,null,"\u5C55\u5F00",Tr.createElement("i",{className:"iconfont icon-xialajiantoubeifen",style:{transform:"scale(0.6)"}})))))),oe&&Tr.createElement("div",{className:Jn.tags},me==null?void 0:me.map((kt,pt)=>Tr.createElement(pn.Z,{title:kt.name},Tr.createElement("div",{className:Jn.tag,key:pt},(0,Zt.Pq)(kt.name,5),"\uFF1A",kt.value)))),E.length>1&&Tr.createElement("div",{className:Jn.leftLine}),Ne&&Tr.createElement("div",{className:Jn.rightLine}),Ee&&Tr.createElement("img",{onClick:cn,className:Jn.icon,src:Ne?cs:ai})),Be&&Be.length>0&&Ne&&Tr.createElement("div",{className:Jn.nodeWrap},Be.map((kt,pt)=>Tr.createElement(La,{key:kt.key,onExpandClick:z,onClickDetails:ee,publishshow:y,setselectitems:a,pathsDetail:b,selectitems:te,node:kt,index:E+"-"+(pt+1)})),Be.length>1&&Tr.createElement("div",{ref:de,className:Jn.line})))},Ia=({data:b,onExpandClick:a,selectitems:y,onClickDetails:x,pathsDetail:E,setselectitems:z,publishshow:ee})=>Tr.createElement("div",{className:Jn.treeNode},Tr.createElement("div",{className:Jn.nodeWrap},b.map((te,ne)=>Tr.createElement(La,{key:te.key,onExpandClick:a,onClickDetails:x,pathsDetail:E,publishshow:ee,selectitems:y,setselectitems:z,node:te,index:String(ne+1)}))));var vo=({visible:b,onCancel:a,subjectId:y,onClickDetails:x,pathsDetail:E,dispatch:z})=>{var ee;const[te,ne]=(0,fe.useState)([]),[ie,ae]=(0,fe.useState)(!0),[oe,le]=(0,fe.useState)("\u5168\u90E8"),[de,he]=(0,fe.useState)([]),[ye]=(0,st.useSearchParams)(),[Ae,me]=(0,fe.useState)(!1),[Ce,Ee]=(0,fe.useState)([]);(0,fe.useEffect)(()=>{Ne()},[oe]),(0,fe.useEffect)(()=>{E.actionTabs.key==="\u66F4\u65B0\u6570\u636E"&&(z({type:"pathsDetail/setActionTabs",payload:{key:""}}),Ne())},[E.actionTabs.key]);const Be=(ze,Le)=>Rs(void 0,null,function*(){const _e=yield(0,Nt.ZP)("/api/subject_knowledge.json",{method:"get",params:{id:ze,subject_id:y,node_type:oe}});if((_e==null?void 0:_e.status)===0)return Le&&he((_e==null?void 0:_e.node_types)||[]),(_e==null?void 0:_e.data)||[];ae(!1)}),Ne=()=>Rs(void 0,null,function*(){ae(!0);const ze=yield Be(b,!0);ne(ze),ae(!1)}),Fe=(ze,Le,_e)=>Rs(void 0,null,function*(){return yield Promise.all(ze.map(yt=>Rs(void 0,null,function*(){return yt.key===Le?yield _e(yt):yt.children&&yt.children.length>0?xa(ea({},yt),{children:yield Fe(yt.children,Le,_e)}):yt})))}),ke=ze=>Rs(void 0,null,function*(){ae(!0);const Le=yield Fe(te,ze,_e=>Rs(void 0,null,function*(){var Et,yt;const jt=xa(ea({},_e),{expand:!(_e!=null&&_e.expand)});return!(_e!=null&&_e.expand)&&!((Et=_e==null?void 0:_e.children)!=null&&Et.length)&&(jt.children=yield Be(ze),((yt=jt.children)==null?void 0:yt.length)===0&&(jt.has_children=!1,jt.expand=!1)),jt}));ne(Le),ae(!1)}),Re=ze=>Rs(void 0,null,function*(){ae(!0),yield x(ze,!1),ae(!1)});return Tr.createElement("div",{className:Jn.tree},Tr.createElement("div",{className:Jn.center},Tr.createElement("div",{className:Jn.head},Tr.createElement("div",{className:Jn.del},Tr.createElement("i",{onClick:a,className:"iconfont icon-shanchuhuanjing"}),Tr.createElement("b",null))),Tr.createElement("div",{className:Jn.body},ie&&Tr.createElement("div",{className:Jn.loading},Tr.createElement(Mt.Z,{spinning:!0})),Tr.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},Tr.createElement("div",{className:Jn.tabs,style:{flex:1}},de==null?void 0:de.map(ze=>Tr.createElement("div",{onClick:()=>le(ze.node_type),className:ze.node_type===oe?Jn.active:void 0,key:ze.node_type},ze.node_type,"\uFF08",ze.count,"\uFF09"))),ye.get("type")==="classrooms"&&((ee=E==null?void 0:E.detail)==null?void 0:ee.can_managed)&&Tr.createElement("div",null,Ae&&Tr.createElement(oo.default,{style:{color:"#fff"},checked:(Ce==null?void 0:Ce.length)===(te==null?void 0:te.length),onChange:()=>{if((Ce==null?void 0:Ce.length)===(te==null?void 0:te.length))Ee([]);else{me(!0);let ze=[...te];Ee(ze)}}},(Ce==null?void 0:Ce.length)===(te==null?void 0:te.length)?"\u53D6\u6D88\u5168\u9009":"\u5168\u9009","\uFF08\u5F53\u524D\u9009\u4E2D",Ce==null?void 0:Ce.length,"\uFF09"),Ae&&Tr.createElement($e.ZP,{style:{marginRight:"20rem",borderRadius:"24rem"},onClick:()=>me(!1)},"\u53D6\u6D88"),Tr.createElement($e.ZP,{type:"primary",onClick:()=>Rs(void 0,null,function*(){if(Ae)z({type:"classroomList/setActionTabs",payload:{key:"\u7ACB\u5373\u53D1\u5E03",selectArrs:Ce==null?void 0:Ce.map(ze=>ze.id)}});else{me(!0);let ze=[...te];Ee(ze)}}),style:{borderRadius:"24rem"}},Ae?"\u6279\u91CF\u53D1\u5E03":"\u53D1\u5E03\u8282\u70B9"))),Tr.createElement("div",{className:Jn.scrollBox},Tr.createElement("div",{className:Hr()(Jn.treeWarp,!0&&Jn.allTreeNode)},Tr.createElement(Ia,{pathsDetail:E,selectitems:Ce,setselectitems:Ee,publishshow:Ae,data:te,onClickDetails:Re,onExpandClick:ke}))))),Tr.createElement(Gs,null))},lo=Me(41550),To=Me(14794),Ks=Me(34055),Xs={ItemDom:"ItemDom___Xq2Xn",Arrow:"Arrow___Ulbfi",Title:"Title___RNBAc",Node:"Node___XTXfD",Direction:"Direction___QoIf0",UP:"UP___SeZ0o",DOWN:"DOWN___F5Bx1",ItemDom100:"ItemDom100___n_HZz",ItemDom79:"ItemDom79___o5fGp",ItemDom59:"ItemDom59___JfdjC",waveDom:"waveDom___Wc261",wave:"wave___hTeV6",waveDom100:"waveDom100___HxeAE",waveDom79:"waveDom79___BryDl",waveDom59:"waveDom59___Nw1Dv",ArrowLeft:"ArrowLeft___hSXT2",ArrowRight:"ArrowRight___v1_qH",ArrowDownLeft:"ArrowDownLeft___HwtjS",ArrowDownRight:"ArrowDownRight___r0H2C",ArrowDisable:"ArrowDisable___U1ckU",HeightItem:"HeightItem___x_c8h",NodeUp:"NodeUp___e6Mr3",NodeShowDirection:"NodeShowDirection___Zuy0X"},ja=Object.defineProperty,Ma=Object.getOwnPropertySymbols,Ha=Object.prototype.hasOwnProperty,Yo=Object.prototype.propertyIsEnumerable,ta=(b,a,y)=>a in b?ja(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,du=(b,a)=>{for(var y in a||(a={}))Ha.call(a,y)&&ta(b,y,a[y]);if(Ma)for(var y of Ma(a))Yo.call(a,y)&&ta(b,y,a[y]);return b};const Qi=b=>React.createElement("svg",du({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u8BFE\u4EF6"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("path",{fill:"#FFF",d:"M50 41h115v115H50z"}),React.createElement("path",{d:"M100 0c55.228 0 100 44.772 100 100l-.044 2.944c-1.63 54.616-46.794 97.813-101.428 97.009C43.893 199.148.02 154.64 0 100l.044-2.944C1.637 42.998 45.92 0 100 0ZM67.367 50.011a8.889 8.889 0 0 0-8.911 8.845l-.045 81.677a8.89 8.89 0 0 0 8.922 8.834h64.878a8.934 8.934 0 0 0 8.978-8.834V76.511l-26.911-26.489-46.911-.01Zm55.889 72.856v8.289H76.333v-8.29h46.923Zm0-17.111v8.288H76.333v-8.288h46.923Zm-19.334-17.112v8.29H76.344v-8.278h27.578v-.012Zm7.19-33.088 22.221 22.222h-22.222V55.556Z",fill:"#44D7B6",fillRule:"nonzero"})));var Mi="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik01MCA0MWgxMTV2MTE1SDUweiIvPjxwYXRoIGQ9Ik0xMDAgMGM1NS4yMjggMCAxMDAgNDQuNzcyIDEwMCAxMDBsLS4wNDQgMi45NDRjLTEuNjMgNTQuNjE2LTQ2Ljc5NCA5Ny44MTMtMTAxLjQyOCA5Ny4wMDlDNDMuODkzIDE5OS4xNDguMDIgMTU0LjY0IDAgMTAwbC4wNDQtMi45NDRDMS42MzcgNDIuOTk4IDQ1LjkyIDAgMTAwIDBaTTY3LjM2NyA1MC4wMTFhOC44ODkgOC44ODkgMCAwIDAtOC45MTEgOC44NDVsLS4wNDUgODEuNjc3YTguODkgOC44OSAwIDAgMCA4LjkyMiA4LjgzNGg2NC44NzhhOC45MzQgOC45MzQgMCAwIDAgOC45NzgtOC44MzRWNzYuNTExbC0yNi45MTEtMjYuNDg5LTQ2LjkxMS0uMDFabTU1Ljg4OSA3Mi44NTZ2OC4yODlINzYuMzMzdi04LjI5aDQ2LjkyM1ptMC0xNy4xMTF2OC4yODhINzYuMzMzdi04LjI4OGg0Ni45MjNabS0xOS4zMzQtMTcuMTEydjguMjlINzYuMzQ0di04LjI3OGgyNy41Nzh2LS4wMTJabTcuMTktMzMuMDg4IDIyLjIyMSAyMi4yMjJoLTIyLjIyMlY1NS41NTZaIiBmaWxsPSIjNDREN0I2IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+",fa=Object.defineProperty,gi=Object.getOwnPropertySymbols,Zi=Object.prototype.hasOwnProperty,Eo=Object.prototype.propertyIsEnumerable,uo=(b,a,y)=>a in b?fa(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,cl=(b,a)=>{for(var y in a||(a={}))Zi.call(a,y)&&uo(b,y,a[y]);if(gi)for(var y of gi(a))Eo.call(a,y)&&uo(b,y,a[y]);return b};const hc=b=>React.createElement("svg",cl({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u4EFB\u52A1\u5173\u5361"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("circle",{fill:"#FFF",cx:100,cy:100,r:82}),React.createElement("path",{d:"M100 0c55.23 0 100 44.77 100 100s-44.77 100-100 100S0 155.23 0 100 44.77 0 100 0ZM84.63 43.55l-2.5.09-.78.09a7.96 7.96 0 0 0-6.12 5.4l-.25.8-13.01 53.12-9 35.92c-.45 1.83.45 3.71 2.07 4.35 1.63.65 3.43-.17 4.15-1.87l.19-.55 9.72-38.81.82-.05a55.82 55.82 0 0 1 18.85 1.62c4.42 1.2 7.67 3.2 12.17 7.13l3.78 3.4c5.96 5.36 10.18 8.03 16.53 9.65 7.66 1.93 13.44 1.58 17.34-1l.42-.3 13.84-56.38c-5.1 1.18-10.35 1.3-15.47.34l-1.93-.4-1.92-.51c-4.02-1.15-7.2-3.03-11.44-6.43l-4.84-4.04c-5.83-4.9-10.03-7.52-15.85-9.24a56.04 56.04 0 0 0-16.77-2.33Z",fill:"#39B97E",fillRule:"nonzero"})));var fu="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgZmlsbD0iI0ZGRiIgY3g9IjEwMCIgY3k9IjEwMCIgcj0iODIiLz48cGF0aCBkPSJNMTAwIDBjNTUuMjMgMCAxMDAgNDQuNzcgMTAwIDEwMHMtNDQuNzcgMTAwLTEwMCAxMDBTMCAxNTUuMjMgMCAxMDAgNDQuNzcgMCAxMDAgMFpNODQuNjMgNDMuNTVsLTIuNS4wOS0uNzguMDlhNy45NiA3Ljk2IDAgMCAwLTYuMTIgNS40bC0uMjUuOC0xMy4wMSA1My4xMi05IDM1LjkyYy0uNDUgMS44My40NSAzLjcxIDIuMDcgNC4zNSAxLjYzLjY1IDMuNDMtLjE3IDQuMTUtMS44N2wuMTktLjU1IDkuNzItMzguODEuODItLjA1YTU1LjgyIDU1LjgyIDAgMCAxIDE4Ljg1IDEuNjJjNC40MiAxLjIgNy42NyAzLjIgMTIuMTcgNy4xM2wzLjc4IDMuNGM1Ljk2IDUuMzYgMTAuMTggOC4wMyAxNi41MyA5LjY1IDcuNjYgMS45MyAxMy40NCAxLjU4IDE3LjM0LTFsLjQyLS4zIDEzLjg0LTU2LjM4Yy01LjEgMS4xOC0xMC4zNSAxLjMtMTUuNDcuMzRsLTEuOTMtLjQtMS45Mi0uNTFjLTQuMDItMS4xNS03LjItMy4wMy0xMS40NC02LjQzbC00Ljg0LTQuMDRjLTUuODMtNC45LTEwLjAzLTcuNTItMTUuODUtOS4yNGE1Ni4wNCA1Ni4wNCAwIDAgMC0xNi43Ny0yLjMzWiIgZmlsbD0iIzM5Qjk3RSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9nPjwvc3ZnPg==",Fl=Object.defineProperty,Jo=Object.getOwnPropertySymbols,hu=Object.prototype.hasOwnProperty,_l=Object.prototype.propertyIsEnumerable,Ic=(b,a,y)=>a in b?Fl(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,of=(b,a)=>{for(var y in a||(a={}))hu.call(a,y)&&Ic(b,y,a[y]);if(Jo)for(var y of Jo(a))_l.call(a,y)&&Ic(b,y,a[y]);return b};const pc=b=>React.createElement("svg",of({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u89C6\u9891"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("path",{fill:"#FFF",d:"M59 45h98v106H59z"}),React.createElement("path",{d:"M99.733.1c-35.6 0-68.493 18.996-86.292 49.827a99.644 99.644 0 0 0 86.303 149.462c55.03-.003 99.64-44.614 99.64-99.645 0-55.03-44.61-99.642-99.64-99.644h-.01Zm44.111 105.822a12.401 12.401 0 0 1-4.588 4.6h-.056l-47.433 27.39A12.444 12.444 0 0 1 73.1 127.132v-54.8a12.445 12.445 0 0 1 18.667-10.777L139.2 88.933c5.989 3.411 8.044 11 4.633 17l.011-.01Z",fill:"#6236FF",fillRule:"nonzero"})));var Su="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik01OSA0NWg5OHYxMDZINTl6Ii8+PHBhdGggZD0iTTk5LjczMy4xYy0zNS42IDAtNjguNDkzIDE4Ljk5Ni04Ni4yOTIgNDkuODI3YTk5LjY0NCA5OS42NDQgMCAwIDAgODYuMzAzIDE0OS40NjJjNTUuMDMtLjAwMyA5OS42NC00NC42MTQgOTkuNjQtOTkuNjQ1IDAtNTUuMDMtNDQuNjEtOTkuNjQyLTk5LjY0LTk5LjY0NGgtLjAxWm00NC4xMTEgMTA1LjgyMmExMi40MDEgMTIuNDAxIDAgMCAxLTQuNTg4IDQuNmgtLjA1NmwtNDcuNDMzIDI3LjM5QTEyLjQ0NCAxMi40NDQgMCAwIDEgNzMuMSAxMjcuMTMydi01NC44YTEyLjQ0NSAxMi40NDUgMCAwIDEgMTguNjY3LTEwLjc3N0wxMzkuMiA4OC45MzNjNS45ODkgMy40MTEgOC4wNDQgMTEgNC42MzMgMTdsLjAxMS0uMDFaIiBmaWxsPSIjNjIzNkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+",$l=Object.defineProperty,_o=Object.getOwnPropertySymbols,Zu=Object.prototype.hasOwnProperty,Fc=Object.prototype.propertyIsEnumerable,lf=(b,a,y)=>a in b?$l(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,xm=(b,a)=>{for(var y in a||(a={}))Zu.call(a,y)&&lf(b,y,a[y]);if(_o)for(var y of _o(a))Fc.call(a,y)&&lf(b,y,a[y]);return b};const Np=b=>React.createElement("svg",xm({className:"cs_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},b),React.createElement("path",{d:"M0 512a512 512 0 1 0 1024 0A512 512 0 1 0 0 512Z",fill:"#ECAD19"}),React.createElement("path",{d:"M710.554 256c27.648 0 50.739 21.248 54.118 48.64l.41 5.888v21.811a19.712 19.712 0 0 1-15.77 19.354l-3.942.41h-66.56a1.536 1.536 0 0 0-1.332.921l-.204.614v326.759c0 27.033-20.736 49.357-47.258 52.48a27.443 27.443 0 0 1-5.12.512h-314.88c-27.648 0-50.74-20.787-53.709-48.077l-.307-5.94v-19.2c0-11.11 8.192-20.53 18.79-22.527l4.096-.359h43.623a1.536 1.536 0 0 0 1.382-.921l.154-.615V310.016c0-27.648 20.838-50.74 48.128-53.709l5.837-.307h332.492zm-160 412.467H293.376a6.554 6.554 0 0 0-6.4 4.455l-.358 2.304v4.147c0 11.11 8.192 20.48 18.79 22.528l4.045.358h243.66c1.025 0 1.537-1.024 1.537-1.536a90.266 90.266 0 0 1-2.56-20.326c-.717-7.936-1.23-11.93-1.588-11.93zM578.56 532.48h-153.6v30.72h153.6v-30.72zm0-87.04h-153.6v30.72h153.6v-30.72zm0-87.04h-153.6v30.72h153.6V358.4zm130.97-71.22h-11.981a22.63 22.63 0 0 0-20.275 22.836v9.37c0 1.024 1.024 1.536 1.536 1.536h47.82c3.636 0 6.759-2.56 6.759-6.759l-1.024-4.096a23.04 23.04 0 0 0-22.835-22.886z",fill:"#FFF"}));var Fd="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTAgNTEyYTUxMiA1MTIgMCAxIDAgMTAyNCAwQTUxMiA1MTIgMCAxIDAgMCA1MTJaIiBmaWxsPSIjRUNBRDE5Ii8+PHBhdGggZD0iTTcxMC41NTQgMjU2YzI3LjY0OCAwIDUwLjczOSAyMS4yNDggNTQuMTE4IDQ4LjY0bC40MSA1Ljg4OHYyMS44MTFhMTkuNzEyIDE5LjcxMiAwIDAgMS0xNS43NyAxOS4zNTRsLTMuOTQyLjQxaC02Ni41NmExLjUzNiAxLjUzNiAwIDAgMC0xLjMzMi45MjFsLS4yMDQuNjE0djMyNi43NTljMCAyNy4wMzMtMjAuNzM2IDQ5LjM1Ny00Ny4yNTggNTIuNDhhMjcuNDQzIDI3LjQ0MyAwIDAgMS01LjEyLjUxMmgtMzE0Ljg4Yy0yNy42NDggMC01MC43NC0yMC43ODctNTMuNzA5LTQ4LjA3N2wtLjMwNy01Ljk0di0xOS4yYzAtMTEuMTEgOC4xOTItMjAuNTMgMTguNzktMjIuNTI3bDQuMDk2LS4zNTloNDMuNjIzYTEuNTM2IDEuNTM2IDAgMCAwIDEuMzgyLS45MjFsLjE1NC0uNjE1VjMxMC4wMTZjMC0yNy42NDggMjAuODM4LTUwLjc0IDQ4LjEyOC01My43MDlsNS44MzctLjMwN2gzMzIuNDkyem0tMTYwIDQxMi40NjdIMjkzLjM3NmE2LjU1NCA2LjU1NCAwIDAgMC02LjQgNC40NTVsLS4zNTggMi4zMDR2NC4xNDdjMCAxMS4xMSA4LjE5MiAyMC40OCAxOC43OSAyMi41MjhsNC4wNDUuMzU4aDI0My42NmMxLjAyNSAwIDEuNTM3LTEuMDI0IDEuNTM3LTEuNTM2YTkwLjI2NiA5MC4yNjYgMCAwIDEtMi41Ni0yMC4zMjZjLS43MTctNy45MzYtMS4yMy0xMS45My0xLjU4OC0xMS45M3pNNTc4LjU2IDUzMi40OGgtMTUzLjZ2MzAuNzJoMTUzLjZ2LTMwLjcyem0wLTg3LjA0aC0xNTMuNnYzMC43MmgxNTMuNnYtMzAuNzJ6bTAtODcuMDRoLTE1My42djMwLjcyaDE1My42VjM1OC40em0xMzAuOTctNzEuMjJoLTExLjk4MWEyMi42MyAyMi42MyAwIDAgMC0yMC4yNzUgMjIuODM2djkuMzdjMCAxLjAyNCAxLjAyNCAxLjUzNiAxLjUzNiAxLjUzNmg0Ny44MmMzLjYzNiAwIDYuNzU5LTIuNTYgNi43NTktNi43NTlsLTEuMDI0LTQuMDk2YTIzLjA0IDIzLjA0IDAgMCAwLTIyLjgzNS0yMi44ODZ6IiBmaWxsPSIjRkZGIi8+PC9zdmc+",Lp=Object.defineProperty,Kf=Object.getOwnPropertySymbols,mc=Object.prototype.hasOwnProperty,qf=Object.prototype.propertyIsEnumerable,Yu=(b,a,y)=>a in b?Lp(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Op=(b,a)=>{for(var y in a||(a={}))mc.call(a,y)&&Yu(b,y,a[y]);if(Kf)for(var y of Kf(a))qf.call(a,y)&&Yu(b,y,a[y]);return b};const Rp=b=>React.createElement("svg",Op({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u4F5C\u4E1A"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M100 0c55.23 0 100 44.77 100 100s-44.77 100-100 100S0 155.23 0 100 44.77 0 100 0Z",fill:"#2544AA"}),React.createElement("path",{d:"M107.5 50H65c-8.284 0-15 6.716-15 15v70c0 8.284 6.716 15 15 15h42.5c8.284 0 15-6.716 15-15V65c0-8.284-6.716-15-15-15Zm-44 54h38a3.5 3.5 0 1 1 0 7h-38a3.5 3.5 0 1 1 0-7ZM60 90.5a3.5 3.5 0 0 1 3.5-3.5H94a3.5 3.5 0 0 1 0 7H63.5a3.5 3.5 0 0 1-3.5-3.5ZM84 128H63.5a3.5 3.5 0 1 1 0-7H84a3.5 3.5 0 1 1 0 7Zm20 0h-4.5a3.5 3.5 0 1 1 0-7h4.5a3.5 3.5 0 1 1 0 7Zm5-51H63.5a3.5 3.5 0 0 1 0-7H109a3.5 3.5 0 1 1 0 7Zm26-27h10a5 5 0 0 1 5 5v15h-20V55a5 5 0 0 1 5-5Zm-5 87.28V77.5h20v59.78L140 150",fill:"#FFF"})));var zh="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0xMDAgMGM1NS4yMyAwIDEwMCA0NC43NyAxMDAgMTAwcy00NC43NyAxMDAtMTAwIDEwMFMwIDE1NS4yMyAwIDEwMCA0NC43NyAwIDEwMCAwWiIgZmlsbD0iIzI1NDRBQSIvPjxwYXRoIGQ9Ik0xMDcuNSA1MEg2NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY3MGMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDQyLjVjOC4yODQgMCAxNS02LjcxNiAxNS0xNVY2NWMwLTguMjg0LTYuNzE2LTE1LTE1LTE1Wm0tNDQgNTRoMzhhMy41IDMuNSAwIDEgMSAwIDdoLTM4YTMuNSAzLjUgMCAxIDEgMC03Wk02MCA5MC41YTMuNSAzLjUgMCAwIDEgMy41LTMuNUg5NGEzLjUgMy41IDAgMCAxIDAgN0g2My41YTMuNSAzLjUgMCAwIDEtMy41LTMuNVpNODQgMTI4SDYzLjVhMy41IDMuNSAwIDEgMSAwLTdIODRhMy41IDMuNSAwIDEgMSAwIDdabTIwIDBoLTQuNWEzLjUgMy41IDAgMSAxIDAtN2g0LjVhMy41IDMuNSAwIDEgMSAwIDdabTUtNTFINjMuNWEzLjUgMy41IDAgMCAxIDAtN0gxMDlhMy41IDMuNSAwIDEgMSAwIDdabTI2LTI3aDEwYTUgNSAwIDAgMSA1IDV2MTVoLTIwVjU1YTUgNSAwIDAgMSA1LTVabS01IDg3LjI4Vjc3LjVoMjB2NTkuNzhMMTQwIDE1MCIgZmlsbD0iI0ZGRiIvPjwvZz48L3N2Zz4=",_f=({type:b})=>{const a=(0,fe.useMemo)(()=>{switch(b){case"\u8BFE\u4EF6":return fe.createElement("img",{src:Mi,style:{width:"16rem",height:"16rem"}});case"\u5B9E\u8BAD":return fe.createElement("img",{src:fu,style:{width:"16rem",height:"16rem"}});case"\u89C6\u9891":return fe.createElement("img",{src:Su,style:{width:"16rem",height:"16rem"}});case"\u8BD5\u5377":return fe.createElement("img",{src:Fd,style:{width:"16rem",height:"16rem"}});case"\u4F5C\u4E1A":return fe.createElement("img",{src:zh,style:{width:"16rem",height:"16rem"}});default:return""}},[b]);return fe.createElement(fe.Fragment,null,a)},Nd="data:image/png;base64,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",gc="data:image/png;base64,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";const Ld=({className:b="",style:a={},direction:y,DataProps:x,pathsDetail:E,isOne:z,handleClickDetails:ee})=>{const{detail:te}=E,[ne]=(0,st.useSearchParams)(),ie=(x==null?void 0:x.status)=="\u672A\u53D1\u5E03"&&ne.get("type")=="classrooms",ae=(0,fe.useMemo)(()=>(x==null?void 0:x.grasp_rate)>=80&&(x==null?void 0:x.grasp_rate)<=100?Xs.waveDom100:(x==null?void 0:x.grasp_rate)>=60&&(x==null?void 0:x.grasp_rate)<=79?Xs.waveDom79:(x==null?void 0:x.grasp_rate)>0&&(x==null?void 0:x.grasp_rate)<=59?Xs.waveDom59:"",[x==null?void 0:x.grasp_rate]);return fe.createElement("div",{className:`flex flex-col item-center text-500 text-16px-rem relative current ${Xs.Node} ${b}`,style:a,onClick:()=>{ie&&!te.can_managed||ee(x)}},fe.createElement("img",{src:y=="up"?Nd:gc,className:`${Xs.Direction} ${y=="up"?Xs.UP:Xs.DOWN}`}),fe.createElement("div",{className:"relative",style:{width:"30rem",height:"30rem"}},fe.createElement(pn.Z,{title:`${x!=null&&x.node_type?`${x==null?void 0:x.node_type}\uFF1A`:""}${x==null?void 0:x.name}`},fe.createElement("div",{className:"flex item-center text-center gap-4px-rem absolute multi_ellipsis1 text-16px-rem",style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:"120rem"}},fe.createElement(_f,{type:x==null?void 0:x.node_type})," ",x==null?void 0:x.name))),fe.createElement("div",{className:`relative rounded-full flex item-center justify-center ${Xs.waveDom} ${ae}`},ie?fe.createElement(pn.Z,{title:"\u8D44\u6E90\u672A\u53D1\u5E03"},fe.createElement("span",{className:"iconfont icon-suo1",style:{color:"#fff",fontSize:"14rem"}})):fe.createElement("div",{className:`${Xs.wave}`,style:{top:`calc(100% - ${(x==null?void 0:x.grasp_rate)||0}%)`}})),fe.createElement("div",{className:`${z?Xs.HeightItem:""}`,style:{height:"82rem"}}))},uf=({DataProps:b={},className:a="",currentIndex:y=1,pathsDetail:x,handleClickDetails:E})=>{var z,ee,te;const ne=(0,fe.useMemo)(()=>(b==null?void 0:b.grasp_rate)>=80&&(b==null?void 0:b.grasp_rate)<=100?Xs.ItemDom100:(b==null?void 0:b.grasp_rate)>=60&&(b==null?void 0:b.grasp_rate)<=79?Xs.ItemDom79:(b==null?void 0:b.grasp_rate)>0&&(b==null?void 0:b.grasp_rate)<=59?Xs.ItemDom59:"",[b==null?void 0:b.grasp_rate]),ie=(0,fe.useRef)(null);return(0,fe.useEffect)(()=>{if(ie.current){const ae=ie.current.offsetWidth,oe=ie.current.children;if(ae<1200){for(const Ae of oe)Ae.classList.remove(Xs.NodeShowDirection);return}let le=ae;const de=[];let he=[];const ye=55*parseFloat(getComputedStyle(document.documentElement).fontSize);for(const Ae of oe)Ae.removeAttribute("style"),Ae.classList.remove(Xs.NodeShowDirection),le-((Ae==null?void 0:Ae.offsetWidth)+ye)>0?(he.push(Ae),le-=(Ae==null?void 0:Ae.offsetWidth)+ye):(le=ae-(Ae==null?void 0:Ae.offsetWidth)-ye,de.push(he),he=[],he.push(Ae));de.push(he),de.forEach(Ae=>{Ae.forEach((me,Ce)=>{Ce==(Ae==null?void 0:Ae.length)-1&&me.classList.add(Xs.NodeShowDirection)})})}},[ie,b==null?void 0:b.children]),fe.createElement("div",{id:"learning_path_chapter",className:`flex flex-col minW-0 rounded-10px-rem relative ${Xs.ItemDom} ${ne} ${a}`},fe.createElement("div",{className:`absolute ${Xs.Arrow}`}),fe.createElement("div",{className:`flex item-center gap-10px-rem rounded-10px-rem px-20px-rem py-6px-rem ${Xs.Title}`},fe.createElement(pn.Z,{title:""},fe.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 text-22px-rem text-500"},b==null?void 0:b.name)),fe.createElement("div",{className:"text-14px-rem"},(z=b==null?void 0:b.children)==null?void 0:z.length,"\u4E2A\u8D44\u6E90")),((ee=b==null?void 0:b.children)==null?void 0:ee.length)>0?fe.createElement("div",{className:"flex-1 minW-0 p-40px-rem px-64px-rem flex item-center justify-center"},fe.createElement("div",{ref:ie,className:"w-full flex item-center justify-center flex-wrap",style:{gap:"20rem 55rem"}},(te=b==null?void 0:b.children)==null?void 0:te.map((ae,oe)=>{var le,de;return fe.createElement(Ld,{key:oe,handleClickDetails:E,pathsDetail:x,isOne:((le=b==null?void 0:b.children)==null?void 0:le.length)==1,DataProps:ae,direction:oe%2==0?"up":"down",className:oe%2==0&&((de=b==null?void 0:b.children)==null?void 0:de.length)!=1?Xs.NodeUp:"flex-col"})}))):fe.createElement("div",{className:"flex-1 minW-0 p-40px-rem px-64px-rem flex item-center justify-center flex-wrap"},fe.createElement(bl.Z,{img:Me(11051),styles:{margin:"auto"},imgStyles:{width:"200rem",height:"155rem"},customText:"\u6682\u65E0\u5B66\u4E60\u8D44\u6E90"})))};var cf=({pathsDetail:b,handleClickDetails:a,dataSource:y})=>{const x=(0,fe.useRef)(null);return(0,fe.useEffect)(()=>{if(x.current){const E=x.current.offsetWidth,z=document.querySelectorAll("#learning_path_chapter");let ee=E;const te=[];let ne=[];const ie=90*parseFloat(getComputedStyle(document.documentElement).fontSize);for(const ae of z)if(ae.removeAttribute("style"),ae.classList.remove(Xs.ArrowDisable,Xs.ArrowDownLeft,Xs.ArrowLeft,Xs.ArrowDownRight,Xs.ArrowRight),ee-((ae==null?void 0:ae.offsetWidth)+ie)>0)ne.push(ae),ee-=(ae==null?void 0:ae.offsetWidth)+ie;else{const oe=(ee+ie-10)/(ne==null?void 0:ne.length);ne.forEach(le=>{le.style.width=`${(le.offsetWidth+oe)/E*100}%`}),ee=E-(ae==null?void 0:ae.offsetWidth)-ie,te.push(ne),ne=[],ne.push(ae)}te.push(ne),te.forEach((ae,oe)=>{var le;oe%2===1?[...ae||[]].reverse().forEach((he,ye)=>{he.style.order=(oe+1)*10+ye,ye==0?(he.style["margin-left"]="auto",he.classList.add((te==null?void 0:te.length)-1==oe?Xs.ArrowDisable:Xs.ArrowDownLeft)):he.classList.add(Xs.ArrowLeft)}):ae.forEach((de,he)=>{de.style.order=(oe+1)*10+he,he==(ae==null?void 0:ae.length)-1?de.classList.add((te==null?void 0:te.length)-1==oe?Xs.ArrowDisable:Xs.ArrowDownRight):de.classList.add(Xs.ArrowRight)}),(ae==null?void 0:ae.length)==1&&(ae[0].style.width="100%"),((le=ae==null?void 0:ae[0])==null?void 0:le.offsetWidth)fe.createElement(uf,{key:z,handleClickDetails:a,pathsDetail:b,currentIndex:z+1,DataProps:E}))))},df=Me(22325),$n=Me(59301),ff=Object.defineProperty,bm=Object.defineProperties,Od=Object.getOwnPropertyDescriptors,ud=Object.getOwnPropertySymbols,cd=Object.prototype.hasOwnProperty,Qc=Object.prototype.propertyIsEnumerable,Mu=(b,a,y)=>a in b?ff(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Nc=(b,a)=>{for(var y in a||(a={}))cd.call(a,y)&&Mu(b,y,a[y]);if(ud)for(var y of ud(a))Qc.call(a,y)&&Mu(b,y,a[y]);return b},Ju=(b,a)=>bm(b,Od(a)),Ku=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const dd=[3,2,1],kp=({xxljac:b,pathsDetail:a,dispatch:y,setxxljac:x})=>{var E,z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae;const me=(0,st.useParams)(),Ce=(0,st.useSelector)(Pn=>Pn),{pathsDetail:{detail:Ee={},actionTabs:Be}}=Ce,[Ne,Fe]=(0,fe.useState)(!1),[ke,Re]=(0,fe.useState)(!1),[Oe,ze]=(0,fe.useState)(""),[Le,_e]=(0,fe.useState)(!1),[Et,yt]=(0,fe.useState)(!1),[jt,tn]=(0,fe.useState)(!1),[cn,kt]=(0,fe.useState)(""),[pt,An]=(0,fe.useState)({}),[Vt,rn]=(0,fe.useState)([]),[Bn,hr]=(0,fe.useState)([]),[bt,on]=(0,fe.useState)([]),[dn,Qn]=(0,fe.useState)(!1),[Un,Kn]=(0,fe.useState)(1),[Nr,Xr]=(0,fe.useState)({});let[Ht,En]=(0,fe.useState)({});const qn=Ee==null?void 0:Ee.can_managed,[vr]=(0,st.useSearchParams)(),[cr,Vr]=(0,fe.useState)(!1),kr=new URLSearchParams(window.location.search);kr.set("tabs","2");const Jr=(Pn={})=>{y({type:"pathsDetail/getKnowledgeGraphs",payload:Nc({graphable_type:vr.get("type")==="classrooms"?"course":"subject",graphable_id:me==null?void 0:me.pathId},Pn)})};function ms(){return Ku(this,null,function*(){var Pn;let Xn=[...(Pn=a==null?void 0:a.detail)==null?void 0:Pn.nodes];on(Xn==null?void 0:Xn.splice(1))})}(0,fe.useEffect)(()=>{var Pn;(Pn=a==null?void 0:a.detail)!=null&&Pn.nodes&&Un===1&&(ms(),Kn(2))},[(E=a==null?void 0:a.detail)==null?void 0:E.nodes]),(0,fe.useEffect)(()=>{var Pn,Xn,Li,Kr,es,qi,Zr,Bi,gs,Fi;let Br=!1;((Xn=(Pn=a==null?void 0:a.detail)==null?void 0:Pn.route_nodes)==null?void 0:Xn.length)>0&&(Br=!((Kr=(Li=a==null?void 0:a.detail)==null?void 0:Li.route_nodes)!=null&&Kr.some(_s=>_s==null?void 0:_s.is_choice))),(Zr=(qi=(es=a==null?void 0:a.detail)==null?void 0:es.route_nodes)==null?void 0:qi.find(_s=>_s==null?void 0:_s.is_choice))!=null&&Zr.id&&x((Fi=(gs=(Bi=a==null?void 0:a.detail)==null?void 0:Bi.route_nodes)==null?void 0:gs.find(_s=>_s==null?void 0:_s.is_choice))==null?void 0:Fi.id),!qn&&Br&&(0,Ks.bg)()&&y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"}}})},[(z=a==null?void 0:a.detail)==null?void 0:z.route_nodes]),(0,fe.useEffect)(()=>{b&&Es(b)},[b]);const Es=(Pn=null)=>Ku(void 0,null,function*(){Fe(!0);const Xn=yield(0,Nt.ZP)("/api/subject_knowledge.json",{method:"get",params:{id:Pn,subject_id:me==null?void 0:me.pathId}});if((Xn==null?void 0:Xn.status)===0){An(Xn||{});const Li=(Xn==null?void 0:Xn.parent_knowledges)||[];hr(Li)}Fe(!1)});(0,fe.useEffect)(()=>{pt!=null&&pt.data&&rn((pt==null?void 0:pt.data)||[])},[pt]);const Pt=()=>Ku(void 0,null,function*(){if(!cn){nt.ZP.warning("\u8BF7\u8F93\u5165\u6587\u672C");return}if(cn!=="\u786E\u8BA4\u5220\u9664"){nt.ZP.warning("\u6587\u672C\u8F93\u5165\u6709\u8BEF");return}tn(!0);const Pn=yield(0,Nt.ZP)("/api/subject_knowledge.json",{method:"delete",body:{id:b,subject_id:me==null?void 0:me.pathId}});(Pn==null?void 0:Pn.status)===0&&(nt.ZP.success("\u5220\u9664\u6210\u529F"),_e(!1),Jr({graphable_id:me==null?void 0:me.pathId})),tn(!1)}),et=(...Pn)=>Ku(void 0,[...Pn],function*(Xn={}){yield(0,Nt.ZP)("/api/subject_knowledge/create_study.json",{method:"post",body:Ju(Nc({},Xn),{subject_id:me==null?void 0:me.pathId})})}),Tn=(Pn,Xn=!0)=>Ku(void 0,null,function*(){var Li,Kr,es,qi,Zr,Bi;if((Pn==null?void 0:Pn.container_type)==="Attachment"&&!((Li=a==null?void 0:a.detail)!=null&&Li.can_managed)){if((0,To.fc)({id:Pn==null?void 0:Pn.container_id,watch_type:2,course_id:me==null?void 0:me.pathId}),Pn!=null&&Pn.is_link){et({uuid:(Pn==null?void 0:Pn.knowledge_uuid)||(Pn==null?void 0:Pn.key)}),(0,Zt.xg)(Pn==null?void 0:Pn.url);return}Xr({url:Gt.Z.API_SERVER+(Pn==null?void 0:Pn.url),file_type:Pn==null?void 0:Pn.file_type});return}if(Pn!=null&&Pn.url){et({uuid:(Pn==null?void 0:Pn.knowledge_uuid)||(Pn==null?void 0:Pn.key)}),window.open(Pn==null?void 0:Pn.url);return}Xn&&Fe(!0);let gs=yield(0,Nt.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{depth:0,subject_id:me==null?void 0:me.pathId,nodeUuid:(Pn==null?void 0:Pn.knowledge_uuid)||(Pn==null?void 0:Pn.key)}});if((gs==null?void 0:gs.status)===0){if(((es=(Kr=gs==null?void 0:gs.data)==null?void 0:Kr.nodes)==null?void 0:es.length)>0){let Fi=(Bi=(Zr=(qi=gs==null?void 0:gs.data)==null?void 0:qi.nodes)==null?void 0:Zr.map(Br=>{var _s,yn,ti,hi,ss,Gr,Or,fs,yr,Ei,Ui,Js,vs;const Vf=(_s=gs==null?void 0:gs.data)==null?void 0:_s.resource_count;return Ju(Nc({},Br==null?void 0:Br.properties),{rootNodeUuid:(yn=Br==null?void 0:Br.properties)==null?void 0:yn.rootNodeUuid,id:(ti=Br==null?void 0:Br.properties)==null?void 0:ti.uuid,name:(hi=Br==null?void 0:Br.properties)==null?void 0:hi.name,description:(ss=Br==null?void 0:Br.properties)==null?void 0:ss.description,nodeType:(Gr=Br==null?void 0:Br.properties)==null?void 0:Gr.nodeType,tags:((Or=Br==null?void 0:Br.properties)==null?void 0:Or.tags)&&((Ei=(yr=(fs=Br==null?void 0:Br.properties)==null?void 0:fs.tags)==null?void 0:yr.split("\uFF0C"))==null?void 0:Ei.map(Xc=>({name:Xc})))||[],colorType:parseInt((Ui=Br==null?void 0:Br.properties)==null?void 0:Ui.color)>3?"3":(Js=Br==null?void 0:Br.properties)==null?void 0:Js.color,activeColor:"#FA6400",size:dd[((vs=Br==null?void 0:Br.properties)==null?void 0:vs.color)-1]||1,shape:"circle",hide:!1,isExtendedState:!0,currentResourceTotal:Vf})}))==null?void 0:Bi[0];Fi.resourceid=Pn==null?void 0:Pn.id,En(Fi),Qn(!0)}Fe(!1)}}),or=()=>$n.createElement("div",{className:pa.studentHead},$n.createElement("div",{className:"flex item-center w-full"},$n.createElement("div",{className:pa.headLi},$n.createElement("img",{src:ql}),$n.createElement("aside",null,$n.createElement("span",null,"\u8D44\u6E90\u603B\u6570"),$n.createElement("b",null,pt==null?void 0:pt.resource_count))),$n.createElement("div",{className:pa.headLi},$n.createElement("img",{src:Mc}),$n.createElement("aside",null,$n.createElement("span",null,"\u5B66\u4E60\u5B8C\u6210\u7387"),$n.createElement("b",{style:{color:"#F7B500"}},pt==null?void 0:pt.complete_rate,"%"))),$n.createElement("div",{className:pa.headLi},$n.createElement("img",{src:Wc}),$n.createElement("aside",null,$n.createElement("span",null,"\u5B66\u4E60\u638C\u63E1\u7387"),$n.createElement("b",{style:{color:"#3AFFC8"}},pt==null?void 0:pt.grasp_rate,"%"))),$n.createElement("div",{className:pa.headLi},$n.createElement("img",{src:Td}),$n.createElement("aside",null,$n.createElement("span",{style:{marginBottom:"10rem"}},"\u4E0A\u6B21\u5B66\u5230"),$n.createElement(pn.Z,{title:pt==null?void 0:pt.last_knowledge_name},$n.createElement("b",{style:{color:"#7FAAFF",fontSize:"16rem"}},(0,Zt.Pq)(pt==null?void 0:pt.last_knowledge_name,13))))),$n.createElement("div",{onClick:()=>{pt!=null&&pt.last_knowledge_name&&Tn({knowledge_uuid:pt==null?void 0:pt.last_knowledge_uuid,id:pt==null?void 0:pt.last_knowledge_uuid})},className:pt!=null&&pt.last_knowledge_name?pa.btn:`${pa.btn} ${pa.disabledBtn}`},"\u7EE7\u7EED\u5B66\u4E60")));return $n.createElement($n.Fragment,null,!((te=(ee=a==null?void 0:a.detail)==null?void 0:ee.route_nodes)!=null&&te.length)&&$n.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},$n.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},qn&&$n.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{ze(null),Re(!0)}},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84")),$n.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}},"\u8BFE\u7A0B\u5B66\u4E60\u8DEF\u5F84\u662F\u4EC0\u4E48\uFF1F"),$n.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u8BFE\u7A0B\u5B66\u4E60\u8DEF\u5F84\u662F\u4E00\u6761\u57FA\u4E8E\u8BFE\u7A0B\u76EE\u6807\u5BFC\u822A\u8DEF\u7EBF\uFF0C\u901A\u8FC7\u89C4\u5212\u6700\u4F18\u5B66\u4E60\u987A\u5E8F\uFF0C\u53EF\u914D\u5408\u591A\u79CD\u7C7B\u8D44\u6E90\uFF08\u89C6\u9891\u3001\u8BFE\u4EF6\u3001\u4E60\u9898\u3001\u8BFE\u4EF6\u7B49\uFF09\uFF0C\u52A9\u529B\u5B66\u751F\u4EE5\u6700\u7701\u529B\u3001\u6700\u9AD8\u6548\u3001\u6700\u6E05\u6670\u7684\u65B9\u5F0F\u638C\u63E1\u8BFE\u7A0B\u6838\u5FC3\u77E5\u8BC6\u5185\u5BB9",$n.createElement("img",{className:"absolute",src:Me(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),$n.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},$n.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},$n.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u5B66\u4E60\u8DEF\u5F84\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),$n.createElement("div",{className:"w-full flex justify-between gap-32px-rem relative"},$n.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",left:"200rem",top:"80rem"},src:Me(79989)}),$n.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",right:"210rem",top:"80rem"},src:Me(73486)}),[{title:"\u591A\u7EF4\u5B66\u4E60\u8DEF\u5F84",desc:"\u4E00\u4E2A\u8BFE\u7A0B\u4E0B\u652F\u6301\u6784\u5EFA\u591A\u6761\u5B66\u4E60\u8DEF\u5F84\uFF0C\u5B66\u751F\u53EF\u4EE5\u6839\u636E\u4E2A\u4EBA\u4E13\u4E1A\u3001\u5B66\u4E60\u60C5\u51B5\u7B49\u56E0\u7D20\uFF0C\u9009\u62E9\u4E0D\u540C\u7684\u5B66\u4E60\u8DEF\u5F84\u8FDB\u884C\u5B66\u4E60\u3002",img:Me(49747)},{title:"\u8BFE\u5802\u5B66\u60C5\u7EDF\u8BA1",desc:vr.get("type")=="classrooms"?"\u652F\u6301\u4ECE\u5B9E\u8DF5\u8BFE\u7A0B\u5C06\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u5230\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u5728\u6559\u5B66\u8BFE\u5802\u53EF\u4EE5\u5C06\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B9E\u8BAD\u3001\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u7B49\u8D44\u6E90\u53D1\u9001\u5230\u5404\u4E2A\u4EFB\u52A1\u6A21\u5757\uFF0C\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1":"\u652F\u6301\u4E00\u952E\u5C06\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u5728\u6559\u5B66\u8BFE\u5802\u4E2D\u53EF\u4EE5\u5C06\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B9E\u8BAD\u3001\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u7B49\u8D44\u6E90\u53D1\u9001\u5230\u5404\u4E2A\u4EFB\u52A1\u6A21\u5757\uFF0C\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1\u3002",img:Me(7875)},{title:"\u5B66\u60C5\u5206\u6790+\u5B66\u60C5\u9884\u8B66+\u8D44\u6E90\u63A8\u8350",desc:"\u652F\u6301\u6839\u636E\u5B66\u751F\u5728\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u60C5\u5206\u6790\uFF0C\u7ECF\u8FC7\u7CFB\u7EDF\u5B66\u60C5\u9884\u8B66\u60C5\u51B5\uFF0C\u4E3A\u5B66\u751F\u63A8\u8350\u4E0D\u540C\u7684\u5B66\u4E60\u8D44\u6E90\uFF0C\u5B9E\u73B0\u5343\u4EBA\u5343\u9762\u7684\u5B66\u4E60\u573A\u666F\u3002",img:Me(14813)}].map((Pn,Xn)=>$n.createElement("div",{key:Xn,className:`flex flex-col item-center ${Xn!=1?"pt-56px-rem":""}`},$n.createElement("img",{src:Pn==null?void 0:Pn.img,style:{width:"127rem",height:"119rem"}}),$n.createElement("div",{className:"px-20px-rem pb-20px-rem mt-10px-rem",style:{background:`url(${Me(14760)}) 0 0 / 100% 100% no-repeat`}},Pn==null?void 0:Pn.title),$n.createElement("div",{className:"mt-6px-rem",style:{width:"20rem",height:"10rem",background:"#7A99DD",clipPath:"polygon(100% 0, 0 0, 50% 100%)",WebkitClipPath:"polygon(100% 0, 0 0, 50% 100%)"}}),$n.createElement("div",{className:"px-20px-rem py-10px-rem mt-6px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",color:"rgba(255,255,255,0.8)",width:"236rem",height:"152rem"}},Pn==null?void 0:Pn.desc))))),$n.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},$n.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u6CE8\u610F\u4E8B\u9879 "),$n.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:$n.createElement("div",{className:"flex flex-col gap-4px-rem"},$n.createElement("div",{className:"text-16px-rem"},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84"),$n.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u5B66\u4E60\u8DEF\u5F84\u57FA\u4E8E\u77E5\u8BC6\u56FE\u8C31\u521B\u5EFA\uFF0C\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u524D\uFF0C\u9700\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u3002",$n.createElement("br",null),$n.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u65F6\uFF0C\u540C\u6B65\u5EFA\u7ACB\u8282\u70B9\u6807\u7B7E\u548C\u8282\u70B9\u5173\u7CFB\uFF0C\u7CFB\u7EDF\u4F1A\u6839\u636E\u77E5\u8BC6\u56FE\u8C31\u7684\u8282\u70B9\u6807\u7B7E\u548C\u8282\u70B9\u5173\u7CFB\u81EA\u52A8\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84")))},{desc:$n.createElement("div",{className:"flex flex-col gap-4px-rem"},$n.createElement("div",{className:"text-16px-rem"},"\u5B66\u4E60\u8DEF\u5F84\u751F\u6210"),$n.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u540E\uFF0C\u7CFB\u7EDF\u4F1A\u6839\u636E",$n.createElement("span",{style:{color:"#FFE698"}},"\u77E5\u8BC6\u8282\u70B9\u7684\u524D\u5E8F/\u540E\u5E8F\u5173\u7CFB"),"\u81EA\u52A8\u751F\u6210\u5B66\u4E60\u8DEF\u5F84\u3002"))},{desc:$n.createElement("div",{className:"flex flex-col gap-4px-rem"},$n.createElement("div",{className:"text-16px-rem"},"\u5B66\u4E60\u8DEF\u5F84\u8C03\u6574"),$n.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u5728\u751F\u6210\u7684\u5B66\u4E60\u8DEF\u5F84\u4E2D\uFF0C\u53EF\u4EE5\u70B9\u51FB",$n.createElement("span",{style:{color:"#FFE698"}},"\u201C\u79FB\u9664\u5B66\u4E60\u8DEF\u5F84\u201D"),"\u548C",$n.createElement("span",{style:{color:"#FFE698"}},"\u201C\u52A0\u5165\u5B66\u4E60\u8DEF\u5F84\u201D"),"\u8C03\u6574\u8DEF\u5F84\u4E2D\u5B66\u4E60\u5185\u5BB9\uFF0C\u4E5F\u53EF\u4EE5",$n.createElement("span",{style:{color:"#FFE698"}},"\u62D6\u52A8\u5B66\u4E60\u8DEF\u5F84\u8282\u70B9"),"\u8C03\u6574\u5B66\u4E60\u987A\u5E8F\u3002"))}].map((Pn,Xn)=>$n.createElement("div",{key:Xn,className:"py-20px-rem px-16px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},$n.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(Xn+1).toString().padStart(2,"0")),$n.createElement("div",{className:"flex-1 minW-0"},Pn==null?void 0:Pn.desc))))))),((ie=(ne=a==null?void 0:a.detail)==null?void 0:ne.route_nodes)==null?void 0:ie.length)&&$n.createElement(Ba.Z,null,$n.createElement($n.Fragment,null,$n.createElement("div",{className:pa.learning},$n.createElement(Mt.Z,{spinning:Ne,size:"large",wrapperClassName:pa.spin,tip:"\u6570\u636E\u7EDF\u8BA1\u4E2D\uFF0C\u8BF7\u7A0D\u540E"},$n.createElement("div",{className:pa.body},qn?$n.createElement("div",{className:`${pa.head}`}," ",$n.createElement("div",{className:"w-full flex item-center justify-between"},$n.createElement("div",{className:pa.numerical},$n.createElement("div",null,$n.createElement("img",{src:ql}),$n.createElement("span",null,"\u8D44\u6E90\u603B\u6570"),$n.createElement("b",null,pt==null?void 0:pt.resource_count)),$n.createElement("div",null,$n.createElement("img",{src:Mc}),$n.createElement("span",null,"\u5E73\u5747\u5B66\u4E60\u5B8C\u6210\u7387"),$n.createElement("b",{style:{color:"#F7B500"}},pt==null?void 0:pt.complete_rate,"%")),$n.createElement("div",null,$n.createElement("img",{src:Wc}),$n.createElement("span",null,"\u5E73\u5747\u5B66\u4E60\u638C\u63E1\u7387"),$n.createElement("b",{style:{color:"#3AFFC8"}},pt==null?void 0:pt.grasp_rate,"%"))),$n.createElement("div",{className:pa.action},vr.get("type")!=="classrooms"&&!(0,Ks.JA)()&&$n.createElement("div",{onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"route"}}}})}},$n.createElement("span",null,$n.createElement("i",{className:"iconfont icon-guanlianketang"})),$n.createElement("span",null,"\u53D1\u9001\u81F3\u8BFE\u5802")),qn&&$n.createElement("div",{onClick:()=>{ze(null),Re(!0)}},$n.createElement("span",null,$n.createElement("i",{className:"iconfont icon-tianjia4"})),$n.createElement("span",null,"\u521B\u5EFA")),$n.createElement("div",{onClick:()=>{ze(b),Re(!0)}},$n.createElement("span",null,$n.createElement("i",{className:"iconfont icon-bianji13"})),$n.createElement("span",null,"\u7F16\u8F91")),$n.createElement("div",{onClick:()=>_e(!0)},$n.createElement("span",null,$n.createElement("i",{className:"iconfont icon-shanchu17"})),$n.createElement("span",null,"\u5220\u9664"))))):or(),$n.createElement("div",{className:"flex item-center gap-16px-rem px-40px-rem c-white py-20px-rem"},vr.get("type")=="classrooms"&&qn&&$n.createElement("div",{className:`current flex item-center ${pa.PublishBut}`,onClick:()=>{Vr(!0)}},$n.createElement("span",{className:"iconfont icon-weifabu"}),"\u53D1\u5E03\u5B66\u4E60\u8D44\u6E90"),$n.createElement("div",{className:"flex item-center rounded-full",style:{background:"#101C39",padding:"0 0 0 20rem",gap:"10rem"}},$n.createElement("div",{className:"c-grey-eee text-nowrap"},"\u5F53\u524D\u8DEF\u5F84"),$n.createElement(pn.Z,{title:((oe=(ae=Ee==null?void 0:Ee.route_nodes)==null?void 0:ae.find(Pn=>Pn==null?void 0:Pn.is_choice))==null?void 0:oe.name)||""},$n.createElement("div",{className:"multi_ellipsis1"},((de=(le=Ee==null?void 0:Ee.route_nodes)==null?void 0:le.find(Pn=>Pn==null?void 0:Pn.is_choice))==null?void 0:de.name)||"")),$n.createElement("div",{className:`current flex item-center ${pa.ChangeBut}`,onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"}}})}},$n.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),!qn&&$n.createElement("div",{className:`text-nowrap rounded-full flex item-center h-full ${pa.SwitchStyle}`,style:{background:"#101C39",padding:"0 5rem 0 20rem",gap:"10rem",lineHeight:"40rem"}},"\u4EC5\u67E5\u770B\u672A\u638C\u63E1\u77E5\u8BC6\u70B9",$n.createElement(ml.Z,{onChange:Pn=>{rn(Pn?(Li=>Li==null?void 0:Li.filter(Kr=>(Kr==null?void 0:Kr.grasp_rate)!=100).map(Kr=>{var es;return Ju(Nc({},Kr),{children:(es=Kr==null?void 0:Kr.children)==null?void 0:es.filter(qi=>(qi==null?void 0:qi.grasp_rate)!=100)})}))(pt==null?void 0:pt.data):(pt==null?void 0:pt.data)||[])},checkedChildren:"\u5F00\u542F",unCheckedChildren:"\u5173\u95ED"})),qn&&vr.get("type")==="classrooms"&&$n.createElement($n.Fragment,null,$n.createElement("div",{className:`current flex item-center ${pa.ChangeBut}`,onClick:()=>{var Pn,Xn;st.history.push(`/knowledgegraph/${me==null?void 0:me.pathId}/statistics/learningpath/${(Xn=(Pn=Ee==null?void 0:Ee.route_nodes)==null?void 0:Pn.find(Li=>Li==null?void 0:Li.is_choice))==null?void 0:Xn.id}?${kr}`)}}," \u6570\u636E\u7EDF\u8BA1 ")),$n.createElement("div",{className:"ml-auto flex item-center rounded-full text-nowrap",style:{background:"rgba(48,58,76,0.5)",padding:"10rem 20rem",gap:"8rem"}},$n.createElement("div",null,"\u638C\u63E1\u7387\uFF1A"),$n.createElement("div",{className:"rounded-full",style:{background:"#60C059",width:"16rem",height:"16rem"}}),$n.createElement("div",null,"100% ~ 80%"),$n.createElement("div",{className:"rounded-full",style:{background:"#FFB15F",width:"16rem",height:"16rem",marginLeft:"30rem"}}),$n.createElement("div",null,"79% ~ 60%"),$n.createElement("div",{className:"rounded-full",style:{background:"#FF9090",width:"16rem",height:"16rem",marginLeft:"30rem"}}),$n.createElement("div",null,"59% ~ 0%"),$n.createElement("div",{className:"rounded-full",style:{background:"#5E6A80",width:"16rem",height:"16rem",marginLeft:"30rem"}}),$n.createElement("div",null,"\u672A\u5B66\u4E60"))),(he=pt==null?void 0:pt.data)!=null&&he.length?$n.createElement(cf,{pathsDetail:a,dataSource:Vt||[],handleClickDetails:Tn}):$n.createElement(bl.Z,{img:Kl,className:"flex flex-col item-center justify-center",styles:{height:"80vh"},imgStyles:{width:"200rem"},customText:"\u6682\u65E0\u5B66\u4E60\u8DEF\u5F84\u6570\u636E"}))),Et&&$n.createElement(vo,{pathsDetail:a,subjectId:me==null?void 0:me.pathId,dispatch:y,visible:Et,onCancel:()=>yt(!1),onClickDetails:Tn}),$n.createElement(rt.default,{title:"\u786E\u8BA4\u5220\u9664\u63D0\u793A",open:Le,centered:!0,confirmLoading:jt,okButtonProps:{danger:!0},width:"600rem",okText:"\u786E\u8BA4\u5220\u9664",onCancel:()=>_e(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{kt("")},onOk:Pt},$n.createElement("div",{style:{background:"#fff",boxShadow:"0 3rem 4rem 0 #F3F3F3",borderRadius:"2rem",padding:"20rem"}},$n.createElement("div",{style:{fontSize:"16rem",color:"#000"}},"\u8BF7\u786E\u8BA4\u662F\u5426\u5220\u9664\u300A",(ye=Bn==null?void 0:Bn.find(Pn=>Pn.id===b))==null?void 0:ye.name,"\u300B\u7684\u5B66\u4E60\u8DEF\u5F84\uFF1F\u82E5\u5DF2\u786E\u8BA4\u9700\u8981\u5220\u9664\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6587\u672C\u6846\u4E2D\u8F93\u5165\u201C\u786E\u8BA4\u5220\u9664\u201D\u6587\u672C\u540E\uFF0C\u70B9\u51FB\u201C\u786E\u8BA4\u5220\u9664\u201D\u6309\u94AE"),$n.createElement("div",{style:{fontSize:"16rem",color:"#E30000",margin:"20rem 0"}},"\u63D0\u793A\uFF1A\u5220\u9664\u540E\u5C06\u65E0\u6CD5\u6062\u590D\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002"),$n.createElement(ct.default,{size:"large",placeholder:"\u8BF7\u8F93\u5165\u201C\u786E\u8BA4\u5220\u9664\u201D\u6587\u672C",value:cn,onChange:Pn=>kt(Pn.target.value)})))))),ke&&$n.createElement(br,{onOk:()=>{Jr({graphable_id:me==null?void 0:me.pathId})},setaddmodal:Re,addmodal:ke,uuid:Oe}),$n.createElement(wr.Z,{initdata:()=>{},uuid:"\u5B66\u4E60\u8DEF\u5F84",Tabsdatas:bt,setshow:()=>{},getData:Es,buildTree:()=>{},containerRef:()=>{},showdetail:dn,setshowdetail:Qn,items:Ht}),$n.createElement(lo.Z,{close:!0,style:{zIndex:1300,background:"rgba(1, 10, 35, 0.5)"},data:Nr==null?void 0:Nr.url,type:Nr==null?void 0:Nr.file_type,disabledDownload:!0,onClose:()=>Xr({})}),(Be==null?void 0:Be.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"&&$n.createElement(df.E_,{type:"route",open:(Be==null?void 0:Be.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",currentSeleteData:(Ae=Ee==null?void 0:Ee.route_nodes)==null?void 0:Ae.find(Pn=>Pn.id===b),onFinish:()=>{Jr({graphable_id:me==null?void 0:me.pathId})}}),$n.createElement(tt,{visible:cr,setVisible:Vr,treeList:pt==null?void 0:pt.data,uuid:b,detail:Ee,onOk:Pn=>{Vr(!1),Es(Pn)}}))};var kh=(0,st.connect)(({pathsDetail:b,user:a})=>({pathsDetail:b,user:a}))(kp),Du={tag:"tag___aFk2e",active:"active___xFrif",tagsModal:"tagsModal___PRPSO",btn:"btn___IfO8v",modal:"modal___X3fUd",mHead:"mHead___IvIZN",body:"body___FhLrG",add:"add___YJGg_",error:"error___JoLGM"},Ti=Me(59301),zs=Object.defineProperty,dl=Object.getOwnPropertySymbols,Zc=Object.prototype.hasOwnProperty,Hh=Object.prototype.propertyIsEnumerable,Eg=(b,a,y)=>a in b?zs(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,vv=(b,a)=>{for(var y in a||(a={}))Zc.call(a,y)&&Eg(b,y,a[y]);if(dl)for(var y of dl(a))Hh.call(a,y)&&Eg(b,y,a[y]);return b},Em=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),ra=({value:b=[],onChange:a,type:y,subjectId:x})=>{const[E,z]=(0,fe.useState)(!1),[ee,te]=(0,fe.useState)([]),[ne,ie]=(0,fe.useState)([]),[ae,oe]=(0,fe.useState)([]),[le,de]=(0,fe.useState)(""),[he,ye]=(0,fe.useState)(""),[Ae,me]=(0,fe.useState)(!1),[Ce,Ee]=(0,fe.useState)(!1),Be=[{background:"#6236FF",borderColor:"#9D82FF"},{background:"#6DB9FF",borderColor:"#6DB9FF"},{background:"rgba(27,175,234,0.8)",borderColor:"#68D5FF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"rgba(29,94,255,0.8)",borderColor:"#6D97FE"},{background:"#E75454",borderColor:"#FE8383"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"},{background:"rgba(224,32,32,0.8)",borderColor:"#E02020"},{background:"rgba(255,126,15,0.8)",borderColor:"#FF7E0F"},{background:"rgba(29,94,255,0.8)",borderColor:"#1D5EFF"},{background:"#2BAC8E",borderColor:"#30CB9D"},{background:"#EE5D5D",borderColor:"#FF8181"},{background:"#7E5AFE",borderColor:"#9173FA"},{background:"#3ABCEF",borderColor:"#6FD6FF"},{background:"#B132C2",borderColor:"#C57AF6"},{background:"#46A4FB",borderColor:"#72BBFF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"#1D5EFF",borderColor:"#6D97FE"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"}],Ne=y===1?"\u7C7B\u578B":"\u6807\u7B7E",Fe=y===1?"0":"4";(0,fe.useEffect)(()=>{E&&(oe(b),ke())},[E]);const ke=()=>Em(void 0,null,function*(){var _e;Ee(!0);const Et=yield(0,Nt.ZP)("/api/knowledge_items.json",{method:"get",params:{subject_id:x,item_type:Fe}});(Et==null?void 0:Et.status)===0&&(te((_e=Et==null?void 0:Et.data)==null?void 0:_e.map(yt=>yt.name)),ie((Et==null?void 0:Et.data)||[])),Ee(!1)}),Re=_e=>Em(void 0,null,function*(){var Et;Ee(!0);const yt=(Et=ne==null?void 0:ne.find(tn=>tn.name===_e))==null?void 0:Et.id,jt=yield(0,Nt.ZP)(`/api/knowledge_items/${yt}.json`,{method:"delete",body:{subject_id:x}});if((jt==null?void 0:jt.status)===0){ke(),nt.ZP.success("\u5220\u9664\u6210\u529F");return}Ee(!1)}),Oe=({title:_e="",style:Et={},showDelete:yt=!0,modal:jt=!1,active:tn=!1})=>{const kt=(Vt=>Vt.split("").reduce((rn,Bn)=>rn+Bn.charCodeAt(0),0))(_e)%Be.length,{background:pt,borderColor:An}=Be[kt];return Ti.createElement("div",{className:Hr()(Du.tag,tn?Du.active:""),onClick:()=>{jt&&(E===1&&oe([_e]),E===2&&(ae.includes(_e)?oe(ae.filter(Vt=>Vt!==_e)):oe([...ae,_e])))},style:vv({background:pt,borderColor:An},Et)},Ti.createElement("span",null,_e),yt&&Ti.createElement("i",{onClick:Vt=>{Vt.stopPropagation(),jt?Re(_e):a(b.filter(rn=>rn!==_e))},className:"iconfont icon-shanchu5"}))},ze=()=>{a([...ae]),z(!1)},Le=()=>Em(void 0,null,function*(){if(!le.replace(/\s+/g,"")){ye(`${Ne}\u4E0D\u80FD\u4E3A\u7A7A`);return}if(ee.includes(le)){ye(`\u8BE5${Ne}\u5DF2\u5B58\u5728\uFF0C\u8BF7\u52FF\u91CD\u590D\u6DFB\u52A0\uFF01`);return}Ee(!0);const _e=yield(0,Nt.ZP)("/api/knowledge_items.json",{method:"post",body:{subject_id:x,item_type:Fe,name:le}});if((_e==null?void 0:_e.status)===0){yield ke(),me(!1),nt.ZP.success("\u6DFB\u52A0\u6210\u529F");return}Ee(!1)});return Ti.createElement("div",{className:Du.tagsModal},y===1&&Ti.createElement(Ti.Fragment,null,b==null?void 0:b.map((_e,Et)=>Ti.createElement(Oe,{key:Et,title:_e,showDelete:!1,style:{marginRight:"20rem"}})),Ti.createElement("div",{onClick:()=>z(1),style:{marginBottom:"20rem"},className:Du.btn},Ti.createElement("i",{className:"iconfont icon-genghuanguanliyuan1"}),b!=null&&b.length?"\u66F4\u6362":"\u9009\u62E9","\u7C7B\u578B")),y===2&&Ti.createElement(Ti.Fragment,null,b==null?void 0:b.map((_e,Et)=>Ti.createElement(Oe,{key:Et,title:_e})),Ti.createElement("div",{onClick:()=>z(2),className:Du.btn,style:{marginBottom:"10rem"}},Ti.createElement("i",{className:"iconfont icon-tianjiatixing"}),b!=null&&b.length?"\u66F4\u6362":"\u9009\u62E9","\u6807\u7B7E")),Ti.createElement(rt.default,{open:!!E,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>z(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{me(!1),ye(""),de("")},onOk:ze,title:`\u9009\u62E9${Ne}`},Ti.createElement("div",{className:Du.modal},Ti.createElement(Mt.Z,{spinning:Ce},Ti.createElement("div",{className:Du.mHead},Ti.createElement("b",null),Ti.createElement("span",null,`\u8282\u70B9${Ne}`,"\uFF08",ee.length,"\uFF09"),Ti.createElement("div",{onClick:()=>{Ae||(me(!0),ye(""),de(""))},className:Du.btn},Ti.createElement("i",{className:"iconfont icon-tianjiatixing"}),"\u6DFB\u52A0")),Ti.createElement("div",{className:Du.body},!(ee!=null&&ee.length)&&!Ae&&Ti.createElement(Mo,{style:{height:"230rem"}}),ee==null?void 0:ee.map((_e,Et)=>Ti.createElement(Oe,{showDelete:!(ae!=null&&ae.includes(_e)),modal:!0,style:{cursor:"pointer",verticalAlign:"center",marginTop:"10rem",marginBottom:"10rem"},active:ae.includes(_e),key:Et,title:_e})),Ae&&Ti.createElement("div",{className:Du.add},Ti.createElement(ct.default,{style:{width:"rem"},size:"large",value:le,onChange:_e=>{ye(""),de(_e.target.value)}}),Ti.createElement("i",{onClick:Le,className:"iconfont icon-dui",style:{color:"#1B8565"}}),Ti.createElement("i",{onClick:()=>me(!1),className:"iconfont icon-shanchu10",style:{color:"#9096A3"}}),!!he&&Ti.createElement("div",{className:Du.error},he)))))))},ns={flex_box_center:"flex_box_center___X1Bk6",flex_space_between:"flex_space_between___uybt7",flex_box_vertical_center:"flex_box_vertical_center___eRrsT",flex_box_center_end:"flex_box_center_end___twuIC",flex_box_column:"flex_box_column___GZ7ID",tabs:"tabs___lQRiO",activied:"activied___xuukl",tab:"tab___BDDdU",content:"content___Njpry"},ks=Me(1560),ya=Me(75727),fl=Me(14566),fd=Me(54172),Lc=Me(46798),wm=Me(59301),Ey=Object.defineProperty,wy=Object.defineProperties,Av=Object.getOwnPropertyDescriptors,yv=Object.getOwnPropertySymbols,xv=Object.prototype.hasOwnProperty,Cy=Object.prototype.propertyIsEnumerable,wg=(b,a,y)=>a in b?Ey(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Cm=(b,a)=>{for(var y in a||(a={}))xv.call(a,y)&&wg(b,y,a[y]);if(yv)for(var y of yv(a))Cy.call(a,y)&&wg(b,y,a[y]);return b},Cg=(b,a)=>wy(b,Av(a)),NA=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const bv=(b,a)=>{const y=b.getParentData(a.id,"tree");return y?a.style.x>y.style.x?"right":"left":"center"},Pg=[3,2,1];let $f=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C"}];const LA=(b,a)=>{const y={};let x=null;return b.forEach(E=>{y[E.properties.uuid]=Cg(Cm({},E),{id:E.properties.uuid,children:[]})}),a.forEach(E=>{const z=y[E.startNodeUuid],ee=y[E.endNodeUuid];z&&(z.id=z.properties.uuid),z&&ee&&z.children.push(ee)}),b.forEach(E=>{!a.some(ee=>ee.endNodeUuid===E.properties.uuid)&&(x=y[E.properties.uuid])}),x};var vc=(0,fe.forwardRef)(({nodeUuid:b,subject_id:a,setshowdetail:y,setitems:x,setzoomsize:E},z)=>{const[ee,te]=(0,fe.useState)(!1),ne=(0,fe.useRef)(0),ie=(0,fe.useRef)(null),ae=(0,fe.useRef)();(0,fe.useEffect)(()=>{Ae()},[]);function oe(Ce){ae.current.zoomBy(Ce)}function le(){setTimeout(()=>{var Ce;E((((Ce=ae==null?void 0:ae.current)==null?void 0:Ce.getZoom())*100).toFixed(0))},300)}function de(Ce){var Ee;let Be=ae.current.getElementDataByState("node","selected");(Be==null?void 0:Be.length)>0&&ae.current.setElementState((Ee=Be==null?void 0:Be[0])==null?void 0:Ee.id,[""]),ae.current.setElementState(Ce,["selected"])}function he(Ce,Ee){try{const Be={},Ne={};ae.current.getEdgeData().map(Fe=>{Be[Fe.id]=Ce==="Enter"?"inactive":"active"}),ae.current.getNodeData().map(Fe=>{Ce==="Enter"?Ne[Fe.id]=Fe.colornodeType===Ee?"highlight":"inactive":Ne[Fe.id]="active"}),ae.current.setElementState(Be),ae.current.setElementState(Ne)}catch(Be){}}function ye(Ce,Ee){var Be;(Be=ae==null?void 0:ae.current)==null||Be.fitView(Ce,Ee)}(0,fe.useImperativeHandle)(z,()=>({zoomBy:oe,getData:Ae,selectall:de,onMouse:he,fitView:ye,getZooms:le}));const Ae=()=>NA(void 0,null,function*(){var Ce,Ee,Be,Ne,Fe,ke,Re,Oe,ze;te(!0);let Le=yield(0,Nt.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:b,subject_id:a,depth:-1,relationshipFilter:"\u5305\u542B>"}});te(!1);let _e=(Ee=(Ce=Le==null?void 0:Le.data)==null?void 0:Ce.nodes)==null?void 0:Ee.map(cn=>{var kt,pt,An,Vt,rn,Bn,hr,bt,on,dn,Qn,Un;return Cg(Cm({},cn==null?void 0:cn.properties),{rootNodeUuid:(kt=cn==null?void 0:cn.properties)==null?void 0:kt.rootNodeUuid,id:(pt=cn==null?void 0:cn.properties)==null?void 0:pt.uuid,name:(An=cn==null?void 0:cn.properties)==null?void 0:An.name,description:(Vt=cn==null?void 0:cn.properties)==null?void 0:Vt.description,nodeType:(rn=cn==null?void 0:cn.properties)==null?void 0:rn.nodeType,tags:((Bn=cn==null?void 0:cn.properties)==null?void 0:Bn.tags)&&((on=(bt=(hr=cn==null?void 0:cn.properties)==null?void 0:hr.tags)==null?void 0:bt.split("\uFF0C"))==null?void 0:on.map(Kn=>({name:Kn})))||[],colorType:parseInt((dn=cn==null?void 0:cn.properties)==null?void 0:dn.color)>3?"3":(Qn=cn==null?void 0:cn.properties)==null?void 0:Qn.color,activeColor:"#FA6400",size:Pg[((Un=cn==null?void 0:cn.properties)==null?void 0:Un.color)-1]||1,shape:"circle",hide:!1,isExtendedState:!0})}),Et=LA((Ne=(Be=Le==null?void 0:Le.data)==null?void 0:Be.nodes)==null?void 0:Ne.map((cn,kt)=>{var pt,An,Vt,rn,Bn;return Cg(Cm({},cn),{key:kt,title:(pt=cn==null?void 0:cn.properties)==null?void 0:pt.name,newcolor:parseInt((An=cn==null?void 0:cn.properties)==null?void 0:An.color)===1?"#CC7CF5":((Vt=$f==null?void 0:$f.find(hr=>{var bt;return(hr==null?void 0:hr.name)===((bt=cn==null?void 0:cn.properties)==null?void 0:bt.nodeType)}))==null?void 0:Vt.color)||"#2D947C",colornodeType:parseInt((rn=cn==null?void 0:cn.properties)==null?void 0:rn.color)===1?"\u6839\u8282\u70B9":((Bn=$f==null?void 0:$f.find(hr=>{var bt;return(hr==null?void 0:hr.name)===((bt=cn==null?void 0:cn.properties)==null?void 0:bt.nodeType)}))==null?void 0:Bn.name)||"\u5176\u4ED6"})}),(ke=(Fe=Le==null?void 0:Le.data)==null?void 0:Fe.relationships)==null?void 0:ke.filter(cn=>cn.type==="\u5305\u542B"));ae!=null&&ae.current&&((Re=ae==null?void 0:ae.current)==null||Re.destroy());let yt=(0,Lc.RN)(Et),jt=(Oe=yt.nodes)==null?void 0:Oe.filter((cn,kt,pt)=>kt===pt.findIndex(An=>An.id===cn.id)),tn=(ze=yt.edges)==null?void 0:ze.filter((cn,kt,pt)=>kt===pt.findIndex(An=>An.source===cn.source&&An.target===cn.target));me({nodes:jt,edges:tn},_e)}),me=(Ce,Ee)=>{var Be,Ne;ae.current=null,ae.current=new Lc.kJ({container:ie.current,autoResize:!0,autoFit:{type:((Be=Ce==null?void 0:Ce.nodes)==null?void 0:Be.length)>20?"view":"center",options:{direction:"both",when:"always"}},animation:!(((Ne=Ce==null?void 0:Ce.nodes)==null?void 0:Ne.length)>300),data:Ce,node:{style:{labelText:Fe=>Fe.title,labelFill:"#ffffff",fill:Fe=>Fe.newcolor,labelBackground:!1,labelPlacement:function(Fe){const ke=bv(this,Fe);return ke==="center"?"right":ke},halo:!0,haloStrokeOpacity:.5,haloLineWidth:10,ports:[{placement:"right"},{placement:"left"}]},animation:{enter:!1}},edge:{type:"cubic-horizontal",animation:{enter:!1}},layout:{type:"mindmap",direction:"H",getHeight:()=>32,getWidth:()=>32,getVGap:()=>4,getHGap:()=>64,getSide:Fe=>(ne.current++,ne.current%2==0?"left":"right")},behaviors:["drag-element",{type:"zoom-canvas",onFinish:()=>{setTimeout(()=>{var Fe;E((((Fe=ae==null?void 0:ae.current)==null?void 0:Fe.getZoom())*100).toFixed(0))},300)}},"collapse-expand","drag-canvas",{type:"click-select",state:"selected",onClick:Fe=>{let ke=Ee.filter(Re=>{var Oe,ze;return(Re==null?void 0:Re.id)===((ze=(Oe=Fe.target)==null?void 0:Oe.config)==null?void 0:ze.id)});if((ke==null?void 0:ke.length)===0){y(!1);return}x(ke==null?void 0:ke[0]),y(!0),Fe.view.setCursor("pointer")},multiple:!1}]}),ae.current.render(),setTimeout(()=>{var Fe;E((((Fe=ae==null?void 0:ae.current)==null?void 0:Fe.getZoom())*100).toFixed(0))},300)};return wm.createElement("div",{style:{height:"100%"}},wm.createElement(Mt.Z,{spinning:ee,className:"mt60 w100",tip:"\u52A0\u8F7D\u4E2D..."}),wm.createElement("div",{style:{height:"100%"},ref:ie}))});function OA(b,a){var y=b==null?null:typeof Symbol!="undefined"&&b[Symbol.iterator]||b["@@iterator"];if(y!=null){var x,E,z,ee,te=[],ne=!0,ie=!1;try{if(z=(y=y.call(b)).next,a===0){if(Object(y)!==y)return;ne=!1}else for(;!(ne=(x=z.call(y)).done)&&(te.push(x.value),te.length!==a);ne=!0);}catch(ae){ie=!0,E=ae}finally{try{if(!ne&&y.return!=null&&(ee=y.return(),Object(ee)!==ee))return}finally{if(ie)throw E}}return te}}function RA(b,a,y){return a=Pm(a),a in b?Object.defineProperty(b,a,{value:y,enumerable:!0,configurable:!0,writable:!0}):b[a]=y,b}function Sg(b,a){return hd(b)||OA(b,a)||hf(b,a)||zA()}function Ac(b){return $a(b)||eh(b)||hf(b)||Rd()}function $a(b){if(Array.isArray(b))return Mg(b)}function hd(b){if(Array.isArray(b))return b}function eh(b){if(typeof Symbol!="undefined"&&b[Symbol.iterator]!=null||b["@@iterator"]!=null)return Array.from(b)}function hf(b,a){if(b){if(typeof b=="string")return Mg(b,a);var y=Object.prototype.toString.call(b).slice(8,-1);if(y==="Object"&&b.constructor&&(y=b.constructor.name),y==="Map"||y==="Set")return Array.from(b);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return Mg(b,a)}}function Mg(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=new Array(a);yb.length)&&(a=b.length);for(var y=0,x=Array(a);y1&&arguments[1]!==void 0?arguments[1]:{},y=a.wrapperElementType,x=y===void 0?"div":y,E=a.nodeMapper,z=E===void 0?function(ae){return ae}:E,ee=a.methodNames,te=ee===void 0?[]:ee,ne=a.initPropNames,ie=ne===void 0?[]:ne;return(0,fe.forwardRef)(function(ae,oe){var le=(0,fe.useRef)(),de=(0,fe.useMemo)(function(){var Ae=Object.fromEntries(ie.filter(function(me){return ae.hasOwnProperty(me)}).map(function(me){return[me,ae[me]]}));return b(Ae)},[]);UA(function(){de(z(le.current))},fe.useLayoutEffect),UA(function(){return de._destructor instanceof Function?de._destructor:void 0});var he=(0,fe.useCallback)(function(Ae){for(var me=arguments.length,Ce=new Array(me>1?me-1:0),Ee=1;Ee1&&arguments[1]!==void 0?arguments[1]:fe.useEffect,y=(0,fe.useRef)(),x=(0,fe.useRef)(!1),E=(0,fe.useRef)(!1),z=(0,fe.useState)(0),ee=HA(z,2);ee[0];var te=ee[1];x.current&&(E.current=!0),a(function(){return x.current||(y.current=b(),x.current=!0),te(function(ne){return ne+1}),function(){E.current&&y.current&&y.current()}},[])}const pd="179",eu={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},pf={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},jA=0,Bm=1,Uh=2,VA=3,Lg=0,mf=1,nh=2,Tu=3,yc=0,co=1,eo=2,El=0,xc=1,jh=2,Ul=3,Oc=4,zd=5,pu=100,Sm=101,rh=102,ih=103,Bv=104,Yc=200,Og=201,gf=202,Vh=203,kd=204,Up=205,Rg=206,Mm=207,Gh=208,Xh=209,vf=210,Dm=211,GA=212,zg=213,XA=214,Jc=0,md=1,Af=2,sh=3,Tm=4,Im=5,kg=6,yf=7,jl=0,Fm=1,WA=2,bc=0,QA=1,Nm=2,Hg=3,Sv=4,By=5,ZA=6,YA=7,xf="attached",Lm="detached",Wh=300,Iu=301,gl=302,Qh=303,ah=304,Fu=306,Hd=1e3,Nu=1001,bf=1002,fo=1003,Ef=1004,JA=1004,mu=1005,KA=1005,Io=1006,gd=1007,Sy=1007,tu=1008,qA=1008,jo=1009,Zh=1010,Yh=1011,qu=1012,Vl=1013,Ao=1014,Vo=1015,vl=1016,Om=1017,Ug=1018,Ec=1020,jp=35902,Mv=1021,Jh=1022,yo=1023,gu=1026,Rc=1027,Kh=1028,Ud=1029,jd=1030,Vp=1031,My=1032,qh=1033,_h=33776,Kc=33777,wf=33778,vd=33779,Gp=35840,Rm=35841,zm=35842,Vd=35843,oh=36196,Cf=37492,Xp=37496,Wp=37808,$h=37809,po=37810,ep=37811,lh=37812,Ad=37813,_u=37814,yd=37815,uh=37816,tp=37817,np=37818,rp=37819,ip=37820,sp=37821,ap=36492,Qp=36494,op=36495,Qa=36283,Zp=36284,lp=36285,xd=36286,Dy=2200,jg=2201,Ty=2202,Ko=2300,km=2301,Vg=2302,ch=2400,bd=2401,re=2402,se=2500,ce=2501,ue=0,pe=1,be=2,Ie=3200,Ue=3201,Xe=3202,Ze=3203,wt=0,Rt=1,vn="",nn="srgb",sr="srgb-linear",Sr="linear",On="srgb",oi=0,fi=7680,ii=7681,ki=7682,Hs=7683,As=34055,ba=34056,wo=5386,Gl=512,$o=513,wc=514,$u=515,Al=516,ec=517,nu=518,el=519,tl=512,Go=513,vu=514,Pf=515,Gd=516,Nl=517,ge=518,ve=519,xe=35044,De=35048,Ve=35040,Ge=35045,Qe=35049,Je=35041,At=35046,zt=35050,Lt=35042,Bt="100",Dt="300 es",Ut=2e3,Sn=2001,jr={COMPUTE:"compute",RENDER:"render"},Qr={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},$r={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"};class li{addEventListener(a,y){this._listeners===void 0&&(this._listeners={});const x=this._listeners;x[a]===void 0&&(x[a]=[]),x[a].indexOf(y)===-1&&x[a].push(y)}hasEventListener(a,y){const x=this._listeners;return x===void 0?!1:x[a]!==void 0&&x[a].indexOf(y)!==-1}removeEventListener(a,y){const x=this._listeners;if(x===void 0)return;const E=x[a];if(E!==void 0){const z=E.indexOf(y);z!==-1&&E.splice(z,1)}}dispatchEvent(a){const y=this._listeners;if(y===void 0)return;const x=y[a.type];if(x!==void 0){a.target=this;const E=x.slice(0);for(let z=0,ee=E.length;z>8&255]+ci[b>>16&255]+ci[b>>24&255]+"-"+ci[a&255]+ci[a>>8&255]+"-"+ci[a>>16&15|64]+ci[a>>24&255]+"-"+ci[y&63|128]+ci[y>>8&255]+"-"+ci[y>>16&255]+ci[y>>24&255]+ci[x&255]+ci[x>>8&255]+ci[x>>16&255]+ci[x>>24&255]).toLowerCase()}function Yi(b,a,y){return Math.max(a,Math.min(y,b))}function Va(b,a){return(b%a+a)%a}function wl(b,a,y,x,E){return x+(b-a)*(E-x)/(y-a)}function Lu(b,a,y){return b!==a?(y-b)/(a-b):0}function Xl(b,a,y){return(1-y)*b+y*a}function dh(b,a,y,x){return Xl(b,a,1-Math.exp(-y*x))}function Bf(b,a=1){return a-Math.abs(Va(b,a*2)-a)}function Ed(b,a,y){return b<=a?0:b>=y?1:(b=(b-a)/(y-a),b*b*(3-2*b))}function fh(b,a,y){return b<=a?0:b>=y?1:(b=(b-a)/(y-a),b*b*b*(b*(b*6-15)+10))}function tc(b,a){return b+Math.floor(Math.random()*(a-b+1))}function Yp(b,a){return b+Math.random()*(a-b)}function hh(b){return b*(.5-Math.random())}function Dv(b){b!==void 0&&(_i=b);let a=_i+=1831565813;return a=Math.imul(a^a>>>15,a|1),a^=a+Math.imul(a^a>>>7,a|61),((a^a>>>14)>>>0)/4294967296}function Hm(b){return b*ia}function Jp(b){return b*qs}function ph(b){return(b&b-1)===0&&b!==0}function Um(b){return Math.pow(2,Math.ceil(Math.log(b)/Math.LN2))}function _A(b){return Math.pow(2,Math.floor(Math.log(b)/Math.LN2))}function mh(b,a,y,x,E){const z=Math.cos,ee=Math.sin,te=z(y/2),ne=ee(y/2),ie=z((a+x)/2),ae=ee((a+x)/2),oe=z((a-x)/2),le=ee((a-x)/2),de=z((x-a)/2),he=ee((x-a)/2);switch(E){case"XYX":b.set(te*ae,ne*oe,ne*le,te*ie);break;case"YZY":b.set(ne*le,te*ae,ne*oe,te*ie);break;case"ZXZ":b.set(ne*oe,ne*le,te*ae,te*ie);break;case"XZX":b.set(te*ae,ne*he,ne*de,te*ie);break;case"YXY":b.set(ne*de,te*ae,ne*he,te*ie);break;case"ZYZ":b.set(ne*he,ne*de,te*ae,te*ie);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+E)}}function Au(b,a){switch(a.constructor){case Float32Array:return b;case Uint32Array:return b/4294967295;case Uint16Array:return b/65535;case Uint8Array:return b/255;case Int32Array:return Math.max(b/2147483647,-1);case Int16Array:return Math.max(b/32767,-1);case Int8Array:return Math.max(b/127,-1);default:throw new Error("Invalid component type.")}}function Ea(b,a){switch(a.constructor){case Float32Array:return b;case Uint32Array:return Math.round(b*4294967295);case Uint16Array:return Math.round(b*65535);case Uint8Array:return Math.round(b*255);case Int32Array:return Math.round(b*2147483647);case Int16Array:return Math.round(b*32767);case Int8Array:return Math.round(b*127);default:throw new Error("Invalid component type.")}}const gh={DEG2RAD:ia,RAD2DEG:qs,generateUUID:sa,clamp:Yi,euclideanModulo:Va,mapLinear:wl,inverseLerp:Lu,lerp:Xl,damp:dh,pingpong:Bf,smoothstep:Ed,smootherstep:fh,randInt:tc,randFloat:Yp,randFloatSpread:hh,seededRandom:Dv,degToRad:Hm,radToDeg:Jp,isPowerOfTwo:ph,ceilPowerOfTwo:Um,floorPowerOfTwo:_A,setQuaternionFromProperEuler:mh,normalize:Ea,denormalize:Au};class tr{constructor(a=0,y=0){tr.prototype.isVector2=!0,this.x=a,this.y=y}get width(){return this.x}set width(a){this.x=a}get height(){return this.y}set height(a){this.y=a}set(a,y){return this.x=a,this.y=y,this}setScalar(a){return this.x=a,this.y=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setComponent(a,y){switch(a){case 0:this.x=y;break;case 1:this.y=y;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y)}copy(a){return this.x=a.x,this.y=a.y,this}add(a){return this.x+=a.x,this.y+=a.y,this}addScalar(a){return this.x+=a,this.y+=a,this}addVectors(a,y){return this.x=a.x+y.x,this.y=a.y+y.y,this}addScaledVector(a,y){return this.x+=a.x*y,this.y+=a.y*y,this}sub(a){return this.x-=a.x,this.y-=a.y,this}subScalar(a){return this.x-=a,this.y-=a,this}subVectors(a,y){return this.x=a.x-y.x,this.y=a.y-y.y,this}multiply(a){return this.x*=a.x,this.y*=a.y,this}multiplyScalar(a){return this.x*=a,this.y*=a,this}divide(a){return this.x/=a.x,this.y/=a.y,this}divideScalar(a){return this.multiplyScalar(1/a)}applyMatrix3(a){const y=this.x,x=this.y,E=a.elements;return this.x=E[0]*y+E[3]*x+E[6],this.y=E[1]*y+E[4]*x+E[7],this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this}clamp(a,y){return this.x=Yi(this.x,a.x,y.x),this.y=Yi(this.y,a.y,y.y),this}clampScalar(a,y){return this.x=Yi(this.x,a,y),this.y=Yi(this.y,a,y),this}clampLength(a,y){const x=this.length();return this.divideScalar(x||1).multiplyScalar(Yi(x,a,y))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(a){return this.x*a.x+this.y*a.y}cross(a){return this.x*a.y-this.y*a.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(a){const y=Math.sqrt(this.lengthSq()*a.lengthSq());if(y===0)return Math.PI/2;const x=this.dot(a)/y;return Math.acos(Yi(x,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const y=this.x-a.x,x=this.y-a.y;return y*y+x*x}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,y){return this.x+=(a.x-this.x)*y,this.y+=(a.y-this.y)*y,this}lerpVectors(a,y,x){return this.x=a.x+(y.x-a.x)*x,this.y=a.y+(y.y-a.y)*x,this}equals(a){return a.x===this.x&&a.y===this.y}fromArray(a,y=0){return this.x=a[y],this.y=a[y+1],this}toArray(a=[],y=0){return a[y]=this.x,a[y+1]=this.y,a}fromBufferAttribute(a,y){return this.x=a.getX(y),this.y=a.getY(y),this}rotateAround(a,y){const x=Math.cos(y),E=Math.sin(y),z=this.x-a.x,ee=this.y-a.y;return this.x=z*x-ee*E+a.x,this.y=z*E+ee*x+a.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ll{constructor(a=0,y=0,x=0,E=1){this.isQuaternion=!0,this._x=a,this._y=y,this._z=x,this._w=E}static slerpFlat(a,y,x,E,z,ee,te){let ne=x[E+0],ie=x[E+1],ae=x[E+2],oe=x[E+3];const le=z[ee+0],de=z[ee+1],he=z[ee+2],ye=z[ee+3];if(te===0){a[y+0]=ne,a[y+1]=ie,a[y+2]=ae,a[y+3]=oe;return}if(te===1){a[y+0]=le,a[y+1]=de,a[y+2]=he,a[y+3]=ye;return}if(oe!==ye||ne!==le||ie!==de||ae!==he){let Ae=1-te;const me=ne*le+ie*de+ae*he+oe*ye,Ce=me>=0?1:-1,Ee=1-me*me;if(Ee>Number.EPSILON){const Ne=Math.sqrt(Ee),Fe=Math.atan2(Ne,me*Ce);Ae=Math.sin(Ae*Fe)/Ne,te=Math.sin(te*Fe)/Ne}const Be=te*Ce;if(ne=ne*Ae+le*Be,ie=ie*Ae+de*Be,ae=ae*Ae+he*Be,oe=oe*Ae+ye*Be,Ae===1-te){const Ne=1/Math.sqrt(ne*ne+ie*ie+ae*ae+oe*oe);ne*=Ne,ie*=Ne,ae*=Ne,oe*=Ne}}a[y]=ne,a[y+1]=ie,a[y+2]=ae,a[y+3]=oe}static multiplyQuaternionsFlat(a,y,x,E,z,ee){const te=x[E],ne=x[E+1],ie=x[E+2],ae=x[E+3],oe=z[ee],le=z[ee+1],de=z[ee+2],he=z[ee+3];return a[y]=te*he+ae*oe+ne*de-ie*le,a[y+1]=ne*he+ae*le+ie*oe-te*de,a[y+2]=ie*he+ae*de+te*le-ne*oe,a[y+3]=ae*he-te*oe-ne*le-ie*de,a}get x(){return this._x}set x(a){this._x=a,this._onChangeCallback()}get y(){return this._y}set y(a){this._y=a,this._onChangeCallback()}get z(){return this._z}set z(a){this._z=a,this._onChangeCallback()}get w(){return this._w}set w(a){this._w=a,this._onChangeCallback()}set(a,y,x,E){return this._x=a,this._y=y,this._z=x,this._w=E,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(a){return this._x=a.x,this._y=a.y,this._z=a.z,this._w=a.w,this._onChangeCallback(),this}setFromEuler(a,y=!0){const x=a._x,E=a._y,z=a._z,ee=a._order,te=Math.cos,ne=Math.sin,ie=te(x/2),ae=te(E/2),oe=te(z/2),le=ne(x/2),de=ne(E/2),he=ne(z/2);switch(ee){case"XYZ":this._x=le*ae*oe+ie*de*he,this._y=ie*de*oe-le*ae*he,this._z=ie*ae*he+le*de*oe,this._w=ie*ae*oe-le*de*he;break;case"YXZ":this._x=le*ae*oe+ie*de*he,this._y=ie*de*oe-le*ae*he,this._z=ie*ae*he-le*de*oe,this._w=ie*ae*oe+le*de*he;break;case"ZXY":this._x=le*ae*oe-ie*de*he,this._y=ie*de*oe+le*ae*he,this._z=ie*ae*he+le*de*oe,this._w=ie*ae*oe-le*de*he;break;case"ZYX":this._x=le*ae*oe-ie*de*he,this._y=ie*de*oe+le*ae*he,this._z=ie*ae*he-le*de*oe,this._w=ie*ae*oe+le*de*he;break;case"YZX":this._x=le*ae*oe+ie*de*he,this._y=ie*de*oe+le*ae*he,this._z=ie*ae*he-le*de*oe,this._w=ie*ae*oe-le*de*he;break;case"XZY":this._x=le*ae*oe-ie*de*he,this._y=ie*de*oe-le*ae*he,this._z=ie*ae*he+le*de*oe,this._w=ie*ae*oe+le*de*he;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+ee)}return y===!0&&this._onChangeCallback(),this}setFromAxisAngle(a,y){const x=y/2,E=Math.sin(x);return this._x=a.x*E,this._y=a.y*E,this._z=a.z*E,this._w=Math.cos(x),this._onChangeCallback(),this}setFromRotationMatrix(a){const y=a.elements,x=y[0],E=y[4],z=y[8],ee=y[1],te=y[5],ne=y[9],ie=y[2],ae=y[6],oe=y[10],le=x+te+oe;if(le>0){const de=.5/Math.sqrt(le+1);this._w=.25/de,this._x=(ae-ne)*de,this._y=(z-ie)*de,this._z=(ee-E)*de}else if(x>te&&x>oe){const de=2*Math.sqrt(1+x-te-oe);this._w=(ae-ne)/de,this._x=.25*de,this._y=(E+ee)/de,this._z=(z+ie)/de}else if(te>oe){const de=2*Math.sqrt(1+te-x-oe);this._w=(z-ie)/de,this._x=(E+ee)/de,this._y=.25*de,this._z=(ne+ae)/de}else{const de=2*Math.sqrt(1+oe-x-te);this._w=(ee-E)/de,this._x=(z+ie)/de,this._y=(ne+ae)/de,this._z=.25*de}return this._onChangeCallback(),this}setFromUnitVectors(a,y){let x=a.dot(y)+1;return x<1e-8?(x=0,Math.abs(a.x)>Math.abs(a.z)?(this._x=-a.y,this._y=a.x,this._z=0,this._w=x):(this._x=0,this._y=-a.z,this._z=a.y,this._w=x)):(this._x=a.y*y.z-a.z*y.y,this._y=a.z*y.x-a.x*y.z,this._z=a.x*y.y-a.y*y.x,this._w=x),this.normalize()}angleTo(a){return 2*Math.acos(Math.abs(Yi(this.dot(a),-1,1)))}rotateTowards(a,y){const x=this.angleTo(a);if(x===0)return this;const E=Math.min(1,y/x);return this.slerp(a,E),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let a=this.length();return a===0?(this._x=0,this._y=0,this._z=0,this._w=1):(a=1/a,this._x=this._x*a,this._y=this._y*a,this._z=this._z*a,this._w=this._w*a),this._onChangeCallback(),this}multiply(a){return this.multiplyQuaternions(this,a)}premultiply(a){return this.multiplyQuaternions(a,this)}multiplyQuaternions(a,y){const x=a._x,E=a._y,z=a._z,ee=a._w,te=y._x,ne=y._y,ie=y._z,ae=y._w;return this._x=x*ae+ee*te+E*ie-z*ne,this._y=E*ae+ee*ne+z*te-x*ie,this._z=z*ae+ee*ie+x*ne-E*te,this._w=ee*ae-x*te-E*ne-z*ie,this._onChangeCallback(),this}slerp(a,y){if(y===0)return this;if(y===1)return this.copy(a);const x=this._x,E=this._y,z=this._z,ee=this._w;let te=ee*a._w+x*a._x+E*a._y+z*a._z;if(te<0?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,te=-te):this.copy(a),te>=1)return this._w=ee,this._x=x,this._y=E,this._z=z,this;const ne=1-te*te;if(ne<=Number.EPSILON){const de=1-y;return this._w=de*ee+y*this._w,this._x=de*x+y*this._x,this._y=de*E+y*this._y,this._z=de*z+y*this._z,this.normalize(),this}const ie=Math.sqrt(ne),ae=Math.atan2(ie,te),oe=Math.sin((1-y)*ae)/ie,le=Math.sin(y*ae)/ie;return this._w=ee*oe+this._w*le,this._x=x*oe+this._x*le,this._y=E*oe+this._y*le,this._z=z*oe+this._z*le,this._onChangeCallback(),this}slerpQuaternions(a,y,x){return this.copy(a).slerp(y,x)}random(){const a=2*Math.PI*Math.random(),y=2*Math.PI*Math.random(),x=Math.random(),E=Math.sqrt(1-x),z=Math.sqrt(x);return this.set(E*Math.sin(a),E*Math.cos(a),z*Math.sin(y),z*Math.cos(y))}equals(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w}fromArray(a,y=0){return this._x=a[y],this._y=a[y+1],this._z=a[y+2],this._w=a[y+3],this._onChangeCallback(),this}toArray(a=[],y=0){return a[y]=this._x,a[y+1]=this._y,a[y+2]=this._z,a[y+3]=this._w,a}fromBufferAttribute(a,y){return this._x=a.getX(y),this._y=a.getY(y),this._z=a.getZ(y),this._w=a.getW(y),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(a){return this._onChangeCallback=a,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class ot{constructor(a=0,y=0,x=0){ot.prototype.isVector3=!0,this.x=a,this.y=y,this.z=x}set(a,y,x){return x===void 0&&(x=this.z),this.x=a,this.y=y,this.z=x,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setComponent(a,y){switch(a){case 0:this.x=y;break;case 1:this.y=y;break;case 2:this.z=y;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this}addVectors(a,y){return this.x=a.x+y.x,this.y=a.y+y.y,this.z=a.z+y.z,this}addScaledVector(a,y){return this.x+=a.x*y,this.y+=a.y*y,this.z+=a.z*y,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this}subVectors(a,y){return this.x=a.x-y.x,this.y=a.y-y.y,this.z=a.z-y.z,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this}multiplyVectors(a,y){return this.x=a.x*y.x,this.y=a.y*y.y,this.z=a.z*y.z,this}applyEuler(a){return this.applyQuaternion(Tv.setFromEuler(a))}applyAxisAngle(a,y){return this.applyQuaternion(Tv.setFromAxisAngle(a,y))}applyMatrix3(a){const y=this.x,x=this.y,E=this.z,z=a.elements;return this.x=z[0]*y+z[3]*x+z[6]*E,this.y=z[1]*y+z[4]*x+z[7]*E,this.z=z[2]*y+z[5]*x+z[8]*E,this}applyNormalMatrix(a){return this.applyMatrix3(a).normalize()}applyMatrix4(a){const y=this.x,x=this.y,E=this.z,z=a.elements,ee=1/(z[3]*y+z[7]*x+z[11]*E+z[15]);return this.x=(z[0]*y+z[4]*x+z[8]*E+z[12])*ee,this.y=(z[1]*y+z[5]*x+z[9]*E+z[13])*ee,this.z=(z[2]*y+z[6]*x+z[10]*E+z[14])*ee,this}applyQuaternion(a){const y=this.x,x=this.y,E=this.z,z=a.x,ee=a.y,te=a.z,ne=a.w,ie=2*(ee*E-te*x),ae=2*(te*y-z*E),oe=2*(z*x-ee*y);return this.x=y+ne*ie+ee*oe-te*ae,this.y=x+ne*ae+te*ie-z*oe,this.z=E+ne*oe+z*ae-ee*ie,this}project(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)}unproject(a){return this.applyMatrix4(a.projectionMatrixInverse).applyMatrix4(a.matrixWorld)}transformDirection(a){const y=this.x,x=this.y,E=this.z,z=a.elements;return this.x=z[0]*y+z[4]*x+z[8]*E,this.y=z[1]*y+z[5]*x+z[9]*E,this.z=z[2]*y+z[6]*x+z[10]*E,this.normalize()}divide(a){return this.x/=a.x,this.y/=a.y,this.z/=a.z,this}divideScalar(a){return this.multiplyScalar(1/a)}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this}clamp(a,y){return this.x=Yi(this.x,a.x,y.x),this.y=Yi(this.y,a.y,y.y),this.z=Yi(this.z,a.z,y.z),this}clampScalar(a,y){return this.x=Yi(this.x,a,y),this.y=Yi(this.y,a,y),this.z=Yi(this.z,a,y),this}clampLength(a,y){const x=this.length();return this.divideScalar(x||1).multiplyScalar(Yi(x,a,y))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,y){return this.x+=(a.x-this.x)*y,this.y+=(a.y-this.y)*y,this.z+=(a.z-this.z)*y,this}lerpVectors(a,y,x){return this.x=a.x+(y.x-a.x)*x,this.y=a.y+(y.y-a.y)*x,this.z=a.z+(y.z-a.z)*x,this}cross(a){return this.crossVectors(this,a)}crossVectors(a,y){const x=a.x,E=a.y,z=a.z,ee=y.x,te=y.y,ne=y.z;return this.x=E*ne-z*te,this.y=z*ee-x*ne,this.z=x*te-E*ee,this}projectOnVector(a){const y=a.lengthSq();if(y===0)return this.set(0,0,0);const x=a.dot(this)/y;return this.copy(a).multiplyScalar(x)}projectOnPlane(a){return Iy.copy(this).projectOnVector(a),this.sub(Iy)}reflect(a){return this.sub(Iy.copy(a).multiplyScalar(2*this.dot(a)))}angleTo(a){const y=Math.sqrt(this.lengthSq()*a.lengthSq());if(y===0)return Math.PI/2;const x=this.dot(a)/y;return Math.acos(Yi(x,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const y=this.x-a.x,x=this.y-a.y,E=this.z-a.z;return y*y+x*x+E*E}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)}setFromSpherical(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)}setFromSphericalCoords(a,y,x){const E=Math.sin(y)*a;return this.x=E*Math.sin(x),this.y=Math.cos(y)*a,this.z=E*Math.cos(x),this}setFromCylindrical(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)}setFromCylindricalCoords(a,y,x){return this.x=a*Math.sin(y),this.y=x,this.z=a*Math.cos(y),this}setFromMatrixPosition(a){const y=a.elements;return this.x=y[12],this.y=y[13],this.z=y[14],this}setFromMatrixScale(a){const y=this.setFromMatrixColumn(a,0).length(),x=this.setFromMatrixColumn(a,1).length(),E=this.setFromMatrixColumn(a,2).length();return this.x=y,this.y=x,this.z=E,this}setFromMatrixColumn(a,y){return this.fromArray(a.elements,y*4)}setFromMatrix3Column(a,y){return this.fromArray(a.elements,y*3)}setFromEuler(a){return this.x=a._x,this.y=a._y,this.z=a._z,this}setFromColor(a){return this.x=a.r,this.y=a.g,this.z=a.b,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z}fromArray(a,y=0){return this.x=a[y],this.y=a[y+1],this.z=a[y+2],this}toArray(a=[],y=0){return a[y]=this.x,a[y+1]=this.y,a[y+2]=this.z,a}fromBufferAttribute(a,y){return this.x=a.getX(y),this.y=a.getY(y),this.z=a.getZ(y),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const a=Math.random()*Math.PI*2,y=Math.random()*2-1,x=Math.sqrt(1-y*y);return this.x=x*Math.cos(a),this.y=y,this.z=x*Math.sin(a),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Iy=new ot,Tv=new Ll;class Aa{constructor(a,y,x,E,z,ee,te,ne,ie){Aa.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],a!==void 0&&this.set(a,y,x,E,z,ee,te,ne,ie)}set(a,y,x,E,z,ee,te,ne,ie){const ae=this.elements;return ae[0]=a,ae[1]=E,ae[2]=te,ae[3]=y,ae[4]=z,ae[5]=ne,ae[6]=x,ae[7]=ee,ae[8]=ie,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(a){const y=this.elements,x=a.elements;return y[0]=x[0],y[1]=x[1],y[2]=x[2],y[3]=x[3],y[4]=x[4],y[5]=x[5],y[6]=x[6],y[7]=x[7],y[8]=x[8],this}extractBasis(a,y,x){return a.setFromMatrix3Column(this,0),y.setFromMatrix3Column(this,1),x.setFromMatrix3Column(this,2),this}setFromMatrix4(a){const y=a.elements;return this.set(y[0],y[4],y[8],y[1],y[5],y[9],y[2],y[6],y[10]),this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,y){const x=a.elements,E=y.elements,z=this.elements,ee=x[0],te=x[3],ne=x[6],ie=x[1],ae=x[4],oe=x[7],le=x[2],de=x[5],he=x[8],ye=E[0],Ae=E[3],me=E[6],Ce=E[1],Ee=E[4],Be=E[7],Ne=E[2],Fe=E[5],ke=E[8];return z[0]=ee*ye+te*Ce+ne*Ne,z[3]=ee*Ae+te*Ee+ne*Fe,z[6]=ee*me+te*Be+ne*ke,z[1]=ie*ye+ae*Ce+oe*Ne,z[4]=ie*Ae+ae*Ee+oe*Fe,z[7]=ie*me+ae*Be+oe*ke,z[2]=le*ye+de*Ce+he*Ne,z[5]=le*Ae+de*Ee+he*Fe,z[8]=le*me+de*Be+he*ke,this}multiplyScalar(a){const y=this.elements;return y[0]*=a,y[3]*=a,y[6]*=a,y[1]*=a,y[4]*=a,y[7]*=a,y[2]*=a,y[5]*=a,y[8]*=a,this}determinant(){const a=this.elements,y=a[0],x=a[1],E=a[2],z=a[3],ee=a[4],te=a[5],ne=a[6],ie=a[7],ae=a[8];return y*ee*ae-y*te*ie-x*z*ae+x*te*ne+E*z*ie-E*ee*ne}invert(){const a=this.elements,y=a[0],x=a[1],E=a[2],z=a[3],ee=a[4],te=a[5],ne=a[6],ie=a[7],ae=a[8],oe=ae*ee-te*ie,le=te*ne-ae*z,de=ie*z-ee*ne,he=y*oe+x*le+E*de;if(he===0)return this.set(0,0,0,0,0,0,0,0,0);const ye=1/he;return a[0]=oe*ye,a[1]=(E*ie-ae*x)*ye,a[2]=(te*x-E*ee)*ye,a[3]=le*ye,a[4]=(ae*y-E*ne)*ye,a[5]=(E*z-te*y)*ye,a[6]=de*ye,a[7]=(x*ne-ie*y)*ye,a[8]=(ee*y-x*z)*ye,this}transpose(){let a;const y=this.elements;return a=y[1],y[1]=y[3],y[3]=a,a=y[2],y[2]=y[6],y[6]=a,a=y[5],y[5]=y[7],y[7]=a,this}getNormalMatrix(a){return this.setFromMatrix4(a).invert().transpose()}transposeIntoArray(a){const y=this.elements;return a[0]=y[0],a[1]=y[3],a[2]=y[6],a[3]=y[1],a[4]=y[4],a[5]=y[7],a[6]=y[2],a[7]=y[5],a[8]=y[8],this}setUvTransform(a,y,x,E,z,ee,te){const ne=Math.cos(z),ie=Math.sin(z);return this.set(x*ne,x*ie,-x*(ne*ee+ie*te)+ee+a,-E*ie,E*ne,-E*(-ie*ee+ne*te)+te+y,0,0,1),this}scale(a,y){return this.premultiply($A.makeScale(a,y)),this}rotate(a){return this.premultiply($A.makeRotation(-a)),this}translate(a,y){return this.premultiply($A.makeTranslation(a,y)),this}makeTranslation(a,y){return a.isVector2?this.set(1,0,a.x,0,1,a.y,0,0,1):this.set(1,0,a,0,1,y,0,0,1),this}makeRotation(a){const y=Math.cos(a),x=Math.sin(a);return this.set(y,-x,0,x,y,0,0,0,1),this}makeScale(a,y){return this.set(a,0,0,0,y,0,0,0,1),this}equals(a){const y=this.elements,x=a.elements;for(let E=0;E<9;E++)if(y[E]!==x[E])return!1;return!0}fromArray(a,y=0){for(let x=0;x<9;x++)this.elements[x]=a[x+y];return this}toArray(a=[],y=0){const x=this.elements;return a[y]=x[0],a[y+1]=x[1],a[y+2]=x[2],a[y+3]=x[3],a[y+4]=x[4],a[y+5]=x[5],a[y+6]=x[6],a[y+7]=x[7],a[y+8]=x[8],a}clone(){return new this.constructor().fromArray(this.elements)}}const $A=new Aa;function Iv(b){for(let a=b.length-1;a>=0;--a)if(b[a]>=65535)return!0;return!1}const e0={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function jm(b,a){return new e0[b](a)}function Vm(b){return document.createElementNS("http://www.w3.org/1999/xhtml",b)}function t0(){const b=Vm("canvas");return b.style.display="block",b}const eE={};function Ou(b){b in eE||(eE[b]=!0,console.warn(b))}function Fy(b,a,y){return new Promise(function(x,E){function z(){switch(b.clientWaitSync(a,b.SYNC_FLUSH_COMMANDS_BIT,0)){case b.WAIT_FAILED:E();break;case b.TIMEOUT_EXPIRED:setTimeout(z,y);break;default:x()}}setTimeout(z,y)})}const s5=new Aa().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),a5=new Aa().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function YL(){const b={enabled:!0,workingColorSpace:sr,spaces:{},convert:function(E,z,ee){return this.enabled===!1||z===ee||!z||!ee||(this.spaces[z].transfer===On&&(E.r=Gm(E.r),E.g=Gm(E.g),E.b=Gm(E.b)),this.spaces[z].primaries!==this.spaces[ee].primaries&&(E.applyMatrix3(this.spaces[z].toXYZ),E.applyMatrix3(this.spaces[ee].fromXYZ)),this.spaces[ee].transfer===On&&(E.r=n0(E.r),E.g=n0(E.g),E.b=n0(E.b))),E},workingToColorSpace:function(E,z){return this.convert(E,this.workingColorSpace,z)},colorSpaceToWorking:function(E,z){return this.convert(E,z,this.workingColorSpace)},getPrimaries:function(E){return this.spaces[E].primaries},getTransfer:function(E){return E===vn?Sr:this.spaces[E].transfer},getLuminanceCoefficients:function(E,z=this.workingColorSpace){return E.fromArray(this.spaces[z].luminanceCoefficients)},define:function(E){Object.assign(this.spaces,E)},_getMatrix:function(E,z,ee){return E.copy(this.spaces[z].toXYZ).multiply(this.spaces[ee].fromXYZ)},_getDrawingBufferColorSpace:function(E){return this.spaces[E].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(E=this.workingColorSpace){return this.spaces[E].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(E,z){return Ou("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),b.workingToColorSpace(E,z)},toWorkingColorSpace:function(E,z){return Ou("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),b.colorSpaceToWorking(E,z)}},a=[.64,.33,.3,.6,.15,.06],y=[.2126,.7152,.0722],x=[.3127,.329];return b.define({[sr]:{primaries:a,whitePoint:x,transfer:Sr,toXYZ:s5,fromXYZ:a5,luminanceCoefficients:y,workingColorSpaceConfig:{unpackColorSpace:nn},outputColorSpaceConfig:{drawingBufferColorSpace:nn}},[nn]:{primaries:a,whitePoint:x,transfer:On,toXYZ:s5,fromXYZ:a5,luminanceCoefficients:y,outputColorSpaceConfig:{drawingBufferColorSpace:nn}}}),b}const aa=YL();function Gm(b){return b<.04045?b*.0773993808:Math.pow(b*.9478672986+.0521327014,2.4)}function n0(b){return b<.0031308?b*12.92:1.055*Math.pow(b,.41666)-.055}let r0;class JL{static getDataURL(a,y="image/png"){if(/^data:/i.test(a.src)||typeof HTMLCanvasElement=="undefined")return a.src;let x;if(a instanceof HTMLCanvasElement)x=a;else{r0===void 0&&(r0=Vm("canvas")),r0.width=a.width,r0.height=a.height;const E=r0.getContext("2d");a instanceof ImageData?E.putImageData(a,0,0):E.drawImage(a,0,0,a.width,a.height),x=r0}return x.toDataURL(y)}static sRGBToLinear(a){if(typeof HTMLImageElement!="undefined"&&a instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&a instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&a instanceof ImageBitmap){const y=Vm("canvas");y.width=a.width,y.height=a.height;const x=y.getContext("2d");x.drawImage(a,0,0,a.width,a.height);const E=x.getImageData(0,0,a.width,a.height),z=E.data;for(let ee=0;ee1),this.pmremVersion=0}get width(){return this.source.getSize(vC).x}get height(){return this.source.getSize(vC).y}get depth(){return this.source.getSize(vC).z}get image(){return this.source.data}set image(a=null){this.source.data=a}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(a,y){this.updateRanges.push({start:a,count:y})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(a){return this.name=a.name,this.source=a.source,this.mipmaps=a.mipmaps.slice(0),this.mapping=a.mapping,this.channel=a.channel,this.wrapS=a.wrapS,this.wrapT=a.wrapT,this.magFilter=a.magFilter,this.minFilter=a.minFilter,this.anisotropy=a.anisotropy,this.format=a.format,this.internalFormat=a.internalFormat,this.type=a.type,this.offset.copy(a.offset),this.repeat.copy(a.repeat),this.center.copy(a.center),this.rotation=a.rotation,this.matrixAutoUpdate=a.matrixAutoUpdate,this.matrix.copy(a.matrix),this.generateMipmaps=a.generateMipmaps,this.premultiplyAlpha=a.premultiplyAlpha,this.flipY=a.flipY,this.unpackAlignment=a.unpackAlignment,this.colorSpace=a.colorSpace,this.renderTarget=a.renderTarget,this.isRenderTargetTexture=a.isRenderTargetTexture,this.isArrayTexture=a.isArrayTexture,this.userData=JSON.parse(JSON.stringify(a.userData)),this.needsUpdate=!0,this}setValues(a){for(const y in a){const x=a[y];if(x===void 0){console.warn(`THREE.Texture.setValues(): parameter '${y}' has value of undefined.`);continue}const E=this[y];if(E===void 0){console.warn(`THREE.Texture.setValues(): property '${y}' does not exist.`);continue}E&&x&&E.isVector2&&x.isVector2||E&&x&&E.isVector3&&x.isVector3||E&&x&&E.isMatrix3&&x.isMatrix3?E.copy(x):this[y]=x}}toJSON(a){const y=a===void 0||typeof a=="string";if(!y&&a.textures[this.uuid]!==void 0)return a.textures[this.uuid];const x={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(a).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(x.userData=this.userData),y||(a.textures[this.uuid]=x),x}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(a){if(this.mapping!==Wh)return a;if(a.applyMatrix3(this.matrix),a.x<0||a.x>1)switch(this.wrapS){case Hd:a.x=a.x-Math.floor(a.x);break;case Nu:a.x=a.x<0?0:1;break;case bf:Math.abs(Math.floor(a.x)%2)===1?a.x=Math.ceil(a.x)-a.x:a.x=a.x-Math.floor(a.x);break}if(a.y<0||a.y>1)switch(this.wrapT){case Hd:a.y=a.y-Math.floor(a.y);break;case Nu:a.y=a.y<0?0:1;break;case bf:Math.abs(Math.floor(a.y)%2)===1?a.y=Math.ceil(a.y)-a.y:a.y=a.y-Math.floor(a.y);break}return this.flipY&&(a.y=1-a.y),a}set needsUpdate(a){a===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(a){a===!0&&this.pmremVersion++}}yu.DEFAULT_IMAGE=null,yu.DEFAULT_MAPPING=Wh,yu.DEFAULT_ANISOTROPY=1;class Ws{constructor(a=0,y=0,x=0,E=1){Ws.prototype.isVector4=!0,this.x=a,this.y=y,this.z=x,this.w=E}get width(){return this.z}set width(a){this.z=a}get height(){return this.w}set height(a){this.w=a}set(a,y,x,E){return this.x=a,this.y=y,this.z=x,this.w=E,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this.w=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setW(a){return this.w=a,this}setComponent(a,y){switch(a){case 0:this.x=y;break;case 1:this.y=y;break;case 2:this.z=y;break;case 3:this.w=y;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this.w=a.w!==void 0?a.w:1,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this.w+=a.w,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this.w+=a,this}addVectors(a,y){return this.x=a.x+y.x,this.y=a.y+y.y,this.z=a.z+y.z,this.w=a.w+y.w,this}addScaledVector(a,y){return this.x+=a.x*y,this.y+=a.y*y,this.z+=a.z*y,this.w+=a.w*y,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this.w-=a.w,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this.w-=a,this}subVectors(a,y){return this.x=a.x-y.x,this.y=a.y-y.y,this.z=a.z-y.z,this.w=a.w-y.w,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this.w*=a.w,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this.w*=a,this}applyMatrix4(a){const y=this.x,x=this.y,E=this.z,z=this.w,ee=a.elements;return this.x=ee[0]*y+ee[4]*x+ee[8]*E+ee[12]*z,this.y=ee[1]*y+ee[5]*x+ee[9]*E+ee[13]*z,this.z=ee[2]*y+ee[6]*x+ee[10]*E+ee[14]*z,this.w=ee[3]*y+ee[7]*x+ee[11]*E+ee[15]*z,this}divide(a){return this.x/=a.x,this.y/=a.y,this.z/=a.z,this.w/=a.w,this}divideScalar(a){return this.multiplyScalar(1/a)}setAxisAngleFromQuaternion(a){this.w=2*Math.acos(a.w);const y=Math.sqrt(1-a.w*a.w);return y<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=a.x/y,this.y=a.y/y,this.z=a.z/y),this}setAxisAngleFromRotationMatrix(a){let y,x,E,z;const ne=a.elements,ie=ne[0],ae=ne[4],oe=ne[8],le=ne[1],de=ne[5],he=ne[9],ye=ne[2],Ae=ne[6],me=ne[10];if(Math.abs(ae-le)<.01&&Math.abs(oe-ye)<.01&&Math.abs(he-Ae)<.01){if(Math.abs(ae+le)<.1&&Math.abs(oe+ye)<.1&&Math.abs(he+Ae)<.1&&Math.abs(ie+de+me-3)<.1)return this.set(1,0,0,0),this;y=Math.PI;const Ee=(ie+1)/2,Be=(de+1)/2,Ne=(me+1)/2,Fe=(ae+le)/4,ke=(oe+ye)/4,Re=(he+Ae)/4;return Ee>Be&&Ee>Ne?Ee<.01?(x=0,E=.707106781,z=.707106781):(x=Math.sqrt(Ee),E=Fe/x,z=ke/x):Be>Ne?Be<.01?(x=.707106781,E=0,z=.707106781):(E=Math.sqrt(Be),x=Fe/E,z=Re/E):Ne<.01?(x=.707106781,E=.707106781,z=0):(z=Math.sqrt(Ne),x=ke/z,E=Re/z),this.set(x,E,z,y),this}let Ce=Math.sqrt((Ae-he)*(Ae-he)+(oe-ye)*(oe-ye)+(le-ae)*(le-ae));return Math.abs(Ce)<.001&&(Ce=1),this.x=(Ae-he)/Ce,this.y=(oe-ye)/Ce,this.z=(le-ae)/Ce,this.w=Math.acos((ie+de+me-1)/2),this}setFromMatrixPosition(a){const y=a.elements;return this.x=y[12],this.y=y[13],this.z=y[14],this.w=y[15],this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this.w=Math.min(this.w,a.w),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this.w=Math.max(this.w,a.w),this}clamp(a,y){return this.x=Yi(this.x,a.x,y.x),this.y=Yi(this.y,a.y,y.y),this.z=Yi(this.z,a.z,y.z),this.w=Yi(this.w,a.w,y.w),this}clampScalar(a,y){return this.x=Yi(this.x,a,y),this.y=Yi(this.y,a,y),this.z=Yi(this.z,a,y),this.w=Yi(this.w,a,y),this}clampLength(a,y){const x=this.length();return this.divideScalar(x||1).multiplyScalar(Yi(x,a,y))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,y){return this.x+=(a.x-this.x)*y,this.y+=(a.y-this.y)*y,this.z+=(a.z-this.z)*y,this.w+=(a.w-this.w)*y,this}lerpVectors(a,y,x){return this.x=a.x+(y.x-a.x)*x,this.y=a.y+(y.y-a.y)*x,this.z=a.z+(y.z-a.z)*x,this.w=a.w+(y.w-a.w)*x,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w}fromArray(a,y=0){return this.x=a[y],this.y=a[y+1],this.z=a[y+2],this.w=a[y+3],this}toArray(a=[],y=0){return a[y]=this.x,a[y+1]=this.y,a[y+2]=this.z,a[y+3]=this.w,a}fromBufferAttribute(a,y){return this.x=a.getX(y),this.y=a.getY(y),this.z=a.getZ(y),this.w=a.getW(y),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Xm extends li{constructor(a=1,y=1,x={}){super(),x=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Io,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},x),this.isRenderTarget=!0,this.width=a,this.height=y,this.depth=x.depth,this.scissor=new Ws(0,0,a,y),this.scissorTest=!1,this.viewport=new Ws(0,0,a,y);const E={width:a,height:y,depth:x.depth},z=new yu(E);this.textures=[];const ee=x.count;for(let te=0;te1;this.dispose()}this.viewport.set(0,0,a,y),this.scissor.set(0,0,a,y)}clone(){return new this.constructor().copy(this)}copy(a){this.width=a.width,this.height=a.height,this.depth=a.depth,this.scissor.copy(a.scissor),this.scissorTest=a.scissorTest,this.viewport.copy(a.viewport),this.textures.length=0;for(let y=0,x=a.textures.length;y=this.min.x&&a.x<=this.max.x&&a.y>=this.min.y&&a.y<=this.max.y&&a.z>=this.min.z&&a.z<=this.max.z}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z}getParameter(a,y){return y.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(a){return a.max.x>=this.min.x&&a.min.x<=this.max.x&&a.max.y>=this.min.y&&a.min.y<=this.max.y&&a.max.z>=this.min.z&&a.min.z<=this.max.z}intersectsSphere(a){return this.clampPoint(a.center,up),up.distanceToSquared(a.center)<=a.radius*a.radius}intersectsPlane(a){let y,x;return a.normal.x>0?(y=a.normal.x*this.min.x,x=a.normal.x*this.max.x):(y=a.normal.x*this.max.x,x=a.normal.x*this.min.x),a.normal.y>0?(y+=a.normal.y*this.min.y,x+=a.normal.y*this.max.y):(y+=a.normal.y*this.max.y,x+=a.normal.y*this.min.y),a.normal.z>0?(y+=a.normal.z*this.min.z,x+=a.normal.z*this.max.z):(y+=a.normal.z*this.max.z,x+=a.normal.z*this.min.z),y<=-a.constant&&x>=-a.constant}intersectsTriangle(a){if(this.isEmpty())return!1;this.getCenter(Ny),rE.subVectors(this.max,Ny),i0.subVectors(a.a,Ny),s0.subVectors(a.b,Ny),a0.subVectors(a.c,Ny),Xg.subVectors(s0,i0),Wg.subVectors(a0,s0),Nv.subVectors(i0,a0);let y=[0,-Xg.z,Xg.y,0,-Wg.z,Wg.y,0,-Nv.z,Nv.y,Xg.z,0,-Xg.x,Wg.z,0,-Wg.x,Nv.z,0,-Nv.x,-Xg.y,Xg.x,0,-Wg.y,Wg.x,0,-Nv.y,Nv.x,0];return!yC(y,i0,s0,a0,rE)||(y=[1,0,0,0,1,0,0,0,1],!yC(y,i0,s0,a0,rE))?!1:(iE.crossVectors(Xg,Wg),y=[iE.x,iE.y,iE.z],yC(y,i0,s0,a0,rE))}clampPoint(a,y){return y.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,up).distanceTo(a)}getBoundingSphere(a){return this.isEmpty()?a.makeEmpty():(this.getCenter(a.center),a.radius=this.getSize(up).length()*.5),a}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}applyMatrix4(a){return this.isEmpty()?this:(Wm[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a),Wm[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a),Wm[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a),Wm[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a),Wm[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a),Wm[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a),Wm[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a),Wm[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a),this.setFromPoints(Wm),this)}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(a){return this.min.fromArray(a.min),this.max.fromArray(a.max),this}}const Wm=[new ot,new ot,new ot,new ot,new ot,new ot,new ot,new ot],up=new ot,nE=new zc,i0=new ot,s0=new ot,a0=new ot,Xg=new ot,Wg=new ot,Nv=new ot,Ny=new ot,rE=new ot,iE=new ot,Lv=new ot;function yC(b,a,y,x,E){for(let z=0,ee=b.length-3;z<=ee;z+=3){Lv.fromArray(b,z);const te=E.x*Math.abs(Lv.x)+E.y*Math.abs(Lv.y)+E.z*Math.abs(Lv.z),ne=a.dot(Lv),ie=y.dot(Lv),ae=x.dot(Lv);if(Math.max(-Math.max(ne,ie,ae),Math.min(ne,ie,ae))>te)return!1}return!0}const _L=new zc,Ly=new ot,xC=new ot;class kc{constructor(a=new ot,y=-1){this.isSphere=!0,this.center=a,this.radius=y}set(a,y){return this.center.copy(a),this.radius=y,this}setFromPoints(a,y){const x=this.center;y!==void 0?x.copy(y):_L.setFromPoints(a).getCenter(x);let E=0;for(let z=0,ee=a.length;zthis.radius*this.radius&&(y.sub(this.center).normalize(),y.multiplyScalar(this.radius).add(this.center)),y}getBoundingBox(a){return this.isEmpty()?(a.makeEmpty(),a):(a.set(this.center,this.center),a.expandByScalar(this.radius),a)}applyMatrix4(a){return this.center.applyMatrix4(a),this.radius=this.radius*a.getMaxScaleOnAxis(),this}translate(a){return this.center.add(a),this}expandByPoint(a){if(this.isEmpty())return this.center.copy(a),this.radius=0,this;Ly.subVectors(a,this.center);const y=Ly.lengthSq();if(y>this.radius*this.radius){const x=Math.sqrt(y),E=(x-this.radius)*.5;this.center.addScaledVector(Ly,E/x),this.radius+=E}return this}union(a){return a.isEmpty()?this:this.isEmpty()?(this.copy(a),this):(this.center.equals(a.center)===!0?this.radius=Math.max(this.radius,a.radius):(xC.subVectors(a.center,this.center).setLength(a.radius),this.expandByPoint(Ly.copy(a.center).add(xC)),this.expandByPoint(Ly.copy(a.center).sub(xC))),this)}equals(a){return a.center.equals(this.center)&&a.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(a){return this.radius=a.radius,this.center.fromArray(a.center),this}}const Qm=new ot,bC=new ot,sE=new ot,Qg=new ot,EC=new ot,aE=new ot,wC=new ot;class o0{constructor(a=new ot,y=new ot(0,0,-1)){this.origin=a,this.direction=y}set(a,y){return this.origin.copy(a),this.direction.copy(y),this}copy(a){return this.origin.copy(a.origin),this.direction.copy(a.direction),this}at(a,y){return y.copy(this.origin).addScaledVector(this.direction,a)}lookAt(a){return this.direction.copy(a).sub(this.origin).normalize(),this}recast(a){return this.origin.copy(this.at(a,Qm)),this}closestPointToPoint(a,y){y.subVectors(a,this.origin);const x=y.dot(this.direction);return x<0?y.copy(this.origin):y.copy(this.origin).addScaledVector(this.direction,x)}distanceToPoint(a){return Math.sqrt(this.distanceSqToPoint(a))}distanceSqToPoint(a){const y=Qm.subVectors(a,this.origin).dot(this.direction);return y<0?this.origin.distanceToSquared(a):(Qm.copy(this.origin).addScaledVector(this.direction,y),Qm.distanceToSquared(a))}distanceSqToSegment(a,y,x,E){bC.copy(a).add(y).multiplyScalar(.5),sE.copy(y).sub(a).normalize(),Qg.copy(this.origin).sub(bC);const z=a.distanceTo(y)*.5,ee=-this.direction.dot(sE),te=Qg.dot(this.direction),ne=-Qg.dot(sE),ie=Qg.lengthSq(),ae=Math.abs(1-ee*ee);let oe,le,de,he;if(ae>0)if(oe=ee*ne-te,le=ee*te-ne,he=z*ae,oe>=0)if(le>=-he)if(le<=he){const ye=1/ae;oe*=ye,le*=ye,de=oe*(oe+ee*le+2*te)+le*(ee*oe+le+2*ne)+ie}else le=z,oe=Math.max(0,-(ee*le+te)),de=-oe*oe+le*(le+2*ne)+ie;else le=-z,oe=Math.max(0,-(ee*le+te)),de=-oe*oe+le*(le+2*ne)+ie;else le<=-he?(oe=Math.max(0,-(-ee*z+te)),le=oe>0?-z:Math.min(Math.max(-z,-ne),z),de=-oe*oe+le*(le+2*ne)+ie):le<=he?(oe=0,le=Math.min(Math.max(-z,-ne),z),de=le*(le+2*ne)+ie):(oe=Math.max(0,-(ee*z+te)),le=oe>0?z:Math.min(Math.max(-z,-ne),z),de=-oe*oe+le*(le+2*ne)+ie);else le=ee>0?-z:z,oe=Math.max(0,-(ee*le+te)),de=-oe*oe+le*(le+2*ne)+ie;return x&&x.copy(this.origin).addScaledVector(this.direction,oe),E&&E.copy(bC).addScaledVector(sE,le),de}intersectSphere(a,y){Qm.subVectors(a.center,this.origin);const x=Qm.dot(this.direction),E=Qm.dot(Qm)-x*x,z=a.radius*a.radius;if(E>z)return null;const ee=Math.sqrt(z-E),te=x-ee,ne=x+ee;return ne<0?null:te<0?this.at(ne,y):this.at(te,y)}intersectsSphere(a){return a.radius<0?!1:this.distanceSqToPoint(a.center)<=a.radius*a.radius}distanceToPlane(a){const y=a.normal.dot(this.direction);if(y===0)return a.distanceToPoint(this.origin)===0?0:null;const x=-(this.origin.dot(a.normal)+a.constant)/y;return x>=0?x:null}intersectPlane(a,y){const x=this.distanceToPlane(a);return x===null?null:this.at(x,y)}intersectsPlane(a){const y=a.distanceToPoint(this.origin);return y===0||a.normal.dot(this.direction)*y<0}intersectBox(a,y){let x,E,z,ee,te,ne;const ie=1/this.direction.x,ae=1/this.direction.y,oe=1/this.direction.z,le=this.origin;return ie>=0?(x=(a.min.x-le.x)*ie,E=(a.max.x-le.x)*ie):(x=(a.max.x-le.x)*ie,E=(a.min.x-le.x)*ie),ae>=0?(z=(a.min.y-le.y)*ae,ee=(a.max.y-le.y)*ae):(z=(a.max.y-le.y)*ae,ee=(a.min.y-le.y)*ae),x>ee||z>E||((z>x||isNaN(x))&&(x=z),(ee=0?(te=(a.min.z-le.z)*oe,ne=(a.max.z-le.z)*oe):(te=(a.max.z-le.z)*oe,ne=(a.min.z-le.z)*oe),x>ne||te>E)||((te>x||x!==x)&&(x=te),(ne=0?x:E,y)}intersectsBox(a){return this.intersectBox(a,Qm)!==null}intersectTriangle(a,y,x,E,z){EC.subVectors(y,a),aE.subVectors(x,a),wC.crossVectors(EC,aE);let ee=this.direction.dot(wC),te;if(ee>0){if(E)return null;te=1}else if(ee<0)te=-1,ee=-ee;else return null;Qg.subVectors(this.origin,a);const ne=te*this.direction.dot(aE.crossVectors(Qg,aE));if(ne<0)return null;const ie=te*this.direction.dot(EC.cross(Qg));if(ie<0||ne+ie>ee)return null;const ae=-te*Qg.dot(wC);return ae<0?null:this.at(ae/ee,z)}applyMatrix4(a){return this.origin.applyMatrix4(a),this.direction.transformDirection(a),this}equals(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ls{constructor(a,y,x,E,z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae){ls.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],a!==void 0&&this.set(a,y,x,E,z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae)}set(a,y,x,E,z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae){const me=this.elements;return me[0]=a,me[4]=y,me[8]=x,me[12]=E,me[1]=z,me[5]=ee,me[9]=te,me[13]=ne,me[2]=ie,me[6]=ae,me[10]=oe,me[14]=le,me[3]=de,me[7]=he,me[11]=ye,me[15]=Ae,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ls().fromArray(this.elements)}copy(a){const y=this.elements,x=a.elements;return y[0]=x[0],y[1]=x[1],y[2]=x[2],y[3]=x[3],y[4]=x[4],y[5]=x[5],y[6]=x[6],y[7]=x[7],y[8]=x[8],y[9]=x[9],y[10]=x[10],y[11]=x[11],y[12]=x[12],y[13]=x[13],y[14]=x[14],y[15]=x[15],this}copyPosition(a){const y=this.elements,x=a.elements;return y[12]=x[12],y[13]=x[13],y[14]=x[14],this}setFromMatrix3(a){const y=a.elements;return this.set(y[0],y[3],y[6],0,y[1],y[4],y[7],0,y[2],y[5],y[8],0,0,0,0,1),this}extractBasis(a,y,x){return a.setFromMatrixColumn(this,0),y.setFromMatrixColumn(this,1),x.setFromMatrixColumn(this,2),this}makeBasis(a,y,x){return this.set(a.x,y.x,x.x,0,a.y,y.y,x.y,0,a.z,y.z,x.z,0,0,0,0,1),this}extractRotation(a){const y=this.elements,x=a.elements,E=1/l0.setFromMatrixColumn(a,0).length(),z=1/l0.setFromMatrixColumn(a,1).length(),ee=1/l0.setFromMatrixColumn(a,2).length();return y[0]=x[0]*E,y[1]=x[1]*E,y[2]=x[2]*E,y[3]=0,y[4]=x[4]*z,y[5]=x[5]*z,y[6]=x[6]*z,y[7]=0,y[8]=x[8]*ee,y[9]=x[9]*ee,y[10]=x[10]*ee,y[11]=0,y[12]=0,y[13]=0,y[14]=0,y[15]=1,this}makeRotationFromEuler(a){const y=this.elements,x=a.x,E=a.y,z=a.z,ee=Math.cos(x),te=Math.sin(x),ne=Math.cos(E),ie=Math.sin(E),ae=Math.cos(z),oe=Math.sin(z);if(a.order==="XYZ"){const le=ee*ae,de=ee*oe,he=te*ae,ye=te*oe;y[0]=ne*ae,y[4]=-ne*oe,y[8]=ie,y[1]=de+he*ie,y[5]=le-ye*ie,y[9]=-te*ne,y[2]=ye-le*ie,y[6]=he+de*ie,y[10]=ee*ne}else if(a.order==="YXZ"){const le=ne*ae,de=ne*oe,he=ie*ae,ye=ie*oe;y[0]=le+ye*te,y[4]=he*te-de,y[8]=ee*ie,y[1]=ee*oe,y[5]=ee*ae,y[9]=-te,y[2]=de*te-he,y[6]=ye+le*te,y[10]=ee*ne}else if(a.order==="ZXY"){const le=ne*ae,de=ne*oe,he=ie*ae,ye=ie*oe;y[0]=le-ye*te,y[4]=-ee*oe,y[8]=he+de*te,y[1]=de+he*te,y[5]=ee*ae,y[9]=ye-le*te,y[2]=-ee*ie,y[6]=te,y[10]=ee*ne}else if(a.order==="ZYX"){const le=ee*ae,de=ee*oe,he=te*ae,ye=te*oe;y[0]=ne*ae,y[4]=he*ie-de,y[8]=le*ie+ye,y[1]=ne*oe,y[5]=ye*ie+le,y[9]=de*ie-he,y[2]=-ie,y[6]=te*ne,y[10]=ee*ne}else if(a.order==="YZX"){const le=ee*ne,de=ee*ie,he=te*ne,ye=te*ie;y[0]=ne*ae,y[4]=ye-le*oe,y[8]=he*oe+de,y[1]=oe,y[5]=ee*ae,y[9]=-te*ae,y[2]=-ie*ae,y[6]=de*oe+he,y[10]=le-ye*oe}else if(a.order==="XZY"){const le=ee*ne,de=ee*ie,he=te*ne,ye=te*ie;y[0]=ne*ae,y[4]=-oe,y[8]=ie*ae,y[1]=le*oe+ye,y[5]=ee*ae,y[9]=de*oe-he,y[2]=he*oe-de,y[6]=te*ae,y[10]=ye*oe+le}return y[3]=0,y[7]=0,y[11]=0,y[12]=0,y[13]=0,y[14]=0,y[15]=1,this}makeRotationFromQuaternion(a){return this.compose($L,a,eO)}lookAt(a,y,x){const E=this.elements;return Sf.subVectors(a,y),Sf.lengthSq()===0&&(Sf.z=1),Sf.normalize(),Zg.crossVectors(x,Sf),Zg.lengthSq()===0&&(Math.abs(x.z)===1?Sf.x+=1e-4:Sf.z+=1e-4,Sf.normalize(),Zg.crossVectors(x,Sf)),Zg.normalize(),oE.crossVectors(Sf,Zg),E[0]=Zg.x,E[4]=oE.x,E[8]=Sf.x,E[1]=Zg.y,E[5]=oE.y,E[9]=Sf.y,E[2]=Zg.z,E[6]=oE.z,E[10]=Sf.z,this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,y){const x=a.elements,E=y.elements,z=this.elements,ee=x[0],te=x[4],ne=x[8],ie=x[12],ae=x[1],oe=x[5],le=x[9],de=x[13],he=x[2],ye=x[6],Ae=x[10],me=x[14],Ce=x[3],Ee=x[7],Be=x[11],Ne=x[15],Fe=E[0],ke=E[4],Re=E[8],Oe=E[12],ze=E[1],Le=E[5],_e=E[9],Et=E[13],yt=E[2],jt=E[6],tn=E[10],cn=E[14],kt=E[3],pt=E[7],An=E[11],Vt=E[15];return z[0]=ee*Fe+te*ze+ne*yt+ie*kt,z[4]=ee*ke+te*Le+ne*jt+ie*pt,z[8]=ee*Re+te*_e+ne*tn+ie*An,z[12]=ee*Oe+te*Et+ne*cn+ie*Vt,z[1]=ae*Fe+oe*ze+le*yt+de*kt,z[5]=ae*ke+oe*Le+le*jt+de*pt,z[9]=ae*Re+oe*_e+le*tn+de*An,z[13]=ae*Oe+oe*Et+le*cn+de*Vt,z[2]=he*Fe+ye*ze+Ae*yt+me*kt,z[6]=he*ke+ye*Le+Ae*jt+me*pt,z[10]=he*Re+ye*_e+Ae*tn+me*An,z[14]=he*Oe+ye*Et+Ae*cn+me*Vt,z[3]=Ce*Fe+Ee*ze+Be*yt+Ne*kt,z[7]=Ce*ke+Ee*Le+Be*jt+Ne*pt,z[11]=Ce*Re+Ee*_e+Be*tn+Ne*An,z[15]=Ce*Oe+Ee*Et+Be*cn+Ne*Vt,this}multiplyScalar(a){const y=this.elements;return y[0]*=a,y[4]*=a,y[8]*=a,y[12]*=a,y[1]*=a,y[5]*=a,y[9]*=a,y[13]*=a,y[2]*=a,y[6]*=a,y[10]*=a,y[14]*=a,y[3]*=a,y[7]*=a,y[11]*=a,y[15]*=a,this}determinant(){const a=this.elements,y=a[0],x=a[4],E=a[8],z=a[12],ee=a[1],te=a[5],ne=a[9],ie=a[13],ae=a[2],oe=a[6],le=a[10],de=a[14],he=a[3],ye=a[7],Ae=a[11],me=a[15];return he*(+z*ne*oe-E*ie*oe-z*te*le+x*ie*le+E*te*de-x*ne*de)+ye*(+y*ne*de-y*ie*le+z*ee*le-E*ee*de+E*ie*ae-z*ne*ae)+Ae*(+y*ie*oe-y*te*de-z*ee*oe+x*ee*de+z*te*ae-x*ie*ae)+me*(-E*te*ae-y*ne*oe+y*te*le+E*ee*oe-x*ee*le+x*ne*ae)}transpose(){const a=this.elements;let y;return y=a[1],a[1]=a[4],a[4]=y,y=a[2],a[2]=a[8],a[8]=y,y=a[6],a[6]=a[9],a[9]=y,y=a[3],a[3]=a[12],a[12]=y,y=a[7],a[7]=a[13],a[13]=y,y=a[11],a[11]=a[14],a[14]=y,this}setPosition(a,y,x){const E=this.elements;return a.isVector3?(E[12]=a.x,E[13]=a.y,E[14]=a.z):(E[12]=a,E[13]=y,E[14]=x),this}invert(){const a=this.elements,y=a[0],x=a[1],E=a[2],z=a[3],ee=a[4],te=a[5],ne=a[6],ie=a[7],ae=a[8],oe=a[9],le=a[10],de=a[11],he=a[12],ye=a[13],Ae=a[14],me=a[15],Ce=oe*Ae*ie-ye*le*ie+ye*ne*de-te*Ae*de-oe*ne*me+te*le*me,Ee=he*le*ie-ae*Ae*ie-he*ne*de+ee*Ae*de+ae*ne*me-ee*le*me,Be=ae*ye*ie-he*oe*ie+he*te*de-ee*ye*de-ae*te*me+ee*oe*me,Ne=he*oe*ne-ae*ye*ne-he*te*le+ee*ye*le+ae*te*Ae-ee*oe*Ae,Fe=y*Ce+x*Ee+E*Be+z*Ne;if(Fe===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const ke=1/Fe;return a[0]=Ce*ke,a[1]=(ye*le*z-oe*Ae*z-ye*E*de+x*Ae*de+oe*E*me-x*le*me)*ke,a[2]=(te*Ae*z-ye*ne*z+ye*E*ie-x*Ae*ie-te*E*me+x*ne*me)*ke,a[3]=(oe*ne*z-te*le*z-oe*E*ie+x*le*ie+te*E*de-x*ne*de)*ke,a[4]=Ee*ke,a[5]=(ae*Ae*z-he*le*z+he*E*de-y*Ae*de-ae*E*me+y*le*me)*ke,a[6]=(he*ne*z-ee*Ae*z-he*E*ie+y*Ae*ie+ee*E*me-y*ne*me)*ke,a[7]=(ee*le*z-ae*ne*z+ae*E*ie-y*le*ie-ee*E*de+y*ne*de)*ke,a[8]=Be*ke,a[9]=(he*oe*z-ae*ye*z-he*x*de+y*ye*de+ae*x*me-y*oe*me)*ke,a[10]=(ee*ye*z-he*te*z+he*x*ie-y*ye*ie-ee*x*me+y*te*me)*ke,a[11]=(ae*te*z-ee*oe*z-ae*x*ie+y*oe*ie+ee*x*de-y*te*de)*ke,a[12]=Ne*ke,a[13]=(ae*ye*E-he*oe*E+he*x*le-y*ye*le-ae*x*Ae+y*oe*Ae)*ke,a[14]=(he*te*E-ee*ye*E-he*x*ne+y*ye*ne+ee*x*Ae-y*te*Ae)*ke,a[15]=(ee*oe*E-ae*te*E+ae*x*ne-y*oe*ne-ee*x*le+y*te*le)*ke,this}scale(a){const y=this.elements,x=a.x,E=a.y,z=a.z;return y[0]*=x,y[4]*=E,y[8]*=z,y[1]*=x,y[5]*=E,y[9]*=z,y[2]*=x,y[6]*=E,y[10]*=z,y[3]*=x,y[7]*=E,y[11]*=z,this}getMaxScaleOnAxis(){const a=this.elements,y=a[0]*a[0]+a[1]*a[1]+a[2]*a[2],x=a[4]*a[4]+a[5]*a[5]+a[6]*a[6],E=a[8]*a[8]+a[9]*a[9]+a[10]*a[10];return Math.sqrt(Math.max(y,x,E))}makeTranslation(a,y,x){return a.isVector3?this.set(1,0,0,a.x,0,1,0,a.y,0,0,1,a.z,0,0,0,1):this.set(1,0,0,a,0,1,0,y,0,0,1,x,0,0,0,1),this}makeRotationX(a){const y=Math.cos(a),x=Math.sin(a);return this.set(1,0,0,0,0,y,-x,0,0,x,y,0,0,0,0,1),this}makeRotationY(a){const y=Math.cos(a),x=Math.sin(a);return this.set(y,0,x,0,0,1,0,0,-x,0,y,0,0,0,0,1),this}makeRotationZ(a){const y=Math.cos(a),x=Math.sin(a);return this.set(y,-x,0,0,x,y,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(a,y){const x=Math.cos(y),E=Math.sin(y),z=1-x,ee=a.x,te=a.y,ne=a.z,ie=z*ee,ae=z*te;return this.set(ie*ee+x,ie*te-E*ne,ie*ne+E*te,0,ie*te+E*ne,ae*te+x,ae*ne-E*ee,0,ie*ne-E*te,ae*ne+E*ee,z*ne*ne+x,0,0,0,0,1),this}makeScale(a,y,x){return this.set(a,0,0,0,0,y,0,0,0,0,x,0,0,0,0,1),this}makeShear(a,y,x,E,z,ee){return this.set(1,x,z,0,a,1,ee,0,y,E,1,0,0,0,0,1),this}compose(a,y,x){const E=this.elements,z=y._x,ee=y._y,te=y._z,ne=y._w,ie=z+z,ae=ee+ee,oe=te+te,le=z*ie,de=z*ae,he=z*oe,ye=ee*ae,Ae=ee*oe,me=te*oe,Ce=ne*ie,Ee=ne*ae,Be=ne*oe,Ne=x.x,Fe=x.y,ke=x.z;return E[0]=(1-(ye+me))*Ne,E[1]=(de+Be)*Ne,E[2]=(he-Ee)*Ne,E[3]=0,E[4]=(de-Be)*Fe,E[5]=(1-(le+me))*Fe,E[6]=(Ae+Ce)*Fe,E[7]=0,E[8]=(he+Ee)*ke,E[9]=(Ae-Ce)*ke,E[10]=(1-(le+ye))*ke,E[11]=0,E[12]=a.x,E[13]=a.y,E[14]=a.z,E[15]=1,this}decompose(a,y,x){const E=this.elements;let z=l0.set(E[0],E[1],E[2]).length();const ee=l0.set(E[4],E[5],E[6]).length(),te=l0.set(E[8],E[9],E[10]).length();this.determinant()<0&&(z=-z),a.x=E[12],a.y=E[13],a.z=E[14],cp.copy(this);const ie=1/z,ae=1/ee,oe=1/te;return cp.elements[0]*=ie,cp.elements[1]*=ie,cp.elements[2]*=ie,cp.elements[4]*=ae,cp.elements[5]*=ae,cp.elements[6]*=ae,cp.elements[8]*=oe,cp.elements[9]*=oe,cp.elements[10]*=oe,y.setFromRotationMatrix(cp),x.x=z,x.y=ee,x.z=te,this}makePerspective(a,y,x,E,z,ee,te=Ut,ne=!1){const ie=this.elements,ae=2*z/(y-a),oe=2*z/(x-E),le=(y+a)/(y-a),de=(x+E)/(x-E);let he,ye;if(ne)he=z/(ee-z),ye=ee*z/(ee-z);else if(te===Ut)he=-(ee+z)/(ee-z),ye=-2*ee*z/(ee-z);else if(te===Sn)he=-ee/(ee-z),ye=-ee*z/(ee-z);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+te);return ie[0]=ae,ie[4]=0,ie[8]=le,ie[12]=0,ie[1]=0,ie[5]=oe,ie[9]=de,ie[13]=0,ie[2]=0,ie[6]=0,ie[10]=he,ie[14]=ye,ie[3]=0,ie[7]=0,ie[11]=-1,ie[15]=0,this}makeOrthographic(a,y,x,E,z,ee,te=Ut,ne=!1){const ie=this.elements,ae=2/(y-a),oe=2/(x-E),le=-(y+a)/(y-a),de=-(x+E)/(x-E);let he,ye;if(ne)he=1/(ee-z),ye=ee/(ee-z);else if(te===Ut)he=-2/(ee-z),ye=-(ee+z)/(ee-z);else if(te===Sn)he=-1/(ee-z),ye=-z/(ee-z);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+te);return ie[0]=ae,ie[4]=0,ie[8]=0,ie[12]=le,ie[1]=0,ie[5]=oe,ie[9]=0,ie[13]=de,ie[2]=0,ie[6]=0,ie[10]=he,ie[14]=ye,ie[3]=0,ie[7]=0,ie[11]=0,ie[15]=1,this}equals(a){const y=this.elements,x=a.elements;for(let E=0;E<16;E++)if(y[E]!==x[E])return!1;return!0}fromArray(a,y=0){for(let x=0;x<16;x++)this.elements[x]=a[x+y];return this}toArray(a=[],y=0){const x=this.elements;return a[y]=x[0],a[y+1]=x[1],a[y+2]=x[2],a[y+3]=x[3],a[y+4]=x[4],a[y+5]=x[5],a[y+6]=x[6],a[y+7]=x[7],a[y+8]=x[8],a[y+9]=x[9],a[y+10]=x[10],a[y+11]=x[11],a[y+12]=x[12],a[y+13]=x[13],a[y+14]=x[14],a[y+15]=x[15],a}}const l0=new ot,cp=new ls,$L=new ot(0,0,0),eO=new ot(1,1,1),Zg=new ot,oE=new ot,Sf=new ot,o5=new ls,l5=new Ll;class Xd{constructor(a=0,y=0,x=0,E=Xd.DEFAULT_ORDER){this.isEuler=!0,this._x=a,this._y=y,this._z=x,this._order=E}get x(){return this._x}set x(a){this._x=a,this._onChangeCallback()}get y(){return this._y}set y(a){this._y=a,this._onChangeCallback()}get z(){return this._z}set z(a){this._z=a,this._onChangeCallback()}get order(){return this._order}set order(a){this._order=a,this._onChangeCallback()}set(a,y,x,E=this._order){return this._x=a,this._y=y,this._z=x,this._order=E,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(a){return this._x=a._x,this._y=a._y,this._z=a._z,this._order=a._order,this._onChangeCallback(),this}setFromRotationMatrix(a,y=this._order,x=!0){const E=a.elements,z=E[0],ee=E[4],te=E[8],ne=E[1],ie=E[5],ae=E[9],oe=E[2],le=E[6],de=E[10];switch(y){case"XYZ":this._y=Math.asin(Yi(te,-1,1)),Math.abs(te)<.9999999?(this._x=Math.atan2(-ae,de),this._z=Math.atan2(-ee,z)):(this._x=Math.atan2(le,ie),this._z=0);break;case"YXZ":this._x=Math.asin(-Yi(ae,-1,1)),Math.abs(ae)<.9999999?(this._y=Math.atan2(te,de),this._z=Math.atan2(ne,ie)):(this._y=Math.atan2(-oe,z),this._z=0);break;case"ZXY":this._x=Math.asin(Yi(le,-1,1)),Math.abs(le)<.9999999?(this._y=Math.atan2(-oe,de),this._z=Math.atan2(-ee,ie)):(this._y=0,this._z=Math.atan2(ne,z));break;case"ZYX":this._y=Math.asin(-Yi(oe,-1,1)),Math.abs(oe)<.9999999?(this._x=Math.atan2(le,de),this._z=Math.atan2(ne,z)):(this._x=0,this._z=Math.atan2(-ee,ie));break;case"YZX":this._z=Math.asin(Yi(ne,-1,1)),Math.abs(ne)<.9999999?(this._x=Math.atan2(-ae,ie),this._y=Math.atan2(-oe,z)):(this._x=0,this._y=Math.atan2(te,de));break;case"XZY":this._z=Math.asin(-Yi(ee,-1,1)),Math.abs(ee)<.9999999?(this._x=Math.atan2(le,ie),this._y=Math.atan2(te,z)):(this._x=Math.atan2(-ae,de),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+y)}return this._order=y,x===!0&&this._onChangeCallback(),this}setFromQuaternion(a,y,x){return o5.makeRotationFromQuaternion(a),this.setFromRotationMatrix(o5,y,x)}setFromVector3(a,y=this._order){return this.set(a.x,a.y,a.z,y)}reorder(a){return l5.setFromEuler(this),this.setFromQuaternion(l5,a)}equals(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order}fromArray(a){return this._x=a[0],this._y=a[1],this._z=a[2],a[3]!==void 0&&(this._order=a[3]),this._onChangeCallback(),this}toArray(a=[],y=0){return a[y]=this._x,a[y+1]=this._y,a[y+2]=this._z,a[y+3]=this._order,a}_onChange(a){return this._onChangeCallback=a,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Xd.DEFAULT_ORDER="XYZ";class CC{constructor(){this.mask=1}set(a){this.mask=(1<>>0}enable(a){this.mask|=1<1){for(let y=0;y1){for(let x=0;x0&&(E.userData=this.userData),E.layers=this.layers.mask,E.matrix=this.matrix.toArray(),E.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(E.matrixAutoUpdate=!1),this.isInstancedMesh&&(E.type="InstancedMesh",E.count=this.count,E.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(E.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(E.type="BatchedMesh",E.perObjectFrustumCulled=this.perObjectFrustumCulled,E.sortObjects=this.sortObjects,E.drawRanges=this._drawRanges,E.reservedRanges=this._reservedRanges,E.geometryInfo=this._geometryInfo.map(te=>ym(Dl({},te),{boundingBox:te.boundingBox?te.boundingBox.toJSON():void 0,boundingSphere:te.boundingSphere?te.boundingSphere.toJSON():void 0})),E.instanceInfo=this._instanceInfo.map(te=>Dl({},te)),E.availableInstanceIds=this._availableInstanceIds.slice(),E.availableGeometryIds=this._availableGeometryIds.slice(),E.nextIndexStart=this._nextIndexStart,E.nextVertexStart=this._nextVertexStart,E.geometryCount=this._geometryCount,E.maxInstanceCount=this._maxInstanceCount,E.maxVertexCount=this._maxVertexCount,E.maxIndexCount=this._maxIndexCount,E.geometryInitialized=this._geometryInitialized,E.matricesTexture=this._matricesTexture.toJSON(a),E.indirectTexture=this._indirectTexture.toJSON(a),this._colorsTexture!==null&&(E.colorsTexture=this._colorsTexture.toJSON(a)),this.boundingSphere!==null&&(E.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(E.boundingBox=this.boundingBox.toJSON()));function z(te,ne){return te[ne.uuid]===void 0&&(te[ne.uuid]=ne.toJSON(a)),ne.uuid}if(this.isScene)this.background&&(this.background.isColor?E.background=this.background.toJSON():this.background.isTexture&&(E.background=this.background.toJSON(a).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(E.environment=this.environment.toJSON(a).uuid);else if(this.isMesh||this.isLine||this.isPoints){E.geometry=z(a.geometries,this.geometry);const te=this.geometry.parameters;if(te!==void 0&&te.shapes!==void 0){const ne=te.shapes;if(Array.isArray(ne))for(let ie=0,ae=ne.length;ie0){E.children=[];for(let te=0;te0){E.animations=[];for(let te=0;te0&&(x.geometries=te),ne.length>0&&(x.materials=ne),ie.length>0&&(x.textures=ie),ae.length>0&&(x.images=ae),oe.length>0&&(x.shapes=oe),le.length>0&&(x.skeletons=le),de.length>0&&(x.animations=de),he.length>0&&(x.nodes=he)}return x.object=E,x;function ee(te){const ne=[];for(const ie in te){const ae=te[ie];delete ae.metadata,ne.push(ae)}return ne}}clone(a){return new this.constructor().copy(this,a)}copy(a,y=!0){if(this.name=a.name,this.up.copy(a.up),this.position.copy(a.position),this.rotation.order=a.rotation.order,this.quaternion.copy(a.quaternion),this.scale.copy(a.scale),this.matrix.copy(a.matrix),this.matrixWorld.copy(a.matrixWorld),this.matrixAutoUpdate=a.matrixAutoUpdate,this.matrixWorldAutoUpdate=a.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate,this.layers.mask=a.layers.mask,this.visible=a.visible,this.castShadow=a.castShadow,this.receiveShadow=a.receiveShadow,this.frustumCulled=a.frustumCulled,this.renderOrder=a.renderOrder,this.animations=a.animations.slice(),this.userData=JSON.parse(JSON.stringify(a.userData)),y===!0)for(let x=0;x0?E.multiplyScalar(1/Math.sqrt(z)):E.set(0,0,0)}static getBarycoord(a,y,x,E,z){dp.subVectors(E,y),Ym.subVectors(x,y),BC.subVectors(a,y);const ee=dp.dot(dp),te=dp.dot(Ym),ne=dp.dot(BC),ie=Ym.dot(Ym),ae=Ym.dot(BC),oe=ee*ie-te*te;if(oe===0)return z.set(0,0,0),null;const le=1/oe,de=(ie*ne-te*ae)*le,he=(ee*ae-te*ne)*le;return z.set(1-de-he,he,de)}static containsPoint(a,y,x,E){return this.getBarycoord(a,y,x,E,Jm)===null?!1:Jm.x>=0&&Jm.y>=0&&Jm.x+Jm.y<=1}static getInterpolation(a,y,x,E,z,ee,te,ne){return this.getBarycoord(a,y,x,E,Jm)===null?(ne.x=0,ne.y=0,"z"in ne&&(ne.z=0),"w"in ne&&(ne.w=0),null):(ne.setScalar(0),ne.addScaledVector(z,Jm.x),ne.addScaledVector(ee,Jm.y),ne.addScaledVector(te,Jm.z),ne)}static getInterpolatedAttribute(a,y,x,E,z,ee){return TC.setScalar(0),IC.setScalar(0),FC.setScalar(0),TC.fromBufferAttribute(a,y),IC.fromBufferAttribute(a,x),FC.fromBufferAttribute(a,E),ee.setScalar(0),ee.addScaledVector(TC,z.x),ee.addScaledVector(IC,z.y),ee.addScaledVector(FC,z.z),ee}static isFrontFacing(a,y,x,E){return dp.subVectors(x,y),Ym.subVectors(a,y),dp.cross(Ym).dot(E)<0}set(a,y,x){return this.a.copy(a),this.b.copy(y),this.c.copy(x),this}setFromPointsAndIndices(a,y,x,E){return this.a.copy(a[y]),this.b.copy(a[x]),this.c.copy(a[E]),this}setFromAttributeAndIndices(a,y,x,E){return this.a.fromBufferAttribute(a,y),this.b.fromBufferAttribute(a,x),this.c.fromBufferAttribute(a,E),this}clone(){return new this.constructor().copy(this)}copy(a){return this.a.copy(a.a),this.b.copy(a.b),this.c.copy(a.c),this}getArea(){return dp.subVectors(this.c,this.b),Ym.subVectors(this.a,this.b),dp.cross(Ym).length()*.5}getMidpoint(a){return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(a){return Mf.getNormal(this.a,this.b,this.c,a)}getPlane(a){return a.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(a,y){return Mf.getBarycoord(a,this.a,this.b,this.c,y)}getInterpolation(a,y,x,E,z){return Mf.getInterpolation(a,this.a,this.b,this.c,y,x,E,z)}containsPoint(a){return Mf.containsPoint(a,this.a,this.b,this.c)}isFrontFacing(a){return Mf.isFrontFacing(this.a,this.b,this.c,a)}intersectsBox(a){return a.intersectsTriangle(this)}closestPointToPoint(a,y){const x=this.a,E=this.b,z=this.c;let ee,te;d0.subVectors(E,x),f0.subVectors(z,x),SC.subVectors(a,x);const ne=d0.dot(SC),ie=f0.dot(SC);if(ne<=0&&ie<=0)return y.copy(x);MC.subVectors(a,E);const ae=d0.dot(MC),oe=f0.dot(MC);if(ae>=0&&oe<=ae)return y.copy(E);const le=ne*oe-ae*ie;if(le<=0&&ne>=0&&ae<=0)return ee=ne/(ne-ae),y.copy(x).addScaledVector(d0,ee);DC.subVectors(a,z);const de=d0.dot(DC),he=f0.dot(DC);if(he>=0&&de<=he)return y.copy(z);const ye=de*ie-ne*he;if(ye<=0&&ie>=0&&he<=0)return te=ie/(ie-he),y.copy(x).addScaledVector(f0,te);const Ae=ae*he-de*oe;if(Ae<=0&&oe-ae>=0&&de-he>=0)return p5.subVectors(z,E),te=(oe-ae)/(oe-ae+(de-he)),y.copy(E).addScaledVector(p5,te);const me=1/(Ae+ye+le);return ee=ye*me,te=le*me,y.copy(x).addScaledVector(d0,ee).addScaledVector(f0,te)}equals(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}}const m5={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Yg={h:0,s:0,l:0},uE={h:0,s:0,l:0};function NC(b,a,y){return y<0&&(y+=1),y>1&&(y-=1),y<1/6?b+(a-b)*6*y:y<1/2?a:y<2/3?b+(a-b)*6*(2/3-y):b}class xi{constructor(a,y,x){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(a,y,x)}set(a,y,x){if(y===void 0&&x===void 0){const E=a;E&&E.isColor?this.copy(E):typeof E=="number"?this.setHex(E):typeof E=="string"&&this.setStyle(E)}else this.setRGB(a,y,x);return this}setScalar(a){return this.r=a,this.g=a,this.b=a,this}setHex(a,y=nn){return a=Math.floor(a),this.r=(a>>16&255)/255,this.g=(a>>8&255)/255,this.b=(a&255)/255,aa.colorSpaceToWorking(this,y),this}setRGB(a,y,x,E=aa.workingColorSpace){return this.r=a,this.g=y,this.b=x,aa.colorSpaceToWorking(this,E),this}setHSL(a,y,x,E=aa.workingColorSpace){if(a=Va(a,1),y=Yi(y,0,1),x=Yi(x,0,1),y===0)this.r=this.g=this.b=x;else{const z=x<=.5?x*(1+y):x+y-x*y,ee=2*x-z;this.r=NC(ee,z,a+1/3),this.g=NC(ee,z,a),this.b=NC(ee,z,a-1/3)}return aa.colorSpaceToWorking(this,E),this}setStyle(a,y=nn){function x(z){z!==void 0&&parseFloat(z)<1&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}let E;if(E=/^(\w+)\(([^\)]*)\)/.exec(a)){let z;const ee=E[1],te=E[2];switch(ee){case"rgb":case"rgba":if(z=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(te))return x(z[4]),this.setRGB(Math.min(255,parseInt(z[1],10))/255,Math.min(255,parseInt(z[2],10))/255,Math.min(255,parseInt(z[3],10))/255,y);if(z=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(te))return x(z[4]),this.setRGB(Math.min(100,parseInt(z[1],10))/100,Math.min(100,parseInt(z[2],10))/100,Math.min(100,parseInt(z[3],10))/100,y);break;case"hsl":case"hsla":if(z=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(te))return x(z[4]),this.setHSL(parseFloat(z[1])/360,parseFloat(z[2])/100,parseFloat(z[3])/100,y);break;default:console.warn("THREE.Color: Unknown color model "+a)}}else if(E=/^\#([A-Fa-f\d]+)$/.exec(a)){const z=E[1],ee=z.length;if(ee===3)return this.setRGB(parseInt(z.charAt(0),16)/15,parseInt(z.charAt(1),16)/15,parseInt(z.charAt(2),16)/15,y);if(ee===6)return this.setHex(parseInt(z,16),y);console.warn("THREE.Color: Invalid hex color "+a)}else if(a&&a.length>0)return this.setColorName(a,y);return this}setColorName(a,y=nn){const x=m5[a.toLowerCase()];return x!==void 0?this.setHex(x,y):console.warn("THREE.Color: Unknown color "+a),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(a){return this.r=a.r,this.g=a.g,this.b=a.b,this}copySRGBToLinear(a){return this.r=Gm(a.r),this.g=Gm(a.g),this.b=Gm(a.b),this}copyLinearToSRGB(a){return this.r=n0(a.r),this.g=n0(a.g),this.b=n0(a.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(a=nn){return aa.workingToColorSpace(qc.copy(this),a),Math.round(Yi(qc.r*255,0,255))*65536+Math.round(Yi(qc.g*255,0,255))*256+Math.round(Yi(qc.b*255,0,255))}getHexString(a=nn){return("000000"+this.getHex(a).toString(16)).slice(-6)}getHSL(a,y=aa.workingColorSpace){aa.workingToColorSpace(qc.copy(this),y);const x=qc.r,E=qc.g,z=qc.b,ee=Math.max(x,E,z),te=Math.min(x,E,z);let ne,ie;const ae=(te+ee)/2;if(te===ee)ne=0,ie=0;else{const oe=ee-te;switch(ie=ae<=.5?oe/(ee+te):oe/(2-ee-te),ee){case x:ne=(E-z)/oe+(E0!=a>0&&this.version++,this._alphaTest=a}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(a){if(a!==void 0)for(const y in a){const x=a[y];if(x===void 0){console.warn(`THREE.Material: parameter '${y}' has value of undefined.`);continue}const E=this[y];if(E===void 0){console.warn(`THREE.Material: '${y}' is not a property of THREE.${this.type}.`);continue}E&&E.isColor?E.set(x):E&&E.isVector3&&x&&x.isVector3?E.copy(x):this[y]=x}}toJSON(a){const y=a===void 0||typeof a=="string";y&&(a={textures:{},images:{}});const x={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};x.uuid=this.uuid,x.type=this.type,this.name!==""&&(x.name=this.name),this.color&&this.color.isColor&&(x.color=this.color.getHex()),this.roughness!==void 0&&(x.roughness=this.roughness),this.metalness!==void 0&&(x.metalness=this.metalness),this.sheen!==void 0&&(x.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(x.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(x.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(x.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(x.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(x.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(x.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(x.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(x.shininess=this.shininess),this.clearcoat!==void 0&&(x.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(x.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(x.clearcoatMap=this.clearcoatMap.toJSON(a).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(x.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(a).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(x.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(a).uuid,x.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(x.dispersion=this.dispersion),this.iridescence!==void 0&&(x.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(x.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(x.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(x.iridescenceMap=this.iridescenceMap.toJSON(a).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(x.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(a).uuid),this.anisotropy!==void 0&&(x.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(x.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(x.anisotropyMap=this.anisotropyMap.toJSON(a).uuid),this.map&&this.map.isTexture&&(x.map=this.map.toJSON(a).uuid),this.matcap&&this.matcap.isTexture&&(x.matcap=this.matcap.toJSON(a).uuid),this.alphaMap&&this.alphaMap.isTexture&&(x.alphaMap=this.alphaMap.toJSON(a).uuid),this.lightMap&&this.lightMap.isTexture&&(x.lightMap=this.lightMap.toJSON(a).uuid,x.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(x.aoMap=this.aoMap.toJSON(a).uuid,x.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(x.bumpMap=this.bumpMap.toJSON(a).uuid,x.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(x.normalMap=this.normalMap.toJSON(a).uuid,x.normalMapType=this.normalMapType,x.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(x.displacementMap=this.displacementMap.toJSON(a).uuid,x.displacementScale=this.displacementScale,x.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(x.roughnessMap=this.roughnessMap.toJSON(a).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(x.metalnessMap=this.metalnessMap.toJSON(a).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(x.emissiveMap=this.emissiveMap.toJSON(a).uuid),this.specularMap&&this.specularMap.isTexture&&(x.specularMap=this.specularMap.toJSON(a).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(x.specularIntensityMap=this.specularIntensityMap.toJSON(a).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(x.specularColorMap=this.specularColorMap.toJSON(a).uuid),this.envMap&&this.envMap.isTexture&&(x.envMap=this.envMap.toJSON(a).uuid,this.combine!==void 0&&(x.combine=this.combine)),this.envMapRotation!==void 0&&(x.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(x.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(x.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(x.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(x.gradientMap=this.gradientMap.toJSON(a).uuid),this.transmission!==void 0&&(x.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(x.transmissionMap=this.transmissionMap.toJSON(a).uuid),this.thickness!==void 0&&(x.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(x.thicknessMap=this.thicknessMap.toJSON(a).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(x.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(x.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(x.size=this.size),this.shadowSide!==null&&(x.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(x.sizeAttenuation=this.sizeAttenuation),this.blending!==xc&&(x.blending=this.blending),this.side!==yc&&(x.side=this.side),this.vertexColors===!0&&(x.vertexColors=!0),this.opacity<1&&(x.opacity=this.opacity),this.transparent===!0&&(x.transparent=!0),this.blendSrc!==kd&&(x.blendSrc=this.blendSrc),this.blendDst!==Up&&(x.blendDst=this.blendDst),this.blendEquation!==pu&&(x.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(x.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(x.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(x.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(x.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(x.blendAlpha=this.blendAlpha),this.depthFunc!==sh&&(x.depthFunc=this.depthFunc),this.depthTest===!1&&(x.depthTest=this.depthTest),this.depthWrite===!1&&(x.depthWrite=this.depthWrite),this.colorWrite===!1&&(x.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(x.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==el&&(x.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(x.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(x.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==fi&&(x.stencilFail=this.stencilFail),this.stencilZFail!==fi&&(x.stencilZFail=this.stencilZFail),this.stencilZPass!==fi&&(x.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(x.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(x.rotation=this.rotation),this.polygonOffset===!0&&(x.polygonOffset=!0),this.polygonOffsetFactor!==0&&(x.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(x.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(x.linewidth=this.linewidth),this.dashSize!==void 0&&(x.dashSize=this.dashSize),this.gapSize!==void 0&&(x.gapSize=this.gapSize),this.scale!==void 0&&(x.scale=this.scale),this.dithering===!0&&(x.dithering=!0),this.alphaTest>0&&(x.alphaTest=this.alphaTest),this.alphaHash===!0&&(x.alphaHash=!0),this.alphaToCoverage===!0&&(x.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(x.premultipliedAlpha=!0),this.forceSinglePass===!0&&(x.forceSinglePass=!0),this.wireframe===!0&&(x.wireframe=!0),this.wireframeLinewidth>1&&(x.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(x.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(x.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(x.flatShading=!0),this.visible===!1&&(x.visible=!1),this.toneMapped===!1&&(x.toneMapped=!1),this.fog===!1&&(x.fog=!1),Object.keys(this.userData).length>0&&(x.userData=this.userData);function E(z){const ee=[];for(const te in z){const ne=z[te];delete ne.metadata,ee.push(ne)}return ee}if(y){const z=E(a.textures),ee=E(a.images);z.length>0&&(x.textures=z),ee.length>0&&(x.images=ee)}return x}clone(){return new this.constructor().copy(this)}copy(a){this.name=a.name,this.blending=a.blending,this.side=a.side,this.vertexColors=a.vertexColors,this.opacity=a.opacity,this.transparent=a.transparent,this.blendSrc=a.blendSrc,this.blendDst=a.blendDst,this.blendEquation=a.blendEquation,this.blendSrcAlpha=a.blendSrcAlpha,this.blendDstAlpha=a.blendDstAlpha,this.blendEquationAlpha=a.blendEquationAlpha,this.blendColor.copy(a.blendColor),this.blendAlpha=a.blendAlpha,this.depthFunc=a.depthFunc,this.depthTest=a.depthTest,this.depthWrite=a.depthWrite,this.stencilWriteMask=a.stencilWriteMask,this.stencilFunc=a.stencilFunc,this.stencilRef=a.stencilRef,this.stencilFuncMask=a.stencilFuncMask,this.stencilFail=a.stencilFail,this.stencilZFail=a.stencilZFail,this.stencilZPass=a.stencilZPass,this.stencilWrite=a.stencilWrite;const y=a.clippingPlanes;let x=null;if(y!==null){const E=y.length;x=new Array(E);for(let z=0;z!==E;++z)x[z]=y[z].clone()}return this.clippingPlanes=x,this.clipIntersection=a.clipIntersection,this.clipShadows=a.clipShadows,this.shadowSide=a.shadowSide,this.colorWrite=a.colorWrite,this.precision=a.precision,this.polygonOffset=a.polygonOffset,this.polygonOffsetFactor=a.polygonOffsetFactor,this.polygonOffsetUnits=a.polygonOffsetUnits,this.dithering=a.dithering,this.alphaTest=a.alphaTest,this.alphaHash=a.alphaHash,this.alphaToCoverage=a.alphaToCoverage,this.premultipliedAlpha=a.premultipliedAlpha,this.forceSinglePass=a.forceSinglePass,this.visible=a.visible,this.toneMapped=a.toneMapped,this.userData=JSON.parse(JSON.stringify(a.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(a){a===!0&&this.version++}}class Cc extends Hc{constructor(a){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new xi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Xd,this.combine=jl,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.envMapRotation.copy(a.envMapRotation),this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}const Km=aO();function aO(){const b=new ArrayBuffer(4),a=new Float32Array(b),y=new Uint32Array(b),x=new Uint32Array(512),E=new Uint32Array(512);for(let ne=0;ne<256;++ne){const ie=ne-127;ie<-27?(x[ne]=0,x[ne|256]=32768,E[ne]=24,E[ne|256]=24):ie<-14?(x[ne]=1024>>-ie-14,x[ne|256]=1024>>-ie-14|32768,E[ne]=-ie-1,E[ne|256]=-ie-1):ie<=15?(x[ne]=ie+15<<10,x[ne|256]=ie+15<<10|32768,E[ne]=13,E[ne|256]=13):ie<128?(x[ne]=31744,x[ne|256]=64512,E[ne]=24,E[ne|256]=24):(x[ne]=31744,x[ne|256]=64512,E[ne]=13,E[ne|256]=13)}const z=new Uint32Array(2048),ee=new Uint32Array(64),te=new Uint32Array(64);for(let ne=1;ne<1024;++ne){let ie=ne<<13,ae=0;for(;!(ie&8388608);)ie<<=1,ae-=8388608;ie&=-8388609,ae+=947912704,z[ne]=ie|ae}for(let ne=1024;ne<2048;++ne)z[ne]=939524096+(ne-1024<<13);for(let ne=1;ne<31;++ne)ee[ne]=ne<<23;ee[31]=1199570944,ee[32]=2147483648;for(let ne=33;ne<63;++ne)ee[ne]=2147483648+(ne-32<<23);ee[63]=3347054592;for(let ne=1;ne<64;++ne)ne!==32&&(te[ne]=1024);return{floatView:a,uint32View:y,baseTable:x,shiftTable:E,mantissaTable:z,exponentTable:ee,offsetTable:te}}function Wd(b){Math.abs(b)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),b=Yi(b,-65504,65504),Km.floatView[0]=b;const a=Km.uint32View[0],y=a>>23&511;return Km.baseTable[y]+((a&8388607)>>Km.shiftTable[y])}function Ry(b){const a=b>>10;return Km.uint32View[0]=Km.mantissaTable[Km.offsetTable[a]+(b&1023)]+Km.exponentTable[a],Km.floatView[0]}class aue{static toHalfFloat(a){return Wd(a)}static fromHalfFloat(a){return Ry(a)}}const Ru=new ot,cE=new tr;let oO=0;class nl{constructor(a,y,x=!1){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:oO++}),this.name="",this.array=a,this.itemSize=y,this.count=a!==void 0?a.length/y:0,this.normalized=x,this.usage=xe,this.updateRanges=[],this.gpuType=Vo,this.version=0}onUploadCallback(){}set needsUpdate(a){a===!0&&this.version++}setUsage(a){return this.usage=a,this}addUpdateRange(a,y){this.updateRanges.push({start:a,count:y})}clearUpdateRanges(){this.updateRanges.length=0}copy(a){return this.name=a.name,this.array=new a.array.constructor(a.array),this.itemSize=a.itemSize,this.count=a.count,this.normalized=a.normalized,this.usage=a.usage,this.gpuType=a.gpuType,this}copyAt(a,y,x){a*=this.itemSize,x*=y.itemSize;for(let E=0,z=this.itemSize;Ey.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),y.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new zc);const a=this.attributes.position,y=this.morphAttributes.position;if(a&&a.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new ot(-1/0,-1/0,-1/0),new ot(1/0,1/0,1/0));return}if(a!==void 0){if(this.boundingBox.setFromBufferAttribute(a),y)for(let x=0,E=y.length;x0&&(a.userData=this.userData),this.parameters!==void 0){const ne=this.parameters;for(const ie in ne)ne[ie]!==void 0&&(a[ie]=ne[ie]);return a}a.data={attributes:{}};const y=this.index;y!==null&&(a.data.index={type:y.array.constructor.name,array:Array.prototype.slice.call(y.array)});const x=this.attributes;for(const ne in x){const ie=x[ne];a.data.attributes[ne]=ie.toJSON(a.data)}const E={};let z=!1;for(const ne in this.morphAttributes){const ie=this.morphAttributes[ne],ae=[];for(let oe=0,le=ie.length;oe0&&(E[ne]=ae,z=!0)}z&&(a.data.morphAttributes=E,a.data.morphTargetsRelative=this.morphTargetsRelative);const ee=this.groups;ee.length>0&&(a.data.groups=JSON.parse(JSON.stringify(ee)));const te=this.boundingSphere;return te!==null&&(a.data.boundingSphere=te.toJSON()),a}clone(){return new this.constructor().copy(this)}copy(a){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const y={};this.name=a.name;const x=a.index;x!==null&&this.setIndex(x.clone());const E=a.attributes;for(const ie in E){const ae=E[ie];this.setAttribute(ie,ae.clone(y))}const z=a.morphAttributes;for(const ie in z){const ae=[],oe=z[ie];for(let le=0,de=oe.length;le0){const E=y[x[0]];if(E!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let z=0,ee=E.length;zi5(a.far-a.near,2)))&&(v5.copy(z).invert(),Ov.copy(a.ray).applyMatrix4(v5),!(x.boundingBox!==null&&Ov.intersectsBox(x.boundingBox)===!1)&&this._computeIntersections(a,y,Ov)))}_computeIntersections(a,y,x){let E;const z=this.geometry,ee=this.material,te=z.index,ne=z.attributes.position,ie=z.attributes.uv,ae=z.attributes.uv1,oe=z.attributes.normal,le=z.groups,de=z.drawRange;if(te!==null)if(Array.isArray(ee))for(let he=0,ye=le.length;hey.far?null:{distance:ie,point:gE.clone(),object:b}}function vE(b,a,y,x,E,z,ee,te,ne,ie){b.getVertexPosition(te,fE),b.getVertexPosition(ne,hE),b.getVertexPosition(ie,pE);const ae=uO(b,a,y,x,fE,hE,pE,y5);if(ae){const oe=new ot;Mf.getBarycoord(y5,fE,hE,pE,oe),E&&(ae.uv=Mf.getInterpolatedAttribute(E,te,ne,ie,oe,new tr)),z&&(ae.uv1=Mf.getInterpolatedAttribute(z,te,ne,ie,oe,new tr)),ee&&(ae.normal=Mf.getInterpolatedAttribute(ee,te,ne,ie,oe,new ot),ae.normal.dot(x.direction)>0&&ae.normal.multiplyScalar(-1));const le={a:te,b:ne,c:ie,normal:new ot,materialIndex:0};Mf.getNormal(fE,hE,pE,le.normal),ae.face=le,ae.barycoord=oe}return ae}class Jg extends Fa{constructor(a=1,y=1,x=1,E=1,z=1,ee=1){super(),this.type="BoxGeometry",this.parameters={width:a,height:y,depth:x,widthSegments:E,heightSegments:z,depthSegments:ee};const te=this;E=Math.floor(E),z=Math.floor(z),ee=Math.floor(ee);const ne=[],ie=[],ae=[],oe=[];let le=0,de=0;he("z","y","x",-1,-1,x,y,a,ee,z,0),he("z","y","x",1,-1,x,y,-a,ee,z,1),he("x","z","y",1,1,a,x,y,E,ee,2),he("x","z","y",1,-1,a,x,-y,E,ee,3),he("x","y","z",1,-1,a,y,x,E,z,4),he("x","y","z",-1,-1,a,y,-x,E,z,5),this.setIndex(ne),this.setAttribute("position",new us(ie,3)),this.setAttribute("normal",new us(ae,3)),this.setAttribute("uv",new us(oe,2));function he(ye,Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re,Oe){const ze=Be/ke,Le=Ne/Re,_e=Be/2,Et=Ne/2,yt=Fe/2,jt=ke+1,tn=Re+1;let cn=0,kt=0;const pt=new ot;for(let An=0;An0?1:-1,ae.push(pt.x,pt.y,pt.z),oe.push(rn/ke),oe.push(1-An/Re),cn+=1}}for(let An=0;An0&&(y.defines=this.defines),y.vertexShader=this.vertexShader,y.fragmentShader=this.fragmentShader,y.lights=this.lights,y.clipping=this.clipping;const x={};for(const E in this.extensions)this.extensions[E]===!0&&(x[E]=!0);return Object.keys(x).length>0&&(y.extensions=x),y}}class AE extends Wl{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ls,this.projectionMatrix=new ls,this.projectionMatrixInverse=new ls,this.coordinateSystem=Ut,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(a,y){return super.copy(a,y),this.matrixWorldInverse.copy(a.matrixWorldInverse),this.projectionMatrix.copy(a.projectionMatrix),this.projectionMatrixInverse.copy(a.projectionMatrixInverse),this.coordinateSystem=a.coordinateSystem,this}getWorldDirection(a){return super.getWorldDirection(a).negate()}updateMatrixWorld(a){super.updateMatrixWorld(a),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(a,y){super.updateWorldMatrix(a,y),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Kg=new ot,E5=new tr,w5=new tr;class xu extends AE{constructor(a=50,y=1,x=.1,E=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=a,this.zoom=1,this.near=x,this.far=E,this.focus=10,this.aspect=y,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(a,y){return super.copy(a,y),this.fov=a.fov,this.zoom=a.zoom,this.near=a.near,this.far=a.far,this.focus=a.focus,this.aspect=a.aspect,this.view=a.view===null?null:Object.assign({},a.view),this.filmGauge=a.filmGauge,this.filmOffset=a.filmOffset,this}setFocalLength(a){const y=.5*this.getFilmHeight()/a;this.fov=qs*2*Math.atan(y),this.updateProjectionMatrix()}getFocalLength(){const a=Math.tan(ia*.5*this.fov);return .5*this.getFilmHeight()/a}getEffectiveFOV(){return qs*2*Math.atan(Math.tan(ia*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(a,y,x){Kg.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),y.set(Kg.x,Kg.y).multiplyScalar(-a/Kg.z),Kg.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),x.set(Kg.x,Kg.y).multiplyScalar(-a/Kg.z)}getViewSize(a,y){return this.getViewBounds(a,E5,w5),y.subVectors(w5,E5)}setViewOffset(a,y,x,E,z,ee){this.aspect=a/y,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=a,this.view.fullHeight=y,this.view.offsetX=x,this.view.offsetY=E,this.view.width=z,this.view.height=ee,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const a=this.near;let y=a*Math.tan(ia*.5*this.fov)/this.zoom,x=2*y,E=this.aspect*x,z=-.5*E;const ee=this.view;if(this.view!==null&&this.view.enabled){const ne=ee.fullWidth,ie=ee.fullHeight;z+=ee.offsetX*E/ne,y-=ee.offsetY*x/ie,E*=ee.width/ne,x*=ee.height/ie}const te=this.filmOffset;te!==0&&(z+=a*te/this.getFilmWidth()),this.projectionMatrix.makePerspective(z,z+E,y,y-x,a,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(a){const y=super.toJSON(a);return y.object.fov=this.fov,y.object.zoom=this.zoom,y.object.near=this.near,y.object.far=this.far,y.object.focus=this.focus,y.object.aspect=this.aspect,this.view!==null&&(y.object.view=Object.assign({},this.view)),y.object.filmGauge=this.filmGauge,y.object.filmOffset=this.filmOffset,y}}const m0=-90,g0=1;class C5 extends Wl{constructor(a,y,x){super(),this.type="CubeCamera",this.renderTarget=x,this.coordinateSystem=null,this.activeMipmapLevel=0;const E=new xu(m0,g0,a,y);E.layers=this.layers,this.add(E);const z=new xu(m0,g0,a,y);z.layers=this.layers,this.add(z);const ee=new xu(m0,g0,a,y);ee.layers=this.layers,this.add(ee);const te=new xu(m0,g0,a,y);te.layers=this.layers,this.add(te);const ne=new xu(m0,g0,a,y);ne.layers=this.layers,this.add(ne);const ie=new xu(m0,g0,a,y);ie.layers=this.layers,this.add(ie)}updateCoordinateSystem(){const a=this.coordinateSystem,y=this.children.concat(),[x,E,z,ee,te,ne]=y;for(const ie of y)this.remove(ie);if(a===Ut)x.up.set(0,1,0),x.lookAt(1,0,0),E.up.set(0,1,0),E.lookAt(-1,0,0),z.up.set(0,0,-1),z.lookAt(0,1,0),ee.up.set(0,0,1),ee.lookAt(0,-1,0),te.up.set(0,1,0),te.lookAt(0,0,1),ne.up.set(0,1,0),ne.lookAt(0,0,-1);else if(a===Sn)x.up.set(0,-1,0),x.lookAt(-1,0,0),E.up.set(0,-1,0),E.lookAt(1,0,0),z.up.set(0,0,1),z.lookAt(0,1,0),ee.up.set(0,0,-1),ee.lookAt(0,-1,0),te.up.set(0,-1,0),te.lookAt(0,0,1),ne.up.set(0,-1,0),ne.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+a);for(const ie of y)this.add(ie),ie.updateMatrixWorld()}update(a,y){this.parent===null&&this.updateMatrixWorld();const{renderTarget:x,activeMipmapLevel:E}=this;this.coordinateSystem!==a.coordinateSystem&&(this.coordinateSystem=a.coordinateSystem,this.updateCoordinateSystem());const[z,ee,te,ne,ie,ae]=this.children,oe=a.getRenderTarget(),le=a.getActiveCubeFace(),de=a.getActiveMipmapLevel(),he=a.xr.enabled;a.xr.enabled=!1;const ye=x.texture.generateMipmaps;x.texture.generateMipmaps=!1,a.setRenderTarget(x,0,E),a.render(y,z),a.setRenderTarget(x,1,E),a.render(y,ee),a.setRenderTarget(x,2,E),a.render(y,te),a.setRenderTarget(x,3,E),a.render(y,ne),a.setRenderTarget(x,4,E),a.render(y,ie),x.texture.generateMipmaps=ye,a.setRenderTarget(x,5,E),a.render(y,ae),a.setRenderTarget(oe,le,de),a.xr.enabled=he,x.texture.needsPMREMUpdate=!0}}class Rv extends yu{constructor(a=[],y=Iu,x,E,z,ee,te,ne,ie,ae){super(a,y,x,E,z,ee,te,ne,ie,ae),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(a){this.image=a}}class P5 extends Gg{constructor(a=1,y={}){super(a,a,y),this.isWebGLCubeRenderTarget=!0;const x={width:a,height:a,depth:1},E=[x,x,x,x,x,x];this.texture=new Rv(E),this._setTextureOptions(y),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(a,y){this.texture.type=y.type,this.texture.colorSpace=y.colorSpace,this.texture.generateMipmaps=y.generateMipmaps,this.texture.minFilter=y.minFilter,this.texture.magFilter=y.magFilter;const x={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include } `,fragmentShader:` uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); } `},E=new Jg(5,5,5),z=new fp({name:"CubemapFromEquirect",uniforms:p0(x.uniforms),vertexShader:x.vertexShader,fragmentShader:x.fragmentShader,side:co,blending:El});z.uniforms.tEquirect.value=y;const ee=new Fo(E,z),te=y.minFilter;return y.minFilter===tu&&(y.minFilter=Io),new C5(1,10,this).update(a,ee),y.minFilter=te,ee.geometry.dispose(),ee.material.dispose(),this}clear(a,y=!0,x=!0,E=!0){const z=a.getRenderTarget();for(let ee=0;ee<6;ee++)a.setRenderTarget(this,ee),a.clear(y,x,E);a.setRenderTarget(z)}}class zv extends Wl{constructor(){super(),this.isGroup=!0,this.type="Group"}}const hO={type:"move"};class yE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new zv,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new zv,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ot,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ot),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new zv,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ot,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ot),this._grip}dispatchEvent(a){return this._targetRay!==null&&this._targetRay.dispatchEvent(a),this._grip!==null&&this._grip.dispatchEvent(a),this._hand!==null&&this._hand.dispatchEvent(a),this}connect(a){if(a&&a.hand){const y=this._hand;if(y)for(const x of a.hand.values())this._getHandJoint(y,x)}return this.dispatchEvent({type:"connected",data:a}),this}disconnect(a){return this.dispatchEvent({type:"disconnected",data:a}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(a,y,x){let E=null,z=null,ee=null;const te=this._targetRay,ne=this._grip,ie=this._hand;if(a&&y.session.visibilityState!=="visible-blurred"){if(ie&&a.hand){ee=!0;for(const ye of a.hand.values()){const Ae=y.getJointPose(ye,x),me=this._getHandJoint(ie,ye);Ae!==null&&(me.matrix.fromArray(Ae.transform.matrix),me.matrix.decompose(me.position,me.rotation,me.scale),me.matrixWorldNeedsUpdate=!0,me.jointRadius=Ae.radius),me.visible=Ae!==null}const ae=ie.joints["index-finger-tip"],oe=ie.joints["thumb-tip"],le=ae.position.distanceTo(oe.position),de=.02,he=.005;ie.inputState.pinching&&le>de+he?(ie.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:a.handedness,target:this})):!ie.inputState.pinching&&le<=de-he&&(ie.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:a.handedness,target:this}))}else ne!==null&&a.gripSpace&&(z=y.getPose(a.gripSpace,x),z!==null&&(ne.matrix.fromArray(z.transform.matrix),ne.matrix.decompose(ne.position,ne.rotation,ne.scale),ne.matrixWorldNeedsUpdate=!0,z.linearVelocity?(ne.hasLinearVelocity=!0,ne.linearVelocity.copy(z.linearVelocity)):ne.hasLinearVelocity=!1,z.angularVelocity?(ne.hasAngularVelocity=!0,ne.angularVelocity.copy(z.angularVelocity)):ne.hasAngularVelocity=!1));te!==null&&(E=y.getPose(a.targetRaySpace,x),E===null&&z!==null&&(E=z),E!==null&&(te.matrix.fromArray(E.transform.matrix),te.matrix.decompose(te.position,te.rotation,te.scale),te.matrixWorldNeedsUpdate=!0,E.linearVelocity?(te.hasLinearVelocity=!0,te.linearVelocity.copy(E.linearVelocity)):te.hasLinearVelocity=!1,E.angularVelocity?(te.hasAngularVelocity=!0,te.angularVelocity.copy(E.angularVelocity)):te.hasAngularVelocity=!1,this.dispatchEvent(hO)))}return te!==null&&(te.visible=E!==null),ne!==null&&(ne.visible=z!==null),ie!==null&&(ie.visible=ee!==null),this}_getHandJoint(a,y){if(a.joints[y.jointName]===void 0){const x=new zv;x.matrixAutoUpdate=!1,x.visible=!1,a.joints[y.jointName]=x,a.add(x)}return a.joints[y.jointName]}}class kC{constructor(a,y=25e-5){this.isFogExp2=!0,this.name="",this.color=new xi(a),this.density=y}clone(){return new kC(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class HC{constructor(a,y=1,x=1e3){this.isFog=!0,this.name="",this.color=new xi(a),this.near=y,this.far=x}clone(){return new HC(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class ky extends Wl{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Xd,this.environmentIntensity=1,this.environmentRotation=new Xd,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(a,y){return super.copy(a,y),a.background!==null&&(this.background=a.background.clone()),a.environment!==null&&(this.environment=a.environment.clone()),a.fog!==null&&(this.fog=a.fog.clone()),this.backgroundBlurriness=a.backgroundBlurriness,this.backgroundIntensity=a.backgroundIntensity,this.backgroundRotation.copy(a.backgroundRotation),this.environmentIntensity=a.environmentIntensity,this.environmentRotation.copy(a.environmentRotation),a.overrideMaterial!==null&&(this.overrideMaterial=a.overrideMaterial.clone()),this.matrixAutoUpdate=a.matrixAutoUpdate,this}toJSON(a){const y=super.toJSON(a);return this.fog!==null&&(y.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(y.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(y.object.backgroundIntensity=this.backgroundIntensity),y.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(y.object.environmentIntensity=this.environmentIntensity),y.object.environmentRotation=this.environmentRotation.toArray(),y}}class xE{constructor(a,y){this.isInterleavedBuffer=!0,this.array=a,this.stride=y,this.count=a!==void 0?a.length/y:0,this.usage=xe,this.updateRanges=[],this.version=0,this.uuid=sa()}onUploadCallback(){}set needsUpdate(a){a===!0&&this.version++}setUsage(a){return this.usage=a,this}addUpdateRange(a,y){this.updateRanges.push({start:a,count:y})}clearUpdateRanges(){this.updateRanges.length=0}copy(a){return this.array=new a.array.constructor(a.array),this.count=a.count,this.stride=a.stride,this.usage=a.usage,this}copyAt(a,y,x){a*=this.stride,x*=y.stride;for(let E=0,z=this.stride;Ea.far||y.push({distance:ne,point:Hy.clone(),uv:Mf.getInterpolation(Hy,bE,jy,EE,S5,jC,M5,new tr),face:null,object:this})}copy(a,y){return super.copy(a,y),a.center!==void 0&&this.center.copy(a.center),this.material=a.material,this}}function wE(b,a,y,x,E,z){x0.subVectors(b,y).addScalar(.5).multiply(x),E!==void 0?(Uy.x=z*x0.x-E*x0.y,Uy.y=E*x0.x+z*x0.y):Uy.copy(x0),b.copy(a),b.x+=Uy.x,b.y+=Uy.y,b.applyMatrix4(B5)}const CE=new ot,D5=new ot;class mO extends null{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(a){super.copy(a,!1);const y=a.levels;for(let x=0,E=y.length;x0){let x,E;for(x=1,E=y.length;x0){CE.setFromMatrixPosition(this.matrixWorld);const E=a.ray.origin.distanceTo(CE);this.getObjectForDistance(E).raycast(a,y)}}update(a){const y=this.levels;if(y.length>1){CE.setFromMatrixPosition(a.matrixWorld),D5.setFromMatrixPosition(this.matrixWorld);const x=CE.distanceTo(D5)/a.zoom;y[0].object.visible=!0;let E,z;for(E=1,z=y.length;E=ee)y[E-1].object.visible=!1,y[E].object.visible=!0;else break}for(this._currentLevel=E-1;E1?null:y.copy(a.start).addScaledVector(x,z)}intersectsLine(a){const y=this.distanceToPoint(a.start),x=this.distanceToPoint(a.end);return y<0&&x>0||x<0&&y>0}intersectsBox(a){return a.intersectsPlane(this)}intersectsSphere(a){return a.intersectsPlane(this)}coplanarPoint(a){return a.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(a,y){const x=y||EO.getNormalMatrix(a),E=this.coplanarPoint(WC).applyMatrix4(a),z=this.normal.applyMatrix3(x).normalize();return this.constant=-E.dot(z),this}translate(a){return this.constant-=a.dot(this.normal),this}equals(a){return a.normal.equals(this.normal)&&a.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Hv=new kc,wO=new tr(.5,.5),SE=new ot;class E0{constructor(a=new pp,y=new pp,x=new pp,E=new pp,z=new pp,ee=new pp){this.planes=[a,y,x,E,z,ee]}set(a,y,x,E,z,ee){const te=this.planes;return te[0].copy(a),te[1].copy(y),te[2].copy(x),te[3].copy(E),te[4].copy(z),te[5].copy(ee),this}copy(a){const y=this.planes;for(let x=0;x<6;x++)y[x].copy(a.planes[x]);return this}setFromProjectionMatrix(a,y=Ut,x=!1){const E=this.planes,z=a.elements,ee=z[0],te=z[1],ne=z[2],ie=z[3],ae=z[4],oe=z[5],le=z[6],de=z[7],he=z[8],ye=z[9],Ae=z[10],me=z[11],Ce=z[12],Ee=z[13],Be=z[14],Ne=z[15];if(E[0].setComponents(ie-ee,de-ae,me-he,Ne-Ce).normalize(),E[1].setComponents(ie+ee,de+ae,me+he,Ne+Ce).normalize(),E[2].setComponents(ie+te,de+oe,me+ye,Ne+Ee).normalize(),E[3].setComponents(ie-te,de-oe,me-ye,Ne-Ee).normalize(),x)E[4].setComponents(ne,le,Ae,Be).normalize(),E[5].setComponents(ie-ne,de-le,me-Ae,Ne-Be).normalize();else if(E[4].setComponents(ie-ne,de-le,me-Ae,Ne-Be).normalize(),y===Ut)E[5].setComponents(ie+ne,de+le,me+Ae,Ne+Be).normalize();else if(y===Sn)E[5].setComponents(ne,le,Ae,Be).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+y);return this}intersectsObject(a){if(a.boundingSphere!==void 0)a.boundingSphere===null&&a.computeBoundingSphere(),Hv.copy(a.boundingSphere).applyMatrix4(a.matrixWorld);else{const y=a.geometry;y.boundingSphere===null&&y.computeBoundingSphere(),Hv.copy(y.boundingSphere).applyMatrix4(a.matrixWorld)}return this.intersectsSphere(Hv)}intersectsSprite(a){Hv.center.set(0,0,0);const y=wO.distanceTo(a.center);return Hv.radius=.7071067811865476+y,Hv.applyMatrix4(a.matrixWorld),this.intersectsSphere(Hv)}intersectsSphere(a){const y=this.planes,x=a.center,E=-a.radius;for(let z=0;z<6;z++)if(y[z].distanceToPoint(x)0?a.max.x:a.min.x,SE.y=E.normal.y>0?a.max.y:a.min.y,SE.z=E.normal.z>0?a.max.z:a.min.z,E.distanceToPoint(SE)<0)return!1}return!0}containsPoint(a){const y=this.planes;for(let x=0;x<6;x++)if(y[x].distanceToPoint(a)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}const qp=new ls,_p=new E0;class ME{constructor(){this.coordinateSystem=Ut}intersectsObject(a,y){if(!y.isArrayCamera||y.cameras.length===0)return!1;for(let x=0;x=z.length&&z.push({start:-1,count:-1,z:-1,index:-1});const te=z[this.index];ee.push(te),this.index++,te.start=a,te.count=y,te.z=x,te.index=E}reset(){this.list.length=0,this.index=0}}const Qd=new ls,SO=new xi(1,1,1),H5=new E0,MO=new ME,DE=new zc,Uv=new kc,Xy=new ot,U5=new ot,DO=new ot,ZC=new BO,_c=new Fo,TE=null;function TO(b,a,y=0){const x=a.itemSize;if(b.isInterleavedBufferAttribute||b.array.constructor!==a.array.constructor){const E=b.count;for(let z=0;z65535?new Uint32Array(E):new Uint16Array(E);y.setIndex(new nl(z,1))}this._geometryInitialized=!0}}_validateGeometry(a){const y=this.geometry;if(!!a.getIndex()!=!!y.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const x in y.attributes){if(!a.hasAttribute(x))throw new Error(`THREE.BatchedMesh: Added geometry missing "${x}". All geometries must have consistent attributes.`);const E=a.getAttribute(x),z=y.getAttribute(x);if(E.itemSize!==z.itemSize||E.normalized!==z.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(a){const y=this._instanceInfo;if(a<0||a>=y.length||y[a].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${a}. Instance is either out of range or has been deleted.`)}validateGeometryId(a){const y=this._geometryInfo;if(a<0||a>=y.length||y[a].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${a}. Geometry is either out of range or has been deleted.`)}setCustomSort(a){return this.customSort=a,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new zc);const a=this.boundingBox,y=this._instanceInfo;a.makeEmpty();for(let x=0,E=y.length;x=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const x={visible:!0,active:!0,geometryIndex:a};let E=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(QC),E=this._availableInstanceIds.shift(),this._instanceInfo[E]=x):(E=this._instanceInfo.length,this._instanceInfo.push(x));const z=this._matricesTexture;Qd.identity().toArray(z.image.data,E*16),z.needsUpdate=!0;const ee=this._colorsTexture;return ee&&(SO.toArray(ee.image.data,E*4),ee.needsUpdate=!0),this._visibilityChanged=!0,E}addGeometry(a,y=-1,x=-1){this._initializeGeometry(a),this._validateGeometry(a);const E={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},z=this._geometryInfo;E.vertexStart=this._nextVertexStart,E.reservedVertexCount=y===-1?a.getAttribute("position").count:y;const ee=a.getIndex();if(ee!==null&&(E.indexStart=this._nextIndexStart,E.reservedIndexCount=x===-1?ee.count:x),E.indexStart!==-1&&E.indexStart+E.reservedIndexCount>this._maxIndexCount||E.vertexStart+E.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let ne;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(QC),ne=this._availableGeometryIds.shift(),z[ne]=E):(ne=this._geometryCount,this._geometryCount++,z.push(E)),this.setGeometryAt(ne,a),this._nextIndexStart=E.indexStart+E.reservedIndexCount,this._nextVertexStart=E.vertexStart+E.reservedVertexCount,ne}setGeometryAt(a,y){if(a>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(y);const x=this.geometry,E=x.getIndex()!==null,z=x.getIndex(),ee=y.getIndex(),te=this._geometryInfo[a];if(E&&ee.count>te.reservedIndexCount||y.attributes.position.count>te.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const ne=te.vertexStart,ie=te.reservedVertexCount;te.vertexCount=y.getAttribute("position").count;for(const ae in x.attributes){const oe=y.getAttribute(ae),le=x.getAttribute(ae);TO(oe,le,ne);const de=oe.itemSize;for(let he=oe.count,ye=ie;he=y.length||y[a].active===!1)return this;const x=this._instanceInfo;for(let E=0,z=x.length;Ete).sort((ee,te)=>x[ee].vertexStart-x[te].vertexStart),z=this.geometry;for(let ee=0,te=x.length;ee=this._geometryCount)return null;const x=this.geometry,E=this._geometryInfo[a];if(E.boundingBox===null){const z=new zc,ee=x.index,te=x.attributes.position;for(let ne=E.start,ie=E.start+E.count;ne=this._geometryCount)return null;const x=this.geometry,E=this._geometryInfo[a];if(E.boundingSphere===null){const z=new kc;this.getBoundingBoxAt(a,DE),DE.getCenter(z.center);const ee=x.index,te=x.attributes.position;let ne=0;for(let ie=E.start,ae=E.start+E.count;iete.active);if(Math.max(...x.map(te=>te.vertexStart+te.reservedVertexCount))>a)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${y}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...x.map(ne=>ne.indexStart+ne.reservedIndexCount))>y)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${y}. Cannot shrink further.`);const z=this.geometry;z.dispose(),this._maxVertexCount=a,this._maxIndexCount=y,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Fa,this._initializeGeometry(z));const ee=this.geometry;z.index&&jv(z.index.array,ee.index.array);for(const te in z.attributes)jv(z.attributes[te].array,ee.attributes[te].array)}raycast(a,y){const x=this._instanceInfo,E=this._geometryInfo,z=this.matrixWorld,ee=this.geometry;_c.material=this.material,_c.geometry.index=ee.index,_c.geometry.attributes=ee.attributes,_c.geometry.boundingBox===null&&(_c.geometry.boundingBox=new zc),_c.geometry.boundingSphere===null&&(_c.geometry.boundingSphere=new kc);for(let te=0,ne=x.length;teym(Dl({},y),{boundingBox:y.boundingBox!==null?y.boundingBox.clone():null,boundingSphere:y.boundingSphere!==null?y.boundingSphere.clone():null})),this._instanceInfo=a._instanceInfo.map(y=>Dl({},y)),this._availableInstanceIds=a._availableInstanceIds.slice(),this._availableGeometryIds=a._availableGeometryIds.slice(),this._nextIndexStart=a._nextIndexStart,this._nextVertexStart=a._nextVertexStart,this._geometryCount=a._geometryCount,this._maxInstanceCount=a._maxInstanceCount,this._maxVertexCount=a._maxVertexCount,this._maxIndexCount=a._maxIndexCount,this._geometryInitialized=a._geometryInitialized,this._multiDrawCounts=a._multiDrawCounts.slice(),this._multiDrawStarts=a._multiDrawStarts.slice(),this._indirectTexture=a._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=a._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=a._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(a,y,x,E,z){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const ee=E.getIndex(),te=ee===null?1:ee.array.BYTES_PER_ELEMENT,ne=this._instanceInfo,ie=this._multiDrawStarts,ae=this._multiDrawCounts,oe=this._geometryInfo,le=this.perObjectFrustumCulled,de=this._indirectTexture,he=de.image.data,ye=x.isArrayCamera?MO:H5;le&&!x.isArrayCamera&&(Qd.multiplyMatrices(x.projectionMatrix,x.matrixWorldInverse).multiply(this.matrixWorld),H5.setFromProjectionMatrix(Qd,x.coordinateSystem,x.reversedDepth));let Ae=0;if(this.sortObjects){Qd.copy(this.matrixWorld).invert(),Xy.setFromMatrixPosition(x.matrixWorld).applyMatrix4(Qd),U5.set(0,0,-1).transformDirection(x.matrixWorld).transformDirection(Qd);for(let Ee=0,Be=ne.length;Ee0){const E=y[x[0]];if(E!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let z=0,ee=E.length;zx)return;YC.applyMatrix4(b.matrixWorld);const ie=a.ray.origin.distanceTo(YC);if(!(iea.far))return{distance:ie,point:V5.clone().applyMatrix4(b.matrixWorld),index:ee,face:null,faceIndex:null,barycoord:null,object:b}}const G5=new ot,X5=new ot;class W5 extends null{constructor(a,y){super(a,y),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const a=this.geometry;if(a.index===null){const y=a.attributes.position,x=[];for(let E=0,z=y.count;E0){const E=y[x[0]];if(E!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let z=0,ee=E.length;zE.far)return;z.push({distance:ie,distanceToRay:Math.sqrt(te),point:ne,index:a,face:null,faceIndex:null,barycoord:null,object:ee})}}class fue extends null{constructor(a,y,x,E,z=Io,ee=Io,te,ne,ie){super(a,y,x,E,z,ee,te,ne,ie),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;const ae=this;function oe(){ae.needsUpdate=!0,ae._requestVideoFrameCallbackId=a.requestVideoFrameCallback(oe)}"requestVideoFrameCallback"in a&&(this._requestVideoFrameCallbackId=a.requestVideoFrameCallback(oe))}clone(){return new this.constructor(this.image).copy(this)}update(){const a=this.image;"requestVideoFrameCallback"in a===!1&&a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),super.dispose()}}class hue extends null{constructor(a,y,x,E,z,ee,te,ne){super({},a,y,x,E,z,ee,te,ne),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(a){this.image=a,this.needsUpdate=!0}}class Y5 extends yu{constructor(a,y){super({width:a,height:y}),this.isFramebufferTexture=!0,this.magFilter=fo,this.minFilter=fo,this.generateMipmaps=!1,this.needsUpdate=!0}}class LO extends null{constructor(a,y,x,E,z,ee,te,ne,ie,ae,oe,le){super(null,ee,te,ne,ie,ae,E,z,oe,le),this.isCompressedTexture=!0,this.image={width:y,height:x},this.mipmaps=a,this.flipY=!1,this.generateMipmaps=!1}}class pue extends null{constructor(a,y,x,E,z,ee){super(a,y,x,z,ee),this.isCompressedArrayTexture=!0,this.image.depth=E,this.wrapR=Nu,this.layerUpdates=new Set}addLayerUpdate(a){this.layerUpdates.add(a)}clearLayerUpdates(){this.layerUpdates.clear()}}class mue extends null{constructor(a,y,x){super(void 0,a[0].width,a[0].height,y,x,Iu),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=a}}class gue extends null{constructor(a,y,x,E,z,ee,te,ne,ie){super(a,y,x,E,z,ee,te,ne,ie),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Tf extends yu{constructor(a,y,x=Ao,E,z,ee,te=fo,ne=fo,ie,ae=gu,oe=1){if(ae!==gu&&ae!==Rc)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const le={width:a,height:y,depth:oe};super(le,E,z,ee,te,ne,ae,x,ie),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(a){return super.copy(a),this.source=new Fv(Object.assign({},a.image)),this.compareFunction=a.compareFunction,this}toJSON(a){const y=super.toJSON(a);return this.compareFunction!==null&&(y.compareFunction=this.compareFunction),y}}class qC extends Fa{constructor(a=1,y=1,x=4,E=8,z=1){super(),this.type="CapsuleGeometry",this.parameters={radius:a,height:y,capSegments:x,radialSegments:E,heightSegments:z},y=Math.max(0,y),x=Math.max(1,Math.floor(x)),E=Math.max(3,Math.floor(E)),z=Math.max(1,Math.floor(z));const ee=[],te=[],ne=[],ie=[],ae=y/2,oe=Math.PI/2*a,le=y,de=2*oe+le,he=x*2+z,ye=E+1,Ae=new ot,me=new ot;for(let Ce=0;Ce<=he;Ce++){let Ee=0,Be=0,Ne=0,Fe=0;if(Ce<=x){const Oe=Ce/x,ze=Oe*Math.PI/2;Be=-ae-a*Math.cos(ze),Ne=a*Math.sin(ze),Fe=-a*Math.cos(ze),Ee=Oe*oe}else if(Ce<=x+z){const Oe=(Ce-x)/z;Be=-ae+Oe*y,Ne=a,Fe=0,Ee=oe+Oe*le}else{const Oe=(Ce-x-z)/x,ze=Oe*Math.PI/2;Be=ae+a*Math.sin(ze),Ne=a*Math.cos(ze),Fe=a*Math.sin(ze),Ee=oe+le+Oe*oe}const ke=Math.max(0,Math.min(1,Ee/de));let Re=0;Ce===0?Re=.5/E:Ce===he&&(Re=-.5/E);for(let Oe=0;Oe<=E;Oe++){const ze=Oe/E,Le=ze*Math.PI*2,_e=Math.sin(Le),Et=Math.cos(Le);me.x=-Ne*Et,me.y=Be,me.z=Ne*_e,te.push(me.x,me.y,me.z),Ae.set(-Ne*Et,Fe,Ne*_e),Ae.normalize(),ne.push(Ae.x,Ae.y,Ae.z),ie.push(ze+Re,ke)}if(Ce>0){const Oe=(Ce-1)*ye;for(let ze=0;ze0&&Ee(!0),y>0&&Ee(!1)),this.setIndex(ae),this.setAttribute("position",new us(oe,3)),this.setAttribute("normal",new us(le,3)),this.setAttribute("uv",new us(de,2));function Ce(){const Be=new ot,Ne=new ot;let Fe=0;const ke=(y-a)/x;for(let Re=0;Re<=z;Re++){const Oe=[],ze=Re/z,Le=ze*(y-a)+a;for(let _e=0;_e<=E;_e++){const Et=_e/E,yt=Et*ne+te,jt=Math.sin(yt),tn=Math.cos(yt);Ne.x=Le*jt,Ne.y=-ze*x+Ae,Ne.z=Le*tn,oe.push(Ne.x,Ne.y,Ne.z),Be.set(jt,ke,tn).normalize(),le.push(Be.x,Be.y,Be.z),de.push(Et,1-ze),Oe.push(he++)}ye.push(Oe)}for(let Re=0;Re0||Oe!==0)&&(ae.push(ze,Le,Et),Fe+=3),(y>0||Oe!==z-1)&&(ae.push(Le,_e,Et),Fe+=3)}ie.addGroup(me,Fe,0),me+=Fe}function Ee(Be){const Ne=he,Fe=new tr,ke=new ot;let Re=0;const Oe=Be===!0?a:y,ze=Be===!0?1:-1;for(let _e=1;_e<=E;_e++)oe.push(0,Ae*ze,0),le.push(0,ze,0),de.push(.5,.5),he++;const Le=he;for(let _e=0;_e<=E;_e++){const yt=_e/E*ne+te,jt=Math.cos(yt),tn=Math.sin(yt);ke.x=Oe*tn,ke.y=Ae*ze,ke.z=Oe*jt,oe.push(ke.x,ke.y,ke.z),le.push(0,ze,0),Fe.x=jt*.5+.5,Fe.y=tn*.5*ze+.5,de.push(Fe.x,Fe.y),he++}for(let _e=0;_e.9&&ke<.1&&(Ee<.2&&(ee[Ce+0]+=1),Be<.2&&(ee[Ce+2]+=1),Ne<.2&&(ee[Ce+4]+=1))}}function le(Ce){z.push(Ce.x,Ce.y,Ce.z)}function de(Ce,Ee){const Be=Ce*3;Ee.x=a[Be+0],Ee.y=a[Be+1],Ee.z=a[Be+2]}function he(){const Ce=new ot,Ee=new ot,Be=new ot,Ne=new ot,Fe=new tr,ke=new tr,Re=new tr;for(let Oe=0,ze=0;Oe0)ne=E-1;else{ne=E;break}if(E=ne,x[E]===ee)return E/(z-1);const ae=x[E],le=x[E+1]-ae,de=(ee-ae)/le;return(E+de)/(z-1)}getTangent(a,y){let E=a-1e-4,z=a+1e-4;E<0&&(E=0),z>1&&(z=1);const ee=this.getPoint(E),te=this.getPoint(z),ne=y||(ee.isVector2?new tr:new ot);return ne.copy(te).sub(ee).normalize(),ne}getTangentAt(a,y){const x=this.getUtoTmapping(a);return this.getTangent(x,y)}computeFrenetFrames(a,y=!1){const x=new ot,E=[],z=[],ee=[],te=new ot,ne=new ls;for(let de=0;de<=a;de++){const he=de/a;E[de]=this.getTangentAt(he,new ot)}z[0]=new ot,ee[0]=new ot;let ie=Number.MAX_VALUE;const ae=Math.abs(E[0].x),oe=Math.abs(E[0].y),le=Math.abs(E[0].z);ae<=ie&&(ie=ae,x.set(1,0,0)),oe<=ie&&(ie=oe,x.set(0,1,0)),le<=ie&&x.set(0,0,1),te.crossVectors(E[0],x).normalize(),z[0].crossVectors(E[0],te),ee[0].crossVectors(E[0],z[0]);for(let de=1;de<=a;de++){if(z[de]=z[de-1].clone(),ee[de]=ee[de-1].clone(),te.crossVectors(E[de-1],E[de]),te.length()>Number.EPSILON){te.normalize();const he=Math.acos(Yi(E[de-1].dot(E[de]),-1,1));z[de].applyMatrix4(ne.makeRotationAxis(te,he))}ee[de].crossVectors(E[de],z[de])}if(y===!0){let de=Math.acos(Yi(z[0].dot(z[a]),-1,1));de/=a,E[0].dot(te.crossVectors(z[0],z[a]))>0&&(de=-de);for(let he=1;he<=a;he++)z[he].applyMatrix4(ne.makeRotationAxis(E[he],de*he)),ee[he].crossVectors(E[he],z[he])}return{tangents:E,normals:z,binormals:ee}}clone(){return new this.constructor().copy(this)}copy(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}toJSON(){const a={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return a.arcLengthDivisions=this.arcLengthDivisions,a.type=this.type,a}fromJSON(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}}class tP extends $p{constructor(a=0,y=0,x=1,E=1,z=0,ee=Math.PI*2,te=!1,ne=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=a,this.aY=y,this.xRadius=x,this.yRadius=E,this.aStartAngle=z,this.aEndAngle=ee,this.aClockwise=te,this.aRotation=ne}getPoint(a,y=new tr){const x=y,E=Math.PI*2;let z=this.aEndAngle-this.aStartAngle;const ee=Math.abs(z)E;)z-=E;z0?0:(Math.floor(Math.abs(te)/z)+1)*z:ne===0&&te===z-1&&(te=z-2,ne=1);let ie,ae;this.closed||te>0?ie=E[(te-1)%z]:(UE.subVectors(E[0],E[1]).add(E[0]),ie=UE);const oe=E[te%z],le=E[(te+1)%z];if(this.closed||te+2E.length-2?E.length-1:ee+1],oe=E[ee>E.length-3?E.length-1:ee+2];return x.set(J5(te,ne.x,ie.x,ae.x,oe.x),J5(te,ne.y,ie.y,ae.y,oe.y)),x}copy(a){super.copy(a),this.points=[];for(let y=0,x=a.points.length;y=x){const ee=E[z]-x,te=this.curves[z],ne=te.getLength(),ie=ne===0?0:1-ee/ne;return te.getPointAt(ie,y)}z++}return null}getLength(){const a=this.getCurveLengths();return a[a.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const a=[];let y=0;for(let x=0,E=this.curves.length;x1&&!y[y.length-1].equals(y[0])&&y.push(y[0]),y}copy(a){super.copy(a),this.curves=[];for(let y=0,x=a.curves.length;y0){const oe=ie.getPoint(0);oe.equals(this.currentPoint)||this.lineTo(oe.x,oe.y)}this.curves.push(ie);const ae=ie.getPoint(1);return this.currentPoint.copy(ae),this}copy(a){return super.copy(a),this.currentPoint.copy(a.currentPoint),this}toJSON(){const a=super.toJSON();return a.currentPoint=this.currentPoint.toArray(),a}fromJSON(a){return super.fromJSON(a),this.currentPoint.fromArray(a.currentPoint),this}}class C0 extends oP{constructor(a){super(a),this.uuid=sa(),this.type="Shape",this.holes=[]}getPointsHoles(a){const y=[];for(let x=0,E=this.holes.length;x80*y){te=1/0,ne=1/0;let ae=-1/0,oe=-1/0;for(let le=y;leae&&(ae=de),he>oe&&(oe=he)}ie=Math.max(ae-te,oe-ne),ie=ie!==0?32767/ie:0}return Ky(z,ee,y,te,ne,ie,0),ee}function tD(b,a,y,x,E){let z;if(E===uR(b,a,y,x)>0)for(let ee=a;ee=a;ee-=x)z=sD(ee/x|0,b[ee],b[ee+1],z);return z&&P0(z,z.next)&&($y(z),z=z.next),z}function Gv(b,a){if(!b)return b;a||(a=b);let y=b,x;do if(x=!1,!y.steiner&&(P0(y,y.next)||Ql(y.prev,y,y.next)===0)){if($y(y),y=a=y.prev,y===y.next)break;x=!0}else y=y.next;while(x||y!==a);return a}function Ky(b,a,y,x,E,z,ee){if(!b)return;!ee&&z&&rR(b,x,E,z);let te=b;for(;b.prev!==b.next;){const ne=b.prev,ie=b.next;if(z?JO(b,x,E,z):YO(b)){a.push(ne.i,b.i,ie.i),$y(b),b=ie.next,te=ie.next;continue}if(b=ie,b===te){ee?ee===1?(b=KO(Gv(b),a),Ky(b,a,y,x,E,z,2)):ee===2&&qO(b,a,y,x,E,z):Ky(Gv(b),a,y,x,E,z,1);break}}}function YO(b){const a=b.prev,y=b,x=b.next;if(Ql(a,y,x)>=0)return!1;const E=a.x,z=y.x,ee=x.x,te=a.y,ne=y.y,ie=x.y,ae=Math.min(E,z,ee),oe=Math.min(te,ne,ie),le=Math.max(E,z,ee),de=Math.max(te,ne,ie);let he=x.next;for(;he!==a;){if(he.x>=ae&&he.x<=le&&he.y>=oe&&he.y<=de&&qy(E,te,z,ne,ee,ie,he.x,he.y)&&Ql(he.prev,he,he.next)>=0)return!1;he=he.next}return!0}function JO(b,a,y,x){const E=b.prev,z=b,ee=b.next;if(Ql(E,z,ee)>=0)return!1;const te=E.x,ne=z.x,ie=ee.x,ae=E.y,oe=z.y,le=ee.y,de=Math.min(te,ne,ie),he=Math.min(ae,oe,le),ye=Math.max(te,ne,ie),Ae=Math.max(ae,oe,le),me=lP(de,he,a,y,x),Ce=lP(ye,Ae,a,y,x);let Ee=b.prevZ,Be=b.nextZ;for(;Ee&&Ee.z>=me&&Be&&Be.z<=Ce;){if(Ee.x>=de&&Ee.x<=ye&&Ee.y>=he&&Ee.y<=Ae&&Ee!==E&&Ee!==ee&&qy(te,ae,ne,oe,ie,le,Ee.x,Ee.y)&&Ql(Ee.prev,Ee,Ee.next)>=0||(Ee=Ee.prevZ,Be.x>=de&&Be.x<=ye&&Be.y>=he&&Be.y<=Ae&&Be!==E&&Be!==ee&&qy(te,ae,ne,oe,ie,le,Be.x,Be.y)&&Ql(Be.prev,Be,Be.next)>=0))return!1;Be=Be.nextZ}for(;Ee&&Ee.z>=me;){if(Ee.x>=de&&Ee.x<=ye&&Ee.y>=he&&Ee.y<=Ae&&Ee!==E&&Ee!==ee&&qy(te,ae,ne,oe,ie,le,Ee.x,Ee.y)&&Ql(Ee.prev,Ee,Ee.next)>=0)return!1;Ee=Ee.prevZ}for(;Be&&Be.z<=Ce;){if(Be.x>=de&&Be.x<=ye&&Be.y>=he&&Be.y<=Ae&&Be!==E&&Be!==ee&&qy(te,ae,ne,oe,ie,le,Be.x,Be.y)&&Ql(Be.prev,Be,Be.next)>=0)return!1;Be=Be.nextZ}return!0}function KO(b,a){let y=b;do{const x=y.prev,E=y.next.next;!P0(x,E)&&rD(x,y,y.next,E)&&_y(x,E)&&_y(E,x)&&(a.push(x.i,y.i,E.i),$y(y),$y(y.next),y=b=E),y=y.next}while(y!==b);return Gv(y)}function qO(b,a,y,x,E,z){let ee=b;do{let te=ee.next.next;for(;te!==ee.prev;){if(ee.i!==te.i&&aR(ee,te)){let ne=iD(ee,te);ee=Gv(ee,ee.next),ne=Gv(ne,ne.next),Ky(ee,a,y,x,E,z,0),Ky(ne,a,y,x,E,z,0);return}te=te.next}ee=ee.next}while(ee!==b)}function _O(b,a,y,x){const E=[];for(let z=0,ee=a.length;z=y.next.y&&y.next.y!==y.y){const oe=y.x+(E-y.y)*(y.next.x-y.x)/(y.next.y-y.y);if(oe<=x&&oe>z&&(z=oe,ee=y.x=y.x&&y.x>=ne&&x!==y.x&&nD(Eee.x||y.x===ee.x&&nR(ee,y)))&&(ee=y,ae=oe)}y=y.next}while(y!==te);return ee}function nR(b,a){return Ql(b.prev,b,a.prev)<0&&Ql(a.next,b,b.next)<0}function rR(b,a,y,x){let E=b;do E.z===0&&(E.z=lP(E.x,E.y,a,y,x)),E.prevZ=E.prev,E.nextZ=E.next,E=E.next;while(E!==b);E.prevZ.nextZ=null,E.prevZ=null,iR(E)}function iR(b){let a,y=1;do{let x=b,E;b=null;let z=null;for(a=0;x;){a++;let ee=x,te=0;for(let ie=0;ie0||ne>0&ⅇ)te!==0&&(ne===0||!ee||x.z<=ee.z)?(E=x,x=x.nextZ,te--):(E=ee,ee=ee.nextZ,ne--),z?z.nextZ=E:b=E,E.prevZ=z,z=E;x=ee}z.nextZ=null,y*=2}while(a>1);return b}function lP(b,a,y,x,E){return b=(b-y)*E|0,a=(a-x)*E|0,b=(b|b<<8)&16711935,b=(b|b<<4)&252645135,b=(b|b<<2)&858993459,b=(b|b<<1)&1431655765,a=(a|a<<8)&16711935,a=(a|a<<4)&252645135,a=(a|a<<2)&858993459,a=(a|a<<1)&1431655765,b|a<<1}function sR(b){let a=b,y=b;do(a.x=(b-ee)*(z-te)&&(b-ee)*(x-te)>=(y-ee)*(a-te)&&(y-ee)*(z-te)>=(E-ee)*(x-te)}function qy(b,a,y,x,E,z,ee,te){return!(b===ee&&a===te)&&nD(b,a,y,x,E,z,ee,te)}function aR(b,a){return b.next.i!==a.i&&b.prev.i!==a.i&&!oR(b,a)&&(_y(b,a)&&_y(a,b)&&lR(b,a)&&(Ql(b.prev,b,a.prev)||Ql(b,a.prev,a))||P0(b,a)&&Ql(b.prev,b,b.next)>0&&Ql(a.prev,a,a.next)>0)}function Ql(b,a,y){return(a.y-b.y)*(y.x-a.x)-(a.x-b.x)*(y.y-a.y)}function P0(b,a){return b.x===a.x&&b.y===a.y}function rD(b,a,y,x){const E=GE(Ql(b,a,y)),z=GE(Ql(b,a,x)),ee=GE(Ql(y,x,b)),te=GE(Ql(y,x,a));return!!(E!==z&&ee!==te||E===0&&VE(b,y,a)||z===0&&VE(b,x,a)||ee===0&&VE(y,b,x)||te===0&&VE(y,a,x))}function VE(b,a,y){return a.x<=Math.max(b.x,y.x)&&a.x>=Math.min(b.x,y.x)&&a.y<=Math.max(b.y,y.y)&&a.y>=Math.min(b.y,y.y)}function GE(b){return b>0?1:b<0?-1:0}function oR(b,a){let y=b;do{if(y.i!==b.i&&y.next.i!==b.i&&y.i!==a.i&&y.next.i!==a.i&&rD(y,y.next,b,a))return!0;y=y.next}while(y!==b);return!1}function _y(b,a){return Ql(b.prev,b,b.next)<0?Ql(b,a,b.next)>=0&&Ql(b,b.prev,a)>=0:Ql(b,a,b.prev)<0||Ql(b,b.next,a)<0}function lR(b,a){let y=b,x=!1;const E=(b.x+a.x)/2,z=(b.y+a.y)/2;do y.y>z!=y.next.y>z&&y.next.y!==y.y&&E<(y.next.x-y.x)*(z-y.y)/(y.next.y-y.y)+y.x&&(x=!x),y=y.next;while(y!==b);return x}function iD(b,a){const y=uP(b.i,b.x,b.y),x=uP(a.i,a.x,a.y),E=b.next,z=a.prev;return b.next=a,a.prev=b,y.next=E,E.prev=y,x.next=y,y.prev=x,z.next=x,x.prev=z,x}function sD(b,a,y,x){const E=uP(b,a,y);return x?(E.next=x.next,E.prev=x,x.next.prev=E,x.next=E):(E.prev=E,E.next=E),E}function $y(b){b.next.prev=b.prev,b.prev.next=b.next,b.prevZ&&(b.prevZ.nextZ=b.nextZ),b.nextZ&&(b.nextZ.prevZ=b.prevZ)}function uP(b,a,y){return{i:b,x:a,y,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function uR(b,a,y,x){let E=0;for(let z=a,ee=y-x;z2&&b[a-1].equals(b[0])&&b.pop()}function oD(b,a){for(let y=0;yNumber.EPSILON){const or=Math.sqrt(et),Pn=Math.sqrt(Es*Es+Pt*Pt),Xn=qn.x-ms/or,Li=qn.y+Jr/or,Kr=vr.x-Pt/Pn,es=vr.y+Es/Pn,qi=((Kr-Xn)*Pt-(es-Li)*Es)/(Jr*Pt-ms*Es);cr=Xn+Jr*qi-En.x,Vr=Li+ms*qi-En.y;const Zr=cr*cr+Vr*Vr;if(Zr<=2)return new tr(cr,Vr);kr=Math.sqrt(Zr/2)}else{let or=!1;Jr>Number.EPSILON?Es>Number.EPSILON&&(or=!0):Jr<-Number.EPSILON?Es<-Number.EPSILON&&(or=!0):Math.sign(ms)===Math.sign(Pt)&&(or=!0),or?(cr=-ms,Vr=Jr,kr=Math.sqrt(et)):(cr=Jr,Vr=ms,kr=Math.sqrt(et/2))}return new tr(cr/kr,Vr/kr)}const pt=[];for(let En=0,qn=jt.length,vr=qn-1,cr=En+1;En=0;En--){const qn=En/Ae,vr=de*Math.cos(qn*Math.PI/2),cr=he*Math.sin(qn*Math.PI/2)+ye;for(let Vr=0,kr=jt.length;Vr=0;){const cr=vr;let Vr=vr-1;Vr<0&&(Vr=En.length-1);for(let kr=0,Jr=ae+Ae*2;kr0)&&de.push(Ee,Be,Fe),(me!==x-1||ne0!=a>0&&this.version++,this._anisotropy=a}get clearcoat(){return this._clearcoat}set clearcoat(a){this._clearcoat>0!=a>0&&this.version++,this._clearcoat=a}get iridescence(){return this._iridescence}set iridescence(a){this._iridescence>0!=a>0&&this.version++,this._iridescence=a}get dispersion(){return this._dispersion}set dispersion(a){this._dispersion>0!=a>0&&this.version++,this._dispersion=a}get sheen(){return this._sheen}set sheen(a){this._sheen>0!=a>0&&this.version++,this._sheen=a}get transmission(){return this._transmission}set transmission(a){this._transmission>0!=a>0&&this.version++,this._transmission=a}copy(a){return super.copy(a),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=a.anisotropy,this.anisotropyRotation=a.anisotropyRotation,this.anisotropyMap=a.anisotropyMap,this.clearcoat=a.clearcoat,this.clearcoatMap=a.clearcoatMap,this.clearcoatRoughness=a.clearcoatRoughness,this.clearcoatRoughnessMap=a.clearcoatRoughnessMap,this.clearcoatNormalMap=a.clearcoatNormalMap,this.clearcoatNormalScale.copy(a.clearcoatNormalScale),this.dispersion=a.dispersion,this.ior=a.ior,this.iridescence=a.iridescence,this.iridescenceMap=a.iridescenceMap,this.iridescenceIOR=a.iridescenceIOR,this.iridescenceThicknessRange=[...a.iridescenceThicknessRange],this.iridescenceThicknessMap=a.iridescenceThicknessMap,this.sheen=a.sheen,this.sheenColor.copy(a.sheenColor),this.sheenColorMap=a.sheenColorMap,this.sheenRoughness=a.sheenRoughness,this.sheenRoughnessMap=a.sheenRoughnessMap,this.transmission=a.transmission,this.transmissionMap=a.transmissionMap,this.thickness=a.thickness,this.thicknessMap=a.thicknessMap,this.attenuationDistance=a.attenuationDistance,this.attenuationColor.copy(a.attenuationColor),this.specularIntensity=a.specularIntensity,this.specularIntensityMap=a.specularIntensityMap,this.specularColor.copy(a.specularColor),this.specularColorMap=a.specularColorMap,this}}class yP extends Hc{constructor(a){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new xi(16777215),this.specular=new xi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new xi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=wt,this.normalScale=new tr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Xd,this.combine=jl,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.specular.copy(a.specular),this.shininess=a.shininess,this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.envMapRotation.copy(a.envMapRotation),this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class fD extends Hc{constructor(a){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new xi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new xi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=wt,this.normalScale=new tr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.gradientMap=a.gradientMap,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}class hD extends Hc{constructor(a){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=wt,this.normalScale=new tr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(a)}copy(a){return super.copy(a),this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.flatShading=a.flatShading,this}}class xP extends Hc{constructor(a){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new xi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new xi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=wt,this.normalScale=new tr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Xd,this.combine=jl,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.envMapRotation.copy(a.envMapRotation),this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class pD extends Hc{constructor(a){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Ie,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(a)}copy(a){return super.copy(a),this.depthPacking=a.depthPacking,this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this}}class mD extends Hc{constructor(a){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(a)}copy(a){return super.copy(a),this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this}}class gD extends Hc{constructor(a){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new xi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=wt,this.normalScale=new tr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.defines={MATCAP:""},this.color.copy(a.color),this.matcap=a.matcap,this.map=a.map,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.flatShading=a.flatShading,this.fog=a.fog,this}}class bP extends $c{constructor(a){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(a)}copy(a){return super.copy(a),this.scale=a.scale,this.dashSize=a.dashSize,this.gapSize=a.gapSize,this}}function Xv(b,a){return!b||b.constructor===a?b:typeof a.BYTES_PER_ELEMENT=="number"?new a(b):Array.prototype.slice.call(b)}function vD(b){return ArrayBuffer.isView(b)&&!(b instanceof DataView)}function AD(b){function a(E,z){return b[E]-b[z]}const y=b.length,x=new Array(y);for(let E=0;E!==y;++E)x[E]=E;return x.sort(a),x}function EP(b,a,y){const x=b.length,E=new b.constructor(x);for(let z=0,ee=0;ee!==x;++z){const te=y[z]*a;for(let ne=0;ne!==a;++ne)E[ee++]=b[te+ne]}return E}function wP(b,a,y,x){let E=1,z=b[0];for(;z!==void 0&&z[x]===void 0;)z=b[E++];if(z===void 0)return;let ee=z[x];if(ee!==void 0)if(Array.isArray(ee))do ee=z[x],ee!==void 0&&(a.push(z.time),y.push(...ee)),z=b[E++];while(z!==void 0);else if(ee.toArray!==void 0)do ee=z[x],ee!==void 0&&(a.push(z.time),ee.toArray(y,y.length)),z=b[E++];while(z!==void 0);else do ee=z[x],ee!==void 0&&(a.push(z.time),y.push(ee)),z=b[E++];while(z!==void 0)}function gR(b,a,y,x,E=30){const z=b.clone();z.name=a;const ee=[];for(let ne=0;ne=x)){oe.push(ie.times[de]);for(let ye=0;yez.tracks[ne].times[0]&&(te=z.tracks[ne].times[0]);for(let ne=0;ne=te.times[he]){const me=he*oe+ae,Ce=me+oe-ae;ye=te.values.slice(me,Ce)}else{const me=te.createInterpolant(),Ce=ae,Ee=oe-ae;me.evaluate(z),ye=me.resultBuffer.slice(Ce,Ee)}ne==="quaternion"&&new Ll().fromArray(ye).normalize().conjugate().toArray(ye);const Ae=ie.times.length;for(let me=0;me=z)){const te=y[1];a=z)break t}ee=x,x=0;break n}break e}for(;x>>1;ay;)--ee;if(++ee,z!==0||ee!==E){z>=ee&&(ee=Math.max(ee,1),z=ee-1);const te=this.getValueSize();this.times=x.slice(z,ee),this.values=this.values.slice(z*te,ee*te)}return this}validate(){let a=!0;const y=this.getValueSize();y-Math.floor(y)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);const x=this.times,E=this.values,z=x.length;z===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);let ee=null;for(let te=0;te!==z;te++){const ne=x[te];if(typeof ne=="number"&&isNaN(ne)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,te,ne),a=!1;break}if(ee!==null&&ee>ne){console.error("THREE.KeyframeTrack: Out of order keys.",this,te,ne,ee),a=!1;break}ee=ne}if(E!==void 0&&vD(E))for(let te=0,ne=E.length;te!==ne;++te){const ie=E[te];if(isNaN(ie)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,te,ie),a=!1;break}}return a}optimize(){const a=this.times.slice(),y=this.values.slice(),x=this.getValueSize(),E=this.getInterpolation()===Vg,z=a.length-1;let ee=1;for(let te=1;te0){a[ee]=a[z];for(let te=z*x,ne=ee*x,ie=0;ie!==x;++ie)y[ne+ie]=y[te+ie];++ee}return ee!==a.length?(this.times=a.slice(0,ee),this.values=y.slice(0,ee*x)):(this.times=a,this.values=y),this}clone(){const a=this.times.slice(),y=this.values.slice(),x=this.constructor,E=new x(this.name,a,y);return E.createInterpolant=this.createInterpolant,E}}gp.prototype.ValueTypeName="",gp.prototype.TimeBufferType=Float32Array,gp.prototype.ValueBufferType=Float32Array,gp.prototype.DefaultInterpolation=km;class S0 extends gp{constructor(a,y,x){super(a,y,x)}}S0.prototype.ValueTypeName="bool",S0.prototype.ValueBufferType=Array,S0.prototype.DefaultInterpolation=Ko,S0.prototype.InterpolantFactoryMethodLinear=void 0,S0.prototype.InterpolantFactoryMethodSmooth=void 0;class xD extends gp{constructor(a,y,x,E){super(a,y,x,E)}}xD.prototype.ValueTypeName="color";class ZE extends gp{constructor(a,y,x,E){super(a,y,x,E)}}ZE.prototype.ValueTypeName="number";class xR extends QE{constructor(a,y,x,E){super(a,y,x,E)}interpolate_(a,y,x,E){const z=this.resultBuffer,ee=this.sampleValues,te=this.valueSize,ne=(x-y)/(E-y);let ie=a*te;for(let ae=ie+te;ie!==ae;ie+=4)Ll.slerpFlat(z,0,ee,ie-te,ee,ie,ne);return z}}class YE extends gp{constructor(a,y,x,E){super(a,y,x,E)}InterpolantFactoryMethodLinear(a){return new xR(this.times,this.values,this.getValueSize(),a)}}YE.prototype.ValueTypeName="quaternion",YE.prototype.InterpolantFactoryMethodSmooth=void 0;class M0 extends gp{constructor(a,y,x){super(a,y,x)}}M0.prototype.ValueTypeName="string",M0.prototype.ValueBufferType=Array,M0.prototype.DefaultInterpolation=Ko,M0.prototype.InterpolantFactoryMethodLinear=void 0,M0.prototype.InterpolantFactoryMethodSmooth=void 0;class JE extends gp{constructor(a,y,x,E){super(a,y,x,E)}}JE.prototype.ValueTypeName="vector";class KE{constructor(a="",y=-1,x=[],E=se){this.name=a,this.tracks=x,this.duration=y,this.blendMode=E,this.uuid=sa(),this.duration<0&&this.resetDuration()}static parse(a){const y=[],x=a.tracks,E=1/(a.fps||1);for(let ee=0,te=x.length;ee!==te;++ee)y.push(ER(x[ee]).scale(E));const z=new this(a.name,a.duration,y,a.blendMode);return z.uuid=a.uuid,z}static toJSON(a){const y=[],x=a.tracks,E={name:a.name,duration:a.duration,tracks:y,uuid:a.uuid,blendMode:a.blendMode};for(let z=0,ee=x.length;z!==ee;++z)y.push(gp.toJSON(x[z]));return E}static CreateFromMorphTargetSequence(a,y,x,E){const z=y.length,ee=[];for(let te=0;te1){const oe=ae[1];let le=E[oe];le||(E[oe]=le=[]),le.push(ie)}}const ee=[];for(const te in E)ee.push(this.CreateFromMorphTargetSequence(te,E[te],y,x));return ee}static parseAnimation(a,y){if(console.warn("THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185"),!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const x=function(oe,le,de,he,ye){if(de.length!==0){const Ae=[],me=[];wP(de,Ae,me,he),Ae.length!==0&&ye.push(new oe(le,Ae,me))}},E=[],z=a.name||"default",ee=a.fps||30,te=a.blendMode;let ne=a.length||-1;const ie=a.hierarchy||[];for(let oe=0;oe{y&&y(z),this.manager.itemEnd(a)},0),z;if(_m[a]!==void 0){_m[a].push({onLoad:y,onProgress:x,onError:E});return}_m[a]=[],_m[a].push({onLoad:y,onProgress:x,onError:E});const ee=new Request(a,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),te=this.mimeType,ne=this.responseType;fetch(ee).then(ie=>{if(ie.status===200||ie.status===0){if(ie.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||ie.body===void 0||ie.body.getReader===void 0)return ie;const ae=_m[a],oe=ie.body.getReader(),le=ie.headers.get("X-File-Size")||ie.headers.get("Content-Length"),de=le?parseInt(le):0,he=de!==0;let ye=0;const Ae=new ReadableStream({start(me){Ce();function Ce(){oe.read().then(({done:Ee,value:Be})=>{if(Ee)me.close();else{ye+=Be.byteLength;const Ne=new ProgressEvent("progress",{lengthComputable:he,loaded:ye,total:de});for(let Fe=0,ke=ae.length;Fe{me.error(Ee)})}}});return new Response(Ae)}else throw new CR(`fetch for "${ie.url}" responded with ${ie.status}: ${ie.statusText}`,ie)}).then(ie=>{switch(ne){case"arraybuffer":return ie.arrayBuffer();case"blob":return ie.blob();case"document":return ie.text().then(ae=>new DOMParser().parseFromString(ae,te));case"json":return ie.json();default:if(te==="")return ie.text();{const oe=/charset="?([^;"\s]*)"?/i.exec(te),le=oe&&oe[1]?oe[1].toLowerCase():void 0,de=new TextDecoder(le);return ie.arrayBuffer().then(he=>de.decode(he))}}}).then(ie=>{qm.add(`file:${a}`,ie);const ae=_m[a];delete _m[a];for(let oe=0,le=ae.length;oe{const ae=_m[a];if(ae===void 0)throw this.manager.itemError(a),ie;delete _m[a];for(let oe=0,le=ae.length;oe{this.manager.itemEnd(a)}),this.manager.itemStart(a)}setResponseType(a){return this.responseType=a,this}setMimeType(a){return this.mimeType=a,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}class Aue extends null{constructor(a){super(a)}load(a,y,x,E){const z=this,ee=new qg(this.manager);ee.setPath(this.path),ee.setRequestHeader(this.requestHeader),ee.setWithCredentials(this.withCredentials),ee.load(a,function(te){try{y(z.parse(JSON.parse(te)))}catch(ne){E?E(ne):console.error(ne),z.manager.itemError(a)}},x,E)}parse(a){const y=[];for(let x=0;x0:E.vertexColors=a.vertexColors),a.uniforms!==void 0)for(const z in a.uniforms){const ee=a.uniforms[z];switch(E.uniforms[z]={},ee.type){case"t":E.uniforms[z].value=x(ee.value);break;case"c":E.uniforms[z].value=new xi().setHex(ee.value);break;case"v2":E.uniforms[z].value=new tr().fromArray(ee.value);break;case"v3":E.uniforms[z].value=new ot().fromArray(ee.value);break;case"v4":E.uniforms[z].value=new Ws().fromArray(ee.value);break;case"m3":E.uniforms[z].value=new Aa().fromArray(ee.value);break;case"m4":E.uniforms[z].value=new ls().fromArray(ee.value);break;default:E.uniforms[z].value=ee.value}}if(a.defines!==void 0&&(E.defines=a.defines),a.vertexShader!==void 0&&(E.vertexShader=a.vertexShader),a.fragmentShader!==void 0&&(E.fragmentShader=a.fragmentShader),a.glslVersion!==void 0&&(E.glslVersion=a.glslVersion),a.extensions!==void 0)for(const z in a.extensions)E.extensions[z]=a.extensions[z];if(a.lights!==void 0&&(E.lights=a.lights),a.clipping!==void 0&&(E.clipping=a.clipping),a.size!==void 0&&(E.size=a.size),a.sizeAttenuation!==void 0&&(E.sizeAttenuation=a.sizeAttenuation),a.map!==void 0&&(E.map=x(a.map)),a.matcap!==void 0&&(E.matcap=x(a.matcap)),a.alphaMap!==void 0&&(E.alphaMap=x(a.alphaMap)),a.bumpMap!==void 0&&(E.bumpMap=x(a.bumpMap)),a.bumpScale!==void 0&&(E.bumpScale=a.bumpScale),a.normalMap!==void 0&&(E.normalMap=x(a.normalMap)),a.normalMapType!==void 0&&(E.normalMapType=a.normalMapType),a.normalScale!==void 0){let z=a.normalScale;Array.isArray(z)===!1&&(z=[z,z]),E.normalScale=new tr().fromArray(z)}return a.displacementMap!==void 0&&(E.displacementMap=x(a.displacementMap)),a.displacementScale!==void 0&&(E.displacementScale=a.displacementScale),a.displacementBias!==void 0&&(E.displacementBias=a.displacementBias),a.roughnessMap!==void 0&&(E.roughnessMap=x(a.roughnessMap)),a.metalnessMap!==void 0&&(E.metalnessMap=x(a.metalnessMap)),a.emissiveMap!==void 0&&(E.emissiveMap=x(a.emissiveMap)),a.emissiveIntensity!==void 0&&(E.emissiveIntensity=a.emissiveIntensity),a.specularMap!==void 0&&(E.specularMap=x(a.specularMap)),a.specularIntensityMap!==void 0&&(E.specularIntensityMap=x(a.specularIntensityMap)),a.specularColorMap!==void 0&&(E.specularColorMap=x(a.specularColorMap)),a.envMap!==void 0&&(E.envMap=x(a.envMap)),a.envMapRotation!==void 0&&E.envMapRotation.fromArray(a.envMapRotation),a.envMapIntensity!==void 0&&(E.envMapIntensity=a.envMapIntensity),a.reflectivity!==void 0&&(E.reflectivity=a.reflectivity),a.refractionRatio!==void 0&&(E.refractionRatio=a.refractionRatio),a.lightMap!==void 0&&(E.lightMap=x(a.lightMap)),a.lightMapIntensity!==void 0&&(E.lightMapIntensity=a.lightMapIntensity),a.aoMap!==void 0&&(E.aoMap=x(a.aoMap)),a.aoMapIntensity!==void 0&&(E.aoMapIntensity=a.aoMapIntensity),a.gradientMap!==void 0&&(E.gradientMap=x(a.gradientMap)),a.clearcoatMap!==void 0&&(E.clearcoatMap=x(a.clearcoatMap)),a.clearcoatRoughnessMap!==void 0&&(E.clearcoatRoughnessMap=x(a.clearcoatRoughnessMap)),a.clearcoatNormalMap!==void 0&&(E.clearcoatNormalMap=x(a.clearcoatNormalMap)),a.clearcoatNormalScale!==void 0&&(E.clearcoatNormalScale=new tr().fromArray(a.clearcoatNormalScale)),a.iridescenceMap!==void 0&&(E.iridescenceMap=x(a.iridescenceMap)),a.iridescenceThicknessMap!==void 0&&(E.iridescenceThicknessMap=x(a.iridescenceThicknessMap)),a.transmissionMap!==void 0&&(E.transmissionMap=x(a.transmissionMap)),a.thicknessMap!==void 0&&(E.thicknessMap=x(a.thicknessMap)),a.anisotropyMap!==void 0&&(E.anisotropyMap=x(a.anisotropyMap)),a.sheenColorMap!==void 0&&(E.sheenColorMap=x(a.sheenColorMap)),a.sheenRoughnessMap!==void 0&&(E.sheenRoughnessMap=x(a.sheenRoughnessMap)),E}setTextures(a){return this.textures=a,this}createMaterialFromType(a){return TP.createMaterialFromType(a)}static createMaterialFromType(a){const y={ShadowMaterial:cD,SpriteMaterial:UC,RawShaderMaterial:mR,ShaderMaterial:fp,PointsMaterial:JC,MeshPhysicalMaterial:dD,MeshStandardMaterial:AP,MeshPhongMaterial:yP,MeshToonMaterial:fD,MeshNormalMaterial:hD,MeshLambertMaterial:xP,MeshDepthMaterial:pD,MeshDistanceMaterial:mD,MeshBasicMaterial:Cc,MeshMatcapMaterial:gD,LineDashedMaterial:bP,LineBasicMaterial:$c,Material:Hc};return new y[a]}}class DD{static extractUrlBase(a){const y=a.lastIndexOf("/");return y===-1?"./":a.slice(0,y+1)}static resolveURL(a,y){return typeof a!="string"||a===""?"":(/^https?:\/\//i.test(y)&&/^\//.test(a)&&(y=y.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(a)||/^data:.*,.*$/i.test(a)||/^blob:.*$/i.test(a)?a:y+a)}}class TR extends null{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(a){return super.copy(a),this.instanceCount=a.instanceCount,this}toJSON(){const a=super.toJSON();return a.instanceCount=this.instanceCount,a.isInstancedBufferGeometry=!0,a}}class IR extends null{constructor(a){super(a)}load(a,y,x,E){const z=this,ee=new qg(z.manager);ee.setPath(z.path),ee.setRequestHeader(z.requestHeader),ee.setWithCredentials(z.withCredentials),ee.load(a,function(te){try{y(z.parse(JSON.parse(te)))}catch(ne){E?E(ne):console.error(ne),z.manager.itemError(a)}},x,E)}parse(a){const y={},x={};function E(de,he){if(y[he]!==void 0)return y[he];const Ae=de.interleavedBuffers[he],me=z(de,Ae.buffer),Ce=jm(Ae.type,me),Ee=new xE(Ce,Ae.stride);return Ee.uuid=Ae.uuid,y[he]=Ee,Ee}function z(de,he){if(x[he]!==void 0)return x[he];const Ae=de.arrayBuffers[he],me=new Uint32Array(Ae).buffer;return x[he]=me,me}const ee=a.isInstancedBufferGeometry?new TR:new Fa,te=a.data.index;if(te!==void 0){const de=jm(te.type,te.array);ee.setIndex(new nl(de,1))}const ne=a.data.attributes;for(const de in ne){const he=ne[de];let ye;if(he.isInterleavedBufferAttribute){const Ae=E(a.data,he.data);ye=new kv(Ae,he.itemSize,he.offset,he.normalized)}else{const Ae=jm(he.type,he.array),me=he.isInstancedBufferAttribute?hp:nl;ye=new me(Ae,he.itemSize,he.normalized)}he.name!==void 0&&(ye.name=he.name),he.usage!==void 0&&ye.setUsage(he.usage),ee.setAttribute(de,ye)}const ie=a.data.morphAttributes;if(ie)for(const de in ie){const he=ie[de],ye=[];for(let Ae=0,me=he.length;Ae0){const ne=new bD(y);z=new qE(ne),z.setCrossOrigin(this.crossOrigin);for(let ie=0,ae=a.length;ie0){E=new qE(this.manager),E.setCrossOrigin(this.crossOrigin);for(let ee=0,te=a.length;ee{let Ae=null,me=null;return ye.boundingBox!==void 0&&(Ae=new zc().fromJSON(ye.boundingBox)),ye.boundingSphere!==void 0&&(me=new kc().fromJSON(ye.boundingSphere)),ym(Dl({},ye),{boundingBox:Ae,boundingSphere:me})}),ee._instanceInfo=a.instanceInfo,ee._availableInstanceIds=a._availableInstanceIds,ee._availableGeometryIds=a._availableGeometryIds,ee._nextIndexStart=a.nextIndexStart,ee._nextVertexStart=a.nextVertexStart,ee._geometryCount=a.geometryCount,ee._maxInstanceCount=a.maxInstanceCount,ee._maxVertexCount=a.maxVertexCount,ee._maxIndexCount=a.maxIndexCount,ee._geometryInitialized=a.geometryInitialized,ee._matricesTexture=ie(a.matricesTexture.uuid),ee._indirectTexture=ie(a.indirectTexture.uuid),a.colorsTexture!==void 0&&(ee._colorsTexture=ie(a.colorsTexture.uuid)),a.boundingSphere!==void 0&&(ee.boundingSphere=new kc().fromJSON(a.boundingSphere)),a.boundingBox!==void 0&&(ee.boundingBox=new zc().fromJSON(a.boundingBox));break;case"LOD":ee=new mO;break;case"Line":ee=new Qy(te(a.geometry),ne(a.material));break;case"LineLoop":ee=new FO(te(a.geometry),ne(a.material));break;case"LineSegments":ee=new W5(te(a.geometry),ne(a.material));break;case"PointCloud":case"Points":ee=new NO(te(a.geometry),ne(a.material));break;case"Sprite":ee=new pO(ne(a.material));break;case"Group":ee=new zv;break;case"Bone":ee=new O5;break;default:ee=new Wl}if(ee.uuid=a.uuid,a.name!==void 0&&(ee.name=a.name),a.matrix!==void 0?(ee.matrix.fromArray(a.matrix),a.matrixAutoUpdate!==void 0&&(ee.matrixAutoUpdate=a.matrixAutoUpdate),ee.matrixAutoUpdate&&ee.matrix.decompose(ee.position,ee.quaternion,ee.scale)):(a.position!==void 0&&ee.position.fromArray(a.position),a.rotation!==void 0&&ee.rotation.fromArray(a.rotation),a.quaternion!==void 0&&ee.quaternion.fromArray(a.quaternion),a.scale!==void 0&&ee.scale.fromArray(a.scale)),a.up!==void 0&&ee.up.fromArray(a.up),a.castShadow!==void 0&&(ee.castShadow=a.castShadow),a.receiveShadow!==void 0&&(ee.receiveShadow=a.receiveShadow),a.shadow&&(a.shadow.intensity!==void 0&&(ee.shadow.intensity=a.shadow.intensity),a.shadow.bias!==void 0&&(ee.shadow.bias=a.shadow.bias),a.shadow.normalBias!==void 0&&(ee.shadow.normalBias=a.shadow.normalBias),a.shadow.radius!==void 0&&(ee.shadow.radius=a.shadow.radius),a.shadow.mapSize!==void 0&&ee.shadow.mapSize.fromArray(a.shadow.mapSize),a.shadow.camera!==void 0&&(ee.shadow.camera=this.parseObject(a.shadow.camera))),a.visible!==void 0&&(ee.visible=a.visible),a.frustumCulled!==void 0&&(ee.frustumCulled=a.frustumCulled),a.renderOrder!==void 0&&(ee.renderOrder=a.renderOrder),a.userData!==void 0&&(ee.userData=a.userData),a.layers!==void 0&&(ee.layers.mask=a.layers),a.children!==void 0){const le=a.children;for(let de=0;de{if(IP.has(ee)===!0)E&&E(IP.get(ee)),z.manager.itemError(a),z.manager.itemEnd(a);else return y&&y(ie),z.manager.itemEnd(a),ie});return}return setTimeout(function(){y&&y(ee),z.manager.itemEnd(a)},0),ee}const te={};te.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",te.headers=this.requestHeader,te.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const ne=fetch(a,te).then(function(ie){return ie.blob()}).then(function(ie){return createImageBitmap(ie,Object.assign(z.options,{colorSpaceConversion:"none"}))}).then(function(ie){return qm.add(`image-bitmap:${a}`,ie),y&&y(ie),z.manager.itemEnd(a),ie}).catch(function(ie){E&&E(ie),IP.set(ne,ie),qm.remove(`image-bitmap:${a}`),z.manager.itemError(a),z.manager.itemEnd(a)});qm.add(`image-bitmap:${a}`,ne),z.manager.itemStart(a)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}let $E;class FD{static getContext(){return $E===void 0&&($E=new(window.AudioContext||window.webkitAudioContext)),$E}static setContext(a){$E=a}}class Cue extends null{constructor(a){super(a)}load(a,y,x,E){const z=this,ee=new qg(this.manager);ee.setResponseType("arraybuffer"),ee.setPath(this.path),ee.setRequestHeader(this.requestHeader),ee.setWithCredentials(this.withCredentials),ee.load(a,function(ne){try{const ie=ne.slice(0);FD.getContext().decodeAudioData(ie,function(oe){y(oe)}).catch(te)}catch(ie){te(ie)}},x,E);function te(ne){E?E(ne):console.error(ne),z.manager.itemError(a)}}}const ND=new ls,LD=new ls,Qv=new ls;class Pue{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new xu,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new xu,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(a){const y=this._cache;if(y.focus!==a.focus||y.fov!==a.fov||y.aspect!==a.aspect*this.aspect||y.near!==a.near||y.far!==a.far||y.zoom!==a.zoom||y.eyeSep!==this.eyeSep){y.focus=a.focus,y.fov=a.fov,y.aspect=a.aspect*this.aspect,y.near=a.near,y.far=a.far,y.zoom=a.zoom,y.eyeSep=this.eyeSep,Qv.copy(a.projectionMatrix);const E=y.eyeSep/2,z=E*y.near/y.focus,ee=y.near*Math.tan(ia*y.fov*.5)/y.zoom;let te,ne;LD.elements[12]=-E,ND.elements[12]=E,te=-ee*y.aspect+z,ne=ee*y.aspect+z,Qv.elements[0]=2*y.near/(ne-te),Qv.elements[8]=(ne+te)/(ne-te),this.cameraL.projectionMatrix.copy(Qv),te=-ee*y.aspect-z,ne=ee*y.aspect-z,Qv.elements[0]=2*y.near/(ne-te),Qv.elements[8]=(ne+te)/(ne-te),this.cameraR.projectionMatrix.copy(Qv)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(LD),this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(ND)}}class OD extends xu{constructor(a=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=a}}class FP{constructor(a=!0){this.autoStart=a,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const y=performance.now();a=(y-this.oldTime)/1e3,this.oldTime=y,this.elapsedTime+=a}return a}}const Zv=new ot,NP=new Ll,NR=new ot,Yv=new ot,Jv=new ot;class Bue extends null{constructor(){super(),this.type="AudioListener",this.context=FD.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new FP}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(a){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=a,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(a){return this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01),this}updateMatrixWorld(a){super.updateMatrixWorld(a);const y=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Zv,NP,NR),Yv.set(0,0,-1).applyQuaternion(NP),Jv.set(0,1,0).applyQuaternion(NP),y.positionX){const x=this.context.currentTime+this.timeDelta;y.positionX.linearRampToValueAtTime(Zv.x,x),y.positionY.linearRampToValueAtTime(Zv.y,x),y.positionZ.linearRampToValueAtTime(Zv.z,x),y.forwardX.linearRampToValueAtTime(Yv.x,x),y.forwardY.linearRampToValueAtTime(Yv.y,x),y.forwardZ.linearRampToValueAtTime(Yv.z,x),y.upX.linearRampToValueAtTime(Jv.x,x),y.upY.linearRampToValueAtTime(Jv.y,x),y.upZ.linearRampToValueAtTime(Jv.z,x)}else y.setPosition(Zv.x,Zv.y,Zv.z),y.setOrientation(Yv.x,Yv.y,Yv.z,Jv.x,Jv.y,Jv.z)}}class Sue extends null{constructor(a){super(),this.type="Audio",this.listener=a,this.context=a.context,this.gain=this.context.createGain(),this.gain.connect(a.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(a){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=a,this.connect(),this}setMediaElementSource(a){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(a),this.connect(),this}setMediaStreamSource(a){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(a),this.connect(),this}setBuffer(a){return this.buffer=a,this.sourceType="buffer",this.autoplay&&this.play(),this}play(a=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+a;const y=this.context.createBufferSource();return y.buffer=this.buffer,y.loop=this.loop,y.loopStart=this.loopStart,y.loopEnd=this.loopEnd,y.onended=this.onEnded.bind(this),y.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=y,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(a=0){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+a),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let a=1,y=this.filters.length;a0){this.source.disconnect(this.filters[0]);for(let a=1,y=this.filters.length;a0&&this._mixBufferRegionAdditive(x,E,this._addIndex*y,1,y);for(let ne=y,ie=y+y;ne!==ie;++ne)if(x[ne]!==x[ne+y]){te.setValue(x,E);break}}saveOriginalState(){const a=this.binding,y=this.buffer,x=this.valueSize,E=x*this._origIndex;a.getValue(y,E);for(let z=x,ee=E;z!==ee;++z)y[z]=y[E+z%x];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const a=this.valueSize*3;this.binding.setValue(this.buffer,a)}_setAdditiveIdentityNumeric(){const a=this._addIndex*this.valueSize,y=a+this.valueSize;for(let x=a;x=.5)for(let ee=0;ee!==z;++ee)a[y+ee]=a[x+ee]}_slerp(a,y,x,E){Ll.slerpFlat(a,y,a,y,a,x,E)}_slerpAdditive(a,y,x,E,z){const ee=this._workIndex*z;Ll.multiplyQuaternionsFlat(a,ee,a,y,a,x),Ll.slerpFlat(a,y,a,y,a,ee,E)}_lerp(a,y,x,E,z){const ee=1-E;for(let te=0;te!==z;++te){const ne=y+te;a[ne]=a[ne]*ee+a[x+te]*E}}_lerpAdditive(a,y,x,E,z){for(let ee=0;ee!==z;++ee){const te=y+ee;a[te]=a[te]+a[x+ee]*E}}}const LP="\\[\\]\\.:\\/",RR=new RegExp("["+LP+"]","g"),OP="[^"+LP+"]",zR="[^"+LP.replace("\\.","")+"]",kR=/((?:WC+[\/:])*)/.source.replace("WC",OP),HR=/(WCOD+)?/.source.replace("WCOD",zR),UR=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",OP),jR=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",OP),VR=new RegExp("^"+kR+HR+UR+jR+"$"),GR=["material","materials","bones","map"];class XR{constructor(a,y,x){const E=x||Co.parseTrackName(y);this._targetGroup=a,this._bindings=a.subscribe_(y,E)}getValue(a,y){this.bind();const x=this._targetGroup.nCachedObjects_,E=this._bindings[x];E!==void 0&&E.getValue(a,y)}setValue(a,y){const x=this._bindings;for(let E=this._targetGroup.nCachedObjects_,z=x.length;E!==z;++E)x[E].setValue(a,y)}bind(){const a=this._bindings;for(let y=this._targetGroup.nCachedObjects_,x=a.length;y!==x;++y)a[y].bind()}unbind(){const a=this._bindings;for(let y=this._targetGroup.nCachedObjects_,x=a.length;y!==x;++y)a[y].unbind()}}class Co{constructor(a,y,x){this.path=y,this.parsedPath=x||Co.parseTrackName(y),this.node=Co.findNode(a,this.parsedPath.nodeName),this.rootNode=a,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(a,y,x){return a&&a.isAnimationObjectGroup?new Co.Composite(a,y,x):new Co(a,y,x)}static sanitizeNodeName(a){return a.replace(/\s/g,"_").replace(RR,"")}static parseTrackName(a){const y=VR.exec(a);if(y===null)throw new Error("PropertyBinding: Cannot parse trackName: "+a);const x={nodeName:y[2],objectName:y[3],objectIndex:y[4],propertyName:y[5],propertyIndex:y[6]},E=x.nodeName&&x.nodeName.lastIndexOf(".");if(E!==void 0&&E!==-1){const z=x.nodeName.substring(E+1);GR.indexOf(z)!==-1&&(x.nodeName=x.nodeName.substring(0,E),x.objectName=z)}if(x.propertyName===null||x.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+a);return x}static findNode(a,y){if(y===void 0||y===""||y==="."||y===-1||y===a.name||y===a.uuid)return a;if(a.skeleton){const x=a.skeleton.getBoneByName(y);if(x!==void 0)return x}if(a.children){const x=function(z){for(let ee=0;ee=z){const oe=z++,le=a[oe];y[le.uuid]=ae,a[ae]=le,y[ie]=oe,a[oe]=ne;for(let de=0,he=E;de!==he;++de){const ye=x[de],Ae=ye[oe],me=ye[ae];ye[ae]=Ae,ye[oe]=me}}}this.nCachedObjects_=z}uncache(){const a=this._objects,y=this._indicesByUUID,x=this._bindings,E=x.length;let z=this.nCachedObjects_,ee=a.length;for(let te=0,ne=arguments.length;te!==ne;++te){const ie=arguments[te],ae=ie.uuid,oe=y[ae];if(oe!==void 0)if(delete y[ae],oe0&&(y[de.uuid]=oe),a[oe]=de,a.pop();for(let he=0,ye=E;he!==ye;++he){const Ae=x[he];Ae[oe]=Ae[le],Ae.pop()}}}this.nCachedObjects_=z}subscribe_(a,y){const x=this._bindingsIndicesByPath;let E=x[a];const z=this._bindings;if(E!==void 0)return z[E];const ee=this._paths,te=this._parsedPaths,ne=this._objects,ie=ne.length,ae=this.nCachedObjects_,oe=new Array(ie);E=z.length,x[a]=E,ee.push(a),te.push(y),z.push(oe);for(let le=ae,de=ne.length;le!==de;++le){const he=ne[le];oe[le]=new Co(he,a,y)}return oe}unsubscribe_(a){const y=this._bindingsIndicesByPath,x=y[a];if(x!==void 0){const E=this._paths,z=this._parsedPaths,ee=this._bindings,te=ee.length-1,ne=ee[te],ie=a[te];y[ie]=x,ee[x]=ne,ee.pop(),z[x]=z[te],z.pop(),E[x]=E[te],E.pop()}}}class WR{constructor(a,y,x=null,E=y.blendMode){this._mixer=a,this._clip=y,this._localRoot=x,this.blendMode=E;const z=y.tracks,ee=z.length,te=new Array(ee),ne={endingStart:ch,endingEnd:ch};for(let ie=0;ie!==ee;++ie){const ae=z[ie].createInterpolant(null);te[ie]=ae,ae.settings=ne}this._interpolantSettings=ne,this._interpolants=te,this._propertyBindings=new Array(ee),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=jg,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(a){return this._startTime=a,this}setLoop(a,y){return this.loop=a,this.repetitions=y,this}setEffectiveWeight(a){return this.weight=a,this._effectiveWeight=this.enabled?a:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(a){return this._scheduleFading(a,0,1)}fadeOut(a){return this._scheduleFading(a,1,0)}crossFadeFrom(a,y,x=!1){if(a.fadeOut(y),this.fadeIn(y),x===!0){const E=this._clip.duration,z=a._clip.duration,ee=z/E,te=E/z;a.warp(1,ee,y),this.warp(te,1,y)}return this}crossFadeTo(a,y,x=!1){return a.crossFadeFrom(this,y,x)}stopFading(){const a=this._weightInterpolant;return a!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a)),this}setEffectiveTimeScale(a){return this.timeScale=a,this._effectiveTimeScale=this.paused?0:a,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(a){return this.timeScale=this._clip.duration/a,this.stopWarping()}syncWith(a){return this.time=a.time,this.timeScale=a.timeScale,this.stopWarping()}halt(a){return this.warp(this._effectiveTimeScale,0,a)}warp(a,y,x){const E=this._mixer,z=E.time,ee=this.timeScale;let te=this._timeScaleInterpolant;te===null&&(te=E._lendControlInterpolant(),this._timeScaleInterpolant=te);const ne=te.parameterPositions,ie=te.sampleValues;return ne[0]=z,ne[1]=z+x,ie[0]=a/ee,ie[1]=y/ee,this}stopWarping(){const a=this._timeScaleInterpolant;return a!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(a)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(a,y,x,E){if(!this.enabled){this._updateWeight(a);return}const z=this._startTime;if(z!==null){const ne=(a-z)*x;ne<0||x===0?y=0:(this._startTime=null,y=x*ne)}y*=this._updateTimeScale(a);const ee=this._updateTime(y),te=this._updateWeight(a);if(te>0){const ne=this._interpolants,ie=this._propertyBindings;switch(this.blendMode){case ce:for(let ae=0,oe=ne.length;ae!==oe;++ae)ne[ae].evaluate(ee),ie[ae].accumulateAdditive(te);break;case se:default:for(let ae=0,oe=ne.length;ae!==oe;++ae)ne[ae].evaluate(ee),ie[ae].accumulate(E,te)}}}_updateWeight(a){let y=0;if(this.enabled){y=this.weight;const x=this._weightInterpolant;if(x!==null){const E=x.evaluate(a)[0];y*=E,a>x.parameterPositions[1]&&(this.stopFading(),E===0&&(this.enabled=!1))}}return this._effectiveWeight=y,y}_updateTimeScale(a){let y=0;if(!this.paused){y=this.timeScale;const x=this._timeScaleInterpolant;if(x!==null){const E=x.evaluate(a)[0];y*=E,a>x.parameterPositions[1]&&(this.stopWarping(),y===0?this.paused=!0:this.timeScale=y)}}return this._effectiveTimeScale=y,y}_updateTime(a){const y=this._clip.duration,x=this.loop;let E=this.time+a,z=this._loopCount;const ee=x===Ty;if(a===0)return z===-1?E:ee&&(z&1)===1?y-E:E;if(x===Dy){z===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(E>=y)E=y;else if(E<0)E=0;else{this.time=E;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=E,this._mixer.dispatchEvent({type:"finished",action:this,direction:a<0?-1:1})}}else{if(z===-1&&(a>=0?(z=0,this._setEndings(!0,this.repetitions===0,ee)):this._setEndings(this.repetitions===0,!0,ee)),E>=y||E<0){const te=Math.floor(E/y);E-=y*te,z+=Math.abs(te);const ne=this.repetitions-z;if(ne<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,E=a>0?y:0,this.time=E,this._mixer.dispatchEvent({type:"finished",action:this,direction:a>0?1:-1});else{if(ne===1){const ie=a<0;this._setEndings(ie,!ie,ee)}else this._setEndings(!1,!1,ee);this._loopCount=z,this.time=E,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:te})}}else this.time=E;if(ee&&(z&1)===1)return y-E}return E}_setEndings(a,y,x){const E=this._interpolantSettings;x?(E.endingStart=bd,E.endingEnd=bd):(a?E.endingStart=this.zeroSlopeAtStart?bd:ch:E.endingStart=re,y?E.endingEnd=this.zeroSlopeAtEnd?bd:ch:E.endingEnd=re)}_scheduleFading(a,y,x){const E=this._mixer,z=E.time;let ee=this._weightInterpolant;ee===null&&(ee=E._lendControlInterpolant(),this._weightInterpolant=ee);const te=ee.parameterPositions,ne=ee.sampleValues;return te[0]=z,ne[0]=y,te[1]=z+a,ne[1]=x,this}}const QR=new Float32Array(1);class Iue extends null{constructor(a){super(),this._root=a,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(a,y){const x=a._localRoot||this._root,E=a._clip.tracks,z=E.length,ee=a._propertyBindings,te=a._interpolants,ne=x.uuid,ie=this._bindingsByRootAndName;let ae=ie[ne];ae===void 0&&(ae={},ie[ne]=ae);for(let oe=0;oe!==z;++oe){const le=E[oe],de=le.name;let he=ae[de];if(he!==void 0)++he.referenceCount,ee[oe]=he;else{if(he=ee[oe],he!==void 0){he._cacheIndex===null&&(++he.referenceCount,this._addInactiveBinding(he,ne,de));continue}const ye=y&&y._propertyBindings[oe].binding.parsedPath;he=new OR(Co.create(x,de,ye),le.ValueTypeName,le.getValueSize()),++he.referenceCount,this._addInactiveBinding(he,ne,de),ee[oe]=he}te[oe].resultBuffer=he.buffer}}_activateAction(a){if(!this._isActiveAction(a)){if(a._cacheIndex===null){const x=(a._localRoot||this._root).uuid,E=a._clip.uuid,z=this._actionsByClip[E];this._bindAction(a,z&&z.knownActions[0]),this._addInactiveAction(a,E,x)}const y=a._propertyBindings;for(let x=0,E=y.length;x!==E;++x){const z=y[x];z.useCount++===0&&(this._lendBinding(z),z.saveOriginalState())}this._lendAction(a)}}_deactivateAction(a){if(this._isActiveAction(a)){const y=a._propertyBindings;for(let x=0,E=y.length;x!==E;++x){const z=y[x];--z.useCount===0&&(z.restoreOriginalState(),this._takeBackBinding(z))}this._takeBackAction(a)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}}_isActiveAction(a){const y=a._cacheIndex;return y!==null&&y=0;--x)a[x].stop();return this}update(a){a*=this.timeScale;const y=this._actions,x=this._nActiveActions,E=this.time+=a,z=Math.sign(a),ee=this._accuIndex^=1;for(let ie=0;ie!==x;++ie)y[ie]._update(E,a,z,ee);const te=this._bindings,ne=this._nActiveBindings;for(let ie=0;ie!==ne;++ie)te[ie].apply(ee);return this}setTime(a){this.time=0;for(let y=0;y=this.min.x&&a.x<=this.max.x&&a.y>=this.min.y&&a.y<=this.max.y}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y}getParameter(a,y){return y.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(a){return a.max.x>=this.min.x&&a.min.x<=this.max.x&&a.max.y>=this.min.y&&a.min.y<=this.max.y}clampPoint(a,y){return y.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,VD).distanceTo(a)}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}}const GD=new ot,tw=new ot,I0=new ot,F0=new ot,zP=new ot,KR=new ot,qR=new ot;class kue{constructor(a=new ot,y=new ot){this.start=a,this.end=y}set(a,y){return this.start.copy(a),this.end.copy(y),this}copy(a){return this.start.copy(a.start),this.end.copy(a.end),this}getCenter(a){return a.addVectors(this.start,this.end).multiplyScalar(.5)}delta(a){return a.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(a,y){return this.delta(y).multiplyScalar(a).add(this.start)}closestPointToPointParameter(a,y){GD.subVectors(a,this.start),tw.subVectors(this.end,this.start);const x=tw.dot(tw);let z=tw.dot(GD)/x;return y&&(z=Yi(z,0,1)),z}closestPointToPoint(a,y,x){const E=this.closestPointToPointParameter(a,y);return this.delta(x).multiplyScalar(E).add(this.start)}distanceSqToLine3(a,y=KR,x=qR){const E=10000000000000001e-32;let z,ee;const te=this.start,ne=a.start,ie=this.end,ae=a.end;I0.subVectors(ie,te),F0.subVectors(ae,ne),zP.subVectors(te,ne);const oe=I0.dot(I0),le=F0.dot(F0),de=F0.dot(zP);if(oe<=E&&le<=E)return y.copy(te),x.copy(ne),y.sub(x),y.dot(y);if(oe<=E)z=0,ee=de/le,ee=Yi(ee,0,1);else{const he=I0.dot(zP);if(le<=E)ee=0,z=Yi(-he/oe,0,1);else{const ye=I0.dot(F0),Ae=oe*le-ye*ye;Ae!==0?z=Yi((ye*de-he*le)/Ae,0,1):z=0,ee=(ye*z+de)/le,ee<0?(ee=0,z=Yi(-he/oe,0,1)):ee>1&&(ee=1,z=Yi((ye-he)/oe,0,1))}}return y.copy(te).add(I0.multiplyScalar(z)),x.copy(ne).add(F0.multiplyScalar(ee)),y.sub(x),y.dot(y)}applyMatrix4(a){return this.start.applyMatrix4(a),this.end.applyMatrix4(a),this}equals(a){return a.start.equals(this.start)&&a.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const XD=new ot;class Hue extends null{constructor(a,y){super(),this.light=a,this.matrixAutoUpdate=!1,this.color=y,this.type="SpotLightHelper";const x=new Fa,E=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let ee=0,te=1,ne=32;ee1)for(let oe=0;oe.99999)this.quaternion.set(0,0,0,1);else if(a.y<-.99999)this.quaternion.set(1,0,0,0);else{KD.set(a.z,0,-a.x).normalize();const y=Math.acos(a.y);this.quaternion.setFromAxisAngle(KD,y)}}setLength(a,y=a*.2,x=y*.2){this.line.scale.set(1,Math.max(1e-4,a-y),1),this.line.updateMatrix(),this.cone.scale.set(x,y,x),this.cone.position.y=a,this.cone.updateMatrix()}setColor(a){this.line.material.color.set(a),this.cone.material.color.set(a)}copy(a){return super.copy(a,!1),this.line.copy(a.line),this.cone.copy(a.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class que extends null{constructor(a=1){const y=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a],x=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],E=new Fa;E.setAttribute("position",new us(y,3)),E.setAttribute("color",new us(x,3));const z=new $c({vertexColors:!0,toneMapped:!1});super(E,z),this.type="AxesHelper"}setColors(a,y,x){const E=new xi,z=this.geometry.attributes.color.array;return E.set(a),E.toArray(z,0),E.toArray(z,3),E.set(y),E.toArray(z,6),E.toArray(z,9),E.set(x),E.toArray(z,12),E.toArray(z,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class _ue{constructor(){this.type="ShapePath",this.color=new xi,this.subPaths=[],this.currentPath=null}moveTo(a,y){return this.currentPath=new oP,this.subPaths.push(this.currentPath),this.currentPath.moveTo(a,y),this}lineTo(a,y){return this.currentPath.lineTo(a,y),this}quadraticCurveTo(a,y,x,E){return this.currentPath.quadraticCurveTo(a,y,x,E),this}bezierCurveTo(a,y,x,E,z,ee){return this.currentPath.bezierCurveTo(a,y,x,E,z,ee),this}splineThru(a){return this.currentPath.splineThru(a),this}toShapes(a){function y(me){const Ce=[];for(let Ee=0,Be=me.length;EeNumber.EPSILON){if(ze<0&&(ke=Ce[Fe],Oe=-Oe,Re=Ce[Ne],ze=-ze),me.yRe.y)continue;if(me.y===ke.y){if(me.x===ke.x)return!0}else{const Le=ze*(me.x-ke.x)-Oe*(me.y-ke.y);if(Le===0)return!0;if(Le<0)continue;Be=!Be}}else{if(me.y!==ke.y)continue;if(Re.x<=me.x&&me.x<=ke.x||ke.x<=me.x&&me.x<=Re.x)return!0}}return Be}const E=em.isClockWise,z=this.subPaths;if(z.length===0)return[];let ee,te,ne;const ie=[];if(z.length===1)return te=z[0],ne=new C0,ne.curves=te.curves,ie.push(ne),ie;let ae=!E(z[0].getPoints());ae=a?!ae:ae;const oe=[],le=[];let de=[],he=0,ye;le[he]=void 0,de[he]=[];for(let me=0,Ce=z.length;me1){let me=!1,Ce=0;for(let Ee=0,Be=le.length;Ee0&&me===!1&&(de=oe)}let Ae;for(let me=0,Ce=le.length;mea?(b.repeat.x=1,b.repeat.y=y/a,b.offset.x=0,b.offset.y=(1-b.repeat.y)/2):(b.repeat.x=a/y,b.repeat.y=1,b.offset.x=(1-b.repeat.x)/2,b.offset.y=0),b}function ez(b,a){const y=b.image&&b.image.width?b.image.width/b.image.height:1;return y>a?(b.repeat.x=a/y,b.repeat.y=1,b.offset.x=(1-b.repeat.x)/2,b.offset.y=0):(b.repeat.x=1,b.repeat.y=y/a,b.offset.x=0,b.offset.y=(1-b.repeat.y)/2),b}function tz(b){return b.repeat.x=1,b.repeat.y=1,b.offset.x=0,b.offset.y=0,b}function UP(b,a,y,x){const E=nz(x);switch(y){case Mv:return b*a;case Kh:return b*a/E.components*E.byteLength;case Ud:return b*a/E.components*E.byteLength;case jd:return b*a*2/E.components*E.byteLength;case Vp:return b*a*2/E.components*E.byteLength;case Jh:return b*a*3/E.components*E.byteLength;case yo:return b*a*4/E.components*E.byteLength;case qh:return b*a*4/E.components*E.byteLength;case _h:case Kc:return Math.floor((b+3)/4)*Math.floor((a+3)/4)*8;case wf:case vd:return Math.floor((b+3)/4)*Math.floor((a+3)/4)*16;case Rm:case Vd:return Math.max(b,16)*Math.max(a,8)/4;case Gp:case zm:return Math.max(b,8)*Math.max(a,8)/2;case oh:case Cf:return Math.floor((b+3)/4)*Math.floor((a+3)/4)*8;case Xp:return Math.floor((b+3)/4)*Math.floor((a+3)/4)*16;case Wp:return Math.floor((b+3)/4)*Math.floor((a+3)/4)*16;case $h:return Math.floor((b+4)/5)*Math.floor((a+3)/4)*16;case po:return Math.floor((b+4)/5)*Math.floor((a+4)/5)*16;case ep:return Math.floor((b+5)/6)*Math.floor((a+4)/5)*16;case lh:return Math.floor((b+5)/6)*Math.floor((a+5)/6)*16;case Ad:return Math.floor((b+7)/8)*Math.floor((a+4)/5)*16;case _u:return Math.floor((b+7)/8)*Math.floor((a+5)/6)*16;case yd:return Math.floor((b+7)/8)*Math.floor((a+7)/8)*16;case uh:return Math.floor((b+9)/10)*Math.floor((a+4)/5)*16;case tp:return Math.floor((b+9)/10)*Math.floor((a+5)/6)*16;case np:return Math.floor((b+9)/10)*Math.floor((a+7)/8)*16;case rp:return Math.floor((b+9)/10)*Math.floor((a+9)/10)*16;case ip:return Math.floor((b+11)/12)*Math.floor((a+9)/10)*16;case sp:return Math.floor((b+11)/12)*Math.floor((a+11)/12)*16;case ap:case Qp:case op:return Math.ceil(b/4)*Math.ceil(a/4)*16;case Qa:case Zp:return Math.ceil(b/4)*Math.ceil(a/4)*8;case lp:case xd:return Math.ceil(b/4)*Math.ceil(a/4)*16}throw new Error(`Unable to determine texture byte length for ${y} format.`)}function nz(b){switch(b){case jo:case Zh:return{byteLength:1,components:1};case qu:case Yh:case vl:return{byteLength:2,components:1};case Om:case Ug:return{byteLength:2,components:4};case Ao:case Vl:case Vo:return{byteLength:4,components:1};case jp:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${b}.`)}class $ue{static contain(a,y){return $R(a,y)}static cover(a,y){return ez(a,y)}static fill(a){return tz(a)}static getByteLength(a,y,x,E){return UP(a,y,x,E)}}typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:pd}})),typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=pd);const N0=new pp,$m=new tr,qD=new ot,jP=new tr,lw=new tr,uw=new ot,VP=new ot,_D=new ls,$D=new ot,e2=new ot;let Zd=null,tm=null;const eg=[],$g={NONE:-1,PAN:0,ROTATE:1};class rz extends ow{constructor(a,y,x=null){super(y,x),this.objects=a,this.recursive=!0,this.transformGroup=!1,this.rotateSpeed=1,this.raycaster=new HD,this.mouseButtons={LEFT:eu.PAN,MIDDLE:eu.PAN,RIGHT:eu.ROTATE},this.touches={ONE:pf.PAN},this._onPointerMove=iz.bind(this),this._onPointerDown=sz.bind(this),this._onPointerCancel=az.bind(this),this._onContextMenu=oz.bind(this),x!==null&&this.connect(x)}connect(a){super.connect(a),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointerup",this._onPointerCancel),this.domElement.addEventListener("pointerleave",this._onPointerCancel),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointerup",this._onPointerCancel),this.domElement.removeEventListener("pointerleave",this._onPointerCancel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="auto",this.domElement.style.cursor=""}dispose(){this.disconnect()}_updatePointer(a){const y=this.domElement.getBoundingClientRect();$m.x=(a.clientX-y.left)/y.width*2-1,$m.y=-(a.clientY-y.top)/y.height*2+1}_updateState(a){let y;if(a.pointerType==="touch")y=this.touches.ONE;else switch(a.button){case 0:y=this.mouseButtons.LEFT;break;case 1:y=this.mouseButtons.MIDDLE;break;case 2:y=this.mouseButtons.RIGHT;break;default:y=null}switch(y){case eu.PAN:case pf.PAN:this.state=$g.PAN;break;case eu.ROTATE:case pf.ROTATE:this.state=$g.ROTATE;break;default:this.state=$g.NONE}}getRaycaster(){return console.warn("THREE.DragControls: getRaycaster() has been deprecated. Use controls.raycaster instead."),this.raycaster}setObjects(a){console.warn("THREE.DragControls: setObjects() has been deprecated. Use controls.objects instead."),this.objects=a}getObjects(){return console.warn("THREE.DragControls: getObjects() has been deprecated. Use controls.objects instead."),this.objects}activate(){console.warn("THREE.DragControls: activate() has been renamed to connect()."),this.connect()}deactivate(){console.warn("THREE.DragControls: deactivate() has been renamed to disconnect()."),this.disconnect()}set mode(a){console.warn("THREE.DragControls: The .mode property has been removed. Define the type of transformation via the .mouseButtons or .touches properties.")}get mode(){console.warn("THREE.DragControls: The .mode property has been removed. Define the type of transformation via the .mouseButtons or .touches properties.")}}function iz(b){const a=this.object,y=this.domElement,x=this.raycaster;if(this.enabled!==!1){if(this._updatePointer(b),x.setFromCamera($m,a),Zd)this.state===$g.PAN?x.ray.intersectPlane(N0,uw)&&Zd.position.copy(uw.sub(qD).applyMatrix4(_D)):this.state===$g.ROTATE&&(jP.subVectors($m,lw).multiplyScalar(this.rotateSpeed),Zd.rotateOnWorldAxis($D,jP.x),Zd.rotateOnWorldAxis(e2.normalize(),-jP.y)),this.dispatchEvent({type:"drag",object:Zd}),lw.copy($m);else if(b.pointerType==="mouse"||b.pointerType==="pen")if(eg.length=0,x.setFromCamera($m,a),x.intersectObjects(this.objects,this.recursive,eg),eg.length>0){const E=eg[0].object;N0.setFromNormalAndCoplanarPoint(a.getWorldDirection(N0.normal),VP.setFromMatrixPosition(E.matrixWorld)),tm!==E&&tm!==null&&(this.dispatchEvent({type:"hoveroff",object:tm}),y.style.cursor="auto",tm=null),tm!==E&&(this.dispatchEvent({type:"hoveron",object:E}),y.style.cursor="pointer",tm=E)}else tm!==null&&(this.dispatchEvent({type:"hoveroff",object:tm}),y.style.cursor="auto",tm=null);lw.copy($m)}}function sz(b){const a=this.object,y=this.domElement,x=this.raycaster;this.enabled!==!1&&(this._updatePointer(b),this._updateState(b),eg.length=0,x.setFromCamera($m,a),x.intersectObjects(this.objects,this.recursive,eg),eg.length>0&&(this.transformGroup===!0?Zd=t2(eg[0].object):Zd=eg[0].object,N0.setFromNormalAndCoplanarPoint(a.getWorldDirection(N0.normal),VP.setFromMatrixPosition(Zd.matrixWorld)),x.ray.intersectPlane(N0,uw)&&(this.state===$g.PAN?(_D.copy(Zd.parent.matrixWorld).invert(),qD.copy(uw).sub(VP.setFromMatrixPosition(Zd.matrixWorld))):this.state===$g.ROTATE&&($D.set(0,1,0).applyQuaternion(a.quaternion).normalize(),e2.set(1,0,0).applyQuaternion(a.quaternion).normalize())),y.style.cursor="move",this.dispatchEvent({type:"dragstart",object:Zd})),lw.copy($m))}function az(){this.enabled!==!1&&(Zd&&(this.dispatchEvent({type:"dragend",object:Zd}),Zd=null),this.domElement.style.cursor=tm?"pointer":"auto",this.state=$g.NONE)}function oz(b){this.enabled!==!1&&b.preventDefault()}function t2(b,a=null){return b.isGroup&&(a=b),b.parent===null?a:t2(b.parent,a)}var lz=Me(9821),uz=Me(83833);const cz=1664525,dz=1013904223,n2=4294967296;function fz(){let b=1;return()=>(b=(cz*b+dz)%n2)/n2}var r2=3;function GP(b){return b.x}function i2(b){return b.y}function hz(b){return b.z}var pz=10,mz=Math.PI*(3-Math.sqrt(5)),gz=Math.PI*20/(9+Math.sqrt(221));function s2(b,a){a=a||2;var y=Math.min(r2,Math.max(1,Math.round(a))),x,E=1,z=.001,ee=1-Math.pow(z,1/300),te=0,ne=.6,ie=new Map,ae=(0,uz.HT)(de),oe=(0,lz.Z)("tick","end"),le=fz();b==null&&(b=[]);function de(){he(),oe.call("tick",x),E1&&(Be.fy==null?Be.y+=Be.vy*=ne:(Be.y=Be.fy,Be.vy=0)),y>2&&(Be.fz==null?Be.z+=Be.vz*=ne:(Be.z=Be.fz,Be.vz=0));return x}function ye(){for(var me=0,Ce=b.length,Ee;me1&&isNaN(Ee.y)||y>2&&isNaN(Ee.z)){var Be=pz*(y>2?Math.cbrt(.5+me):y>1?Math.sqrt(.5+me):me),Ne=me*mz,Fe=me*gz;y===1?Ee.x=Be:y===2?(Ee.x=Be*Math.cos(Ne),Ee.y=Be*Math.sin(Ne)):(Ee.x=Be*Math.sin(Ne)*Math.cos(Fe),Ee.y=Be*Math.cos(Ne),Ee.z=Be*Math.sin(Ne)*Math.sin(Fe))}(isNaN(Ee.vx)||y>1&&isNaN(Ee.vy)||y>2&&isNaN(Ee.vz))&&(Ee.vx=0,y>1&&(Ee.vy=0),y>2&&(Ee.vz=0))}}function Ae(me){return me.initialize&&me.initialize(b,le,y),me}return ye(),x={tick:he,restart:function(){return ae.restart(de),x},stop:function(){return ae.stop(),x},numDimensions:function(me){return arguments.length?(y=Math.min(r2,Math.max(1,Math.round(me))),ie.forEach(Ae),x):y},nodes:function(me){return arguments.length?(b=me,ye(),ie.forEach(Ae),x):b},alpha:function(me){return arguments.length?(E=+me,x):E},alphaMin:function(me){return arguments.length?(z=+me,x):z},alphaDecay:function(me){return arguments.length?(ee=+me,x):+ee},alphaTarget:function(me){return arguments.length?(te=+me,x):te},velocityDecay:function(me){return arguments.length?(ne=1-me,x):1-ne},randomSource:function(me){return arguments.length?(le=me,ie.forEach(Ae),x):le},force:function(me,Ce){return arguments.length>1?(Ce==null?ie.delete(me):ie.set(me,Ae(Ce)),x):ie.get(me)},find:function(){var me=Array.prototype.slice.call(arguments),Ce=me.shift()||0,Ee=(y>1?me.shift():null)||0,Be=(y>2?me.shift():null)||0,Ne=me.shift()||1/0,Fe=0,ke=b.length,Re,Oe,ze,Le,_e,Et;for(Ne*=Ne,Fe=0;Fe1?(oe.on(me,Ce),x):oe.on(me)}}}function vp(b){return function(){return b}}function Ah(b){return(b()-.5)*1e-6}function vz(b){return b.index}function a2(b,a){var y=b.get(a);if(!y)throw new Error("node not found: "+a);return y}function o2(b){var a=vz,y=le,x,E=vp(30),z,ee,te,ne,ie,ae,oe=1;b==null&&(b=[]);function le(me){return 1/Math.min(ne[me.source.index],ne[me.target.index])}function de(me){for(var Ce=0,Ee=b.length;Ce1&&(Oe=ke.y+ke.vy-Fe.y-Fe.vy||Ah(ae)),te>2&&(ze=ke.z+ke.vz-Fe.z-Fe.vz||Ah(ae)),Le=Math.sqrt(Re*Re+Oe*Oe+ze*ze),Le=(Le-z[Be])/Le*me*x[Be],Re*=Le,Oe*=Le,ze*=Le,ke.vx-=Re*(_e=ie[Be]),te>1&&(ke.vy-=Oe*_e),te>2&&(ke.vz-=ze*_e),Fe.vx+=Re*(_e=1-_e),te>1&&(Fe.vy+=Oe*_e),te>2&&(Fe.vz+=ze*_e)}function he(){if(ee){var me,Ce=ee.length,Ee=b.length,Be=new Map(ee.map((Fe,ke)=>[a(Fe,ke,ee),Fe])),Ne;for(me=0,ne=new Array(Ce);metypeof Ee=="function")||Math.random,te=Ce.find(Ee=>[1,2,3].includes(Ee))||2,he()},de.links=function(me){return arguments.length?(b=me,he(),de):b},de.id=function(me){return arguments.length?(a=me,de):a},de.iterations=function(me){return arguments.length?(oe=+me,de):oe},de.strength=function(me){return arguments.length?(y=typeof me=="function"?me:vp(+me),ye(),de):y},de.distance=function(me){return arguments.length?(E=typeof me=="function"?me:vp(+me),Ae(),de):E},de}function Az(b){const a=+this._x.call(null,b);return l2(this.cover(a),a,b)}function l2(b,a,y){if(isNaN(a))return b;var x,E=b._root,z={data:y},ee=b._x0,te=b._x1,ne,ie,ae,oe,le;if(!E)return b._root=z,b;for(;E.length;)if((ae=a>=(ne=(ee+te)/2))?ee=ne:te=ne,x=E,!(E=E[oe=+ae]))return x[oe]=z,b;if(ie=+b._x.call(null,E.data),a===ie)return z.next=E,x?x[oe]=z:b._root=z,b;do x=x?x[oe]=new Array(2):b._root=new Array(2),(ae=a>=(ne=(ee+te)/2))?ee=ne:te=ne;while((oe=+ae)==(le=+(ie>=ne)));return x[le]=E,x[oe]=z,b}function yz(b){Array.isArray(b)||(b=Array.from(b));const a=b.length,y=new Float64Array(a);let x=1/0,E=-1/0;for(let z=0,ee;zE&&(E=ee));if(x>E)return this;this.cover(x).cover(E);for(let z=0;zb||b>=y;)switch(ee=+(bee||(z=ie.x1)=oe))&&(ie=te[te.length-1],te[te.length-1]=te[te.length-1-ae],te[te.length-1-ae]=ie)}else{var le=Math.abs(b-+this._x.call(null,ne.data));le=(ie=(ee+te)/2))?ee=ie:te=ie,a=y,!(y=y[oe=+ae]))return this;if(!y.length)break;a[oe+1&1]&&(x=a,le=oe)}for(;y.data!==b;)if(E=y,!(y=y.next))return this;return(z=y.next)&&delete y.next,E?(z?E.next=z:delete E.next,this):a?(z?a[oe]=z:delete a[oe],(y=a[0]||a[1])&&y===(a[1]||a[0])&&!y.length&&(x?x[le]=y:this._root=y),this):(this._root=z,this)}function Pz(b){for(var a=0,y=b.length;a1&&(he.y=Be/Ce),a>2&&(he.z=Ne/Ce)}else{Ae=he,Ae.x=Ae.data.x,a>1&&(Ae.y=Ae.data.y),a>2&&(Ae.z=Ae.data.z);do ye+=ee[Ae.data.index];while(Ae=Ae.next)}he.value=ye}function de(he,ye,Ae,me,Ce){if(!he.value)return!0;var Ee=[Ae,me,Ce][a-1],Be=he.x-y.x,Ne=a>1?he.y-y.y:0,Fe=a>2?he.z-y.z:0,ke=Ee-ye,Re=Be*Be+Ne*Ne+Fe*Fe;if(ke*ke/ie1&&Ne===0&&(Ne=Ah(x),Re+=Ne*Ne),a>2&&Fe===0&&(Fe=Ah(x),Re+=Fe*Fe),Re1&&(y.vy+=Ne*he.value*E/Re),a>2&&(y.vz+=Fe*he.value*E/Re)),!0;if(he.length||Re>=ne)return;(he.data!==y||he.next)&&(Be===0&&(Be=Ah(x),Re+=Be*Be),a>1&&Ne===0&&(Ne=Ah(x),Re+=Ne*Ne),a>2&&Fe===0&&(Fe=Ah(x),Re+=Fe*Fe),Re1&&(y.vy+=Ne*ke),a>2&&(y.vz+=Fe*ke));while(he=he.next)}return ae.initialize=function(he,...ye){b=he,x=ye.find(Ae=>typeof Ae=="function")||Math.random,a=ye.find(Ae=>[1,2,3].includes(Ae))||2,oe()},ae.strength=function(he){return arguments.length?(z=typeof he=="function"?he:vp(+he),oe(),ae):z},ae.distanceMin=function(he){return arguments.length?(te=he*he,ae):Math.sqrt(te)},ae.distanceMax=function(he){return arguments.length?(ne=he*he,ae):Math.sqrt(ne)},ae.theta=function(he){return arguments.length?(ie=he*he,ae):Math.sqrt(ie)},ae}function h2(b,a,y){var x,E=1;b==null&&(b=0),a==null&&(a=0),y==null&&(y=0);function z(){var ee,te=x.length,ne,ie=0,ae=0,oe=0;for(ee=0;ee1&&(he.vy+=Ae*Ee),z>2&&(he.vz+=me*Ee)}}function ae(){if(E){var oe,le=E.length;for(te=new Array(le),ne=new Array(le),oe=0;oe[1,2,3].includes(de))||2,ae()},ie.strength=function(oe){return arguments.length?(ee=typeof oe=="function"?oe:vp(+oe),ae(),ie):ee},ie.radius=function(oe){return arguments.length?(b=typeof oe=="function"?oe:vp(+oe),ae(),ie):b},ie.x=function(oe){return arguments.length?(a=+oe,ie):a},ie.y=function(oe){return arguments.length?(y=+oe,ie):y},ie.z=function(oe){return arguments.length?(x=+oe,ie):x},ie}var Nz=Me(45174),Lz=Me(91998);function Oz(b){var a=typeof b;return b!=null&&(a=="object"||a=="function")}var QP=Oz,Rz=typeof global=="object"&&global&&global.Object===Object&&global,zz=Rz,kz=typeof self=="object"&&self&&self.Object===Object&&self,Hz=zz||kz||Function("return this")(),p2=Hz,Uz=function(){return p2.Date.now()},ZP=Uz,jz=/\s/;function Vz(b){for(var a=b.length;a--&&jz.test(b.charAt(a)););return a}var Gz=Vz,Xz=/^\s+/;function Wz(b){return b&&b.slice(0,Gz(b)+1).replace(Xz,"")}var Qz=Wz,Zz=p2.Symbol,cw=Zz,m2=Object.prototype,Yz=m2.hasOwnProperty,Jz=m2.toString,tx=cw?cw.toStringTag:void 0;function Kz(b){var a=Yz.call(b,tx),y=b[tx];try{b[tx]=void 0;var x=!0}catch(z){}var E=Jz.call(b);return x&&(a?b[tx]=y:delete b[tx]),E}var qz=Kz,_z=Object.prototype,$z=_z.toString;function ek(b){return $z.call(b)}var tk=ek,nk="[object Null]",rk="[object Undefined]",g2=cw?cw.toStringTag:void 0;function ik(b){return b==null?b===void 0?rk:nk:g2&&g2 in Object(b)?qz(b):tk(b)}var sk=ik;function ak(b){return b!=null&&typeof b=="object"}var ok=ak,lk="[object Symbol]";function uk(b){return typeof b=="symbol"||ok(b)&&sk(b)==lk}var ck=uk,v2=NaN,dk=/^[-+]0x[0-9a-f]+$/i,fk=/^0b[01]+$/i,hk=/^0o[0-7]+$/i,pk=parseInt;function mk(b){if(typeof b=="number")return b;if(ck(b))return v2;if(QP(b)){var a=typeof b.valueOf=="function"?b.valueOf():b;b=QP(a)?a+"":a}if(typeof b!="string")return b===0?b:+b;b=Qz(b);var y=fk.test(b);return y||hk.test(b)?pk(b.slice(2),y?2:8):dk.test(b)?v2:+b}var A2=mk,gk="Expected a function",vk=Math.max,Ak=Math.min;function yk(b,a,y){var x,E,z,ee,te,ne,ie=0,ae=!1,oe=!1,le=!0;if(typeof b!="function")throw new TypeError(gk);a=A2(a)||0,QP(y)&&(ae=!!y.leading,oe="maxWait"in y,z=oe?vk(A2(y.maxWait)||0,a):z,le="trailing"in y?!!y.trailing:le);function de(Fe){var ke=x,Re=E;return x=E=void 0,ie=Fe,ee=b.apply(Re,ke),ee}function he(Fe){return ie=Fe,te=setTimeout(me,a),ae?de(Fe):ee}function ye(Fe){var ke=Fe-ne,Re=Fe-ie,Oe=a-ke;return oe?Ak(Oe,z-Re):Oe}function Ae(Fe){var ke=Fe-ne,Re=Fe-ie;return ne===void 0||ke>=a||ke<0||oe&&Re>=z}function me(){var Fe=ZP();if(Ae(Fe))return Ce(Fe);te=setTimeout(me,ye(Fe))}function Ce(Fe){return te=void 0,le&&x?de(Fe):(x=E=void 0,ee)}function Ee(){te!==void 0&&clearTimeout(te),ie=0,x=ne=E=te=void 0}function Be(){return te===void 0?ee:Ce(ZP())}function Ne(){var Fe=ZP(),ke=Ae(Fe);if(x=arguments,E=this,ne=Fe,ke){if(te===void 0)return he(ne);if(oe)return clearTimeout(te),te=setTimeout(me,a),de(ne)}return te===void 0&&(te=setTimeout(me,a)),ee}return Ne.cancel=Ee,Ne.flush=Be,Ne}var xk=yk;function y2(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);yx||y===void 0&&x>=x)&&(y=x);else{let x=-1;for(let E of b)(E=a(E,++x,b))!=null&&(y>E||y===void 0&&E>=E)&&(y=E)}return y}function Tk(b,a){let y;if(a===void 0)for(const x of b)x!=null&&(y=x)&&(y=x);else{let x=-1;for(let E of b)(E=a(E,++x,b))!=null&&(y=E)&&(y=E)}return y}function YP(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);y=0,z=!y&&E&&(a==="hex"||a==="hex6"||a==="hex3"||a==="hex4"||a==="hex8"||a==="name");return z?a==="name"&&this._a===0?this.toName():this.toRgbString():(a==="rgb"&&(x=this.toRgbString()),a==="prgb"&&(x=this.toPercentageRgbString()),(a==="hex"||a==="hex6")&&(x=this.toHexString()),a==="hex3"&&(x=this.toHexString(!0)),a==="hex4"&&(x=this.toHex8String(!0)),a==="hex8"&&(x=this.toHex8String()),a==="name"&&(x=this.toName()),a==="hsl"&&(x=this.toHslString()),a==="hsv"&&(x=this.toHsvString()),x||this.toHexString())},clone:function(){return Qs(this.toString())},_applyModification:function(a,y){var x=a.apply(null,[this].concat([].slice.call(y)));return this._r=x._r,this._g=x._g,this._b=x._b,this.setAlpha(x._a),this},lighten:function(){return this._applyModification(sH,arguments)},brighten:function(){return this._applyModification(aH,arguments)},darken:function(){return this._applyModification(oH,arguments)},desaturate:function(){return this._applyModification(nH,arguments)},saturate:function(){return this._applyModification(rH,arguments)},greyscale:function(){return this._applyModification(iH,arguments)},spin:function(){return this._applyModification(lH,arguments)},_applyCombination:function(a,y){return a.apply(null,[this].concat([].slice.call(y)))},analogous:function(){return this._applyCombination(dH,arguments)},complement:function(){return this._applyCombination(uH,arguments)},monochromatic:function(){return this._applyCombination(fH,arguments)},splitcomplement:function(){return this._applyCombination(cH,arguments)},triad:function(){return this._applyCombination(F2,[3])},tetrad:function(){return this._applyCombination(F2,[4])}},Qs.fromRatio=function(b,a){if(hw(b)=="object"){var y={};for(var x in b)b.hasOwnProperty(x)&&(x==="a"?y[x]=b[x]:y[x]=rx(b[x]));b=y}return Qs(b,a)};function qk(b){var a={r:0,g:0,b:0},y=1,x=null,E=null,z=null,ee=!1,te=!1;return typeof b=="string"&&(b=vH(b)),hw(b)=="object"&&(ng(b.r)&&ng(b.g)&&ng(b.b)?(a=_k(b.r,b.g,b.b),ee=!0,te=String(b.r).substr(-1)==="%"?"prgb":"rgb"):ng(b.h)&&ng(b.s)&&ng(b.v)?(x=rx(b.s),E=rx(b.v),a=eH(b.h,x,E),ee=!0,te="hsv"):ng(b.h)&&ng(b.s)&&ng(b.l)&&(x=rx(b.s),z=rx(b.l),a=$k(b.h,x,z),ee=!0,te="hsl"),b.hasOwnProperty("a")&&(y=b.a)),y=N2(y),{ok:ee,format:b.format||te,r:Math.min(255,Math.max(a.r,0)),g:Math.min(255,Math.max(a.g,0)),b:Math.min(255,Math.max(a.b,0)),a:y}}function _k(b,a,y){return{r:Ol(b,255)*255,g:Ol(a,255)*255,b:Ol(y,255)*255}}function M2(b,a,y){b=Ol(b,255),a=Ol(a,255),y=Ol(y,255);var x=Math.max(b,a,y),E=Math.min(b,a,y),z,ee,te=(x+E)/2;if(x==E)z=ee=0;else{var ne=x-E;switch(ee=te>.5?ne/(2-x-E):ne/(x+E),x){case b:z=(a-y)/ne+(a1&&(oe-=1),oe<1/6?ie+(ae-ie)*6*oe:oe<1/2?ae:oe<2/3?ie+(ae-ie)*(2/3-oe)*6:ie}if(a===0)x=E=z=y;else{var te=y<.5?y*(1+a):y+a-y*a,ne=2*y-te;x=ee(ne,te,b+1/3),E=ee(ne,te,b),z=ee(ne,te,b-1/3)}return{r:x*255,g:E*255,b:z*255}}function D2(b,a,y){b=Ol(b,255),a=Ol(a,255),y=Ol(y,255);var x=Math.max(b,a,y),E=Math.min(b,a,y),z,ee,te=x,ne=x-E;if(ee=x===0?0:ne/x,x==E)z=0;else{switch(x){case b:z=(a-y)/ne+(a>1)+720)%360;--a;)x.h=(x.h+E)%360,z.push(Qs(x));return z}function fH(b,a){a=a||6;for(var y=Qs(b).toHsv(),x=y.h,E=y.s,z=y.v,ee=[],te=1/a;a--;)ee.push(Qs({h:x,s:E,v:z})),z=(z+te)%1;return ee}Qs.mix=function(b,a,y){y=y===0?0:y||50;var x=Qs(b).toRgb(),E=Qs(a).toRgb(),z=y/100,ee={r:(E.r-x.r)*z+x.r,g:(E.g-x.g)*z+x.g,b:(E.b-x.b)*z+x.b,a:(E.a-x.a)*z+x.a};return Qs(ee)},Qs.readability=function(b,a){var y=Qs(b),x=Qs(a);return(Math.max(y.getLuminance(),x.getLuminance())+.05)/(Math.min(y.getLuminance(),x.getLuminance())+.05)},Qs.isReadable=function(b,a,y){var x=Qs.readability(b,a),E,z;switch(z=!1,E=AH(y),E.level+E.size){case"AAsmall":case"AAAlarge":z=x>=4.5;break;case"AAlarge":z=x>=3;break;case"AAAsmall":z=x>=7;break}return z},Qs.mostReadable=function(b,a,y){var x=null,E=0,z,ee,te,ne;y=y||{},ee=y.includeFallbackColors,te=y.level,ne=y.size;for(var ie=0;ieE&&(E=z,x=Qs(a[ie]));return Qs.isReadable(b,x,{level:te,size:ne})||!ee?x:(y.includeFallbackColors=!1,Qs.mostReadable(b,["#fff","#000"],y))};var $P=Qs.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},hH=Qs.hexNames=pH($P);function pH(b){var a={};for(var y in b)b.hasOwnProperty(y)&&(a[b[y]]=y);return a}function N2(b){return b=parseFloat(b),(isNaN(b)||b<0||b>1)&&(b=1),b}function Ol(b,a){mH(b)&&(b="100%");var y=gH(b);return b=Math.min(a,Math.max(0,parseFloat(b))),y&&(b=parseInt(b*a,10)/100),Math.abs(b-a)<1e-6?1:b%a/parseFloat(a)}function pw(b){return Math.min(1,Math.max(0,b))}function If(b){return parseInt(b,16)}function mH(b){return typeof b=="string"&&b.indexOf(".")!=-1&&parseFloat(b)===1}function gH(b){return typeof b=="string"&&b.indexOf("%")!=-1}function Ap(b){return b.length==1?"0"+b:""+b}function rx(b){return b<=1&&(b=b*100+"%"),b}function L2(b){return Math.round(parseFloat(b)*255).toString(16)}function O2(b){return If(b)/255}var yp=function(){var b="[-\\+]?\\d+%?",a="[-\\+]?\\d*\\.\\d+%?",y="(?:"+a+")|(?:"+b+")",x="[\\s|\\(]+("+y+")[,|\\s]+("+y+")[,|\\s]+("+y+")\\s*\\)?",E="[\\s|\\(]+("+y+")[,|\\s]+("+y+")[,|\\s]+("+y+")[,|\\s]+("+y+")\\s*\\)?";return{CSS_UNIT:new RegExp(y),rgb:new RegExp("rgb"+x),rgba:new RegExp("rgba"+E),hsl:new RegExp("hsl"+x),hsla:new RegExp("hsla"+E),hsv:new RegExp("hsv"+x),hsva:new RegExp("hsva"+E),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function ng(b){return!!yp.CSS_UNIT.exec(b)}function vH(b){b=b.replace(Jk,"").replace(Kk,"").toLowerCase();var a=!1;if($P[b])b=$P[b],a=!0;else if(b=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var y;return(y=yp.rgb.exec(b))?{r:y[1],g:y[2],b:y[3]}:(y=yp.rgba.exec(b))?{r:y[1],g:y[2],b:y[3],a:y[4]}:(y=yp.hsl.exec(b))?{h:y[1],s:y[2],l:y[3]}:(y=yp.hsla.exec(b))?{h:y[1],s:y[2],l:y[3],a:y[4]}:(y=yp.hsv.exec(b))?{h:y[1],s:y[2],v:y[3]}:(y=yp.hsva.exec(b))?{h:y[1],s:y[2],v:y[3],a:y[4]}:(y=yp.hex8.exec(b))?{r:If(y[1]),g:If(y[2]),b:If(y[3]),a:O2(y[4]),format:a?"name":"hex8"}:(y=yp.hex6.exec(b))?{r:If(y[1]),g:If(y[2]),b:If(y[3]),format:a?"name":"hex"}:(y=yp.hex4.exec(b))?{r:If(y[1]+""+y[1]),g:If(y[2]+""+y[2]),b:If(y[3]+""+y[3]),a:O2(y[4]+""+y[4]),format:a?"name":"hex8"}:(y=yp.hex3.exec(b))?{r:If(y[1]+""+y[1]),g:If(y[2]+""+y[2]),b:If(y[3]+""+y[3]),format:a?"name":"hex"}:!1}function AH(b){var a,y;return b=b||{level:"AA",size:"small"},a=(b.level||"AA").toUpperCase(),y=(b.size||"small").toLowerCase(),a!=="AA"&&a!=="AAA"&&(a="AA"),y!=="small"&&y!=="large"&&(y="small"),{level:a,size:y}}function eB(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);y1&&arguments[1]!==void 0?arguments[1]:{},z=E.dataBindAttr,ee=z===void 0?"__data":z,te=E.objBindAttr,ne=te===void 0?"__threeObj":te;return k2(this,a),x=z2(this,a),mw(x,"scene",void 0),H2(x,lB,void 0),H2(x,gw,void 0),x.scene=y,U2(lB,x,ee),U2(gw,x,ne),x.onRemoveObj(function(){}),x}return G2(a,b),V2(a,[{key:"onCreateObj",value:function(x){var E=this;return sB(a,"onCreateObj",this)([function(z){var ee=x(z);return z[tB(gw,E)]=ee,ee[tB(lB,E)]=z,E.scene.add(ee),ee}]),this}},{key:"onRemoveObj",value:function(x){var E=this;return sB(a,"onRemoveObj",this)([function(z,ee){var te=sB(a,"getData",E)([z]);x(z,ee),E.scene.remove(z),oB(z),delete te[tB(gw,E)]}]),this}}])}(Wk),ax=function(a){return isNaN(a)?parseInt(Qs(a).toHex(),16):a},uB=function(a){return isNaN(a)?Qs(a).getAlpha():1},FH=S2(Yk);function J2(b,a,y){!a||typeof y!="string"||b.filter(function(x){return!x[y]}).forEach(function(x){x[y]=FH(a(x))})}function NH(b,a){var y=b.nodes,x=b.links,E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},z=E.nodeFilter,ee=z===void 0?function(){return!0}:z,te=E.onLoopError,ne=te===void 0?function(de){throw"Invalid DAG structure! Found cycle in node path: ".concat(de.join(" -> "),".")}:te,ie={};y.forEach(function(de){return ie[a(de)]={data:de,out:[],depth:-1,skip:!ee(de)}}),x.forEach(function(de){var he=de.source,ye=de.target,Ae=Be(he),me=Be(ye);if(!ie.hasOwnProperty(Ae))throw"Missing source node with id: ".concat(Ae);if(!ie.hasOwnProperty(me))throw"Missing target node with id: ".concat(me);var Ce=ie[Ae],Ee=ie[me];Ce.out.push(Ee);function Be(Ne){return aB(Ne)==="object"?a(Ne):Ne}});var ae=[];le(Object.values(ie));var oe=Object.assign.apply(Object,[{}].concat(xp(Object.entries(ie).filter(function(de){var he=ix(de,2),ye=he[1];return!ye.skip}).map(function(de){var he=ix(de,2),ye=he[0],Ae=he[1];return mw({},ye,Ae.depth)}))));return oe;function le(de){for(var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],ye=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,Ae=function(){var Be=de[me];if(he.indexOf(Be)!==-1){var Ne=[].concat(xp(he.slice(he.indexOf(Be))),[Be]).map(function(Fe){return a(Fe.data)});return ae.some(function(Fe){return Fe.length===Ne.length&&Fe.every(function(ke,Re){return ke===Ne[Re]})})||(ae.push(Ne),ne(Ne)),1}ye>Be.depth&&(Be.depth=ye,le(Be.out,[].concat(xp(he),[Be]),ye+(Be.skip?0:1)))},me=0,Ce=de.length;me2?-60:-30),a<3&&E(y.graphData.nodes,"z"),a<2&&E(y.graphData.nodes,"y");function E(z,ee){z.forEach(function(te){delete te[ee],delete te["v".concat(ee)]})}}},dagMode:{onChange:function(a,y){!a&&y.forceEngine==="d3"&&(y.graphData.nodes||[]).forEach(function(x){return x.fx=x.fy=x.fz=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(a){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:"id"},nodeVal:{default:"val"},nodeResolution:{default:8},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},nodePositionUpdate:{triggerUpdate:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},linkDirectionalParticleThreeObject:{},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(a,y){y.d3ForceLayout.alphaDecay(a)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(a,y){y.d3ForceLayout.alphaTarget(a)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(a,y){y.d3ForceLayout.velocityDecay(a)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(a){return a._flushObjects=!0,a._rerender(),this},d3Force:function(a,y,x){return x===void 0?a.d3ForceLayout.force(y):(a.d3ForceLayout.force(y,x),this)},d3ReheatSimulation:function(a){return a.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(a){return a.cntTicks=0,a.startTickTime=new Date,a.engineRunning=!0,this},tickFrame:function(a){var y=a.forceEngine!=="ngraph";return a.engineRunning&&x(),E(),z(),this;function x(){++a.cntTicks>a.cooldownTicks||new Date-a.startTickTime>a.cooldownTime||y&&a.d3AlphaMin>0&&a.d3ForceLayout.alpha()0){var Fe=ye.x-he.x,ke=ye.y-he.y||0,Re=new ma.Vector3().subVectors(Ce,me),Oe=Re.clone().multiplyScalar(Ae).cross(Fe!==0||ke!==0?new ma.Vector3(0,0,1):new ma.Vector3(0,1,0)).applyAxisAngle(Re.normalize(),Ne).add(new ma.Vector3().addVectors(me,Ce).divideScalar(2));Be=new ma.QuadraticBezierCurve3(me,Oe,Ce)}else{var ze=Ae*70,Le=-Ne,_e=Le+Math.PI/2;Be=new ma.CubicBezierCurve3(me,new ma.Vector3(ze*Math.cos(_e),ze*Math.sin(_e),0).add(me),new ma.Vector3(ze*Math.cos(Le),ze*Math.sin(Le),0).add(me),Ce)}le.__curve=Be}}}}function E(){var ee=so(a.linkDirectionalArrowRelPos),te=so(a.linkDirectionalArrowLength),ne=so(a.nodeVal);a.arrowDataMapper.entries().forEach(function(ie){var ae=ix(ie,2),oe=ae[0],le=ae[1];if(le){var de=y?oe:a.layout.getLinkPosition(a.layout.graph.getLink(oe.source,oe.target).id),he=de[y?"source":"from"],ye=de[y?"target":"to"];if(!(!he||!ye||!he.hasOwnProperty("x")||!ye.hasOwnProperty("x"))){var Ae=Math.cbrt(Math.max(0,ne(he)||1))*a.nodeRelSize,me=Math.cbrt(Math.max(0,ne(ye)||1))*a.nodeRelSize,Ce=te(oe),Ee=ee(oe),Be=oe.__curve?function(ze){return oe.__curve.getPoint(ze)}:function(ze){var Le=function(Et,yt,jt,tn){return yt[Et]+(jt[Et]-yt[Et])*tn||0};return{x:Le("x",he,ye,ze),y:Le("y",he,ye,ze),z:Le("z",he,ye,ze)}},Ne=oe.__curve?oe.__curve.getLength():Math.sqrt(["x","y","z"].map(function(ze){return Math.pow((ye[ze]||0)-(he[ze]||0),2)}).reduce(function(ze,Le){return ze+Le},0)),Fe=Ae+Ce+(Ne-Ae-me-Ce)*Ee,ke=Be(Fe/Ne),Re=Be((Fe-Ce)/Ne);["x","y","z"].forEach(function(ze){return le.position[ze]=Re[ze]});var Oe=j2(ma.Vector3,xp(["x","y","z"].map(function(ze){return ke[ze]})));le.parent.localToWorld(Oe),le.lookAt(Oe)}}})}function z(){var ee=so(a.linkDirectionalParticleSpeed),te=so(a.linkDirectionalParticleOffset);a.graphData.links.forEach(function(ne){var ie=a.particlesDataMapper.getObj(ne),ae=ie&&ie.children,oe=ne.__singleHopPhotonsObj&&ne.__singleHopPhotonsObj.children;if(!((!oe||!oe.length)&&(!ae||!ae.length))){var le=y?ne:a.layout.getLinkPosition(a.layout.graph.getLink(ne.source,ne.target).id),de=le[y?"source":"from"],he=le[y?"target":"to"];if(!(!de||!he||!de.hasOwnProperty("x")||!he.hasOwnProperty("x"))){var ye=ee(ne),Ae=Math.abs(te(ne)),me=ne.__curve?function(Ee){return ne.__curve.getPoint(Ee)}:function(Ee){var Be=function(Fe,ke,Re,Oe){return ke[Fe]+(Re[Fe]-ke[Fe])*Oe||0};return{x:Be("x",de,he,Ee),y:Be("y",de,he,Ee),z:Be("z",de,he,Ee)}},Ce=[].concat(xp(ae||[]),xp(oe||[]));Ce.forEach(function(Ee,Be){var Ne=Ee.parent.__linkThreeObjType==="singleHopPhotons";if(Ee.hasOwnProperty("__progressRatio")||(Ee.__progressRatio=Ne?0:(Be+Ae)/ae.length),Ee.__progressRatio+=ye,Ee.__progressRatio>=1)if(!Ne)Ee.__progressRatio=Ee.__progressRatio%1;else{Ee.parent.remove(Ee),oB(Ee);return}var Fe=Ee.__progressRatio,ke=me(Fe);Ee.geometry.type!=="SphereGeometry"&&Ee.lookAt(ke.x,ke.y,ke.z),["x","y","z"].forEach(function(Re){return Ee.position[Re]=ke[Re]})})}}})}},emitParticle:function(a,y){if(y&&a.graphData.links.includes(y)){if(!y.__singleHopPhotonsObj){var x=new ma.Group;x.__linkThreeObjType="singleHopPhotons",y.__singleHopPhotonsObj=x,a.graphScene.add(x)}var E=so(a.linkDirectionalParticleThreeObject)(y);if(E&&a.linkDirectionalParticleThreeObject===E&&(E=E.clone()),!E){var z=so(a.linkDirectionalParticleWidth),ee=Math.ceil(z(y)*10)/10/2,te=a.linkDirectionalParticleResolution,ne=new ma.SphereGeometry(ee,te,te),ie=so(a.linkColor),ae=so(a.linkDirectionalParticleColor),oe=ae(y)||ie(y)||"#f0f0f0",le=new ma.Color(ax(oe)),de=a.linkOpacity*3,he=new ma.MeshLambertMaterial({color:le,transparent:!0,opacity:de});E=new ma.Mesh(ne,he)}y.__singleHopPhotonsObj.add(E)}return this},getGraphBbox:function(a){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0};if(!a.initialised)return null;var x=function E(z){var ee=[];if(z.geometry){z.geometry.computeBoundingBox();var te=new ma.Box3;te.copy(z.geometry.boundingBox).applyMatrix4(z.matrixWorld),ee.push(te)}return ee.concat.apply(ee,xp((z.children||[]).filter(function(ne){return!ne.hasOwnProperty("__graphObjType")||ne.__graphObjType==="node"&&y(ne.__data)}).map(E)))}(a.graphScene);return x.length?Object.assign.apply(Object,xp(["x","y","z"].map(function(E){return mw({},E,[Dk(x,function(z){return z.min[E]}),Tk(x,function(z){return z.max[E]})])}))):null}},stateInit:function(){return{d3ForceLayout:s2().force("link",o2()).force("charge",f2()).force("center",h2()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(a,y){y.graphScene=a,y.nodeDataMapper=new sx(a,{objBindAttr:"__threeObj"}),y.linkDataMapper=new sx(a,{objBindAttr:"__lineObj"}),y.arrowDataMapper=new sx(a,{objBindAttr:"__arrowObj"}),y.particlesDataMapper=new sx(a,{objBindAttr:"__photonsObj"})},update:function(a,y){var x=function(on){return on.some(function(dn){return y.hasOwnProperty(dn)})};if(a.engineRunning=!1,typeof a.onUpdate=="function"&&a.onUpdate(),a.nodeAutoColorBy!==null&&x(["nodeAutoColorBy","graphData","nodeColor"])&&J2(a.graphData.nodes,so(a.nodeAutoColorBy),a.nodeColor),a.linkAutoColorBy!==null&&x(["linkAutoColorBy","graphData","linkColor"])&&J2(a.graphData.links,so(a.linkAutoColorBy),a.linkColor),a._flushObjects||x(["graphData","nodeThreeObject","nodeThreeObjectExtend","nodeVal","nodeColor","nodeVisibility","nodeRelSize","nodeResolution","nodeOpacity"])){var E=so(a.nodeThreeObject),z=so(a.nodeThreeObjectExtend),ee=so(a.nodeVal),te=so(a.nodeColor),ne=so(a.nodeVisibility),ie={},ae={};(a._flushObjects||x(["nodeThreeObject","nodeThreeObjectExtend"]))&&a.nodeDataMapper.clear(),a.nodeDataMapper.onCreateObj(function(bt){var on=E(bt),dn=z(bt);on&&a.nodeThreeObject===on&&(on=on.clone());var Qn;return on&&!dn?Qn=on:(Qn=new ma.Mesh,Qn.__graphDefaultObj=!0,on&&dn&&Qn.add(on)),Qn.__graphObjType="node",Qn}).onUpdateObj(function(bt,on){if(bt.__graphDefaultObj){var dn=ee(on)||1,Qn=Math.cbrt(dn)*a.nodeRelSize,Un=a.nodeResolution;(!bt.geometry.type.match(/^Sphere(Buffer)?Geometry$/)||bt.geometry.parameters.radius!==Qn||bt.geometry.parameters.widthSegments!==Un)&&(ie.hasOwnProperty(dn)||(ie[dn]=new ma.SphereGeometry(Qn,Un,Un)),bt.geometry.dispose(),bt.geometry=ie[dn]);var Kn=te(on),Nr=new ma.Color(ax(Kn||"#ffffaa")),Xr=a.nodeOpacity*uB(Kn);(bt.material.type!=="MeshLambertMaterial"||!bt.material.color.equals(Nr)||bt.material.opacity!==Xr)&&(ae.hasOwnProperty(Kn)||(ae[Kn]=new ma.MeshLambertMaterial({color:Nr,transparent:!0,opacity:Xr})),bt.material.dispose(),bt.material=ae[Kn])}}).digest(a.graphData.nodes.filter(ne))}if(a._flushObjects||x(["graphData","linkThreeObject","linkThreeObjectExtend","linkMaterial","linkColor","linkWidth","linkVisibility","linkResolution","linkOpacity","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","linkDirectionalParticleThreeObject"])){var oe=so(a.linkThreeObject),le=so(a.linkThreeObjectExtend),de=so(a.linkMaterial),he=so(a.linkVisibility),ye=so(a.linkColor),Ae=so(a.linkWidth),me={},Ce={},Ee={},Be=a.graphData.links.filter(he);if((a._flushObjects||x(["linkThreeObject","linkThreeObjectExtend","linkWidth"]))&&a.linkDataMapper.clear(),a.linkDataMapper.onRemoveObj(function(bt){var on=bt.__data&&bt.__data.__singleHopPhotonsObj;on&&(on.parent.remove(on),oB(on),delete bt.__data.__singleHopPhotonsObj)}).onCreateObj(function(bt){var on=oe(bt),dn=le(bt);on&&a.linkThreeObject===on&&(on=on.clone());var Qn;if(!on||dn){var Un=!!Ae(bt);if(Un)Qn=new ma.Mesh;else{var Kn=new ma.BufferGeometry;Kn[cB]("position",new ma.BufferAttribute(new Float32Array(2*3),3)),Qn=new ma.Line(Kn)}}var Nr;return on?dn?(Nr=new ma.Group,Nr.__graphDefaultObj=!0,Nr.add(Qn),Nr.add(on)):Nr=on:(Nr=Qn,Nr.__graphDefaultObj=!0),Nr.renderOrder=10,Nr.__graphObjType="link",Nr}).onUpdateObj(function(bt,on){if(bt.__graphDefaultObj){var dn=bt.children.length?bt.children[0]:bt,Qn=Math.ceil(Ae(on)*10)/10,Un=!!Qn;if(Un){var Kn=Qn/2,Nr=a.linkResolution;if(!dn.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||dn.geometry.parameters.radiusTop!==Kn||dn.geometry.parameters.radialSegments!==Nr){if(!me.hasOwnProperty(Qn)){var Xr=new ma.CylinderGeometry(Kn,Kn,1,Nr,1,!1);Xr[vw](new ma.Matrix4().makeTranslation(0,1/2,0)),Xr[vw](new ma.Matrix4().makeRotationX(Math.PI/2)),me[Qn]=Xr}dn.geometry.dispose(),dn.geometry=me[Qn]}}var Ht=de(on);if(Ht)dn.material=Ht;else{var En=ye(on),qn=new ma.Color(ax(En||"#f0f0f0")),vr=a.linkOpacity*uB(En),cr=Un?"MeshLambertMaterial":"LineBasicMaterial";if(dn.material.type!==cr||!dn.material.color.equals(qn)||dn.material.opacity!==vr){var Vr=Un?Ce:Ee;Vr.hasOwnProperty(En)||(Vr[En]=new ma[cr]({color:qn,transparent:vr<1,opacity:vr,depthWrite:vr>=1})),dn.material.dispose(),dn.material=Vr[En]}}}}).digest(Be),a.linkDirectionalArrowLength||y.hasOwnProperty("linkDirectionalArrowLength")){var Ne=so(a.linkDirectionalArrowLength),Fe=so(a.linkDirectionalArrowColor);a.arrowDataMapper.onCreateObj(function(){var bt=new ma.Mesh(void 0,new ma.MeshLambertMaterial({transparent:!0}));return bt.__linkThreeObjType="arrow",bt}).onUpdateObj(function(bt,on){var dn=Ne(on),Qn=a.linkDirectionalArrowResolution;if(!bt.geometry.type.match(/^Cone(Buffer)?Geometry$/)||bt.geometry.parameters.height!==dn||bt.geometry.parameters.radialSegments!==Qn){var Un=new ma.ConeGeometry(dn*.25,dn,Qn);Un.translate(0,dn/2,0),Un.rotateX(Math.PI/2),bt.geometry.dispose(),bt.geometry=Un}var Kn=Fe(on)||ye(on)||"#f0f0f0";bt.material.color=new ma.Color(ax(Kn)),bt.material.opacity=a.linkOpacity*3*uB(Kn)}).digest(Be.filter(Ne))}if(a.linkDirectionalParticles||y.hasOwnProperty("linkDirectionalParticles")){var ke=so(a.linkDirectionalParticles),Re=so(a.linkDirectionalParticleWidth),Oe=so(a.linkDirectionalParticleColor),ze=so(a.linkDirectionalParticleThreeObject),Le={},_e={};a.particlesDataMapper.onCreateObj(function(){var bt=new ma.Group;return bt.__linkThreeObjType="photons",bt.__photonDataMapper=new sx(bt),bt}).onUpdateObj(function(bt,on){var dn=!!bt.children.length&&bt.children[0],Qn=ze(on),Un,Kn;if(Qn)Un=Qn.geometry,Kn=Qn.material;else{var Nr=Math.ceil(Re(on)*10)/10/2,Xr=a.linkDirectionalParticleResolution;dn&&dn.geometry.parameters.radius===Nr&&dn.geometry.parameters.widthSegments===Xr?Un=dn.geometry:(_e.hasOwnProperty(Nr)||(_e[Nr]=new ma.SphereGeometry(Nr,Xr,Xr)),Un=_e[Nr]);var Ht=Oe(on)||ye(on)||"#f0f0f0",En=new ma.Color(ax(Ht)),qn=a.linkOpacity*3;dn&&dn.material.color.equals(En)&&dn.material.opacity===qn?Kn=dn.material:(Le.hasOwnProperty(Ht)||(Le[Ht]=new ma.MeshLambertMaterial({color:En,transparent:!0,opacity:qn})),Kn=Le[Ht])}dn&&(dn.geometry!==Un&&dn.geometry.dispose(),dn.material!==Kn&&dn.material.dispose());var vr=Math.round(Math.abs(ke(on)));bt.__photonDataMapper.id(function(cr){return cr.idx}).onCreateObj(function(){return new ma.Mesh(Un,Kn)}).onUpdateObj(function(cr){cr.geometry=Un,cr.material=Kn}).digest(xp(new Array(vr)).map(function(cr,Vr){return{idx:Vr}}))}).digest(Be.filter(ke))}}if(a._flushObjects=!1,x(["graphData","nodeId","linkSource","linkTarget","numDimensions","forceEngine","dagMode","dagNodeFilter","dagLevelDistance"])){a.engineRunning=!1,a.graphData.links.forEach(function(bt){bt.source=bt[a.linkSource],bt.target=bt[a.linkTarget]});var Et=a.forceEngine!=="ngraph",yt;if(Et){(yt=a.d3ForceLayout).stop().alpha(1).numDimensions(a.numDimensions).nodes(a.graphData.nodes);var jt=a.d3ForceLayout.force("link");jt&&jt.id(function(bt){return bt[a.nodeId]}).links(a.graphData.links);var tn=a.dagMode&&NH(a.graphData,function(bt){return bt[a.nodeId]},{nodeFilter:a.dagNodeFilter,onLoopError:a.onDagError||void 0}),cn=Math.max.apply(Math,xp(Object.values(tn||[]))),kt=a.dagLevelDistance||a.graphData.nodes.length/(cn||1)*LH*(["radialin","radialout"].indexOf(a.dagMode)!==-1?.7:1);if(["lr","rl","td","bu","zin","zout"].includes(y.dagMode)){var pt=["lr","rl"].includes(y.dagMode)?"fx":["td","bu"].includes(y.dagMode)?"fy":"fz";a.graphData.nodes.filter(a.dagNodeFilter).forEach(function(bt){return delete bt[pt]})}if(["lr","rl","td","bu","zin","zout"].includes(a.dagMode)){var An=["rl","td","zout"].includes(a.dagMode),Vt=function(on){return(tn[on[a.nodeId]]-cn/2)*kt*(An?-1:1)},rn=["lr","rl"].includes(a.dagMode)?"fx":["td","bu"].includes(a.dagMode)?"fy":"fz";a.graphData.nodes.filter(a.dagNodeFilter).forEach(function(bt){return bt[rn]=Vt(bt)})}a.d3ForceLayout.force("dagRadial",["radialin","radialout"].indexOf(a.dagMode)!==-1?Fz(function(bt){var on=tn[bt[a.nodeId]]||-1;return(a.dagMode==="radialin"?cn-on:on)*kt}).strength(function(bt){return a.dagNodeFilter(bt)?1:0}):null)}else{var Bn=K2.graph();a.graphData.nodes.forEach(function(bt){Bn.addNode(bt[a.nodeId])}),a.graphData.links.forEach(function(bt){Bn.addLink(bt.source,bt.target)}),yt=K2.forcelayout(Bn,MH({dimensions:a.numDimensions},a.ngraphPhysics)),yt.graph=Bn}for(var hr=0;hr0&&a.d3ForceLayout.alpha()1&&arguments[1]!==void 0?arguments[1]:Object,y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,x=function(E){function z(){var ee;k2(this,z);for(var te=arguments.length,ne=new Array(te),ie=0;iede.start-he.start);let le=0;for(let de=1;de 0 vec4 plane; #ifdef ALPHA_TO_COVERAGE float distanceToPlane, distanceGradient; float clipOpacity = 1.0; #pragma unroll_loop_start for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; distanceGradient = fwidth( distanceToPlane ) / 2.0; clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); if ( clipOpacity == 0.0 ) discard; } #pragma unroll_loop_end #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES float unionClipOpacity = 1.0; #pragma unroll_loop_start for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; distanceGradient = fwidth( distanceToPlane ) / 2.0; unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); } #pragma unroll_loop_end clipOpacity *= 1.0 - unionClipOpacity; #endif diffuseColor.a *= clipOpacity; if ( diffuseColor.a == 0.0 ) discard; #else #pragma unroll_loop_start for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; } #pragma unroll_loop_end #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES bool clipped = true; #pragma unroll_loop_start for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; } #pragma unroll_loop_end if ( clipped ) discard; #endif #endif #endif`,tU=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; #endif`,nU=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; #endif`,rU=`#if NUM_CLIPPING_PLANES > 0 vClipPosition = - mvPosition.xyz; #endif`,iU=`#if defined( USE_COLOR_ALPHA ) diffuseColor *= vColor; #elif defined( USE_COLOR ) diffuseColor.rgb *= vColor; #endif`,sU=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) varying vec3 vColor; #endif`,aU=`#if defined( USE_COLOR_ALPHA ) varying vec4 vColor; #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) varying vec3 vColor; #endif`,oU=`#if defined( USE_COLOR_ALPHA ) vColor = vec4( 1.0 ); #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) vColor = vec3( 1.0 ); #endif #ifdef USE_COLOR vColor *= color; #endif #ifdef USE_INSTANCING_COLOR vColor.xyz *= instanceColor.xyz; #endif #ifdef USE_BATCHING_COLOR vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); vColor.xyz *= batchingColor.xyz; #endif`,lU=`#define PI 3.141592653589793 #define PI2 6.283185307179586 #define PI_HALF 1.5707963267948966 #define RECIPROCAL_PI 0.3183098861837907 #define RECIPROCAL_PI2 0.15915494309189535 #define EPSILON 1e-6 #ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif #define whiteComplement( a ) ( 1.0 - saturate( a ) ) float pow2( const in float x ) { return x*x; } vec3 pow2( const in vec3 x ) { return x*x; } float pow3( const in float x ) { return x*x*x; } float pow4( const in float x ) { float x2 = x*x; return x2*x2; } float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } highp float rand( const in vec2 uv ) { const highp float a = 12.9898, b = 78.233, c = 43758.5453; highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); return fract( sin( sn ) * c ); } #ifdef HIGH_PRECISION float precisionSafeLength( vec3 v ) { return length( v ); } #else float precisionSafeLength( vec3 v ) { float maxComponent = max3( abs( v ) ); return length( v / maxComponent ) * maxComponent; } #endif struct IncidentLight { vec3 color; vec3 direction; bool visible; }; struct ReflectedLight { vec3 directDiffuse; vec3 directSpecular; vec3 indirectDiffuse; vec3 indirectSpecular; }; #ifdef USE_ALPHAHASH varying vec3 vPosition; #endif vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); } mat3 transposeMat3( const in mat3 m ) { mat3 tmp; tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); return tmp; } bool isPerspectiveMatrix( mat4 m ) { return m[ 2 ][ 3 ] == - 1.0; } vec2 equirectUv( in vec3 dir ) { float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; return vec2( u, v ); } vec3 BRDF_Lambert( const in vec3 diffuseColor ) { return RECIPROCAL_PI * diffuseColor; } vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); } float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); } // validated`,uU=`#ifdef ENVMAP_TYPE_CUBE_UV #define cubeUV_minMipLevel 4.0 #define cubeUV_minTileSize 16.0 float getFace( vec3 direction ) { vec3 absDirection = abs( direction ); float face = - 1.0; if ( absDirection.x > absDirection.z ) { if ( absDirection.x > absDirection.y ) face = direction.x > 0.0 ? 0.0 : 3.0; else face = direction.y > 0.0 ? 1.0 : 4.0; } else { if ( absDirection.z > absDirection.y ) face = direction.z > 0.0 ? 2.0 : 5.0; else face = direction.y > 0.0 ? 1.0 : 4.0; } return face; } vec2 getUV( vec3 direction, float face ) { vec2 uv; if ( face == 0.0 ) { uv = vec2( direction.z, direction.y ) / abs( direction.x ); } else if ( face == 1.0 ) { uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); } else if ( face == 2.0 ) { uv = vec2( - direction.x, direction.y ) / abs( direction.z ); } else if ( face == 3.0 ) { uv = vec2( - direction.z, direction.y ) / abs( direction.x ); } else if ( face == 4.0 ) { uv = vec2( - direction.x, direction.z ) / abs( direction.y ); } else { uv = vec2( direction.x, direction.y ) / abs( direction.z ); } return 0.5 * ( uv + 1.0 ); } vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { float face = getFace( direction ); float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); mipInt = max( mipInt, cubeUV_minMipLevel ); float faceSize = exp2( mipInt ); highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; if ( face > 2.0 ) { uv.y += faceSize; face -= 3.0; } uv.x += face * faceSize; uv.x += filterInt * 3.0 * cubeUV_minTileSize; uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); uv.x *= CUBEUV_TEXEL_WIDTH; uv.y *= CUBEUV_TEXEL_HEIGHT; #ifdef texture2DGradEXT return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; #else return texture2D( envMap, uv ).rgb; #endif } #define cubeUV_r0 1.0 #define cubeUV_m0 - 2.0 #define cubeUV_r1 0.8 #define cubeUV_m1 - 1.0 #define cubeUV_r4 0.4 #define cubeUV_m4 2.0 #define cubeUV_r5 0.305 #define cubeUV_m5 3.0 #define cubeUV_r6 0.21 #define cubeUV_m6 4.0 float roughnessToMip( float roughness ) { float mip = 0.0; if ( roughness >= cubeUV_r1 ) { mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; } else if ( roughness >= cubeUV_r4 ) { mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; } else if ( roughness >= cubeUV_r5 ) { mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; } else if ( roughness >= cubeUV_r6 ) { mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; } else { mip = - 2.0 * log2( 1.16 * roughness ); } return mip; } vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); float mipF = fract( mip ); float mipInt = floor( mip ); vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); if ( mipF == 0.0 ) { return vec4( color0, 1.0 ); } else { vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); return vec4( mix( color0, color1, mipF ), 1.0 ); } } #endif`,cU=`vec3 transformedNormal = objectNormal; #ifdef USE_TANGENT vec3 transformedTangent = objectTangent; #endif #ifdef USE_BATCHING mat3 bm = mat3( batchingMatrix ); transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); transformedNormal = bm * transformedNormal; #ifdef USE_TANGENT transformedTangent = bm * transformedTangent; #endif #endif #ifdef USE_INSTANCING mat3 im = mat3( instanceMatrix ); transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); transformedNormal = im * transformedNormal; #ifdef USE_TANGENT transformedTangent = im * transformedTangent; #endif #endif transformedNormal = normalMatrix * transformedNormal; #ifdef FLIP_SIDED transformedNormal = - transformedNormal; #endif #ifdef USE_TANGENT transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; #ifdef FLIP_SIDED transformedTangent = - transformedTangent; #endif #endif`,dU=`#ifdef USE_DISPLACEMENTMAP uniform sampler2D displacementMap; uniform float displacementScale; uniform float displacementBias; #endif`,fU=`#ifdef USE_DISPLACEMENTMAP transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); #endif`,hU=`#ifdef USE_EMISSIVEMAP vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE emissiveColor = sRGBTransferEOTF( emissiveColor ); #endif totalEmissiveRadiance *= emissiveColor.rgb; #endif`,pU=`#ifdef USE_EMISSIVEMAP uniform sampler2D emissiveMap; #endif`,mU="gl_FragColor = linearToOutputTexel( gl_FragColor );",gU=`vec4 LinearTransferOETF( in vec4 value ) { return value; } vec4 sRGBTransferEOTF( in vec4 value ) { return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); } vec4 sRGBTransferOETF( in vec4 value ) { return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); }`,vU=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vec3 cameraToFrag; if ( isOrthographic ) { cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); } else { cameraToFrag = normalize( vWorldPosition - cameraPosition ); } vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); #ifdef ENVMAP_MODE_REFLECTION vec3 reflectVec = reflect( cameraToFrag, worldNormal ); #else vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); #endif #else vec3 reflectVec = vReflect; #endif #ifdef ENVMAP_TYPE_CUBE vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); #else vec4 envColor = vec4( 0.0 ); #endif #ifdef ENVMAP_BLENDING_MULTIPLY outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); #elif defined( ENVMAP_BLENDING_MIX ) outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); #elif defined( ENVMAP_BLENDING_ADD ) outgoingLight += envColor.xyz * specularStrength * reflectivity; #endif #endif`,AU=`#ifdef USE_ENVMAP uniform float envMapIntensity; uniform float flipEnvMap; uniform mat3 envMapRotation; #ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #else uniform sampler2D envMap; #endif #endif`,yU=`#ifdef USE_ENVMAP uniform float reflectivity; #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif #ifdef ENV_WORLDPOS varying vec3 vWorldPosition; uniform float refractionRatio; #else varying vec3 vReflect; #endif #endif`,xU=`#ifdef USE_ENVMAP #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif #ifdef ENV_WORLDPOS varying vec3 vWorldPosition; #else varying vec3 vReflect; uniform float refractionRatio; #endif #endif`,bU=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vWorldPosition = worldPosition.xyz; #else vec3 cameraToVertex; if ( isOrthographic ) { cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); } else { cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); } vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); #ifdef ENVMAP_MODE_REFLECTION vReflect = reflect( cameraToVertex, worldNormal ); #else vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); #endif #endif #endif`,EU=`#ifdef USE_FOG vFogDepth = - mvPosition.z; #endif`,wU=`#ifdef USE_FOG varying float vFogDepth; #endif`,CU=`#ifdef USE_FOG #ifdef FOG_EXP2 float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); #else float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); #endif gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); #endif`,PU=`#ifdef USE_FOG uniform vec3 fogColor; varying float vFogDepth; #ifdef FOG_EXP2 uniform float fogDensity; #else uniform float fogNear; uniform float fogFar; #endif #endif`,BU=`#ifdef USE_GRADIENTMAP uniform sampler2D gradientMap; #endif vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { float dotNL = dot( normal, lightDirection ); vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); #ifdef USE_GRADIENTMAP return vec3( texture2D( gradientMap, coord ).r ); #else vec2 fw = fwidth( coord ) * 0.5; return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); #endif }`,SU=`#ifdef USE_LIGHTMAP uniform sampler2D lightMap; uniform float lightMapIntensity; #endif`,MU=`LambertMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularStrength = specularStrength;`,DU=`varying vec3 vViewPosition; struct LambertMaterial { vec3 diffuseColor; float specularStrength; }; void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Lambert #define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,TU=`uniform bool receiveShadow; uniform vec3 ambientLightColor; #if defined( USE_LIGHT_PROBES ) uniform vec3 lightProbe[ 9 ]; #endif vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { float x = normal.x, y = normal.y, z = normal.z; vec3 result = shCoefficients[ 0 ] * 0.886227; result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); return result; } vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); return irradiance; } vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { vec3 irradiance = ambientLightColor; return irradiance; } float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); if ( cutoffDistance > 0.0 ) { distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); } return distanceFalloff; } float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { return smoothstep( coneCosine, penumbraCosine, angleCosine ); } #if NUM_DIR_LIGHTS > 0 struct DirectionalLight { vec3 direction; vec3 color; }; uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { light.color = directionalLight.color; light.direction = directionalLight.direction; light.visible = true; } #endif #if NUM_POINT_LIGHTS > 0 struct PointLight { vec3 position; vec3 color; float distance; float decay; }; uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { vec3 lVector = pointLight.position - geometryPosition; light.direction = normalize( lVector ); float lightDistance = length( lVector ); light.color = pointLight.color; light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); light.visible = ( light.color != vec3( 0.0 ) ); } #endif #if NUM_SPOT_LIGHTS > 0 struct SpotLight { vec3 position; vec3 direction; vec3 color; float distance; float decay; float coneCos; float penumbraCos; }; uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { vec3 lVector = spotLight.position - geometryPosition; light.direction = normalize( lVector ); float angleCos = dot( light.direction, spotLight.direction ); float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); if ( spotAttenuation > 0.0 ) { float lightDistance = length( lVector ); light.color = spotLight.color * spotAttenuation; light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); light.visible = ( light.color != vec3( 0.0 ) ); } else { light.color = vec3( 0.0 ); light.visible = false; } } #endif #if NUM_RECT_AREA_LIGHTS > 0 struct RectAreaLight { vec3 color; vec3 position; vec3 halfWidth; vec3 halfHeight; }; uniform sampler2D ltc_1; uniform sampler2D ltc_2; uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; #endif #if NUM_HEMI_LIGHTS > 0 struct HemisphereLight { vec3 direction; vec3 skyColor; vec3 groundColor; }; uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { float dotNL = dot( normal, hemiLight.direction ); float hemiDiffuseWeight = 0.5 * dotNL + 0.5; vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); return irradiance; } #endif`,IU=`#ifdef USE_ENVMAP vec3 getIBLIrradiance( const in vec3 normal ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); return PI * envMapColor.rgb * envMapIntensity; #else return vec3( 0.0 ); #endif } vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 reflectVec = reflect( - viewDir, normal ); reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); return envMapColor.rgb * envMapIntensity; #else return vec3( 0.0 ); #endif } #ifdef USE_ANISOTROPY vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 bentNormal = cross( bitangent, viewDir ); bentNormal = normalize( cross( bentNormal, bitangent ) ); bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); #else return vec3( 0.0 ); #endif } #endif #endif`,FU=`ToonMaterial material; material.diffuseColor = diffuseColor.rgb;`,NU=`varying vec3 vViewPosition; struct ToonMaterial { vec3 diffuseColor; }; void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Toon #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,LU=`BlinnPhongMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularColor = specular; material.specularShininess = shininess; material.specularStrength = specularStrength;`,OU=`varying vec3 vViewPosition; struct BlinnPhongMaterial { vec3 diffuseColor; vec3 specularColor; float specularShininess; float specularStrength; }; void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; } void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_BlinnPhong #define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,RU=`PhysicalMaterial material; material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; material.roughness = min( material.roughness, 1.0 ); #ifdef IOR material.ior = ior; #ifdef USE_SPECULAR float specularIntensityFactor = specularIntensity; vec3 specularColorFactor = specularColor; #ifdef USE_SPECULAR_COLORMAP specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; #endif #ifdef USE_SPECULAR_INTENSITYMAP specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; #endif material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); #else float specularIntensityFactor = 1.0; vec3 specularColorFactor = vec3( 1.0 ); material.specularF90 = 1.0; #endif material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); #else material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); material.specularF90 = 1.0; #endif #ifdef USE_CLEARCOAT material.clearcoat = clearcoat; material.clearcoatRoughness = clearcoatRoughness; material.clearcoatF0 = vec3( 0.04 ); material.clearcoatF90 = 1.0; #ifdef USE_CLEARCOATMAP material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; #endif material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); material.clearcoatRoughness += geometryRoughness; material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); #endif #ifdef USE_DISPERSION material.dispersion = dispersion; #endif #ifdef USE_IRIDESCENCE material.iridescence = iridescence; material.iridescenceIOR = iridescenceIOR; #ifdef USE_IRIDESCENCEMAP material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; #else material.iridescenceThickness = iridescenceThicknessMaximum; #endif #endif #ifdef USE_SHEEN material.sheenColor = sheenColor; #ifdef USE_SHEEN_COLORMAP material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; #endif material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); #ifdef USE_SHEEN_ROUGHNESSMAP material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; #endif #endif #ifdef USE_ANISOTROPY #ifdef USE_ANISOTROPYMAP mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; #else vec2 anisotropyV = anisotropyVector; #endif material.anisotropy = length( anisotropyV ); if( material.anisotropy == 0.0 ) { anisotropyV = vec2( 1.0, 0.0 ); } else { anisotropyV /= material.anisotropy; material.anisotropy = saturate( material.anisotropy ); } material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; #endif`,zU=`struct PhysicalMaterial { vec3 diffuseColor; float roughness; vec3 specularColor; float specularF90; float dispersion; #ifdef USE_CLEARCOAT float clearcoat; float clearcoatRoughness; vec3 clearcoatF0; float clearcoatF90; #endif #ifdef USE_IRIDESCENCE float iridescence; float iridescenceIOR; float iridescenceThickness; vec3 iridescenceFresnel; vec3 iridescenceF0; #endif #ifdef USE_SHEEN vec3 sheenColor; float sheenRoughness; #endif #ifdef IOR float ior; #endif #ifdef USE_TRANSMISSION float transmission; float transmissionAlpha; float thickness; float attenuationDistance; vec3 attenuationColor; #endif #ifdef USE_ANISOTROPY float anisotropy; float alphaT; vec3 anisotropyT; vec3 anisotropyB; #endif }; vec3 clearcoatSpecularDirect = vec3( 0.0 ); vec3 clearcoatSpecularIndirect = vec3( 0.0 ); vec3 sheenSpecularDirect = vec3( 0.0 ); vec3 sheenSpecularIndirect = vec3(0.0 ); vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); float x2 = x * x; float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); } float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { float a2 = pow2( alpha ); float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); return 0.5 / max( gv + gl, EPSILON ); } float D_GGX( const in float alpha, const in float dotNH ) { float a2 = pow2( alpha ); float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; return RECIPROCAL_PI * a2 / pow2( denom ); } #ifdef USE_ANISOTROPY float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); float v = 0.5 / ( gv + gl ); return saturate(v); } float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { float a2 = alphaT * alphaB; highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); highp float v2 = dot( v, v ); float w2 = a2 / v2; return RECIPROCAL_PI * a2 * pow2 ( w2 ); } #endif #ifdef USE_CLEARCOAT vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { vec3 f0 = material.clearcoatF0; float f90 = material.clearcoatF90; float roughness = material.clearcoatRoughness; float alpha = pow2( roughness ); vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float dotVH = saturate( dot( viewDir, halfDir ) ); vec3 F = F_Schlick( f0, f90, dotVH ); float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); float D = D_GGX( alpha, dotNH ); return F * ( V * D ); } #endif vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { vec3 f0 = material.specularColor; float f90 = material.specularF90; float roughness = material.roughness; float alpha = pow2( roughness ); vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float dotVH = saturate( dot( viewDir, halfDir ) ); vec3 F = F_Schlick( f0, f90, dotVH ); #ifdef USE_IRIDESCENCE F = mix( F, material.iridescenceFresnel, material.iridescence ); #endif #ifdef USE_ANISOTROPY float dotTL = dot( material.anisotropyT, lightDir ); float dotTV = dot( material.anisotropyT, viewDir ); float dotTH = dot( material.anisotropyT, halfDir ); float dotBL = dot( material.anisotropyB, lightDir ); float dotBV = dot( material.anisotropyB, viewDir ); float dotBH = dot( material.anisotropyB, halfDir ); float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); #else float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); float D = D_GGX( alpha, dotNH ); #endif return F * ( V * D ); } vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { const float LUT_SIZE = 64.0; const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; const float LUT_BIAS = 0.5 / LUT_SIZE; float dotNV = saturate( dot( N, V ) ); vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); uv = uv * LUT_SCALE + LUT_BIAS; return uv; } float LTC_ClippedSphereFormFactor( const in vec3 f ) { float l = length( f ); return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); } vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { float x = dot( v1, v2 ); float y = abs( x ); float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; float b = 3.4175940 + ( 4.1616724 + y ) * y; float v = a / b; float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; return cross( v1, v2 ) * theta_sintheta; } vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; vec3 lightNormal = cross( v1, v2 ); if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); vec3 T1, T2; T1 = normalize( V - N * dot( V, N ) ); T2 = - cross( N, T1 ); mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); vec3 coords[ 4 ]; coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); coords[ 0 ] = normalize( coords[ 0 ] ); coords[ 1 ] = normalize( coords[ 1 ] ); coords[ 2 ] = normalize( coords[ 2 ] ); coords[ 3 ] = normalize( coords[ 3 ] ); vec3 vectorFormFactor = vec3( 0.0 ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); return vec3( result ); } #if defined( USE_SHEEN ) float D_Charlie( float roughness, float dotNH ) { float alpha = pow2( roughness ); float invAlpha = 1.0 / alpha; float cos2h = dotNH * dotNH; float sin2h = max( 1.0 - cos2h, 0.0078125 ); return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); } float V_Neubelt( float dotNV, float dotNL ) { return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); } vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float D = D_Charlie( sheenRoughness, dotNH ); float V = V_Neubelt( dotNV, dotNL ); return sheenColor * ( D * V ); } #endif float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { float dotNV = saturate( dot( normal, viewDir ) ); float r2 = roughness * roughness; float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); return saturate( DG * RECIPROCAL_PI ); } vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { float dotNV = saturate( dot( normal, viewDir ) ); const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); vec4 r = roughness * c0 + c1; float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; return fab; } vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { vec2 fab = DFGApprox( normal, viewDir, roughness ); return specularColor * fab.x + specularF90 * fab.y; } #ifdef USE_IRIDESCENCE void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { #else void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { #endif vec2 fab = DFGApprox( normal, viewDir, roughness ); #ifdef USE_IRIDESCENCE vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); #else vec3 Fr = specularColor; #endif vec3 FssEss = Fr * fab.x + specularF90 * fab.y; float Ess = fab.x + fab.y; float Ems = 1.0 - Ess; vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); singleScatter += FssEss; multiScatter += Fms * Ems; } #if NUM_RECT_AREA_LIGHTS > 0 void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { vec3 normal = geometryNormal; vec3 viewDir = geometryViewDir; vec3 position = geometryPosition; vec3 lightPos = rectAreaLight.position; vec3 halfWidth = rectAreaLight.halfWidth; vec3 halfHeight = rectAreaLight.halfHeight; vec3 lightColor = rectAreaLight.color; float roughness = material.roughness; vec3 rectCoords[ 4 ]; rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; vec2 uv = LTC_Uv( normal, viewDir, roughness ); vec4 t1 = texture2D( ltc_1, uv ); vec4 t2 = texture2D( ltc_2, uv ); mat3 mInv = mat3( vec3( t1.x, 0, t1.y ), vec3( 0, 1, 0 ), vec3( t1.z, 0, t1.w ) ); vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); } #endif void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; #ifdef USE_CLEARCOAT float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); vec3 ccIrradiance = dotNLcc * directLight.color; clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); #endif #ifdef USE_SHEEN sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); #endif reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { #ifdef USE_CLEARCOAT clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); #endif #ifdef USE_SHEEN sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); #endif vec3 singleScattering = vec3( 0.0 ); vec3 multiScattering = vec3( 0.0 ); vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; #ifdef USE_IRIDESCENCE computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); #else computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); #endif vec3 totalScattering = singleScattering + multiScattering; vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); reflectedLight.indirectSpecular += radiance * singleScattering; reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; } #define RE_Direct RE_Direct_Physical #define RE_Direct_RectArea RE_Direct_RectArea_Physical #define RE_IndirectDiffuse RE_IndirectDiffuse_Physical #define RE_IndirectSpecular RE_IndirectSpecular_Physical float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); }`,kU=` vec3 geometryPosition = - vViewPosition; vec3 geometryNormal = normal; vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); vec3 geometryClearcoatNormal = vec3( 0.0 ); #ifdef USE_CLEARCOAT geometryClearcoatNormal = clearcoatNormal; #endif #ifdef USE_IRIDESCENCE float dotNVi = saturate( dot( normal, geometryViewDir ) ); if ( material.iridescenceThickness == 0.0 ) { material.iridescence = 0.0; } else { material.iridescence = saturate( material.iridescence ); } if ( material.iridescence > 0.0 ) { material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); } #endif IncidentLight directLight; #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) PointLight pointLight; #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 PointLightShadow pointLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { pointLight = pointLights[ i ]; getPointLightInfo( pointLight, geometryPosition, directLight ); #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) pointLightShadow = pointLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) SpotLight spotLight; vec4 spotColor; vec3 spotLightCoord; bool inSpotLightMap; #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 SpotLightShadow spotLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { spotLight = spotLights[ i ]; getSpotLightInfo( spotLight, geometryPosition, directLight ); #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS #else #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) #endif #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; #endif #undef SPOT_LIGHT_MAP_INDEX #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) spotLightShadow = spotLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) DirectionalLight directionalLight; #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 DirectionalLightShadow directionalLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { directionalLight = directionalLights[ i ]; getDirectionalLightInfo( directionalLight, directLight ); #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) directionalLightShadow = directionalLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) RectAreaLight rectAreaLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { rectAreaLight = rectAreaLights[ i ]; RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if defined( RE_IndirectDiffuse ) vec3 iblIrradiance = vec3( 0.0 ); vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); #if defined( USE_LIGHT_PROBES ) irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); #endif #if ( NUM_HEMI_LIGHTS > 0 ) #pragma unroll_loop_start for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); } #pragma unroll_loop_end #endif #endif #if defined( RE_IndirectSpecular ) vec3 radiance = vec3( 0.0 ); vec3 clearcoatRadiance = vec3( 0.0 ); #endif`,HU=`#if defined( RE_IndirectDiffuse ) #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; irradiance += lightMapIrradiance; #endif #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) iblIrradiance += getIBLIrradiance( geometryNormal ); #endif #endif #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) #ifdef USE_ANISOTROPY radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); #else radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); #endif #ifdef USE_CLEARCOAT clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); #endif #endif`,UU=`#if defined( RE_IndirectDiffuse ) RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif #if defined( RE_IndirectSpecular ) RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif`,jU=`#if defined( USE_LOGDEPTHBUF ) gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; #endif`,VU=`#if defined( USE_LOGDEPTHBUF ) uniform float logDepthBufFC; varying float vFragDepth; varying float vIsPerspective; #endif`,GU=`#ifdef USE_LOGDEPTHBUF varying float vFragDepth; varying float vIsPerspective; #endif`,XU=`#ifdef USE_LOGDEPTHBUF vFragDepth = 1.0 + gl_Position.w; vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); #endif`,WU=`#ifdef USE_MAP vec4 sampledDiffuseColor = texture2D( map, vMapUv ); #ifdef DECODE_VIDEO_TEXTURE sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); #endif diffuseColor *= sampledDiffuseColor; #endif`,QU=`#ifdef USE_MAP uniform sampler2D map; #endif`,ZU=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) #if defined( USE_POINTS_UV ) vec2 uv = vUv; #else vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; #endif #endif #ifdef USE_MAP diffuseColor *= texture2D( map, uv ); #endif #ifdef USE_ALPHAMAP diffuseColor.a *= texture2D( alphaMap, uv ).g; #endif`,YU=`#if defined( USE_POINTS_UV ) varying vec2 vUv; #else #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) uniform mat3 uvTransform; #endif #endif #ifdef USE_MAP uniform sampler2D map; #endif #ifdef USE_ALPHAMAP uniform sampler2D alphaMap; #endif`,JU=`float metalnessFactor = metalness; #ifdef USE_METALNESSMAP vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); metalnessFactor *= texelMetalness.b; #endif`,KU=`#ifdef USE_METALNESSMAP uniform sampler2D metalnessMap; #endif`,qU=`#ifdef USE_INSTANCING_MORPH float morphTargetInfluences[ MORPHTARGETS_COUNT ]; float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; } #endif`,_U=`#if defined( USE_MORPHCOLORS ) vColor *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { #if defined( USE_COLOR_ALPHA ) if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; #elif defined( USE_COLOR ) if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; #endif } #endif`,$U=`#ifdef USE_MORPHNORMALS objectNormal *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; } #endif`,ej=`#ifdef USE_MORPHTARGETS #ifndef USE_INSTANCING_MORPH uniform float morphTargetBaseInfluence; uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; #endif uniform sampler2DArray morphTargetsTexture; uniform ivec2 morphTargetsTextureSize; vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; int y = texelIndex / morphTargetsTextureSize.x; int x = texelIndex - y * morphTargetsTextureSize.x; ivec3 morphUV = ivec3( x, y, morphTargetIndex ); return texelFetch( morphTargetsTexture, morphUV, 0 ); } #endif`,tj=`#ifdef USE_MORPHTARGETS transformed *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; } #endif`,nj=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #ifdef FLAT_SHADED vec3 fdx = dFdx( vViewPosition ); vec3 fdy = dFdy( vViewPosition ); vec3 normal = normalize( cross( fdx, fdy ) ); #else vec3 normal = normalize( vNormal ); #ifdef DOUBLE_SIDED normal *= faceDirection; #endif #endif #if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) #ifdef USE_TANGENT mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); #else mat3 tbn = getTangentFrame( - vViewPosition, normal, #if defined( USE_NORMALMAP ) vNormalMapUv #elif defined( USE_CLEARCOAT_NORMALMAP ) vClearcoatNormalMapUv #else vUv #endif ); #endif #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) tbn[0] *= faceDirection; tbn[1] *= faceDirection; #endif #endif #ifdef USE_CLEARCOAT_NORMALMAP #ifdef USE_TANGENT mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); #else mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); #endif #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) tbn2[0] *= faceDirection; tbn2[1] *= faceDirection; #endif #endif vec3 nonPerturbedNormal = normal;`,rj=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; #ifdef FLIP_SIDED normal = - normal; #endif #ifdef DOUBLE_SIDED normal = normal * faceDirection; #endif normal = normalize( normalMatrix * normal ); #elif defined( USE_NORMALMAP_TANGENTSPACE ) vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; mapN.xy *= normalScale; normal = normalize( tbn * mapN ); #elif defined( USE_BUMPMAP ) normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); #endif`,ij=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif #endif`,sj=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif #endif`,aj=`#ifndef FLAT_SHADED vNormal = normalize( transformedNormal ); #ifdef USE_TANGENT vTangent = normalize( transformedTangent ); vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); #endif #endif`,oj=`#ifdef USE_NORMALMAP uniform sampler2D normalMap; uniform vec2 normalScale; #endif #ifdef USE_NORMALMAP_OBJECTSPACE uniform mat3 normalMatrix; #endif #if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { vec3 q0 = dFdx( eye_pos.xyz ); vec3 q1 = dFdy( eye_pos.xyz ); vec2 st0 = dFdx( uv.st ); vec2 st1 = dFdy( uv.st ); vec3 N = surf_norm; vec3 q1perp = cross( q1, N ); vec3 q0perp = cross( N, q0 ); vec3 T = q1perp * st0.x + q0perp * st1.x; vec3 B = q1perp * st0.y + q0perp * st1.y; float det = max( dot( T, T ), dot( B, B ) ); float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); return mat3( T * scale, B * scale, N ); } #endif`,lj=`#ifdef USE_CLEARCOAT vec3 clearcoatNormal = nonPerturbedNormal; #endif`,uj=`#ifdef USE_CLEARCOAT_NORMALMAP vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; clearcoatMapN.xy *= clearcoatNormalScale; clearcoatNormal = normalize( tbn2 * clearcoatMapN ); #endif`,cj=`#ifdef USE_CLEARCOATMAP uniform sampler2D clearcoatMap; #endif #ifdef USE_CLEARCOAT_NORMALMAP uniform sampler2D clearcoatNormalMap; uniform vec2 clearcoatNormalScale; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform sampler2D clearcoatRoughnessMap; #endif`,dj=`#ifdef USE_IRIDESCENCEMAP uniform sampler2D iridescenceMap; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform sampler2D iridescenceThicknessMap; #endif`,fj=`#ifdef OPAQUE diffuseColor.a = 1.0; #endif #ifdef USE_TRANSMISSION diffuseColor.a *= material.transmissionAlpha; #endif gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,hj=`vec3 packNormalToRGB( const in vec3 normal ) { return normalize( normal ) * 0.5 + 0.5; } vec3 unpackRGBToNormal( const in vec3 rgb ) { return 2.0 * rgb.xyz - 1.0; } const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; const float Inv255 = 1. / 255.; const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); vec4 packDepthToRGBA( const in float v ) { if( v <= 0.0 ) return vec4( 0., 0., 0., 0. ); if( v >= 1.0 ) return vec4( 1., 1., 1., 1. ); float vuf; float af = modf( v * PackFactors.a, vuf ); float bf = modf( vuf * ShiftRight8, vuf ); float gf = modf( vuf * ShiftRight8, vuf ); return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); } vec3 packDepthToRGB( const in float v ) { if( v <= 0.0 ) return vec3( 0., 0., 0. ); if( v >= 1.0 ) return vec3( 1., 1., 1. ); float vuf; float bf = modf( v * PackFactors.b, vuf ); float gf = modf( vuf * ShiftRight8, vuf ); return vec3( vuf * Inv255, gf * PackUpscale, bf ); } vec2 packDepthToRG( const in float v ) { if( v <= 0.0 ) return vec2( 0., 0. ); if( v >= 1.0 ) return vec2( 1., 1. ); float vuf; float gf = modf( v * 256., vuf ); return vec2( vuf * Inv255, gf ); } float unpackRGBAToDepth( const in vec4 v ) { return dot( v, UnpackFactors4 ); } float unpackRGBToDepth( const in vec3 v ) { return dot( v, UnpackFactors3 ); } float unpackRGToDepth( const in vec2 v ) { return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; } vec4 pack2HalfToRGBA( const in vec2 v ) { vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); } vec2 unpackRGBATo2Half( const in vec4 v ) { return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); } float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { return ( viewZ + near ) / ( near - far ); } float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { return depth * ( near - far ) - near; } float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); } float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { return ( near * far ) / ( ( far - near ) * depth - far ); }`,pj=`#ifdef PREMULTIPLIED_ALPHA gl_FragColor.rgb *= gl_FragColor.a; #endif`,mj=`vec4 mvPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING mvPosition = batchingMatrix * mvPosition; #endif #ifdef USE_INSTANCING mvPosition = instanceMatrix * mvPosition; #endif mvPosition = modelViewMatrix * mvPosition; gl_Position = projectionMatrix * mvPosition;`,gj=`#ifdef DITHERING gl_FragColor.rgb = dithering( gl_FragColor.rgb ); #endif`,vj=`#ifdef DITHERING vec3 dithering( vec3 color ) { float grid_position = rand( gl_FragCoord.xy ); vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); return color + dither_shift_RGB; } #endif`,Aj=`float roughnessFactor = roughness; #ifdef USE_ROUGHNESSMAP vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); roughnessFactor *= texelRoughness.g; #endif`,yj=`#ifdef USE_ROUGHNESSMAP uniform sampler2D roughnessMap; #endif`,xj=`#if NUM_SPOT_LIGHT_COORDS > 0 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #if NUM_SPOT_LIGHT_MAPS > 0 uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; #endif #ifdef USE_SHADOWMAP #if NUM_DIR_LIGHT_SHADOWS > 0 uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; struct DirectionalLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; struct SpotLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; #endif #if NUM_POINT_LIGHT_SHADOWS > 0 uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; struct PointLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; float shadowCameraNear; float shadowCameraFar; }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { float depth = unpackRGBAToDepth( texture2D( depths, uv ) ); #ifdef USE_REVERSEDEPTHBUF return step( depth, compare ); #else return step( compare, depth ); #endif } vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { return unpackRGBATo2Half( texture2D( shadow, uv ) ); } float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ float occlusion = 1.0; vec2 distribution = texture2DDistribution( shadow, uv ); #ifdef USE_REVERSEDEPTHBUF float hard_shadow = step( distribution.x, compare ); #else float hard_shadow = step( compare , distribution.x ); #endif if (hard_shadow != 1.0 ) { float distance = compare - distribution.x ; float variance = max( 0.00000, distribution.y * distribution.y ); float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); } return occlusion; } float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { float shadow = 1.0; shadowCoord.xyz /= shadowCoord.w; shadowCoord.z += shadowBias; bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; bool frustumTest = inFrustum && shadowCoord.z <= 1.0; if ( frustumTest ) { #if defined( SHADOWMAP_TYPE_PCF ) vec2 texelSize = vec2( 1.0 ) / shadowMapSize; float dx0 = - texelSize.x * shadowRadius; float dy0 = - texelSize.y * shadowRadius; float dx1 = + texelSize.x * shadowRadius; float dy1 = + texelSize.y * shadowRadius; float dx2 = dx0 / 2.0; float dy2 = dy0 / 2.0; float dx3 = dx1 / 2.0; float dy3 = dy1 / 2.0; shadow = ( texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) ) * ( 1.0 / 17.0 ); #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) vec2 texelSize = vec2( 1.0 ) / shadowMapSize; float dx = texelSize.x; float dy = texelSize.y; vec2 uv = shadowCoord.xy; vec2 f = fract( uv * shadowMapSize + 0.5 ); uv -= f * texelSize; shadow = ( texture2DCompare( shadowMap, uv, shadowCoord.z ) + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), f.x ) + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), f.x ) + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), f.y ) + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), f.y ) + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), f.x ), mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), f.x ), f.y ) ) * ( 1.0 / 9.0 ); #elif defined( SHADOWMAP_TYPE_VSM ) shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); #else shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); #endif } return mix( 1.0, shadow, shadowIntensity ); } vec2 cubeToUV( vec3 v, float texelSizeY ) { vec3 absV = abs( v ); float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); absV *= scaleToCube; v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); vec2 planar = v.xy; float almostATexel = 1.5 * texelSizeY; float almostOne = 1.0 - almostATexel; if ( absV.z >= almostOne ) { if ( v.z > 0.0 ) planar.x = 4.0 - v.x; } else if ( absV.x >= almostOne ) { float signX = sign( v.x ); planar.x = v.z * signX + 2.0 * signX; } else if ( absV.y >= almostOne ) { float signY = sign( v.y ); planar.x = v.x + 2.0 * signY + 2.0; planar.y = v.z * signY - 2.0; } return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); } float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { float shadow = 1.0; vec3 lightToPosition = shadowCoord.xyz; float lightToPositionLength = length( lightToPosition ); if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; vec3 bd3D = normalize( lightToPosition ); vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; shadow = ( texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) ) * ( 1.0 / 9.0 ); #else shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); #endif } return mix( 1.0, shadow, shadowIntensity ); } #endif`,bj=`#if NUM_SPOT_LIGHT_COORDS > 0 uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #ifdef USE_SHADOWMAP #if NUM_DIR_LIGHT_SHADOWS > 0 uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; struct DirectionalLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 struct SpotLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; #endif #if NUM_POINT_LIGHT_SHADOWS > 0 uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; struct PointLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; float shadowCameraNear; float shadowCameraFar; }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif #endif`,Ej=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); vec4 shadowWorldPosition; #endif #if defined( USE_SHADOWMAP ) #if NUM_DIR_LIGHT_SHADOWS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif #if NUM_POINT_LIGHT_SHADOWS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif #endif #if NUM_SPOT_LIGHT_COORDS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { shadowWorldPosition = worldPosition; #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; #endif vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif`,wj=`float getShadowMask() { float shadow = 1.0; #ifdef USE_SHADOWMAP #if NUM_DIR_LIGHT_SHADOWS > 0 DirectionalLightShadow directionalLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { directionalLight = directionalLightShadows[ i ]; shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; } #pragma unroll_loop_end #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 SpotLightShadow spotLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { spotLight = spotLightShadows[ i ]; shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; } #pragma unroll_loop_end #endif #if NUM_POINT_LIGHT_SHADOWS > 0 PointLightShadow pointLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { pointLight = pointLightShadows[ i ]; shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; } #pragma unroll_loop_end #endif #endif return shadow; }`,Cj=`#ifdef USE_SKINNING mat4 boneMatX = getBoneMatrix( skinIndex.x ); mat4 boneMatY = getBoneMatrix( skinIndex.y ); mat4 boneMatZ = getBoneMatrix( skinIndex.z ); mat4 boneMatW = getBoneMatrix( skinIndex.w ); #endif`,Pj=`#ifdef USE_SKINNING uniform mat4 bindMatrix; uniform mat4 bindMatrixInverse; uniform highp sampler2D boneTexture; mat4 getBoneMatrix( const in float i ) { int size = textureSize( boneTexture, 0 ).x; int j = int( i ) * 4; int x = j % size; int y = j / size; vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); return mat4( v1, v2, v3, v4 ); } #endif`,Bj=`#ifdef USE_SKINNING vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); vec4 skinned = vec4( 0.0 ); skinned += boneMatX * skinVertex * skinWeight.x; skinned += boneMatY * skinVertex * skinWeight.y; skinned += boneMatZ * skinVertex * skinWeight.z; skinned += boneMatW * skinVertex * skinWeight.w; transformed = ( bindMatrixInverse * skinned ).xyz; #endif`,Sj=`#ifdef USE_SKINNING mat4 skinMatrix = mat4( 0.0 ); skinMatrix += skinWeight.x * boneMatX; skinMatrix += skinWeight.y * boneMatY; skinMatrix += skinWeight.z * boneMatZ; skinMatrix += skinWeight.w * boneMatW; skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; #ifdef USE_TANGENT objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; #endif #endif`,Mj=`float specularStrength; #ifdef USE_SPECULARMAP vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); specularStrength = texelSpecular.r; #else specularStrength = 1.0; #endif`,Dj=`#ifdef USE_SPECULARMAP uniform sampler2D specularMap; #endif`,Tj=`#if defined( TONE_MAPPING ) gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); #endif`,Ij=`#ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif uniform float toneMappingExposure; vec3 LinearToneMapping( vec3 color ) { return saturate( toneMappingExposure * color ); } vec3 ReinhardToneMapping( vec3 color ) { color *= toneMappingExposure; return saturate( color / ( vec3( 1.0 ) + color ) ); } vec3 CineonToneMapping( vec3 color ) { color *= toneMappingExposure; color = max( vec3( 0.0 ), color - 0.004 ); return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); } vec3 RRTAndODTFit( vec3 v ) { vec3 a = v * ( v + 0.0245786 ) - 0.000090537; vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; return a / b; } vec3 ACESFilmicToneMapping( vec3 color ) { const mat3 ACESInputMat = mat3( vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), vec3( 0.04823, 0.01566, 0.83777 ) ); const mat3 ACESOutputMat = mat3( vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), vec3( -0.07367, -0.00605, 1.07602 ) ); color *= toneMappingExposure / 0.6; color = ACESInputMat * color; color = RRTAndODTFit( color ); color = ACESOutputMat * color; return saturate( color ); } const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( vec3( 1.6605, - 0.1246, - 0.0182 ), vec3( - 0.5876, 1.1329, - 0.1006 ), vec3( - 0.0728, - 0.0083, 1.1187 ) ); const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( vec3( 0.6274, 0.0691, 0.0164 ), vec3( 0.3293, 0.9195, 0.0880 ), vec3( 0.0433, 0.0113, 0.8956 ) ); vec3 agxDefaultContrastApprox( vec3 x ) { vec3 x2 = x * x; vec3 x4 = x2 * x2; return + 15.5 * x4 * x2 - 40.14 * x4 * x + 31.96 * x4 - 6.868 * x2 * x + 0.4298 * x2 + 0.1191 * x - 0.00232; } vec3 AgXToneMapping( vec3 color ) { const mat3 AgXInsetMatrix = mat3( vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) ); const mat3 AgXOutsetMatrix = mat3( vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) ); const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; color *= toneMappingExposure; color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; color = AgXInsetMatrix * color; color = max( color, 1e-10 ); color = log2( color ); color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); color = clamp( color, 0.0, 1.0 ); color = agxDefaultContrastApprox( color ); color = AgXOutsetMatrix * color; color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); color = LINEAR_REC2020_TO_LINEAR_SRGB * color; color = clamp( color, 0.0, 1.0 ); return color; } vec3 NeutralToneMapping( vec3 color ) { const float StartCompression = 0.8 - 0.04; const float Desaturation = 0.15; color *= toneMappingExposure; float x = min( color.r, min( color.g, color.b ) ); float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; color -= offset; float peak = max( color.r, max( color.g, color.b ) ); if ( peak < StartCompression ) return color; float d = 1. - StartCompression; float newPeak = 1. - d * d / ( peak + d - StartCompression ); color *= newPeak / peak; float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); return mix( color, vec3( newPeak ), g ); } vec3 CustomToneMapping( vec3 color ) { return color; }`,Fj=`#ifdef USE_TRANSMISSION material.transmission = transmission; material.transmissionAlpha = 1.0; material.thickness = thickness; material.attenuationDistance = attenuationDistance; material.attenuationColor = attenuationColor; #ifdef USE_TRANSMISSIONMAP material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; #endif #ifdef USE_THICKNESSMAP material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; #endif vec3 pos = vWorldPosition; vec3 v = normalize( cameraPosition - pos ); vec3 n = inverseTransformDirection( normal, viewMatrix ); vec4 transmitted = getIBLVolumeRefraction( n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, material.attenuationColor, material.attenuationDistance ); material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); #endif`,Nj=`#ifdef USE_TRANSMISSION uniform float transmission; uniform float thickness; uniform float attenuationDistance; uniform vec3 attenuationColor; #ifdef USE_TRANSMISSIONMAP uniform sampler2D transmissionMap; #endif #ifdef USE_THICKNESSMAP uniform sampler2D thicknessMap; #endif uniform vec2 transmissionSamplerSize; uniform sampler2D transmissionSamplerMap; uniform mat4 modelMatrix; uniform mat4 projectionMatrix; varying vec3 vWorldPosition; float w0( float a ) { return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); } float w1( float a ) { return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); } float w2( float a ){ return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); } float w3( float a ) { return ( 1.0 / 6.0 ) * ( a * a * a ); } float g0( float a ) { return w0( a ) + w1( a ); } float g1( float a ) { return w2( a ) + w3( a ); } float h0( float a ) { return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); } float h1( float a ) { return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); } vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { uv = uv * texelSize.zw + 0.5; vec2 iuv = floor( uv ); vec2 fuv = fract( uv ); float g0x = g0( fuv.x ); float g1x = g1( fuv.x ); float h0x = h0( fuv.x ); float h1x = h1( fuv.x ); float h0y = h0( fuv.y ); float h1y = h1( fuv.y ); vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); } vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); vec2 fLodSizeInv = 1.0 / fLodSize; vec2 cLodSizeInv = 1.0 / cLodSize; vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); return mix( fSample, cSample, fract( lod ) ); } vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); vec3 modelScale; modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); return normalize( refractionVector ) * thickness * modelScale; } float applyIorToRoughness( const in float roughness, const in float ior ) { return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); } vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); } vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { if ( isinf( attenuationDistance ) ) { return vec3( 1.0 ); } else { vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; } } vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, const in vec3 attenuationColor, const in float attenuationDistance ) { vec4 transmittedLight; vec3 transmittance; #ifdef USE_DISPERSION float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); for ( int i = 0; i < 3; i ++ ) { vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); vec3 refractedRayExit = position + transmissionRay; vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); vec2 refractionCoords = ndcPos.xy / ndcPos.w; refractionCoords += 1.0; refractionCoords /= 2.0; vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); transmittedLight[ i ] = transmissionSample[ i ]; transmittedLight.a += transmissionSample.a; transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; } transmittedLight.a /= 3.0; #else vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); vec3 refractedRayExit = position + transmissionRay; vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); vec2 refractionCoords = ndcPos.xy / ndcPos.w; refractionCoords += 1.0; refractionCoords /= 2.0; transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); #endif vec3 attenuatedColor = transmittance * transmittedLight.rgb; vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); } #endif`,Lj=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP varying vec2 vMapUv; #endif #ifdef USE_ALPHAMAP varying vec2 vAlphaMapUv; #endif #ifdef USE_LIGHTMAP varying vec2 vLightMapUv; #endif #ifdef USE_AOMAP varying vec2 vAoMapUv; #endif #ifdef USE_BUMPMAP varying vec2 vBumpMapUv; #endif #ifdef USE_NORMALMAP varying vec2 vNormalMapUv; #endif #ifdef USE_EMISSIVEMAP varying vec2 vEmissiveMapUv; #endif #ifdef USE_METALNESSMAP varying vec2 vMetalnessMapUv; #endif #ifdef USE_ROUGHNESSMAP varying vec2 vRoughnessMapUv; #endif #ifdef USE_ANISOTROPYMAP varying vec2 vAnisotropyMapUv; #endif #ifdef USE_CLEARCOATMAP varying vec2 vClearcoatMapUv; #endif #ifdef USE_CLEARCOAT_NORMALMAP varying vec2 vClearcoatNormalMapUv; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP varying vec2 vClearcoatRoughnessMapUv; #endif #ifdef USE_IRIDESCENCEMAP varying vec2 vIridescenceMapUv; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP varying vec2 vIridescenceThicknessMapUv; #endif #ifdef USE_SHEEN_COLORMAP varying vec2 vSheenColorMapUv; #endif #ifdef USE_SHEEN_ROUGHNESSMAP varying vec2 vSheenRoughnessMapUv; #endif #ifdef USE_SPECULARMAP varying vec2 vSpecularMapUv; #endif #ifdef USE_SPECULAR_COLORMAP varying vec2 vSpecularColorMapUv; #endif #ifdef USE_SPECULAR_INTENSITYMAP varying vec2 vSpecularIntensityMapUv; #endif #ifdef USE_TRANSMISSIONMAP uniform mat3 transmissionMapTransform; varying vec2 vTransmissionMapUv; #endif #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; #endif`,Oj=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP uniform mat3 mapTransform; varying vec2 vMapUv; #endif #ifdef USE_ALPHAMAP uniform mat3 alphaMapTransform; varying vec2 vAlphaMapUv; #endif #ifdef USE_LIGHTMAP uniform mat3 lightMapTransform; varying vec2 vLightMapUv; #endif #ifdef USE_AOMAP uniform mat3 aoMapTransform; varying vec2 vAoMapUv; #endif #ifdef USE_BUMPMAP uniform mat3 bumpMapTransform; varying vec2 vBumpMapUv; #endif #ifdef USE_NORMALMAP uniform mat3 normalMapTransform; varying vec2 vNormalMapUv; #endif #ifdef USE_DISPLACEMENTMAP uniform mat3 displacementMapTransform; varying vec2 vDisplacementMapUv; #endif #ifdef USE_EMISSIVEMAP uniform mat3 emissiveMapTransform; varying vec2 vEmissiveMapUv; #endif #ifdef USE_METALNESSMAP uniform mat3 metalnessMapTransform; varying vec2 vMetalnessMapUv; #endif #ifdef USE_ROUGHNESSMAP uniform mat3 roughnessMapTransform; varying vec2 vRoughnessMapUv; #endif #ifdef USE_ANISOTROPYMAP uniform mat3 anisotropyMapTransform; varying vec2 vAnisotropyMapUv; #endif #ifdef USE_CLEARCOATMAP uniform mat3 clearcoatMapTransform; varying vec2 vClearcoatMapUv; #endif #ifdef USE_CLEARCOAT_NORMALMAP uniform mat3 clearcoatNormalMapTransform; varying vec2 vClearcoatNormalMapUv; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform mat3 clearcoatRoughnessMapTransform; varying vec2 vClearcoatRoughnessMapUv; #endif #ifdef USE_SHEEN_COLORMAP uniform mat3 sheenColorMapTransform; varying vec2 vSheenColorMapUv; #endif #ifdef USE_SHEEN_ROUGHNESSMAP uniform mat3 sheenRoughnessMapTransform; varying vec2 vSheenRoughnessMapUv; #endif #ifdef USE_IRIDESCENCEMAP uniform mat3 iridescenceMapTransform; varying vec2 vIridescenceMapUv; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform mat3 iridescenceThicknessMapTransform; varying vec2 vIridescenceThicknessMapUv; #endif #ifdef USE_SPECULARMAP uniform mat3 specularMapTransform; varying vec2 vSpecularMapUv; #endif #ifdef USE_SPECULAR_COLORMAP uniform mat3 specularColorMapTransform; varying vec2 vSpecularColorMapUv; #endif #ifdef USE_SPECULAR_INTENSITYMAP uniform mat3 specularIntensityMapTransform; varying vec2 vSpecularIntensityMapUv; #endif #ifdef USE_TRANSMISSIONMAP uniform mat3 transmissionMapTransform; varying vec2 vTransmissionMapUv; #endif #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; #endif`,Rj=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) vUv = vec3( uv, 1 ).xy; #endif #ifdef USE_MAP vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; #endif #ifdef USE_ALPHAMAP vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; #endif #ifdef USE_LIGHTMAP vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; #endif #ifdef USE_AOMAP vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; #endif #ifdef USE_BUMPMAP vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; #endif #ifdef USE_NORMALMAP vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; #endif #ifdef USE_DISPLACEMENTMAP vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; #endif #ifdef USE_EMISSIVEMAP vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; #endif #ifdef USE_METALNESSMAP vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_ROUGHNESSMAP vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_ANISOTROPYMAP vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOATMAP vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOAT_NORMALMAP vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_IRIDESCENCEMAP vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_SHEEN_COLORMAP vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; #endif #ifdef USE_SHEEN_ROUGHNESSMAP vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULARMAP vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULAR_COLORMAP vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULAR_INTENSITYMAP vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; #endif #ifdef USE_TRANSMISSIONMAP vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; #endif #ifdef USE_THICKNESSMAP vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; #endif`,zj=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 vec4 worldPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING worldPosition = batchingMatrix * worldPosition; #endif #ifdef USE_INSTANCING worldPosition = instanceMatrix * worldPosition; #endif worldPosition = modelMatrix * worldPosition; #endif`;const Ga={alphahash_fragment:HH,alphahash_pars_fragment:UH,alphamap_fragment:jH,alphamap_pars_fragment:VH,alphatest_fragment:GH,alphatest_pars_fragment:XH,aomap_fragment:WH,aomap_pars_fragment:QH,batching_pars_vertex:ZH,batching_vertex:YH,begin_vertex:JH,beginnormal_vertex:KH,bsdfs:qH,iridescence_fragment:_H,bumpmap_pars_fragment:$H,clipping_planes_fragment:eU,clipping_planes_pars_fragment:tU,clipping_planes_pars_vertex:nU,clipping_planes_vertex:rU,color_fragment:iU,color_pars_fragment:sU,color_pars_vertex:aU,color_vertex:oU,common:lU,cube_uv_reflection_fragment:uU,defaultnormal_vertex:cU,displacementmap_pars_vertex:dU,displacementmap_vertex:fU,emissivemap_fragment:hU,emissivemap_pars_fragment:pU,colorspace_fragment:mU,colorspace_pars_fragment:gU,envmap_fragment:vU,envmap_common_pars_fragment:AU,envmap_pars_fragment:yU,envmap_pars_vertex:xU,envmap_physical_pars_fragment:IU,envmap_vertex:bU,fog_vertex:EU,fog_pars_vertex:wU,fog_fragment:CU,fog_pars_fragment:PU,gradientmap_pars_fragment:BU,lightmap_pars_fragment:SU,lights_lambert_fragment:MU,lights_lambert_pars_fragment:DU,lights_pars_begin:TU,lights_toon_fragment:FU,lights_toon_pars_fragment:NU,lights_phong_fragment:LU,lights_phong_pars_fragment:OU,lights_physical_fragment:RU,lights_physical_pars_fragment:zU,lights_fragment_begin:kU,lights_fragment_maps:HU,lights_fragment_end:UU,logdepthbuf_fragment:jU,logdepthbuf_pars_fragment:VU,logdepthbuf_pars_vertex:GU,logdepthbuf_vertex:XU,map_fragment:WU,map_pars_fragment:QU,map_particle_fragment:ZU,map_particle_pars_fragment:YU,metalnessmap_fragment:JU,metalnessmap_pars_fragment:KU,morphinstance_vertex:qU,morphcolor_vertex:_U,morphnormal_vertex:$U,morphtarget_pars_vertex:ej,morphtarget_vertex:tj,normal_fragment_begin:nj,normal_fragment_maps:rj,normal_pars_fragment:ij,normal_pars_vertex:sj,normal_vertex:aj,normalmap_pars_fragment:oj,clearcoat_normal_fragment_begin:lj,clearcoat_normal_fragment_maps:uj,clearcoat_pars_fragment:cj,iridescence_pars_fragment:dj,opaque_fragment:fj,packing:hj,premultiplied_alpha_fragment:pj,project_vertex:mj,dithering_fragment:gj,dithering_pars_fragment:vj,roughnessmap_fragment:Aj,roughnessmap_pars_fragment:yj,shadowmap_pars_fragment:xj,shadowmap_pars_vertex:bj,shadowmap_vertex:Ej,shadowmask_pars_fragment:wj,skinbase_vertex:Cj,skinning_pars_vertex:Pj,skinning_vertex:Bj,skinnormal_vertex:Sj,specularmap_fragment:Mj,specularmap_pars_fragment:Dj,tonemapping_fragment:Tj,tonemapping_pars_fragment:Ij,transmission_fragment:Fj,transmission_pars_fragment:Nj,uv_pars_fragment:Lj,uv_pars_vertex:Oj,uv_vertex:Rj,worldpos_vertex:zj,background_vert:`varying vec2 vUv; uniform mat3 uvTransform; void main() { vUv = ( uvTransform * vec3( uv, 1 ) ).xy; gl_Position = vec4( position.xy, 1.0, 1.0 ); }`,background_frag:`uniform sampler2D t2D; uniform float backgroundIntensity; varying vec2 vUv; void main() { vec4 texColor = texture2D( t2D, vUv ); #ifdef DECODE_VIDEO_TEXTURE texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); #endif texColor.rgb *= backgroundIntensity; gl_FragColor = texColor; #include #include }`,backgroundCube_vert:`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; }`,backgroundCube_frag:`#ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #elif defined( ENVMAP_TYPE_CUBE_UV ) uniform sampler2D envMap; #endif uniform float flipEnvMap; uniform float backgroundBlurriness; uniform float backgroundIntensity; uniform mat3 backgroundRotation; varying vec3 vWorldDirection; #include void main() { #ifdef ENVMAP_TYPE_CUBE vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); #elif defined( ENVMAP_TYPE_CUBE_UV ) vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); #else vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); #endif texColor.rgb *= backgroundIntensity; gl_FragColor = texColor; #include #include }`,cube_vert:`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; }`,cube_frag:`uniform samplerCube tCube; uniform float tFlip; uniform float opacity; varying vec3 vWorldDirection; void main() { vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); gl_FragColor = texColor; gl_FragColor.a *= opacity; #include #include }`,depth_vert:`#include #include #include #include #include #include #include #include varying vec2 vHighPrecisionZW; void main() { #include #include #include #include #ifdef USE_DISPLACEMENTMAP #include #include #include #endif #include #include #include #include #include #include #include vHighPrecisionZW = gl_Position.zw; }`,depth_frag:`#if DEPTH_PACKING == 3200 uniform float opacity; #endif #include #include #include #include #include #include #include #include #include varying vec2 vHighPrecisionZW; void main() { vec4 diffuseColor = vec4( 1.0 ); #include #if DEPTH_PACKING == 3200 diffuseColor.a = opacity; #endif #include #include #include #include #include #ifdef USE_REVERSEDEPTHBUF float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; #else float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; #endif #if DEPTH_PACKING == 3200 gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); #elif DEPTH_PACKING == 3201 gl_FragColor = packDepthToRGBA( fragCoordZ ); #elif DEPTH_PACKING == 3202 gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); #elif DEPTH_PACKING == 3203 gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); #endif }`,distanceRGBA_vert:`#define DISTANCE varying vec3 vWorldPosition; #include #include #include #include #include #include #include void main() { #include #include #include #include #ifdef USE_DISPLACEMENTMAP #include #include #include #endif #include #include #include #include #include #include #include vWorldPosition = worldPosition.xyz; }`,distanceRGBA_frag:`#define DISTANCE uniform vec3 referencePosition; uniform float nearDistance; uniform float farDistance; varying vec3 vWorldPosition; #include #include #include #include #include #include #include #include void main () { vec4 diffuseColor = vec4( 1.0 ); #include #include #include #include #include float dist = length( vWorldPosition - referencePosition ); dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); dist = saturate( dist ); gl_FragColor = packDepthToRGBA( dist ); }`,equirect_vert:`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include }`,equirect_frag:`uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); #include #include }`,linedashed_vert:`uniform float scale; attribute float lineDistance; varying float vLineDistance; #include #include #include #include #include #include #include void main() { vLineDistance = scale * lineDistance; #include #include #include #include #include #include #include #include #include #include }`,linedashed_frag:`uniform vec3 diffuse; uniform float opacity; uniform float dashSize; uniform float totalSize; varying float vLineDistance; #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include if ( mod( vLineDistance, totalSize ) > dashSize ) { discard; } vec3 outgoingLight = vec3( 0.0 ); #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include #include }`,meshbasic_vert:`#include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include }`,meshbasic_frag:`uniform vec3 diffuse; uniform float opacity; #ifndef FLAT_SHADED varying vec3 vNormal; #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include #include #include #include #include #include #include #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; #else reflectedLight.indirectDiffuse += vec3( 1.0 ); #endif #include reflectedLight.indirectDiffuse *= diffuseColor.rgb; vec3 outgoingLight = reflectedLight.indirectDiffuse; #include #include #include #include #include #include #include }`,meshlambert_vert:`#define LAMBERT varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #include }`,meshlambert_frag:`#define LAMBERT uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; #include #include #include #include #include #include #include }`,meshmatcap_vert:`#define MATCAP varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; }`,meshmatcap_frag:`#define MATCAP uniform vec3 diffuse; uniform float opacity; uniform sampler2D matcap; varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include #include #include #include #include #include #include #include #include vec3 viewDir = normalize( vViewPosition ); vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); vec3 y = cross( viewDir, x ); vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; #ifdef USE_MATCAP vec4 matcapColor = texture2D( matcap, uv ); #else vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); #endif vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; #include #include #include #include #include #include }`,meshnormal_vert:`#define NORMAL #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) vViewPosition = - mvPosition.xyz; #endif }`,meshnormal_frag:`#define NORMAL uniform float opacity; #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); #include #include #include #include gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); #ifdef OPAQUE gl_FragColor.a = 1.0; #endif }`,meshphong_vert:`#define PHONG varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #include }`,meshphong_frag:`#define PHONG uniform vec3 diffuse; uniform vec3 emissive; uniform vec3 specular; uniform float shininess; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; #include #include #include #include #include #include #include }`,meshphysical_vert:`#define STANDARD varying vec3 vViewPosition; #ifdef USE_TRANSMISSION varying vec3 vWorldPosition; #endif #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #ifdef USE_TRANSMISSION vWorldPosition = worldPosition.xyz; #endif }`,meshphysical_frag:`#define STANDARD #ifdef PHYSICAL #define IOR #define USE_SPECULAR #endif uniform vec3 diffuse; uniform vec3 emissive; uniform float roughness; uniform float metalness; uniform float opacity; #ifdef IOR uniform float ior; #endif #ifdef USE_SPECULAR uniform float specularIntensity; uniform vec3 specularColor; #ifdef USE_SPECULAR_COLORMAP uniform sampler2D specularColorMap; #endif #ifdef USE_SPECULAR_INTENSITYMAP uniform sampler2D specularIntensityMap; #endif #endif #ifdef USE_CLEARCOAT uniform float clearcoat; uniform float clearcoatRoughness; #endif #ifdef USE_DISPERSION uniform float dispersion; #endif #ifdef USE_IRIDESCENCE uniform float iridescence; uniform float iridescenceIOR; uniform float iridescenceThicknessMinimum; uniform float iridescenceThicknessMaximum; #endif #ifdef USE_SHEEN uniform vec3 sheenColor; uniform float sheenRoughness; #ifdef USE_SHEEN_COLORMAP uniform sampler2D sheenColorMap; #endif #ifdef USE_SHEEN_ROUGHNESSMAP uniform sampler2D sheenRoughnessMap; #endif #endif #ifdef USE_ANISOTROPY uniform vec2 anisotropyVector; #ifdef USE_ANISOTROPYMAP uniform sampler2D anisotropyMap; #endif #endif varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; #include vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; #ifdef USE_SHEEN float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; #endif #ifdef USE_CLEARCOAT float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; #endif #include #include #include #include #include #include }`,meshtoon_vert:`#define TOON varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include }`,meshtoon_frag:`#define TOON uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; #include #include #include #include #include #include }`,points_vert:`uniform float size; uniform float scale; #include #include #include #include #include #include #ifdef USE_POINTS_UV varying vec2 vUv; uniform mat3 uvTransform; #endif void main() { #ifdef USE_POINTS_UV vUv = ( uvTransform * vec3( uv, 1 ) ).xy; #endif #include #include #include #include #include #include gl_PointSize = size; #ifdef USE_SIZEATTENUATION bool isPerspective = isPerspectiveMatrix( projectionMatrix ); if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); #endif #include #include #include #include }`,points_frag:`uniform vec3 diffuse; uniform float opacity; #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include vec3 outgoingLight = vec3( 0.0 ); #include #include #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include #include }`,shadow_vert:`#include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include }`,shadow_frag:`uniform vec3 color; uniform float opacity; #include #include #include #include #include #include #include #include void main() { #include gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); #include #include #include }`,sprite_vert:`uniform float rotation; uniform vec2 center; #include #include #include #include #include void main() { #include vec4 mvPosition = modelViewMatrix[ 3 ]; vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); #ifndef USE_SIZEATTENUATION bool isPerspective = isPerspectiveMatrix( projectionMatrix ); if ( isPerspective ) scale *= - mvPosition.z; #endif vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; vec2 rotatedPosition; rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; mvPosition.xy += rotatedPosition; gl_Position = projectionMatrix * mvPosition; #include #include #include }`,sprite_frag:`uniform vec3 diffuse; uniform float opacity; #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include vec3 outgoingLight = vec3( 0.0 ); #include #include #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include }`},Hi={common:{diffuse:{value:new xi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Aa},alphaMap:{value:null},alphaMapTransform:{value:new Aa},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Aa}},envmap:{envMap:{value:null},envMapRotation:{value:new Aa},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Aa}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Aa}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Aa},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Aa},normalScale:{value:new tr(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Aa},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Aa}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Aa}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Aa}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new xi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new xi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Aa},alphaTest:{value:0},uvTransform:{value:new Aa}},sprite:{diffuse:{value:new xi(16777215)},opacity:{value:1},center:{value:new tr(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Aa},alphaMap:{value:null},alphaMapTransform:{value:new Aa},alphaTest:{value:0}}},nm={basic:{uniforms:wd([Hi.common,Hi.specularmap,Hi.envmap,Hi.aomap,Hi.lightmap,Hi.fog]),vertexShader:Ga.meshbasic_vert,fragmentShader:Ga.meshbasic_frag},lambert:{uniforms:wd([Hi.common,Hi.specularmap,Hi.envmap,Hi.aomap,Hi.lightmap,Hi.emissivemap,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,Hi.fog,Hi.lights,{emissive:{value:new xi(0)}}]),vertexShader:Ga.meshlambert_vert,fragmentShader:Ga.meshlambert_frag},phong:{uniforms:wd([Hi.common,Hi.specularmap,Hi.envmap,Hi.aomap,Hi.lightmap,Hi.emissivemap,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,Hi.fog,Hi.lights,{emissive:{value:new xi(0)},specular:{value:new xi(1118481)},shininess:{value:30}}]),vertexShader:Ga.meshphong_vert,fragmentShader:Ga.meshphong_frag},standard:{uniforms:wd([Hi.common,Hi.envmap,Hi.aomap,Hi.lightmap,Hi.emissivemap,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,Hi.roughnessmap,Hi.metalnessmap,Hi.fog,Hi.lights,{emissive:{value:new xi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ga.meshphysical_vert,fragmentShader:Ga.meshphysical_frag},toon:{uniforms:wd([Hi.common,Hi.aomap,Hi.lightmap,Hi.emissivemap,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,Hi.gradientmap,Hi.fog,Hi.lights,{emissive:{value:new xi(0)}}]),vertexShader:Ga.meshtoon_vert,fragmentShader:Ga.meshtoon_frag},matcap:{uniforms:wd([Hi.common,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,Hi.fog,{matcap:{value:null}}]),vertexShader:Ga.meshmatcap_vert,fragmentShader:Ga.meshmatcap_frag},points:{uniforms:wd([Hi.points,Hi.fog]),vertexShader:Ga.points_vert,fragmentShader:Ga.points_frag},dashed:{uniforms:wd([Hi.common,Hi.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ga.linedashed_vert,fragmentShader:Ga.linedashed_frag},depth:{uniforms:wd([Hi.common,Hi.displacementmap]),vertexShader:Ga.depth_vert,fragmentShader:Ga.depth_frag},normal:{uniforms:wd([Hi.common,Hi.bumpmap,Hi.normalmap,Hi.displacementmap,{opacity:{value:1}}]),vertexShader:Ga.meshnormal_vert,fragmentShader:Ga.meshnormal_frag},sprite:{uniforms:wd([Hi.sprite,Hi.fog]),vertexShader:Ga.sprite_vert,fragmentShader:Ga.sprite_frag},background:{uniforms:{uvTransform:{value:new Aa},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ga.background_vert,fragmentShader:Ga.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Aa}},vertexShader:Ga.backgroundCube_vert,fragmentShader:Ga.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ga.cube_vert,fragmentShader:Ga.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ga.equirect_vert,fragmentShader:Ga.equirect_frag},distanceRGBA:{uniforms:wd([Hi.common,Hi.displacementmap,{referencePosition:{value:new ot},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ga.distanceRGBA_vert,fragmentShader:Ga.distanceRGBA_frag},shadow:{uniforms:wd([Hi.lights,Hi.fog,{color:{value:new xi(0)},opacity:{value:1}}]),vertexShader:Ga.shadow_vert,fragmentShader:Ga.shadow_frag}};nm.physical={uniforms:wd([nm.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Aa},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Aa},clearcoatNormalScale:{value:new tr(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Aa},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Aa},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Aa},sheen:{value:0},sheenColor:{value:new xi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Aa},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Aa},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Aa},transmissionSamplerSize:{value:new tr},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Aa},attenuationDistance:{value:0},attenuationColor:{value:new xi(0)},specularColor:{value:new xi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Aa},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Aa},anisotropyVector:{value:new tr},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Aa}}]),vertexShader:Ga.meshphysical_vert,fragmentShader:Ga.meshphysical_frag};const Aw={r:0,b:0,g:0},_v=new Xd,kj=new ls;function Hj(b,a,y,x,E,z,ee){const te=new xi(0);let ne=z===!0?0:1,ie,ae,oe=null,le=0,de=null;function he(Ee){let Be=Ee.isScene===!0?Ee.background:null;return Be&&Be.isTexture&&(Be=(Ee.backgroundBlurriness>0?y:a).get(Be)),Be}function ye(Ee){let Be=!1;const Ne=he(Ee);Ne===null?me(te,ne):Ne&&Ne.isColor&&(me(Ne,1),Be=!0);const Fe=b.xr.getEnvironmentBlendMode();Fe==="additive"?x.buffers.color.setClear(0,0,0,1,ee):Fe==="alpha-blend"&&x.buffers.color.setClear(0,0,0,0,ee),(b.autoClear||Be)&&(x.buffers.depth.setTest(!0),x.buffers.depth.setMask(!0),x.buffers.color.setMask(!0),b.clear(b.autoClearColor,b.autoClearDepth,b.autoClearStencil))}function Ae(Ee,Be){const Ne=he(Be);Ne&&(Ne.isCubeTexture||Ne.mapping===Fu)?(ae===void 0&&(ae=new Fo(new Jg(1,1,1),new fp({name:"BackgroundCubeMaterial",uniforms:p0(nm.backgroundCube.uniforms),vertexShader:nm.backgroundCube.vertexShader,fragmentShader:nm.backgroundCube.fragmentShader,side:co,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),ae.geometry.deleteAttribute("normal"),ae.geometry.deleteAttribute("uv"),ae.onBeforeRender=function(Fe,ke,Re){this.matrixWorld.copyPosition(Re.matrixWorld)},Object.defineProperty(ae.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),E.update(ae)),_v.copy(Be.backgroundRotation),_v.x*=-1,_v.y*=-1,_v.z*=-1,Ne.isCubeTexture&&Ne.isRenderTargetTexture===!1&&(_v.y*=-1,_v.z*=-1),ae.material.uniforms.envMap.value=Ne,ae.material.uniforms.flipEnvMap.value=Ne.isCubeTexture&&Ne.isRenderTargetTexture===!1?-1:1,ae.material.uniforms.backgroundBlurriness.value=Be.backgroundBlurriness,ae.material.uniforms.backgroundIntensity.value=Be.backgroundIntensity,ae.material.uniforms.backgroundRotation.value.setFromMatrix4(kj.makeRotationFromEuler(_v)),ae.material.toneMapped=aa.getTransfer(Ne.colorSpace)!==On,(oe!==Ne||le!==Ne.version||de!==b.toneMapping)&&(ae.material.needsUpdate=!0,oe=Ne,le=Ne.version,de=b.toneMapping),ae.layers.enableAll(),Ee.unshift(ae,ae.geometry,ae.material,0,0,null)):Ne&&Ne.isTexture&&(ie===void 0&&(ie=new Fo(new B0(2,2),new fp({name:"BackgroundMaterial",uniforms:p0(nm.background.uniforms),vertexShader:nm.background.vertexShader,fragmentShader:nm.background.fragmentShader,side:yc,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),ie.geometry.deleteAttribute("normal"),Object.defineProperty(ie.material,"map",{get:function(){return this.uniforms.t2D.value}}),E.update(ie)),ie.material.uniforms.t2D.value=Ne,ie.material.uniforms.backgroundIntensity.value=Be.backgroundIntensity,ie.material.toneMapped=aa.getTransfer(Ne.colorSpace)!==On,Ne.matrixAutoUpdate===!0&&Ne.updateMatrix(),ie.material.uniforms.uvTransform.value.copy(Ne.matrix),(oe!==Ne||le!==Ne.version||de!==b.toneMapping)&&(ie.material.needsUpdate=!0,oe=Ne,le=Ne.version,de=b.toneMapping),ie.layers.enableAll(),Ee.unshift(ie,ie.geometry,ie.material,0,0,null))}function me(Ee,Be){Ee.getRGB(Aw,x5(b)),x.buffers.color.setClear(Aw.r,Aw.g,Aw.b,Be,ee)}function Ce(){ae!==void 0&&(ae.geometry.dispose(),ae.material.dispose(),ae=void 0),ie!==void 0&&(ie.geometry.dispose(),ie.material.dispose(),ie=void 0)}return{getClearColor:function(){return te},setClearColor:function(Ee,Be=1){te.set(Ee),ne=Be,me(te,ne)},getClearAlpha:function(){return ne},setClearAlpha:function(Ee){ne=Ee,me(te,ne)},render:ye,addToRenderList:Ae,dispose:Ce}}function Uj(b,a){const y=b.getParameter(b.MAX_VERTEX_ATTRIBS),x={},E=le(null);let z=E,ee=!1;function te(ze,Le,_e,Et,yt){let jt=!1;const tn=oe(Et,_e,Le);z!==tn&&(z=tn,ie(z.object)),jt=de(ze,Et,_e,yt),jt&&he(ze,Et,_e,yt),yt!==null&&a.update(yt,b.ELEMENT_ARRAY_BUFFER),(jt||ee)&&(ee=!1,Be(ze,Le,_e,Et),yt!==null&&b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a.get(yt).buffer))}function ne(){return b.createVertexArray()}function ie(ze){return b.bindVertexArray(ze)}function ae(ze){return b.deleteVertexArray(ze)}function oe(ze,Le,_e){const Et=_e.wireframe===!0;let yt=x[ze.id];yt===void 0&&(yt={},x[ze.id]=yt);let jt=yt[Le.id];jt===void 0&&(jt={},yt[Le.id]=jt);let tn=jt[Et];return tn===void 0&&(tn=le(ne()),jt[Et]=tn),tn}function le(ze){const Le=[],_e=[],Et=[];for(let yt=0;yt=0){const An=yt[kt];let Vt=jt[kt];if(Vt===void 0&&(kt==="instanceMatrix"&&ze.instanceMatrix&&(Vt=ze.instanceMatrix),kt==="instanceColor"&&ze.instanceColor&&(Vt=ze.instanceColor)),An===void 0||An.attribute!==Vt||Vt&&An.data!==Vt.data)return!0;tn++}return z.attributesNum!==tn||z.index!==Et}function he(ze,Le,_e,Et){const yt={},jt=Le.attributes;let tn=0;const cn=_e.getAttributes();for(const kt in cn)if(cn[kt].location>=0){let An=jt[kt];An===void 0&&(kt==="instanceMatrix"&&ze.instanceMatrix&&(An=ze.instanceMatrix),kt==="instanceColor"&&ze.instanceColor&&(An=ze.instanceColor));const Vt={};Vt.attribute=An,An&&An.data&&(Vt.data=An.data),yt[kt]=Vt,tn++}z.attributes=yt,z.attributesNum=tn,z.index=Et}function ye(){const ze=z.newAttributes;for(let Le=0,_e=ze.length;Le<_e;Le++)ze[Le]=0}function Ae(ze){me(ze,0)}function me(ze,Le){const _e=z.newAttributes,Et=z.enabledAttributes,yt=z.attributeDivisors;_e[ze]=1,Et[ze]===0&&(b.enableVertexAttribArray(ze),Et[ze]=1),yt[ze]!==Le&&(b.vertexAttribDivisor(ze,Le),yt[ze]=Le)}function Ce(){const ze=z.newAttributes,Le=z.enabledAttributes;for(let _e=0,Et=Le.length;_e=0){let pt=yt[cn];if(pt===void 0&&(cn==="instanceMatrix"&&ze.instanceMatrix&&(pt=ze.instanceMatrix),cn==="instanceColor"&&ze.instanceColor&&(pt=ze.instanceColor)),pt!==void 0){const An=pt.normalized,Vt=pt.itemSize,rn=a.get(pt);if(rn===void 0)continue;const Bn=rn.buffer,hr=rn.type,bt=rn.bytesPerElement,on=hr===b.INT||hr===b.UNSIGNED_INT||pt.gpuType===Vl;if(pt.isInterleavedBufferAttribute){const dn=pt.data,Qn=dn.stride,Un=pt.offset;if(dn.isInstancedInterleavedBuffer){for(let Kn=0;Kn0&&b.getShaderPrecisionFormat(b.FRAGMENT_SHADER,b.HIGH_FLOAT).precision>0)return"highp";ke="mediump"}return ke==="mediump"&&b.getShaderPrecisionFormat(b.VERTEX_SHADER,b.MEDIUM_FLOAT).precision>0&&b.getShaderPrecisionFormat(b.FRAGMENT_SHADER,b.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let ie=y.precision!==void 0?y.precision:"highp";const ae=ne(ie);ae!==ie&&(console.warn("THREE.WebGLRenderer:",ie,"not supported, using",ae,"instead."),ie=ae);const oe=y.logarithmicDepthBuffer===!0,le=y.reversedDepthBuffer===!0&&a.has("EXT_clip_control"),de=b.getParameter(b.MAX_TEXTURE_IMAGE_UNITS),he=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS),ye=b.getParameter(b.MAX_TEXTURE_SIZE),Ae=b.getParameter(b.MAX_CUBE_MAP_TEXTURE_SIZE),me=b.getParameter(b.MAX_VERTEX_ATTRIBS),Ce=b.getParameter(b.MAX_VERTEX_UNIFORM_VECTORS),Ee=b.getParameter(b.MAX_VARYING_VECTORS),Be=b.getParameter(b.MAX_FRAGMENT_UNIFORM_VECTORS),Ne=he>0,Fe=b.getParameter(b.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:z,getMaxPrecision:ne,textureFormatReadable:ee,textureTypeReadable:te,precision:ie,logarithmicDepthBuffer:oe,reversedDepthBuffer:le,maxTextures:de,maxVertexTextures:he,maxTextureSize:ye,maxCubemapSize:Ae,maxAttributes:me,maxVertexUniforms:Ce,maxVaryings:Ee,maxFragmentUniforms:Be,vertexTextures:Ne,maxSamples:Fe}}function Gj(b){const a=this;let y=null,x=0,E=!1,z=!1;const ee=new pp,te=new Aa,ne={value:null,needsUpdate:!1};this.uniform=ne,this.numPlanes=0,this.numIntersection=0,this.init=function(oe,le){const de=oe.length!==0||le||x!==0||E;return E=le,x=oe.length,de},this.beginShadows=function(){z=!0,ae(null)},this.endShadows=function(){z=!1},this.setGlobalState=function(oe,le){y=ae(oe,le,0)},this.setState=function(oe,le,de){const he=oe.clippingPlanes,ye=oe.clipIntersection,Ae=oe.clipShadows,me=b.get(oe);if(!E||he===null||he.length===0||z&&!Ae)z?ae(null):ie();else{const Ce=z?0:x,Ee=Ce*4;let Be=me.clippingState||null;ne.value=Be,Be=ae(he,le,Ee,de);for(let Ne=0;Ne!==Ee;++Ne)Be[Ne]=y[Ne];me.clippingState=Be,this.numIntersection=ye?this.numPlanes:0,this.numPlanes+=Ce}};function ie(){ne.value!==y&&(ne.value=y,ne.needsUpdate=x>0),a.numPlanes=x,a.numIntersection=0}function ae(oe,le,de,he){const ye=oe!==null?oe.length:0;let Ae=null;if(ye!==0){if(Ae=ne.value,he!==!0||Ae===null){const me=de+ye*4,Ce=le.matrixWorldInverse;te.getNormalMatrix(Ce),(Ae===null||Ae.length0){const ie=new P5(ne.height);return ie.fromEquirectangularTexture(b,ee),a.set(ee,ie),ee.addEventListener("dispose",E),y(ie.texture,ee.mapping)}else return null}}return ee}function E(ee){const te=ee.target;te.removeEventListener("dispose",E);const ne=a.get(te);ne!==void 0&&(a.delete(te),ne.dispose())}function z(){a=new WeakMap}return{get:x,dispose:z}}const k0=4,$2=[.125,.215,.35,.446,.526,.582],$v=20,dB=new T0,eT=new xi;let fB=null,hB=0,pB=0,mB=!1;const eA=(1+Math.sqrt(5))/2,H0=1/eA,tT=[new ot(-eA,H0,0),new ot(eA,H0,0),new ot(-H0,0,eA),new ot(H0,0,eA),new ot(0,eA,-H0),new ot(0,eA,H0),new ot(-1,1,-1),new ot(1,1,-1),new ot(-1,1,1),new ot(1,1,1)],Wj=new ot;class nT{constructor(a){this._renderer=a,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(a,y=0,x=.1,E=100,z={}){const{size:ee=256,position:te=Wj}=z;fB=this._renderer.getRenderTarget(),hB=this._renderer.getActiveCubeFace(),pB=this._renderer.getActiveMipmapLevel(),mB=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(ee);const ne=this._allocateTargets();return ne.depthBuffer=!0,this._sceneToCubeUV(a,x,E,ne,te),y>0&&this._blur(ne,0,0,y),this._applyPMREM(ne),this._cleanup(ne),ne}fromEquirectangular(a,y=null){return this._fromTexture(a,y)}fromCubemap(a,y=null){return this._fromTexture(a,y)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=sT(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=iT(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(a){this._lodMax=Math.floor(Math.log2(a)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let a=0;a2?Ne:0,Ne,Ne),oe.setRenderTarget(E),me&&oe.render(Ae,ne),oe.render(a,ne)}Ae.geometry.dispose(),Ae.material.dispose(),oe.toneMapping=de,oe.autoClear=le,a.background=Ce}_textureToCubeUV(a,y){const x=this._renderer,E=a.mapping===Iu||a.mapping===gl;E?(this._cubemapMaterial===null&&(this._cubemapMaterial=sT()),this._cubemapMaterial.uniforms.flipEnvMap.value=a.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=iT());const z=E?this._cubemapMaterial:this._equirectMaterial,ee=new Fo(this._lodPlanes[0],z),te=z.uniforms;te.envMap.value=a;const ne=this._cubeSize;yw(y,0,0,3*ne,2*ne),x.setRenderTarget(y),x.render(ee,dB)}_applyPMREM(a){const y=this._renderer,x=y.autoClear;y.autoClear=!1;const E=this._lodPlanes.length;for(let z=1;z$v&&console.warn(`sigmaRadians, ${z}, is too large and will clip, as it requested ${Ae} samples when the maximum is set to ${$v}`);const me=[];let Ce=0;for(let ke=0;ke<$v;++ke){const Re=ke/ye,Oe=Math.exp(-Re*Re/2);me.push(Oe),ke===0?Ce+=Oe:keEe-k0?E-Ee+k0:0),Fe=4*(this._cubeSize-Be);yw(y,Ne,Fe,3*Be,2*Be),ne.setRenderTarget(y),ne.render(oe,dB)}}function Qj(b){const a=[],y=[],x=[];let E=b;const z=b-k0+1+$2.length;for(let ee=0;eeb-k0?ne=$2[ee-b+k0-1]:ee===0&&(ne=0),x.push(ne);const ie=1/(te-2),ae=-ie,oe=1+ie,le=[ae,ae,oe,ae,oe,oe,ae,ae,oe,oe,ae,oe],de=6,he=6,ye=3,Ae=2,me=1,Ce=new Float32Array(ye*he*de),Ee=new Float32Array(Ae*he*de),Be=new Float32Array(me*he*de);for(let Fe=0;Fe2?0:-1,Oe=[ke,Re,0,ke+2/3,Re,0,ke+2/3,Re+1,0,ke,Re,0,ke+2/3,Re+1,0,ke,Re+1,0];Ce.set(Oe,ye*he*Fe),Ee.set(le,Ae*he*Fe);const ze=[Fe,Fe,Fe,Fe,Fe,Fe];Be.set(ze,me*he*Fe)}const Ne=new Fa;Ne.setAttribute("position",new nl(Ce,ye)),Ne.setAttribute("uv",new nl(Ee,Ae)),Ne.setAttribute("faceIndex",new nl(Be,me)),a.push(Ne),E>k0&&E--}return{lodPlanes:a,sizeLods:y,sigmas:x}}function rT(b,a,y){const x=new Gg(b,a,y);return x.texture.mapping=Fu,x.texture.name="PMREM.cubeUv",x.scissorTest=!0,x}function yw(b,a,y,x,E){b.viewport.set(a,y,x,E),b.scissor.set(a,y,x,E)}function Zj(b,a,y){const x=new Float32Array($v),E=new ot(0,1,0);return new fp({name:"SphericalGaussianBlur",defines:{n:$v,CUBEUV_TEXEL_WIDTH:1/a,CUBEUV_TEXEL_HEIGHT:1/y,CUBEUV_MAX_MIP:`${b}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:x},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:E}},vertexShader:gB(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform int samples; uniform float weights[ n ]; uniform bool latitudinal; uniform float dTheta; uniform float mipInt; uniform vec3 poleAxis; #define ENVMAP_TYPE_CUBE_UV #include vec3 getSample( float theta, vec3 axis ) { float cosTheta = cos( theta ); // Rodrigues' axis-angle rotation vec3 sampleDirection = vOutputDirection * cosTheta + cross( axis, vOutputDirection ) * sin( theta ) + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); return bilinearCubeUV( envMap, sampleDirection, mipInt ); } void main() { vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); if ( all( equal( axis, vec3( 0.0 ) ) ) ) { axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); } axis = normalize( axis ); gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); for ( int i = 1; i < n; i++ ) { if ( i >= samples ) { break; } float theta = dTheta * float( i ); gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); } } `,blending:El,depthTest:!1,depthWrite:!1})}function iT(){return new fp({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:gB(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:El,depthTest:!1,depthWrite:!1})}function sT(){return new fp({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:gB(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:El,depthTest:!1,depthWrite:!1})}function gB(){return` precision mediump float; precision mediump int; attribute float faceIndex; varying vec3 vOutputDirection; // RH coordinate system; PMREM face-indexing convention vec3 getDirection( vec2 uv, float face ) { uv = 2.0 * uv - 1.0; vec3 direction = vec3( uv, 1.0 ); if ( face == 0.0 ) { direction = direction.zyx; // ( 1, v, u ) pos x } else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; // ( -u, 1, -v ) pos y } else if ( face == 2.0 ) { direction.x *= -1.0; // ( -u, v, 1 ) pos z } else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; // ( -1, v, -u ) neg x } else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; // ( -u, -1, v ) neg y } else if ( face == 5.0 ) { direction.z *= -1.0; // ( u, v, -1 ) neg z } return direction; } void main() { vOutputDirection = getDirection( uv, faceIndex ); gl_Position = vec4( position, 1.0 ); } `}function Yj(b){let a=new WeakMap,y=null;function x(te){if(te&&te.isTexture){const ne=te.mapping,ie=ne===Qh||ne===ah,ae=ne===Iu||ne===gl;if(ie||ae){let oe=a.get(te);const le=oe!==void 0?oe.texture.pmremVersion:0;if(te.isRenderTargetTexture&&te.pmremVersion!==le)return y===null&&(y=new nT(b)),oe=ie?y.fromEquirectangular(te,oe):y.fromCubemap(te,oe),oe.texture.pmremVersion=te.pmremVersion,a.set(te,oe),oe.texture;if(oe!==void 0)return oe.texture;{const de=te.image;return ie&&de&&de.height>0||ae&&de&&E(de)?(y===null&&(y=new nT(b)),oe=ie?y.fromEquirectangular(te):y.fromCubemap(te),oe.texture.pmremVersion=te.pmremVersion,a.set(te,oe),te.addEventListener("dispose",z),oe.texture):null}}}return te}function E(te){let ne=0;const ie=6;for(let ae=0;aea.maxTextureSize&&(Ne=Math.ceil(Be/a.maxTextureSize),Be=a.maxTextureSize);const Fe=new Float32Array(Be*Ne*4*oe),ke=new tE(Fe,Be,Ne,oe);ke.type=Vo,ke.needsUpdate=!0;const Re=Ee*4;for(let ze=0;ze0)return b;const E=a*y;let z=dT[E];if(z===void 0&&(z=new Float32Array(E),dT[E]=z),a!==0){x.toArray(z,0);for(let ee=1,te=0;ee!==a;++ee)te+=y,b[ee].toArray(z,te)}return z}function nc(b,a){if(b.length!==a.length)return!1;for(let y=0,x=b.length;y":" "} ${te}: ${y[ee]}`)}return x.join(` `)}const AT=new Aa;function YV(b){aa._getMatrix(AT,aa.workingColorSpace,b);const a=`mat3( ${AT.elements.map(y=>y.toFixed(4))} )`;switch(aa.getTransfer(b)){case Sr:return[a,"LinearTransferOETF"];case On:return[a,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",b),[a,"LinearTransferOETF"]}}function yT(b,a,y){const x=b.getShaderParameter(a,b.COMPILE_STATUS),z=(b.getShaderInfoLog(a)||"").trim();if(x&&z==="")return"";const ee=/ERROR: 0:(\d+)/.exec(z);if(ee){const te=parseInt(ee[1]);return y.toUpperCase()+` `+z+` `+ZV(b.getShaderSource(a),te)}else return z}function JV(b,a){const y=YV(a);return[`vec4 ${b}( vec4 value ) {`,` return ${y[1]}( vec4( value.rgb * ${y[0]}, value.a ) );`,"}"].join(` `)}function KV(b,a){let y;switch(a){case QA:y="Linear";break;case Nm:y="Reinhard";break;case Hg:y="Cineon";break;case Sv:y="ACESFilmic";break;case ZA:y="AgX";break;case YA:y="Neutral";break;case By:y="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",a),y="Linear"}return"vec3 "+b+"( vec3 color ) { return "+y+"ToneMapping( color ); }"}const Ew=new ot;function qV(){aa.getLuminanceCoefficients(Ew);const b=Ew.x.toFixed(4),a=Ew.y.toFixed(4),y=Ew.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${b}, ${a}, ${y} );`," return dot( weights, rgb );","}"].join(` `)}function _V(b){return[b.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",b.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(ox).join(` `)}function $V(b){const a=[];for(const y in b){const x=b[y];x!==!1&&a.push("#define "+y+" "+x)}return a.join(` `)}function eG(b,a){const y={},x=b.getProgramParameter(a,b.ACTIVE_ATTRIBUTES);for(let E=0;E/gm;function AB(b){return b.replace(tG,rG)}const nG=new Map;function rG(b,a){let y=Ga[a];if(y===void 0){const x=nG.get(a);if(x!==void 0)y=Ga[x],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',a,x);else throw new Error("Can not resolve #include <"+a+">")}return AB(y)}const iG=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function ET(b){return b.replace(iG,sG)}function sG(b,a,y,x){let E="";for(let z=parseInt(a);z0&&(Ae+=` `),me=["#define SHADER_TYPE "+y.shaderType,"#define SHADER_NAME "+y.shaderName,he].filter(ox).join(` `),me.length>0&&(me+=` `)):(Ae=[wT(y),"#define SHADER_TYPE "+y.shaderType,"#define SHADER_NAME "+y.shaderName,he,y.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",y.batching?"#define USE_BATCHING":"",y.batchingColor?"#define USE_BATCHING_COLOR":"",y.instancing?"#define USE_INSTANCING":"",y.instancingColor?"#define USE_INSTANCING_COLOR":"",y.instancingMorph?"#define USE_INSTANCING_MORPH":"",y.useFog&&y.fog?"#define USE_FOG":"",y.useFog&&y.fogExp2?"#define FOG_EXP2":"",y.map?"#define USE_MAP":"",y.envMap?"#define USE_ENVMAP":"",y.envMap?"#define "+ae:"",y.lightMap?"#define USE_LIGHTMAP":"",y.aoMap?"#define USE_AOMAP":"",y.bumpMap?"#define USE_BUMPMAP":"",y.normalMap?"#define USE_NORMALMAP":"",y.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",y.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",y.displacementMap?"#define USE_DISPLACEMENTMAP":"",y.emissiveMap?"#define USE_EMISSIVEMAP":"",y.anisotropy?"#define USE_ANISOTROPY":"",y.anisotropyMap?"#define USE_ANISOTROPYMAP":"",y.clearcoatMap?"#define USE_CLEARCOATMAP":"",y.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",y.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",y.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",y.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",y.specularMap?"#define USE_SPECULARMAP":"",y.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",y.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",y.roughnessMap?"#define USE_ROUGHNESSMAP":"",y.metalnessMap?"#define USE_METALNESSMAP":"",y.alphaMap?"#define USE_ALPHAMAP":"",y.alphaHash?"#define USE_ALPHAHASH":"",y.transmission?"#define USE_TRANSMISSION":"",y.transmissionMap?"#define USE_TRANSMISSIONMAP":"",y.thicknessMap?"#define USE_THICKNESSMAP":"",y.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",y.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",y.mapUv?"#define MAP_UV "+y.mapUv:"",y.alphaMapUv?"#define ALPHAMAP_UV "+y.alphaMapUv:"",y.lightMapUv?"#define LIGHTMAP_UV "+y.lightMapUv:"",y.aoMapUv?"#define AOMAP_UV "+y.aoMapUv:"",y.emissiveMapUv?"#define EMISSIVEMAP_UV "+y.emissiveMapUv:"",y.bumpMapUv?"#define BUMPMAP_UV "+y.bumpMapUv:"",y.normalMapUv?"#define NORMALMAP_UV "+y.normalMapUv:"",y.displacementMapUv?"#define DISPLACEMENTMAP_UV "+y.displacementMapUv:"",y.metalnessMapUv?"#define METALNESSMAP_UV "+y.metalnessMapUv:"",y.roughnessMapUv?"#define ROUGHNESSMAP_UV "+y.roughnessMapUv:"",y.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+y.anisotropyMapUv:"",y.clearcoatMapUv?"#define CLEARCOATMAP_UV "+y.clearcoatMapUv:"",y.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+y.clearcoatNormalMapUv:"",y.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+y.clearcoatRoughnessMapUv:"",y.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+y.iridescenceMapUv:"",y.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+y.iridescenceThicknessMapUv:"",y.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+y.sheenColorMapUv:"",y.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+y.sheenRoughnessMapUv:"",y.specularMapUv?"#define SPECULARMAP_UV "+y.specularMapUv:"",y.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+y.specularColorMapUv:"",y.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+y.specularIntensityMapUv:"",y.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+y.transmissionMapUv:"",y.thicknessMapUv?"#define THICKNESSMAP_UV "+y.thicknessMapUv:"",y.vertexTangents&&y.flatShading===!1?"#define USE_TANGENT":"",y.vertexColors?"#define USE_COLOR":"",y.vertexAlphas?"#define USE_COLOR_ALPHA":"",y.vertexUv1s?"#define USE_UV1":"",y.vertexUv2s?"#define USE_UV2":"",y.vertexUv3s?"#define USE_UV3":"",y.pointsUvs?"#define USE_POINTS_UV":"",y.flatShading?"#define FLAT_SHADED":"",y.skinning?"#define USE_SKINNING":"",y.morphTargets?"#define USE_MORPHTARGETS":"",y.morphNormals&&y.flatShading===!1?"#define USE_MORPHNORMALS":"",y.morphColors?"#define USE_MORPHCOLORS":"",y.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+y.morphTextureStride:"",y.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+y.morphTargetsCount:"",y.doubleSided?"#define DOUBLE_SIDED":"",y.flipSided?"#define FLIP_SIDED":"",y.shadowMapEnabled?"#define USE_SHADOWMAP":"",y.shadowMapEnabled?"#define "+ne:"",y.sizeAttenuation?"#define USE_SIZEATTENUATION":"",y.numLightProbes>0?"#define USE_LIGHT_PROBES":"",y.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",y.reversedDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` `].filter(ox).join(` `),me=[wT(y),"#define SHADER_TYPE "+y.shaderType,"#define SHADER_NAME "+y.shaderName,he,y.useFog&&y.fog?"#define USE_FOG":"",y.useFog&&y.fogExp2?"#define FOG_EXP2":"",y.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",y.map?"#define USE_MAP":"",y.matcap?"#define USE_MATCAP":"",y.envMap?"#define USE_ENVMAP":"",y.envMap?"#define "+ie:"",y.envMap?"#define "+ae:"",y.envMap?"#define "+oe:"",le?"#define CUBEUV_TEXEL_WIDTH "+le.texelWidth:"",le?"#define CUBEUV_TEXEL_HEIGHT "+le.texelHeight:"",le?"#define CUBEUV_MAX_MIP "+le.maxMip+".0":"",y.lightMap?"#define USE_LIGHTMAP":"",y.aoMap?"#define USE_AOMAP":"",y.bumpMap?"#define USE_BUMPMAP":"",y.normalMap?"#define USE_NORMALMAP":"",y.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",y.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",y.emissiveMap?"#define USE_EMISSIVEMAP":"",y.anisotropy?"#define USE_ANISOTROPY":"",y.anisotropyMap?"#define USE_ANISOTROPYMAP":"",y.clearcoat?"#define USE_CLEARCOAT":"",y.clearcoatMap?"#define USE_CLEARCOATMAP":"",y.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",y.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",y.dispersion?"#define USE_DISPERSION":"",y.iridescence?"#define USE_IRIDESCENCE":"",y.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",y.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",y.specularMap?"#define USE_SPECULARMAP":"",y.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",y.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",y.roughnessMap?"#define USE_ROUGHNESSMAP":"",y.metalnessMap?"#define USE_METALNESSMAP":"",y.alphaMap?"#define USE_ALPHAMAP":"",y.alphaTest?"#define USE_ALPHATEST":"",y.alphaHash?"#define USE_ALPHAHASH":"",y.sheen?"#define USE_SHEEN":"",y.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",y.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",y.transmission?"#define USE_TRANSMISSION":"",y.transmissionMap?"#define USE_TRANSMISSIONMAP":"",y.thicknessMap?"#define USE_THICKNESSMAP":"",y.vertexTangents&&y.flatShading===!1?"#define USE_TANGENT":"",y.vertexColors||y.instancingColor||y.batchingColor?"#define USE_COLOR":"",y.vertexAlphas?"#define USE_COLOR_ALPHA":"",y.vertexUv1s?"#define USE_UV1":"",y.vertexUv2s?"#define USE_UV2":"",y.vertexUv3s?"#define USE_UV3":"",y.pointsUvs?"#define USE_POINTS_UV":"",y.gradientMap?"#define USE_GRADIENTMAP":"",y.flatShading?"#define FLAT_SHADED":"",y.doubleSided?"#define DOUBLE_SIDED":"",y.flipSided?"#define FLIP_SIDED":"",y.shadowMapEnabled?"#define USE_SHADOWMAP":"",y.shadowMapEnabled?"#define "+ne:"",y.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",y.numLightProbes>0?"#define USE_LIGHT_PROBES":"",y.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",y.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",y.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",y.reversedDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",y.toneMapping!==bc?"#define TONE_MAPPING":"",y.toneMapping!==bc?Ga.tonemapping_pars_fragment:"",y.toneMapping!==bc?KV("toneMapping",y.toneMapping):"",y.dithering?"#define DITHERING":"",y.opaque?"#define OPAQUE":"",Ga.colorspace_pars_fragment,JV("linearToOutputTexel",y.outputColorSpace),qV(),y.useDepthPacking?"#define DEPTH_PACKING "+y.depthPacking:"",` `].filter(ox).join(` `)),ee=AB(ee),ee=xT(ee,y),ee=bT(ee,y),te=AB(te),te=xT(te,y),te=bT(te,y),ee=ET(ee),te=ET(te),y.isRawShaderMaterial!==!0&&(Ce=`#version 300 es `,Ae=[de,"#define attribute in","#define varying out","#define texture2D texture"].join(` `)+` `+Ae,me=["#define varying in",y.glslVersion===Dt?"":"layout(location = 0) out highp vec4 pc_fragColor;",y.glslVersion===Dt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` `+me);const Ee=Ce+Ae+ee,Be=Ce+me+te,Ne=vT(E,E.VERTEX_SHADER,Ee),Fe=vT(E,E.FRAGMENT_SHADER,Be);E.attachShader(ye,Ne),E.attachShader(ye,Fe),y.index0AttributeName!==void 0?E.bindAttribLocation(ye,0,y.index0AttributeName):y.morphTargets===!0&&E.bindAttribLocation(ye,0,"position"),E.linkProgram(ye);function ke(Le){if(b.debug.checkShaderErrors){const _e=E.getProgramInfoLog(ye)||"",Et=E.getShaderInfoLog(Ne)||"",yt=E.getShaderInfoLog(Fe)||"",jt=_e.trim(),tn=Et.trim(),cn=yt.trim();let kt=!0,pt=!0;if(E.getProgramParameter(ye,E.LINK_STATUS)===!1)if(kt=!1,typeof b.debug.onShaderError=="function")b.debug.onShaderError(E,ye,Ne,Fe);else{const An=yT(E,Ne,"vertex"),Vt=yT(E,Fe,"fragment");console.error("THREE.WebGLProgram: Shader Error "+E.getError()+" - VALIDATE_STATUS "+E.getProgramParameter(ye,E.VALIDATE_STATUS)+` Material Name: `+Le.name+` Material Type: `+Le.type+` Program Info Log: `+jt+` `+An+` `+Vt)}else jt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",jt):(tn===""||cn==="")&&(pt=!1);pt&&(Le.diagnostics={runnable:kt,programLog:jt,vertexShader:{log:tn,prefix:Ae},fragmentShader:{log:cn,prefix:me}})}E.deleteShader(Ne),E.deleteShader(Fe),Re=new bw(E,ye),Oe=eG(E,ye)}let Re;this.getUniforms=function(){return Re===void 0&&ke(this),Re};let Oe;this.getAttributes=function(){return Oe===void 0&&ke(this),Oe};let ze=y.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return ze===!1&&(ze=E.getProgramParameter(ye,WV)),ze},this.destroy=function(){x.releaseStatesOfProgram(this),E.deleteProgram(ye),this.program=void 0},this.type=y.shaderType,this.name=y.shaderName,this.id=QV++,this.cacheKey=a,this.usedTimes=1,this.program=ye,this.vertexShader=Ne,this.fragmentShader=Fe,this}let fG=0;class hG{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(a){const y=a.vertexShader,x=a.fragmentShader,E=this._getShaderStage(y),z=this._getShaderStage(x),ee=this._getShaderCacheForMaterial(a);return ee.has(E)===!1&&(ee.add(E),E.usedTimes++),ee.has(z)===!1&&(ee.add(z),z.usedTimes++),this}remove(a){const y=this.materialCache.get(a);for(const x of y)x.usedTimes--,x.usedTimes===0&&this.shaderCache.delete(x.code);return this.materialCache.delete(a),this}getVertexShaderID(a){return this._getShaderStage(a.vertexShader).id}getFragmentShaderID(a){return this._getShaderStage(a.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(a){const y=this.materialCache;let x=y.get(a);return x===void 0&&(x=new Set,y.set(a,x)),x}_getShaderStage(a){const y=this.shaderCache;let x=y.get(a);return x===void 0&&(x=new pG(a),y.set(a,x)),x}}class pG{constructor(a){this.id=fG++,this.code=a,this.usedTimes=0}}function mG(b,a,y,x,E,z,ee){const te=new CC,ne=new hG,ie=new Set,ae=[],oe=E.logarithmicDepthBuffer,le=E.vertexTextures;let de=E.precision;const he={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function ye(Oe){return ie.add(Oe),Oe===0?"uv":`uv${Oe}`}function Ae(Oe,ze,Le,_e,Et){const yt=_e.fog,jt=Et.geometry,tn=Oe.isMeshStandardMaterial?_e.environment:null,cn=(Oe.isMeshStandardMaterial?y:a).get(Oe.envMap||tn),kt=cn&&cn.mapping===Fu?cn.image.height:null,pt=he[Oe.type];Oe.precision!==null&&(de=E.getMaxPrecision(Oe.precision),de!==Oe.precision&&console.warn("THREE.WebGLProgram.getParameters:",Oe.precision,"not supported, using",de,"instead."));const An=jt.morphAttributes.position||jt.morphAttributes.normal||jt.morphAttributes.color,Vt=An!==void 0?An.length:0;let rn=0;jt.morphAttributes.position!==void 0&&(rn=1),jt.morphAttributes.normal!==void 0&&(rn=2),jt.morphAttributes.color!==void 0&&(rn=3);let Bn,hr,bt,on;if(pt){const Ui=nm[pt];Bn=Ui.vertexShader,hr=Ui.fragmentShader}else Bn=Oe.vertexShader,hr=Oe.fragmentShader,ne.update(Oe),bt=ne.getVertexShaderID(Oe),on=ne.getFragmentShaderID(Oe);const dn=b.getRenderTarget(),Qn=b.state.buffers.depth.getReversed(),Un=Et.isInstancedMesh===!0,Kn=Et.isBatchedMesh===!0,Nr=!!Oe.map,Xr=!!Oe.matcap,Ht=!!cn,En=!!Oe.aoMap,qn=!!Oe.lightMap,vr=!!Oe.bumpMap,cr=!!Oe.normalMap,Vr=!!Oe.displacementMap,kr=!!Oe.emissiveMap,Jr=!!Oe.metalnessMap,ms=!!Oe.roughnessMap,Es=Oe.anisotropy>0,Pt=Oe.clearcoat>0,et=Oe.dispersion>0,Tn=Oe.iridescence>0,or=Oe.sheen>0,Pn=Oe.transmission>0,Xn=Es&&!!Oe.anisotropyMap,Li=Pt&&!!Oe.clearcoatMap,Kr=Pt&&!!Oe.clearcoatNormalMap,es=Pt&&!!Oe.clearcoatRoughnessMap,qi=Tn&&!!Oe.iridescenceMap,Zr=Tn&&!!Oe.iridescenceThicknessMap,Bi=or&&!!Oe.sheenColorMap,gs=or&&!!Oe.sheenRoughnessMap,Fi=!!Oe.specularMap,Br=!!Oe.specularColorMap,_s=!!Oe.specularIntensityMap,yn=Pn&&!!Oe.transmissionMap,ti=Pn&&!!Oe.thicknessMap,hi=!!Oe.gradientMap,ss=!!Oe.alphaMap,Gr=Oe.alphaTest>0,Or=!!Oe.alphaHash,fs=!!Oe.extensions;let yr=bc;Oe.toneMapped&&(dn===null||dn.isXRRenderTarget===!0)&&(yr=b.toneMapping);const Ei={shaderID:pt,shaderType:Oe.type,shaderName:Oe.name,vertexShader:Bn,fragmentShader:hr,defines:Oe.defines,customVertexShaderID:bt,customFragmentShaderID:on,isRawShaderMaterial:Oe.isRawShaderMaterial===!0,glslVersion:Oe.glslVersion,precision:de,batching:Kn,batchingColor:Kn&&Et._colorsTexture!==null,instancing:Un,instancingColor:Un&&Et.instanceColor!==null,instancingMorph:Un&&Et.morphTexture!==null,supportsVertexTextures:le,outputColorSpace:dn===null?b.outputColorSpace:dn.isXRRenderTarget===!0?dn.texture.colorSpace:sr,alphaToCoverage:!!Oe.alphaToCoverage,map:Nr,matcap:Xr,envMap:Ht,envMapMode:Ht&&cn.mapping,envMapCubeUVHeight:kt,aoMap:En,lightMap:qn,bumpMap:vr,normalMap:cr,displacementMap:le&&Vr,emissiveMap:kr,normalMapObjectSpace:cr&&Oe.normalMapType===Rt,normalMapTangentSpace:cr&&Oe.normalMapType===wt,metalnessMap:Jr,roughnessMap:ms,anisotropy:Es,anisotropyMap:Xn,clearcoat:Pt,clearcoatMap:Li,clearcoatNormalMap:Kr,clearcoatRoughnessMap:es,dispersion:et,iridescence:Tn,iridescenceMap:qi,iridescenceThicknessMap:Zr,sheen:or,sheenColorMap:Bi,sheenRoughnessMap:gs,specularMap:Fi,specularColorMap:Br,specularIntensityMap:_s,transmission:Pn,transmissionMap:yn,thicknessMap:ti,gradientMap:hi,opaque:Oe.transparent===!1&&Oe.blending===xc&&Oe.alphaToCoverage===!1,alphaMap:ss,alphaTest:Gr,alphaHash:Or,combine:Oe.combine,mapUv:Nr&&ye(Oe.map.channel),aoMapUv:En&&ye(Oe.aoMap.channel),lightMapUv:qn&&ye(Oe.lightMap.channel),bumpMapUv:vr&&ye(Oe.bumpMap.channel),normalMapUv:cr&&ye(Oe.normalMap.channel),displacementMapUv:Vr&&ye(Oe.displacementMap.channel),emissiveMapUv:kr&&ye(Oe.emissiveMap.channel),metalnessMapUv:Jr&&ye(Oe.metalnessMap.channel),roughnessMapUv:ms&&ye(Oe.roughnessMap.channel),anisotropyMapUv:Xn&&ye(Oe.anisotropyMap.channel),clearcoatMapUv:Li&&ye(Oe.clearcoatMap.channel),clearcoatNormalMapUv:Kr&&ye(Oe.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:es&&ye(Oe.clearcoatRoughnessMap.channel),iridescenceMapUv:qi&&ye(Oe.iridescenceMap.channel),iridescenceThicknessMapUv:Zr&&ye(Oe.iridescenceThicknessMap.channel),sheenColorMapUv:Bi&&ye(Oe.sheenColorMap.channel),sheenRoughnessMapUv:gs&&ye(Oe.sheenRoughnessMap.channel),specularMapUv:Fi&&ye(Oe.specularMap.channel),specularColorMapUv:Br&&ye(Oe.specularColorMap.channel),specularIntensityMapUv:_s&&ye(Oe.specularIntensityMap.channel),transmissionMapUv:yn&&ye(Oe.transmissionMap.channel),thicknessMapUv:ti&&ye(Oe.thicknessMap.channel),alphaMapUv:ss&&ye(Oe.alphaMap.channel),vertexTangents:!!jt.attributes.tangent&&(cr||Es),vertexColors:Oe.vertexColors,vertexAlphas:Oe.vertexColors===!0&&!!jt.attributes.color&&jt.attributes.color.itemSize===4,pointsUvs:Et.isPoints===!0&&!!jt.attributes.uv&&(Nr||ss),fog:!!yt,useFog:Oe.fog===!0,fogExp2:!!yt&&yt.isFogExp2,flatShading:Oe.flatShading===!0&&Oe.wireframe===!1,sizeAttenuation:Oe.sizeAttenuation===!0,logarithmicDepthBuffer:oe,reversedDepthBuffer:Qn,skinning:Et.isSkinnedMesh===!0,morphTargets:jt.morphAttributes.position!==void 0,morphNormals:jt.morphAttributes.normal!==void 0,morphColors:jt.morphAttributes.color!==void 0,morphTargetsCount:Vt,morphTextureStride:rn,numDirLights:ze.directional.length,numPointLights:ze.point.length,numSpotLights:ze.spot.length,numSpotLightMaps:ze.spotLightMap.length,numRectAreaLights:ze.rectArea.length,numHemiLights:ze.hemi.length,numDirLightShadows:ze.directionalShadowMap.length,numPointLightShadows:ze.pointShadowMap.length,numSpotLightShadows:ze.spotShadowMap.length,numSpotLightShadowsWithMaps:ze.numSpotLightShadowsWithMaps,numLightProbes:ze.numLightProbes,numClippingPlanes:ee.numPlanes,numClipIntersection:ee.numIntersection,dithering:Oe.dithering,shadowMapEnabled:b.shadowMap.enabled&&Le.length>0,shadowMapType:b.shadowMap.type,toneMapping:yr,decodeVideoTexture:Nr&&Oe.map.isVideoTexture===!0&&aa.getTransfer(Oe.map.colorSpace)===On,decodeVideoTextureEmissive:kr&&Oe.emissiveMap.isVideoTexture===!0&&aa.getTransfer(Oe.emissiveMap.colorSpace)===On,premultipliedAlpha:Oe.premultipliedAlpha,doubleSided:Oe.side===eo,flipSided:Oe.side===co,useDepthPacking:Oe.depthPacking>=0,depthPacking:Oe.depthPacking||0,index0AttributeName:Oe.index0AttributeName,extensionClipCullDistance:fs&&Oe.extensions.clipCullDistance===!0&&x.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(fs&&Oe.extensions.multiDraw===!0||Kn)&&x.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:x.has("KHR_parallel_shader_compile"),customProgramCacheKey:Oe.customProgramCacheKey()};return Ei.vertexUv1s=ie.has(1),Ei.vertexUv2s=ie.has(2),Ei.vertexUv3s=ie.has(3),ie.clear(),Ei}function me(Oe){const ze=[];if(Oe.shaderID?ze.push(Oe.shaderID):(ze.push(Oe.customVertexShaderID),ze.push(Oe.customFragmentShaderID)),Oe.defines!==void 0)for(const Le in Oe.defines)ze.push(Le),ze.push(Oe.defines[Le]);return Oe.isRawShaderMaterial===!1&&(Ce(ze,Oe),Ee(ze,Oe),ze.push(b.outputColorSpace)),ze.push(Oe.customProgramCacheKey),ze.join()}function Ce(Oe,ze){Oe.push(ze.precision),Oe.push(ze.outputColorSpace),Oe.push(ze.envMapMode),Oe.push(ze.envMapCubeUVHeight),Oe.push(ze.mapUv),Oe.push(ze.alphaMapUv),Oe.push(ze.lightMapUv),Oe.push(ze.aoMapUv),Oe.push(ze.bumpMapUv),Oe.push(ze.normalMapUv),Oe.push(ze.displacementMapUv),Oe.push(ze.emissiveMapUv),Oe.push(ze.metalnessMapUv),Oe.push(ze.roughnessMapUv),Oe.push(ze.anisotropyMapUv),Oe.push(ze.clearcoatMapUv),Oe.push(ze.clearcoatNormalMapUv),Oe.push(ze.clearcoatRoughnessMapUv),Oe.push(ze.iridescenceMapUv),Oe.push(ze.iridescenceThicknessMapUv),Oe.push(ze.sheenColorMapUv),Oe.push(ze.sheenRoughnessMapUv),Oe.push(ze.specularMapUv),Oe.push(ze.specularColorMapUv),Oe.push(ze.specularIntensityMapUv),Oe.push(ze.transmissionMapUv),Oe.push(ze.thicknessMapUv),Oe.push(ze.combine),Oe.push(ze.fogExp2),Oe.push(ze.sizeAttenuation),Oe.push(ze.morphTargetsCount),Oe.push(ze.morphAttributeCount),Oe.push(ze.numDirLights),Oe.push(ze.numPointLights),Oe.push(ze.numSpotLights),Oe.push(ze.numSpotLightMaps),Oe.push(ze.numHemiLights),Oe.push(ze.numRectAreaLights),Oe.push(ze.numDirLightShadows),Oe.push(ze.numPointLightShadows),Oe.push(ze.numSpotLightShadows),Oe.push(ze.numSpotLightShadowsWithMaps),Oe.push(ze.numLightProbes),Oe.push(ze.shadowMapType),Oe.push(ze.toneMapping),Oe.push(ze.numClippingPlanes),Oe.push(ze.numClipIntersection),Oe.push(ze.depthPacking)}function Ee(Oe,ze){te.disableAll(),ze.supportsVertexTextures&&te.enable(0),ze.instancing&&te.enable(1),ze.instancingColor&&te.enable(2),ze.instancingMorph&&te.enable(3),ze.matcap&&te.enable(4),ze.envMap&&te.enable(5),ze.normalMapObjectSpace&&te.enable(6),ze.normalMapTangentSpace&&te.enable(7),ze.clearcoat&&te.enable(8),ze.iridescence&&te.enable(9),ze.alphaTest&&te.enable(10),ze.vertexColors&&te.enable(11),ze.vertexAlphas&&te.enable(12),ze.vertexUv1s&&te.enable(13),ze.vertexUv2s&&te.enable(14),ze.vertexUv3s&&te.enable(15),ze.vertexTangents&&te.enable(16),ze.anisotropy&&te.enable(17),ze.alphaHash&&te.enable(18),ze.batching&&te.enable(19),ze.dispersion&&te.enable(20),ze.batchingColor&&te.enable(21),ze.gradientMap&&te.enable(22),Oe.push(te.mask),te.disableAll(),ze.fog&&te.enable(0),ze.useFog&&te.enable(1),ze.flatShading&&te.enable(2),ze.logarithmicDepthBuffer&&te.enable(3),ze.reversedDepthBuffer&&te.enable(4),ze.skinning&&te.enable(5),ze.morphTargets&&te.enable(6),ze.morphNormals&&te.enable(7),ze.morphColors&&te.enable(8),ze.premultipliedAlpha&&te.enable(9),ze.shadowMapEnabled&&te.enable(10),ze.doubleSided&&te.enable(11),ze.flipSided&&te.enable(12),ze.useDepthPacking&&te.enable(13),ze.dithering&&te.enable(14),ze.transmission&&te.enable(15),ze.sheen&&te.enable(16),ze.opaque&&te.enable(17),ze.pointsUvs&&te.enable(18),ze.decodeVideoTexture&&te.enable(19),ze.decodeVideoTextureEmissive&&te.enable(20),ze.alphaToCoverage&&te.enable(21),Oe.push(te.mask)}function Be(Oe){const ze=he[Oe.type];let Le;if(ze){const _e=nm[ze];Le=b5.clone(_e.uniforms)}else Le=Oe.uniforms;return Le}function Ne(Oe,ze){let Le;for(let _e=0,Et=ae.length;_e0?x.push(me):de.transparent===!0?E.push(me):y.push(me)}function ne(oe,le,de,he,ye,Ae){const me=ee(oe,le,de,he,ye,Ae);de.transmission>0?x.unshift(me):de.transparent===!0?E.unshift(me):y.unshift(me)}function ie(oe,le){y.length>1&&y.sort(oe||vG),x.length>1&&x.sort(le||CT),E.length>1&&E.sort(le||CT)}function ae(){for(let oe=a,le=b.length;oe=z.length?(ee=new PT,z.push(ee)):ee=z[E],ee}function y(){b=new WeakMap}return{get:a,dispose:y}}function yG(){const b={};return{get:function(a){if(b[a.id]!==void 0)return b[a.id];let y;switch(a.type){case"DirectionalLight":y={direction:new ot,color:new xi};break;case"SpotLight":y={position:new ot,direction:new ot,color:new xi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":y={position:new ot,color:new xi,distance:0,decay:0};break;case"HemisphereLight":y={direction:new ot,skyColor:new xi,groundColor:new xi};break;case"RectAreaLight":y={color:new xi,position:new ot,halfWidth:new ot,halfHeight:new ot};break}return b[a.id]=y,y}}}function xG(){const b={};return{get:function(a){if(b[a.id]!==void 0)return b[a.id];let y;switch(a.type){case"DirectionalLight":y={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tr};break;case"SpotLight":y={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tr};break;case"PointLight":y={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tr,shadowCameraNear:1,shadowCameraFar:1e3};break}return b[a.id]=y,y}}}let bG=0;function EG(b,a){return(a.castShadow?2:0)-(b.castShadow?2:0)+(a.map?1:0)-(b.map?1:0)}function wG(b){const a=new yG,y=xG(),x={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let ie=0;ie<9;ie++)x.probe.push(new ot);const E=new ot,z=new ls,ee=new ls;function te(ie){let ae=0,oe=0,le=0;for(let Oe=0;Oe<9;Oe++)x.probe[Oe].set(0,0,0);let de=0,he=0,ye=0,Ae=0,me=0,Ce=0,Ee=0,Be=0,Ne=0,Fe=0,ke=0;ie.sort(EG);for(let Oe=0,ze=ie.length;Oe0&&(b.has("OES_texture_float_linear")===!0?(x.rectAreaLTC1=Hi.LTC_FLOAT_1,x.rectAreaLTC2=Hi.LTC_FLOAT_2):(x.rectAreaLTC1=Hi.LTC_HALF_1,x.rectAreaLTC2=Hi.LTC_HALF_2)),x.ambient[0]=ae,x.ambient[1]=oe,x.ambient[2]=le;const Re=x.hash;(Re.directionalLength!==de||Re.pointLength!==he||Re.spotLength!==ye||Re.rectAreaLength!==Ae||Re.hemiLength!==me||Re.numDirectionalShadows!==Ce||Re.numPointShadows!==Ee||Re.numSpotShadows!==Be||Re.numSpotMaps!==Ne||Re.numLightProbes!==ke)&&(x.directional.length=de,x.spot.length=ye,x.rectArea.length=Ae,x.point.length=he,x.hemi.length=me,x.directionalShadow.length=Ce,x.directionalShadowMap.length=Ce,x.pointShadow.length=Ee,x.pointShadowMap.length=Ee,x.spotShadow.length=Be,x.spotShadowMap.length=Be,x.directionalShadowMatrix.length=Ce,x.pointShadowMatrix.length=Ee,x.spotLightMatrix.length=Be+Ne-Fe,x.spotLightMap.length=Ne,x.numSpotLightShadowsWithMaps=Fe,x.numLightProbes=ke,Re.directionalLength=de,Re.pointLength=he,Re.spotLength=ye,Re.rectAreaLength=Ae,Re.hemiLength=me,Re.numDirectionalShadows=Ce,Re.numPointShadows=Ee,Re.numSpotShadows=Be,Re.numSpotMaps=Ne,Re.numLightProbes=ke,x.version=bG++)}function ne(ie,ae){let oe=0,le=0,de=0,he=0,ye=0;const Ae=ae.matrixWorldInverse;for(let me=0,Ce=ie.length;me=ee.length?(te=new BT(b),ee.push(te)):te=ee[z],te}function x(){a=new WeakMap}return{get:y,dispose:x}}const PG=`void main() { gl_Position = vec4( position, 1.0 ); }`,BG=`uniform sampler2D shadow_pass; uniform vec2 resolution; uniform float radius; #include void main() { const float samples = float( VSM_SAMPLES ); float mean = 0.0; float squared_mean = 0.0; float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); float uvStart = samples <= 1.0 ? 0.0 : - 1.0; for ( float i = 0.0; i < samples; i ++ ) { float uvOffset = uvStart + i * uvStride; #ifdef HORIZONTAL_PASS vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); mean += distribution.x; squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; #else float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); mean += depth; squared_mean += depth * depth; #endif } mean = mean / samples; squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); }`;function SG(b,a,y){let x=new E0;const E=new tr,z=new tr,ee=new Ws,te=new pD({depthPacking:Ue}),ne=new mD,ie={},ae=y.maxTextureSize,oe={[yc]:co,[co]:yc,[eo]:eo},le=new fp({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new tr},radius:{value:4}},vertexShader:PG,fragmentShader:BG}),de=le.clone();de.defines.HORIZONTAL_PASS=1;const he=new Fa;he.setAttribute("position",new nl(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const ye=new Fo(he,le),Ae=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=mf;let me=this.type;this.render=function(Fe,ke,Re){if(Ae.enabled===!1||Ae.autoUpdate===!1&&Ae.needsUpdate===!1||Fe.length===0)return;const Oe=b.getRenderTarget(),ze=b.getActiveCubeFace(),Le=b.getActiveMipmapLevel(),_e=b.state;_e.setBlending(El),_e.buffers.depth.getReversed()?_e.buffers.color.setClear(0,0,0,0):_e.buffers.color.setClear(1,1,1,1),_e.buffers.depth.setTest(!0),_e.setScissorTest(!1);const Et=me!==Tu&&this.type===Tu,yt=me===Tu&&this.type!==Tu;for(let jt=0,tn=Fe.length;jtae||E.y>ae)&&(E.x>ae&&(z.x=Math.floor(ae/pt.x),E.x=z.x*pt.x,kt.mapSize.x=z.x),E.y>ae&&(z.y=Math.floor(ae/pt.y),E.y=z.y*pt.y,kt.mapSize.y=z.y)),kt.map===null||Et===!0||yt===!0){const Vt=this.type!==Tu?{minFilter:fo,magFilter:fo}:{};kt.map!==null&&kt.map.dispose(),kt.map=new Gg(E.x,E.y,Vt),kt.map.texture.name=cn.name+".shadowMap",kt.camera.updateProjectionMatrix()}b.setRenderTarget(kt.map),b.clear();const An=kt.getViewportCount();for(let Vt=0;Vt0||ke.map&&ke.alphaTest>0||ke.alphaToCoverage===!0){const _e=ze.uuid,Et=ke.uuid;let yt=ie[_e];yt===void 0&&(yt={},ie[_e]=yt);let jt=yt[Et];jt===void 0&&(jt=ze.clone(),yt[Et]=jt,ke.addEventListener("dispose",Ne)),ze=jt}if(ze.visible=ke.visible,ze.wireframe=ke.wireframe,Oe===Tu?ze.side=ke.shadowSide!==null?ke.shadowSide:ke.side:ze.side=ke.shadowSide!==null?ke.shadowSide:oe[ke.side],ze.alphaMap=ke.alphaMap,ze.alphaTest=ke.alphaToCoverage===!0?.5:ke.alphaTest,ze.map=ke.map,ze.clipShadows=ke.clipShadows,ze.clippingPlanes=ke.clippingPlanes,ze.clipIntersection=ke.clipIntersection,ze.displacementMap=ke.displacementMap,ze.displacementScale=ke.displacementScale,ze.displacementBias=ke.displacementBias,ze.wireframeLinewidth=ke.wireframeLinewidth,ze.linewidth=ke.linewidth,Re.isPointLight===!0&&ze.isMeshDistanceMaterial===!0){const _e=b.properties.get(ze);_e.light=Re}return ze}function Be(Fe,ke,Re,Oe,ze){if(Fe.visible===!1)return;if(Fe.layers.test(ke.layers)&&(Fe.isMesh||Fe.isLine||Fe.isPoints)&&(Fe.castShadow||Fe.receiveShadow&&ze===Tu)&&(!Fe.frustumCulled||x.intersectsObject(Fe))){Fe.modelViewMatrix.multiplyMatrices(Re.matrixWorldInverse,Fe.matrixWorld);const Et=a.update(Fe),yt=Fe.material;if(Array.isArray(yt)){const jt=Et.groups;for(let tn=0,cn=jt.length;tn=1):kt.indexOf("OpenGL ES")!==-1&&(cn=parseFloat(/^OpenGL ES (\d)/.exec(kt)[1]),tn=cn>=2);let pt=null,An={};const Vt=b.getParameter(b.SCISSOR_BOX),rn=b.getParameter(b.VIEWPORT),Bn=new Ws().fromArray(Vt),hr=new Ws().fromArray(rn);function bt(yn,ti,hi,ss){const Gr=new Uint8Array(4),Or=b.createTexture();b.bindTexture(yn,Or),b.texParameteri(yn,b.TEXTURE_MIN_FILTER,b.NEAREST),b.texParameteri(yn,b.TEXTURE_MAG_FILTER,b.NEAREST);for(let fs=0;fsTn||Pn.height>Tn)&&(or=Tn/Math.max(Pn.width,Pn.height)),or<1)if(typeof HTMLImageElement!="undefined"&&Pt instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&Pt instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&Pt instanceof ImageBitmap||typeof VideoFrame!="undefined"&&Pt instanceof VideoFrame){const Xn=Math.floor(or*Pn.width),Li=Math.floor(or*Pn.height);oe===void 0&&(oe=he(Xn,Li));const Kr=et?he(Xn,Li):oe;return Kr.width=Xn,Kr.height=Li,Kr.getContext("2d").drawImage(Pt,0,0,Xn,Li),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Pn.width+"x"+Pn.height+") to ("+Xn+"x"+Li+")."),Kr}else return"data"in Pt&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Pn.width+"x"+Pn.height+")."),Pt;return Pt}function Ae(Pt){return Pt.generateMipmaps}function me(Pt){b.generateMipmap(Pt)}function Ce(Pt){return Pt.isWebGLCubeRenderTarget?b.TEXTURE_CUBE_MAP:Pt.isWebGL3DRenderTarget?b.TEXTURE_3D:Pt.isWebGLArrayRenderTarget||Pt.isCompressedArrayTexture?b.TEXTURE_2D_ARRAY:b.TEXTURE_2D}function Ee(Pt,et,Tn,or,Pn=!1){if(Pt!==null){if(b[Pt]!==void 0)return b[Pt];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+Pt+"'")}let Xn=et;if(et===b.RED&&(Tn===b.FLOAT&&(Xn=b.R32F),Tn===b.HALF_FLOAT&&(Xn=b.R16F),Tn===b.UNSIGNED_BYTE&&(Xn=b.R8)),et===b.RED_INTEGER&&(Tn===b.UNSIGNED_BYTE&&(Xn=b.R8UI),Tn===b.UNSIGNED_SHORT&&(Xn=b.R16UI),Tn===b.UNSIGNED_INT&&(Xn=b.R32UI),Tn===b.BYTE&&(Xn=b.R8I),Tn===b.SHORT&&(Xn=b.R16I),Tn===b.INT&&(Xn=b.R32I)),et===b.RG&&(Tn===b.FLOAT&&(Xn=b.RG32F),Tn===b.HALF_FLOAT&&(Xn=b.RG16F),Tn===b.UNSIGNED_BYTE&&(Xn=b.RG8)),et===b.RG_INTEGER&&(Tn===b.UNSIGNED_BYTE&&(Xn=b.RG8UI),Tn===b.UNSIGNED_SHORT&&(Xn=b.RG16UI),Tn===b.UNSIGNED_INT&&(Xn=b.RG32UI),Tn===b.BYTE&&(Xn=b.RG8I),Tn===b.SHORT&&(Xn=b.RG16I),Tn===b.INT&&(Xn=b.RG32I)),et===b.RGB_INTEGER&&(Tn===b.UNSIGNED_BYTE&&(Xn=b.RGB8UI),Tn===b.UNSIGNED_SHORT&&(Xn=b.RGB16UI),Tn===b.UNSIGNED_INT&&(Xn=b.RGB32UI),Tn===b.BYTE&&(Xn=b.RGB8I),Tn===b.SHORT&&(Xn=b.RGB16I),Tn===b.INT&&(Xn=b.RGB32I)),et===b.RGBA_INTEGER&&(Tn===b.UNSIGNED_BYTE&&(Xn=b.RGBA8UI),Tn===b.UNSIGNED_SHORT&&(Xn=b.RGBA16UI),Tn===b.UNSIGNED_INT&&(Xn=b.RGBA32UI),Tn===b.BYTE&&(Xn=b.RGBA8I),Tn===b.SHORT&&(Xn=b.RGBA16I),Tn===b.INT&&(Xn=b.RGBA32I)),et===b.RGB&&Tn===b.UNSIGNED_INT_5_9_9_9_REV&&(Xn=b.RGB9_E5),et===b.RGBA){const Li=Pn?Sr:aa.getTransfer(or);Tn===b.FLOAT&&(Xn=b.RGBA32F),Tn===b.HALF_FLOAT&&(Xn=b.RGBA16F),Tn===b.UNSIGNED_BYTE&&(Xn=Li===On?b.SRGB8_ALPHA8:b.RGBA8),Tn===b.UNSIGNED_SHORT_4_4_4_4&&(Xn=b.RGBA4),Tn===b.UNSIGNED_SHORT_5_5_5_1&&(Xn=b.RGB5_A1)}return(Xn===b.R16F||Xn===b.R32F||Xn===b.RG16F||Xn===b.RG32F||Xn===b.RGBA16F||Xn===b.RGBA32F)&&a.get("EXT_color_buffer_float"),Xn}function Be(Pt,et){let Tn;return Pt?et===null||et===Ao||et===Ec?Tn=b.DEPTH24_STENCIL8:et===Vo?Tn=b.DEPTH32F_STENCIL8:et===qu&&(Tn=b.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):et===null||et===Ao||et===Ec?Tn=b.DEPTH_COMPONENT24:et===Vo?Tn=b.DEPTH_COMPONENT32F:et===qu&&(Tn=b.DEPTH_COMPONENT16),Tn}function Ne(Pt,et){return Ae(Pt)===!0||Pt.isFramebufferTexture&&Pt.minFilter!==fo&&Pt.minFilter!==Io?Math.log2(Math.max(et.width,et.height))+1:Pt.mipmaps!==void 0&&Pt.mipmaps.length>0?Pt.mipmaps.length:Pt.isCompressedTexture&&Array.isArray(Pt.image)?et.mipmaps.length:1}function Fe(Pt){const et=Pt.target;et.removeEventListener("dispose",Fe),Re(et),et.isVideoTexture&&ae.delete(et)}function ke(Pt){const et=Pt.target;et.removeEventListener("dispose",ke),ze(et)}function Re(Pt){const et=x.get(Pt);if(et.__webglInit===void 0)return;const Tn=Pt.source,or=le.get(Tn);if(or){const Pn=or[et.__cacheKey];Pn.usedTimes--,Pn.usedTimes===0&&Oe(Pt),Object.keys(or).length===0&&le.delete(Tn)}x.remove(Pt)}function Oe(Pt){const et=x.get(Pt);b.deleteTexture(et.__webglTexture);const Tn=Pt.source,or=le.get(Tn);delete or[et.__cacheKey],ee.memory.textures--}function ze(Pt){const et=x.get(Pt);if(Pt.depthTexture&&(Pt.depthTexture.dispose(),x.remove(Pt.depthTexture)),Pt.isWebGLCubeRenderTarget)for(let or=0;or<6;or++){if(Array.isArray(et.__webglFramebuffer[or]))for(let Pn=0;Pn=E.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+Pt+" texture units while this GPU supports only "+E.maxTextures),Le+=1,Pt}function yt(Pt){const et=[];return et.push(Pt.wrapS),et.push(Pt.wrapT),et.push(Pt.wrapR||0),et.push(Pt.magFilter),et.push(Pt.minFilter),et.push(Pt.anisotropy),et.push(Pt.internalFormat),et.push(Pt.format),et.push(Pt.type),et.push(Pt.generateMipmaps),et.push(Pt.premultiplyAlpha),et.push(Pt.flipY),et.push(Pt.unpackAlignment),et.push(Pt.colorSpace),et.join()}function jt(Pt,et){const Tn=x.get(Pt);if(Pt.isVideoTexture&&Jr(Pt),Pt.isRenderTargetTexture===!1&&Pt.isExternalTexture!==!0&&Pt.version>0&&Tn.__version!==Pt.version){const or=Pt.image;if(or===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(or.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{on(Tn,Pt,et);return}}else Pt.isExternalTexture&&(Tn.__webglTexture=Pt.sourceTexture?Pt.sourceTexture:null);y.bindTexture(b.TEXTURE_2D,Tn.__webglTexture,b.TEXTURE0+et)}function tn(Pt,et){const Tn=x.get(Pt);if(Pt.isRenderTargetTexture===!1&&Pt.version>0&&Tn.__version!==Pt.version){on(Tn,Pt,et);return}y.bindTexture(b.TEXTURE_2D_ARRAY,Tn.__webglTexture,b.TEXTURE0+et)}function cn(Pt,et){const Tn=x.get(Pt);if(Pt.isRenderTargetTexture===!1&&Pt.version>0&&Tn.__version!==Pt.version){on(Tn,Pt,et);return}y.bindTexture(b.TEXTURE_3D,Tn.__webglTexture,b.TEXTURE0+et)}function kt(Pt,et){const Tn=x.get(Pt);if(Pt.version>0&&Tn.__version!==Pt.version){dn(Tn,Pt,et);return}y.bindTexture(b.TEXTURE_CUBE_MAP,Tn.__webglTexture,b.TEXTURE0+et)}const pt={[Hd]:b.REPEAT,[Nu]:b.CLAMP_TO_EDGE,[bf]:b.MIRRORED_REPEAT},An={[fo]:b.NEAREST,[Ef]:b.NEAREST_MIPMAP_NEAREST,[mu]:b.NEAREST_MIPMAP_LINEAR,[Io]:b.LINEAR,[gd]:b.LINEAR_MIPMAP_NEAREST,[tu]:b.LINEAR_MIPMAP_LINEAR},Vt={[tl]:b.NEVER,[ve]:b.ALWAYS,[Go]:b.LESS,[Pf]:b.LEQUAL,[vu]:b.EQUAL,[ge]:b.GEQUAL,[Gd]:b.GREATER,[Nl]:b.NOTEQUAL};function rn(Pt,et){if(et.type===Vo&&a.has("OES_texture_float_linear")===!1&&(et.magFilter===Io||et.magFilter===gd||et.magFilter===mu||et.magFilter===tu||et.minFilter===Io||et.minFilter===gd||et.minFilter===mu||et.minFilter===tu)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),b.texParameteri(Pt,b.TEXTURE_WRAP_S,pt[et.wrapS]),b.texParameteri(Pt,b.TEXTURE_WRAP_T,pt[et.wrapT]),(Pt===b.TEXTURE_3D||Pt===b.TEXTURE_2D_ARRAY)&&b.texParameteri(Pt,b.TEXTURE_WRAP_R,pt[et.wrapR]),b.texParameteri(Pt,b.TEXTURE_MAG_FILTER,An[et.magFilter]),b.texParameteri(Pt,b.TEXTURE_MIN_FILTER,An[et.minFilter]),et.compareFunction&&(b.texParameteri(Pt,b.TEXTURE_COMPARE_MODE,b.COMPARE_REF_TO_TEXTURE),b.texParameteri(Pt,b.TEXTURE_COMPARE_FUNC,Vt[et.compareFunction])),a.has("EXT_texture_filter_anisotropic")===!0){if(et.magFilter===fo||et.minFilter!==mu&&et.minFilter!==tu||et.type===Vo&&a.has("OES_texture_float_linear")===!1)return;if(et.anisotropy>1||x.get(et).__currentAnisotropy){const Tn=a.get("EXT_texture_filter_anisotropic");b.texParameterf(Pt,Tn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(et.anisotropy,E.getMaxAnisotropy())),x.get(et).__currentAnisotropy=et.anisotropy}}}function Bn(Pt,et){let Tn=!1;Pt.__webglInit===void 0&&(Pt.__webglInit=!0,et.addEventListener("dispose",Fe));const or=et.source;let Pn=le.get(or);Pn===void 0&&(Pn={},le.set(or,Pn));const Xn=yt(et);if(Xn!==Pt.__cacheKey){Pn[Xn]===void 0&&(Pn[Xn]={texture:b.createTexture(),usedTimes:0},ee.memory.textures++,Tn=!0),Pn[Xn].usedTimes++;const Li=Pn[Pt.__cacheKey];Li!==void 0&&(Pn[Pt.__cacheKey].usedTimes--,Li.usedTimes===0&&Oe(et)),Pt.__cacheKey=Xn,Pt.__webglTexture=Pn[Xn].texture}return Tn}function hr(Pt,et,Tn){return Math.floor(Math.floor(Pt/Tn)/et)}function bt(Pt,et,Tn,or){const Xn=Pt.updateRanges;if(Xn.length===0)y.texSubImage2D(b.TEXTURE_2D,0,0,0,et.width,et.height,Tn,or,et.data);else{Xn.sort((Zr,Bi)=>Zr.start-Bi.start);let Li=0;for(let Zr=1;Zr0){yn&&ti&&y.texStorage2D(b.TEXTURE_2D,ss,Fi,_s[0].width,_s[0].height);for(let Gr=0,Or=_s.length;Gr0){const fs=UP(Br.width,Br.height,et.format,et.type);for(const yr of et.layerUpdates){const Ei=Br.data.subarray(yr*fs/Br.data.BYTES_PER_ELEMENT,(yr+1)*fs/Br.data.BYTES_PER_ELEMENT);y.compressedTexSubImage3D(b.TEXTURE_2D_ARRAY,Gr,0,0,yr,Br.width,Br.height,1,Bi,Ei)}et.clearLayerUpdates()}else y.compressedTexSubImage3D(b.TEXTURE_2D_ARRAY,Gr,0,0,0,Br.width,Br.height,Zr.depth,Bi,Br.data)}else y.compressedTexImage3D(b.TEXTURE_2D_ARRAY,Gr,Fi,Br.width,Br.height,Zr.depth,0,Br.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else yn?hi&&y.texSubImage3D(b.TEXTURE_2D_ARRAY,Gr,0,0,0,Br.width,Br.height,Zr.depth,Bi,gs,Br.data):y.texImage3D(b.TEXTURE_2D_ARRAY,Gr,Fi,Br.width,Br.height,Zr.depth,0,Bi,gs,Br.data)}else{yn&&ti&&y.texStorage2D(b.TEXTURE_2D,ss,Fi,_s[0].width,_s[0].height);for(let Gr=0,Or=_s.length;Gr0){const Gr=UP(Zr.width,Zr.height,et.format,et.type);for(const Or of et.layerUpdates){const fs=Zr.data.subarray(Or*Gr/Zr.data.BYTES_PER_ELEMENT,(Or+1)*Gr/Zr.data.BYTES_PER_ELEMENT);y.texSubImage3D(b.TEXTURE_2D_ARRAY,0,0,0,Or,Zr.width,Zr.height,1,Bi,gs,fs)}et.clearLayerUpdates()}else y.texSubImage3D(b.TEXTURE_2D_ARRAY,0,0,0,0,Zr.width,Zr.height,Zr.depth,Bi,gs,Zr.data)}else y.texImage3D(b.TEXTURE_2D_ARRAY,0,Fi,Zr.width,Zr.height,Zr.depth,0,Bi,gs,Zr.data);else if(et.isData3DTexture)yn?(ti&&y.texStorage3D(b.TEXTURE_3D,ss,Fi,Zr.width,Zr.height,Zr.depth),hi&&y.texSubImage3D(b.TEXTURE_3D,0,0,0,0,Zr.width,Zr.height,Zr.depth,Bi,gs,Zr.data)):y.texImage3D(b.TEXTURE_3D,0,Fi,Zr.width,Zr.height,Zr.depth,0,Bi,gs,Zr.data);else if(et.isFramebufferTexture){if(ti)if(yn)y.texStorage2D(b.TEXTURE_2D,ss,Fi,Zr.width,Zr.height);else{let Gr=Zr.width,Or=Zr.height;for(let fs=0;fs>=1,Or>>=1}}else if(_s.length>0){if(yn&&ti){const Gr=Es(_s[0]);y.texStorage2D(b.TEXTURE_2D,ss,Fi,Gr.width,Gr.height)}for(let Gr=0,Or=_s.length;Gr0&&ss++;const Or=Es(Bi[0]);y.texStorage2D(b.TEXTURE_CUBE_MAP,ss,_s,Or.width,Or.height)}for(let Or=0;Or<6;Or++)if(Zr){yn?hi&&y.texSubImage2D(b.TEXTURE_CUBE_MAP_POSITIVE_X+Or,0,0,0,Bi[Or].width,Bi[Or].height,Fi,Br,Bi[Or].data):y.texImage2D(b.TEXTURE_CUBE_MAP_POSITIVE_X+Or,0,_s,Bi[Or].width,Bi[Or].height,0,Fi,Br,Bi[Or].data);for(let fs=0;fs>Xn),gs=Math.max(1,et.height>>Xn);Pn===b.TEXTURE_3D||Pn===b.TEXTURE_2D_ARRAY?y.texImage3D(Pn,Xn,es,Bi,gs,et.depth,0,Li,Kr,null):y.texImage2D(Pn,Xn,es,Bi,gs,0,Li,Kr,null)}y.bindFramebuffer(b.FRAMEBUFFER,Pt),kr(et)?te.framebufferTexture2DMultisampleEXT(b.FRAMEBUFFER,or,Pn,Zr.__webglTexture,0,Vr(et)):(Pn===b.TEXTURE_2D||Pn>=b.TEXTURE_CUBE_MAP_POSITIVE_X&&Pn<=b.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&b.framebufferTexture2D(b.FRAMEBUFFER,or,Pn,Zr.__webglTexture,Xn),y.bindFramebuffer(b.FRAMEBUFFER,null)}function Un(Pt,et,Tn){if(b.bindRenderbuffer(b.RENDERBUFFER,Pt),et.depthBuffer){const or=et.depthTexture,Pn=or&&or.isDepthTexture?or.type:null,Xn=Be(et.stencilBuffer,Pn),Li=et.stencilBuffer?b.DEPTH_STENCIL_ATTACHMENT:b.DEPTH_ATTACHMENT,Kr=Vr(et);kr(et)?te.renderbufferStorageMultisampleEXT(b.RENDERBUFFER,Kr,Xn,et.width,et.height):Tn?b.renderbufferStorageMultisample(b.RENDERBUFFER,Kr,Xn,et.width,et.height):b.renderbufferStorage(b.RENDERBUFFER,Xn,et.width,et.height),b.framebufferRenderbuffer(b.FRAMEBUFFER,Li,b.RENDERBUFFER,Pt)}else{const or=et.textures;for(let Pn=0;Pn{delete et.__boundDepthTexture,delete et.__depthDisposeCallback,or.removeEventListener("dispose",Pn)};or.addEventListener("dispose",Pn),et.__depthDisposeCallback=Pn}et.__boundDepthTexture=or}if(Pt.depthTexture&&!et.__autoAllocateDepthBuffer){if(Tn)throw new Error("target.depthTexture not supported in Cube render targets");const or=Pt.texture.mipmaps;or&&or.length>0?Kn(et.__webglFramebuffer[0],Pt):Kn(et.__webglFramebuffer,Pt)}else if(Tn){et.__webglDepthbuffer=[];for(let or=0;or<6;or++)if(y.bindFramebuffer(b.FRAMEBUFFER,et.__webglFramebuffer[or]),et.__webglDepthbuffer[or]===void 0)et.__webglDepthbuffer[or]=b.createRenderbuffer(),Un(et.__webglDepthbuffer[or],Pt,!1);else{const Pn=Pt.stencilBuffer?b.DEPTH_STENCIL_ATTACHMENT:b.DEPTH_ATTACHMENT,Xn=et.__webglDepthbuffer[or];b.bindRenderbuffer(b.RENDERBUFFER,Xn),b.framebufferRenderbuffer(b.FRAMEBUFFER,Pn,b.RENDERBUFFER,Xn)}}else{const or=Pt.texture.mipmaps;if(or&&or.length>0?y.bindFramebuffer(b.FRAMEBUFFER,et.__webglFramebuffer[0]):y.bindFramebuffer(b.FRAMEBUFFER,et.__webglFramebuffer),et.__webglDepthbuffer===void 0)et.__webglDepthbuffer=b.createRenderbuffer(),Un(et.__webglDepthbuffer,Pt,!1);else{const Pn=Pt.stencilBuffer?b.DEPTH_STENCIL_ATTACHMENT:b.DEPTH_ATTACHMENT,Xn=et.__webglDepthbuffer;b.bindRenderbuffer(b.RENDERBUFFER,Xn),b.framebufferRenderbuffer(b.FRAMEBUFFER,Pn,b.RENDERBUFFER,Xn)}}y.bindFramebuffer(b.FRAMEBUFFER,null)}function Xr(Pt,et,Tn){const or=x.get(Pt);et!==void 0&&Qn(or.__webglFramebuffer,Pt,Pt.texture,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,0),Tn!==void 0&&Nr(Pt)}function Ht(Pt){const et=Pt.texture,Tn=x.get(Pt),or=x.get(et);Pt.addEventListener("dispose",ke);const Pn=Pt.textures,Xn=Pt.isWebGLCubeRenderTarget===!0,Li=Pn.length>1;if(Li||(or.__webglTexture===void 0&&(or.__webglTexture=b.createTexture()),or.__version=et.version,ee.memory.textures++),Xn){Tn.__webglFramebuffer=[];for(let Kr=0;Kr<6;Kr++)if(et.mipmaps&&et.mipmaps.length>0){Tn.__webglFramebuffer[Kr]=[];for(let es=0;es0){Tn.__webglFramebuffer=[];for(let Kr=0;Kr0&&kr(Pt)===!1){Tn.__webglMultisampledFramebuffer=b.createFramebuffer(),Tn.__webglColorRenderbuffer=[],y.bindFramebuffer(b.FRAMEBUFFER,Tn.__webglMultisampledFramebuffer);for(let Kr=0;Kr0)for(let es=0;es0)for(let es=0;es0){if(kr(Pt)===!1){const et=Pt.textures,Tn=Pt.width,or=Pt.height;let Pn=b.COLOR_BUFFER_BIT;const Xn=Pt.stencilBuffer?b.DEPTH_STENCIL_ATTACHMENT:b.DEPTH_ATTACHMENT,Li=x.get(Pt),Kr=et.length>1;if(Kr)for(let qi=0;qi0?y.bindFramebuffer(b.DRAW_FRAMEBUFFER,Li.__webglFramebuffer[0]):y.bindFramebuffer(b.DRAW_FRAMEBUFFER,Li.__webglFramebuffer);for(let qi=0;qi0&&a.has("WEBGL_multisampled_render_to_texture")===!0&&et.__useRenderToTexture!==!1}function Jr(Pt){const et=ee.render.frame;ae.get(Pt)!==et&&(ae.set(Pt,et),Pt.update())}function ms(Pt,et){const Tn=Pt.colorSpace,or=Pt.format,Pn=Pt.type;return Pt.isCompressedTexture===!0||Pt.isVideoTexture===!0||Tn!==sr&&Tn!==vn&&(aa.getTransfer(Tn)===On?(or!==yo||Pn!==jo)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",Tn)),et}function Es(Pt){return typeof HTMLImageElement!="undefined"&&Pt instanceof HTMLImageElement?(ie.width=Pt.naturalWidth||Pt.width,ie.height=Pt.naturalHeight||Pt.height):typeof VideoFrame!="undefined"&&Pt instanceof VideoFrame?(ie.width=Pt.displayWidth,ie.height=Pt.displayHeight):(ie.width=Pt.width,ie.height=Pt.height),ie}this.allocateTextureUnit=Et,this.resetTextureUnits=_e,this.setTexture2D=jt,this.setTexture2DArray=tn,this.setTexture3D=cn,this.setTextureCube=kt,this.rebindTextures=Xr,this.setupRenderTarget=Ht,this.updateRenderTargetMipmap=En,this.updateMultisampleRenderTarget=cr,this.setupDepthRenderbuffer=Nr,this.setupFrameBufferTexture=Qn,this.useMultisampledRTT=kr}function IG(b,a){function y(x,E=vn){let z;const ee=aa.getTransfer(E);if(x===jo)return b.UNSIGNED_BYTE;if(x===Om)return b.UNSIGNED_SHORT_4_4_4_4;if(x===Ug)return b.UNSIGNED_SHORT_5_5_5_1;if(x===jp)return b.UNSIGNED_INT_5_9_9_9_REV;if(x===Zh)return b.BYTE;if(x===Yh)return b.SHORT;if(x===qu)return b.UNSIGNED_SHORT;if(x===Vl)return b.INT;if(x===Ao)return b.UNSIGNED_INT;if(x===Vo)return b.FLOAT;if(x===vl)return b.HALF_FLOAT;if(x===Mv)return b.ALPHA;if(x===Jh)return b.RGB;if(x===yo)return b.RGBA;if(x===gu)return b.DEPTH_COMPONENT;if(x===Rc)return b.DEPTH_STENCIL;if(x===Kh)return b.RED;if(x===Ud)return b.RED_INTEGER;if(x===jd)return b.RG;if(x===Vp)return b.RG_INTEGER;if(x===qh)return b.RGBA_INTEGER;if(x===_h||x===Kc||x===wf||x===vd)if(ee===On)if(z=a.get("WEBGL_compressed_texture_s3tc_srgb"),z!==null){if(x===_h)return z.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(x===Kc)return z.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(x===wf)return z.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(x===vd)return z.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(z=a.get("WEBGL_compressed_texture_s3tc"),z!==null){if(x===_h)return z.COMPRESSED_RGB_S3TC_DXT1_EXT;if(x===Kc)return z.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(x===wf)return z.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(x===vd)return z.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(x===Gp||x===Rm||x===zm||x===Vd)if(z=a.get("WEBGL_compressed_texture_pvrtc"),z!==null){if(x===Gp)return z.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(x===Rm)return z.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(x===zm)return z.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(x===Vd)return z.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(x===oh||x===Cf||x===Xp)if(z=a.get("WEBGL_compressed_texture_etc"),z!==null){if(x===oh||x===Cf)return ee===On?z.COMPRESSED_SRGB8_ETC2:z.COMPRESSED_RGB8_ETC2;if(x===Xp)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:z.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(x===Wp||x===$h||x===po||x===ep||x===lh||x===Ad||x===_u||x===yd||x===uh||x===tp||x===np||x===rp||x===ip||x===sp)if(z=a.get("WEBGL_compressed_texture_astc"),z!==null){if(x===Wp)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:z.COMPRESSED_RGBA_ASTC_4x4_KHR;if(x===$h)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:z.COMPRESSED_RGBA_ASTC_5x4_KHR;if(x===po)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:z.COMPRESSED_RGBA_ASTC_5x5_KHR;if(x===ep)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:z.COMPRESSED_RGBA_ASTC_6x5_KHR;if(x===lh)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:z.COMPRESSED_RGBA_ASTC_6x6_KHR;if(x===Ad)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:z.COMPRESSED_RGBA_ASTC_8x5_KHR;if(x===_u)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:z.COMPRESSED_RGBA_ASTC_8x6_KHR;if(x===yd)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:z.COMPRESSED_RGBA_ASTC_8x8_KHR;if(x===uh)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:z.COMPRESSED_RGBA_ASTC_10x5_KHR;if(x===tp)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:z.COMPRESSED_RGBA_ASTC_10x6_KHR;if(x===np)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:z.COMPRESSED_RGBA_ASTC_10x8_KHR;if(x===rp)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:z.COMPRESSED_RGBA_ASTC_10x10_KHR;if(x===ip)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:z.COMPRESSED_RGBA_ASTC_12x10_KHR;if(x===sp)return ee===On?z.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:z.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(x===ap||x===Qp||x===op)if(z=a.get("EXT_texture_compression_bptc"),z!==null){if(x===ap)return ee===On?z.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:z.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(x===Qp)return z.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(x===op)return z.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(x===Qa||x===Zp||x===lp||x===xd)if(z=a.get("EXT_texture_compression_rgtc"),z!==null){if(x===ap)return z.COMPRESSED_RED_RGTC1_EXT;if(x===Zp)return z.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(x===lp)return z.COMPRESSED_RED_GREEN_RGTC2_EXT;if(x===xd)return z.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return x===Ec?b.UNSIGNED_INT_24_8:b[x]!==void 0?b[x]:null}return{convert:y}}class ST extends yu{constructor(a=null){super(),this.sourceTexture=a,this.isExternalTexture=!0}}const FG=` void main() { gl_Position = vec4( position, 1.0 ); }`,NG=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; void main() { vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); if ( coord.x >= 1.0 ) { gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; } else { gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; } }`;class LG{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(a,y){if(this.texture===null){const x=new ST(a.texture);(a.depthNear!==y.depthNear||a.depthFar!==y.depthFar)&&(this.depthNear=a.depthNear,this.depthFar=a.depthFar),this.texture=x}}getMesh(a){if(this.texture!==null&&this.mesh===null){const y=a.cameras[0].viewport,x=new fp({vertexShader:FG,fragmentShader:NG,uniforms:{depthColor:{value:this.texture},depthWidth:{value:y.z},depthHeight:{value:y.w}}});this.mesh=new Fo(new B0(20,20),x)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class OG extends li{constructor(a,y){super();const x=this;let E=null,z=1,ee=null,te="local-floor",ne=1,ie=null,ae=null,oe=null,le=null,de=null,he=null;const ye=new LG,Ae={},me=y.getContextAttributes();let Ce=null,Ee=null;const Be=[],Ne=[],Fe=new tr;let ke=null;const Re=new xu;Re.viewport=new Ws;const Oe=new xu;Oe.viewport=new Ws;const ze=[Re,Oe],Le=new OD;let _e=null,Et=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(bt){let on=Be[bt];return on===void 0&&(on=new yE,Be[bt]=on),on.getTargetRaySpace()},this.getControllerGrip=function(bt){let on=Be[bt];return on===void 0&&(on=new yE,Be[bt]=on),on.getGripSpace()},this.getHand=function(bt){let on=Be[bt];return on===void 0&&(on=new yE,Be[bt]=on),on.getHandSpace()};function yt(bt){const on=Ne.indexOf(bt.inputSource);if(on===-1)return;const dn=Be[on];dn!==void 0&&(dn.update(bt.inputSource,bt.frame,ie||ee),dn.dispatchEvent({type:bt.type,data:bt.inputSource}))}function jt(){E.removeEventListener("select",yt),E.removeEventListener("selectstart",yt),E.removeEventListener("selectend",yt),E.removeEventListener("squeeze",yt),E.removeEventListener("squeezestart",yt),E.removeEventListener("squeezeend",yt),E.removeEventListener("end",jt),E.removeEventListener("inputsourceschange",tn);for(let bt=0;bt=0&&(Ne[Qn]=null,Be[Qn].disconnect(dn))}for(let on=0;on=Ne.length){Ne.push(dn),Qn=Kn;break}else if(Ne[Kn]===null){Ne[Kn]=dn,Qn=Kn;break}if(Qn===-1)break}const Un=Be[Qn];Un&&Un.connect(dn)}}const cn=new ot,kt=new ot;function pt(bt,on,dn){cn.setFromMatrixPosition(on.matrixWorld),kt.setFromMatrixPosition(dn.matrixWorld);const Qn=cn.distanceTo(kt),Un=on.projectionMatrix.elements,Kn=dn.projectionMatrix.elements,Nr=Un[14]/(Un[10]-1),Xr=Un[14]/(Un[10]+1),Ht=(Un[9]+1)/Un[5],En=(Un[9]-1)/Un[5],qn=(Un[8]-1)/Un[0],vr=(Kn[8]+1)/Kn[0],cr=Nr*qn,Vr=Nr*vr,kr=Qn/(-qn+vr),Jr=kr*-qn;if(on.matrixWorld.decompose(bt.position,bt.quaternion,bt.scale),bt.translateX(Jr),bt.translateZ(kr),bt.matrixWorld.compose(bt.position,bt.quaternion,bt.scale),bt.matrixWorldInverse.copy(bt.matrixWorld).invert(),Un[10]===-1)bt.projectionMatrix.copy(on.projectionMatrix),bt.projectionMatrixInverse.copy(on.projectionMatrixInverse);else{const ms=Nr+kr,Es=Xr+kr,Pt=cr-Jr,et=Vr+(Qn-Jr),Tn=Ht*Xr/Es*ms,or=En*Xr/Es*ms;bt.projectionMatrix.makePerspective(Pt,et,Tn,or,ms,Es),bt.projectionMatrixInverse.copy(bt.projectionMatrix).invert()}}function An(bt,on){on===null?bt.matrixWorld.copy(bt.matrix):bt.matrixWorld.multiplyMatrices(on.matrixWorld,bt.matrix),bt.matrixWorldInverse.copy(bt.matrixWorld).invert()}this.updateCamera=function(bt){if(E===null)return;let on=bt.near,dn=bt.far;ye.texture!==null&&(ye.depthNear>0&&(on=ye.depthNear),ye.depthFar>0&&(dn=ye.depthFar)),Le.near=Oe.near=Re.near=on,Le.far=Oe.far=Re.far=dn,(_e!==Le.near||Et!==Le.far)&&(E.updateRenderState({depthNear:Le.near,depthFar:Le.far}),_e=Le.near,Et=Le.far),Le.layers.mask=bt.layers.mask|6,Re.layers.mask=Le.layers.mask&3,Oe.layers.mask=Le.layers.mask&5;const Qn=bt.parent,Un=Le.cameras;An(Le,Qn);for(let Kn=0;Kn0&&(Ae.alphaTest.value=me.alphaTest);const Ce=a.get(me),Ee=Ce.envMap,Be=Ce.envMapRotation;Ee&&(Ae.envMap.value=Ee,tA.copy(Be),tA.x*=-1,tA.y*=-1,tA.z*=-1,Ee.isCubeTexture&&Ee.isRenderTargetTexture===!1&&(tA.y*=-1,tA.z*=-1),Ae.envMapRotation.value.setFromMatrix4(RG.makeRotationFromEuler(tA)),Ae.flipEnvMap.value=Ee.isCubeTexture&&Ee.isRenderTargetTexture===!1?-1:1,Ae.reflectivity.value=me.reflectivity,Ae.ior.value=me.ior,Ae.refractionRatio.value=me.refractionRatio),me.lightMap&&(Ae.lightMap.value=me.lightMap,Ae.lightMapIntensity.value=me.lightMapIntensity,y(me.lightMap,Ae.lightMapTransform)),me.aoMap&&(Ae.aoMap.value=me.aoMap,Ae.aoMapIntensity.value=me.aoMapIntensity,y(me.aoMap,Ae.aoMapTransform))}function ee(Ae,me){Ae.diffuse.value.copy(me.color),Ae.opacity.value=me.opacity,me.map&&(Ae.map.value=me.map,y(me.map,Ae.mapTransform))}function te(Ae,me){Ae.dashSize.value=me.dashSize,Ae.totalSize.value=me.dashSize+me.gapSize,Ae.scale.value=me.scale}function ne(Ae,me,Ce,Ee){Ae.diffuse.value.copy(me.color),Ae.opacity.value=me.opacity,Ae.size.value=me.size*Ce,Ae.scale.value=Ee*.5,me.map&&(Ae.map.value=me.map,y(me.map,Ae.uvTransform)),me.alphaMap&&(Ae.alphaMap.value=me.alphaMap,y(me.alphaMap,Ae.alphaMapTransform)),me.alphaTest>0&&(Ae.alphaTest.value=me.alphaTest)}function ie(Ae,me){Ae.diffuse.value.copy(me.color),Ae.opacity.value=me.opacity,Ae.rotation.value=me.rotation,me.map&&(Ae.map.value=me.map,y(me.map,Ae.mapTransform)),me.alphaMap&&(Ae.alphaMap.value=me.alphaMap,y(me.alphaMap,Ae.alphaMapTransform)),me.alphaTest>0&&(Ae.alphaTest.value=me.alphaTest)}function ae(Ae,me){Ae.specular.value.copy(me.specular),Ae.shininess.value=Math.max(me.shininess,1e-4)}function oe(Ae,me){me.gradientMap&&(Ae.gradientMap.value=me.gradientMap)}function le(Ae,me){Ae.metalness.value=me.metalness,me.metalnessMap&&(Ae.metalnessMap.value=me.metalnessMap,y(me.metalnessMap,Ae.metalnessMapTransform)),Ae.roughness.value=me.roughness,me.roughnessMap&&(Ae.roughnessMap.value=me.roughnessMap,y(me.roughnessMap,Ae.roughnessMapTransform)),me.envMap&&(Ae.envMapIntensity.value=me.envMapIntensity)}function de(Ae,me,Ce){Ae.ior.value=me.ior,me.sheen>0&&(Ae.sheenColor.value.copy(me.sheenColor).multiplyScalar(me.sheen),Ae.sheenRoughness.value=me.sheenRoughness,me.sheenColorMap&&(Ae.sheenColorMap.value=me.sheenColorMap,y(me.sheenColorMap,Ae.sheenColorMapTransform)),me.sheenRoughnessMap&&(Ae.sheenRoughnessMap.value=me.sheenRoughnessMap,y(me.sheenRoughnessMap,Ae.sheenRoughnessMapTransform))),me.clearcoat>0&&(Ae.clearcoat.value=me.clearcoat,Ae.clearcoatRoughness.value=me.clearcoatRoughness,me.clearcoatMap&&(Ae.clearcoatMap.value=me.clearcoatMap,y(me.clearcoatMap,Ae.clearcoatMapTransform)),me.clearcoatRoughnessMap&&(Ae.clearcoatRoughnessMap.value=me.clearcoatRoughnessMap,y(me.clearcoatRoughnessMap,Ae.clearcoatRoughnessMapTransform)),me.clearcoatNormalMap&&(Ae.clearcoatNormalMap.value=me.clearcoatNormalMap,y(me.clearcoatNormalMap,Ae.clearcoatNormalMapTransform),Ae.clearcoatNormalScale.value.copy(me.clearcoatNormalScale),me.side===co&&Ae.clearcoatNormalScale.value.negate())),me.dispersion>0&&(Ae.dispersion.value=me.dispersion),me.iridescence>0&&(Ae.iridescence.value=me.iridescence,Ae.iridescenceIOR.value=me.iridescenceIOR,Ae.iridescenceThicknessMinimum.value=me.iridescenceThicknessRange[0],Ae.iridescenceThicknessMaximum.value=me.iridescenceThicknessRange[1],me.iridescenceMap&&(Ae.iridescenceMap.value=me.iridescenceMap,y(me.iridescenceMap,Ae.iridescenceMapTransform)),me.iridescenceThicknessMap&&(Ae.iridescenceThicknessMap.value=me.iridescenceThicknessMap,y(me.iridescenceThicknessMap,Ae.iridescenceThicknessMapTransform))),me.transmission>0&&(Ae.transmission.value=me.transmission,Ae.transmissionSamplerMap.value=Ce.texture,Ae.transmissionSamplerSize.value.set(Ce.width,Ce.height),me.transmissionMap&&(Ae.transmissionMap.value=me.transmissionMap,y(me.transmissionMap,Ae.transmissionMapTransform)),Ae.thickness.value=me.thickness,me.thicknessMap&&(Ae.thicknessMap.value=me.thicknessMap,y(me.thicknessMap,Ae.thicknessMapTransform)),Ae.attenuationDistance.value=me.attenuationDistance,Ae.attenuationColor.value.copy(me.attenuationColor)),me.anisotropy>0&&(Ae.anisotropyVector.value.set(me.anisotropy*Math.cos(me.anisotropyRotation),me.anisotropy*Math.sin(me.anisotropyRotation)),me.anisotropyMap&&(Ae.anisotropyMap.value=me.anisotropyMap,y(me.anisotropyMap,Ae.anisotropyMapTransform))),Ae.specularIntensity.value=me.specularIntensity,Ae.specularColor.value.copy(me.specularColor),me.specularColorMap&&(Ae.specularColorMap.value=me.specularColorMap,y(me.specularColorMap,Ae.specularColorMapTransform)),me.specularIntensityMap&&(Ae.specularIntensityMap.value=me.specularIntensityMap,y(me.specularIntensityMap,Ae.specularIntensityMapTransform))}function he(Ae,me){me.matcap&&(Ae.matcap.value=me.matcap)}function ye(Ae,me){const Ce=a.get(me).light;Ae.referencePosition.value.setFromMatrixPosition(Ce.matrixWorld),Ae.nearDistance.value=Ce.shadow.camera.near,Ae.farDistance.value=Ce.shadow.camera.far}return{refreshFogUniforms:x,refreshMaterialUniforms:E}}function kG(b,a,y,x){let E={},z={},ee=[];const te=b.getParameter(b.MAX_UNIFORM_BUFFER_BINDINGS);function ne(Ce,Ee){const Be=Ee.program;x.uniformBlockBinding(Ce,Be)}function ie(Ce,Ee){let Be=E[Ce.id];Be===void 0&&(he(Ce),Be=ae(Ce),E[Ce.id]=Be,Ce.addEventListener("dispose",Ae));const Ne=Ee.program;x.updateUBOMapping(Ce,Ne);const Fe=a.render.frame;z[Ce.id]!==Fe&&(le(Ce),z[Ce.id]=Fe)}function ae(Ce){const Ee=oe();Ce.__bindingPointIndex=Ee;const Be=b.createBuffer(),Ne=Ce.__size,Fe=Ce.usage;return b.bindBuffer(b.UNIFORM_BUFFER,Be),b.bufferData(b.UNIFORM_BUFFER,Ne,Fe),b.bindBuffer(b.UNIFORM_BUFFER,null),b.bindBufferBase(b.UNIFORM_BUFFER,Ee,Be),Be}function oe(){for(let Ce=0;Ce0&&(Be+=Ne-Fe),Ce.__size=Be,Ce.__cache={},this}function ye(Ce){const Ee={boundary:0,storage:0};return typeof Ce=="number"||typeof Ce=="boolean"?(Ee.boundary=4,Ee.storage=4):Ce.isVector2?(Ee.boundary=8,Ee.storage=8):Ce.isVector3||Ce.isColor?(Ee.boundary=16,Ee.storage=12):Ce.isVector4?(Ee.boundary=16,Ee.storage=16):Ce.isMatrix3?(Ee.boundary=48,Ee.storage=48):Ce.isMatrix4?(Ee.boundary=64,Ee.storage=64):Ce.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",Ce),Ee}function Ae(Ce){const Ee=Ce.target;Ee.removeEventListener("dispose",Ae);const Be=ee.indexOf(Ee.__bindingPointIndex);ee.splice(Be,1),b.deleteBuffer(E[Ee.id]),delete E[Ee.id],delete z[Ee.id]}function me(){for(const Ce in E)b.deleteBuffer(E[Ce]);ee=[],E={},z={}}return{bind:ne,update:ie,dispose:me}}class HG{constructor(a={}){const{canvas:y=t0(),context:x=null,depth:E=!0,stencil:z=!1,alpha:ee=!1,antialias:te=!1,premultipliedAlpha:ne=!0,preserveDrawingBuffer:ie=!1,powerPreference:ae="default",failIfMajorPerformanceCaveat:oe=!1,reversedDepthBuffer:le=!1}=a;this.isWebGLRenderer=!0;let de;if(x!==null){if(typeof WebGLRenderingContext!="undefined"&&x instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");de=x.getContextAttributes().alpha}else de=ee;const he=new Uint32Array(4),ye=new Int32Array(4);let Ae=null,me=null;const Ce=[],Ee=[];this.domElement=y,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=bc,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const Be=this;let Ne=!1;this._outputColorSpace=nn;let Fe=0,ke=0,Re=null,Oe=-1,ze=null;const Le=new Ws,_e=new Ws;let Et=null;const yt=new xi(0);let jt=0,tn=y.width,cn=y.height,kt=1,pt=null,An=null;const Vt=new Ws(0,0,tn,cn),rn=new Ws(0,0,tn,cn);let Bn=!1;const hr=new E0;let bt=!1,on=!1;const dn=new ls,Qn=new ot,Un=new Ws,Kn={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Nr=!1;function Xr(){return Re===null?kt:1}let Ht=x;function En(dt,Dn){return y.getContext(dt,Dn)}try{const dt={alpha:!0,depth:E,stencil:z,antialias:te,premultipliedAlpha:ne,preserveDrawingBuffer:ie,powerPreference:ae,failIfMajorPerformanceCaveat:oe};if("setAttribute"in y&&y.setAttribute("data-engine",`three.js r${pd}`),y.addEventListener("webglcontextlost",hi,!1),y.addEventListener("webglcontextrestored",ss,!1),y.addEventListener("webglcontextcreationerror",Gr,!1),Ht===null){const Dn="webgl2";if(Ht=En(Dn,dt),Ht===null)throw En(Dn)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(dt){throw console.error("THREE.WebGLRenderer: "+dt.message),dt}let qn,vr,cr,Vr,kr,Jr,ms,Es,Pt,et,Tn,or,Pn,Xn,Li,Kr,es,qi,Zr,Bi,gs,Fi,Br,_s;function yn(){qn=new Jj(Ht),qn.init(),Fi=new IG(Ht,qn),vr=new Vj(Ht,qn,a,Fi),cr=new DG(Ht,qn),vr.reversedDepthBuffer&&le&&cr.buffers.depth.setReversed(!0),Vr=new _j(Ht),kr=new gG,Jr=new TG(Ht,qn,cr,kr,vr,Fi,Vr),ms=new Xj(Be),Es=new Yj(Be),Pt=new kH(Ht),Br=new Uj(Ht,Pt),et=new Kj(Ht,Pt,Vr,Br),Tn=new eV(Ht,et,Pt,Vr),Zr=new $j(Ht,vr,Jr),Kr=new Gj(kr),or=new mG(Be,ms,Es,qn,vr,Br,Kr),Pn=new zG(Be,kr),Xn=new AG,Li=new CG(qn),qi=new Hj(Be,ms,Es,cr,Tn,de,ne),es=new SG(Be,Tn,vr),_s=new kG(Ht,Vr,vr,cr),Bi=new jj(Ht,qn,Vr),gs=new qj(Ht,qn,Vr),Vr.programs=or.programs,Be.capabilities=vr,Be.extensions=qn,Be.properties=kr,Be.renderLists=Xn,Be.shadowMap=es,Be.state=cr,Be.info=Vr}yn();const ti=new OG(Be,Ht);this.xr=ti,this.getContext=function(){return Ht},this.getContextAttributes=function(){return Ht.getContextAttributes()},this.forceContextLoss=function(){const dt=qn.get("WEBGL_lose_context");dt&&dt.loseContext()},this.forceContextRestore=function(){const dt=qn.get("WEBGL_lose_context");dt&&dt.restoreContext()},this.getPixelRatio=function(){return kt},this.setPixelRatio=function(dt){dt!==void 0&&(kt=dt,this.setSize(tn,cn,!1))},this.getSize=function(dt){return dt.set(tn,cn)},this.setSize=function(dt,Dn,ar=!0){if(ti.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}tn=dt,cn=Dn,y.width=Math.floor(dt*kt),y.height=Math.floor(Dn*kt),ar===!0&&(y.style.width=dt+"px",y.style.height=Dn+"px"),this.setViewport(0,0,dt,Dn)},this.getDrawingBufferSize=function(dt){return dt.set(tn*kt,cn*kt).floor()},this.setDrawingBufferSize=function(dt,Dn,ar){tn=dt,cn=Dn,kt=ar,y.width=Math.floor(dt*ar),y.height=Math.floor(Dn*ar),this.setViewport(0,0,dt,Dn)},this.getCurrentViewport=function(dt){return dt.copy(Le)},this.getViewport=function(dt){return dt.copy(Vt)},this.setViewport=function(dt,Dn,ar,lr){dt.isVector4?Vt.set(dt.x,dt.y,dt.z,dt.w):Vt.set(dt,Dn,ar,lr),cr.viewport(Le.copy(Vt).multiplyScalar(kt).round())},this.getScissor=function(dt){return dt.copy(rn)},this.setScissor=function(dt,Dn,ar,lr){dt.isVector4?rn.set(dt.x,dt.y,dt.z,dt.w):rn.set(dt,Dn,ar,lr),cr.scissor(_e.copy(rn).multiplyScalar(kt).round())},this.getScissorTest=function(){return Bn},this.setScissorTest=function(dt){cr.setScissorTest(Bn=dt)},this.setOpaqueSort=function(dt){pt=dt},this.setTransparentSort=function(dt){An=dt},this.getClearColor=function(dt){return dt.copy(qi.getClearColor())},this.setClearColor=function(){qi.setClearColor(...arguments)},this.getClearAlpha=function(){return qi.getClearAlpha()},this.setClearAlpha=function(){qi.setClearAlpha(...arguments)},this.clear=function(dt=!0,Dn=!0,ar=!0){let lr=0;if(dt){let In=!1;if(Re!==null){const ni=Re.texture.format;In=ni===qh||ni===Vp||ni===Ud}if(In){const ni=Re.texture.type,ji=ni===jo||ni===Ao||ni===qu||ni===Ec||ni===Om||ni===Ug,ys=qi.getClearColor(),as=qi.getClearAlpha(),ua=ys.r,ga=ys.g,$s=ys.b;ji?(he[0]=ua,he[1]=ga,he[2]=$s,he[3]=as,Ht.clearBufferuiv(Ht.COLOR,0,he)):(ye[0]=ua,ye[1]=ga,ye[2]=$s,ye[3]=as,Ht.clearBufferiv(Ht.COLOR,0,ye))}else lr|=Ht.COLOR_BUFFER_BIT}Dn&&(lr|=Ht.DEPTH_BUFFER_BIT),ar&&(lr|=Ht.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Ht.clear(lr)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){y.removeEventListener("webglcontextlost",hi,!1),y.removeEventListener("webglcontextrestored",ss,!1),y.removeEventListener("webglcontextcreationerror",Gr,!1),qi.dispose(),Xn.dispose(),Li.dispose(),kr.dispose(),ms.dispose(),Es.dispose(),Tn.dispose(),Br.dispose(),_s.dispose(),or.dispose(),ti.dispose(),ti.removeEventListener("sessionstart",vs),ti.removeEventListener("sessionend",Vf),Xc.stop()};function hi(dt){dt.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ne=!0}function ss(){console.log("THREE.WebGLRenderer: Context Restored."),Ne=!1;const dt=Vr.autoReset,Dn=es.enabled,ar=es.autoUpdate,lr=es.needsUpdate,In=es.type;yn(),Vr.autoReset=dt,es.enabled=Dn,es.autoUpdate=ar,es.needsUpdate=lr,es.type=In}function Gr(dt){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",dt.statusMessage)}function Or(dt){const Dn=dt.target;Dn.removeEventListener("dispose",Or),fs(Dn)}function fs(dt){yr(dt),kr.remove(dt)}function yr(dt){const Dn=kr.get(dt).programs;Dn!==void 0&&(Dn.forEach(function(ar){or.releaseProgram(ar)}),dt.isShaderMaterial&&or.releaseShaderCache(dt))}this.renderBufferDirect=function(dt,Dn,ar,lr,In,ni){Dn===null&&(Dn=Kn);const ji=In.isMesh&&In.matrixWorld.determinant()<0,ys=Dp(dt,Dn,ar,lr,In);cr.setMaterial(lr,ji);let as=ar.index,ua=1;if(lr.wireframe===!0){if(as=et.getWireframeAttribute(ar),as===void 0)return;ua=2}const ga=ar.drawRange,$s=ar.attributes.position;let Ya=ga.start*ua,ko=(ga.start+ga.count)*ua;ni!==null&&(Ya=Math.max(Ya,ni.start*ua),ko=Math.min(ko,(ni.start+ni.count)*ua)),as!==null?(Ya=Math.max(Ya,0),ko=Math.min(ko,as.count)):$s!=null&&(Ya=Math.max(Ya,0),ko=Math.min(ko,$s.count));const Ml=ko-Ya;if(Ml<0||Ml===1/0)return;Br.setup(In,lr,ys,ar,as);let al,Zo=Bi;if(as!==null&&(al=Pt.get(as),Zo=gs,Zo.setIndex(al)),In.isMesh)lr.wireframe===!0?(cr.setLineWidth(lr.wireframeLinewidth*Xr()),Zo.setMode(Ht.LINES)):Zo.setMode(Ht.TRIANGLES);else if(In.isLine){let Bs=lr.linewidth;Bs===void 0&&(Bs=1),cr.setLineWidth(Bs*Xr()),In.isLineSegments?Zo.setMode(Ht.LINES):In.isLineLoop?Zo.setMode(Ht.LINE_LOOP):Zo.setMode(Ht.LINE_STRIP)}else In.isPoints?Zo.setMode(Ht.POINTS):In.isSprite&&Zo.setMode(Ht.TRIANGLES);if(In.isBatchedMesh)if(In._multiDrawInstances!==null)Ou("THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Zo.renderMultiDrawInstances(In._multiDrawStarts,In._multiDrawCounts,In._multiDrawCount,In._multiDrawInstances);else if(qn.get("WEBGL_multi_draw"))Zo.renderMultiDraw(In._multiDrawStarts,In._multiDrawCounts,In._multiDrawCount);else{const Bs=In._multiDrawStarts,Po=In._multiDrawCounts,Bo=In._multiDrawCount,Gf=as?Pt.get(as).bytesPerElement:1,xy=kr.get(lr).currentProgram.getUniforms();for(let Xf=0;Xf{function ni(){if(lr.forEach(function(ji){kr.get(ji).currentProgram.isReady()&&lr.delete(ji)}),lr.size===0){In(dt);return}setTimeout(ni,10)}qn.get("KHR_parallel_shader_compile")!==null?ni():setTimeout(ni,10)})};let Ui=null;function Js(dt){Ui&&Ui(dt)}function vs(){Xc.stop()}function Vf(){Xc.start()}const Xc=new _2;Xc.setAnimationLoop(Js),typeof self!="undefined"&&Xc.setContext(self),this.setAnimationLoop=function(dt){Ui=dt,ti.setAnimationLoop(dt),dt===null?Xc.stop():Xc.start()},ti.addEventListener("sessionstart",vs),ti.addEventListener("sessionend",Vf),this.render=function(dt,Dn){if(Dn!==void 0&&Dn.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(Ne===!0)return;if(dt.matrixWorldAutoUpdate===!0&&dt.updateMatrixWorld(),Dn.parent===null&&Dn.matrixWorldAutoUpdate===!0&&Dn.updateMatrixWorld(),ti.enabled===!0&&ti.isPresenting===!0&&(ti.cameraAutoUpdate===!0&&ti.updateCamera(Dn),Dn=ti.getCamera()),dt.isScene===!0&&dt.onBeforeRender(Be,dt,Dn,Re),me=Li.get(dt,Ee.length),me.init(Dn),Ee.push(me),dn.multiplyMatrices(Dn.projectionMatrix,Dn.matrixWorldInverse),hr.setFromProjectionMatrix(dn,Ut,Dn.reversedDepth),on=this.localClippingEnabled,bt=Kr.init(this.clippingPlanes,on),Ae=Xn.get(dt,Ce.length),Ae.init(),Ce.push(Ae),ti.enabled===!0&&ti.isPresenting===!0){const ni=Be.xr.getDepthSensingMesh();ni!==null&&xg(ni,Dn,-1/0,Be.sortObjects)}xg(dt,Dn,0,Be.sortObjects),Ae.finish(),Be.sortObjects===!0&&Ae.sort(pt,An),Nr=ti.enabled===!1||ti.isPresenting===!1||ti.hasDepthSensing()===!1,Nr&&qi.addToRenderList(Ae,dt),this.info.render.frame++,bt===!0&&Kr.beginShadows();const ar=me.state.shadowsArray;es.render(ar,dt,Dn),bt===!0&&Kr.endShadows(),this.info.autoReset===!0&&this.info.reset();const lr=Ae.opaque,In=Ae.transmissive;if(me.setupLights(),Dn.isArrayCamera){const ni=Dn.cameras;if(In.length>0)for(let ji=0,ys=ni.length;ji0&&Jb(lr,In,dt,Dn),Nr&&qi.render(dt),Yb(Ae,dt,Dn);Re!==null&&ke===0&&(Jr.updateMultisampleRenderTarget(Re),Jr.updateRenderTargetMipmap(Re)),dt.isScene===!0&&dt.onAfterRender(Be,dt,Dn),Br.resetDefaultState(),Oe=-1,ze=null,Ee.pop(),Ee.length>0?(me=Ee[Ee.length-1],bt===!0&&Kr.setGlobalState(Be.clippingPlanes,me.state.camera)):me=null,Ce.pop(),Ce.length>0?Ae=Ce[Ce.length-1]:Ae=null};function xg(dt,Dn,ar,lr){if(dt.visible===!1)return;if(dt.layers.test(Dn.layers)){if(dt.isGroup)ar=dt.renderOrder;else if(dt.isLOD)dt.autoUpdate===!0&&dt.update(Dn);else if(dt.isLight)me.pushLight(dt),dt.castShadow&&me.pushShadow(dt);else if(dt.isSprite){if(!dt.frustumCulled||hr.intersectsSprite(dt)){lr&&Un.setFromMatrixPosition(dt.matrixWorld).applyMatrix4(dn);const ji=Tn.update(dt),ys=dt.material;ys.visible&&Ae.push(dt,ji,ys,ar,Un.z,null)}}else if((dt.isMesh||dt.isLine||dt.isPoints)&&(!dt.frustumCulled||hr.intersectsObject(dt))){const ji=Tn.update(dt),ys=dt.material;if(lr&&(dt.boundingSphere!==void 0?(dt.boundingSphere===null&&dt.computeBoundingSphere(),Un.copy(dt.boundingSphere.center)):(ji.boundingSphere===null&&ji.computeBoundingSphere(),Un.copy(ji.boundingSphere.center)),Un.applyMatrix4(dt.matrixWorld).applyMatrix4(dn)),Array.isArray(ys)){const as=ji.groups;for(let ua=0,ga=as.length;ua0&&Mp(In,Dn,ar),ni.length>0&&Mp(ni,Dn,ar),ji.length>0&&Mp(ji,Dn,ar),cr.buffers.depth.setTest(!0),cr.buffers.depth.setMask(!0),cr.buffers.color.setMask(!0),cr.setPolygonOffset(!1)}function Jb(dt,Dn,ar,lr){if((ar.isScene===!0?ar.overrideMaterial:null)!==null)return;me.state.transmissionRenderTarget[lr.id]===void 0&&(me.state.transmissionRenderTarget[lr.id]=new Gg(1,1,{generateMipmaps:!0,type:qn.has("EXT_color_buffer_half_float")||qn.has("EXT_color_buffer_float")?vl:jo,minFilter:tu,samples:4,stencilBuffer:z,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:aa.workingColorSpace}));const ni=me.state.transmissionRenderTarget[lr.id],ji=lr.viewport||Le;ni.setSize(ji.z*Be.transmissionResolutionScale,ji.w*Be.transmissionResolutionScale);const ys=Be.getRenderTarget(),as=Be.getActiveCubeFace(),ua=Be.getActiveMipmapLevel();Be.setRenderTarget(ni),Be.getClearColor(yt),jt=Be.getClearAlpha(),jt<1&&Be.setClearColor(16777215,.5),Be.clear(),Nr&&qi.render(ar);const ga=Be.toneMapping;Be.toneMapping=bc;const $s=lr.viewport;if(lr.viewport!==void 0&&(lr.viewport=void 0),me.setupLightsView(lr),bt===!0&&Kr.setGlobalState(Be.clippingPlanes,lr),Mp(dt,ar,lr),Jr.updateMultisampleRenderTarget(ni),Jr.updateRenderTargetMipmap(ni),qn.has("WEBGL_multisampled_render_to_texture")===!1){let Ya=!1;for(let ko=0,Ml=Dn.length;ko0),$s=!!ar.morphAttributes.position,Ya=!!ar.morphAttributes.normal,ko=!!ar.morphAttributes.color;let Ml=bc;lr.toneMapped&&(Re===null||Re.isXRRenderTarget===!0)&&(Ml=Be.toneMapping);const al=ar.morphAttributes.position||ar.morphAttributes.normal||ar.morphAttributes.color,Zo=al!==void 0?al.length:0,Bs=kr.get(lr),Po=me.state.lights;if(bt===!0&&(on===!0||dt!==ze)){const Md=dt===ze&&lr.id===Oe;Kr.setState(lr,dt,Md)}let Bo=!1;lr.version===Bs.__version?(Bs.needsLights&&Bs.lightsStateVersion!==Po.state.version||Bs.outputColorSpace!==ys||In.isBatchedMesh&&Bs.batching===!1||!In.isBatchedMesh&&Bs.batching===!0||In.isBatchedMesh&&Bs.batchingColor===!0&&In.colorTexture===null||In.isBatchedMesh&&Bs.batchingColor===!1&&In.colorTexture!==null||In.isInstancedMesh&&Bs.instancing===!1||!In.isInstancedMesh&&Bs.instancing===!0||In.isSkinnedMesh&&Bs.skinning===!1||!In.isSkinnedMesh&&Bs.skinning===!0||In.isInstancedMesh&&Bs.instancingColor===!0&&In.instanceColor===null||In.isInstancedMesh&&Bs.instancingColor===!1&&In.instanceColor!==null||In.isInstancedMesh&&Bs.instancingMorph===!0&&In.morphTexture===null||In.isInstancedMesh&&Bs.instancingMorph===!1&&In.morphTexture!==null||Bs.envMap!==as||lr.fog===!0&&Bs.fog!==ni||Bs.numClippingPlanes!==void 0&&(Bs.numClippingPlanes!==Kr.numPlanes||Bs.numIntersection!==Kr.numIntersection)||Bs.vertexAlphas!==ua||Bs.vertexTangents!==ga||Bs.morphTargets!==$s||Bs.morphNormals!==Ya||Bs.morphColors!==ko||Bs.toneMapping!==Ml||Bs.morphTargetsCount!==Zo)&&(Bo=!0):(Bo=!0,Bs.__version=lr.version);let Gf=Bs.currentProgram;Bo===!0&&(Gf=bg(lr,Dn,In));let xy=!1,Xf=!1,$b=!1;const Jl=Gf.getUniforms(),Lh=Bs.uniforms;if(cr.useProgram(Gf.program)&&(xy=!0,Xf=!0,$b=!0),lr.id!==Oe&&(Oe=lr.id,Xf=!0),xy||ze!==dt){cr.buffers.depth.getReversed()&&dt.reversedDepth!==!0&&(dt._reversedDepth=!0,dt.updateProjectionMatrix()),Jl.setValue(Ht,"projectionMatrix",dt.projectionMatrix),Jl.setValue(Ht,"viewMatrix",dt.matrixWorldInverse);const rf=Jl.map.cameraPosition;rf!==void 0&&rf.setValue(Ht,Qn.setFromMatrixPosition(dt.matrixWorld)),vr.logarithmicDepthBuffer&&Jl.setValue(Ht,"logDepthBufFC",2/(Math.log(dt.far+1)/Math.LN2)),(lr.isMeshPhongMaterial||lr.isMeshToonMaterial||lr.isMeshLambertMaterial||lr.isMeshBasicMaterial||lr.isMeshStandardMaterial||lr.isShaderMaterial)&&Jl.setValue(Ht,"isOrthographic",dt.isOrthographicCamera===!0),ze!==dt&&(ze=dt,Xf=!0,$b=!0)}if(In.isSkinnedMesh){Jl.setOptional(Ht,In,"bindMatrix"),Jl.setOptional(Ht,In,"bindMatrixInverse");const Md=In.skeleton;Md&&(Md.boneTexture===null&&Md.computeBoneTexture(),Jl.setValue(Ht,"boneTexture",Md.boneTexture,Jr))}In.isBatchedMesh&&(Jl.setOptional(Ht,In,"batchingTexture"),Jl.setValue(Ht,"batchingTexture",In._matricesTexture,Jr),Jl.setOptional(Ht,In,"batchingIdTexture"),Jl.setValue(Ht,"batchingIdTexture",In._indirectTexture,Jr),Jl.setOptional(Ht,In,"batchingColorTexture"),In._colorsTexture!==null&&Jl.setValue(Ht,"batchingColorTexture",In._colorsTexture,Jr));const Oh=ar.morphAttributes;if((Oh.position!==void 0||Oh.normal!==void 0||Oh.color!==void 0)&&Zr.update(In,ar,Gf),(Xf||Bs.receiveShadow!==In.receiveShadow)&&(Bs.receiveShadow=In.receiveShadow,Jl.setValue(Ht,"receiveShadow",In.receiveShadow)),lr.isMeshGouraudMaterial&&lr.envMap!==null&&(Lh.envMap.value=as,Lh.flipEnvMap.value=as.isCubeTexture&&as.isRenderTargetTexture===!1?-1:1),lr.isMeshStandardMaterial&&lr.envMap===null&&Dn.environment!==null&&(Lh.envMapIntensity.value=Dn.environmentIntensity),Xf&&(Jl.setValue(Ht,"toneMappingExposure",Be.toneMappingExposure),Bs.needsLights&&t5(Lh,$b),ni&&lr.fog===!0&&Pn.refreshFogUniforms(Lh,ni),Pn.refreshMaterialUniforms(Lh,lr,kt,cn,me.state.transmissionRenderTarget[dt.id]),bw.upload(Ht,mC(Bs),Lh,Jr)),lr.isShaderMaterial&&lr.uniformsNeedUpdate===!0&&(bw.upload(Ht,mC(Bs),Lh,Jr),lr.uniformsNeedUpdate=!1),lr.isSpriteMaterial&&Jl.setValue(Ht,"center",In.center),Jl.setValue(Ht,"modelViewMatrix",In.modelViewMatrix),Jl.setValue(Ht,"normalMatrix",In.normalMatrix),Jl.setValue(Ht,"modelMatrix",In.matrixWorld),lr.isShaderMaterial||lr.isRawShaderMaterial){const Md=lr.uniformsGroups;for(let rf=0,r5=Md.length;rf0&&Jr.useMultisampledRTT(dt)===!1?In=kr.get(dt).__webglMultisampledFramebuffer:Array.isArray(ga)?In=ga[ar]:In=ga,Le.copy(dt.viewport),_e.copy(dt.scissor),Et=dt.scissorTest}else Le.copy(Vt).multiplyScalar(kt).floor(),_e.copy(rn).multiplyScalar(kt).floor(),Et=Bn;if(ar!==0&&(In=di),cr.bindFramebuffer(Ht.FRAMEBUFFER,In)&&lr&&cr.drawBuffers(dt,In),cr.viewport(Le),cr.scissor(_e),cr.setScissorTest(Et),ni){const as=kr.get(dt.texture);Ht.framebufferTexture2D(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,Ht.TEXTURE_CUBE_MAP_POSITIVE_X+Dn,as.__webglTexture,ar)}else if(ji){const as=Dn;for(let ua=0;ua=0&&Dn<=dt.width-lr&&ar>=0&&ar<=dt.height-In&&(dt.textures.length>1&&Ht.readBuffer(Ht.COLOR_ATTACHMENT0+ys),Ht.readPixels(Dn,ar,lr,In,Fi.convert(ga),Fi.convert($s),ni))}finally{const ua=Re!==null?kr.get(Re).__webglFramebuffer:null;cr.bindFramebuffer(Ht.FRAMEBUFFER,ua)}}},this.readRenderTargetPixelsAsync=function(dt,Dn,ar,lr,In,ni,ji,ys=0){return Fs(this,null,function*(){if(!(dt&&dt.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let as=kr.get(dt).__webglFramebuffer;if(dt.isWebGLCubeRenderTarget&&ji!==void 0&&(as=as[ji]),as)if(Dn>=0&&Dn<=dt.width-lr&&ar>=0&&ar<=dt.height-In){cr.bindFramebuffer(Ht.FRAMEBUFFER,as);const ua=dt.textures[ys],ga=ua.format,$s=ua.type;if(!vr.textureFormatReadable(ga))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!vr.textureTypeReadable($s))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const Ya=Ht.createBuffer();Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,Ya),Ht.bufferData(Ht.PIXEL_PACK_BUFFER,ni.byteLength,Ht.STREAM_READ),dt.textures.length>1&&Ht.readBuffer(Ht.COLOR_ATTACHMENT0+ys),Ht.readPixels(Dn,ar,lr,In,Fi.convert(ga),Fi.convert($s),0);const ko=Re!==null?kr.get(Re).__webglFramebuffer:null;cr.bindFramebuffer(Ht.FRAMEBUFFER,ko);const Ml=Ht.fenceSync(Ht.SYNC_GPU_COMMANDS_COMPLETE,0);return Ht.flush(),yield Fy(Ht,Ml,4),Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,Ya),Ht.getBufferSubData(Ht.PIXEL_PACK_BUFFER,0,ni),Ht.deleteBuffer(Ya),Ht.deleteSync(Ml),ni}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")})},this.copyFramebufferToTexture=function(dt,Dn=null,ar=0){const lr=Math.pow(2,-ar),In=Math.floor(dt.image.width*lr),ni=Math.floor(dt.image.height*lr),ji=Dn!==null?Dn.x:0,ys=Dn!==null?Dn.y:0;Jr.setTexture2D(dt,0),Ht.copyTexSubImage2D(Ht.TEXTURE_2D,ar,0,0,ji,ys,In,ni),cr.unbindTexture()};const Sd=Ht.createFramebuffer(),nf=Ht.createFramebuffer();this.copyTextureToTexture=function(dt,Dn,ar=null,lr=null,In=0,ni=null){ni===null&&(In!==0?(Ou("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),ni=In,In=0):ni=0);let ji,ys,as,ua,ga,$s,Ya,ko,Ml;const al=dt.isCompressedTexture?dt.mipmaps[ni]:dt.image;if(ar!==null)ji=ar.max.x-ar.min.x,ys=ar.max.y-ar.min.y,as=ar.isBox3?ar.max.z-ar.min.z:1,ua=ar.min.x,ga=ar.min.y,$s=ar.isBox3?ar.min.z:0;else{const Oh=Math.pow(2,-In);ji=Math.floor(al.width*Oh),ys=Math.floor(al.height*Oh),dt.isDataArrayTexture?as=al.depth:dt.isData3DTexture?as=Math.floor(al.depth*Oh):as=1,ua=0,ga=0,$s=0}lr!==null?(Ya=lr.x,ko=lr.y,Ml=lr.z):(Ya=0,ko=0,Ml=0);const Zo=Fi.convert(Dn.format),Bs=Fi.convert(Dn.type);let Po;Dn.isData3DTexture?(Jr.setTexture3D(Dn,0),Po=Ht.TEXTURE_3D):Dn.isDataArrayTexture||Dn.isCompressedArrayTexture?(Jr.setTexture2DArray(Dn,0),Po=Ht.TEXTURE_2D_ARRAY):(Jr.setTexture2D(Dn,0),Po=Ht.TEXTURE_2D),Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,Dn.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Dn.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,Dn.unpackAlignment);const Bo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Gf=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),xy=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),Xf=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),$b=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES);Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,al.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,al.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,ua),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ga),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,$s);const Jl=dt.isDataArrayTexture||dt.isData3DTexture,Lh=Dn.isDataArrayTexture||Dn.isData3DTexture;if(dt.isDepthTexture){const Oh=kr.get(dt),Md=kr.get(Dn),rf=kr.get(Oh.__renderTarget),r5=kr.get(Md.__renderTarget);cr.bindFramebuffer(Ht.READ_FRAMEBUFFER,rf.__webglFramebuffer),cr.bindFramebuffer(Ht.DRAW_FRAMEBUFFER,r5.__webglFramebuffer);for(let FA=0;FA0){const{width:ee,height:te}=a.context;y.bufferWidth=ee,y.bufferHeight=te}y.lights=this.getLightsData(a.lightsNode.getLights()),this.renderObjects.set(a,y)}return y}getAttributesData(a){const y={};for(const x in a){const E=a[x];y[x]={version:E.version}}return y}containsNode(a){const y=a.material;for(const x in y)if(y[x]&&y[x].isNode)return!0;return a.renderer.overrideNodes.modelViewMatrix!==null||a.renderer.overrideNodes.modelNormalViewMatrix!==null}getMaterialData(a){const y={};for(const x of this.refreshUniforms){const E=a[x];E!=null&&(typeof E=="object"&&E.clone!==void 0?E.isTexture===!0?y[x]={id:E.id,version:E.version}:y[x]=E.clone():y[x]=E)}return y}equals(a,y){const{object:x,material:E,geometry:z}=a,ee=this.getRenderObjectData(a);if(ee.worldMatrix.equals(x.matrixWorld)!==!0)return ee.worldMatrix.copy(x.matrixWorld),!1;const te=ee.material;for(const Ae in te){const me=te[Ae],Ce=E[Ae];if(me.equals!==void 0){if(me.equals(Ce)===!1)return me.copy(Ce),!1}else if(Ce.isTexture===!0){if(me.id!==Ce.id||me.version!==Ce.version)return me.id=Ce.id,me.version=Ce.version,!1}else if(me!==Ce)return te[Ae]=Ce,!1}if(te.transmission>0){const{width:Ae,height:me}=a.context;if(ee.bufferWidth!==Ae||ee.bufferHeight!==me)return ee.bufferWidth=Ae,ee.bufferHeight=me,!1}const ne=ee.geometry,ie=z.attributes,ae=ne.attributes,oe=Object.keys(ae),le=Object.keys(ie);if(ne.id!==z.id)return ne.id=z.id,!1;if(oe.length!==le.length)return ee.geometry.attributes=this.getAttributesData(ie),!1;for(const Ae of oe){const me=ae[Ae],Ce=ie[Ae];if(Ce===void 0)return delete ae[Ae],!1;if(me.version!==Ce.version)return me.version=Ce.version,!1}const de=z.index,he=ne.indexVersion,ye=de?de.version:null;if(he!==ye)return ne.indexVersion=ye,!1;if(ne.drawRange.start!==z.drawRange.start||ne.drawRange.count!==z.drawRange.count)return ne.drawRange.start=z.drawRange.start,ne.drawRange.count=z.drawRange.count,!1;if(ee.morphTargetInfluences){let Ae=!1;for(let me=0;me>>16,2246822507),y^=Math.imul(x^x>>>13,3266489909),x=Math.imul(x^x>>>16,2246822507),x^=Math.imul(y^y>>>13,3266489909),4294967296*(2097151&x)+(y>>>0)}const xB=b=>lx(b),ux=b=>lx(b),cx=(...b)=>lx(b);function bB(b,a=!1){const y=[];b.isNode===!0&&(y.push(b.id),b=b.getSelf());for(const{property:x,childNode:E}of dx(b))y.push(lx(x.slice(0,-4)),E.getCacheKey(a));return lx(y)}function*dx(b,a=!1){for(const y in b){if(y.startsWith("_")===!0)continue;const x=b[y];if(Array.isArray(x)===!0)for(let E=0;Ea.charCodeAt(0)).buffer}var Rce=Object.freeze({__proto__:null,arrayBufferToBase64:BB,base64ToArrayBuffer:SB,getByteBoundaryFromType:TT,getCacheKey:bB,getDataFromObject:PB,getLengthFromType:wB,getMemoryLengthFromType:DT,getNodeChildren:dx,getTypeFromLength:EB,getTypedArrayFromType:fx,getValueFromType:CB,getValueType:rg,hash:cx,hashArray:ux,hashString:xB});const hx={VERTEX:"vertex",FRAGMENT:"fragment"},wa={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},GG={BOOLEAN:"bool",INTEGER:"int",FLOAT:"float",VECTOR2:"vec2",VECTOR3:"vec3",VECTOR4:"vec4",MATRIX2:"mat2",MATRIX3:"mat3",MATRIX4:"mat4"},Uc={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},IT=["fragment","vertex"],MB=["setup","analyze","generate"],DB=[...IT,"compute"],nA=["x","y","z","w"],XG={analyze:"setup",generate:"analyze"};let WG=0;class Us extends li{static get type(){return"Node"}constructor(a=null){super(),this.nodeType=a,this.updateType=wa.NONE,this.updateBeforeType=wa.NONE,this.updateAfterType=wa.NONE,this.uuid=gh.generateUUID(),this.version=0,this.global=!1,this.parents=!1,this.isNode=!0,this._cacheKey=null,this._cacheKeyVersion=0,Object.defineProperty(this,"id",{value:WG++})}set needsUpdate(a){a===!0&&this.version++}get type(){return this.constructor.type}onUpdate(a,y){return this.updateType=y,this.update=a.bind(this.getSelf()),this}onFrameUpdate(a){return this.onUpdate(a,wa.FRAME)}onRenderUpdate(a){return this.onUpdate(a,wa.RENDER)}onObjectUpdate(a){return this.onUpdate(a,wa.OBJECT)}onReference(a){return this.updateReference=a.bind(this.getSelf()),this}getSelf(){return this.self||this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:a}of dx(this))yield a}dispose(){this.dispatchEvent({type:"dispose"})}traverse(a){a(this);for(const y of this.getChildren())y.traverse(a)}getCacheKey(a=!1){return a=a||this.version!==this._cacheKeyVersion,(a===!0||this._cacheKey===null)&&(this._cacheKey=cx(bB(this,a),this.customCacheKey()),this._cacheKeyVersion=this.version),this._cacheKey}customCacheKey(){return 0}getScope(){return this}getHash(){return this.uuid}getUpdateType(){return this.updateType}getUpdateBeforeType(){return this.updateBeforeType}getUpdateAfterType(){return this.updateAfterType}getElementType(a){const y=this.getNodeType(a);return a.getElementType(y)}getMemberType(){return"void"}getNodeType(a){const y=a.getNodeProperties(this);return y.outputNode?y.outputNode.getNodeType(a):this.nodeType}getShared(a){const y=this.getHash(a);return a.getNodeFromHash(y)||this}getArrayCount(){return null}setup(a){const y=a.getNodeProperties(this);let x=0;for(const E of this.getChildren())y["node"+x++]=E;return y.outputNode||null}analyze(a,y=null){const x=a.increaseUsage(this);if(this.parents===!0){const E=a.getDataFromNode(this,"any");E.stages=E.stages||{},E.stages[a.shaderStage]=E.stages[a.shaderStage]||[],E.stages[a.shaderStage].push(y)}if(x===1){const E=a.getNodeProperties(this);for(const z of Object.values(E))z&&z.isNode===!0&&z.build(a,this)}}generate(a,y){const{outputNode:x}=a.getNodeProperties(this);if(x&&x.isNode===!0)return x.build(a,y)}updateBefore(){console.warn("Abstract function.")}updateAfter(){console.warn("Abstract function.")}update(){console.warn("Abstract function.")}build(a,y=null){const x=this.getShared(a);if(this!==x)return x.build(a,y);const E=a.getDataFromNode(this);E.buildStages=E.buildStages||{},E.buildStages[a.buildStage]=!0;const z=XG[a.buildStage];if(z&&E.buildStages[z]!==!0){const ne=a.getBuildStage();a.setBuildStage(z),this.build(a),a.setBuildStage(ne)}a.addNode(this),a.addChain(this);let ee=null;const te=a.getBuildStage();if(te==="setup"){this.updateReference(a);const ne=a.getNodeProperties(this);if(ne.initialized!==!0){ne.initialized=!0,ne.outputNode=this.setup(a)||ne.outputNode||null;for(const ie of Object.values(ne))if(ie&&ie.isNode===!0){if(ie.parents===!0){const ae=a.getNodeProperties(ie);ae.parents=ae.parents||[],ae.parents.push(this)}ie.build(a)}}ee=ne.outputNode}else if(te==="analyze")this.analyze(a,y);else if(te==="generate")if(this.generate.length===1){const ie=this.getNodeType(a),ae=a.getDataFromNode(this);ee=ae.snippet,ee===void 0?ae.generated===void 0?(ae.generated=!0,ee=this.generate(a)||"",ae.snippet=ee):(console.warn("THREE.Node: Recursion detected.",this),ee="/* Recursion detected. */"):ae.flowCodes!==void 0&&a.context.nodeBlock!==void 0&&a.addFlowCodeHierarchy(this,a.context.nodeBlock),ee=a.format(ee,ie,y)}else ee=this.generate(a,y)||"";return a.removeChain(this),a.addSequentialNode(this),ee}getSerializeChildren(){return dx(this)}serialize(a){const y=this.getSerializeChildren(),x={};for(const{property:E,index:z,childNode:ee}of y)z!==void 0?(x[E]===void 0&&(x[E]=Number.isInteger(z)?[]:{}),x[E][z]=ee.toJSON(a.meta).uuid):x[E]=ee.toJSON(a.meta).uuid;Object.keys(x).length>0&&(a.inputNodes=x)}deserialize(a){if(a.inputNodes!==void 0){const y=a.meta.nodes;for(const x in a.inputNodes)if(Array.isArray(a.inputNodes[x])){const E=[];for(const z of a.inputNodes[x])E.push(y[z]);this[x]=E}else if(typeof a.inputNodes[x]=="object"){const E={};for(const z in a.inputNodes[x]){const ee=a.inputNodes[x][z];E[z]=y[ee]}this[x]=E}else{const E=a.inputNodes[x];this[x]=y[E]}}}toJSON(a){const{uuid:y,type:x}=this,E=a===void 0||typeof a=="string";E&&(a={textures:{},images:{},nodes:{}});let z=a.nodes[y];z===void 0&&(z={uuid:y,type:x,meta:a,metadata:{version:4.7,type:"Node",generator:"Node.toJSON"}},E!==!0&&(a.nodes[z.uuid]=z),this.serialize(z),delete z.meta);function ee(te){const ne=[];for(const ie in te){const ae=te[ie];delete ae.metadata,ne.push(ae)}return ne}if(E){const te=ee(a.textures),ne=ee(a.images),ie=ee(a.nodes);te.length>0&&(z.textures=te),ne.length>0&&(z.images=ne),ie.length>0&&(z.nodes=ie)}return z}}class rA extends Us{static get type(){return"ArrayElementNode"}constructor(a,y){super(),this.node=a,this.indexNode=y,this.isArrayElementNode=!0}getNodeType(a){return this.node.getElementType(a)}generate(a){const y=this.indexNode.getNodeType(a),x=this.node.build(a),E=this.indexNode.build(a,!a.isVector(y)&&a.isInteger(y)?y:"uint");return`${x}[ ${E} ]`}}class FT extends Us{static get type(){return"ConvertNode"}constructor(a,y){super(),this.node=a,this.convertTo=y}getNodeType(a){const y=this.node.getNodeType(a);let x=null;for(const E of this.convertTo.split("|"))(x===null||a.getTypeLength(y)===a.getTypeLength(E))&&(x=E);return x}serialize(a){super.serialize(a),a.convertTo=this.convertTo}deserialize(a){super.deserialize(a),this.convertTo=a.convertTo}generate(a,y){const x=this.node,E=this.getNodeType(a),z=x.build(a,E);return a.format(z,E,y)}}class zu extends Us{static get type(){return"TempNode"}constructor(a=null){super(a),this.isTempNode=!0}hasDependencies(a){return a.getDataFromNode(this).usageCount>1}build(a,y){if(a.getBuildStage()==="generate"){const E=a.getVectorType(this.getNodeType(a,y)),z=a.getDataFromNode(this);if(z.propertyName!==void 0)return a.format(z.propertyName,E,y);if(E!=="void"&&y!=="void"&&this.hasDependencies(a)){const ee=super.build(a,E),te=a.getVarFromNode(this,null,E),ne=a.getPropertyName(te);return a.addLineFlowCode(`${ne} = ${ee}`,this),z.snippet=ee,z.propertyName=ne,a.format(z.propertyName,E,y)}}return super.build(a,y)}}class QG extends zu{static get type(){return"JoinNode"}constructor(a=[],y=null){super(y),this.nodes=a}getNodeType(a){return this.nodeType!==null?a.getVectorType(this.nodeType):a.getTypeFromLength(this.nodes.reduce((y,x)=>y+a.getTypeLength(x.getNodeType(a)),0))}generate(a,y){const x=this.getNodeType(a),E=a.getTypeLength(x),z=this.nodes,ee=a.getComponentType(x),te=[];let ne=0;for(const ae of z){if(ne>=E){console.error(`THREE.TSL: Length of parameters exceeds maximum length of function '${x}()' type.`);break}let oe=ae.getNodeType(a),le=a.getTypeLength(oe),de;ne+le>E&&(console.error(`THREE.TSL: Length of '${x}()' data exceeds maximum length of output type.`),le=E-ne,oe=a.getTypeFromLength(le)),ne+=le,de=ae.build(a,oe);const he=a.getComponentType(oe);he!==ee&&(de=a.format(de,he,ee)),te.push(de)}const ie=`${a.getType(x)}( ${te.join(", ")} )`;return a.format(ie,x,y)}}const ZG=nA.join("");class TB extends Us{static get type(){return"SplitNode"}constructor(a,y="x"){super(),this.node=a,this.components=y,this.isSplitNode=!0}getVectorLength(){let a=this.components.length;for(const y of this.components)a=Math.max(nA.indexOf(y)+1,a);return a}getComponentType(a){return a.getComponentType(this.node.getNodeType(a))}getNodeType(a){return a.getTypeFromLength(this.components.length,this.getComponentType(a))}generate(a,y){const x=this.node,E=a.getTypeLength(x.getNodeType(a));let z=null;if(E>1){let ee=null;this.getVectorLength()>=E&&(ee=a.getTypeFromLength(this.getVectorLength(),this.getComponentType(a)));const ne=x.build(a,ee);this.components.length===E&&this.components===ZG.slice(0,this.components.length)?z=a.format(ne,ee,y):z=a.format(`${ne}.${this.components}`,this.getNodeType(a),y)}else z=x.build(a,y);return z}serialize(a){super.serialize(a),a.components=this.components}deserialize(a){super.deserialize(a),this.components=a.components}}class YG extends zu{static get type(){return"SetNode"}constructor(a,y,x){super(),this.sourceNode=a,this.components=y,this.targetNode=x}getNodeType(a){return this.sourceNode.getNodeType(a)}generate(a){const{sourceNode:y,components:x,targetNode:E}=this,z=this.getNodeType(a),ee=a.getComponentType(E.getNodeType(a)),te=a.getTypeFromLength(x.length,ee),ne=E.build(a,te),ie=y.build(a,z),ae=a.getTypeLength(z),oe=[];for(let le=0;leb.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),OT=b=>LT(b).split("").sort().join(""),RT={setup(b,a){const y=a.shift();return b(gx(y),...a)},get(b,a,y){if(typeof a=="string"&&b[a]===void 0){if(b.isStackNode!==!0&&a==="assign")return(...x)=>(iA.assign(y,...x),y);if(j0.has(a)){const x=j0.get(a);return b.isStackNode?(...E)=>y.add(x(...E)):(...E)=>x(y,...E)}else{if(a==="toVarIntent")return()=>y;if(a==="self")return b;if(a.endsWith("Assign")&&j0.has(a.slice(0,a.length-6))){const x=j0.get(a.slice(0,a.length-6));return b.isStackNode?(...E)=>y.assign(E[0],x(...E)):(...E)=>y.assign(x(y,...E))}else{if(/^[xyzwrgbastpq]{1,4}$/.test(a)===!0)return a=LT(a),gr(new TB(y,a));if(/^set[XYZWRGBASTPQ]{1,4}$/.test(a)===!0)return a=OT(a.slice(3).toLowerCase()),x=>gr(new YG(b,a,gr(x)));if(/^flip[XYZWRGBASTPQ]{1,4}$/.test(a)===!0)return a=OT(a.slice(4).toLowerCase()),()=>gr(new JG(gr(b),a));if(a==="width"||a==="height"||a==="depth")return a==="width"?a="x":a==="height"?a="y":a==="depth"&&(a="z"),gr(new TB(b,a));if(/^\d+$/.test(a)===!0)return gr(new rA(y,new bp(Number(a),"uint")));if(/^get$/.test(a)===!0)return x=>gr(new KG(y,x))}}}return Reflect.get(b,a,y)},set(b,a,y,x){return typeof a=="string"&&b[a]===void 0&&(/^[xyzwrgbastpq]{1,4}$/.test(a)===!0||a==="width"||a==="height"||a==="depth"||/^\d+$/.test(a)===!0)?(x[a].assign(y),!0):Reflect.set(b,a,y,x)}},FB=new WeakMap,zT=new WeakMap,qG=function(b,a=null){const y=rg(b);if(y==="node"){let x=FB.get(b);return x===void 0&&(x=new Proxy(b,RT),FB.set(b,x),FB.set(x,x)),x}else{if(a===null&&(y==="float"||y==="boolean")||y&&y!=="shader"&&y!=="string")return gr(RB(b,a));if(y==="shader")return b.isFn?b:mn(b)}return b},_G=function(b,a=null){for(const y in b)b[y]=gr(b[y],a);return b},$G=function(b,a=null){const y=b.length;for(let x=0;xne?(console.error(`THREE.TSL: "${oe}" parameter length exceeds limit.`),ae.slice(0,ne)):ae}return a===null?z=(...ae)=>E(new b(...sA(ie(ae)))):y!==null?(y=gr(y),z=(...ae)=>E(new b(a,...sA(ie(ae)),y))):z=(...ae)=>E(new b(a,...sA(ie(ae)))),z.setParameterLength=(...ae)=>(ae.length===1?te=ne=ae[0]:ae.length===2&&([te,ne]=ae),z),z.setName=ae=>(ee=ae,z),z},eX=function(b,...a){return gr(new b(...sA(a)))};class tX extends Us{constructor(a,y){super(),this.shaderNode=a,this.inputNodes=y,this.isShaderCallNodeInternal=!0}getNodeType(a){return this.shaderNode.nodeType||this.getOutputNode(a).getNodeType(a)}getMemberType(a,y){return this.getOutputNode(a).getMemberType(a,y)}call(a){const{shaderNode:y,inputNodes:x}=this,E=a.getNodeProperties(y),z=a.getClosestSubBuild(y.subBuilds)||"",ee=z||"default";if(E[ee])return E[ee];const te=a.subBuildFn;a.subBuildFn=z;let ne=null;if(y.layout){let ie=zT.get(a.constructor);ie===void 0&&(ie=new WeakMap,zT.set(a.constructor,ie));let ae=ie.get(y);ae===void 0&&(ae=gr(a.buildFunctionNode(y)),ie.set(y,ae)),a.addInclude(ae),ne=gr(ae.call(x))}else{let ie=x;if(Array.isArray(ie)){let le=0;ie=new Proxy(ie,{get:(de,he,ye)=>de[he]===void 0?de[le++]:Reflect.get(de,he,ye)})}const ae=y.jsFunc,oe=ie!==null||ae.length>1?ae(ie||[],a):ae(a);ne=gr(oe)}return a.subBuildFn=te,y.once&&(E[ee]=ne),ne}setupOutput(a){return a.addStack(),a.stack.outputNode=this.call(a),a.removeStack()}getOutputNode(a){const y=a.getNodeProperties(this),x=a.getSubBuildOutput(this);return y[x]=y[x]||this.setupOutput(a),y[x].subBuild=a.getClosestSubBuild(this),y[x]}build(a,y=null){let x=null;const E=a.getBuildStage(),z=a.getNodeProperties(this),ee=a.getSubBuildOutput(this),te=this.getOutputNode(a);if(E==="setup"){const ne=a.getSubBuildProperty("initialized",this);if(z[ne]!==!0&&(z[ne]=!0,z[ee]=this.getOutputNode(a),z[ee].build(a),this.shaderNode.subBuilds))for(const ie of a.chaining){const ae=a.getDataFromNode(ie,"any");ae.subBuilds=ae.subBuilds||new Set;for(const oe of this.shaderNode.subBuilds)ae.subBuilds.add(oe)}x=z[ee]}else E==="analyze"?te.build(a,y):E==="generate"&&(x=te.build(a,y)||"");return x}}class nX extends Us{constructor(a,y){super(y),this.jsFunc=a,this.layout=null,this.global=!0,this.once=!1}setLayout(a){return this.layout=a,this}call(a=null){return gx(a),gr(new tX(this,a))}setup(){return this.call()}}const rX=[!1,!0],iX=[0,1,2,3],sX=[-1,-2],HT=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],NB=new Map;for(const b of rX)NB.set(b,new bp(b));const LB=new Map;for(const b of iX)LB.set(b,new bp(b,"uint"));const OB=new Map([...LB].map(b=>new bp(b.value,"int")));for(const b of sX)OB.set(b,new bp(b,"int"));const ww=new Map([...OB].map(b=>new bp(b.value)));for(const b of HT)ww.set(b,new bp(b));for(const b of HT)ww.set(-b,new bp(-b));const Cw={bool:NB,uint:LB,ints:OB,float:ww},UT=new Map([...NB,...ww]),RB=(b,a)=>UT.has(b)?UT.get(b):b.isNode===!0?b:new bp(b,a),ku=function(b,a=null){return(...y)=>{if((y.length===0||!["bool","float","int","uint"].includes(b)&&y.every(E=>typeof E!="object"))&&(y=[CB(b,...y)]),y.length===1&&a!==null&&a.has(y[0]))return mx(a.get(y[0]));if(y.length===1){const E=RB(y[0],b);return E.nodeType===b?mx(E):mx(new FT(E,b))}const x=y.map(E=>RB(E));return mx(new QG(x,b))}},px=b=>typeof b=="object"&&b!==null?b.value:b,jT=b=>b!=null?b.nodeType||b.convertTo||(typeof b=="string"?b:null):null;function V0(b,a){return new Proxy(new nX(b,a),RT)}const gr=(b,a=null)=>qG(b,a),mx=(b,a=null)=>gr(b,a).toVarIntent(),gx=(b,a=null)=>new _G(b,a),sA=(b,a=null)=>new $G(b,a),oa=(b,a=null,y=null,x=null)=>new kT(b,a,y,x),ui=(b,...a)=>new eX(b,...a),Gi=(b,a=null,y=null,x={})=>new kT(b,a,y,Dl({intent:!0},x));let aX=0;const mn=(b,a=null)=>{let y=null;a!==null&&(typeof a=="object"?y=a.return:(typeof a=="string"?y=a:console.error("THREE.TSL: Invalid layout type."),a=null));const x=new V0(b,y),E=(...z)=>{let ee;gx(z),z[0]&&(z[0].isNode||Object.getPrototypeOf(z[0])!==Object.prototype)?ee=[...z]:ee=z[0];const ne=x.call(ee);return y==="void"&&ne.toStack(),ne.toVarIntent()};if(E.shaderNode=x,E.id=x.id,E.isFn=!0,E.getNodeType=(...z)=>x.getNodeType(...z),E.getCacheKey=(...z)=>x.getCacheKey(...z),E.setLayout=z=>(x.setLayout(z),E),E.once=(z=null)=>(x.once=!0,x.subBuilds=z,E),a!==null){if(typeof a.inputs!="object"){const z={name:"fn"+aX++,type:y,inputs:[]};for(const ee in a)ee!=="return"&&z.inputs.push({name:ee,type:a[ee]});a=z}E.setLayout(a)}return E},vx=b=>{iA=b},Pw=()=>iA,ds=(...b)=>iA.If(...b),oX=(...b)=>iA.Switch(...b);function Bw(b){return iA&&iA.add(b),b}pr("toStack",Bw);const VT=new ku("color"),ft=new ku("float",Cw.float),Xt=new ku("int",Cw.ints),Pi=new ku("uint",Cw.uint),yh=new ku("bool",Cw.bool),Er=new ku("vec2"),ic=new ku("ivec2"),GT=new ku("uvec2"),XT=new ku("bvec2"),en=new ku("vec3"),WT=new ku("ivec3"),G0=new ku("uvec3"),zB=new ku("bvec3"),Ii=new ku("vec4"),QT=new ku("ivec4"),ZT=new ku("uvec4"),YT=new ku("bvec4"),Sw=new ku("mat2"),td=new ku("mat3"),aA=new ku("mat4"),lX=(b="")=>gr(new bp(b,"string")),uX=b=>gr(new bp(b,"ArrayBuffer"));pr("toColor",VT),pr("toFloat",ft),pr("toInt",Xt),pr("toUint",Pi),pr("toBool",yh),pr("toVec2",Er),pr("toIVec2",ic),pr("toUVec2",GT),pr("toBVec2",XT),pr("toVec3",en),pr("toIVec3",WT),pr("toUVec3",G0),pr("toBVec3",zB),pr("toVec4",Ii),pr("toIVec4",QT),pr("toUVec4",ZT),pr("toBVec4",YT),pr("toMat2",Sw),pr("toMat3",td),pr("toMat4",aA);const JT=oa(rA).setParameterLength(2),KT=(b,a)=>gr(new FT(gr(b),a)),cX=(b,a)=>gr(new TB(gr(b),a));pr("element",JT),pr("convert",KT);const dX=b=>(console.warn("THREE.TSL: append() has been renamed to Stack()."),Bw(b));pr("append",b=>(console.warn("THREE.TSL: .append() has been renamed to .toStack()."),Bw(b)));class No extends Us{static get type(){return"PropertyNode"}constructor(a,y=null,x=!1){super(a),this.name=y,this.varying=x,this.isPropertyNode=!0,this.global=!0}getHash(a){return this.name||super.getHash(a)}generate(a){let y;return this.varying===!0?(y=a.getVaryingFromNode(this,this.name),y.needsInterpolation=!0):y=a.getVarFromNode(this,this.name),a.getPropertyName(y)}}const Ep=(b,a)=>gr(new No(b,a)),Ff=(b,a)=>gr(new No(b,a,!0)),xo=ui(No,"vec4","DiffuseColor"),kB=ui(No,"vec3","EmissiveColor"),rm=ui(No,"float","Roughness"),Ax=ui(No,"float","Metalness"),Mw=ui(No,"float","Clearcoat"),yx=ui(No,"float","ClearcoatRoughness"),oA=ui(No,"vec3","Sheen"),Dw=ui(No,"float","SheenRoughness"),Tw=ui(No,"float","Iridescence"),HB=ui(No,"float","IridescenceIOR"),UB=ui(No,"float","IridescenceThickness"),Iw=ui(No,"float","AlphaT"),ev=ui(No,"float","Anisotropy"),xx=ui(No,"vec3","AnisotropyT"),lA=ui(No,"vec3","AnisotropyB"),Jd=ui(No,"color","SpecularColor"),bx=ui(No,"float","SpecularF90"),Fw=ui(No,"float","Shininess"),X0=ui(No,"vec4","Output"),uA=ui(No,"float","dashSize"),Ex=ui(No,"float","gapSize"),fX=ui(No,"float","pointWidth"),wx=ui(No,"float","IOR"),Nw=ui(No,"float","Transmission"),jB=ui(No,"float","Thickness"),VB=ui(No,"float","AttenuationDistance"),GB=ui(No,"color","AttenuationColor"),XB=ui(No,"float","Dispersion");class qT extends Us{static get type(){return"UniformGroupNode"}constructor(a,y=!1,x=1){super("string"),this.name=a,this.shared=y,this.order=x,this.isUniformGroup=!0}serialize(a){super.serialize(a),a.name=this.name,a.version=this.version,a.shared=this.shared}deserialize(a){super.deserialize(a),this.name=a.name,this.version=a.version,this.shared=a.shared}}const _T=b=>new qT(b),Lw=(b,a=0)=>new qT(b,!0,a),$T=Lw("frame"),Zs=Lw("render"),WB=_T("object");class Cx extends IB{static get type(){return"UniformNode"}constructor(a,y=null){super(a,y),this.isUniformNode=!0,this.name="",this.groupNode=WB}setName(a){return this.name=a,this}label(a){return console.warn('THREE.TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(a)}setGroup(a){return this.groupNode=a,this}getGroup(){return this.groupNode}getUniformHash(a){return this.getHash(a)}onUpdate(a,y){const x=this.getSelf();return a=a.bind(x),super.onUpdate(E=>{const z=a(E,x);z!==void 0&&(this.value=z)},y)}getInputType(a){let y=super.getInputType(a);return y==="bool"&&(y="uint"),y}generate(a,y){const x=this.getNodeType(a),E=this.getUniformHash(a);let z=a.getNodeFromHash(E);z===void 0&&(a.setHashNode(this,E),z=this);const ee=z.getInputType(a),te=a.getUniformFromNode(z,ee,a.shaderStage,this.name||a.context.nodeName),ne=a.getPropertyName(te);a.context.nodeName!==void 0&&delete a.context.nodeName;let ie=ne;if(x==="bool"){const ae=a.getDataFromNode(this);let oe=ae.propertyName;if(oe===void 0){const le=a.getVarFromNode(this,null,"bool");oe=a.getPropertyName(le),ae.propertyName=oe,ie=a.format(ne,ee,x),a.addLineFlowCode(`${oe} = ${ie}`,this)}ie=oe}return a.format(ie,x,y)}}const bs=(b,a)=>{const y=jT(a||b),x=b&&b.isNode===!0?b.node&&b.node.value||b.value:b;return gr(new Cx(x,y))};class e8 extends zu{static get type(){return"ArrayNode"}constructor(a,y,x=null){super(a),this.count=y,this.values=x,this.isArrayNode=!0}getArrayCount(){return this.count}getNodeType(a){return this.nodeType===null&&(this.nodeType=this.values[0].getNodeType(a)),this.nodeType}getElementType(a){return this.getNodeType(a)}generate(a){const y=this.getNodeType(a);return a.generateArray(y,this.count,this.values)}}const t8=(...b)=>{let a;if(b.length===1){const y=b[0];a=new e8(null,y.length,y)}else{const y=b[0],x=b[1];a=new e8(y,x)}return gr(a)};pr("toArray",(b,a)=>t8(Array(a).fill(b)));class hX extends zu{static get type(){return"AssignNode"}constructor(a,y){super(),this.targetNode=a,this.sourceNode=y,this.isAssignNode=!0}hasDependencies(){return!1}getNodeType(a,y){return y!=="void"?this.targetNode.getNodeType(a):"void"}needsSplitAssign(a){const{targetNode:y}=this;if(a.isAvailable("swizzleAssign")===!1&&y.isSplitNode&&y.components.length>1){const x=a.getTypeLength(y.node.getNodeType(a));return nA.join("").slice(0,x)!==y.components}return!1}setup(a){const{targetNode:y,sourceNode:x}=this,E=a.getNodeProperties(y);E.assign=!0;const z=a.getNodeProperties(this);z.sourceNode=x,z.targetNode=y.context({assign:!0})}generate(a,y){const{targetNode:x,sourceNode:E}=a.getNodeProperties(this),z=this.needsSplitAssign(a),ee=x.getNodeType(a),te=x.build(a),ne=E.build(a,ee),ie=E.getNodeType(a),ae=a.getDataFromNode(this);let oe;if(ae.initialized===!0)y!=="void"&&(oe=te);else if(z){const le=a.getVarFromNode(this,null,ee),de=a.getPropertyName(le);a.addLineFlowCode(`${de} = ${ne}`,this);const he=x.node,Ae=he.node.context({assign:!0}).build(a);for(let me=0;me{const ae=ie.type,oe=ae==="pointer";let le;return oe?le="&"+ne.build(a):le=ne.build(a,ae),le};if(Array.isArray(z)){if(z.length>E.length)console.error("THREE.TSL: The number of provided parameters exceeds the expected number of inputs in 'Fn()'."),z.length=E.length;else if(z.length(a=a.length>1||a[0]&&a[0].isNode===!0?sA(a):gx(a[0]),gr(new pX(gr(b),a)));pr("call",r8);const mX={"==":"equal","!=":"notEqual","<":"lessThan",">":"greaterThan","<=":"lessThanEqual",">=":"greaterThanEqual","%":"mod"};class Rl extends zu{static get type(){return"OperatorNode"}constructor(a,y,x,...E){if(super(),E.length>0){let z=new Rl(a,y,x);for(let ee=0;ee>"||y==="<<")return a.getIntegerType(z);if(y==="!"||y==="&&"||y==="||"||y==="^^")return"bool";if(y==="=="||y==="!="||y==="<"||y===">"||y==="<="||y===">="){const te=Math.max(a.getTypeLength(z),a.getTypeLength(ee));return te>1?`bvec${te}`:"bool"}else{if(a.isMatrix(z)){if(ee==="float")return z;if(a.isVector(ee))return a.getVectorFromMatrix(z);if(a.isMatrix(ee))return z}else if(a.isMatrix(ee)){if(z==="float")return ee;if(a.isVector(z))return a.getVectorFromMatrix(ee)}return a.getTypeLength(ee)>a.getTypeLength(z)?ee:z}}generate(a,y){const x=this.op,{aNode:E,bNode:z}=this,ee=this.getNodeType(a);let te=null,ne=null;ee!=="void"?(te=E.getNodeType(a),ne=z?z.getNodeType(a):null,x==="<"||x===">"||x==="<="||x===">="||x==="=="||x==="!="?a.isVector(te)?ne=te:a.isVector(ne)?te=ne:te!==ne&&(te=ne="float"):x===">>"||x==="<<"?(te=ee,ne=a.changeComponentType(ne,"uint")):x==="%"?(te=ee,ne=a.isInteger(te)&&a.isInteger(ne)?ne:te):a.isMatrix(te)?ne==="float"?ne="float":a.isVector(ne)?ne=a.getVectorFromMatrix(te):a.isMatrix(ne)||(te=ne=ee):a.isMatrix(ne)?te==="float"?te="float":a.isVector(te)?te=a.getVectorFromMatrix(ne):te=ne=ee:te=ne=ee):te=ne=ee;const ie=E.build(a,te),ae=z?z.build(a,ne):null,oe=a.getFunctionOperator(x);if(y!=="void"){const le=a.renderer.coordinateSystem===Ut;if(x==="=="||x==="!="||x==="<"||x===">"||x==="<="||x===">=")return le?a.isVector(te)?a.format(`${this.getOperatorMethod(a,y)}( ${ie}, ${ae} )`,ee,y):a.format(`( ${ie} ${x} ${ae} )`,ee,y):a.format(`( ${ie} ${x} ${ae} )`,ee,y);if(x==="%")return a.isInteger(ne)?a.format(`( ${ie} % ${ae} )`,ee,y):a.format(`${this.getOperatorMethod(a,ee)}( ${ie}, ${ae} )`,ee,y);if(x==="!"||x==="~")return a.format(`(${x}${ie})`,te,y);if(oe)return a.format(`${oe}( ${ie}, ${ae} )`,ee,y);if(a.isMatrix(te)&&ne==="float")return a.format(`( ${ae} ${x} ${ie} )`,ee,y);if(te==="float"&&a.isMatrix(ne))return a.format(`${ie} ${x} ${ae}`,ee,y);{let de=`( ${ie} ${x} ${ae} )`;return!le&&ee==="bool"&&a.isVector(te)&&a.isVector(ne)&&(de=`all${de}`),a.format(de,ee,y)}}else if(te!=="void")return oe?a.format(`${oe}( ${ie}, ${ae} )`,ee,y):a.isMatrix(te)&&ne==="float"?a.format(`${ae} ${x} ${ie}`,ee,y):a.format(`${ie} ${x} ${ae}`,ee,y)}serialize(a){super.serialize(a),a.op=this.op}deserialize(a){super.deserialize(a),this.op=a.op}}const Eu=Gi(Rl,"+").setParameterLength(2,1/0).setName("add"),Za=Gi(Rl,"-").setParameterLength(2,1/0).setName("sub"),Ca=Gi(Rl,"*").setParameterLength(2,1/0).setName("mul"),Nf=Gi(Rl,"/").setParameterLength(2,1/0).setName("div"),Px=Gi(Rl,"%").setParameterLength(2).setName("mod"),QB=Gi(Rl,"==").setParameterLength(2).setName("equal"),i8=Gi(Rl,"!=").setParameterLength(2).setName("notEqual"),s8=Gi(Rl,"<").setParameterLength(2).setName("lessThan"),ZB=Gi(Rl,">").setParameterLength(2).setName("greaterThan"),a8=Gi(Rl,"<=").setParameterLength(2).setName("lessThanEqual"),o8=Gi(Rl,">=").setParameterLength(2).setName("greaterThanEqual"),l8=Gi(Rl,"&&").setParameterLength(2,1/0).setName("and"),u8=Gi(Rl,"||").setParameterLength(2,1/0).setName("or"),c8=Gi(Rl,"!").setParameterLength(1).setName("not"),d8=Gi(Rl,"^^").setParameterLength(2).setName("xor"),f8=Gi(Rl,"&").setParameterLength(2).setName("bitAnd"),h8=Gi(Rl,"~").setParameterLength(2).setName("bitNot"),p8=Gi(Rl,"|").setParameterLength(2).setName("bitOr"),m8=Gi(Rl,"^").setParameterLength(2).setName("bitXor"),g8=Gi(Rl,"<<").setParameterLength(2).setName("shiftLeft"),v8=Gi(Rl,">>").setParameterLength(2).setName("shiftRight"),A8=mn(([b])=>(b.addAssign(1),b)),y8=mn(([b])=>(b.subAssign(1),b)),x8=mn(([b])=>{const a=Xt(b).toConst();return b.addAssign(1),a}),b8=mn(([b])=>{const a=Xt(b).toConst();return b.subAssign(1),a});pr("add",Eu),pr("sub",Za),pr("mul",Ca),pr("div",Nf),pr("mod",Px),pr("equal",QB),pr("notEqual",i8),pr("lessThan",s8),pr("greaterThan",ZB),pr("lessThanEqual",a8),pr("greaterThanEqual",o8),pr("and",l8),pr("or",u8),pr("not",c8),pr("xor",d8),pr("bitAnd",f8),pr("bitNot",h8),pr("bitOr",p8),pr("bitXor",m8),pr("shiftLeft",g8),pr("shiftRight",v8),pr("incrementBefore",A8),pr("decrementBefore",y8),pr("increment",x8),pr("decrement",b8);const E8=(b,a)=>(console.warn('THREE.TSL: "modInt()" is deprecated. Use "mod( int( ... ) )" instead.'),Px(Xt(b),Xt(a)));pr("modInt",E8);class Mn extends zu{static get type(){return"MathNode"}constructor(a,y,x=null,E=null){if(super(),(a===Mn.MAX||a===Mn.MIN)&&arguments.length>3){let z=new Mn(a,y,x);for(let ee=2;eeee&&z>te?y:ee>te?x:te>z?E:y}getNodeType(a){const y=this.method;return y===Mn.LENGTH||y===Mn.DISTANCE||y===Mn.DOT?"float":y===Mn.CROSS?"vec3":y===Mn.ALL||y===Mn.ANY?"bool":y===Mn.EQUALS?a.changeComponentType(this.aNode.getNodeType(a),"bool"):this.getInputType(a)}setup(a){const{aNode:y,bNode:x,method:E}=this;let z=null;if(E===Mn.ONE_MINUS)z=Za(1,y);else if(E===Mn.RECIPROCAL)z=Nf(1,y);else if(E===Mn.DIFFERENCE)z=hl(Za(y,x));else if(E===Mn.TRANSFORM_DIRECTION){let ee=y,te=x;a.isMatrix(ee.getNodeType(a))?te=Ii(en(te),0):ee=Ii(en(ee),0);const ne=Ca(ee,te).xyz;z=ig(ne)}return z!==null?z:super.setup(a)}generate(a,y){if(a.getNodeProperties(this).outputNode)return super.generate(a,y);let E=this.method;const z=this.getNodeType(a),ee=this.getInputType(a),te=this.aNode,ne=this.bNode,ie=this.cNode,ae=a.renderer.coordinateSystem;if(E===Mn.NEGATE)return a.format("( - "+te.build(a,ee)+" )",z,y);{const oe=[];return E===Mn.CROSS?oe.push(te.build(a,z),ne.build(a,z)):ae===Ut&&E===Mn.STEP?oe.push(te.build(a,a.getTypeLength(te.getNodeType(a))===1?"float":ee),ne.build(a,ee)):ae===Ut&&(E===Mn.MIN||E===Mn.MAX)?oe.push(te.build(a,ee),ne.build(a,a.getTypeLength(ne.getNodeType(a))===1?"float":ee)):E===Mn.REFRACT?oe.push(te.build(a,ee),ne.build(a,ee),ie.build(a,"float")):E===Mn.MIX?oe.push(te.build(a,ee),ne.build(a,ee),ie.build(a,a.getTypeLength(ie.getNodeType(a))===1?"float":ee)):(ae===Sn&&E===Mn.ATAN&&ne!==null&&(E="atan2"),a.shaderStage!=="fragment"&&(E===Mn.DFDX||E===Mn.DFDY)&&(console.warn(`THREE.TSL: '${E}' is not supported in the ${a.shaderStage} stage.`),E="/*"+E+"*/"),oe.push(te.build(a,ee)),ne!==null&&oe.push(ne.build(a,ee)),ie!==null&&oe.push(ie.build(a,ee))),a.format(`${a.getMethod(E,z)}( ${oe.join(", ")} )`,z,y)}}serialize(a){super.serialize(a),a.method=this.method}deserialize(a){super.deserialize(a),this.method=a.method}}Mn.ALL="all",Mn.ANY="any",Mn.RADIANS="radians",Mn.DEGREES="degrees",Mn.EXP="exp",Mn.EXP2="exp2",Mn.LOG="log",Mn.LOG2="log2",Mn.SQRT="sqrt",Mn.INVERSE_SQRT="inversesqrt",Mn.FLOOR="floor",Mn.CEIL="ceil",Mn.NORMALIZE="normalize",Mn.FRACT="fract",Mn.SIN="sin",Mn.COS="cos",Mn.TAN="tan",Mn.ASIN="asin",Mn.ACOS="acos",Mn.ATAN="atan",Mn.ABS="abs",Mn.SIGN="sign",Mn.LENGTH="length",Mn.NEGATE="negate",Mn.ONE_MINUS="oneMinus",Mn.DFDX="dFdx",Mn.DFDY="dFdy",Mn.ROUND="round",Mn.RECIPROCAL="reciprocal",Mn.TRUNC="trunc",Mn.FWIDTH="fwidth",Mn.TRANSPOSE="transpose",Mn.DETERMINANT="determinant",Mn.INVERSE="inverse",Mn.BITCAST="bitcast",Mn.EQUALS="equals",Mn.MIN="min",Mn.MAX="max",Mn.STEP="step",Mn.REFLECT="reflect",Mn.DISTANCE="distance",Mn.DIFFERENCE="difference",Mn.DOT="dot",Mn.CROSS="cross",Mn.POW="pow",Mn.TRANSFORM_DIRECTION="transformDirection",Mn.MIX="mix",Mn.CLAMP="clamp",Mn.REFRACT="refract",Mn.SMOOTHSTEP="smoothstep",Mn.FACEFORWARD="faceforward";const w8=ft(1e-6),gX=ft(1e6),Ow=ft(Math.PI),vX=ft(Math.PI*2),C8=Gi(Mn,Mn.ALL).setParameterLength(1),P8=Gi(Mn,Mn.ANY).setParameterLength(1),B8=Gi(Mn,Mn.RADIANS).setParameterLength(1),S8=Gi(Mn,Mn.DEGREES).setParameterLength(1),YB=Gi(Mn,Mn.EXP).setParameterLength(1),W0=Gi(Mn,Mn.EXP2).setParameterLength(1),Rw=Gi(Mn,Mn.LOG).setParameterLength(1),im=Gi(Mn,Mn.LOG2).setParameterLength(1),sm=Gi(Mn,Mn.SQRT).setParameterLength(1),JB=Gi(Mn,Mn.INVERSE_SQRT).setParameterLength(1),am=Gi(Mn,Mn.FLOOR).setParameterLength(1),zw=Gi(Mn,Mn.CEIL).setParameterLength(1),ig=Gi(Mn,Mn.NORMALIZE).setParameterLength(1),sg=Gi(Mn,Mn.FRACT).setParameterLength(1),Lf=Gi(Mn,Mn.SIN).setParameterLength(1),ag=Gi(Mn,Mn.COS).setParameterLength(1),M8=Gi(Mn,Mn.TAN).setParameterLength(1),D8=Gi(Mn,Mn.ASIN).setParameterLength(1),KB=Gi(Mn,Mn.ACOS).setParameterLength(1),kw=Gi(Mn,Mn.ATAN).setParameterLength(1,2),hl=Gi(Mn,Mn.ABS).setParameterLength(1),Bx=Gi(Mn,Mn.SIGN).setParameterLength(1),om=Gi(Mn,Mn.LENGTH).setParameterLength(1),T8=Gi(Mn,Mn.NEGATE).setParameterLength(1),I8=Gi(Mn,Mn.ONE_MINUS).setParameterLength(1),qB=Gi(Mn,Mn.DFDX).setParameterLength(1),_B=Gi(Mn,Mn.DFDY).setParameterLength(1),F8=Gi(Mn,Mn.ROUND).setParameterLength(1),N8=Gi(Mn,Mn.RECIPROCAL).setParameterLength(1),$B=Gi(Mn,Mn.TRUNC).setParameterLength(1),L8=Gi(Mn,Mn.FWIDTH).setParameterLength(1),O8=Gi(Mn,Mn.TRANSPOSE).setParameterLength(1),R8=Gi(Mn,Mn.DETERMINANT).setParameterLength(1),z8=Gi(Mn,Mn.INVERSE).setParameterLength(1),AX=Gi(Mn,Mn.BITCAST).setParameterLength(2),k8=(b,a)=>(console.warn('THREE.TSL: "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"'),QB(b,a)),Kd=Gi(Mn,Mn.MIN).setParameterLength(2,1/0),Zl=Gi(Mn,Mn.MAX).setParameterLength(2,1/0),Hw=Gi(Mn,Mn.STEP).setParameterLength(2),H8=Gi(Mn,Mn.REFLECT).setParameterLength(2),U8=Gi(Mn,Mn.DISTANCE).setParameterLength(2),j8=Gi(Mn,Mn.DIFFERENCE).setParameterLength(2),tv=Gi(Mn,Mn.DOT).setParameterLength(2),Uw=Gi(Mn,Mn.CROSS).setParameterLength(2),xh=Gi(Mn,Mn.POW).setParameterLength(2),eS=Gi(Mn,Mn.POW,2).setParameterLength(1),V8=Gi(Mn,Mn.POW,3).setParameterLength(1),G8=Gi(Mn,Mn.POW,4).setParameterLength(1),X8=Gi(Mn,Mn.TRANSFORM_DIRECTION).setParameterLength(2),W8=b=>Ca(Bx(b),xh(hl(b),1/3)),tS=b=>tv(b,b),ao=Gi(Mn,Mn.MIX).setParameterLength(3),bh=(b,a=0,y=1)=>gr(new Mn(Mn.CLAMP,gr(b),gr(a),gr(y))),nS=b=>bh(b),rS=Gi(Mn,Mn.REFRACT).setParameterLength(3),Eh=Gi(Mn,Mn.SMOOTHSTEP).setParameterLength(3),iS=Gi(Mn,Mn.FACEFORWARD).setParameterLength(3),Q8=mn(([b])=>{const x=43758.5453,E=tv(b.xy,Er(12.9898,78.233)),z=Px(E,Ow);return sg(Lf(z).mul(x))}),Z8=(b,a,y)=>ao(a,y,b),Y8=(b,a,y)=>Eh(a,y,b),J8=(b,a)=>Hw(a,b),K8=(b,a)=>(console.warn('THREE.TSL: "atan2" is overloaded. Use "atan" instead.'),kw(b,a)),yX=iS,xX=JB;pr("all",C8),pr("any",P8),pr("equals",k8),pr("radians",B8),pr("degrees",S8),pr("exp",YB),pr("exp2",W0),pr("log",Rw),pr("log2",im),pr("sqrt",sm),pr("inverseSqrt",JB),pr("floor",am),pr("ceil",zw),pr("normalize",ig),pr("fract",sg),pr("sin",Lf),pr("cos",ag),pr("tan",M8),pr("asin",D8),pr("acos",KB),pr("atan",kw),pr("abs",hl),pr("sign",Bx),pr("length",om),pr("lengthSq",tS),pr("negate",T8),pr("oneMinus",I8),pr("dFdx",qB),pr("dFdy",_B),pr("round",F8),pr("reciprocal",N8),pr("trunc",$B),pr("fwidth",L8),pr("atan2",K8),pr("min",Kd),pr("max",Zl),pr("step",J8),pr("reflect",H8),pr("distance",U8),pr("dot",tv),pr("cross",Uw),pr("pow",xh),pr("pow2",eS),pr("pow3",V8),pr("pow4",G8),pr("transformDirection",X8),pr("mix",Z8),pr("clamp",bh),pr("refract",rS),pr("smoothstep",Y8),pr("faceForward",iS),pr("difference",j8),pr("saturate",nS),pr("cbrt",W8),pr("transpose",O8),pr("determinant",R8),pr("inverse",z8),pr("rand",Q8);class bX extends Us{static get type(){return"ConditionalNode"}constructor(a,y,x=null){super(),this.condNode=a,this.ifNode=y,this.elseNode=x}getNodeType(a){const{ifNode:y,elseNode:x}=a.getNodeProperties(this);if(y===void 0)return a.flowBuildStage(this,"setup"),this.getNodeType(a);const E=y.getNodeType(a);if(x!==null){const z=x.getNodeType(a);if(a.getTypeLength(z)>a.getTypeLength(E))return z}return E}setup(a){const y=this.condNode.cache(),x=this.ifNode.cache(),E=this.elseNode?this.elseNode.cache():null,z=a.context.nodeBlock;a.getDataFromNode(x).parentNodeBlock=z,E!==null&&(a.getDataFromNode(E).parentNodeBlock=z);const ee=a.getNodeProperties(this);ee.condNode=y,ee.ifNode=x.context({nodeBlock:x}),ee.elseNode=E?E.context({nodeBlock:E}):null}generate(a,y){const x=this.getNodeType(a),E=a.getDataFromNode(this);if(E.nodeProperty!==void 0)return E.nodeProperty;const{condNode:z,ifNode:ee,elseNode:te}=a.getNodeProperties(this),ne=a.currentFunctionNode,ie=y!=="void",ae=ie?Ep(x).build(a):"";E.nodeProperty=ae;const oe=z.build(a,"bool");a.addFlowCode(` ${a.tab}if ( ${oe} ) { `).addFlowTab();let le=ee.build(a,x);if(le&&(ie?le=ae+" = "+le+";":(le="return "+le+";",ne===null&&(console.warn("THREE.TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values."),le="// "+le))),a.removeFlowTab().addFlowCode(a.tab+" "+le+` `+a.tab+"}"),te!==null){a.addFlowCode(` else { `).addFlowTab();let de=te.build(a,x);de&&(ie?de=ae+" = "+de+";":(de="return "+de+";",ne===null&&(console.warn("THREE.TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values."),de="// "+de))),a.removeFlowTab().addFlowCode(a.tab+" "+de+` `+a.tab+`} `)}else a.addFlowCode(` `);return a.format(ae,x,y)}}const Bc=oa(bX).setParameterLength(2,3);pr("select",Bc);class q8 extends Us{static get type(){return"ContextNode"}constructor(a,y={}){super(),this.isContextNode=!0,this.node=a,this.value=y}getScope(){return this.node.getScope()}getNodeType(a){return this.node.getNodeType(a)}analyze(a){const y=a.getContext();a.setContext(Dl(Dl({},a.context),this.value)),this.node.build(a),a.setContext(y)}setup(a){const y=a.getContext();a.setContext(Dl(Dl({},a.context),this.value)),this.node.build(a),a.setContext(y)}generate(a,y){const x=a.getContext();a.setContext(Dl(Dl({},a.context),this.value));const E=this.node.build(a,y);return a.setContext(x),E}}const jw=oa(q8).setParameterLength(1,2),sS=(b,a)=>jw(b,{nodeName:a});function _8(b,a){return console.warn('THREE.TSL: "label()" has been deprecated. Use "setName()" instead.'),sS(b,a)}pr("context",jw),pr("label",_8),pr("setName",sS);class Vw extends Us{static get type(){return"VarNode"}constructor(a,y=null,x=!1){super(),this.node=a,this.name=y,this.global=!0,this.isVarNode=!0,this.readOnly=x,this.parents=!0,this.intent=!1}setIntent(a){return this.intent=a,this}getIntent(){return this.intent}getMemberType(a,y){return this.node.getMemberType(a,y)}getElementType(a){return this.node.getElementType(a)}getNodeType(a){return this.node.getNodeType(a)}getArrayCount(a){return this.node.getArrayCount(a)}build(...a){return this.intent===!0&&a[0].getNodeProperties(this).assign!==!0?this.node.build(...a):super.build(...a)}generate(a){const{node:y,name:x,readOnly:E}=this,{renderer:z}=a,ee=z.backend.isWebGPUBackend===!0;let te=!1,ne=!1;E&&(te=a.isDeterministic(y),ne=ee?E:te);const ie=a.getVectorType(this.getNodeType(a)),ae=y.build(a,ie),oe=a.getVarFromNode(this,x,ie,void 0,ne),le=a.getPropertyName(oe);let de=le;if(ne)if(ee)de=te?`const ${le}`:`let ${le}`;else{const he=y.getArrayCount(a);de=`const ${a.getVar(oe.type,le,he)}`}return a.addLineFlowCode(`${de} = ${ae}`,this),le}}const Gw=oa(Vw),$8=(b,a=null)=>Gw(b,a).toStack(),eI=(b,a=null)=>Gw(b,a,!0).toStack(),tI=b=>Pw()===null?b:Gw(b).setIntent(!0).toStack();pr("toVar",$8),pr("toConst",eI),pr("toVarIntent",tI);const nI=b=>(console.warn('TSL: "temp( node )" is deprecated. Use "Var( node )" or "node.toVar()" instead.'),Gw(b));pr("temp",nI);class EX extends Us{static get type(){return"SubBuild"}constructor(a,y,x=null){super(x),this.node=a,this.name=y,this.isSubBuildNode=!0}getNodeType(a){if(this.nodeType!==null)return this.nodeType;a.addSubBuild(this.name);const y=this.node.getNodeType(a);return a.removeSubBuild(),y}build(a,...y){a.addSubBuild(this.name);const x=this.node.build(a,...y);return a.removeSubBuild(),x}}const Q0=(b,a,y=null)=>gr(new EX(gr(b),a,y));class wX extends Us{static get type(){return"VaryingNode"}constructor(a,y=null){super(),this.node=a,this.name=y,this.isVaryingNode=!0,this.interpolationType=null,this.interpolationSampling=null,this.global=!0}setInterpolation(a,y=null){return this.interpolationType=a,this.interpolationSampling=y,this}getHash(a){return this.name||super.getHash(a)}getNodeType(a){return this.node.getNodeType(a)}setupVarying(a){const y=a.getNodeProperties(this);let x=y.varying;if(x===void 0){const E=this.name,z=this.getNodeType(a),ee=this.interpolationType,te=this.interpolationSampling;y.varying=x=a.getVaryingFromNode(this,E,z,ee,te),y.node=Q0(this.node,"VERTEX")}return x.needsInterpolation||(x.needsInterpolation=a.shaderStage==="fragment"),x}setup(a){this.setupVarying(a),a.flowNodeFromShaderStage(hx.VERTEX,this.node)}analyze(a){this.setupVarying(a),a.flowNodeFromShaderStage(hx.VERTEX,this.node)}generate(a){const y=a.getSubBuildProperty("property",a.currentStack),x=a.getNodeProperties(this),E=this.setupVarying(a);if(x[y]===void 0){const z=this.getNodeType(a),ee=a.getPropertyName(E,hx.VERTEX);a.flowNodeFromShaderStage(hx.VERTEX,x.node,z,ee),x[y]=ee}return a.getPropertyName(E)}}const lm=oa(wX).setParameterLength(1,2),rI=b=>lm(b);pr("toVarying",lm),pr("toVertexStage",rI),pr("varying",(...b)=>(console.warn("THREE.TSL: .varying() has been renamed to .toVarying()."),lm(...b))),pr("vertexStage",(...b)=>(console.warn("THREE.TSL: .vertexStage() has been renamed to .toVertexStage()."),lm(...b)));const iI=mn(([b])=>{const a=b.mul(.9478672986).add(.0521327014).pow(2.4),y=b.mul(.0773993808),x=b.lessThanEqual(.04045);return ao(a,y,x)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),sI=mn(([b])=>{const a=b.pow(.41666).mul(1.055).sub(.055),y=b.mul(12.92),x=b.lessThanEqual(.0031308);return ao(a,y,x)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),aS="WorkingColorSpace",CX="OutputColorSpace";class oS extends zu{static get type(){return"ColorSpaceNode"}constructor(a,y,x){super("vec4"),this.colorNode=a,this.source=y,this.target=x}resolveColorSpace(a,y){return y===aS?aa.workingColorSpace:y===CX?a.context.outputColorSpace||a.renderer.outputColorSpace:y}setup(a){const{colorNode:y}=this,x=this.resolveColorSpace(a,this.source),E=this.resolveColorSpace(a,this.target);let z=y;return aa.enabled===!1||x===E||!x||!E||(aa.getTransfer(x)===On&&(z=Ii(iI(z.rgb),z.a)),aa.getPrimaries(x)!==aa.getPrimaries(E)&&(z=Ii(td(aa._getMatrix(new Aa,x,E)).mul(z.rgb),z.a)),aa.getTransfer(E)===On&&(z=Ii(sI(z.rgb),z.a))),z}}const aI=(b,a)=>gr(new oS(gr(b),aS,a)),Xw=(b,a)=>gr(new oS(gr(b),a,aS)),PX=(b,a,y)=>gr(new oS(gr(b),a,y));pr("workingToColorSpace",aI),pr("colorSpaceToWorking",Xw);let BX=class extends rA{static get type(){return"ReferenceElementNode"}constructor(a,y){super(a,y),this.referenceNode=a,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(a){const y=super.generate(a),x=this.referenceNode.getNodeType(),E=this.getNodeType();return a.format(y,x,E)}};class oI extends Us{static get type(){return"ReferenceBaseNode"}constructor(a,y,x=null,E=null){super(),this.property=a,this.uniformType=y,this.object=x,this.count=E,this.properties=a.split("."),this.reference=x,this.node=null,this.group=null,this.updateType=wa.OBJECT}setGroup(a){return this.group=a,this}element(a){return gr(new BX(this,gr(a)))}setNodeType(a){const y=bs(null,a).getSelf();this.group!==null&&y.setGroup(this.group),this.node=y}getNodeType(a){return this.node===null&&(this.updateReference(a),this.updateValue()),this.node.getNodeType(a)}getValueFromReference(a=this.reference){const{properties:y}=this;let x=a[y[0]];for(let E=1;Egr(new oI(b,a,y));class MX extends oI{static get type(){return"RendererReferenceNode"}constructor(a,y,x=null){super(a,y,x),this.renderer=x,this.setGroup(Zs)}updateReference(a){return this.reference=this.renderer!==null?this.renderer:a.renderer,this.reference}}const lI=(b,a,y=null)=>gr(new MX(b,a,y));class DX extends zu{static get type(){return"ToneMappingNode"}constructor(a,y=cI,x=null){super("vec3"),this.toneMapping=a,this.exposureNode=y,this.colorNode=x}customCacheKey(){return cx(this.toneMapping)}setup(a){const y=this.colorNode||a.context.color,x=this.toneMapping;if(x===bc)return y;let E=null;const z=a.renderer.library.getToneMappingFunction(x);return z!==null?E=Ii(z(y.rgb,this.exposureNode),y.a):(console.error("ToneMappingNode: Unsupported Tone Mapping configuration.",x),E=y),E}}const uI=(b,a,y)=>gr(new DX(b,gr(a),gr(y))),cI=lI("toneMappingExposure","float");pr("toneMapping",(b,a,y)=>uI(a,y,b));class TX extends IB{static get type(){return"BufferAttributeNode"}constructor(a,y=null,x=0,E=0){super(a,y),this.isBufferNode=!0,this.bufferType=y,this.bufferStride=x,this.bufferOffset=E,this.usage=xe,this.instanced=!1,this.attribute=null,this.global=!0,a&&a.isBufferAttribute===!0&&(this.attribute=a,this.usage=a.usage,this.instanced=a.isInstancedBufferAttribute)}getHash(a){if(this.bufferStride===0&&this.bufferOffset===0){let y=a.globalCache.getData(this.value);return y===void 0&&(y={node:this},a.globalCache.setData(this.value,y)),y.node.uuid}return this.uuid}getNodeType(a){return this.bufferType===null&&(this.bufferType=a.getTypeFromAttribute(this.attribute)),this.bufferType}setup(a){if(this.attribute!==null)return;const y=this.getNodeType(a),x=this.value,E=a.getTypeLength(y),z=this.bufferStride||E,ee=this.bufferOffset,te=x.isInterleavedBuffer===!0?x:new xE(x,z),ne=new kv(te,E,ee);te.setUsage(this.usage),this.attribute=ne,this.attribute.isInstancedBufferAttribute=this.instanced}generate(a){const y=this.getNodeType(a),x=a.getBufferAttributeFromNode(this,y),E=a.getPropertyName(x);let z=null;return a.shaderStage==="vertex"||a.shaderStage==="compute"?(this.name=E,z=E):z=lm(this).build(a,y),z}getInputType(){return"bufferAttribute"}setUsage(a){return this.usage=a,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=a),this}setInstanced(a){return this.instanced=a,this}}const Sx=(b,a=null,y=0,x=0)=>gr(new TX(b,a,y,x)),dI=(b,a=null,y=0,x=0)=>Sx(b,a,y,x).setUsage(De),Ww=(b,a=null,y=0,x=0)=>Sx(b,a,y,x).setInstanced(!0),lS=(b,a=null,y=0,x=0)=>dI(b,a,y,x).setInstanced(!0);pr("toAttribute",b=>Sx(b.value));class IX extends Us{static get type(){return"ComputeNode"}constructor(a,y){super("void"),this.isComputeNode=!0,this.computeNode=a,this.workgroupSize=y,this.count=null,this.version=1,this.name="",this.updateBeforeType=wa.OBJECT,this.onInitFunction=null}setCount(a){return this.count=a,this}getCount(){return this.count}dispose(){this.dispatchEvent({type:"dispose"})}setName(a){return this.name=a,this}label(a){return console.warn('THREE.TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(a)}onInit(a){return this.onInitFunction=a,this}updateBefore({renderer:a}){a.compute(this)}setup(a){const y=this.computeNode.build(a);if(y){const x=a.getNodeProperties(this);x.outputComputeNode=y.outputNode,y.outputNode=null}return y}generate(a,y){const{shaderStage:x}=a;if(x==="compute"){const E=this.computeNode.build(a,"void");E!==""&&a.addLineFlowCode(E,this)}else{const z=a.getNodeProperties(this).outputComputeNode;if(z)return z.build(a,y)}}}const uS=(b,a=[64])=>{(a.length===0||a.length>3)&&console.error("THREE.TSL: compute() workgroupSize must have 1, 2, or 3 elements");for(let y=0;yuS(b,y).setCount(a);pr("compute",fI),pr("computeKernel",uS);class FX extends Us{static get type(){return"CacheNode"}constructor(a,y=!0){super(),this.node=a,this.parent=y,this.isCacheNode=!0}getNodeType(a){const y=a.getCache(),x=a.getCacheFromNode(this,this.parent);a.setCache(x);const E=this.node.getNodeType(a);return a.setCache(y),E}build(a,...y){const x=a.getCache(),E=a.getCacheFromNode(this,this.parent);a.setCache(E);const z=this.node.build(a,...y);return a.setCache(x),z}}const Mx=(b,a)=>gr(new FX(gr(b),a));pr("cache",Mx);class NX extends Us{static get type(){return"BypassNode"}constructor(a,y){super(),this.isBypassNode=!0,this.outputNode=a,this.callNode=y}getNodeType(a){return this.outputNode.getNodeType(a)}generate(a){const y=this.callNode.build(a,"void");return y!==""&&a.addLineFlowCode(y,this),this.outputNode.build(a)}}const hI=oa(NX).setParameterLength(2);pr("bypass",hI);class pI extends Us{static get type(){return"RemapNode"}constructor(a,y,x,E=ft(0),z=ft(1)){super(),this.node=a,this.inLowNode=y,this.inHighNode=x,this.outLowNode=E,this.outHighNode=z,this.doClamp=!0}setup(){const{node:a,inLowNode:y,inHighNode:x,outLowNode:E,outHighNode:z,doClamp:ee}=this;let te=a.sub(y).div(x.sub(y));return ee===!0&&(te=te.clamp()),te.mul(z.sub(E)).add(E)}}const mI=oa(pI,null,null,{doClamp:!1}).setParameterLength(3,5),gI=oa(pI).setParameterLength(3,5);pr("remap",mI),pr("remapClamp",gI);class Qw extends Us{static get type(){return"ExpressionNode"}constructor(a="",y="void"){super(y),this.snippet=a}generate(a,y){const x=this.getNodeType(a),E=this.snippet;if(x==="void")a.addLineFlowCode(E,this);else return a.format(E,x,y)}}const og=oa(Qw).setParameterLength(1,2),vI=b=>(b?Bc(b,og("discard")):og("discard")).toStack(),LX=()=>og("return").toStack();pr("discard",vI);class OX extends zu{static get type(){return"RenderOutputNode"}constructor(a,y,x){super("vec4"),this.colorNode=a,this.toneMapping=y,this.outputColorSpace=x,this.isRenderOutputNode=!0}setup({context:a}){let y=this.colorNode||a.color;const x=(this.toneMapping!==null?this.toneMapping:a.toneMapping)||bc,E=(this.outputColorSpace!==null?this.outputColorSpace:a.outputColorSpace)||vn;return x!==bc&&(y=y.toneMapping(x)),E!==vn&&E!==aa.workingColorSpace&&(y=y.workingToColorSpace(E)),y}}const cS=(b,a=null,y=null)=>gr(new OX(gr(b),a,y));pr("renderOutput",cS);class RX extends zu{static get type(){return"DebugNode"}constructor(a,y=null){super(),this.node=a,this.callback=y}getNodeType(a){return this.node.getNodeType(a)}setup(a){return this.node.build(a)}analyze(a){return this.node.build(a)}generate(a){const y=this.callback,x=this.node.build(a),E="--- TSL debug - "+a.shaderStage+" shader ---",z="-".repeat(E.length);let ee="";return ee+="// #"+E+`# `,ee+=a.flow.code.replace(/^\t/mg,"")+` `,ee+="/* ... */ "+x+` /* ... */ `,ee+="// #"+z+`# `,y!==null?y(a,ee):console.log(ee),x}}const AI=(b,a=null)=>gr(new RX(gr(b),a)).toStack();pr("debug",AI);function zX(b){console.warn("THREE.TSL: AddNodeElement has been removed in favor of tree-shaking. Trying add",b)}class yI extends Us{static get type(){return"AttributeNode"}constructor(a,y=null){super(y),this.global=!0,this._attributeName=a}getHash(a){return this.getAttributeName(a)}getNodeType(a){let y=this.nodeType;if(y===null){const x=this.getAttributeName(a);if(a.hasGeometryAttribute(x)){const E=a.geometry.getAttribute(x);y=a.getTypeFromAttribute(E)}else y="float"}return y}setAttributeName(a){return this._attributeName=a,this}getAttributeName(){return this._attributeName}generate(a){const y=this.getAttributeName(a),x=this.getNodeType(a);if(a.hasGeometryAttribute(y)===!0){const z=a.geometry.getAttribute(y),ee=a.getTypeFromAttribute(z),te=a.getAttribute(y,ee);return a.shaderStage==="vertex"?a.format(te.name,ee,x):lm(this).build(a,x)}else return console.warn(`AttributeNode: Vertex attribute "${y}" not found on geometry.`),a.generateConst(x)}serialize(a){super.serialize(a),a.global=this.global,a._attributeName=this._attributeName}deserialize(a){super.deserialize(a),this.global=a.global,this._attributeName=a._attributeName}}const Pd=(b,a=null)=>gr(new yI(b,a)),Xo=(b=0)=>Pd("uv"+(b>0?b:""),"vec2");class kX extends Us{static get type(){return"TextureSizeNode"}constructor(a,y=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=a,this.levelNode=y}generate(a,y){const x=this.textureNode.build(a,"property"),E=this.levelNode===null?"0":this.levelNode.build(a,"int");return a.format(`${a.getMethod("textureDimensions")}( ${x}, ${E} )`,this.getNodeType(a),y)}}const nv=oa(kX).setParameterLength(1,2);class HX extends Cx{static get type(){return"MaxMipLevelNode"}constructor(a){super(0),this._textureNode=a,this.updateType=wa.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const a=this.texture,y=a.images,x=y&&y.length>0?y[0]&&y[0].image||y[0]:a.image;if(x&&x.width!==void 0){const{width:E,height:z}=x;this.value=Math.log2(Math.max(E,z))}}}const dS=oa(HX).setParameterLength(1),fS=new yu;class um extends Cx{static get type(){return"TextureNode"}constructor(a=fS,y=null,x=null,E=null){super(a),this.isTextureNode=!0,this.uvNode=y,this.levelNode=x,this.biasNode=E,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=wa.NONE,this.referenceNode=null,this._value=a,this._matrixUniform=null,this.setUpdateMatrix(y===null)}set value(a){this.referenceNode?this.referenceNode.value=a:this._value=a}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}getNodeType(){return this.value.isDepthTexture===!0?"float":this.value.type===Ao?"uvec4":this.value.type===Vl?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return Xo(this.value.channel)}updateReference(){return this.value}getTransformedUV(a){return this._matrixUniform===null&&(this._matrixUniform=bs(this.value.matrix)),this._matrixUniform.mul(en(a,1)).xy}setUpdateMatrix(a){return this.updateMatrix=a,this.updateType=a?wa.OBJECT:wa.NONE,this}setupUV(a,y){const x=this.value;return a.isFlipY()&&(x.image instanceof ImageBitmap&&x.flipY===!0||x.isRenderTargetTexture===!0||x.isFramebufferTexture===!0||x.isDepthTexture===!0)&&(this.sampler?y=y.flipY():y=y.setY(Xt(nv(this,this.levelNode).y).sub(y.y).sub(1))),y}setup(a){const y=a.getNodeProperties(this);y.referenceNode=this.referenceNode;const x=this.value;if(!x||x.isTexture!==!0)throw new Error("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().");let E=this.uvNode;(E===null||a.context.forceUVContext===!0)&&a.context.getUV&&(E=a.context.getUV(this,a)),E||(E=this.getDefaultUV()),this.updateMatrix===!0&&(E=this.getTransformedUV(E)),E=this.setupUV(a,E);let z=this.levelNode;z===null&&a.context.getTextureLevel&&(z=a.context.getTextureLevel(this)),y.uvNode=E,y.levelNode=z,y.biasNode=this.biasNode,y.compareNode=this.compareNode,y.gradNode=this.gradNode,y.depthNode=this.depthNode}generateUV(a,y){return y.build(a,this.sampler===!0?"vec2":"ivec2")}generateSnippet(a,y,x,E,z,ee,te,ne){const ie=this.value;let ae;return E?ae=a.generateTextureLevel(ie,y,x,E,ee):z?ae=a.generateTextureBias(ie,y,x,z,ee):ne?ae=a.generateTextureGrad(ie,y,x,ne,ee):te?ae=a.generateTextureCompare(ie,y,x,te,ee):this.sampler===!1?ae=a.generateTextureLoad(ie,y,x,ee):ae=a.generateTexture(ie,y,x,ee),ae}generate(a,y){const x=this.value,E=a.getNodeProperties(this),z=super.generate(a,"property");if(/^sampler/.test(y))return z+"_sampler";if(a.isReference(y))return z;{const ee=a.getDataFromNode(this);let te=ee.propertyName;if(te===void 0){const{uvNode:ae,levelNode:oe,biasNode:le,compareNode:de,depthNode:he,gradNode:ye}=E,Ae=this.generateUV(a,ae),me=oe?oe.build(a,"float"):null,Ce=le?le.build(a,"float"):null,Ee=he?he.build(a,"int"):null,Be=de?de.build(a,"float"):null,Ne=ye?[ye[0].build(a,"vec2"),ye[1].build(a,"vec2")]:null,Fe=a.getVarFromNode(this);te=a.getPropertyName(Fe);const ke=this.generateSnippet(a,z,Ae,me,Ce,Ee,Be,Ne);a.addLineFlowCode(`${te} = ${ke}`,this),ee.snippet=ke,ee.propertyName=te}let ne=te;const ie=this.getNodeType(a);return a.needsToWorkingColorSpace(x)&&(ne=Xw(og(ne,ie),x.colorSpace).setup(a).build(a,ie)),a.format(ne,ie,y)}}setSampler(a){return this.sampler=a,this}getSampler(){return this.sampler}uv(a){return console.warn("THREE.TextureNode: .uv() has been renamed. Use .sample() instead."),this.sample(a)}sample(a){const y=this.clone();return y.uvNode=gr(a),y.referenceNode=this.getSelf(),gr(y)}load(a){return this.sample(a).setSampler(!1)}blur(a){const y=this.clone();y.biasNode=gr(a).mul(dS(y)),y.referenceNode=this.getSelf();const x=y.value;return y.generateMipmaps===!1&&(x&&x.generateMipmaps===!1||x.minFilter===fo||x.magFilter===fo)&&(console.warn("THREE.TSL: texture().blur() requires mipmaps and sampling. Use .generateMipmaps=true and .minFilter/.magFilter=THREE.LinearFilter in the Texture."),y.biasNode=null),gr(y)}level(a){const y=this.clone();return y.levelNode=gr(a),y.referenceNode=this.getSelf(),gr(y)}size(a){return nv(this,a)}bias(a){const y=this.clone();return y.biasNode=gr(a),y.referenceNode=this.getSelf(),gr(y)}compare(a){const y=this.clone();return y.compareNode=gr(a),y.referenceNode=this.getSelf(),gr(y)}grad(a,y){const x=this.clone();return x.gradNode=[gr(a),gr(y)],x.referenceNode=this.getSelf(),gr(x)}depth(a){const y=this.clone();return y.depthNode=gr(a),y.referenceNode=this.getSelf(),gr(y)}serialize(a){super.serialize(a),a.value=this.value.toJSON(a.meta).uuid,a.sampler=this.sampler,a.updateMatrix=this.updateMatrix,a.updateType=this.updateType}deserialize(a){super.deserialize(a),this.value=a.meta.textures[a.value],this.sampler=a.sampler,this.updateMatrix=a.updateMatrix,this.updateType=a.updateType}update(){const a=this.value,y=this._matrixUniform;y!==null&&(y.value=a.matrix),a.matrixAutoUpdate===!0&&a.updateMatrix()}clone(){const a=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return a.sampler=this.sampler,a.depthNode=this.depthNode,a.compareNode=this.compareNode,a.gradNode=this.gradNode,a}}const UX=oa(um).setParameterLength(1,4).setName("texture"),Xa=(b=fS,a=null,y=null,x=null)=>{let E;return b&&b.isTextureNode===!0?(E=gr(b.clone()),E.referenceNode=b.getSelf(),a!==null&&(E.uvNode=gr(a)),y!==null&&(E.levelNode=gr(y)),x!==null&&(E.biasNode=gr(x))):E=UX(b,a,y,x),E},jX=(b=fS)=>Xa(b),iu=(...b)=>Xa(...b).setSampler(!1),VX=b=>(b.isNode===!0?b:Xa(b)).convert("sampler"),GX=b=>(b.isNode===!0?b:Xa(b)).convert("samplerComparison");class hS extends Cx{static get type(){return"BufferNode"}constructor(a,y,x=0){super(a,y),this.isBufferNode=!0,this.bufferType=y,this.bufferCount=x}getElementType(a){return this.getNodeType(a)}getInputType(){return"buffer"}}const Dx=(b,a,y)=>gr(new hS(b,a,y));class XX extends rA{static get type(){return"UniformArrayElementNode"}constructor(a,y){super(a,y),this.isArrayBufferElementNode=!0}generate(a){const y=super.generate(a),x=this.getNodeType(),E=this.node.getPaddedType();return a.format(y,E,x)}}class WX extends hS{static get type(){return"UniformArrayNode"}constructor(a,y=null){super(null),this.array=a,this.elementType=y===null?rg(a[0]):y,this.paddedType=this.getPaddedType(),this.updateType=wa.RENDER,this.isArrayBufferNode=!0}getNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const a=this.elementType;let y="vec4";return a==="mat2"?y="mat2":/mat/.test(a)===!0?y="mat4":a.charAt(0)==="i"?y="ivec4":a.charAt(0)==="u"&&(y="uvec4"),y}update(){const{array:a,value:y}=this,x=this.elementType;if(x==="float"||x==="int"||x==="uint")for(let E=0;Egr(new WX(b,a));class QX extends Us{constructor(a){super("float"),this.name=a,this.isBuiltinNode=!0}generate(){return this.name}}const Tx=oa(QX).setParameterLength(1),Zw=bs(0,"uint").setName("u_cameraIndex").setGroup(Lw("cameraIndex")).toVarying("v_cameraIndex"),lg=bs("float").setName("cameraNear").setGroup(Zs).onRenderUpdate(({camera:b})=>b.near),ug=bs("float").setName("cameraFar").setGroup(Zs).onRenderUpdate(({camera:b})=>b.far),Of=mn(({camera:b})=>{let a;if(b.isArrayCamera&&b.cameras.length>0){const y=[];for(const E of b.cameras)y.push(E.projectionMatrix);a=wh(y).setGroup(Zs).setName("cameraProjectionMatrices").element(b.isMultiViewCamera?Tx("gl_ViewID_OVR"):Zw).toVar("cameraProjectionMatrix")}else a=bs("mat4").setName("cameraProjectionMatrix").setGroup(Zs).onRenderUpdate(({camera:y})=>y.projectionMatrix);return a}).once()(),ZX=mn(({camera:b})=>{let a;if(b.isArrayCamera&&b.cameras.length>0){const y=[];for(const E of b.cameras)y.push(E.projectionMatrixInverse);a=wh(y).setGroup(Zs).setName("cameraProjectionMatricesInverse").element(b.isMultiViewCamera?Tx("gl_ViewID_OVR"):Zw).toVar("cameraProjectionMatrixInverse")}else a=bs("mat4").setName("cameraProjectionMatrixInverse").setGroup(Zs).onRenderUpdate(({camera:y})=>y.projectionMatrixInverse);return a}).once()(),Rf=mn(({camera:b})=>{let a;if(b.isArrayCamera&&b.cameras.length>0){const y=[];for(const E of b.cameras)y.push(E.matrixWorldInverse);a=wh(y).setGroup(Zs).setName("cameraViewMatrices").element(b.isMultiViewCamera?Tx("gl_ViewID_OVR"):Zw).toVar("cameraViewMatrix")}else a=bs("mat4").setName("cameraViewMatrix").setGroup(Zs).onRenderUpdate(({camera:y})=>y.matrixWorldInverse);return a}).once()(),YX=bs("mat4").setName("cameraWorldMatrix").setGroup(Zs).onRenderUpdate(({camera:b})=>b.matrixWorld),JX=bs("mat3").setName("cameraNormalMatrix").setGroup(Zs).onRenderUpdate(({camera:b})=>b.normalMatrix),Ix=bs(new ot).setName("cameraPosition").setGroup(Zs).onRenderUpdate(({camera:b},a)=>a.value.setFromMatrixPosition(b.matrixWorld)),xI=new kc;class Ka extends Us{static get type(){return"Object3DNode"}constructor(a,y=null){super(),this.scope=a,this.object3d=y,this.updateType=wa.OBJECT,this.uniformNode=new Cx(null)}getNodeType(){const a=this.scope;if(a===Ka.WORLD_MATRIX)return"mat4";if(a===Ka.POSITION||a===Ka.VIEW_POSITION||a===Ka.DIRECTION||a===Ka.SCALE)return"vec3";if(a===Ka.RADIUS)return"float"}update(a){const y=this.object3d,x=this.uniformNode,E=this.scope;if(E===Ka.WORLD_MATRIX)x.value=y.matrixWorld;else if(E===Ka.POSITION)x.value=x.value||new ot,x.value.setFromMatrixPosition(y.matrixWorld);else if(E===Ka.SCALE)x.value=x.value||new ot,x.value.setFromMatrixScale(y.matrixWorld);else if(E===Ka.DIRECTION)x.value=x.value||new ot,y.getWorldDirection(x.value);else if(E===Ka.VIEW_POSITION){const z=a.camera;x.value=x.value||new ot,x.value.setFromMatrixPosition(y.matrixWorld),x.value.applyMatrix4(z.matrixWorldInverse)}else if(E===Ka.RADIUS){const z=a.object.geometry;z.boundingSphere===null&&z.computeBoundingSphere(),xI.copy(z.boundingSphere).applyMatrix4(y.matrixWorld),x.value=xI.radius}}generate(a){const y=this.scope;return y===Ka.WORLD_MATRIX?this.uniformNode.nodeType="mat4":y===Ka.POSITION||y===Ka.VIEW_POSITION||y===Ka.DIRECTION||y===Ka.SCALE?this.uniformNode.nodeType="vec3":y===Ka.RADIUS&&(this.uniformNode.nodeType="float"),this.uniformNode.build(a)}serialize(a){super.serialize(a),a.scope=this.scope}deserialize(a){super.deserialize(a),this.scope=a.scope}}Ka.WORLD_MATRIX="worldMatrix",Ka.POSITION="position",Ka.SCALE="scale",Ka.VIEW_POSITION="viewPosition",Ka.DIRECTION="direction",Ka.RADIUS="radius";const KX=oa(Ka,Ka.DIRECTION).setParameterLength(1),qX=oa(Ka,Ka.WORLD_MATRIX).setParameterLength(1),bI=oa(Ka,Ka.POSITION).setParameterLength(1),_X=oa(Ka,Ka.SCALE).setParameterLength(1),$X=oa(Ka,Ka.VIEW_POSITION).setParameterLength(1),eW=oa(Ka,Ka.RADIUS).setParameterLength(1);class Ch extends Ka{static get type(){return"ModelNode"}constructor(a){super(a)}update(a){this.object3d=a.object,super.update(a)}}const tW=ui(Ch,Ch.DIRECTION),Ph=ui(Ch,Ch.WORLD_MATRIX),nW=ui(Ch,Ch.POSITION),rW=ui(Ch,Ch.SCALE),iW=ui(Ch,Ch.VIEW_POSITION),EI=ui(Ch,Ch.RADIUS),wI=bs(new Aa).onObjectUpdate(({object:b},a)=>a.value.getNormalMatrix(b.matrixWorld)),sW=bs(new ls).onObjectUpdate(({object:b},a)=>a.value.copy(b.matrixWorld).invert()),cg=mn(b=>b.renderer.overrideNodes.modelViewMatrix||CI).once()().toVar("modelViewMatrix"),CI=Rf.mul(Ph),pS=mn(b=>(b.context.isHighPrecisionModelViewMatrix=!0,bs("mat4").onObjectUpdate(({object:a,camera:y})=>a.modelViewMatrix.multiplyMatrices(y.matrixWorldInverse,a.matrixWorld)))).once()().toVar("highpModelViewMatrix"),mS=mn(b=>{const a=b.context.isHighPrecisionModelViewMatrix;return bs("mat3").onObjectUpdate(({object:y,camera:x})=>(a!==!0&&y.modelViewMatrix.multiplyMatrices(x.matrixWorldInverse,y.matrixWorld),y.normalMatrix.getNormalMatrix(y.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),jc=Pd("position","vec3"),su=jc.toVarying("positionLocal"),Yw=jc.toVarying("positionPrevious"),zf=mn(b=>Ph.mul(su).xyz.toVarying(b.getSubBuildProperty("v_positionWorld")),"vec3").once(["POSITION"])(),gS=mn(()=>su.transformDirection(Ph).toVarying("v_positionWorldDirection").normalize().toVar("positionWorldDirection"),"vec3").once(["POSITION"])(),au=mn(b=>b.context.setupPositionView().toVarying("v_positionView"),"vec3").once(["POSITION"])(),yl=au.negate().toVarying("v_positionViewDirection").normalize().toVar("positionViewDirection");class aW extends Us{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(a){if(a.shaderStage!=="fragment")return"true";const{renderer:y,material:x}=a;return y.coordinateSystem===Ut&&x.side===co?"false":a.getFrontFacing()}}const PI=ui(aW),vS=ft(PI).mul(2).sub(1),Z0=mn(([b],{material:a})=>{const y=a.side;return y===co?b=b.mul(-1):y===eo&&(b=b.mul(vS)),b}),Jw=Pd("normal","vec3"),qd=mn(b=>b.geometry.hasAttribute("normal")===!1?(console.warn('THREE.TSL: Vertex attribute "normal" not found on geometry.'),en(0,1,0)):Jw,"vec3").once()().toVar("normalLocal"),BI=au.dFdx().cross(au.dFdy()).normalize().toVar("normalFlat"),Y0=mn(b=>{let a;return b.material.flatShading===!0?a=BI:a=AS(qd).toVarying("v_normalViewGeometry").normalize(),a},"vec3").once()().toVar("normalViewGeometry"),SI=mn(b=>{let a=Y0.transformDirection(Rf);return b.material.flatShading!==!0&&(a=a.toVarying("v_normalWorldGeometry")),a.normalize().toVar("normalWorldGeometry")},"vec3").once()(),Lo=mn(({subBuildFn:b,material:a,context:y})=>{let x;return b==="NORMAL"||b==="VERTEX"?(x=Y0,a.flatShading!==!0&&(x=Z0(x))):x=y.setupNormal().context({getUV:null}),x},"vec3").once(["NORMAL","VERTEX"])().toVar("normalView"),rv=Lo.transformDirection(Rf).toVar("normalWorld"),cA=mn(({subBuildFn:b,context:a})=>{let y;return b==="NORMAL"||b==="VERTEX"?y=Lo:y=a.setupClearcoatNormal().context({getUV:null}),y},"vec3").once(["NORMAL","VERTEX"])().toVar("clearcoatNormalView"),MI=mn(([b,a=Ph])=>{const y=td(a),x=b.div(en(y[0].dot(y[0]),y[1].dot(y[1]),y[2].dot(y[2])));return y.mul(x).xyz}),AS=mn(([b],a)=>{const y=a.renderer.overrideNodes.modelNormalViewMatrix;if(y!==null)return y.transformDirection(b);const x=wI.mul(b);return Rf.transformDirection(x)}),oW=mn(()=>(console.warn('THREE.TSL: "transformedNormalView" is deprecated. Use "normalView" instead.'),Lo)).once(["NORMAL","VERTEX"])(),lW=mn(()=>(console.warn('THREE.TSL: "transformedNormalWorld" is deprecated. Use "normalWorld" instead.'),rv)).once(["NORMAL","VERTEX"])(),uW=mn(()=>(console.warn('THREE.TSL: "transformedClearcoatNormalView" is deprecated. Use "clearcoatNormalView" instead.'),cA)).once(["NORMAL","VERTEX"])(),DI=new Xd,yS=new ls,TI=bs(0).onReference(({material:b})=>b).onObjectUpdate(({material:b})=>b.refractionRatio),Kw=bs(1).onReference(({material:b})=>b).onObjectUpdate(function({material:b,scene:a}){return b.envMap?b.envMapIntensity:a.environmentIntensity}),xS=bs(new ls).onReference(function(b){return b.material}).onObjectUpdate(function({material:b,scene:a}){const y=a.environment!==null&&b.envMap===null?a.environmentRotation:b.envMapRotation;return y?(DI.copy(y),yS.makeRotationFromEuler(DI)):yS.identity(),yS}),II=yl.negate().reflect(Lo),FI=yl.negate().refract(Lo,TI),NI=II.transformDirection(Rf).toVar("reflectVector"),LI=FI.transformDirection(Rf).toVar("reflectVector"),OI=new Rv;class cW extends um{static get type(){return"CubeTextureNode"}constructor(a,y=null,x=null,E=null){super(a,y,x,E),this.isCubeTextureNode=!0}getInputType(){return"cubeTexture"}getDefaultUV(){const a=this.value;return a.mapping===Iu?NI:a.mapping===gl?LI:(console.error('THREE.CubeTextureNode: Mapping "%s" not supported.',a.mapping),en(0,0,0))}setUpdateMatrix(){}setupUV(a,y){const x=this.value;return(a.renderer.coordinateSystem===Sn||!x.isRenderTargetTexture)&&(y=en(y.x.negate(),y.yz)),xS.mul(y)}generateUV(a,y){return y.build(a,"vec3")}}const bS=oa(cW).setParameterLength(1,4).setName("cubeTexture"),J0=(b=OI,a=null,y=null,x=null)=>{let E;return b&&b.isCubeTextureNode===!0?(E=gr(b.clone()),E.referenceNode=b.getSelf(),a!==null&&(E.uvNode=gr(a)),y!==null&&(E.levelNode=gr(y)),x!==null&&(E.biasNode=gr(x))):E=bS(b,a,y,x),E},dW=(b=OI)=>bS(b);class fW extends rA{static get type(){return"ReferenceElementNode"}constructor(a,y){super(a,y),this.referenceNode=a,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(a){const y=super.generate(a),x=this.referenceNode.getNodeType(),E=this.getNodeType();return a.format(y,x,E)}}class qw extends Us{static get type(){return"ReferenceNode"}constructor(a,y,x=null,E=null){super(),this.property=a,this.uniformType=y,this.object=x,this.count=E,this.properties=a.split("."),this.reference=x,this.node=null,this.group=null,this.name=null,this.updateType=wa.OBJECT}element(a){return gr(new fW(this,gr(a)))}setGroup(a){return this.group=a,this}setName(a){return this.name=a,this}label(a){return console.warn('THREE.TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(a)}setNodeType(a){let y=null;this.count!==null?y=Dx(null,a,this.count):Array.isArray(this.getValueFromReference())?y=wh(null,a):a==="texture"?y=Xa(null):a==="cubeTexture"?y=J0(null):y=bs(null,a),this.group!==null&&y.setGroup(this.group),this.name!==null&&y.setName(this.name),this.node=y.getSelf()}getNodeType(a){return this.node===null&&(this.updateReference(a),this.updateValue()),this.node.getNodeType(a)}getValueFromReference(a=this.reference){const{properties:y}=this;let x=a[y[0]];for(let E=1;Egr(new qw(b,a,y)),ES=(b,a,y,x)=>gr(new qw(b,a,x,y));class hW extends qw{static get type(){return"MaterialReferenceNode"}constructor(a,y,x=null){super(a,y,x),this.material=x,this.isMaterialReferenceNode=!0}updateReference(a){return this.reference=this.material!==null?this.material:a.material,this.reference}}const dg=(b,a,y=null)=>gr(new hW(b,a,y)),RI=Xo(),pW=au.dFdx(),mW=au.dFdy(),zI=RI.dFdx(),kI=RI.dFdy(),HI=Lo,UI=mW.cross(HI),jI=HI.cross(pW),wS=UI.mul(zI.x).add(jI.mul(kI.x)),CS=UI.mul(zI.y).add(jI.mul(kI.y)),VI=wS.dot(wS).max(CS.dot(CS)),GI=VI.equal(0).select(0,VI.inverseSqrt()),gW=wS.mul(GI).toVar("tangentViewFrame"),vW=CS.mul(GI).toVar("bitangentViewFrame"),_w=mn(b=>(b.geometry.hasAttribute("tangent")===!1&&b.geometry.computeTangents(),Pd("tangent","vec4")))(),Fx=_w.xyz.toVar("tangentLocal"),$w=mn(({subBuildFn:b,geometry:a,material:y})=>{let x;return b==="VERTEX"||a.hasAttribute("tangent")?x=cg.mul(Ii(Fx,0)).xyz.toVarying("v_tangentView").normalize():x=gW,y.flatShading!==!0&&(x=Z0(x)),x},"vec3").once(["NORMAL","VERTEX"])().toVar("tangentView"),XI=$w.transformDirection(Rf).toVarying("v_tangentWorld").normalize().toVar("tangentWorld"),e1=mn(([b,a],{subBuildFn:y,material:x})=>{let E=b.mul(_w.w).xyz;return y==="NORMAL"&&x.flatShading!==!0&&(E=E.toVarying(a)),E}).once(["NORMAL"]),AW=e1(Jw.cross(_w),"v_bitangentGeometry").normalize().toVar("bitangentGeometry"),yW=e1(qd.cross(Fx),"v_bitangentLocal").normalize().toVar("bitangentLocal"),WI=mn(({subBuildFn:b,geometry:a,material:y})=>{let x;return b==="VERTEX"||a.hasAttribute("tangent")?x=e1(Lo.cross($w),"v_bitangentView").normalize():x=vW,y.flatShading!==!0&&(x=Z0(x)),x},"vec3").once(["NORMAL","VERTEX"])().toVar("bitangentView"),xW=e1(rv.cross(XI),"v_bitangentWorld").normalize().toVar("bitangentWorld"),dA=td($w,WI,Lo).toVar("TBNViewMatrix"),QI=yl.mul(dA),bW=(b,a)=>b.sub(QI.mul(a)),ZI=mn(()=>{let b=lA.cross(yl);return b=b.cross(lA).normalize(),b=ao(b,Lo,ev.mul(rm.oneMinus()).oneMinus().pow2().pow2()).normalize(),b}).once()();class EW extends zu{static get type(){return"NormalMapNode"}constructor(a,y=null){super("vec3"),this.node=a,this.scaleNode=y,this.normalMapType=wt}setup({material:a}){const{normalMapType:y,scaleNode:x}=this;let E=this.node.mul(2).sub(1);if(x!==null){let ee=x;a.flatShading===!0&&(ee=Z0(ee)),E=en(E.xy.mul(ee),E.z)}let z=null;return y===Rt?z=AS(E):y===wt?z=dA.mul(E).normalize():(console.error(`THREE.NodeMaterial: Unsupported normal map type: ${y}`),z=Lo),z}}const PS=oa(EW).setParameterLength(1,2),wW=mn(({textureNode:b,bumpScale:a})=>{const y=E=>b.cache().context({getUV:z=>E(z.uvNode||Xo()),forceUVContext:!0}),x=ft(y(E=>E));return Er(ft(y(E=>E.add(E.dFdx()))).sub(x),ft(y(E=>E.add(E.dFdy()))).sub(x)).mul(a)}),CW=mn(b=>{const{surf_pos:a,surf_norm:y,dHdxy:x}=b,E=a.dFdx().normalize(),z=a.dFdy().normalize(),ee=y,te=z.cross(ee),ne=ee.cross(E),ie=E.dot(te).mul(vS),ae=ie.sign().mul(x.x.mul(te).add(x.y.mul(ne)));return ie.abs().mul(y).sub(ae).normalize()});class PW extends zu{static get type(){return"BumpMapNode"}constructor(a,y=null){super("vec3"),this.textureNode=a,this.scaleNode=y}setup(){const a=this.scaleNode!==null?this.scaleNode:1,y=wW({textureNode:this.textureNode,bumpScale:a});return CW({surf_pos:au,surf_norm:Lo,dHdxy:y})}}const BS=oa(PW).setParameterLength(1,2),YI=new Map;class Ar extends Us{static get type(){return"MaterialNode"}constructor(a){super(),this.scope=a}getCache(a,y){let x=YI.get(a);return x===void 0&&(x=dg(a,y),YI.set(a,x)),x}getFloat(a){return this.getCache(a,"float")}getColor(a){return this.getCache(a,"color")}getTexture(a){return this.getCache(a==="map"?"map":a+"Map","texture")}setup(a){const y=a.context.material,x=this.scope;let E=null;if(x===Ar.COLOR){const z=y.color!==void 0?this.getColor(x):en();y.map&&y.map.isTexture===!0?E=z.mul(this.getTexture("map")):E=z}else if(x===Ar.OPACITY){const z=this.getFloat(x);y.alphaMap&&y.alphaMap.isTexture===!0?E=z.mul(this.getTexture("alpha")):E=z}else if(x===Ar.SPECULAR_STRENGTH)y.specularMap&&y.specularMap.isTexture===!0?E=this.getTexture("specular").r:E=ft(1);else if(x===Ar.SPECULAR_INTENSITY){const z=this.getFloat(x);y.specularIntensityMap&&y.specularIntensityMap.isTexture===!0?E=z.mul(this.getTexture(x).a):E=z}else if(x===Ar.SPECULAR_COLOR){const z=this.getColor(x);y.specularColorMap&&y.specularColorMap.isTexture===!0?E=z.mul(this.getTexture(x).rgb):E=z}else if(x===Ar.ROUGHNESS){const z=this.getFloat(x);y.roughnessMap&&y.roughnessMap.isTexture===!0?E=z.mul(this.getTexture(x).g):E=z}else if(x===Ar.METALNESS){const z=this.getFloat(x);y.metalnessMap&&y.metalnessMap.isTexture===!0?E=z.mul(this.getTexture(x).b):E=z}else if(x===Ar.EMISSIVE){const z=this.getFloat("emissiveIntensity"),ee=this.getColor(x).mul(z);y.emissiveMap&&y.emissiveMap.isTexture===!0?E=ee.mul(this.getTexture(x)):E=ee}else if(x===Ar.NORMAL)y.normalMap?(E=PS(this.getTexture("normal"),this.getCache("normalScale","vec2")),E.normalMapType=y.normalMapType):y.bumpMap?E=BS(this.getTexture("bump").r,this.getFloat("bumpScale")):E=Lo;else if(x===Ar.CLEARCOAT){const z=this.getFloat(x);y.clearcoatMap&&y.clearcoatMap.isTexture===!0?E=z.mul(this.getTexture(x).r):E=z}else if(x===Ar.CLEARCOAT_ROUGHNESS){const z=this.getFloat(x);y.clearcoatRoughnessMap&&y.clearcoatRoughnessMap.isTexture===!0?E=z.mul(this.getTexture(x).r):E=z}else if(x===Ar.CLEARCOAT_NORMAL)y.clearcoatNormalMap?E=PS(this.getTexture(x),this.getCache(x+"Scale","vec2")):E=Lo;else if(x===Ar.SHEEN){const z=this.getColor("sheenColor").mul(this.getFloat("sheen"));y.sheenColorMap&&y.sheenColorMap.isTexture===!0?E=z.mul(this.getTexture("sheenColor").rgb):E=z}else if(x===Ar.SHEEN_ROUGHNESS){const z=this.getFloat(x);y.sheenRoughnessMap&&y.sheenRoughnessMap.isTexture===!0?E=z.mul(this.getTexture(x).a):E=z,E=E.clamp(.07,1)}else if(x===Ar.ANISOTROPY)if(y.anisotropyMap&&y.anisotropyMap.isTexture===!0){const z=this.getTexture(x);E=Sw(K0.x,K0.y,K0.y.negate(),K0.x).mul(z.rg.mul(2).sub(Er(1)).normalize().mul(z.b))}else E=K0;else if(x===Ar.IRIDESCENCE_THICKNESS){const z=rl("1","float",y.iridescenceThicknessRange);if(y.iridescenceThicknessMap){const ee=rl("0","float",y.iridescenceThicknessRange);E=z.sub(ee).mul(this.getTexture(x).g).add(ee)}else E=z}else if(x===Ar.TRANSMISSION){const z=this.getFloat(x);y.transmissionMap?E=z.mul(this.getTexture(x).r):E=z}else if(x===Ar.THICKNESS){const z=this.getFloat(x);y.thicknessMap?E=z.mul(this.getTexture(x).g):E=z}else if(x===Ar.IOR)E=this.getFloat(x);else if(x===Ar.LIGHT_MAP)E=this.getTexture(x).rgb.mul(this.getFloat("lightMapIntensity"));else if(x===Ar.AO)E=this.getTexture(x).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1);else if(x===Ar.LINE_DASH_OFFSET)E=y.dashOffset?this.getFloat(x):ft(0);else{const z=this.getNodeType(a);E=this.getCache(x,z)}return E}}Ar.ALPHA_TEST="alphaTest",Ar.COLOR="color",Ar.OPACITY="opacity",Ar.SHININESS="shininess",Ar.SPECULAR="specular",Ar.SPECULAR_STRENGTH="specularStrength",Ar.SPECULAR_INTENSITY="specularIntensity",Ar.SPECULAR_COLOR="specularColor",Ar.REFLECTIVITY="reflectivity",Ar.ROUGHNESS="roughness",Ar.METALNESS="metalness",Ar.NORMAL="normal",Ar.CLEARCOAT="clearcoat",Ar.CLEARCOAT_ROUGHNESS="clearcoatRoughness",Ar.CLEARCOAT_NORMAL="clearcoatNormal",Ar.EMISSIVE="emissive",Ar.ROTATION="rotation",Ar.SHEEN="sheen",Ar.SHEEN_ROUGHNESS="sheenRoughness",Ar.ANISOTROPY="anisotropy",Ar.IRIDESCENCE="iridescence",Ar.IRIDESCENCE_IOR="iridescenceIOR",Ar.IRIDESCENCE_THICKNESS="iridescenceThickness",Ar.IOR="ior",Ar.TRANSMISSION="transmission",Ar.THICKNESS="thickness",Ar.ATTENUATION_DISTANCE="attenuationDistance",Ar.ATTENUATION_COLOR="attenuationColor",Ar.LINE_SCALE="scale",Ar.LINE_DASH_SIZE="dashSize",Ar.LINE_GAP_SIZE="gapSize",Ar.LINE_WIDTH="linewidth",Ar.LINE_DASH_OFFSET="dashOffset",Ar.POINT_SIZE="size",Ar.DISPERSION="dispersion",Ar.LIGHT_MAP="light",Ar.AO="ao";const JI=ui(Ar,Ar.ALPHA_TEST),t1=ui(Ar,Ar.COLOR),KI=ui(Ar,Ar.SHININESS),qI=ui(Ar,Ar.EMISSIVE),n1=ui(Ar,Ar.OPACITY),_I=ui(Ar,Ar.SPECULAR),SS=ui(Ar,Ar.SPECULAR_INTENSITY),$I=ui(Ar,Ar.SPECULAR_COLOR),Nx=ui(Ar,Ar.SPECULAR_STRENGTH),r1=ui(Ar,Ar.REFLECTIVITY),e4=ui(Ar,Ar.ROUGHNESS),t4=ui(Ar,Ar.METALNESS),n4=ui(Ar,Ar.NORMAL),r4=ui(Ar,Ar.CLEARCOAT),i4=ui(Ar,Ar.CLEARCOAT_ROUGHNESS),s4=ui(Ar,Ar.CLEARCOAT_NORMAL),a4=ui(Ar,Ar.ROTATION),o4=ui(Ar,Ar.SHEEN),l4=ui(Ar,Ar.SHEEN_ROUGHNESS),u4=ui(Ar,Ar.ANISOTROPY),c4=ui(Ar,Ar.IRIDESCENCE),d4=ui(Ar,Ar.IRIDESCENCE_IOR),f4=ui(Ar,Ar.IRIDESCENCE_THICKNESS),h4=ui(Ar,Ar.TRANSMISSION),p4=ui(Ar,Ar.THICKNESS),m4=ui(Ar,Ar.IOR),g4=ui(Ar,Ar.ATTENUATION_DISTANCE),v4=ui(Ar,Ar.ATTENUATION_COLOR),MS=ui(Ar,Ar.LINE_SCALE),DS=ui(Ar,Ar.LINE_DASH_SIZE),TS=ui(Ar,Ar.LINE_GAP_SIZE),i1=ui(Ar,Ar.LINE_WIDTH),IS=ui(Ar,Ar.LINE_DASH_OFFSET),A4=ui(Ar,Ar.POINT_SIZE),y4=ui(Ar,Ar.DISPERSION),FS=ui(Ar,Ar.LIGHT_MAP),x4=ui(Ar,Ar.AO),K0=bs(new tr).onReference(function(b){return b.material}).onRenderUpdate(function({material:b}){this.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation))}),NS=mn(b=>b.context.setupModelViewProjection(),"vec4").once()().toVarying("v_modelViewProjection");class Cl extends Us{static get type(){return"IndexNode"}constructor(a){super("uint"),this.scope=a,this.isIndexNode=!0}generate(a){const y=this.getNodeType(a),x=this.scope;let E;if(x===Cl.VERTEX)E=a.getVertexIndex();else if(x===Cl.INSTANCE)E=a.getInstanceIndex();else if(x===Cl.DRAW)E=a.getDrawIndex();else if(x===Cl.INVOCATION_LOCAL)E=a.getInvocationLocalIndex();else if(x===Cl.INVOCATION_SUBGROUP)E=a.getInvocationSubgroupIndex();else if(x===Cl.SUBGROUP)E=a.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+x);let z;return a.shaderStage==="vertex"||a.shaderStage==="compute"?z=E:z=lm(this).build(a,y),z}}Cl.VERTEX="vertex",Cl.INSTANCE="instance",Cl.SUBGROUP="subgroup",Cl.INVOCATION_LOCAL="invocationLocal",Cl.INVOCATION_SUBGROUP="invocationSubgroup",Cl.DRAW="draw";const b4=ui(Cl,Cl.VERTEX),iv=ui(Cl,Cl.INSTANCE),BW=ui(Cl,Cl.SUBGROUP),SW=ui(Cl,Cl.INVOCATION_SUBGROUP),MW=ui(Cl,Cl.INVOCATION_LOCAL),E4=ui(Cl,Cl.DRAW);class w4 extends Us{static get type(){return"InstanceNode"}constructor(a,y,x=null){super("void"),this.count=a,this.instanceMatrix=y,this.instanceColor=x,this.instanceMatrixNode=null,this.instanceColorNode=null,this.updateType=wa.FRAME,this.buffer=null,this.bufferColor=null}setup(a){const{count:y,instanceMatrix:x,instanceColor:E}=this;let{instanceMatrixNode:z,instanceColorNode:ee}=this;if(z===null){if(y<=1e3)z=Dx(x.array,"mat4",Math.max(y,1)).element(iv);else{const ne=new YR(x.array,16,1);this.buffer=ne;const ie=x.usage===De?lS:Ww,ae=[ie(ne,"vec4",16,0),ie(ne,"vec4",16,4),ie(ne,"vec4",16,8),ie(ne,"vec4",16,12)];z=aA(...ae)}this.instanceMatrixNode=z}if(E&&ee===null){const ne=new hp(E.array,3),ie=E.usage===De?lS:Ww;this.bufferColor=ne,ee=en(ie(ne,"vec3",3,0)),this.instanceColorNode=ee}const te=z.mul(su).xyz;if(su.assign(te),a.hasGeometryAttribute("normal")){const ne=MI(qd,z);qd.assign(ne)}this.instanceColorNode!==null&&Ff("vec3","vInstanceColor").assign(this.instanceColorNode)}update(){this.instanceMatrix.usage!==De&&this.buffer!==null&&this.instanceMatrix.version!==this.buffer.version&&(this.buffer.version=this.instanceMatrix.version),this.instanceColor&&this.instanceColor.usage!==De&&this.bufferColor!==null&&this.instanceColor.version!==this.bufferColor.version&&(this.bufferColor.version=this.instanceColor.version)}}const DW=oa(w4).setParameterLength(2,3);class TW extends w4{static get type(){return"InstancedMeshNode"}constructor(a){const{count:y,instanceMatrix:x,instanceColor:E}=a;super(y,x,E),this.instancedMesh=a}}const C4=oa(TW).setParameterLength(1);class IW extends Us{static get type(){return"BatchNode"}constructor(a){super("void"),this.batchMesh=a,this.batchingIdNode=null}setup(a){this.batchingIdNode===null&&(a.getDrawIndex()===null?this.batchingIdNode=iv:this.batchingIdNode=E4);const x=mn(([he])=>{const ye=Xt(nv(iu(this.batchMesh._indirectTexture),0).x),Ae=Xt(he).mod(ye),me=Xt(he).div(ye);return iu(this.batchMesh._indirectTexture,ic(Ae,me)).x}).setLayout({name:"getIndirectIndex",type:"uint",inputs:[{name:"id",type:"int"}]})(Xt(this.batchingIdNode)),E=this.batchMesh._matricesTexture,z=Xt(nv(iu(E),0).x),ee=ft(x).mul(4).toInt().toVar(),te=ee.mod(z),ne=ee.div(z),ie=aA(iu(E,ic(te,ne)),iu(E,ic(te.add(1),ne)),iu(E,ic(te.add(2),ne)),iu(E,ic(te.add(3),ne))),ae=this.batchMesh._colorsTexture;if(ae!==null){const ye=mn(([Ae])=>{const me=Xt(nv(iu(ae),0).x),Ce=Ae,Ee=Ce.mod(me),Be=Ce.div(me);return iu(ae,ic(Ee,Be)).rgb}).setLayout({name:"getBatchingColor",type:"vec3",inputs:[{name:"id",type:"int"}]})(x);Ff("vec3","vBatchColor").assign(ye)}const oe=td(ie);su.assign(ie.mul(su));const le=qd.div(en(oe[0].dot(oe[0]),oe[1].dot(oe[1]),oe[2].dot(oe[2]))),de=oe.mul(le).xyz;qd.assign(de),a.hasGeometryAttribute("tangent")&&Fx.mulAssign(oe)}}const P4=oa(IW).setParameterLength(1);class FW extends rA{static get type(){return"StorageArrayElementNode"}constructor(a,y){super(a,y),this.isStorageArrayElementNode=!0}set storageBufferNode(a){this.node=a}get storageBufferNode(){return this.node}getMemberType(a,y){const x=this.storageBufferNode.structTypeNode;return x?x.getMemberType(a,y):"void"}setup(a){return a.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&a.setupPBO(this.node),super.setup(a)}generate(a,y){let x;const E=a.context.assign;if(a.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&E!==!0&&(this.node.value.isInstancedBufferAttribute||a.shaderStage!=="compute")?x=a.generatePBO(this):x=this.node.build(a):x=super.generate(a),E!==!0){const z=this.getNodeType(a);x=a.format(x,z,y)}return x}}const NW=oa(FW).setParameterLength(2);class LW extends hS{static get type(){return"StorageBufferNode"}constructor(a,y=null,x=0){let E,z=null;y&&y.isStruct?(E="struct",z=y.layout,(a.isStorageBufferAttribute||a.isStorageInstancedBufferAttribute)&&(x=a.count)):y===null&&(a.isStorageBufferAttribute||a.isStorageInstancedBufferAttribute)?(E=EB(a.itemSize),x=a.count):E=y,super(a,E,x),this.isStorageBufferNode=!0,this.structTypeNode=z,this.access=Uc.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,a.isStorageBufferAttribute!==!0&&a.isStorageInstancedBufferAttribute!==!0&&(a.isInstancedBufferAttribute?a.isStorageInstancedBufferAttribute=!0:a.isStorageBufferAttribute=!0)}getHash(a){if(this.bufferCount===0){let y=a.globalCache.getData(this.value);return y===void 0&&(y={node:this},a.globalCache.setData(this.value,y)),y.node.uuid}return this.uuid}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(a){return NW(this,a)}setPBO(a){return this.isPBO=a,this}getPBO(){return this.isPBO}setAccess(a){return this.access=a,this}toReadOnly(){return this.setAccess(Uc.READ_ONLY)}setAtomic(a){return this.isAtomic=a,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=Sx(this.value),this._varying=lm(this._attribute)),{attribute:this._attribute,varying:this._varying}}getNodeType(a){if(this.structTypeNode!==null)return this.structTypeNode.getNodeType(a);if(a.isAvailable("storageBuffer")||a.isAvailable("indirectStorageBuffer"))return super.getNodeType(a);const{attribute:y}=this.getAttributeData();return y.getNodeType(a)}getMemberType(a,y){return this.structTypeNode!==null?this.structTypeNode.getMemberType(a,y):"void"}generate(a){if(this.structTypeNode!==null&&this.structTypeNode.build(a),a.isAvailable("storageBuffer")||a.isAvailable("indirectStorageBuffer"))return super.generate(a);const{attribute:y,varying:x}=this.getAttributeData(),E=x.build(a);return a.registerTransform(E,y),E}}const fA=(b,a=null,y=0)=>gr(new LW(b,a,y)),OW=(b,a,y)=>(console.warn('THREE.TSL: "storageObject()" is deprecated. Use "storage().setPBO( true )" instead.'),fA(b,a,y).setPBO(!0)),B4=new WeakMap;class S4 extends Us{static get type(){return"SkinningNode"}constructor(a){super("void"),this.skinnedMesh=a,this.updateType=wa.OBJECT,this.skinIndexNode=Pd("skinIndex","uvec4"),this.skinWeightNode=Pd("skinWeight","vec4"),this.bindMatrixNode=rl("bindMatrix","mat4"),this.bindMatrixInverseNode=rl("bindMatrixInverse","mat4"),this.boneMatricesNode=ES("skeleton.boneMatrices","mat4",a.skeleton.bones.length),this.positionNode=su,this.toPositionNode=su,this.previousBoneMatricesNode=null}getSkinnedPosition(a=this.boneMatricesNode,y=this.positionNode){const{skinIndexNode:x,skinWeightNode:E,bindMatrixNode:z,bindMatrixInverseNode:ee}=this,te=a.element(x.x),ne=a.element(x.y),ie=a.element(x.z),ae=a.element(x.w),oe=z.mul(y),le=Eu(te.mul(E.x).mul(oe),ne.mul(E.y).mul(oe),ie.mul(E.z).mul(oe),ae.mul(E.w).mul(oe));return ee.mul(le).xyz}getSkinnedNormal(a=this.boneMatricesNode,y=qd){const{skinIndexNode:x,skinWeightNode:E,bindMatrixNode:z,bindMatrixInverseNode:ee}=this,te=a.element(x.x),ne=a.element(x.y),ie=a.element(x.z),ae=a.element(x.w);let oe=Eu(E.x.mul(te),E.y.mul(ne),E.z.mul(ie),E.w.mul(ae));return oe=ee.mul(oe).mul(z),oe.transformDirection(y).xyz}getPreviousSkinnedPosition(a){const y=a.object;return this.previousBoneMatricesNode===null&&(y.skeleton.previousBoneMatrices=new Float32Array(y.skeleton.boneMatrices),this.previousBoneMatricesNode=ES("skeleton.previousBoneMatrices","mat4",y.skeleton.bones.length)),this.getSkinnedPosition(this.previousBoneMatricesNode,Yw)}needsPreviousBoneMatrices(a){const y=a.renderer.getMRT();return y&&y.has("velocity")||PB(a.object).useVelocity===!0}setup(a){this.needsPreviousBoneMatrices(a)&&Yw.assign(this.getPreviousSkinnedPosition(a));const y=this.getSkinnedPosition();if(this.toPositionNode&&this.toPositionNode.assign(y),a.hasGeometryAttribute("normal")){const x=this.getSkinnedNormal();qd.assign(x),a.hasGeometryAttribute("tangent")&&Fx.assign(x)}return y}generate(a,y){if(y!=="void")return super.generate(a,y)}update(a){const y=a.object&&a.object.skeleton?a.object.skeleton:this.skinnedMesh.skeleton;B4.get(y)!==a.frameId&&(B4.set(y,a.frameId),this.previousBoneMatricesNode!==null&&y.previousBoneMatrices.set(y.boneMatrices),y.update())}}const M4=b=>gr(new S4(b)),RW=(b,a=null)=>{const y=new S4(b);return y.positionNode=fA(new hp(b.geometry.getAttribute("position").array,3),"vec3").setPBO(!0).toReadOnly().element(iv).toVar(),y.skinIndexNode=fA(new hp(new Uint32Array(b.geometry.getAttribute("skinIndex").array),4),"uvec4").setPBO(!0).toReadOnly().element(iv).toVar(),y.skinWeightNode=fA(new hp(b.geometry.getAttribute("skinWeight").array,4),"vec4").setPBO(!0).toReadOnly().element(iv).toVar(),y.bindMatrixNode=bs(b.bindMatrix,"mat4"),y.bindMatrixInverseNode=bs(b.bindMatrixInverse,"mat4"),y.boneMatricesNode=Dx(b.skeleton.boneMatrices,"mat4",b.skeleton.bones.length),y.toPositionNode=a,gr(y)};class zW extends Us{static get type(){return"LoopNode"}constructor(a=[]){super(),this.params=a}getVarName(a){return String.fromCharCode(105+a)}getProperties(a){const y=a.getNodeProperties(this);if(y.stackNode!==void 0)return y;const x={};for(let ee=0,te=this.params.length-1;eeNumber(le)?ye=">=":ye="<"));let me;if(ae)me=`while ( ${le} )`;else{const Ce={start:oe,end:le},Ee=Ce.start,Be=Ce.end;let Ne;const Fe=()=>ye.includes("<")?"+=":"-=";if(Ae!=null)switch(typeof Ae){case"function":Ne=a.flowStagesNode(y.updateNode,"void").code.replace(/\t|;/g,"");break;case"number":Ne=de+" "+Fe()+" "+a.generateConst(he,Ae);break;case"string":Ne=de+" "+Ae;break;default:Ae.isNode?Ne=de+" "+Fe()+" "+Ae.build(a):(console.error("THREE.TSL: 'Loop( { update: ... } )' is not a function, string or number."),Ne="break /* invalid update */")}else he==="int"||he==="uint"?Ae=ye.includes("<")?"++":"--":Ae=Fe()+" 1.",Ne=de+" "+Ae;const ke=a.getVar(he,de)+" = "+Ee,Re=de+" "+ye+" "+Be;me=`for ( ${ke}; ${Re}; ${Ne} )`}a.addFlowCode((te===0?` `:"")+a.tab+me+` { `).addFlowTab()}const z=E.build(a,"void"),ee=y.returnsNode?y.returnsNode.build(a):"";a.removeFlowTab().addFlowCode(` `+a.tab+z);for(let te=0,ne=this.params.length-1;tegr(new zW(sA(b,"int"))).toStack(),kW=()=>og("continue").toStack(),D4=()=>og("break").toStack(),LS=new WeakMap,kf=new Ws,T4=mn(({bufferMap:b,influence:a,stride:y,width:x,depth:E,offset:z})=>{const ee=Xt(b4).mul(y).add(z),te=ee.div(x),ne=ee.sub(te.mul(x));return iu(b,ic(ne,te)).depth(E).xyz.mul(a)});function HW(b){const a=b.morphAttributes.position!==void 0,y=b.morphAttributes.normal!==void 0,x=b.morphAttributes.color!==void 0,E=b.morphAttributes.position||b.morphAttributes.normal||b.morphAttributes.color,z=E!==void 0?E.length:0;let ee=LS.get(b);if(ee===void 0||ee.count!==z){let me=function(){ye.dispose(),LS.delete(b),b.removeEventListener("dispose",me)};ee!==void 0&&ee.texture.dispose();const te=b.morphAttributes.position||[],ne=b.morphAttributes.normal||[],ie=b.morphAttributes.color||[];let ae=0;a===!0&&(ae=1),y===!0&&(ae=2),x===!0&&(ae=3);let oe=b.attributes.position.count*ae,le=1;const de=4096;oe>de&&(le=Math.ceil(oe/de),oe=de);const he=new Float32Array(oe*le*4*z),ye=new tE(he,oe,le,z);ye.type=Vo,ye.needsUpdate=!0;const Ae=ae*4;for(let Ce=0;Ce{const le=ft(0).toVar();this.mesh.count>1&&this.mesh.morphTexture!==null&&this.mesh.morphTexture!==void 0?le.assign(iu(this.mesh.morphTexture,ic(Xt(oe).add(1),Xt(iv))).r):le.assign(rl("morphTargetInfluences","float").element(oe).toVar()),ds(le.notEqual(0),()=>{x===!0&&su.addAssign(T4({bufferMap:te,influence:le,stride:ne,width:ae,depth:oe,offset:Xt(0)})),E===!0&&qd.addAssign(T4({bufferMap:te,influence:le,stride:ne,width:ae,depth:oe,offset:Xt(1)}))})})}update(){const a=this.morphBaseInfluence;this.mesh.geometry.morphTargetsRelative?a.value=1:a.value=1-this.mesh.morphTargetInfluences.reduce((y,x)=>y+x,0)}}const I4=oa(UW).setParameterLength(1);class q0 extends Us{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}}class jW extends q0{static get type(){return"AONode"}constructor(a=null){super(),this.aoNode=a}setup(a){a.context.ambientOcclusion.mulAssign(this.aoNode)}}class VW extends q8{static get type(){return"LightingContextNode"}constructor(a,y=null,x=null,E=null){super(a),this.lightingModel=y,this.backdropNode=x,this.backdropAlphaNode=E,this._value=null}getContext(){const{backdropNode:a,backdropAlphaNode:y}=this,x=en().toVar("directDiffuse"),E=en().toVar("directSpecular"),z=en().toVar("indirectDiffuse"),ee=en().toVar("indirectSpecular"),te={directDiffuse:x,directSpecular:E,indirectDiffuse:z,indirectSpecular:ee};return{radiance:en().toVar("radiance"),irradiance:en().toVar("irradiance"),iblIrradiance:en().toVar("iblIrradiance"),ambientOcclusion:ft(1).toVar("ambientOcclusion"),reflectedLight:te,backdrop:a,backdropAlpha:y}}setup(a){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||a.context.lightingModel,super.setup(a)}}const F4=oa(VW);class GW extends q0{static get type(){return"IrradianceNode"}constructor(a){super(),this.node=a}setup(a){a.context.irradiance.addAssign(this.node)}}let Lx,Ox;class Hu extends Us{static get type(){return"ScreenNode"}constructor(a){super(),this.scope=a,this.isViewportNode=!0}getNodeType(){return this.scope===Hu.VIEWPORT?"vec4":"vec2"}getUpdateType(){let a=wa.NONE;return(this.scope===Hu.SIZE||this.scope===Hu.VIEWPORT)&&(a=wa.RENDER),this.updateType=a,a}update({renderer:a}){const y=a.getRenderTarget();this.scope===Hu.VIEWPORT?y!==null?Ox.copy(y.viewport):(a.getViewport(Ox),Ox.multiplyScalar(a.getPixelRatio())):y!==null?(Lx.width=y.width,Lx.height=y.height):a.getDrawingBufferSize(Lx)}setup(){const a=this.scope;let y=null;return a===Hu.SIZE?y=bs(Lx||(Lx=new tr)):a===Hu.VIEWPORT?y=bs(Ox||(Ox=new Ws)):y=Er(zx.div(Rx)),y}generate(a){if(this.scope===Hu.COORDINATE){let y=a.getFragCoord();if(a.isFlipY()){const x=a.getNodeProperties(Rx).outputNode.build(a);y=`${a.getType("vec2")}( ${y}.x, ${x}.y - ${y}.y )`}return y}return super.generate(a)}}Hu.COORDINATE="coordinate",Hu.VIEWPORT="viewport",Hu.SIZE="size",Hu.UV="uv";const fg=ui(Hu,Hu.UV),Rx=ui(Hu,Hu.SIZE),zx=ui(Hu,Hu.COORDINATE),hg=ui(Hu,Hu.VIEWPORT),N4=hg.zw,L4=zx.sub(hg.xy),XW=L4.div(N4),WW=mn(()=>(console.warn('THREE.TSL: "viewportResolution" is deprecated. Use "screenSize" instead.'),Rx),"vec2").once()(),_0=new tr;class s1 extends um{static get type(){return"ViewportTextureNode"}constructor(a=fg,y=null,x=null){let E=null;x===null?(E=new Y5,E.minFilter=tu,x=E):E=x,super(x,a,y),this.generateMipmaps=!1,this.defaultFramebuffer=E,this.isOutputTextureNode=!0,this.updateBeforeType=wa.RENDER,this._textures=new WeakMap}getFrameBufferTexture(a=null){const y=this.referenceNode?this.referenceNode.defaultFramebuffer:this.defaultFramebuffer;if(a===null)return y;if(this._textures.has(a)===!1){const x=y.clone();this._textures.set(a,x)}return this._textures.get(a)}updateBefore(a){const y=a.renderer,x=y.getRenderTarget();x===null?y.getDrawingBufferSize(_0):_0.set(x.width,x.height);const E=this.getFrameBufferTexture(x);(E.image.width!==_0.width||E.image.height!==_0.height)&&(E.image.width=_0.width,E.image.height=_0.height,E.needsUpdate=!0);const z=E.generateMipmaps;E.generateMipmaps=this.generateMipmaps,y.copyFramebufferToTexture(E),E.generateMipmaps=z,this.value=E}clone(){const a=new this.constructor(this.uvNode,this.levelNode,this.value);return a.generateMipmaps=this.generateMipmaps,a}}const QW=oa(s1).setParameterLength(0,3),OS=oa(s1,null,null,{generateMipmaps:!0}).setParameterLength(0,3);let RS=null;class ZW extends s1{static get type(){return"ViewportDepthTextureNode"}constructor(a=fg,y=null){RS===null&&(RS=new Tf),super(a,y,RS)}}const zS=oa(ZW).setParameterLength(0,2);class _d extends Us{static get type(){return"ViewportDepthNode"}constructor(a,y=null){super("float"),this.scope=a,this.valueNode=y,this.isViewportDepthNode=!0}generate(a){const{scope:y}=this;return y===_d.DEPTH_BASE?a.getFragDepth():super.generate(a)}setup({camera:a}){const{scope:y}=this,x=this.valueNode;let E=null;if(y===_d.DEPTH_BASE)x!==null&&(E=O4().assign(x));else if(y===_d.DEPTH)a.isPerspectiveCamera?E=kS(au.z,lg,ug):E=$0(au.z,lg,ug);else if(y===_d.LINEAR_DEPTH)if(x!==null)if(a.isPerspectiveCamera){const z=HS(x,lg,ug);E=$0(z,lg,ug)}else E=x;else E=$0(au.z,lg,ug);return E}}_d.DEPTH_BASE="depthBase",_d.DEPTH="depth",_d.LINEAR_DEPTH="linearDepth";const $0=(b,a,y)=>b.add(a).div(a.sub(y)),YW=(b,a,y)=>a.sub(y).mul(b).sub(a),kS=(b,a,y)=>a.add(b).mul(y).div(y.sub(a).mul(b)),HS=(b,a,y)=>a.mul(y).div(y.sub(a).mul(b).sub(y)),US=(b,a,y)=>{a=a.max(1e-6).toVar();const x=im(b.negate().div(a)),E=im(y.div(a));return x.div(E)},JW=(b,a,y)=>{const x=b.mul(Rw(y.div(a)));return ft(Math.E).pow(x).mul(a).negate()},O4=oa(_d,_d.DEPTH_BASE),jS=ui(_d,_d.DEPTH),ey=oa(_d,_d.LINEAR_DEPTH).setParameterLength(0,1),KW=ey(zS());jS.assign=b=>O4(b);class Bh extends Us{static get type(){return"ClippingNode"}constructor(a=Bh.DEFAULT){super(),this.scope=a}setup(a){super.setup(a);const y=a.clippingContext,{intersectionPlanes:x,unionPlanes:E}=y;return this.hardwareClipping=a.material.hardwareClipping,this.scope===Bh.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(x,E):this.scope===Bh.HARDWARE?this.setupHardwareClipping(E,a):this.setupDefault(x,E)}setupAlphaToCoverage(a,y){return mn(()=>{const x=ft().toVar("distanceToPlane"),E=ft().toVar("distanceToGradient"),z=ft(1).toVar("clipOpacity"),ee=y.length;if(this.hardwareClipping===!1&&ee>0){const ne=wh(y);Oo(ee,({i:ie})=>{const ae=ne.element(ie);x.assign(au.dot(ae.xyz).negate().add(ae.w)),E.assign(x.fwidth().div(2)),z.mulAssign(Eh(E.negate(),E,x))})}const te=a.length;if(te>0){const ne=wh(a),ie=ft(1).toVar("intersectionClipOpacity");Oo(te,({i:ae})=>{const oe=ne.element(ae);x.assign(au.dot(oe.xyz).negate().add(oe.w)),E.assign(x.fwidth().div(2)),ie.mulAssign(Eh(E.negate(),E,x).oneMinus())}),z.mulAssign(ie.oneMinus())}xo.a.mulAssign(z),xo.a.equal(0).discard()})()}setupDefault(a,y){return mn(()=>{const x=y.length;if(this.hardwareClipping===!1&&x>0){const z=wh(y);Oo(x,({i:ee})=>{const te=z.element(ee);au.dot(te.xyz).greaterThan(te.w).discard()})}const E=a.length;if(E>0){const z=wh(a),ee=yh(!0).toVar("clipped");Oo(E,({i:te})=>{const ne=z.element(te);ee.assign(au.dot(ne.xyz).greaterThan(ne.w).and(ee))}),ee.discard()}})()}setupHardwareClipping(a,y){const x=a.length;return y.enableHardwareClipping(x),mn(()=>{const E=wh(a),z=Tx(y.getClipDistance());Oo(x,({i:ee})=>{const te=E.element(ee),ne=au.dot(te.xyz).sub(te.w).negate();z.element(ee).assign(ne)})})()}}Bh.ALPHA_TO_COVERAGE="alphaToCoverage",Bh.DEFAULT="default",Bh.HARDWARE="hardware";const qW=()=>gr(new Bh),_W=()=>gr(new Bh(Bh.ALPHA_TO_COVERAGE)),$W=()=>gr(new Bh(Bh.HARDWARE)),eQ=.05,R4=mn(([b])=>sg(Ca(1e4,Lf(Ca(17,b.x).add(Ca(.1,b.y)))).mul(Eu(.1,hl(Lf(Ca(13,b.y).add(b.x))))))),z4=mn(([b])=>R4(Er(R4(b.xy),b.z))),tQ=mn(([b])=>{const a=Zl(om(qB(b.xyz)),om(_B(b.xyz))),y=ft(1).div(ft(eQ).mul(a)).toVar("pixScale"),x=Er(W0(am(im(y))),W0(zw(im(y)))),E=Er(z4(am(x.x.mul(b.xyz))),z4(am(x.y.mul(b.xyz)))),z=sg(im(y)),ee=Eu(Ca(z.oneMinus(),E.x),Ca(z,E.y)),te=Kd(z,z.oneMinus()),ne=en(ee.mul(ee).div(Ca(2,te).mul(Za(1,te))),ee.sub(Ca(.5,te)).div(Za(1,te)),Za(1,Za(1,ee).mul(Za(1,ee)).div(Ca(2,te).mul(Za(1,te))))),ie=ee.lessThan(te.oneMinus()).select(ee.lessThan(te).select(ne.x,ne.y),ne.z);return bh(ie,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]});class nQ extends yI{static get type(){return"VertexColorNode"}constructor(a){super(null,"vec4"),this.isVertexColorNode=!0,this.index=a}getAttributeName(){const a=this.index;return"color"+(a>0?a:"")}generate(a){const y=this.getAttributeName(a),x=a.hasGeometryAttribute(y);let E;return x===!0?E=super.generate(a):E=a.generateConst(this.nodeType,new Ws(1,1,1,1)),E}serialize(a){super.serialize(a),a.index=this.index}deserialize(a){super.deserialize(a),this.index=a.index}}const k4=(b=0)=>gr(new nQ(b)),H4=mn(([b,a])=>Kd(1,b.oneMinus().div(a)).oneMinus()).setLayout({name:"blendBurn",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),U4=mn(([b,a])=>Kd(b.div(a.oneMinus()),1)).setLayout({name:"blendDodge",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),j4=mn(([b,a])=>b.oneMinus().mul(a.oneMinus()).oneMinus()).setLayout({name:"blendScreen",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),V4=mn(([b,a])=>ao(b.mul(2).mul(a),b.oneMinus().mul(2).mul(a.oneMinus()).oneMinus(),Hw(.5,b))).setLayout({name:"blendOverlay",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),rQ=mn(([b,a])=>{const y=a.a.add(b.a.mul(a.a.oneMinus()));return Ii(a.rgb.mul(a.a).add(b.rgb.mul(b.a).mul(a.a.oneMinus())).div(y),y)}).setLayout({name:"blendColor",type:"vec4",inputs:[{name:"base",type:"vec4"},{name:"blend",type:"vec4"}]}),G4=mn(([b])=>Ii(b.rgb.mul(b.a),b.a),{color:"vec4",return:"vec4"}),iQ=mn(([b])=>(ds(b.a.equal(0),()=>Ii(0)),Ii(b.rgb.div(b.a),b.a)),{color:"vec4",return:"vec4"}),sQ=(...b)=>(console.warn('THREE.TSL: "burn" has been renamed. Use "blendBurn" instead.'),H4(b)),aQ=(...b)=>(console.warn('THREE.TSL: "dodge" has been renamed. Use "blendDodge" instead.'),U4(b)),oQ=(...b)=>(console.warn('THREE.TSL: "screen" has been renamed. Use "blendScreen" instead.'),j4(b)),lQ=(...b)=>(console.warn('THREE.TSL: "overlay" has been renamed. Use "blendOverlay" instead.'),V4(b));class Yl extends Hc{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(a){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.hardwareClipping=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.maskNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.receivedShadowPositionNode=null,this.castShadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null,Object.defineProperty(this,"shadowPositionNode",{get:()=>this.receivedShadowPositionNode,set:a=>{console.warn('THREE.NodeMaterial: ".shadowPositionNode" was renamed to ".receivedShadowPositionNode".'),this.receivedShadowPositionNode=a}})}customProgramCacheKey(){return this.type+bB(this)}build(a){this.setup(a)}setupObserver(a){return new jG(a)}setup(a){a.context.setupNormal=()=>Q0(this.setupNormal(a),"NORMAL","vec3"),a.context.setupPositionView=()=>this.setupPositionView(a),a.context.setupModelViewProjection=()=>this.setupModelViewProjection(a);const y=a.renderer,x=y.getRenderTarget();a.addStack();const E=Q0(this.setupVertex(a),"VERTEX"),z=this.vertexNode||E;a.stack.outputNode=z,this.setupHardwareClipping(a),this.geometryNode!==null&&(a.stack.outputNode=a.stack.outputNode.bypass(this.geometryNode)),a.addFlow("vertex",a.removeStack()),a.addStack();let ee;const te=this.setupClipping(a);if((this.depthWrite===!0||this.depthTest===!0)&&(x!==null?x.depthBuffer===!0&&this.setupDepth(a):y.depth===!0&&this.setupDepth(a)),this.fragmentNode===null){this.setupDiffuseColor(a),this.setupVariants(a);const ne=this.setupLighting(a);te!==null&&a.stack.add(te);const ie=Ii(ne,xo.a).max(0);ee=this.setupOutput(a,ie),X0.assign(ee);const ae=this.outputNode!==null;if(ae&&(ee=this.outputNode),x!==null){const oe=y.getMRT(),le=this.mrtNode;oe!==null?(ae&&X0.assign(ee),ee=oe,le!==null&&(ee=oe.merge(le))):le!==null&&(ee=le)}}else{let ne=this.fragmentNode;ne.isOutputStructNode!==!0&&(ne=Ii(ne)),ee=this.setupOutput(a,ne)}a.stack.outputNode=ee,a.addFlow("fragment",a.removeStack()),a.observer=this.setupObserver(a)}setupClipping(a){if(a.clippingContext===null)return null;const{unionPlanes:y,intersectionPlanes:x}=a.clippingContext;let E=null;if(y.length>0||x.length>0){const z=a.renderer.samples;this.alphaToCoverage&&z>1?E=_W():a.stack.add(qW())}return E}setupHardwareClipping(a){if(this.hardwareClipping=!1,a.clippingContext===null)return;const y=a.clippingContext.unionPlanes.length;y>0&&y<=8&&a.isAvailable("clipDistance")&&(a.stack.add($W()),this.hardwareClipping=!0)}setupDepth(a){const{renderer:y,camera:x}=a;let E=this.depthNode;if(E===null){const z=y.getMRT();z&&z.has("depth")?E=z.get("depth"):y.logarithmicDepthBuffer===!0&&(x.isPerspectiveCamera?E=US(au.z,lg,ug):E=$0(au.z,lg,ug))}E!==null&&jS.assign(E).toStack()}setupPositionView(){return cg.mul(su).xyz}setupModelViewProjection(){return Of.mul(au)}setupVertex(a){return a.addStack(),this.setupPosition(a),a.context.vertex=a.removeStack(),NS}setupPosition(a){const{object:y,geometry:x}=a;if((x.morphAttributes.position||x.morphAttributes.normal||x.morphAttributes.color)&&I4(y).toStack(),y.isSkinnedMesh===!0&&M4(y).toStack(),this.displacementMap){const E=dg("displacementMap","texture"),z=dg("displacementScale","float"),ee=dg("displacementBias","float");su.addAssign(qd.normalize().mul(E.x.mul(z).add(ee)))}return y.isBatchedMesh&&P4(y).toStack(),y.isInstancedMesh&&y.instanceMatrix&&y.instanceMatrix.isInstancedBufferAttribute===!0&&C4(y).toStack(),this.positionNode!==null&&su.assign(Q0(this.positionNode,"POSITION","vec3")),su}setupDiffuseColor({object:a,geometry:y}){this.maskNode!==null&&yh(this.maskNode).not().discard();let x=this.colorNode?Ii(this.colorNode):t1;this.vertexColors===!0&&y.hasAttribute("color")&&(x=x.mul(k4())),a.instanceColor&&(x=Ff("vec3","vInstanceColor").mul(x)),a.isBatchedMesh&&a._colorsTexture&&(x=Ff("vec3","vBatchColor").mul(x)),xo.assign(x);const E=this.opacityNode?ft(this.opacityNode):n1;xo.a.assign(xo.a.mul(E));let z=null;(this.alphaTestNode!==null||this.alphaTest>0)&&(z=this.alphaTestNode!==null?ft(this.alphaTestNode):JI,xo.a.lessThanEqual(z).discard()),this.alphaHash===!0&&xo.a.lessThan(tQ(su)).discard(),this.transparent===!1&&this.blending===xc&&this.alphaToCoverage===!1?xo.a.assign(1):z===null&&xo.a.lessThanEqual(0).discard()}setupVariants(){}setupOutgoingLight(){return this.lights===!0?en(0):xo.rgb}setupNormal(){return this.normalNode?en(this.normalNode):n4}setupEnvironment(){let a=null;return this.envNode?a=this.envNode:this.envMap&&(a=this.envMap.isCubeTexture?dg("envMap","cubeTexture"):dg("envMap","texture")),a}setupLightMap(a){let y=null;return a.material.lightMap&&(y=new GW(FS)),y}setupLights(a){const y=[],x=this.setupEnvironment(a);x&&x.isLightingNode&&y.push(x);const E=this.setupLightMap(a);if(E&&E.isLightingNode&&y.push(E),this.aoNode!==null||a.material.aoMap){const ee=this.aoNode!==null?this.aoNode:x4;y.push(new jW(ee))}let z=this.lightsNode||a.lightsNode;return y.length>0&&(z=a.renderer.lighting.createNode([...z.getLights(),...y])),z}setupLightingModel(){}setupLighting(a){const{material:y}=a,{backdropNode:x,backdropAlphaNode:E,emissiveNode:z}=this,te=this.lights===!0||this.lightsNode!==null?this.setupLights(a):null;let ne=this.setupOutgoingLight(a);if(te&&te.getScope().hasLights){const ie=this.setupLightingModel(a)||null;ne=F4(te,ie,x,E)}else x!==null&&(ne=en(E!==null?ao(ne,x,E):x));return(z&&z.isNode===!0||y.emissive&&y.emissive.isColor===!0)&&(kB.assign(en(z||qI)),ne=ne.add(kB)),ne}setupFog(a,y){const x=a.fogNode;return x&&(X0.assign(y),y=Ii(x.toVar())),y}setupPremultipliedAlpha(a,y){return G4(y)}setupOutput(a,y){return this.fog===!0&&(y=this.setupFog(a,y)),this.premultipliedAlpha===!0&&(y=this.setupPremultipliedAlpha(a,y)),y}setDefaultValues(a){for(const x in a){const E=a[x];this[x]===void 0&&(this[x]=E,E&&E.clone&&(this[x]=E.clone()))}const y=Object.getOwnPropertyDescriptors(a.constructor.prototype);for(const x in y)Object.getOwnPropertyDescriptor(this.constructor.prototype,x)===void 0&&y[x].get!==void 0&&Object.defineProperty(this.constructor.prototype,x,y[x])}toJSON(a){const y=a===void 0||typeof a=="string";y&&(a={textures:{},images:{},nodes:{}});const x=Hc.prototype.toJSON.call(this,a),E=dx(this);x.inputNodes={};for(const{property:ee,childNode:te}of E)x.inputNodes[ee]=te.toJSON(a).uuid;function z(ee){const te=[];for(const ne in ee){const ie=ee[ne];delete ie.metadata,te.push(ie)}return te}if(y){const ee=z(a.textures),te=z(a.images),ne=z(a.nodes);ee.length>0&&(x.textures=ee),te.length>0&&(x.images=te),ne.length>0&&(x.nodes=ne)}return x}copy(a){return this.lightsNode=a.lightsNode,this.envNode=a.envNode,this.colorNode=a.colorNode,this.normalNode=a.normalNode,this.opacityNode=a.opacityNode,this.backdropNode=a.backdropNode,this.backdropAlphaNode=a.backdropAlphaNode,this.alphaTestNode=a.alphaTestNode,this.maskNode=a.maskNode,this.positionNode=a.positionNode,this.geometryNode=a.geometryNode,this.depthNode=a.depthNode,this.receivedShadowPositionNode=a.receivedShadowPositionNode,this.castShadowPositionNode=a.castShadowPositionNode,this.receivedShadowNode=a.receivedShadowNode,this.castShadowNode=a.castShadowNode,this.outputNode=a.outputNode,this.mrtNode=a.mrtNode,this.fragmentNode=a.fragmentNode,this.vertexNode=a.vertexNode,super.copy(a)}}const uQ=new $c;class cQ extends Yl{static get type(){return"LineBasicNodeMaterial"}constructor(a){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(uQ),this.setValues(a)}}const dQ=new bP;class fQ extends Yl{static get type(){return"LineDashedNodeMaterial"}constructor(a){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(dQ),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(a)}setupVariants(){const a=this.offsetNode?ft(this.offsetNode):IS,y=this.dashScaleNode?ft(this.dashScaleNode):MS,x=this.dashSizeNode?ft(this.dashSizeNode):DS,E=this.gapSizeNode?ft(this.gapSizeNode):TS;uA.assign(x),Ex.assign(E);const z=lm(Pd("lineDistance").mul(y));(a?z.add(a):z).mod(uA.add(Ex)).greaterThan(uA).discard()}}let VS=null;class hQ extends s1{static get type(){return"ViewportSharedTextureNode"}constructor(a=fg,y=null){VS===null&&(VS=new Y5),super(a,y,VS)}updateReference(){return this}}const X4=oa(hQ).setParameterLength(0,2),pQ=new bP;class zce extends null{static get type(){return"Line2NodeMaterial"}constructor(a={}){super(),this.isLine2NodeMaterial=!0,this.setDefaultValues(pQ),this.useColor=a.vertexColors,this.dashOffset=0,this.lineColorNode=null,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.blending=NoBlending,this._useDash=a.dashed,this._useAlphaToCoverage=!0,this._useWorldUnits=!1,this.setValues(a)}setup(a){const{renderer:y}=a,x=this._useAlphaToCoverage,E=this.useColor,z=this._useDash,ee=this._useWorldUnits,te=mn(({start:ie,end:ae})=>{const oe=Of.element(2).element(2),he=Of.element(3).element(2).mul(-.5).div(oe).sub(ie.z).div(ae.z.sub(ie.z));return Ii(ao(ie.xyz,ae.xyz,he),ae.w)}).setLayout({name:"trimSegment",type:"vec4",inputs:[{name:"start",type:"vec4"},{name:"end",type:"vec4"}]});this.vertexNode=mn(()=>{const ie=Pd("instanceStart"),ae=Pd("instanceEnd"),oe=Ii(cg.mul(Ii(ie,1))).toVar("start"),le=Ii(cg.mul(Ii(ae,1))).toVar("end");if(z){const Ne=this.dashScaleNode?ft(this.dashScaleNode):MS,Fe=this.offsetNode?ft(this.offsetNode):IS,ke=Pd("instanceDistanceStart"),Re=Pd("instanceDistanceEnd");let Oe=jc.y.lessThan(.5).select(Ne.mul(ke),Ne.mul(Re));Oe=Oe.add(Fe),Ff("float","lineDistance").assign(Oe)}ee&&(Ff("vec3","worldStart").assign(oe.xyz),Ff("vec3","worldEnd").assign(le.xyz));const de=hg.z.div(hg.w),he=Of.element(2).element(3).equal(-1);ds(he,()=>{ds(oe.z.lessThan(0).and(le.z.greaterThan(0)),()=>{le.assign(te({start:oe,end:le}))}).ElseIf(le.z.lessThan(0).and(oe.z.greaterThanEqual(0)),()=>{oe.assign(te({start:le,end:oe}))})});const ye=Of.mul(oe),Ae=Of.mul(le),me=ye.xyz.div(ye.w),Ce=Ae.xyz.div(Ae.w),Ee=Ce.xy.sub(me.xy).toVar();Ee.x.assign(Ee.x.mul(de)),Ee.assign(Ee.normalize());const Be=Ii().toVar();if(ee){const Ne=le.xyz.sub(oe.xyz).normalize(),Fe=ao(oe.xyz,le.xyz,.5).normalize(),ke=Ne.cross(Fe).normalize(),Re=Ne.cross(ke),Oe=Ff("vec4","worldPos");Oe.assign(jc.y.lessThan(.5).select(oe,le));const ze=i1.mul(.5);Oe.addAssign(Ii(jc.x.lessThan(0).select(ke.mul(ze),ke.mul(ze).negate()),0)),z||(Oe.addAssign(Ii(jc.y.lessThan(.5).select(Ne.mul(ze).negate(),Ne.mul(ze)),0)),Oe.addAssign(Ii(Re.mul(ze),0)),ds(jc.y.greaterThan(1).or(jc.y.lessThan(0)),()=>{Oe.subAssign(Ii(Re.mul(2).mul(ze),0))})),Be.assign(Of.mul(Oe));const Le=en().toVar();Le.assign(jc.y.lessThan(.5).select(me,Ce)),Be.z.assign(Le.z.mul(Be.w))}else{const Ne=Er(Ee.y,Ee.x.negate()).toVar("offset");Ee.x.assign(Ee.x.div(de)),Ne.x.assign(Ne.x.div(de)),Ne.assign(jc.x.lessThan(0).select(Ne.negate(),Ne)),ds(jc.y.lessThan(0),()=>{Ne.assign(Ne.sub(Ee))}).ElseIf(jc.y.greaterThan(1),()=>{Ne.assign(Ne.add(Ee))}),Ne.assign(Ne.mul(i1)),Ne.assign(Ne.div(hg.w)),Be.assign(jc.y.lessThan(.5).select(ye,Ae)),Ne.assign(Ne.mul(Be.w)),Be.assign(Be.add(Ii(Ne,0,0)))}return Be})();const ne=mn(({p1:ie,p2:ae,p3:oe,p4:le})=>{const de=ie.sub(oe),he=le.sub(oe),ye=ae.sub(ie),Ae=de.dot(he),me=he.dot(ye),Ce=de.dot(ye),Ee=he.dot(he),Ne=ye.dot(ye).mul(Ee).sub(me.mul(me)),ke=Ae.mul(me).sub(Ce.mul(Ee)).div(Ne).clamp(),Re=Ae.add(me.mul(ke)).div(Ee).clamp();return Er(ke,Re)});if(this.colorNode=mn(()=>{const ie=Xo();if(z){const le=this.dashSizeNode?ft(this.dashSizeNode):DS,de=this.gapSizeNode?ft(this.gapSizeNode):TS;uA.assign(le),Ex.assign(de);const he=Ff("float","lineDistance");ie.y.lessThan(-1).or(ie.y.greaterThan(1)).discard(),he.mod(uA.add(Ex)).greaterThan(uA).discard()}const ae=ft(1).toVar("alpha");if(ee){const le=Ff("vec3","worldStart"),de=Ff("vec3","worldEnd"),he=Ff("vec4","worldPos").xyz.normalize().mul(1e5),ye=de.sub(le),Ae=ne({p1:le,p2:de,p3:en(0,0,0),p4:he}),me=le.add(ye.mul(Ae.x)),Ce=he.mul(Ae.y),Ne=me.sub(Ce).length().div(i1);if(!z)if(x&&y.samples>1){const Fe=Ne.fwidth();ae.assign(Eh(Fe.negate().add(.5),Fe.add(.5),Ne).oneMinus())}else Ne.greaterThan(.5).discard()}else if(x&&y.samples>1){const le=ie.x,de=ie.y.greaterThan(0).select(ie.y.sub(1),ie.y.add(1)),he=le.mul(le).add(de.mul(de)),ye=ft(he.fwidth()).toVar("dlen");ds(ie.y.abs().greaterThan(1),()=>{ae.assign(Eh(ye.oneMinus(),ye.add(1),he).oneMinus())})}else ds(ie.y.abs().greaterThan(1),()=>{const le=ie.x,de=ie.y.greaterThan(0).select(ie.y.sub(1),ie.y.add(1));le.mul(le).add(de.mul(de)).greaterThan(1).discard()});let oe;if(this.lineColorNode)oe=this.lineColorNode;else if(E){const le=Pd("instanceColorStart"),de=Pd("instanceColorEnd");oe=jc.y.lessThan(.5).select(le,de).mul(t1)}else oe=t1;return Ii(oe,ae)})(),this.transparent){const ie=this.opacityNode?ft(this.opacityNode):n1;this.outputNode=Ii(this.colorNode.rgb.mul(ie).add(X4().rgb.mul(ie.oneMinus())),this.colorNode.a)}super.setup(a)}get worldUnits(){return this._useWorldUnits}set worldUnits(a){this._useWorldUnits!==a&&(this._useWorldUnits=a,this.needsUpdate=!0)}get dashed(){return this._useDash}set dashed(a){this._useDash!==a&&(this._useDash=a,this.needsUpdate=!0)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(a){this._useAlphaToCoverage!==a&&(this._useAlphaToCoverage=a,this.needsUpdate=!0)}}const W4=b=>gr(b).mul(.5).add(.5),mQ=b=>gr(b).mul(2).sub(1),gQ=new hD;class vQ extends Yl{static get type(){return"MeshNormalNodeMaterial"}constructor(a){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(gQ),this.setValues(a)}setupDiffuseColor(){const a=this.opacityNode?ft(this.opacityNode):n1;xo.assign(Xw(Ii(W4(Lo),a),nn))}}const GS=mn(([b=gS])=>{const a=b.z.atan(b.x).mul(1/(Math.PI*2)).add(.5),y=b.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return Er(a,y)});class Q4 extends P5{constructor(a=1,y={}){super(a,y),this.isCubeRenderTarget=!0}fromEquirectangularTexture(a,y){const x=y.minFilter,E=y.generateMipmaps;y.generateMipmaps=!0,this.texture.type=y.type,this.texture.colorSpace=y.colorSpace,this.texture.generateMipmaps=y.generateMipmaps,this.texture.minFilter=y.minFilter,this.texture.magFilter=y.magFilter;const z=new Jg(5,5,5),ee=GS(gS),te=new Yl;te.colorNode=Xa(y,ee,0),te.side=co,te.blending=El;const ne=new Fo(z,te),ie=new ky;ie.add(ne),y.minFilter===tu&&(y.minFilter=Io);const ae=new C5(1,10,this),oe=a.getMRT();return a.setMRT(null),ae.update(a,ie),a.setMRT(oe),y.minFilter=x,y.currentGenerateMipmaps=E,ne.geometry.dispose(),ne.material.dispose(),this}}const kx=new WeakMap;class AQ extends zu{static get type(){return"CubeMapNode"}constructor(a){super("vec3"),this.envNode=a,this._cubeTexture=null,this._cubeTextureNode=J0(null);const y=new Rv;y.isRenderTargetTexture=!0,this._defaultTexture=y,this.updateBeforeType=wa.RENDER}updateBefore(a){const{renderer:y,material:x}=a,E=this.envNode;if(E.isTextureNode||E.isMaterialReferenceNode){const z=E.isTextureNode?E.value:x[E.property];if(z&&z.isTexture){const ee=z.mapping;if(ee===Qh||ee===ah){if(kx.has(z)){const te=kx.get(z);Y4(te,z.mapping),this._cubeTexture=te}else{const te=z.image;if(yQ(te)){const ne=new Q4(te.height);ne.fromEquirectangularTexture(y,z),Y4(ne.texture,z.mapping),this._cubeTexture=ne.texture,kx.set(z,ne.texture),z.addEventListener("dispose",Z4)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(a){return this.updateBefore(a),this._cubeTextureNode}}function yQ(b){return b==null?!1:b.height>0}function Z4(b){const a=b.target;a.removeEventListener("dispose",Z4);const y=kx.get(a);y!==void 0&&(kx.delete(a),y.dispose())}function Y4(b,a){a===Qh?b.mapping=Iu:a===ah&&(b.mapping=gl)}const J4=oa(AQ).setParameterLength(1);class XS extends q0{static get type(){return"BasicEnvironmentNode"}constructor(a=null){super(),this.envNode=a}setup(a){a.context.environment=J4(this.envNode)}}class xQ extends q0{static get type(){return"BasicLightMapNode"}constructor(a=null){super(),this.lightMapNode=a}setup(a){const y=ft(1/Math.PI);a.context.irradianceLightMap=this.lightMapNode.mul(y)}}class a1{start(a){a.lightsNode.setupLights(a,a.lightsNode.getLightNodes(a)),this.indirect(a)}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}}class K4 extends a1{constructor(){super()}indirect({context:a}){const y=a.ambientOcclusion,x=a.reflectedLight,E=a.irradianceLightMap;x.indirectDiffuse.assign(Ii(0)),E?x.indirectDiffuse.addAssign(E):x.indirectDiffuse.addAssign(Ii(1,1,1,0)),x.indirectDiffuse.mulAssign(y),x.indirectDiffuse.mulAssign(xo.rgb)}finish(a){const{material:y,context:x}=a,E=x.outgoingLight,z=a.context.environment;if(z)switch(y.combine){case jl:E.rgb.assign(ao(E.rgb,E.rgb.mul(z.rgb),Nx.mul(r1)));break;case Fm:E.rgb.assign(ao(E.rgb,z.rgb,Nx.mul(r1)));break;case WA:E.rgb.addAssign(z.rgb.mul(Nx.mul(r1)));break;default:console.warn("THREE.BasicLightingModel: Unsupported .combine value:",y.combine);break}}}const bQ=new Cc;class EQ extends Yl{static get type(){return"MeshBasicNodeMaterial"}constructor(a){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(bQ),this.setValues(a)}setupNormal(){return Z0(Y0)}setupEnvironment(a){const y=super.setupEnvironment(a);return y?new XS(y):null}setupLightMap(a){let y=null;return a.material.lightMap&&(y=new xQ(FS)),y}setupOutgoingLight(){return xo.rgb}setupLightingModel(){return new K4}}const ty=mn(({f0:b,f90:a,dotVH:y})=>{const x=y.mul(-5.55473).sub(6.98316).mul(y).exp2();return b.mul(x.oneMinus()).add(a.mul(x))}),hA=mn(b=>b.diffuseColor.mul(1/Math.PI)),wQ=()=>ft(.25),CQ=mn(({dotNH:b})=>Fw.mul(ft(.5)).add(1).mul(ft(1/Math.PI)).mul(b.pow(Fw))),PQ=mn(({lightDirection:b})=>{const a=b.add(yl).normalize(),y=Lo.dot(a).clamp(),x=yl.dot(a).clamp(),E=ty({f0:Jd,f90:1,dotVH:x}),z=wQ(),ee=CQ({dotNH:y});return E.mul(z).mul(ee)});class q4 extends K4{constructor(a=!0){super(),this.specular=a}direct({lightDirection:a,lightColor:y,reflectedLight:x}){const z=Lo.dot(a).clamp().mul(y);x.directDiffuse.addAssign(z.mul(hA({diffuseColor:xo.rgb}))),this.specular===!0&&x.directSpecular.addAssign(z.mul(PQ({lightDirection:a})).mul(Nx))}indirect(a){const{ambientOcclusion:y,irradiance:x,reflectedLight:E}=a.context;E.indirectDiffuse.addAssign(x.mul(hA({diffuseColor:xo}))),E.indirectDiffuse.mulAssign(y)}}const BQ=new xP;class SQ extends Yl{static get type(){return"MeshLambertNodeMaterial"}constructor(a){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(BQ),this.setValues(a)}setupEnvironment(a){const y=super.setupEnvironment(a);return y?new XS(y):null}setupLightingModel(){return new q4(!1)}}const MQ=new yP;class DQ extends Yl{static get type(){return"MeshPhongNodeMaterial"}constructor(a){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(MQ),this.setValues(a)}setupEnvironment(a){const y=super.setupEnvironment(a);return y?new XS(y):null}setupLightingModel(){return new q4}setupVariants(){const a=(this.shininessNode?ft(this.shininessNode):KI).max(1e-4);Fw.assign(a);const y=this.specularNode||_I;Jd.assign(y)}copy(a){return this.shininessNode=a.shininessNode,this.specularNode=a.specularNode,super.copy(a)}}const _4=mn(b=>{if(b.geometry.hasAttribute("normal")===!1)return ft(0);const a=Y0.dFdx().abs().max(Y0.dFdy().abs());return a.x.max(a.y).max(a.z)}),WS=mn(b=>{const{roughness:a}=b,y=_4();let x=a.max(.0525);return x=x.add(y),x=x.min(1),x}),$4=mn(({alpha:b,dotNL:a,dotNV:y})=>{const x=b.pow2(),E=a.mul(x.add(x.oneMinus().mul(y.pow2())).sqrt()),z=y.mul(x.add(x.oneMinus().mul(a.pow2())).sqrt());return Nf(.5,E.add(z).max(w8))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),TQ=mn(({alphaT:b,alphaB:a,dotTV:y,dotBV:x,dotTL:E,dotBL:z,dotNV:ee,dotNL:te})=>{const ne=te.mul(en(b.mul(y),a.mul(x),ee).length()),ie=ee.mul(en(b.mul(E),a.mul(z),te).length());return Nf(.5,ne.add(ie)).saturate()}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),e9=mn(({alpha:b,dotNH:a})=>{const y=b.pow2(),x=a.pow2().mul(y.oneMinus()).oneMinus();return y.div(x.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),IQ=ft(1/Math.PI),FQ=mn(({alphaT:b,alphaB:a,dotNH:y,dotTH:x,dotBH:E})=>{const z=b.mul(a),ee=en(a.mul(x),b.mul(E),z.mul(y)),te=ee.dot(ee),ne=z.div(te);return IQ.mul(z.mul(ne.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),QS=mn(({lightDirection:b,f0:a,f90:y,roughness:x,f:E,normalView:z=Lo,USE_IRIDESCENCE:ee,USE_ANISOTROPY:te})=>{const ne=x.pow2(),ie=b.add(yl).normalize(),ae=z.dot(b).clamp(),oe=z.dot(yl).clamp(),le=z.dot(ie).clamp(),de=yl.dot(ie).clamp();let he=ty({f0:a,f90:y,dotVH:de}),ye,Ae;if(px(ee)&&(he=Tw.mix(he,E)),px(te)){const me=xx.dot(b),Ce=xx.dot(yl),Ee=xx.dot(ie),Be=lA.dot(b),Ne=lA.dot(yl),Fe=lA.dot(ie);ye=TQ({alphaT:Iw,alphaB:ne,dotTV:Ce,dotBV:Ne,dotTL:me,dotBL:Be,dotNV:oe,dotNL:ae}),Ae=FQ({alphaT:Iw,alphaB:ne,dotNH:le,dotTH:Ee,dotBH:Fe})}else ye=$4({alpha:ne,dotNL:ae,dotNV:oe}),Ae=e9({alpha:ne,dotNH:le});return he.mul(ye).mul(Ae)}),ZS=mn(({roughness:b,dotNV:a})=>{const y=Ii(-1,-.0275,-.572,.022),x=Ii(1,.0425,1.04,-.04),E=b.mul(y).add(x),z=E.x.mul(E.x).min(a.mul(-9.28).exp2()).mul(E.x).add(E.y);return Er(-1.04,1.04).mul(z).add(E.zw)}).setLayout({name:"DFGApprox",type:"vec2",inputs:[{name:"roughness",type:"float"},{name:"dotNV",type:"vec3"}]}),t9=mn(b=>{const{dotNV:a,specularColor:y,specularF90:x,roughness:E}=b,z=ZS({dotNV:a,roughness:E});return y.mul(z.x).add(x.mul(z.y))}),n9=mn(({f:b,f90:a,dotVH:y})=>{const x=y.oneMinus().saturate(),E=x.mul(x),z=x.mul(E,E).clamp(0,.9999);return b.sub(en(a).mul(z)).div(z.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),NQ=mn(({roughness:b,dotNH:a})=>{const y=b.pow2(),x=ft(1).div(y),z=a.pow2().oneMinus().max(.0078125);return ft(2).add(x).mul(z.pow(x.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),LQ=mn(({dotNV:b,dotNL:a})=>ft(1).div(ft(4).mul(a.add(b).sub(a.mul(b))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),OQ=mn(({lightDirection:b})=>{const a=b.add(yl).normalize(),y=Lo.dot(b).clamp(),x=Lo.dot(yl).clamp(),E=Lo.dot(a).clamp(),z=NQ({roughness:Dw,dotNH:E}),ee=LQ({dotNV:x,dotNL:y});return oA.mul(z).mul(ee)}),RQ=mn(({N:b,V:a,roughness:y})=>{const z=.0078125,ee=b.dot(a).saturate(),te=Er(y,ee.oneMinus().sqrt());return te.assign(te.mul(.984375).add(z)),te}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),r9=mn(({f:b})=>{const a=b.length();return Zl(a.mul(a).add(b.z).div(a.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),sv=mn(({v1:b,v2:a})=>{const y=b.dot(a),x=y.abs().toVar(),E=x.mul(.0145206).add(.4965155).mul(x).add(.8543985).toVar(),z=x.add(4.1616724).mul(x).add(3.417594).toVar(),ee=E.div(z),te=y.greaterThan(0).select(ee,Zl(y.mul(y).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(ee));return b.cross(a).mul(te)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),i9=mn(({N:b,V:a,P:y,mInv:x,p0:E,p1:z,p2:ee,p3:te})=>{const ne=z.sub(E).toVar(),ie=te.sub(E).toVar(),ae=ne.cross(ie),oe=en().toVar();return ds(ae.dot(y.sub(E)).greaterThanEqual(0),()=>{const le=a.sub(b.mul(a.dot(b))).normalize(),de=b.cross(le).negate(),he=x.mul(td(le,de,b).transpose()).toVar(),ye=he.mul(E.sub(y)).normalize().toVar(),Ae=he.mul(z.sub(y)).normalize().toVar(),me=he.mul(ee.sub(y)).normalize().toVar(),Ce=he.mul(te.sub(y)).normalize().toVar(),Ee=en(0).toVar();Ee.addAssign(sv({v1:ye,v2:Ae})),Ee.addAssign(sv({v1:Ae,v2:me})),Ee.addAssign(sv({v1:me,v2:Ce})),Ee.addAssign(sv({v1:Ce,v2:ye})),oe.assign(en(r9({f:Ee})))}),oe}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),zQ=mn(({P:b,p0:a,p1:y,p2:x,p3:E})=>{const z=y.sub(a).toVar(),ee=E.sub(a).toVar(),te=z.cross(ee),ne=en().toVar();return ds(te.dot(b.sub(a)).greaterThanEqual(0),()=>{const ie=a.sub(b).normalize().toVar(),ae=y.sub(b).normalize().toVar(),oe=x.sub(b).normalize().toVar(),le=E.sub(b).normalize().toVar(),de=en(0).toVar();de.addAssign(sv({v1:ie,v2:ae})),de.addAssign(sv({v1:ae,v2:oe})),de.addAssign(sv({v1:oe,v2:le})),de.addAssign(sv({v1:le,v2:ie})),ne.assign(en(r9({f:de.abs()})))}),ne}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"P",type:"vec3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),o1=1/6,s9=b=>Ca(o1,Ca(b,Ca(b,b.negate().add(3)).sub(3)).add(1)),YS=b=>Ca(o1,Ca(b,Ca(b,Ca(3,b).sub(6))).add(4)),a9=b=>Ca(o1,Ca(b,Ca(b,Ca(-3,b).add(3)).add(3)).add(1)),JS=b=>Ca(o1,xh(b,3)),o9=b=>s9(b).add(YS(b)),l9=b=>a9(b).add(JS(b)),u9=b=>Eu(-1,YS(b).div(s9(b).add(YS(b)))),c9=b=>Eu(1,JS(b).div(a9(b).add(JS(b)))),d9=(b,a,y)=>{const x=b.uvNode,E=Ca(x,a.zw).add(.5),z=am(E),ee=sg(E),te=o9(ee.x),ne=l9(ee.x),ie=u9(ee.x),ae=c9(ee.x),oe=u9(ee.y),le=c9(ee.y),de=Er(z.x.add(ie),z.y.add(oe)).sub(.5).mul(a.xy),he=Er(z.x.add(ae),z.y.add(oe)).sub(.5).mul(a.xy),ye=Er(z.x.add(ie),z.y.add(le)).sub(.5).mul(a.xy),Ae=Er(z.x.add(ae),z.y.add(le)).sub(.5).mul(a.xy),me=o9(ee.y).mul(Eu(te.mul(b.sample(de).level(y)),ne.mul(b.sample(he).level(y)))),Ce=l9(ee.y).mul(Eu(te.mul(b.sample(ye).level(y)),ne.mul(b.sample(Ae).level(y))));return me.add(Ce)},KS=mn(([b,a])=>{const y=Er(b.size(Xt(a))),x=Er(b.size(Xt(a.add(1)))),E=Nf(1,y),z=Nf(1,x),ee=d9(b,Ii(E,y),am(a)),te=d9(b,Ii(z,x),zw(a));return sg(a).mix(ee,te)}),kQ=mn(([b,a])=>{const y=a.mul(dS(b));return KS(b,y)}),f9=mn(([b,a,y,x,E])=>{const z=en(rS(a.negate(),ig(b),Nf(1,x))),ee=en(om(E[0].xyz),om(E[1].xyz),om(E[2].xyz));return ig(z).mul(y.mul(ee))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),HQ=mn(([b,a])=>b.mul(bh(a.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),UQ=OS(),jQ=OS(),h9=mn(([b,a,y],{material:x})=>{const z=(x.side===co?UQ:jQ).sample(b),ee=im(Rx.x).mul(HQ(a,y));return KS(z,ee)}),p9=mn(([b,a,y])=>(ds(y.notEqual(0),()=>{const x=Rw(a).negate().div(y);return YB(x.negate().mul(b))}),en(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),VQ=mn(([b,a,y,x,E,z,ee,te,ne,ie,ae,oe,le,de,he])=>{let ye,Ae;if(he){ye=Ii().toVar(),Ae=en().toVar();const Ne=ae.sub(1).mul(he.mul(.025)),Fe=en(ae.sub(Ne),ae,ae.add(Ne));Oo({start:0,end:3},({i:ke})=>{const Re=Fe.element(ke),Oe=f9(b,a,oe,Re,te),ze=ee.add(Oe),Le=ie.mul(ne.mul(Ii(ze,1))),_e=Er(Le.xy.div(Le.w)).toVar();_e.addAssign(1),_e.divAssign(2),_e.assign(Er(_e.x,_e.y.oneMinus()));const Et=h9(_e,y,Re);ye.element(ke).assign(Et.element(ke)),ye.a.addAssign(Et.a),Ae.element(ke).assign(x.element(ke).mul(p9(om(Oe),le,de).element(ke)))}),ye.a.divAssign(3)}else{const Ne=f9(b,a,oe,ae,te),Fe=ee.add(Ne),ke=ie.mul(ne.mul(Ii(Fe,1))),Re=Er(ke.xy.div(ke.w)).toVar();Re.addAssign(1),Re.divAssign(2),Re.assign(Er(Re.x,Re.y.oneMinus())),ye=h9(Re,y,ae),Ae=x.mul(p9(om(Ne),le,de))}const me=Ae.rgb.mul(ye.rgb),Ce=b.dot(a).clamp(),Ee=en(t9({dotNV:Ce,specularColor:E,specularF90:z,roughness:y})),Be=Ae.r.add(Ae.g,Ae.b).div(3);return Ii(Ee.oneMinus().mul(me),ye.a.oneMinus().mul(Be).oneMinus())}),GQ=td(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),XQ=b=>{const a=b.sqrt();return en(1).add(a).div(en(1).sub(a))},m9=(b,a)=>b.sub(a).div(b.add(a)).pow2(),WQ=(b,a)=>{const y=b.mul(2*Math.PI*1e-9),x=en(54856e-17,44201e-17,52481e-17),E=en(1681e3,1795300,2208400),z=en(43278e5,93046e5,66121e5),ee=ft(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(y.mul(2239900).add(a.x).cos()).mul(y.pow2().mul(-45282e5).exp());let te=x.mul(z.mul(2*Math.PI).sqrt()).mul(E.mul(y).add(a).cos()).mul(y.pow2().negate().mul(z).exp());return te=en(te.x.add(ee),te.y,te.z).div(10685e-11),GQ.mul(te)},QQ=mn(({outsideIOR:b,eta2:a,cosTheta1:y,thinFilmThickness:x,baseF0:E})=>{const z=ao(b,a,Eh(0,.03,x)),te=b.div(z).pow2().mul(y.pow2().oneMinus()).oneMinus();ds(te.lessThan(0),()=>en(1));const ne=te.sqrt(),ie=m9(z,b),ae=ty({f0:ie,f90:1,dotVH:y}),oe=ae.oneMinus(),le=z.lessThan(b).select(Math.PI,0),de=ft(Math.PI).sub(le),he=XQ(E.clamp(0,.9999)),ye=m9(he,z.toVec3()),Ae=ty({f0:ye,f90:1,dotVH:ne}),me=en(he.x.lessThan(z).select(Math.PI,0),he.y.lessThan(z).select(Math.PI,0),he.z.lessThan(z).select(Math.PI,0)),Ce=z.mul(x,ne,2),Ee=en(de).add(me),Be=ae.mul(Ae).clamp(1e-5,.9999),Ne=Be.sqrt(),Fe=oe.pow2().mul(Ae).div(en(1).sub(Be)),Re=ae.add(Fe).toVar(),Oe=Fe.sub(oe).toVar();return Oo({start:1,end:2,condition:"<=",name:"m"},({m:ze})=>{Oe.mulAssign(Ne);const Le=WQ(ft(ze).mul(Ce),ft(ze).mul(Ee)).mul(2);Re.addAssign(Oe.mul(Le))}),Re.max(en(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),ZQ=mn(({normal:b,viewDir:a,roughness:y})=>{const x=b.dot(a).saturate(),E=y.pow2(),z=Bc(y.lessThan(.25),ft(-339.2).mul(E).add(ft(161.4).mul(y)).sub(25.9),ft(-8.48).mul(E).add(ft(14.3).mul(y)).sub(9.95)),ee=Bc(y.lessThan(.25),ft(44).mul(E).sub(ft(23.7).mul(y)).add(3.26),ft(1.97).mul(E).sub(ft(3.27).mul(y)).add(.72));return Bc(y.lessThan(.25),0,ft(.1).mul(y).sub(.025)).add(z.mul(x).add(ee).exp()).mul(1/Math.PI).saturate()}),qS=en(.04),_S=ft(1);class g9 extends a1{constructor(a=!1,y=!1,x=!1,E=!1,z=!1,ee=!1){super(),this.clearcoat=a,this.sheen=y,this.iridescence=x,this.anisotropy=E,this.transmission=z,this.dispersion=ee,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null}start(a){if(this.clearcoat===!0&&(this.clearcoatRadiance=en().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=en().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=en().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=en().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=en().toVar("sheenSpecularIndirect")),this.iridescence===!0){const y=Lo.dot(yl).clamp();this.iridescenceFresnel=QQ({outsideIOR:ft(1),eta2:HB,cosTheta1:y,thinFilmThickness:UB,baseF0:Jd}),this.iridescenceF0=n9({f:this.iridescenceFresnel,f90:1,dotVH:y})}if(this.transmission===!0){const y=zf,x=Ix.sub(zf).normalize(),E=rv,z=a.context;z.backdrop=VQ(E,x,rm,xo,Jd,bx,y,Ph,Rf,Of,wx,jB,GB,VB,this.dispersion?XB:null),z.backdropAlpha=Nw,xo.a.mulAssign(ao(1,z.backdrop.a,Nw))}super.start(a)}computeMultiscattering(a,y,x){const E=Lo.dot(yl).clamp(),z=ZS({roughness:rm,dotNV:E}),te=(this.iridescenceF0?Tw.mix(Jd,this.iridescenceF0):Jd).mul(z.x).add(x.mul(z.y)),ie=z.x.add(z.y).oneMinus(),ae=Jd.add(Jd.oneMinus().mul(.047619)),oe=te.mul(ae).div(ie.mul(ae).oneMinus());a.addAssign(te),y.addAssign(oe.mul(ie))}direct({lightDirection:a,lightColor:y,reflectedLight:x}){const z=Lo.dot(a).clamp().mul(y);if(this.sheen===!0&&this.sheenSpecularDirect.addAssign(z.mul(OQ({lightDirection:a}))),this.clearcoat===!0){const te=cA.dot(a).clamp().mul(y);this.clearcoatSpecularDirect.addAssign(te.mul(QS({lightDirection:a,f0:qS,f90:_S,roughness:yx,normalView:cA})))}x.directDiffuse.addAssign(z.mul(hA({diffuseColor:xo.rgb}))),x.directSpecular.addAssign(z.mul(QS({lightDirection:a,f0:Jd,f90:1,roughness:rm,iridescence:this.iridescence,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:a,lightPosition:y,halfWidth:x,halfHeight:E,reflectedLight:z,ltc_1:ee,ltc_2:te}){const ne=y.add(x).sub(E),ie=y.sub(x).sub(E),ae=y.sub(x).add(E),oe=y.add(x).add(E),le=Lo,de=yl,he=au.toVar(),ye=RQ({N:le,V:de,roughness:rm}),Ae=ee.sample(ye).toVar(),me=te.sample(ye).toVar(),Ce=td(en(Ae.x,0,Ae.y),en(0,1,0),en(Ae.z,0,Ae.w)).toVar(),Ee=Jd.mul(me.x).add(Jd.oneMinus().mul(me.y)).toVar();z.directSpecular.addAssign(a.mul(Ee).mul(i9({N:le,V:de,P:he,mInv:Ce,p0:ne,p1:ie,p2:ae,p3:oe}))),z.directDiffuse.addAssign(a.mul(xo).mul(i9({N:le,V:de,P:he,mInv:td(1,0,0,0,1,0,0,0,1),p0:ne,p1:ie,p2:ae,p3:oe})))}indirect(a){this.indirectDiffuse(a),this.indirectSpecular(a),this.ambientOcclusion(a)}indirectDiffuse(a){const{irradiance:y,reflectedLight:x}=a.context;x.indirectDiffuse.addAssign(y.mul(hA({diffuseColor:xo})))}indirectSpecular(a){const{radiance:y,iblIrradiance:x,reflectedLight:E}=a.context;if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(x.mul(oA,ZQ({normal:Lo,viewDir:yl,roughness:Dw}))),this.clearcoat===!0){const ae=cA.dot(yl).clamp(),oe=t9({dotNV:ae,specularColor:qS,specularF90:_S,roughness:yx});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(oe))}const z=en().toVar("singleScattering"),ee=en().toVar("multiScattering"),te=x.mul(1/Math.PI);this.computeMultiscattering(z,ee,bx);const ne=z.add(ee),ie=xo.mul(ne.r.max(ne.g).max(ne.b).oneMinus());E.indirectSpecular.addAssign(y.mul(z)),E.indirectSpecular.addAssign(ee.mul(te)),E.indirectDiffuse.addAssign(ie.mul(te))}ambientOcclusion(a){const{ambientOcclusion:y,reflectedLight:x}=a.context,z=Lo.dot(yl).clamp().add(y),ee=rm.mul(-16).oneMinus().negate().exp2(),te=y.sub(z.pow(ee).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(y),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(y),x.indirectDiffuse.mulAssign(y),x.indirectSpecular.mulAssign(te)}finish({context:a}){const{outgoingLight:y}=a;if(this.clearcoat===!0){const x=cA.dot(yl).clamp(),E=ty({dotVH:x,f0:qS,f90:_S}),z=y.mul(Mw.mul(E).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(Mw));y.assign(z)}if(this.sheen===!0){const x=oA.r.max(oA.g).max(oA.b).mul(.157).oneMinus(),E=y.mul(x).add(this.sheenSpecularDirect,this.sheenSpecularIndirect);y.assign(E)}}}const v9=ft(1),$S=ft(-2),l1=ft(.8),e3=ft(-1),u1=ft(.4),t3=ft(2),c1=ft(.305),n3=ft(3),A9=ft(.21),YQ=ft(4),y9=ft(4),JQ=ft(16),KQ=mn(([b])=>{const a=en(hl(b)).toVar(),y=ft(-1).toVar();return ds(a.x.greaterThan(a.z),()=>{ds(a.x.greaterThan(a.y),()=>{y.assign(Bc(b.x.greaterThan(0),0,3))}).Else(()=>{y.assign(Bc(b.y.greaterThan(0),1,4))})}).Else(()=>{ds(a.z.greaterThan(a.y),()=>{y.assign(Bc(b.z.greaterThan(0),2,5))}).Else(()=>{y.assign(Bc(b.y.greaterThan(0),1,4))})}),y}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),qQ=mn(([b,a])=>{const y=Er().toVar();return ds(a.equal(0),()=>{y.assign(Er(b.z,b.y).div(hl(b.x)))}).ElseIf(a.equal(1),()=>{y.assign(Er(b.x.negate(),b.z.negate()).div(hl(b.y)))}).ElseIf(a.equal(2),()=>{y.assign(Er(b.x.negate(),b.y).div(hl(b.z)))}).ElseIf(a.equal(3),()=>{y.assign(Er(b.z.negate(),b.y).div(hl(b.x)))}).ElseIf(a.equal(4),()=>{y.assign(Er(b.x.negate(),b.z).div(hl(b.y)))}).Else(()=>{y.assign(Er(b.x,b.y).div(hl(b.z)))}),Ca(.5,y.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),_Q=mn(([b])=>{const a=ft(0).toVar();return ds(b.greaterThanEqual(l1),()=>{a.assign(v9.sub(b).mul(e3.sub($S)).div(v9.sub(l1)).add($S))}).ElseIf(b.greaterThanEqual(u1),()=>{a.assign(l1.sub(b).mul(t3.sub(e3)).div(l1.sub(u1)).add(e3))}).ElseIf(b.greaterThanEqual(c1),()=>{a.assign(u1.sub(b).mul(n3.sub(t3)).div(u1.sub(c1)).add(t3))}).ElseIf(b.greaterThanEqual(A9),()=>{a.assign(c1.sub(b).mul(YQ.sub(n3)).div(c1.sub(A9)).add(n3))}).Else(()=>{a.assign(ft(-2).mul(im(Ca(1.16,b))))}),a}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),x9=mn(([b,a])=>{const y=b.toVar();y.assign(Ca(2,y).sub(1));const x=en(y,1).toVar();return ds(a.equal(0),()=>{x.assign(x.zyx)}).ElseIf(a.equal(1),()=>{x.assign(x.xzy),x.xz.mulAssign(-1)}).ElseIf(a.equal(2),()=>{x.x.mulAssign(-1)}).ElseIf(a.equal(3),()=>{x.assign(x.zyx),x.xz.mulAssign(-1)}).ElseIf(a.equal(4),()=>{x.assign(x.xzy),x.xy.mulAssign(-1)}).ElseIf(a.equal(5),()=>{x.z.mulAssign(-1)}),x}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),b9=mn(([b,a,y,x,E,z])=>{const ee=ft(y),te=en(a),ne=bh(_Q(ee),$S,z),ie=sg(ne),ae=am(ne),oe=en(r3(b,te,ae,x,E,z)).toVar();return ds(ie.notEqual(0),()=>{const le=en(r3(b,te,ae.add(1),x,E,z)).toVar();oe.assign(ao(oe,le,ie))}),oe}),r3=mn(([b,a,y,x,E,z])=>{const ee=ft(y).toVar(),te=en(a),ne=ft(KQ(te)).toVar(),ie=ft(Zl(y9.sub(ee),0)).toVar();ee.assign(Zl(ee,y9));const ae=ft(W0(ee)).toVar(),oe=Er(qQ(te,ne).mul(ae.sub(2)).add(1)).toVar();return ds(ne.greaterThan(2),()=>{oe.y.addAssign(ae),ne.subAssign(3)}),oe.x.addAssign(ne.mul(ae)),oe.x.addAssign(ie.mul(Ca(3,JQ))),oe.y.addAssign(Ca(4,W0(z).sub(ae))),oe.x.mulAssign(x),oe.y.mulAssign(E),b.sample(oe).grad(Er(),Er())}),i3=mn(({envMap:b,mipInt:a,outputDirection:y,theta:x,axis:E,CUBEUV_TEXEL_WIDTH:z,CUBEUV_TEXEL_HEIGHT:ee,CUBEUV_MAX_MIP:te})=>{const ne=ag(x),ie=y.mul(ne).add(E.cross(y).mul(Lf(x))).add(E.mul(E.dot(y).mul(ne.oneMinus())));return r3(b,ie,a,z,ee,te)}),E9=mn(({n:b,latitudinal:a,poleAxis:y,outputDirection:x,weights:E,samples:z,dTheta:ee,mipInt:te,envMap:ne,CUBEUV_TEXEL_WIDTH:ie,CUBEUV_TEXEL_HEIGHT:ae,CUBEUV_MAX_MIP:oe})=>{const le=en(Bc(a,y,Uw(y,x))).toVar();ds(le.equal(en(0)),()=>{le.assign(en(x.z,0,x.x.negate()))}),le.assign(ig(le));const de=en().toVar();return de.addAssign(E.element(0).mul(i3({theta:0,axis:le,outputDirection:x,mipInt:te,envMap:ne,CUBEUV_TEXEL_WIDTH:ie,CUBEUV_TEXEL_HEIGHT:ae,CUBEUV_MAX_MIP:oe}))),Oo({start:Xt(1),end:b},({i:he})=>{ds(he.greaterThanEqual(z),()=>{D4()});const ye=ft(ee.mul(ft(he))).toVar();de.addAssign(E.element(he).mul(i3({theta:ye.mul(-1),axis:le,outputDirection:x,mipInt:te,envMap:ne,CUBEUV_TEXEL_WIDTH:ie,CUBEUV_TEXEL_HEIGHT:ae,CUBEUV_MAX_MIP:oe}))),de.addAssign(E.element(he).mul(i3({theta:ye,axis:le,outputDirection:x,mipInt:te,envMap:ne,CUBEUV_TEXEL_WIDTH:ie,CUBEUV_TEXEL_HEIGHT:ae,CUBEUV_MAX_MIP:oe})))}),Ii(de,1)}),ny=4,w9=[.125,.215,.35,.446,.526,.582],pA=20,s3=new T0(-1,1,1,-1,0,1),$Q=new xu(90,1),C9=new xi;let a3=null,o3=0,l3=0;const mA=(1+Math.sqrt(5))/2,ry=1/mA,P9=[new ot(-mA,ry,0),new ot(mA,ry,0),new ot(-ry,0,mA),new ot(ry,0,mA),new ot(0,mA,-ry),new ot(0,mA,ry),new ot(-1,1,-1),new ot(1,1,-1),new ot(-1,1,1),new ot(1,1,1)],eZ=new ot,B9=new WeakMap,tZ=[3,1,5,0,4,2],u3=x9(Xo(),Pd("faceIndex")).normalize(),c3=en(u3.x,u3.y,u3.z);class nZ{constructor(a){this._renderer=a,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(a,y=0,x=.1,E=100,z={}){const{size:ee=256,position:te=eZ,renderTarget:ne=null}=z;if(this._setSize(ee),this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Try using .fromSceneAsync() instead.");const ae=ne||this._allocateTarget();return z.renderTarget=ae,this.fromSceneAsync(a,y,x,E,z),ae}a3=this._renderer.getRenderTarget(),o3=this._renderer.getActiveCubeFace(),l3=this._renderer.getActiveMipmapLevel();const ie=ne||this._allocateTarget();return ie.depthBuffer=!0,this._init(ie),this._sceneToCubeUV(a,x,E,ie,te),y>0&&this._blur(ie,0,0,y),this._applyPMREM(ie),this._cleanup(ie),ie}fromSceneAsync(ee){return Fs(this,arguments,function*(a,y=0,x=.1,E=100,z={}){return this._hasInitialized===!1&&(yield this._renderer.init()),this.fromScene(a,y,x,E,z)})}fromEquirectangular(a,y=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Try using .fromEquirectangularAsync() instead."),this._setSizeFromTexture(a);const x=y||this._allocateTarget();return this.fromEquirectangularAsync(a,x),x}return this._fromTexture(a,y)}fromEquirectangularAsync(a,y=null){return Fs(this,null,function*(){return this._hasInitialized===!1&&(yield this._renderer.init()),this._fromTexture(a,y)})}fromCubemap(a,y=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Try using .fromCubemapAsync() instead."),this._setSizeFromTexture(a);const x=y||this._allocateTarget();return this.fromCubemapAsync(a,y),x}return this._fromTexture(a,y)}fromCubemapAsync(a,y=null){return Fs(this,null,function*(){return this._hasInitialized===!1&&(yield this._renderer.init()),this._fromTexture(a,y)})}compileCubemapShader(){return Fs(this,null,function*(){this._cubemapMaterial===null&&(this._cubemapMaterial=M9(),yield this._compileMaterial(this._cubemapMaterial))})}compileEquirectangularShader(){return Fs(this,null,function*(){this._equirectMaterial===null&&(this._equirectMaterial=D9(),yield this._compileMaterial(this._equirectMaterial))})}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(a){a.mapping===Iu||a.mapping===gl?this._setSize(a.image.length===0?16:a.image[0].width||a.image[0].image.width):this._setSize(a.image.width/4)}_setSize(a){this._lodMax=Math.floor(Math.log2(a)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let a=0;a2?Ae:0,Ae,Ae),ie.render(a,ee)}ie.autoClear=ae,a.background=de}_textureToCubeUV(a,y){const x=this._renderer,E=a.mapping===Iu||a.mapping===gl;E?this._cubemapMaterial===null&&(this._cubemapMaterial=M9(a)):this._equirectMaterial===null&&(this._equirectMaterial=D9(a));const z=E?this._cubemapMaterial:this._equirectMaterial;z.fragmentNode.value=a;const ee=this._lodMeshes[0];ee.material=z;const te=this._cubeSize;d1(y,0,0,3*te,2*te),x.setRenderTarget(y),x.render(ee,s3)}_applyPMREM(a){const y=this._renderer,x=y.autoClear;y.autoClear=!1;const E=this._lodPlanes.length;for(let z=1;zpA&&console.warn(`sigmaRadians, ${z}, is too large and will clip, as it requested ${Ae} samples when the maximum is set to ${pA}`);const me=[];let Ce=0;for(let ke=0;keEe-ny?E-Ee+ny:0),Fe=4*(this._cubeSize-Be);d1(y,Ne,Fe,3*Be,2*Be),ne.setRenderTarget(y),ne.render(oe,s3)}}function rZ(b){const a=[],y=[],x=[],E=[];let z=b;const ee=b-ny+1+w9.length;for(let te=0;teb-ny?ie=w9[te-b+ny-1]:te===0&&(ie=0),x.push(ie);const ae=1/(ne-2),oe=-ae,le=1+ae,de=[oe,oe,le,oe,le,le,oe,oe,le,le,oe,le],he=6,ye=6,Ae=3,me=2,Ce=1,Ee=new Float32Array(Ae*ye*he),Be=new Float32Array(me*ye*he),Ne=new Float32Array(Ce*ye*he);for(let ke=0;ke2?0:-1,ze=[Re,Oe,0,Re+2/3,Oe,0,Re+2/3,Oe+1,0,Re,Oe,0,Re+2/3,Oe+1,0,Re,Oe+1,0],Le=tZ[ke];Ee.set(ze,Ae*ye*Le),Be.set(de,me*ye*Le);const _e=[Le,Le,Le,Le,Le,Le];Ne.set(_e,Ce*ye*Le)}const Fe=new Fa;Fe.setAttribute("position",new nl(Ee,Ae)),Fe.setAttribute("uv",new nl(Be,me)),Fe.setAttribute("faceIndex",new nl(Ne,Ce)),a.push(Fe),E.push(new Fo(Fe,null)),z>ny&&z--}return{lodPlanes:a,sizeLods:y,sigmas:x,lodMeshes:E}}function S9(b,a){const y={magFilter:Io,minFilter:Io,generateMipmaps:!1,type:vl,format:yo,colorSpace:sr},x=new Xm(b,a,y);return x.texture.mapping=Fu,x.texture.name="PMREM.cubeUv",x.texture.isPMREMTexture=!0,x.scissorTest=!0,x}function d1(b,a,y,x,E){b.viewport.set(a,y,x,E),b.scissor.set(a,y,x,E)}function d3(b){const a=new Yl;return a.depthTest=!1,a.depthWrite=!1,a.blending=El,a.name=`PMREM_${b}`,a}function iZ(b,a,y){const x=wh(new Array(pA).fill(0)),E=bs(new ot(0,1,0)),z=bs(0),ee=ft(pA),te=bs(0),ne=bs(1),ie=Xa(null),ae=bs(0),oe=ft(1/a),le=ft(1/y),de=ft(b),he={n:ee,latitudinal:te,weights:x,poleAxis:E,outputDirection:c3,dTheta:z,samples:ne,envMap:ie,mipInt:ae,CUBEUV_TEXEL_WIDTH:oe,CUBEUV_TEXEL_HEIGHT:le,CUBEUV_MAX_MIP:de},ye=d3("blur");return ye.fragmentNode=E9(ym(Dl({},he),{latitudinal:te.equal(1)})),B9.set(ye,he),ye}function M9(b){const a=d3("cubemap");return a.fragmentNode=J0(b,c3),a}function D9(b){const a=d3("equirect");return a.fragmentNode=Xa(b,GS(c3),0),a}const T9=new WeakMap;function sZ(b){const a=Math.log2(b)-2,y=1/b;return{texelWidth:1/(3*Math.max(Math.pow(2,a),7*16)),texelHeight:y,maxMip:a}}function aZ(b,a,y){const x=oZ(a);let E=x.get(b);if((E!==void 0?E.pmremVersion:-1)!==b.pmremVersion){const ee=b.image;if(b.isCubeTexture)if(uZ(ee))E=y.fromCubemap(b,E);else return null;else if(cZ(ee))E=y.fromEquirectangular(b,E);else return null;E.pmremVersion=b.pmremVersion,x.set(b,E)}return E.texture}function oZ(b){let a=T9.get(b);return a===void 0&&(a=new WeakMap,T9.set(b,a)),a}class lZ extends zu{static get type(){return"PMREMNode"}constructor(a,y=null,x=null){super("vec3"),this._value=a,this._pmrem=null,this.uvNode=y,this.levelNode=x,this._generator=null;const E=new yu;E.isRenderTargetTexture=!0,this._texture=Xa(E),this._width=bs(0),this._height=bs(0),this._maxMip=bs(0),this.updateBeforeType=wa.RENDER}set value(a){this._value=a,this._pmrem=null}get value(){return this._value}updateFromTexture(a){const y=sZ(a.image.height);this._texture.value=a,this._width.value=y.texelWidth,this._height.value=y.texelHeight,this._maxMip.value=y.maxMip}updateBefore(a){let y=this._pmrem;const x=y?y.pmremVersion:-1,E=this._value;x!==E.pmremVersion&&(E.isPMREMTexture===!0?y=E:y=aZ(E,a.renderer,this._generator),y!==null&&(this._pmrem=y,this.updateFromTexture(y)))}setup(a){this._generator===null&&(this._generator=new nZ(a.renderer)),this.updateBefore(a);let y=this.uvNode;y===null&&a.context.getUV&&(y=a.context.getUV(this)),y=xS.mul(en(y.x,y.y.negate(),y.z));let x=this.levelNode;return x===null&&a.context.getTextureLevel&&(x=a.context.getTextureLevel(this)),b9(this._texture,y,x,this._width,this._height,this._maxMip)}dispose(){super.dispose(),this._generator!==null&&this._generator.dispose()}}function uZ(b){if(b==null)return!1;let a=0;const y=6;for(let x=0;x0}const f3=oa(lZ).setParameterLength(1,3),I9=new WeakMap;class dZ extends q0{static get type(){return"EnvironmentNode"}constructor(a=null){super(),this.envNode=a}setup(a){const{material:y}=a;let x=this.envNode;if(x.isTextureNode||x.isMaterialReferenceNode){const oe=x.isTextureNode?x.value:y[x.property];let le=I9.get(oe);le===void 0&&(le=f3(oe),I9.set(oe,le)),x=le}const z=y.useAnisotropy===!0||y.anisotropy>0?ZI:Lo,ee=x.context(F9(rm,z)).mul(Kw),te=x.context(fZ(rv)).mul(Math.PI).mul(Kw),ne=Mx(ee),ie=Mx(te);a.context.radiance.addAssign(ne),a.context.iblIrradiance.addAssign(ie);const ae=a.context.lightingModel.clearcoatRadiance;if(ae){const oe=x.context(F9(yx,cA)).mul(Kw),le=Mx(oe);ae.addAssign(le)}}}const F9=(b,a)=>{let y=null;return{getUV:()=>(y===null&&(y=yl.negate().reflect(a),y=b.mul(b).mix(y,a).normalize(),y=y.transformDirection(Rf)),y),getTextureLevel:()=>b}},fZ=b=>({getUV:()=>b,getTextureLevel:()=>ft(1)}),hZ=new AP;class N9 extends Yl{static get type(){return"MeshStandardNodeMaterial"}constructor(a){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(hZ),this.setValues(a)}setupEnvironment(a){let y=super.setupEnvironment(a);return y===null&&a.environmentNode&&(y=a.environmentNode),y?new dZ(y):null}setupLightingModel(){return new g9}setupSpecular(){const a=ao(en(.04),xo.rgb,Ax);Jd.assign(a),bx.assign(1)}setupVariants(){const a=this.metalnessNode?ft(this.metalnessNode):t4;Ax.assign(a);let y=this.roughnessNode?ft(this.roughnessNode):e4;y=WS({roughness:y}),rm.assign(y),this.setupSpecular(),xo.assign(Ii(xo.rgb.mul(a.oneMinus()),xo.a))}copy(a){return this.emissiveNode=a.emissiveNode,this.metalnessNode=a.metalnessNode,this.roughnessNode=a.roughnessNode,super.copy(a)}}const pZ=new dD;class mZ extends N9{static get type(){return"MeshPhysicalNodeMaterial"}constructor(a){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(pZ),this.setValues(a)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const a=this.iorNode?ft(this.iorNode):m4;wx.assign(a),Jd.assign(ao(Kd(eS(wx.sub(1).div(wx.add(1))).mul($I),en(1)).mul(SS),xo.rgb,Ax)),bx.assign(ao(SS,1,Ax))}setupLightingModel(){return new g9(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(a){if(super.setupVariants(a),this.useClearcoat){const y=this.clearcoatNode?ft(this.clearcoatNode):r4,x=this.clearcoatRoughnessNode?ft(this.clearcoatRoughnessNode):i4;Mw.assign(y),yx.assign(WS({roughness:x}))}if(this.useSheen){const y=this.sheenNode?en(this.sheenNode):o4,x=this.sheenRoughnessNode?ft(this.sheenRoughnessNode):l4;oA.assign(y),Dw.assign(x)}if(this.useIridescence){const y=this.iridescenceNode?ft(this.iridescenceNode):c4,x=this.iridescenceIORNode?ft(this.iridescenceIORNode):d4,E=this.iridescenceThicknessNode?ft(this.iridescenceThicknessNode):f4;Tw.assign(y),HB.assign(x),UB.assign(E)}if(this.useAnisotropy){const y=(this.anisotropyNode?Er(this.anisotropyNode):u4).toVar();ev.assign(y.length()),ds(ev.equal(0),()=>{y.assign(Er(1,0))}).Else(()=>{y.divAssign(Er(ev)),ev.assign(ev.saturate())}),Iw.assign(ev.pow2().mix(rm.pow2(),1)),xx.assign(dA[0].mul(y.x).add(dA[1].mul(y.y))),lA.assign(dA[1].mul(y.x).sub(dA[0].mul(y.y)))}if(this.useTransmission){const y=this.transmissionNode?ft(this.transmissionNode):h4,x=this.thicknessNode?ft(this.thicknessNode):p4,E=this.attenuationDistanceNode?ft(this.attenuationDistanceNode):g4,z=this.attenuationColorNode?en(this.attenuationColorNode):v4;if(Nw.assign(y),jB.assign(x),VB.assign(E),GB.assign(z),this.useDispersion){const ee=this.dispersionNode?ft(this.dispersionNode):y4;XB.assign(ee)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?en(this.clearcoatNormalNode):s4}setup(a){a.context.setupClearcoatNormal=()=>Q0(this.setupClearcoatNormal(a),"NORMAL","vec3"),super.setup(a)}copy(a){return this.clearcoatNode=a.clearcoatNode,this.clearcoatRoughnessNode=a.clearcoatRoughnessNode,this.clearcoatNormalNode=a.clearcoatNormalNode,this.sheenNode=a.sheenNode,this.sheenRoughnessNode=a.sheenRoughnessNode,this.iridescenceNode=a.iridescenceNode,this.iridescenceIORNode=a.iridescenceIORNode,this.iridescenceThicknessNode=a.iridescenceThicknessNode,this.specularIntensityNode=a.specularIntensityNode,this.specularColorNode=a.specularColorNode,this.transmissionNode=a.transmissionNode,this.thicknessNode=a.thicknessNode,this.attenuationDistanceNode=a.attenuationDistanceNode,this.attenuationColorNode=a.attenuationColorNode,this.dispersionNode=a.dispersionNode,this.anisotropyNode=a.anisotropyNode,super.copy(a)}}class gZ extends null{constructor(a=!1,y=!1,x=!1,E=!1,z=!1,ee=!1,te=!1){super(a,y,x,E,z,ee),this.useSSS=te}direct({lightDirection:a,lightColor:y,reflectedLight:x},E){if(this.useSSS===!0){const z=E.material,{thicknessColorNode:ee,thicknessDistortionNode:te,thicknessAmbientNode:ne,thicknessAttenuationNode:ie,thicknessPowerNode:ae,thicknessScaleNode:oe}=z,le=a.add(Lo.mul(te)).normalize(),de=ft(yl.dot(le.negate()).saturate().pow(ae).mul(oe)),he=en(de.add(ne).mul(ee));x.directDiffuse.addAssign(he.mul(ie.mul(y)))}super.direct({lightDirection:a,lightColor:y,reflectedLight:x},E)}}class kce extends null{static get type(){return"MeshSSSNodeMaterial"}constructor(a){super(a),this.thicknessColorNode=null,this.thicknessDistortionNode=ft(.1),this.thicknessAmbientNode=ft(0),this.thicknessAttenuationNode=ft(.1),this.thicknessPowerNode=ft(2),this.thicknessScaleNode=ft(10)}get useSSS(){return this.thicknessColorNode!==null}setupLightingModel(){return new gZ(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion,this.useSSS)}copy(a){return this.thicknessColorNode=a.thicknessColorNode,this.thicknessDistortionNode=a.thicknessDistortionNode,this.thicknessAmbientNode=a.thicknessAmbientNode,this.thicknessAttenuationNode=a.thicknessAttenuationNode,this.thicknessPowerNode=a.thicknessPowerNode,this.thicknessScaleNode=a.thicknessScaleNode,super.copy(a)}}const vZ=mn(({normal:b,lightDirection:a,builder:y})=>{const x=b.dot(a),E=Er(x.mul(.5).add(.5),0);if(y.material.gradientMap){const z=dg("gradientMap","texture").context({getUV:()=>E});return en(z.r)}else{const z=E.fwidth().mul(.5);return ao(en(.7),en(1),Eh(ft(.7).sub(z.x),ft(.7).add(z.x),E.x))}});class AZ extends a1{direct({lightDirection:a,lightColor:y,reflectedLight:x},E){const z=vZ({normal:Jw,lightDirection:a,builder:E}).mul(y);x.directDiffuse.addAssign(z.mul(hA({diffuseColor:xo.rgb})))}indirect(a){const{ambientOcclusion:y,irradiance:x,reflectedLight:E}=a.context;E.indirectDiffuse.addAssign(x.mul(hA({diffuseColor:xo}))),E.indirectDiffuse.mulAssign(y)}}const yZ=new fD;class xZ extends Yl{static get type(){return"MeshToonNodeMaterial"}constructor(a){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(yZ),this.setValues(a)}setupLightingModel(){return new AZ}}const L9=mn(()=>{const b=en(yl.z,0,yl.x.negate()).normalize(),a=yl.cross(b);return Er(b.dot(Lo),a.dot(Lo)).mul(.495).add(.5)}).once(["NORMAL","VERTEX"])().toVar("matcapUV"),bZ=new gD;class EZ extends Yl{static get type(){return"MeshMatcapNodeMaterial"}constructor(a){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(bZ),this.setValues(a)}setupVariants(a){const y=L9;let x;a.material.matcap?x=dg("matcap","texture").context({getUV:()=>y}):x=en(ao(.2,.8,y.y)),xo.rgb.mulAssign(x.rgb)}}class wZ extends zu{static get type(){return"RotateNode"}constructor(a,y){super(),this.positionNode=a,this.rotationNode=y}getNodeType(a){return this.positionNode.getNodeType(a)}setup(a){const{rotationNode:y,positionNode:x}=this;if(this.getNodeType(a)==="vec2"){const z=y.cos(),ee=y.sin();return Sw(z,ee,ee.negate(),z).mul(x)}else{const z=y,ee=aA(Ii(1,0,0,0),Ii(0,ag(z.x),Lf(z.x).negate(),0),Ii(0,Lf(z.x),ag(z.x),0),Ii(0,0,0,1)),te=aA(Ii(ag(z.y),0,Lf(z.y),0),Ii(0,1,0,0),Ii(Lf(z.y).negate(),0,ag(z.y),0),Ii(0,0,0,1)),ne=aA(Ii(ag(z.z),Lf(z.z).negate(),0,0),Ii(Lf(z.z),ag(z.z),0,0),Ii(0,0,1,0),Ii(0,0,0,1));return ee.mul(te).mul(ne).mul(Ii(x,1)).xyz}}}const Hx=oa(wZ).setParameterLength(2),CZ=new UC;class O9 extends Yl{static get type(){return"SpriteNodeMaterial"}constructor(a){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.transparent=!0,this.setDefaultValues(CZ),this.setValues(a)}setupPositionView(a){const{object:y,camera:x}=a,E=this.sizeAttenuation,{positionNode:z,rotationNode:ee,scaleNode:te}=this,ne=cg.mul(en(z||0));let ie=Er(Ph[0].xyz.length(),Ph[1].xyz.length());if(te!==null&&(ie=ie.mul(Er(te))),E===!1)if(x.isPerspectiveCamera)ie=ie.mul(ne.z.negate());else{const de=ft(2).div(Of.element(1).element(1));ie=ie.mul(de.mul(2))}let ae=jc.xy;if(y.center&&y.center.isVector2===!0){const de=SX("center","vec2",y);ae=ae.sub(de.sub(.5))}ae=ae.mul(ie);const oe=ft(ee||a4),le=Hx(ae,oe);return Ii(ne.xy.add(le),ne.zw)}copy(a){return this.positionNode=a.positionNode,this.rotationNode=a.rotationNode,this.scaleNode=a.scaleNode,super.copy(a)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(a){this._useSizeAttenuation!==a&&(this._useSizeAttenuation=a,this.needsUpdate=!0)}}const PZ=new JC;class BZ extends O9{static get type(){return"PointsNodeMaterial"}constructor(a){super(),this.sizeNode=null,this.isPointsNodeMaterial=!0,this.setDefaultValues(PZ),this.setValues(a)}setupPositionView(){const{positionNode:a}=this;return cg.mul(en(a||su)).xyz}setupVertex(a){const y=super.setupVertex(a);if(a.material.isNodeMaterial!==!0)return y;const{rotationNode:x,scaleNode:E,sizeNode:z}=this,ee=jc.xy.toVar(),te=hg.z.div(hg.w);if(x&&x.isNode){const ie=ft(x);ee.assign(Hx(ee,ie))}let ne=z!==null?Er(z):A4;return this.sizeAttenuation===!0&&(ne=ne.mul(ne.div(au.z.negate()))),E&&E.isNode&&(ne=ne.mul(Er(E))),ee.mulAssign(ne.mul(2)),ee.assign(ee.div(hg.z)),ee.y.assign(ee.y.mul(te)),ee.assign(ee.mul(y.w)),y.addAssign(Ii(ee,0,0)),y}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(a){this._useAlphaToCoverage!==a&&(this._useAlphaToCoverage=a,this.needsUpdate=!0)}}class SZ extends a1{constructor(){super(),this.shadowNode=ft(1).toVar("shadowMask")}direct({lightNode:a}){a.shadowNode!==null&&this.shadowNode.mulAssign(a.shadowNode)}finish({context:a}){xo.a.mulAssign(this.shadowNode.oneMinus()),a.outgoingLight.rgb.assign(xo.rgb)}}const MZ=new cD;class DZ extends Yl{static get type(){return"ShadowNodeMaterial"}constructor(a){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.transparent=!0,this.setDefaultValues(MZ),this.setValues(a)}setupLightingModel(){return new SZ}}const Ux=Ep("vec3"),R9=Ep("vec3"),z9=Ep("vec3");class TZ extends null{constructor(){super()}start(a){const{material:y,context:x}=a,E=Ep("vec3"),z=Ep("vec3");ds(Ix.sub(zf).length().greaterThan(EI.mul(2)),()=>{E.assign(Ix),z.assign(zf)}).Else(()=>{E.assign(zf),z.assign(Ix)});const ee=z.sub(E),te=bs("int").onRenderUpdate(({material:le})=>le.steps),ne=ee.length().div(te).toVar(),ie=ee.normalize().toVar(),ae=ft(0).toVar(),oe=en(1).toVar();y.offsetNode&&ae.addAssign(y.offsetNode.mul(ne)),Oo(te,()=>{const le=E.add(ie.mul(ae)),de=Rf.mul(Ii(le,1)).xyz;y.depthNode!==null&&(R9.assign(ey(kS(de.z,lg,ug))),x.sceneDepthNode=ey(y.depthNode).toVar()),x.positionWorld=le,x.shadowPositionWorld=le,x.positionView=de,Ux.assign(0);let he;y.scatteringNode&&(he=y.scatteringNode({positionRay:le})),super.start(a),he&&Ux.mulAssign(he);const ye=Ux.mul(.01).negate().mul(ne).exp();oe.mulAssign(ye),ae.addAssign(ne)}),z9.addAssign(oe.saturate().oneMinus())}scatteringLight(a,y){const x=y.context.sceneDepthNode;x?ds(x.greaterThanEqual(R9),()=>{Ux.addAssign(a)}):Ux.addAssign(a)}direct({lightNode:a,lightColor:y},x){if(a.light.distance===void 0)return;const E=y.xyz.toVar();E.mulAssign(a.shadowNode),this.scatteringLight(E,x)}directRectArea({lightColor:a,lightPosition:y,halfWidth:x,halfHeight:E},z){const ee=y.add(x).sub(E),te=y.sub(x).sub(E),ne=y.sub(x).add(E),ie=y.add(x).add(E),ae=z.context.positionView,oe=a.xyz.mul(zQ({P:ae,p0:ee,p1:te,p2:ne,p3:ie})).pow(1.5);this.scatteringLight(oe,z)}finish(a){a.context.outgoingLight.assign(z9)}}class Hce extends null{static get type(){return"VolumeNodeMaterial"}constructor(a){super(),this.isVolumeNodeMaterial=!0,this.steps=25,this.offsetNode=null,this.scatteringNode=null,this.lights=!0,this.transparent=!0,this.side=BackSide,this.depthTest=!1,this.depthWrite=!1,this.setValues(a)}setupLightingModel(){return new TZ}}class IZ{constructor(a,y){this.nodes=a,this.info=y,this._context=typeof self!="undefined"?self:null,this._animationLoop=null,this._requestId=null}start(){const a=(y,x)=>{this._requestId=this._context.requestAnimationFrame(a),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this._animationLoop!==null&&this._animationLoop(y,x)};a()}stop(){this._context.cancelAnimationFrame(this._requestId),this._requestId=null}getAnimationLoop(){return this._animationLoop}setAnimationLoop(a){this._animationLoop=a}getContext(){return this._context}setContext(a){this._context=a}dispose(){this.stop()}}class wp{constructor(){this.weakMap=new WeakMap}get(a){let y=this.weakMap;for(let x=0;x{this.dispose()},this.onGeometryDispose=()=>{this.attributes=null,this.attributesId=null},this.material.addEventListener("dispose",this.onMaterialDispose),this.geometry.addEventListener("dispose",this.onGeometryDispose)}updateClipping(a){this.clippingContext=a}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.material.hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().observer)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getBindingGroup(a){for(const y of this.getBindings())if(y.name===a)return y}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(a){this.geometry=a,this.attributes=null,this.attributesId=null}getAttributes(){if(this.attributes!==null)return this.attributes;const a=this.getNodeBuilderState().nodeAttributes,y=this.geometry,x=[],E=new Set,z={};for(const ee of a){let te;if(ee.node&&ee.node.attribute?te=ee.node.attribute:(te=y.getAttribute(ee.name),z[ee.name]=te.version),te===void 0)continue;x.push(te);const ne=te.isInterleavedBufferAttribute?te.data:te;E.add(ne)}return this.attributes=x,this.attributesId=z,this.vertexBuffers=Array.from(E.values()),x}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:a,material:y,geometry:x,group:E,drawRange:z}=this,ee=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),te=this.getIndex(),ne=te!==null;let ie=1;if(x.isInstancedBufferGeometry===!0?ie=x.instanceCount:a.count!==void 0&&(ie=Math.max(0,a.count)),ie===0)return null;if(ee.instanceCount=ie,a.isBatchedMesh===!0)return ee;let ae=1;y.wireframe===!0&&!a.isPoints&&!a.isLineSegments&&!a.isLine&&!a.isLineLoop&&(ae=2);let oe=z.start*ae,le=(z.start+z.count)*ae;E!==null&&(oe=Math.max(oe,E.start*ae),le=Math.min(le,(E.start+E.count)*ae));const de=x.attributes.position;let he=1/0;ne?he=te.count:de!=null&&(he=de.count),oe=Math.max(oe,0),le=Math.min(le,he);const ye=le-oe;return ye<0||ye===1/0?null:(ee.vertexCount=ye,ee.firstVertex=oe,ee)}getGeometryCacheKey(){const{geometry:a}=this;let y="";for(const x of Object.keys(a.attributes).sort()){const E=a.attributes[x];y+=x+",",E.data&&(y+=E.data.stride+","),E.offset&&(y+=E.offset+","),E.itemSize&&(y+=E.itemSize+","),E.normalized&&(y+="n,")}for(const x of Object.keys(a.morphAttributes).sort()){const E=a.morphAttributes[x];y+="morph-"+x+",";for(let z=0,ee=E.length;z1&&(x+=a.uuid+","),x+=a.receiveShadow+",",xB(x)}get needsGeometryUpdate(){if(this.geometry.id!==this.object.geometry.id)return!0;if(this.attributes!==null){const a=this.attributesId;for(const y in a){const x=this.geometry.getAttribute(y);if(x===void 0||a[y]!==x.id)return!0}}return!1}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let a=0;return this.material.isShadowPassMaterial!==!0&&(a=this._nodes.getCacheKey(this.scene,this.lightsNode)),this.camera.isArrayCamera&&(a=cx(a,this.camera.cameras.length)),this.object.receiveShadow&&(a=cx(a,1)),a}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.geometry.removeEventListener("dispose",this.onGeometryDispose),this.onDispose()}}const gA=[];class OZ{constructor(a,y,x,E,z,ee){this.renderer=a,this.nodes=y,this.geometries=x,this.pipelines=E,this.bindings=z,this.info=ee,this.chainMaps={}}get(a,y,x,E,z,ee,te,ne){const ie=this.getChainMap(ne);gA[0]=a,gA[1]=y,gA[2]=ee,gA[3]=z;let ae=ie.get(gA);return ae===void 0?(ae=this.createRenderObject(this.nodes,this.geometries,this.renderer,a,y,x,E,z,ee,te,ne),ie.set(gA,ae)):(ae.updateClipping(te),ae.needsGeometryUpdate&&ae.setGeometry(a.geometry),(ae.version!==y.version||ae.needsUpdate)&&(ae.initialCacheKey!==ae.getCacheKey()?(ae.dispose(),ae=this.get(a,y,x,E,z,ee,te,ne)):ae.version=y.version)),gA.length=0,ae}getChainMap(a="default"){return this.chainMaps[a]||(this.chainMaps[a]=new wp)}dispose(){this.chainMaps={}}createRenderObject(a,y,x,E,z,ee,te,ne,ie,ae,oe){const le=this.getChainMap(oe),de=new LZ(a,y,x,E,z,ee,te,ne,ie,ae);return de.onDispose=()=>{this.pipelines.delete(de),this.bindings.delete(de),this.nodes.delete(de),le.delete(de.getChainArray())},de}}class av{constructor(){this.data=new WeakMap}get(a){let y=this.data.get(a);return y===void 0&&(y={},this.data.set(a,y)),y}delete(a){let y=null;return this.data.has(a)&&(y=this.data.get(a),this.data.delete(a)),y}has(a){return this.data.has(a)}dispose(){this.data=new WeakMap}}const Sh={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},ov=16,RZ=211,zZ=212;class kZ extends av{constructor(a){super(),this.backend=a}delete(a){const y=super.delete(a);return y!==null&&this.backend.destroyAttribute(a),y}update(a,y){const x=this.get(a);if(x.version===void 0)y===Sh.VERTEX?this.backend.createAttribute(a):y===Sh.INDEX?this.backend.createIndexAttribute(a):y===Sh.STORAGE?this.backend.createStorageAttribute(a):y===Sh.INDIRECT&&this.backend.createIndirectStorageAttribute(a),x.version=this._getBufferAttribute(a).version;else{const E=this._getBufferAttribute(a);(x.version{this.info.memory.geometries--;const z=y.index,ee=a.getAttributes();z!==null&&this.attributes.delete(z);for(const ne of ee)this.attributes.delete(ne);const te=this.wireframes.get(y);te!==void 0&&this.attributes.delete(te),y.removeEventListener("dispose",E)};y.addEventListener("dispose",E)}updateAttributes(a){const y=a.getAttributes();for(const z of y)z.isStorageBufferAttribute||z.isStorageInstancedBufferAttribute?this.updateAttribute(z,Sh.STORAGE):this.updateAttribute(z,Sh.VERTEX);const x=this.getIndex(a);x!==null&&this.updateAttribute(x,Sh.INDEX);const E=a.geometry.indirect;E!==null&&this.updateAttribute(E,Sh.INDIRECT)}updateAttribute(a,y){const x=this.info.render.calls;a.isInterleavedBufferAttribute?this.attributeCall.get(a)===void 0?(this.attributes.update(a,y),this.attributeCall.set(a,x)):this.attributeCall.get(a.data)!==x&&(this.attributes.update(a,y),this.attributeCall.set(a.data,x),this.attributeCall.set(a,x)):this.attributeCall.get(a)!==x&&(this.attributes.update(a,y),this.attributeCall.set(a,x))}getIndirect(a){return a.geometry.indirect}getIndex(a){const{geometry:y,material:x}=a;let E=y.index;if(x.wireframe===!0){const z=this.wireframes;let ee=z.get(y);ee===void 0?(ee=H9(y),z.set(y,ee)):ee.version!==k9(y)&&(this.attributes.delete(ee),ee=H9(y),z.set(y,ee)),E=ee}return E}}class UZ{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0},this.compute={calls:0,frameCalls:0,timestamp:0},this.memory={geometries:0,textures:0}}update(a,y,x){this.render.drawCalls++,a.isMesh||a.isSprite?this.render.triangles+=x*(y/3):a.isPoints?this.render.points+=x*y:a.isLineSegments?this.render.lines+=x*(y/2):a.isLine?this.render.lines+=x*(y-1):console.error("THREE.WebGPUInfo: Unknown object type.")}reset(){this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0,this.memory.geometries=0,this.memory.textures=0}}class U9{constructor(a){this.cacheKey=a,this.usedTimes=0}}class jZ extends U9{constructor(a,y,x){super(a),this.vertexProgram=y,this.fragmentProgram=x}}class VZ extends U9{constructor(a,y){super(a),this.computeProgram=y,this.isComputePipeline=!0}}let GZ=0;class h3{constructor(a,y,x,E=null,z=null){this.id=GZ++,this.code=a,this.stage=y,this.name=x,this.transforms=E,this.attributes=z,this.usedTimes=0}}class XZ extends av{constructor(a,y){super(),this.backend=a,this.nodes=y,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(a,y){const{backend:x}=this,E=this.get(a);if(this._needsComputeUpdate(a)){const z=E.pipeline;z&&(z.usedTimes--,z.computeProgram.usedTimes--);const ee=this.nodes.getForCompute(a);let te=this.programs.compute.get(ee.computeShader);te===void 0&&(z&&z.computeProgram.usedTimes===0&&this._releaseProgram(z.computeProgram),te=new h3(ee.computeShader,"compute",a.name,ee.transforms,ee.nodeAttributes),this.programs.compute.set(ee.computeShader,te),x.createProgram(te));const ne=this._getComputeCacheKey(a,te);let ie=this.caches.get(ne);ie===void 0&&(z&&z.usedTimes===0&&this._releasePipeline(z),ie=this._getComputePipeline(a,te,ne,y)),ie.usedTimes++,te.usedTimes++,E.version=a.version,E.pipeline=ie}return E.pipeline}getForRender(a,y=null){const{backend:x}=this,E=this.get(a);if(this._needsRenderUpdate(a)){const z=E.pipeline;z&&(z.usedTimes--,z.vertexProgram.usedTimes--,z.fragmentProgram.usedTimes--);const ee=a.getNodeBuilderState(),te=a.material?a.material.name:"";let ne=this.programs.vertex.get(ee.vertexShader);ne===void 0&&(z&&z.vertexProgram.usedTimes===0&&this._releaseProgram(z.vertexProgram),ne=new h3(ee.vertexShader,"vertex",te),this.programs.vertex.set(ee.vertexShader,ne),x.createProgram(ne));let ie=this.programs.fragment.get(ee.fragmentShader);ie===void 0&&(z&&z.fragmentProgram.usedTimes===0&&this._releaseProgram(z.fragmentProgram),ie=new h3(ee.fragmentShader,"fragment",te),this.programs.fragment.set(ee.fragmentShader,ie),x.createProgram(ie));const ae=this._getRenderCacheKey(a,ne,ie);let oe=this.caches.get(ae);oe===void 0?(z&&z.usedTimes===0&&this._releasePipeline(z),oe=this._getRenderPipeline(a,ne,ie,ae,y)):a.pipeline=oe,oe.usedTimes++,ne.usedTimes++,ie.usedTimes++,E.pipeline=oe}return E.pipeline}delete(a){const y=this.get(a).pipeline;return y&&(y.usedTimes--,y.usedTimes===0&&this._releasePipeline(y),y.isComputePipeline?(y.computeProgram.usedTimes--,y.computeProgram.usedTimes===0&&this._releaseProgram(y.computeProgram)):(y.fragmentProgram.usedTimes--,y.vertexProgram.usedTimes--,y.vertexProgram.usedTimes===0&&this._releaseProgram(y.vertexProgram),y.fragmentProgram.usedTimes===0&&this._releaseProgram(y.fragmentProgram))),super.delete(a)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(a){this.getForRender(a)}_getComputePipeline(a,y,x,E){x=x||this._getComputeCacheKey(a,y);let z=this.caches.get(x);return z===void 0&&(z=new VZ(x,y),this.caches.set(x,z),this.backend.createComputePipeline(z,E)),z}_getRenderPipeline(a,y,x,E,z){E=E||this._getRenderCacheKey(a,y,x);let ee=this.caches.get(E);return ee===void 0&&(ee=new jZ(E,y,x),this.caches.set(E,ee),a.pipeline=ee,this.backend.createRenderPipeline(a,z)),ee}_getComputeCacheKey(a,y){return a.id+","+y.id}_getRenderCacheKey(a,y,x){return y.id+","+x.id+","+this.backend.getRenderCacheKey(a)}_releasePipeline(a){this.caches.delete(a.cacheKey)}_releaseProgram(a){const y=a.code,x=a.stage;this.programs[x].delete(y)}_needsComputeUpdate(a){const y=this.get(a);return y.pipeline===void 0||y.version!==a.version}_needsRenderUpdate(a){return this.get(a).pipeline===void 0||this.backend.needsRenderUpdate(a)}}class WZ extends av{constructor(a,y,x,E,z,ee){super(),this.backend=a,this.textures=x,this.pipelines=z,this.attributes=E,this.nodes=y,this.info=ee,this.pipelines.bindings=this}getForRender(a){const y=a.getBindings();for(const x of y){const E=this.get(x);E.bindGroup===void 0&&(this._init(x),this.backend.createBindings(x,y,0),E.bindGroup=x)}return y}getForCompute(a){const y=this.nodes.getForCompute(a).bindings;for(const x of y){const E=this.get(x);E.bindGroup===void 0&&(this._init(x),this.backend.createBindings(x,y,0),E.bindGroup=x)}return y}updateForCompute(a){this._updateBindings(this.getForCompute(a))}updateForRender(a){this._updateBindings(this.getForRender(a))}_updateBindings(a){for(const y of a)this._update(y,a)}_init(a){for(const y of a.bindings)if(y.isSampledTexture)this.textures.updateTexture(y.texture);else if(y.isStorageBuffer){const x=y.attribute,E=x.isIndirectStorageBufferAttribute?Sh.INDIRECT:Sh.STORAGE;this.attributes.update(x,E)}}_update(a,y){const{backend:x}=this;let E=!1,z=!0,ee=0,te=0;for(const ne of a.bindings)if(!(ne.isNodeUniformsGroup&&this.nodes.updateGroup(ne)===!1)){if(ne.isStorageBuffer){const ie=ne.attribute,ae=ie.isIndirectStorageBufferAttribute?Sh.INDIRECT:Sh.STORAGE;this.attributes.update(ie,ae)}if(ne.isUniformBuffer)ne.update()&&x.updateBinding(ne);else if(ne.isSampledTexture){const ie=ne.update(),ae=ne.texture,oe=this.textures.get(ae);if(ie&&(this.textures.updateTexture(ae),ne.generation!==oe.generation&&(ne.generation=oe.generation,E=!0)),x.get(ae).externalTexture!==void 0||oe.isDefaultTexture?z=!1:(ee=ee*10+ae.id,te+=ae.version),ae.isStorageTexture===!0){const de=this.get(ae);ne.store===!0?de.needsMipmap=!0:this.textures.needsMipmaps(ae)&&de.needsMipmap===!0&&(this.backend.generateMipmaps(ae),de.needsMipmap=!1)}}else ne.isSampler&&ne.update()}E===!0&&this.backend.updateBindings(a,y,z?ee:0,te)}}function QZ(b,a){return b.groupOrder!==a.groupOrder?b.groupOrder-a.groupOrder:b.renderOrder!==a.renderOrder?b.renderOrder-a.renderOrder:b.z!==a.z?b.z-a.z:b.id-a.id}function j9(b,a){return b.groupOrder!==a.groupOrder?b.groupOrder-a.groupOrder:b.renderOrder!==a.renderOrder?b.renderOrder-a.renderOrder:b.z!==a.z?a.z-b.z:b.id-a.id}function V9(b){return(b.transmission>0||b.transmissionNode)&&b.side===eo&&b.forceSinglePass===!1}class ZZ{constructor(a,y,x){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lightsNode=a.getNode(y,x),this.lightsArray=[],this.scene=y,this.camera=x,this.occlusionQueryCount=0}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(a,y,x,E,z,ee,te){let ne=this.renderItems[this.renderItemsIndex];return ne===void 0?(ne={id:a.id,object:a,geometry:y,material:x,groupOrder:E,renderOrder:a.renderOrder,z,group:ee,clippingContext:te},this.renderItems[this.renderItemsIndex]=ne):(ne.id=a.id,ne.object=a,ne.geometry=y,ne.material=x,ne.groupOrder=E,ne.renderOrder=a.renderOrder,ne.z=z,ne.group=ee,ne.clippingContext=te),this.renderItemsIndex++,ne}push(a,y,x,E,z,ee,te){const ne=this.getNextRenderItem(a,y,x,E,z,ee,te);a.occlusionTest===!0&&this.occlusionQueryCount++,x.transparent===!0||x.transmission>0?(V9(x)&&this.transparentDoublePass.push(ne),this.transparent.push(ne)):this.opaque.push(ne)}unshift(a,y,x,E,z,ee,te){const ne=this.getNextRenderItem(a,y,x,E,z,ee,te);x.transparent===!0||x.transmission>0?(V9(x)&&this.transparentDoublePass.unshift(ne),this.transparent.unshift(ne)):this.opaque.unshift(ne)}pushBundle(a){this.bundles.push(a)}pushLight(a){this.lightsArray.push(a)}sort(a,y){this.opaque.length>1&&this.opaque.sort(a||QZ),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(y||j9),this.transparent.length>1&&this.transparent.sort(y||j9)}finish(){this.lightsNode.setLights(this.lightsArray);for(let a=this.renderItemsIndex,y=this.renderItems.length;a>y,ie=te.height>>y;let ae=a.depthTexture||z[y];const oe=a.depthBuffer===!0||a.stencilBuffer===!0;let le=!1;ae===void 0&&oe&&(ae=new Tf,ae.format=a.stencilBuffer?Rc:gu,ae.type=a.stencilBuffer?Ec:Ao,ae.image.width=ne,ae.image.height=ie,ae.image.depth=te.depth,ae.isArrayTexture=a.multiview===!0&&te.depth>1,z[y]=ae),(x.width!==te.width||te.height!==x.height)&&(le=!0,ae&&(ae.needsUpdate=!0,ae.image.width=ne,ae.image.height=ie,ae.image.depth=ae.isArrayTexture?ae.image.depth:1)),x.width=te.width,x.height=te.height,x.textures=ee,x.depthTexture=ae||null,x.depth=a.depthBuffer,x.stencil=a.stencilBuffer,x.renderTarget=a,x.sampleCount!==E&&(le=!0,ae&&(ae.needsUpdate=!0),x.sampleCount=E);const de={sampleCount:E};if(a.isXRRenderTarget!==!0){for(let he=0;he{a.removeEventListener("dispose",he);for(let ye=0;ye0){const ae=a.image;if(ae===void 0)console.warn("THREE.Renderer: Texture marked for update but image is undefined.");else if(ae.complete===!1)console.warn("THREE.Renderer: Texture marked for update but image is incomplete.");else{if(a.images){const oe=[];for(const le of a.images)oe.push(le);y.images=oe}else y.image=ae;(x.isDefaultTexture===void 0||x.isDefaultTexture===!0)&&(z.createTexture(a,y),x.isDefaultTexture=!1,x.generation=a.version),a.source.dataReady===!0&&z.updateTexture(a,y),y.needsMipmaps&&a.mipmaps.length===0&&z.generateMipmaps(a)}}else z.createDefaultTexture(a),x.isDefaultTexture=!0,x.generation=a.version;if(x.initialized!==!0){x.initialized=!0,x.generation=a.version,this.info.memory.textures++;const ie=()=>{a.removeEventListener("dispose",ie),this._destroyTexture(a)};a.addEventListener("dispose",ie)}x.version=a.version}getSize(a,y=eY){let x=a.images?a.images[0]:a.image;return x?(x.image!==void 0&&(x=x.image),x instanceof HTMLVideoElement?(y.width=x.videoWidth||1,y.height=x.videoHeight||1,y.depth=1):x instanceof VideoFrame?(y.width=x.displayWidth||1,y.height=x.displayHeight||1,y.depth=1):(y.width=x.width||1,y.height=x.height||1,y.depth=a.isCubeTexture?6:x.depth||1)):y.width=y.height=y.depth=1,y}getMipLevels(a,y,x){let E;return a.isCompressedTexture?a.mipmaps?E=a.mipmaps.length:E=1:E=Math.floor(Math.log2(Math.max(y,x)))+1,E}needsMipmaps(a){return a.isCompressedTexture===!0||a.generateMipmaps}_destroyTexture(a){this.has(a)===!0&&(this.backend.destroySampler(a),this.backend.destroyTexture(a),this.delete(a),this.info.memory.textures--)}}class p3 extends xi{constructor(a,y,x,E=1){super(a,y,x),this.a=E}set(a,y,x,E=1){return this.a=E,super.set(a,y,x)}copy(a){return a.a!==void 0&&(this.a=a.a),super.copy(a)}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}}class X9 extends No{static get type(){return"ParameterNode"}constructor(a,y=null){super(a,y),this.isParameterNode=!0}getHash(){return this.uuid}generate(){return this.name}}const nY=(b,a)=>gr(new X9(b,a));class rY extends Us{static get type(){return"StackNode"}constructor(a=null){super(),this.nodes=[],this.outputNode=null,this.parent=a,this._currentCond=null,this._expressionNode=null,this.isStackNode=!0}getNodeType(a){return this.outputNode?this.outputNode.getNodeType(a):"void"}getMemberType(a,y){return this.outputNode?this.outputNode.getMemberType(a,y):"void"}add(a){return this.nodes.push(a),this}If(a,y){const x=new V0(y);return this._currentCond=Bc(a,x),this.add(this._currentCond)}ElseIf(a,y){const x=new V0(y),E=Bc(a,x);return this._currentCond.elseNode=E,this._currentCond=E,this}Else(a){return this._currentCond.elseNode=new V0(a),this}Switch(a){return this._expressionNode=gr(a),this}Case(...a){const y=[];if(a.length>=2)for(let te=0;tetypeof y=="string"?{name:a,type:y,atomic:!1}:{name:a,type:y.type,atomic:y.atomic||!1})}class sY extends Us{static get type(){return"StructTypeNode"}constructor(a,y=null){super("struct"),this.membersLayout=iY(a),this.name=y,this.isStructLayoutNode=!0}getLength(){const y=Float32Array.BYTES_PER_ELEMENT;let x=0;for(const E of this.membersLayout){const z=E.type,ee=DT(z)*y,te=TT(z),ne=x%8,ie=ne%te,ae=ne+ie;x+=ie,ae!==0&&8-aeE.name===y);return x?x.type:"void"}getNodeType(a){return a.getStructTypeFromNode(this,this.membersLayout,this.name).name}setup(a){a.addInclude(this)}generate(a){return this.getNodeType(a)}}class aY extends Us{static get type(){return"StructNode"}constructor(a,y){super("vec3"),this.structLayoutNode=a,this.values=y,this.isStructNode=!0}getNodeType(a){return this.structLayoutNode.getNodeType(a)}getMemberType(a,y){return this.structLayoutNode.getMemberType(a,y)}generate(a){const y=a.getVarFromNode(this),x=y.type,E=a.getPropertyName(y);return a.addLineFlowCode(`${E} = ${a.generateStruct(x,this.structLayoutNode.membersLayout,this.values)}`,this),y.name}}const oY=(b,a=null)=>{const y=new sY(b,a),x=(...E)=>{let z=null;if(E.length>0)if(E[0].isNode){z={};const ee=Object.keys(b);for(let te=0;te{const a=b.toUint().mul(747796405).add(2891336453),y=a.shiftRight(a.shiftRight(28).add(4)).bitXor(a).mul(277803737);return y.shiftRight(22).bitXor(y).toFloat().mul(1/i5(2,32))}),m3=(b,a)=>xh(Ca(4,b.mul(Za(1,b))),a),dY=(b,a)=>b.lessThan(.5)?m3(b.mul(2),a).div(2):Za(1,m3(Ca(Za(1,b),2),a).div(2)),fY=(b,a,y)=>xh(Nf(xh(b,a),Eu(xh(b,a),xh(Za(1,b),y))),1/a),hY=(b,a)=>Lf(Ow.mul(a.mul(b).sub(1))).div(Ow.mul(a.mul(b).sub(1))),pg=mn(([b])=>b.fract().sub(.5).abs()).setLayout({name:"tri",type:"float",inputs:[{name:"x",type:"float"}]}),pY=mn(([b])=>en(pg(b.z.add(pg(b.y.mul(1)))),pg(b.z.add(pg(b.x.mul(1)))),pg(b.y.add(pg(b.x.mul(1)))))).setLayout({name:"tri3",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),mY=mn(([b,a,y])=>{const x=en(b).toVar(),E=ft(1.4).toVar(),z=ft(0).toVar(),ee=en(x).toVar();return Oo({start:ft(0),end:ft(3),type:"float",condition:"<="},()=>{const te=en(pY(ee.mul(2))).toVar();x.addAssign(te.add(y.mul(ft(.1).mul(a)))),ee.mulAssign(1.8),E.mulAssign(1.5),x.mulAssign(1.2);const ne=ft(pg(x.z.add(pg(x.x.add(pg(x.y)))))).toVar();z.addAssign(ne.div(E)),ee.addAssign(.14)}),z}).setLayout({name:"triNoise3D",type:"float",inputs:[{name:"position",type:"vec3"},{name:"speed",type:"float"},{name:"time",type:"float"}]});class gY extends Us{static get type(){return"FunctionOverloadingNode"}constructor(a=[],...y){super(),this.functionNodes=a,this.parametersNodes=y,this._candidateFnCall=null,this.global=!0}getNodeType(){return this.functionNodes[0].shaderNode.layout.type}setup(a){const y=this.parametersNodes;let x=this._candidateFnCall;if(x===null){let E=null,z=-1;for(const ee of this.functionNodes){const ne=ee.shaderNode.layout;if(ne===null)throw new Error("FunctionOverloadingNode: FunctionNode must be a layout.");const ie=ne.inputs;if(y.length===ie.length){let ae=0;for(let oe=0;oez&&(E=ee,z=ae)}}this._candidateFnCall=x=E(...y)}return x}}const vY=oa(gY),Vc=b=>(...a)=>vY(b,...a),lv=bs(0).setGroup(Zs).onRenderUpdate(b=>b.time),Y9=bs(0).setGroup(Zs).onRenderUpdate(b=>b.deltaTime),J9=bs(0,"uint").setGroup(Zs).onRenderUpdate(b=>b.frameId),AY=(b=1)=>(console.warn('TSL: timerLocal() is deprecated. Use "time" instead.'),lv.mul(b)),yY=(b=1)=>(console.warn('TSL: timerGlobal() is deprecated. Use "time" instead.'),lv.mul(b)),xY=(b=1)=>(console.warn('TSL: timerDelta() is deprecated. Use "deltaTime" instead.'),Y9.mul(b)),bY=(b=lv)=>b.add(.75).mul(Math.PI*2).sin().mul(.5).add(.5),EY=(b=lv)=>b.fract().round(),wY=(b=lv)=>b.add(.5).fract().mul(2).sub(1).abs(),CY=(b=lv)=>b.fract(),PY=mn(([b,a,y=Er(.5)])=>Hx(b.sub(y),a).add(y)),BY=mn(([b,a,y=Er(.5)])=>{const x=b.sub(y),E=x.dot(x),ee=E.mul(E).mul(a);return b.add(x.mul(ee))}),SY=mn(({position:b=null,horizontal:a=!0,vertical:y=!1})=>{let x;b!==null?(x=Ph.toVar(),x[3][0]=b.x,x[3][1]=b.y,x[3][2]=b.z):x=Ph;const E=Rf.mul(x);return px(a)&&(E[0][0]=Ph[0].length(),E[0][1]=0,E[0][2]=0),px(y)&&(E[1][0]=0,E[1][1]=Ph[1].length(),E[1][2]=0),E[2][0]=0,E[2][1]=0,E[2][2]=1,Of.mul(E).mul(su)}),MY=mn(([b=null])=>{const a=ey();return ey(zS(b)).sub(a).lessThan(0).select(fg,b)});class DY extends Us{static get type(){return"SpriteSheetUVNode"}constructor(a,y=Xo(),x=ft(0)){super("vec2"),this.countNode=a,this.uvNode=y,this.frameNode=x}setup(){const{frameNode:a,uvNode:y,countNode:x}=this,{width:E,height:z}=x,ee=a.mod(E.mul(z)).floor(),te=ee.mod(E),ne=z.sub(ee.add(1).div(E).ceil()),ie=x.reciprocal(),ae=Er(te,ne);return y.add(ae).mul(ie)}}const TY=oa(DY).setParameterLength(3),K9=mn(([b,a=null,y=null,x=ft(1),E=su,z=qd])=>{let ee=z.abs().normalize();ee=ee.div(ee.dot(en(1)));const te=E.yz.mul(x),ne=E.zx.mul(x),ie=E.xy.mul(x),ae=b.value,oe=a!==null?a.value:ae,le=y!==null?y.value:ae,de=Xa(ae,te).mul(ee.x),he=Xa(oe,ne).mul(ee.y),ye=Xa(le,ie).mul(ee.z);return Eu(de,he,ye)}),IY=(...b)=>K9(...b),iy=new pp,vA=new ot,sy=new ot,g3=new ot,Gx=new ls,h1=new ot(0,0,-1),cm=new Ws,Xx=new ot,p1=new ot,Wx=new Ws,m1=new tr,g1=new Xm,FY=fg.flipX();g1.depthTexture=new Tf(1,1);let v1=!1;class v3 extends um{static get type(){return"ReflectorNode"}constructor(a={}){super(a.defaultTexture||g1.texture,FY),this._reflectorBaseNode=a.reflector||new NY(this,a),this._depthNode=null,this.setUpdateMatrix(!1)}get reflector(){return this._reflectorBaseNode}get target(){return this._reflectorBaseNode.target}getDepthNode(){if(this._depthNode===null){if(this._reflectorBaseNode.depth!==!0)throw new Error("THREE.ReflectorNode: Depth node can only be requested when the reflector is created with { depth: true }. ");this._depthNode=gr(new v3({defaultTexture:g1.depthTexture,reflector:this._reflectorBaseNode}))}return this._depthNode}setup(a){return a.object.isQuadMesh||this._reflectorBaseNode.build(a),super.setup(a)}clone(){const a=new this.constructor(this.reflectorNode);return a.uvNode=this.uvNode,a.levelNode=this.levelNode,a.biasNode=this.biasNode,a.sampler=this.sampler,a.depthNode=this.depthNode,a.compareNode=this.compareNode,a.gradNode=this.gradNode,a._reflectorBaseNode=this._reflectorBaseNode,a}dispose(){super.dispose(),this._reflectorBaseNode.dispose()}}class NY extends Us{static get type(){return"ReflectorBaseNode"}constructor(a,y={}){super();const{target:x=new Wl,resolution:E=1,generateMipmaps:z=!1,bounces:ee=!0,depth:te=!1}=y;this.textureNode=a,this.target=x,this.resolution=E,this.generateMipmaps=z,this.bounces=ee,this.depth=te,this.updateBeforeType=ee?wa.RENDER:wa.FRAME,this.virtualCameras=new WeakMap,this.renderTargets=new Map,this.forceUpdate=!1,this.hasOutput=!1}_updateResolution(a,y){const x=this.resolution;y.getDrawingBufferSize(m1),a.setSize(Math.round(m1.width*x),Math.round(m1.height*x))}setup(a){return this._updateResolution(g1,a.renderer),super.setup(a)}dispose(){super.dispose();for(const a of this.renderTargets.values())a.dispose()}getVirtualCamera(a){let y=this.virtualCameras.get(a);return y===void 0&&(y=a.clone(),this.virtualCameras.set(a,y)),y}getRenderTarget(a){let y=this.renderTargets.get(a);return y===void 0&&(y=new Xm(0,0,{type:vl}),this.generateMipmaps===!0&&(y.texture.minFilter=qA,y.texture.generateMipmaps=!0),this.depth===!0&&(y.depthTexture=new Tf),this.renderTargets.set(a,y)),y}updateBefore(a){if(this.bounces===!1&&v1)return!1;v1=!0;const{scene:y,camera:x,renderer:E,material:z}=a,{target:ee}=this,te=this.getVirtualCamera(x),ne=this.getRenderTarget(te);E.getDrawingBufferSize(m1),this._updateResolution(ne,E),sy.setFromMatrixPosition(ee.matrixWorld),g3.setFromMatrixPosition(x.matrixWorld),Gx.extractRotation(ee.matrixWorld),vA.set(0,0,1),vA.applyMatrix4(Gx),Xx.subVectors(sy,g3);const ie=Xx.dot(vA)>0;let ae=!1;if(ie===!0&&this.forceUpdate===!1){if(this.hasOutput===!1){v1=!1;return}ae=!0}Xx.reflect(vA).negate(),Xx.add(sy),Gx.extractRotation(x.matrixWorld),h1.set(0,0,-1),h1.applyMatrix4(Gx),h1.add(g3),p1.subVectors(sy,h1),p1.reflect(vA).negate(),p1.add(sy),te.coordinateSystem=x.coordinateSystem,te.position.copy(Xx),te.up.set(0,1,0),te.up.applyMatrix4(Gx),te.up.reflect(vA),te.lookAt(p1),te.near=x.near,te.far=x.far,te.updateMatrixWorld(),te.projectionMatrix.copy(x.projectionMatrix),iy.setFromNormalAndCoplanarPoint(vA,sy),iy.applyMatrix4(te.matrixWorldInverse),cm.set(iy.normal.x,iy.normal.y,iy.normal.z,iy.constant);const oe=te.projectionMatrix;Wx.x=(Math.sign(cm.x)+oe.elements[8])/oe.elements[0],Wx.y=(Math.sign(cm.y)+oe.elements[9])/oe.elements[5],Wx.z=-1,Wx.w=(1+oe.elements[10])/oe.elements[14],cm.multiplyScalar(1/cm.dot(Wx));const le=0;oe.elements[2]=cm.x,oe.elements[6]=cm.y,oe.elements[10]=E.coordinateSystem===Sn?cm.z-le:cm.z+1-le,oe.elements[14]=cm.w,this.textureNode.value=ne.texture,this.depth===!0&&(this.textureNode.getDepthNode().value=ne.depthTexture),z.visible=!1;const de=E.getRenderTarget(),he=E.getMRT(),ye=E.autoClear;E.setMRT(null),E.setRenderTarget(ne),E.autoClear=!0,ae?(E.clear(),this.hasOutput=!1):(E.render(y,te),this.hasOutput=!0),E.setMRT(he),E.setRenderTarget(de),E.autoClear=ye,z.visible=!0,v1=!1,this.forceUpdate=!1}}const LY=b=>gr(new v3(b)),A3=new T0(-1,1,1,-1,0,1);class OY extends Fa{constructor(a=!1){super();const y=a===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new us([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new us(y,2))}}const RY=new OY;class Qx extends Fo{constructor(a=null){super(RY,a),this.camera=A3,this.isQuadMesh=!0}renderAsync(a){return Fs(this,null,function*(){return a.renderAsync(this,A3)})}render(a){a.render(this,A3)}}const zY=new tr;class kY extends um{static get type(){return"RTTNode"}constructor(a,y=null,x=null,E={type:vl}){const z=new Xm(y,x,E);super(z.texture,Xo()),this.isRTTNode=!0,this.node=a,this.width=y,this.height=x,this.pixelRatio=1,this.renderTarget=z,this.textureNeedsUpdate=!0,this.autoUpdate=!0,this._rttNode=null,this._quadMesh=new Qx(new Yl),this.updateBeforeType=wa.RENDER}get autoResize(){return this.width===null}setup(a){return this._rttNode=this.node.context(a.getSharedContext()),this._quadMesh.material.name="RTT",this._quadMesh.material.needsUpdate=!0,super.setup(a)}setSize(a,y){this.width=a,this.height=y;const x=a*this.pixelRatio,E=y*this.pixelRatio;this.renderTarget.setSize(x,E),this.textureNeedsUpdate=!0}setPixelRatio(a){this.pixelRatio=a,this.setSize(this.width,this.height)}updateBefore({renderer:a}){if(this.textureNeedsUpdate===!1&&this.autoUpdate===!1)return;if(this.textureNeedsUpdate=!1,this.autoResize===!0){const x=a.getPixelRatio(),E=a.getSize(zY),z=E.width*x,ee=E.height*x;(z!==this.renderTarget.width||ee!==this.renderTarget.height)&&(this.renderTarget.setSize(z,ee),this.textureNeedsUpdate=!0)}this._quadMesh.material.fragmentNode=this._rttNode;const y=a.getRenderTarget();a.setRenderTarget(this.renderTarget),this._quadMesh.render(a),a.setRenderTarget(y)}clone(){const a=new um(this.value,this.uvNode,this.levelNode);return a.sampler=this.sampler,a.referenceNode=this,a}}const q9=(b,...a)=>gr(new kY(gr(b),...a)),HY=(b,...a)=>b.isTextureNode?b:b.isPassNode?b.getTextureNode():q9(b,...a),ay=mn(([b,a,y],x)=>{let E;x.renderer.coordinateSystem===Sn?(b=Er(b.x,b.y.oneMinus()).mul(2).sub(1),E=Ii(en(b,a),1)):E=Ii(en(b.x,b.y.oneMinus(),a).mul(2).sub(1),1);const z=Ii(y.mul(E));return z.xyz.div(z.w)}),UY=mn(([b,a])=>{const y=a.mul(Ii(b,1)),x=y.xy.div(y.w).mul(.5).add(.5).toVar();return Er(x.x,x.y.oneMinus())}),jY=mn(([b,a,y])=>{const x=nv(iu(a)),E=ic(b.mul(x)).toVar(),z=iu(a,E).toVar(),ee=iu(a,E.sub(ic(2,0))).toVar(),te=iu(a,E.sub(ic(1,0))).toVar(),ne=iu(a,E.add(ic(1,0))).toVar(),ie=iu(a,E.add(ic(2,0))).toVar(),ae=iu(a,E.add(ic(0,2))).toVar(),oe=iu(a,E.add(ic(0,1))).toVar(),le=iu(a,E.sub(ic(0,1))).toVar(),de=iu(a,E.sub(ic(0,2))).toVar(),he=hl(Za(ft(2).mul(te).sub(ee),z)).toVar(),ye=hl(Za(ft(2).mul(ne).sub(ie),z)).toVar(),Ae=hl(Za(ft(2).mul(oe).sub(ae),z)).toVar(),me=hl(Za(ft(2).mul(le).sub(de),z)).toVar(),Ce=ay(b,z,y).toVar(),Ee=he.lessThan(ye).select(Ce.sub(ay(b.sub(Er(ft(1).div(x.x),0)),te,y)),Ce.negate().add(ay(b.add(Er(ft(1).div(x.x),0)),ne,y))),Be=Ae.lessThan(me).select(Ce.sub(ay(b.add(Er(0,ft(1).div(x.y))),oe,y)),Ce.negate().add(ay(b.sub(Er(0,ft(1).div(x.y))),le,y)));return ig(Uw(Ee,Be))});class VY extends Us{static get type(){return"SampleNode"}constructor(a){super(),this.callback=a,this.isSampleNode=!0}setup(){return this.sample(Xo())}sample(a){return this.callback(a)}}const GY=b=>gr(new VY(b));class uv extends Us{static get type(){return"EventNode"}constructor(a,y){super("void"),this.eventType=a,this.callback=y,a===uv.OBJECT?this.updateType=wa.OBJECT:a===uv.MATERIAL&&(this.updateType=wa.RENDER)}update(a){this.callback(a)}}uv.OBJECT="object",uv.MATERIAL="material";const _9=(b,a)=>gr(new uv(b,a)).toStack(),XY=b=>_9(uv.OBJECT,b),WY=b=>_9(uv.MATERIAL,b);class QY extends hp{constructor(a,y,x=Float32Array){const E=ArrayBuffer.isView(a)?a:new x(a*y);super(E,y),this.isStorageInstancedBufferAttribute=!0}}class ZY extends nl{constructor(a,y,x=Float32Array){const E=ArrayBuffer.isView(a)?a:new x(a*y);super(E,y),this.isStorageBufferAttribute=!0}}const YY=(b,a="float")=>{let y,x;a.isStruct===!0?(y=a.layout.getLength(),x=fx("float")):(y=wB(a),x=fx(a));const E=new ZY(b,y,x);return fA(E,a,b)},JY=(b,a="float")=>{let y,x;a.isStruct===!0?(y=a.layout.getLength(),x=fx("float")):(y=wB(a),x=fx(a));const E=new QY(b,y,x);return fA(E,a,b)};class KY extends Us{static get type(){return"PointUVNode"}constructor(){super("vec2"),this.isPointUVNode=!0}generate(){return"vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y )"}}const qY=ui(KY),Zx=new Xd,y3=new ls;class $d extends Us{static get type(){return"SceneNode"}constructor(a=$d.BACKGROUND_BLURRINESS,y=null){super(),this.scope=a,this.scene=y}setup(a){const y=this.scope,x=this.scene!==null?this.scene:a.scene;let E;return y===$d.BACKGROUND_BLURRINESS?E=rl("backgroundBlurriness","float",x):y===$d.BACKGROUND_INTENSITY?E=rl("backgroundIntensity","float",x):y===$d.BACKGROUND_ROTATION?E=bs("mat4").setName("backgroundRotation").setGroup(Zs).onRenderUpdate(()=>{const z=x.background;return z!==null&&z.isTexture&&z.mapping!==Wh?(Zx.copy(x.backgroundRotation),Zx.x*=-1,Zx.y*=-1,Zx.z*=-1,y3.makeRotationFromEuler(Zx)):y3.identity(),y3}):console.error("THREE.SceneNode: Unknown scope:",y),E}}$d.BACKGROUND_BLURRINESS="backgroundBlurriness",$d.BACKGROUND_INTENSITY="backgroundIntensity",$d.BACKGROUND_ROTATION="backgroundRotation";const $9=ui($d,$d.BACKGROUND_BLURRINESS),x3=ui($d,$d.BACKGROUND_INTENSITY),e7=ui($d,$d.BACKGROUND_ROTATION);class _Y extends um{static get type(){return"StorageTextureNode"}constructor(a,y,x=null){super(a,y),this.storeNode=x,this.isStorageTextureNode=!0,this.access=Uc.WRITE_ONLY}getInputType(){return"storageTexture"}setup(a){super.setup(a);const y=a.getNodeProperties(this);return y.storeNode=this.storeNode,y}setAccess(a){return this.access=a,this}generate(a,y){let x;return this.storeNode!==null?x=this.generateStore(a):x=super.generate(a,y),x}toReadWrite(){return this.setAccess(Uc.READ_WRITE)}toReadOnly(){return this.setAccess(Uc.READ_ONLY)}toWriteOnly(){return this.setAccess(Uc.WRITE_ONLY)}generateStore(a){const y=a.getNodeProperties(this),{uvNode:x,storeNode:E,depthNode:z}=y,ee=super.generate(a,"property"),te=x.build(a,this.value.is3DTexture===!0?"uvec3":"uvec2"),ne=E.build(a,"vec4"),ie=z?z.build(a,"int"):null,ae=a.generateTextureStore(a,ee,te,ie,ne);a.addLineFlowCode(ae,this)}clone(){const a=super.clone();return a.storeNode=this.storeNode,a}}const t7=oa(_Y).setParameterLength(1,3),$Y=(b,a,y)=>{const x=t7(b,a,y);return y!==null&&x.toStack(),x},eJ=mn(({texture:b,uv:a})=>{const x=en().toVar();return ds(a.x.lessThan(1e-4),()=>{x.assign(en(1,0,0))}).ElseIf(a.y.lessThan(1e-4),()=>{x.assign(en(0,1,0))}).ElseIf(a.z.lessThan(1e-4),()=>{x.assign(en(0,0,1))}).ElseIf(a.x.greaterThan(1-1e-4),()=>{x.assign(en(-1,0,0))}).ElseIf(a.y.greaterThan(1-1e-4),()=>{x.assign(en(0,-1,0))}).ElseIf(a.z.greaterThan(1-1e-4),()=>{x.assign(en(0,0,-1))}).Else(()=>{const z=b.sample(a.add(en(-.01,0,0))).r.sub(b.sample(a.add(en(.01,0,0))).r),ee=b.sample(a.add(en(0,-.01,0))).r.sub(b.sample(a.add(en(0,.01,0))).r),te=b.sample(a.add(en(0,0,-.01))).r.sub(b.sample(a.add(en(0,0,.01))).r);x.assign(en(z,ee,te))}),x.normalize()});class tJ extends um{static get type(){return"Texture3DNode"}constructor(a,y=null,x=null){super(a,y,x),this.isTexture3DNode=!0}getInputType(){return"texture3D"}getDefaultUV(){return en(.5,.5,.5)}setUpdateMatrix(){}setupUV(a,y){const x=this.value;return a.isFlipY()&&(x.isRenderTargetTexture===!0||x.isFramebufferTexture===!0)&&(this.sampler?y=y.flipY():y=y.setY(Xt(nv(this,this.levelNode).y).sub(y.y).sub(1))),y}generateUV(a,y){return y.build(a,"vec3")}normal(a){return eJ({texture:this,uv:a})}}const n7=oa(tJ).setParameterLength(1,3);class nJ extends qw{static get type(){return"UserDataNode"}constructor(a,y,x=null){super(a,y,x),this.userData=x}updateReference(a){return this.reference=this.userData!==null?this.userData:a.object.userData,this.reference}}const rJ=(b,a,y)=>gr(new nJ(b,a,y)),r7=new WeakMap;class iJ extends zu{static get type(){return"VelocityNode"}constructor(){super("vec2"),this.projectionMatrix=null,this.updateType=wa.OBJECT,this.updateAfterType=wa.OBJECT,this.previousModelWorldMatrix=bs(new ls),this.previousProjectionMatrix=bs(new ls).setGroup(Zs),this.previousCameraViewMatrix=bs(new ls)}setProjectionMatrix(a){this.projectionMatrix=a}update({frameId:a,camera:y,object:x}){const E=s7(x);this.previousModelWorldMatrix.value.copy(E);const z=i7(y);z.frameId!==a&&(z.frameId=a,z.previousProjectionMatrix===void 0?(z.previousProjectionMatrix=new ls,z.previousCameraViewMatrix=new ls,z.currentProjectionMatrix=new ls,z.currentCameraViewMatrix=new ls,z.previousProjectionMatrix.copy(this.projectionMatrix||y.projectionMatrix),z.previousCameraViewMatrix.copy(y.matrixWorldInverse)):(z.previousProjectionMatrix.copy(z.currentProjectionMatrix),z.previousCameraViewMatrix.copy(z.currentCameraViewMatrix)),z.currentProjectionMatrix.copy(this.projectionMatrix||y.projectionMatrix),z.currentCameraViewMatrix.copy(y.matrixWorldInverse),this.previousProjectionMatrix.value.copy(z.previousProjectionMatrix),this.previousCameraViewMatrix.value.copy(z.previousCameraViewMatrix))}updateAfter({object:a}){s7(a).copy(a.matrixWorld)}setup(){const a=this.projectionMatrix===null?Of:bs(this.projectionMatrix),y=this.previousCameraViewMatrix.mul(this.previousModelWorldMatrix),x=a.mul(cg).mul(su),E=this.previousProjectionMatrix.mul(y).mul(Yw),z=x.xy.div(x.w),ee=E.xy.div(E.w);return Za(z,ee)}}function i7(b){let a=r7.get(b);return a===void 0&&(a={},r7.set(b,a)),a}function s7(b,a=0){const y=i7(b);let x=y[a];return x===void 0&&(y[a]=x=new ls,y[a].copy(b.matrixWorld)),x}const sJ=ui(iJ),aJ=mn(([b])=>b3(b.rgb)),oJ=mn(([b,a=ft(1)])=>a.mix(b3(b.rgb),b.rgb)),lJ=mn(([b,a=ft(1)])=>{const y=Eu(b.r,b.g,b.b).div(3),x=b.r.max(b.g.max(b.b)),E=x.sub(y).mul(a).mul(-3);return ao(b.rgb,x,E)}),uJ=mn(([b,a=ft(1)])=>{const y=en(.57735,.57735,.57735),x=a.cos();return en(b.rgb.mul(x).add(y.cross(b.rgb).mul(a.sin()).add(y.mul(tv(y,b.rgb).mul(x.oneMinus())))))}),b3=(b,a=en(aa.getLuminanceCoefficients(new ot)))=>tv(b,a),cJ=mn(([b,a=en(1),y=en(0),x=en(1),E=ft(1),z=en(aa.getLuminanceCoefficients(new ot,sr))])=>{const ee=b.rgb.dot(en(z)),te=Zl(b.rgb.mul(a).add(y),0).toVar(),ne=te.pow(x).toVar();return ds(te.r.greaterThan(0),()=>{te.r.assign(ne.r)}),ds(te.g.greaterThan(0),()=>{te.g.assign(ne.g)}),ds(te.b.greaterThan(0),()=>{te.b.assign(ne.b)}),te.assign(ee.add(te.sub(ee).mul(E))),Ii(te.rgb,b.a)});class dJ extends zu{static get type(){return"PosterizeNode"}constructor(a,y){super(),this.sourceNode=a,this.stepsNode=y}setup(){const{sourceNode:a,stepsNode:y}=this;return a.mul(y).floor().div(y)}}const fJ=oa(dJ).setParameterLength(2),A1=new tr;class a7 extends um{static get type(){return"PassTextureNode"}constructor(a,y){super(y),this.passNode=a,this.setUpdateMatrix(!1)}setup(a){return this.passNode.build(a),super.setup(a)}clone(){return new this.constructor(this.passNode,this.value)}}class o7 extends a7{static get type(){return"PassMultipleTextureNode"}constructor(a,y,x=!1){super(a,null),this.textureName=y,this.previousTexture=x}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(a){return this.updateTexture(),super.setup(a)}clone(){const a=new this.constructor(this.passNode,this.textureName,this.previousTexture);return a.uvNode=this.uvNode,a.levelNode=this.levelNode,a.biasNode=this.biasNode,a.sampler=this.sampler,a.depthNode=this.depthNode,a.compareNode=this.compareNode,a.gradNode=this.gradNode,a}}class dm extends zu{static get type(){return"PassNode"}constructor(a,y,x,E={}){super("vec4"),this.scope=a,this.scene=y,this.camera=x,this.options=E,this._pixelRatio=1,this._width=1,this._height=1;const z=new Tf;z.isRenderTargetTexture=!0,z.name="depth";const ee=new Xm(this._width*this._pixelRatio,this._height*this._pixelRatio,Dl({type:vl},E));ee.texture.name="output",ee.depthTexture=z,this.renderTarget=ee,this._textures={output:ee.texture,depth:z},this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=bs(0),this._cameraFar=bs(0),this._mrt=null,this._layers=null,this._resolution=1,this._viewport=null,this._scissor=null,this.isPassNode=!0,this.updateBeforeType=wa.FRAME,this.global=!0}setResolution(a){return this._resolution=a,this}getResolution(){return this._resolution}setLayers(a){return this._layers=a,this}getLayers(){return this._layers}setMRT(a){return this._mrt=a,this}getMRT(){return this._mrt}getTexture(a){let y=this._textures[a];return y===void 0&&(y=this.renderTarget.texture.clone(),y.name=a,this._textures[a]=y,this.renderTarget.textures.push(y)),y}getPreviousTexture(a){let y=this._previousTextures[a];return y===void 0&&(y=this.getTexture(a).clone(),this._previousTextures[a]=y),y}toggleTexture(a){const y=this._previousTextures[a];if(y!==void 0){const x=this._textures[a],E=this.renderTarget.textures.indexOf(x);this.renderTarget.textures[E]=y,this._textures[a]=y,this._previousTextures[a]=x,this._textureNodes[a].updateTexture(),this._previousTextureNodes[a].updateTexture()}}getTextureNode(a="output"){let y=this._textureNodes[a];return y===void 0&&(y=gr(new o7(this,a)),y.updateTexture(),this._textureNodes[a]=y),y}getPreviousTextureNode(a="output"){let y=this._previousTextureNodes[a];return y===void 0&&(this._textureNodes[a]===void 0&&this.getTextureNode(a),y=gr(new o7(this,a,!0)),y.updateTexture(),this._previousTextureNodes[a]=y),y}getViewZNode(a="depth"){let y=this._viewZNodes[a];if(y===void 0){const x=this._cameraNear,E=this._cameraFar;this._viewZNodes[a]=y=HS(this.getTextureNode(a),x,E)}return y}getLinearDepthNode(a="depth"){let y=this._linearDepthNodes[a];if(y===void 0){const x=this._cameraNear,E=this._cameraFar,z=this.getViewZNode(a);this._linearDepthNodes[a]=y=$0(z,x,E)}return y}compileAsync(a){return Fs(this,null,function*(){const y=a.getRenderTarget(),x=a.getMRT();a.setRenderTarget(this.renderTarget),a.setMRT(this._mrt),yield a.compileAsync(this.scene,this.camera),a.setRenderTarget(y),a.setMRT(x)})}setup({renderer:a}){return this.renderTarget.samples=this.options.samples===void 0?a.samples:this.options.samples,this.renderTarget.texture.type=a.getColorBufferType(),this.scope===dm.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(a){const{renderer:y}=a,{scene:x}=this;let E,z;const ee=y.getOutputRenderTarget();ee&&ee.isXRRenderTarget===!0?(z=1,E=y.xr.getCamera(),y.xr.updateCamera(E),A1.set(ee.width,ee.height)):(E=this.camera,z=y.getPixelRatio(),y.getSize(A1)),this._pixelRatio=z,this.setSize(A1.width,A1.height);const te=y.getRenderTarget(),ne=y.getMRT(),ie=E.layers.mask;this._cameraNear.value=E.near,this._cameraFar.value=E.far,this._layers!==null&&(E.layers.mask=this._layers.mask);for(const ae in this._previousTextures)this.toggleTexture(ae);y.setRenderTarget(this.renderTarget),y.setMRT(this._mrt),y.render(x,E),y.setRenderTarget(te),y.setMRT(ne),E.layers.mask=ie}setSize(a,y){this._width=a,this._height=y;const x=this._width*this._pixelRatio*this._resolution,E=this._height*this._pixelRatio*this._resolution;this.renderTarget.setSize(x,E),this._scissor!==null&&this.renderTarget.scissor.copy(this._scissor),this._viewport!==null&&this.renderTarget.viewport.copy(this._viewport)}setScissor(a,y,x,E){a===null?this._scissor=null:(this._scissor===null&&(this._scissor=new Ws),a.isVector4?this._scissor.copy(a):this._scissor.set(a,y,x,E),this._scissor.multiplyScalar(this._pixelRatio*this._resolution).floor())}setViewport(a,y,x,E){a===null?this._viewport=null:(this._viewport===null&&(this._viewport=new Ws),a.isVector4?this._viewport.copy(a):this._viewport.set(a,y,x,E),this._viewport.multiplyScalar(this._pixelRatio*this._resolution).floor())}setPixelRatio(a){this._pixelRatio=a,this.setSize(this._width,this._height)}dispose(){this.renderTarget.dispose()}}dm.COLOR="color",dm.DEPTH="depth";const hJ=(b,a,y)=>gr(new dm(dm.COLOR,b,a,y)),pJ=(b,a)=>gr(new a7(b,a)),mJ=(b,a,y)=>gr(new dm(dm.DEPTH,b,a,y));class gJ extends dm{static get type(){return"ToonOutlinePassNode"}constructor(a,y,x,E,z){super(dm.COLOR,a,y),this.colorNode=x,this.thicknessNode=E,this.alphaNode=z,this._materialCache=new WeakMap}updateBefore(a){const{renderer:y}=a,x=y.getRenderObjectFunction();y.setRenderObjectFunction((E,z,ee,te,ne,ie,ae,oe)=>{if((ne.isMeshToonMaterial||ne.isMeshToonNodeMaterial)&&ne.wireframe===!1){const le=this._getOutlineMaterial(ne);y.renderObject(E,z,ee,te,le,ie,ae,oe)}y.renderObject(E,z,ee,te,ne,ie,ae,oe)}),super.updateBefore(a),y.setRenderObjectFunction(x)}_createMaterial(){const a=new Yl;a.isMeshToonOutlineMaterial=!0,a.name="Toon_Outline",a.side=co;const y=qd.negate(),x=Of.mul(cg),E=ft(1),z=x.mul(Ii(su,1)),ee=x.mul(Ii(su.add(y),1)),te=ig(z.sub(ee));return a.vertexNode=z.add(te.mul(this.thicknessNode).mul(z.w).mul(E)),a.colorNode=Ii(this.colorNode,this.alphaNode),a}_getOutlineMaterial(a){let y=this._materialCache.get(a);return y===void 0&&(y=this._createMaterial(),this._materialCache.set(a,y)),y}}const vJ=(b,a,y=new xi(0,0,0),x=.003,E=1)=>gr(new gJ(b,a,gr(y),gr(x),gr(E))),l7=mn(([b,a])=>b.mul(a).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),u7=mn(([b,a])=>(b=b.mul(a),b.div(b.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),c7=mn(([b,a])=>{b=b.mul(a),b=b.sub(.004).max(0);const y=b.mul(b.mul(6.2).add(.5)),x=b.mul(b.mul(6.2).add(1.7)).add(.06);return y.div(x).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),AJ=mn(([b])=>{const a=b.mul(b.add(.0245786)).sub(90537e-9),y=b.mul(b.add(.432951).mul(.983729)).add(.238081);return a.div(y)}),d7=mn(([b,a])=>{const y=td(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),x=td(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return b=b.mul(a).div(.6),b=y.mul(b),b=AJ(b),b=x.mul(b),b.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),yJ=td(en(1.6605,-.1246,-.0182),en(-.5876,1.1329,-.1006),en(-.0728,-.0083,1.1187)),xJ=td(en(.6274,.0691,.0164),en(.3293,.9195,.088),en(.0433,.0113,.8956)),bJ=mn(([b])=>{const a=en(b).toVar(),y=en(a.mul(a)).toVar(),x=en(y.mul(y)).toVar();return ft(15.5).mul(x.mul(y)).sub(Ca(40.14,x.mul(a))).add(Ca(31.96,x).sub(Ca(6.868,y.mul(a))).add(Ca(.4298,y).add(Ca(.1191,a).sub(.00232))))}),f7=mn(([b,a])=>{const y=en(b).toVar(),x=td(en(.856627153315983,.137318972929847,.11189821299995),en(.0951212405381588,.761241990602591,.0767994186031903),en(.0482516061458583,.101439036467562,.811302368396859)),E=td(en(1.1271005818144368,-.1413297634984383,-.14132976349843826),en(-.11060664309660323,1.157823702216272,-.11060664309660294),en(-.016493938717834573,-.016493938717834257,1.2519364065950405)),z=ft(-12.47393),ee=ft(4.026069);return y.mulAssign(a),y.assign(xJ.mul(y)),y.assign(x.mul(y)),y.assign(Zl(y,1e-10)),y.assign(im(y)),y.assign(y.sub(z).div(ee.sub(z))),y.assign(bh(y,0,1)),y.assign(bJ(y)),y.assign(E.mul(y)),y.assign(xh(Zl(en(0),y),en(2.2))),y.assign(yJ.mul(y)),y.assign(bh(y,0,1)),y}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),h7=mn(([b,a])=>{const y=ft(.76),x=ft(.15);b=b.mul(a);const E=Kd(b.r,Kd(b.g,b.b)),z=Bc(E.lessThan(.08),E.sub(Ca(6.25,E.mul(E))),.04);b.subAssign(z);const ee=Zl(b.r,Zl(b.g,b.b));ds(ee.lessThan(y),()=>b);const te=Za(1,y),ne=Za(1,te.mul(te).div(ee.add(te.sub(y))));b.mulAssign(ne.div(ee));const ie=Za(1,Nf(1,x.mul(ee.sub(ne)).add(1)));return ao(b,en(ne),ie)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]});class Uu extends Us{static get type(){return"CodeNode"}constructor(a="",y=[],x=""){super("code"),this.isCodeNode=!0,this.global=!0,this.code=a,this.includes=y,this.language=x}setIncludes(a){return this.includes=a,this}getIncludes(){return this.includes}generate(a){const y=this.getIncludes(a);for(const E of y)E.build(a);const x=a.getCodeFromNode(this,this.getNodeType(a));return x.code=this.code,x.code}serialize(a){super.serialize(a),a.code=this.code,a.language=this.language}deserialize(a){super.deserialize(a),this.code=a.code,this.language=a.language}}const y1=oa(Uu).setParameterLength(1,3),EJ=(b,a)=>y1(b,a,"js"),wJ=(b,a)=>y1(b,a,"wgsl"),CJ=(b,a)=>y1(b,a,"glsl");class p7 extends Uu{static get type(){return"FunctionNode"}constructor(a="",y=[],x=""){super(a,y,x)}getNodeType(a){return this.getNodeFunction(a).type}getInputs(a){return this.getNodeFunction(a).inputs}getNodeFunction(a){const y=a.getDataFromNode(this);let x=y.nodeFunction;return x===void 0&&(x=a.parser.parseFunction(this.code),y.nodeFunction=x),x}generate(a,y){super.generate(a);const x=this.getNodeFunction(a),E=x.name,z=x.type,ee=a.getCodeFromNode(this,z);E!==""&&(ee.name=E);const te=a.getPropertyName(ee),ne=this.getNodeFunction(a).getCode(te);return ee.code=ne+` `,y==="property"?te:a.format(`${te}()`,z,y)}}const m7=(b,a=[],y="")=>{for(let z=0;zx.call(...z);return E.functionNode=x,E},PJ=(b,a)=>m7(b,a,"glsl"),BJ=(b,a)=>m7(b,a,"wgsl");class SJ extends Us{static get type(){return"ScriptableValueNode"}constructor(a=null){super(),this._value=a,this._cache=null,this.inputType=null,this.outputType=null,this.events=new li,this.isScriptableValueNode=!0}get isScriptableOutputNode(){return this.outputType!==null}set value(a){this._value!==a&&(this._cache&&this.inputType==="URL"&&this.value.value instanceof ArrayBuffer&&(URL.revokeObjectURL(this._cache),this._cache=null),this._value=a,this.events.dispatchEvent({type:"change"}),this.refresh())}get value(){return this._value}refresh(){this.events.dispatchEvent({type:"refresh"})}getValue(){const a=this.value;if(a&&this._cache===null&&this.inputType==="URL"&&a.value instanceof ArrayBuffer)this._cache=URL.createObjectURL(new Blob([a.value]));else if(a&&a.value!==null&&a.value!==void 0&&((this.inputType==="URL"||this.inputType==="String")&&typeof a.value=="string"||this.inputType==="Number"&&typeof a.value=="number"||this.inputType==="Vector2"&&a.value.isVector2||this.inputType==="Vector3"&&a.value.isVector3||this.inputType==="Vector4"&&a.value.isVector4||this.inputType==="Color"&&a.value.isColor||this.inputType==="Matrix3"&&a.value.isMatrix3||this.inputType==="Matrix4"&&a.value.isMatrix4))return a.value;return this._cache||a}getNodeType(a){return this.value&&this.value.isNode?this.value.getNodeType(a):"float"}setup(){return this.value&&this.value.isNode?this.value:ft()}serialize(a){super.serialize(a),this.value!==null?this.inputType==="ArrayBuffer"?a.value=BB(this.value):a.value=this.value?this.value.toJSON(a.meta).uuid:null:a.value=null,a.inputType=this.inputType,a.outputType=this.outputType}deserialize(a){super.deserialize(a);let y=null;a.value!==null&&(a.inputType==="ArrayBuffer"?y=SB(a.value):a.inputType==="Texture"?y=a.meta.textures[a.value]:y=a.meta.nodes[a.value]||null),this.value=y,this.inputType=a.inputType,this.outputType=a.outputType}}const x1=oa(SJ).setParameterLength(1);class g7 extends Map{get(a,y=null,...x){if(this.has(a))return super.get(a);if(y!==null){const E=y(...x);return this.set(a,E),E}}}class MJ{constructor(a){this.scriptableNode=a}get parameters(){return this.scriptableNode.parameters}get layout(){return this.scriptableNode.getLayout()}getInputLayout(a){return this.scriptableNode.getInputLayout(a)}get(a){const y=this.parameters[a];return y?y.getValue():null}}const b1=new g7;class DJ extends Us{static get type(){return"ScriptableNode"}constructor(a=null,y={}){super(),this.codeNode=a,this.parameters=y,this._local=new g7,this._output=x1(null),this._outputs={},this._source=this.source,this._method=null,this._object=null,this._value=null,this._needsOutputUpdate=!0,this.onRefresh=this.onRefresh.bind(this),this.isScriptableNode=!0}get source(){return this.codeNode?this.codeNode.code:""}setLocal(a,y){return this._local.set(a,y)}getLocal(a){return this._local.get(a)}onRefresh(){this._refresh()}getInputLayout(a){for(const y of this.getLayout())if(y.inputType&&(y.id===a||y.name===a))return y}getOutputLayout(a){for(const y of this.getLayout())if(y.outputType&&(y.id===a||y.name===a))return y}setOutput(a,y){const x=this._outputs;return x[a]===void 0?x[a]=x1(y):x[a].value=y,this}getOutput(a){return this._outputs[a]}getParameter(a){return this.parameters[a]}setParameter(a,y){const x=this.parameters;return y&&y.isScriptableNode?(this.deleteParameter(a),x[a]=y,x[a].getDefaultOutput().events.addEventListener("refresh",this.onRefresh)):y&&y.isScriptableValueNode?(this.deleteParameter(a),x[a]=y,x[a].events.addEventListener("refresh",this.onRefresh)):x[a]===void 0?(x[a]=x1(y),x[a].events.addEventListener("refresh",this.onRefresh)):x[a].value=y,this}getValue(){return this.getDefaultOutput().getValue()}deleteParameter(a){let y=this.parameters[a];return y&&(y.isScriptableNode&&(y=y.getDefaultOutput()),y.events.removeEventListener("refresh",this.onRefresh)),this}clearParameters(){for(const a of Object.keys(this.parameters))this.deleteParameter(a);return this.needsUpdate=!0,this}call(a,...y){const E=this.getObject()[a];if(typeof E=="function")return E(...y)}callAsync(a,...y){return Fs(this,null,function*(){const E=this.getObject()[a];if(typeof E=="function")return E.constructor.name==="AsyncFunction"?yield E(...y):E(...y)})}getNodeType(a){return this.getDefaultOutputNode().getNodeType(a)}refresh(a=null){a!==null?this.getOutput(a).refresh():this._refresh()}getObject(){if(this.needsUpdate&&this.dispose(),this._object!==null)return this._object;const a=()=>this.refresh(),y=(ie,ae)=>this.setOutput(ie,ae),x=new MJ(this),E=b1.get("THREE"),z=b1.get("TSL"),ee=this.getMethod(),te=[x,this._local,b1,a,y,E,z];this._object=ee(...te);const ne=this._object.layout;if(ne&&(ne.cache===!1&&this._local.clear(),this._output.outputType=ne.outputType||null,Array.isArray(ne.elements)))for(const ie of ne.elements){const ae=ie.id||ie.name;ie.inputType&&(this.getParameter(ae)===void 0&&this.setParameter(ae,null),this.getParameter(ae).inputType=ie.inputType),ie.outputType&&(this.getOutput(ae)===void 0&&this.setOutput(ae,null),this.getOutput(ae).outputType=ie.outputType)}return this._object}deserialize(a){super.deserialize(a);for(const y in this.parameters){let x=this.parameters[y];x.isScriptableNode&&(x=x.getDefaultOutput()),x.events.addEventListener("refresh",this.onRefresh)}}getLayout(){return this.getObject().layout}getDefaultOutputNode(){const a=this.getDefaultOutput().value;return a&&a.isNode?a:ft()}getDefaultOutput(){return this._exec()._output}getMethod(){if(this.needsUpdate&&this.dispose(),this._method!==null)return this._method;const a=["parameters","local","global","refresh","setOutput","THREE","TSL"],x=["layout","init","main","dispose"].join(", "),E="var "+x+`; var output = {}; `,z=` return { ...output, `+x+" };",ee=E+this.codeNode.code+z;return this._method=new Function(...a,ee),this._method}dispose(){this._method!==null&&(this._object&&typeof this._object.dispose=="function"&&this._object.dispose(),this._method=null,this._object=null,this._source=null,this._value=null,this._needsOutputUpdate=!0,this._output.value=null,this._outputs={})}setup(){return this.getDefaultOutputNode()}getCacheKey(a){const y=[xB(this.source),this.getDefaultOutputNode().getCacheKey(a)];for(const x in this.parameters)y.push(this.parameters[x].getCacheKey(a));return ux(y)}set needsUpdate(a){a===!0&&this.dispose()}get needsUpdate(){return this.source!==this._source}_exec(){return this.codeNode===null?this:(this._needsOutputUpdate===!0&&(this._value=this.call("main"),this._needsOutputUpdate=!1),this._output.value=this._value,this)}_refresh(){this.needsUpdate=!0,this._exec(),this._output.refresh()}}const TJ=oa(DJ).setParameterLength(1,2);function v7(b){let a;const y=b.context.getViewZ;return y!==void 0&&(a=y(this)),(a||au.z).negate()}const E3=mn(([b,a],y)=>{const x=v7(y);return Eh(b,a,x)}),w3=mn(([b],a)=>{const y=v7(a);return b.mul(b,y,y).negate().exp().oneMinus()}),Yx=mn(([b,a])=>Ii(a.toFloat().mix(X0.rgb,b.toVec3()),X0.a));function IJ(b,a,y){return console.warn('THREE.TSL: "rangeFog( color, near, far )" is deprecated. Use "fog( color, rangeFogFactor( near, far ) )" instead.'),Yx(b,E3(a,y))}function FJ(b,a){return console.warn('THREE.TSL: "densityFog( color, density )" is deprecated. Use "fog( color, densityFogFactor( density ) )" instead.'),Yx(b,w3(a))}let AA=null,yA=null;class NJ extends Us{static get type(){return"RangeNode"}constructor(a=ft(),y=ft()){super(),this.minNode=a,this.maxNode=y}getVectorLength(a){const y=a.getTypeLength(rg(this.minNode.value)),x=a.getTypeLength(rg(this.maxNode.value));return y>x?y:x}getNodeType(a){return a.object.count>1?a.getTypeFromLength(this.getVectorLength(a)):"float"}setup(a){const y=a.object;let x=null;if(y.count>1){const E=this.minNode.value,z=this.maxNode.value,ee=a.getTypeLength(rg(E)),te=a.getTypeLength(rg(z));AA=AA||new Ws,yA=yA||new Ws,AA.setScalar(0),yA.setScalar(0),ee===1?AA.setScalar(E):E.isColor?AA.set(E.r,E.g,E.b,1):AA.set(E.x,E.y,E.z||0,E.w||0),te===1?yA.setScalar(z):z.isColor?yA.set(z.r,z.g,z.b,1):yA.set(z.x,z.y,z.z||0,z.w||0);const ne=4,ie=ne*y.count,ae=new Float32Array(ie);for(let le=0;legr(new OJ(b,a)),RJ=Jx("numWorkgroups","uvec3"),zJ=Jx("workgroupId","uvec3"),kJ=Jx("globalId","uvec3"),HJ=Jx("localId","uvec3"),UJ=Jx("subgroupSize","uint");class jJ extends Us{constructor(a){super(),this.scope=a}generate(a){const{scope:y}=this,{renderer:x}=a;x.backend.isWebGLBackend===!0?a.addFlowCode(` // ${y}Barrier `):a.addLineFlowCode(`${y}Barrier()`,this)}}const C3=oa(jJ),VJ=()=>C3("workgroup").toStack(),GJ=()=>C3("storage").toStack(),XJ=()=>C3("texture").toStack();class WJ extends rA{constructor(a,y){super(a,y),this.isWorkgroupInfoElementNode=!0}generate(a,y){let x;const E=a.context.assign;if(x=super.generate(a),E!==!0){const z=this.getNodeType(a);x=a.format(x,z,y)}return x}}class QJ extends Us{constructor(a,y,x=0){super(y),this.bufferType=y,this.bufferCount=x,this.isWorkgroupInfoNode=!0,this.elementType=y,this.scope=a,this.name=""}setName(a){return this.name=a,this}label(a){return console.warn('THREE.TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(a)}setScope(a){return this.scope=a,this}getElementType(){return this.elementType}getInputType(){return`${this.scope}Array`}element(a){return gr(new WJ(this,a))}generate(a){const y=this.name!==""?this.name:`${this.scope}Array_${this.id}`;return a.getScopedArray(y,this.scope.toLowerCase(),this.bufferType,this.bufferCount)}}const ZJ=(b,a)=>gr(new QJ("Workgroup",b,a));class sc extends Us{static get type(){return"AtomicFunctionNode"}constructor(a,y,x){super("uint"),this.method=a,this.pointerNode=y,this.valueNode=x,this.parents=!0}getInputType(a){return this.pointerNode.getNodeType(a)}getNodeType(a){return this.getInputType(a)}generate(a){const y=a.getNodeProperties(this),x=y.parents,E=this.method,z=this.getNodeType(a),ee=this.getInputType(a),te=this.pointerNode,ne=this.valueNode,ie=[];ie.push(`&${te.build(a,ee)}`),ne!==null&&ie.push(ne.build(a,ee));const ae=`${a.getMethod(E,z)}( ${ie.join(", ")} )`;if(x?x.length===1&&x[0].isStackNode===!0:!1)a.addLineFlowCode(ae,this);else return y.constNode===void 0&&(y.constNode=og(ae,z).toConst()),y.constNode.build(a)}}sc.ATOMIC_LOAD="atomicLoad",sc.ATOMIC_STORE="atomicStore",sc.ATOMIC_ADD="atomicAdd",sc.ATOMIC_SUB="atomicSub",sc.ATOMIC_MAX="atomicMax",sc.ATOMIC_MIN="atomicMin",sc.ATOMIC_AND="atomicAnd",sc.ATOMIC_OR="atomicOr",sc.ATOMIC_XOR="atomicXor";const YJ=oa(sc),fm=(b,a,y)=>YJ(b,a,y).toStack(),JJ=b=>fm(sc.ATOMIC_LOAD,b,null),KJ=(b,a)=>fm(sc.ATOMIC_STORE,b,a),qJ=(b,a)=>fm(sc.ATOMIC_ADD,b,a),_J=(b,a)=>fm(sc.ATOMIC_SUB,b,a),$J=(b,a)=>fm(sc.ATOMIC_MAX,b,a),eK=(b,a)=>fm(sc.ATOMIC_MIN,b,a),tK=(b,a)=>fm(sc.ATOMIC_AND,b,a),nK=(b,a)=>fm(sc.ATOMIC_OR,b,a),rK=(b,a)=>fm(sc.ATOMIC_XOR,b,a);let E1;function w1(b){E1=E1||new WeakMap;let a=E1.get(b);return a===void 0&&E1.set(b,a={}),a}function C1(b){const a=w1(b);return a.shadowMatrix||(a.shadowMatrix=bs("mat4").setGroup(Zs).onRenderUpdate(y=>((b.castShadow!==!0||y.renderer.shadowMap.enabled===!1)&&b.shadow.updateMatrices(b),b.shadow.matrix)))}function A7(b,a=zf){const y=C1(b).mul(a);return y.xyz.div(y.w)}function P3(b){const a=w1(b);return a.position||(a.position=bs(new ot).setGroup(Zs).onRenderUpdate((y,x)=>x.value.setFromMatrixPosition(b.matrixWorld)))}function y7(b){const a=w1(b);return a.targetPosition||(a.targetPosition=bs(new ot).setGroup(Zs).onRenderUpdate((y,x)=>x.value.setFromMatrixPosition(b.target.matrixWorld)))}function B3(b){const a=w1(b);return a.viewPosition||(a.viewPosition=bs(new ot).setGroup(Zs).onRenderUpdate(({camera:y},x)=>{x.value=x.value||new ot,x.value.setFromMatrixPosition(b.matrixWorld),x.value.applyMatrix4(y.matrixWorldInverse)}))}const S3=b=>Rf.transformDirection(P3(b).sub(y7(b))),iK=b=>b.sort((a,y)=>a.id-y.id),sK=(b,a)=>{for(const y of a)if(y.isAnalyticLightNode&&y.light.id===b)return y;return null},M3=new WeakMap,Kx=[];class D3 extends Us{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=Ep("vec3","totalDiffuse"),this.totalSpecularNode=Ep("vec3","totalSpecular"),this.outgoingLightNode=Ep("vec3","outgoingLight"),this._lights=[],this._lightNodes=null,this._lightNodesHash=null,this.global=!0}customCacheKey(){const a=this._lights;for(let x=0;x0}}const aK=(b=[])=>gr(new D3).setLights(b);class oK extends Us{static get type(){return"ShadowBaseNode"}constructor(a){super(),this.light=a,this.updateBeforeType=wa.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({context:a,material:y}){T3.assign(y.receivedShadowPositionNode||a.shadowPositionWorld||zf)}}const T3=Ep("vec3","shadowPositionWorld");function I3(b,a={}){return a.toneMapping=b.toneMapping,a.toneMappingExposure=b.toneMappingExposure,a.outputColorSpace=b.outputColorSpace,a.renderTarget=b.getRenderTarget(),a.activeCubeFace=b.getActiveCubeFace(),a.activeMipmapLevel=b.getActiveMipmapLevel(),a.renderObjectFunction=b.getRenderObjectFunction(),a.pixelRatio=b.getPixelRatio(),a.mrt=b.getMRT(),a.clearColor=b.getClearColor(a.clearColor||new xi),a.clearAlpha=b.getClearAlpha(),a.autoClear=b.autoClear,a.scissorTest=b.getScissorTest(),a}function x7(b,a){return a=I3(b,a),b.setMRT(null),b.setRenderObjectFunction(null),b.setClearColor(0,1),b.autoClear=!0,a}function b7(b,a){b.toneMapping=a.toneMapping,b.toneMappingExposure=a.toneMappingExposure,b.outputColorSpace=a.outputColorSpace,b.setRenderTarget(a.renderTarget,a.activeCubeFace,a.activeMipmapLevel),b.setRenderObjectFunction(a.renderObjectFunction),b.setPixelRatio(a.pixelRatio),b.setMRT(a.mrt),b.setClearColor(a.clearColor,a.clearAlpha),b.autoClear=a.autoClear,b.setScissorTest(a.scissorTest)}function F3(b,a={}){return a.background=b.background,a.backgroundNode=b.backgroundNode,a.overrideMaterial=b.overrideMaterial,a}function E7(b,a){return a=F3(b,a),b.background=null,b.backgroundNode=null,b.overrideMaterial=null,a}function w7(b,a){b.background=a.background,b.backgroundNode=a.backgroundNode,b.overrideMaterial=a.overrideMaterial}function lK(b,a,y={}){return y=I3(b,y),y=F3(a,y),y}function C7(b,a,y){return y=x7(b,y),y=E7(a,y),y}function P7(b,a,y){b7(b,y),w7(a,y)}var Uce=Object.freeze({__proto__:null,resetRendererAndSceneState:C7,resetRendererState:x7,resetSceneState:E7,restoreRendererAndSceneState:P7,restoreRendererState:b7,restoreSceneState:w7,saveRendererAndSceneState:lK,saveRendererState:I3,saveSceneState:F3});const B7=new WeakMap,S7=mn(({depthTexture:b,shadowCoord:a,depthLayer:y})=>{let x=Xa(b,a.xy).setName("t_basic");return b.isArrayTexture&&(x=x.depth(y)),x.compare(a.z)}),M7=mn(({depthTexture:b,shadowCoord:a,shadow:y,depthLayer:x})=>{const E=(Ae,me)=>{let Ce=Xa(b,Ae);return b.isArrayTexture&&(Ce=Ce.depth(x)),Ce.compare(me)},z=rl("mapSize","vec2",y).setGroup(Zs),ee=rl("radius","float",y).setGroup(Zs),te=Er(1).div(z),ne=te.x.negate().mul(ee),ie=te.y.negate().mul(ee),ae=te.x.mul(ee),oe=te.y.mul(ee),le=ne.div(2),de=ie.div(2),he=ae.div(2),ye=oe.div(2);return Eu(E(a.xy.add(Er(ne,ie)),a.z),E(a.xy.add(Er(0,ie)),a.z),E(a.xy.add(Er(ae,ie)),a.z),E(a.xy.add(Er(le,de)),a.z),E(a.xy.add(Er(0,de)),a.z),E(a.xy.add(Er(he,de)),a.z),E(a.xy.add(Er(ne,0)),a.z),E(a.xy.add(Er(le,0)),a.z),E(a.xy,a.z),E(a.xy.add(Er(he,0)),a.z),E(a.xy.add(Er(ae,0)),a.z),E(a.xy.add(Er(le,ye)),a.z),E(a.xy.add(Er(0,ye)),a.z),E(a.xy.add(Er(he,ye)),a.z),E(a.xy.add(Er(ne,oe)),a.z),E(a.xy.add(Er(0,oe)),a.z),E(a.xy.add(Er(ae,oe)),a.z)).mul(1/17)}),D7=mn(({depthTexture:b,shadowCoord:a,shadow:y,depthLayer:x})=>{const E=(oe,le)=>{let de=Xa(b,oe);return b.isArrayTexture&&(de=de.depth(x)),de.compare(le)},z=rl("mapSize","vec2",y).setGroup(Zs),ee=Er(1).div(z),te=ee.x,ne=ee.y,ie=a.xy,ae=sg(ie.mul(z).add(.5));return ie.subAssign(ae.mul(ee)),Eu(E(ie,a.z),E(ie.add(Er(te,0)),a.z),E(ie.add(Er(0,ne)),a.z),E(ie.add(ee),a.z),ao(E(ie.add(Er(te.negate(),0)),a.z),E(ie.add(Er(te.mul(2),0)),a.z),ae.x),ao(E(ie.add(Er(te.negate(),ne)),a.z),E(ie.add(Er(te.mul(2),ne)),a.z),ae.x),ao(E(ie.add(Er(0,ne.negate())),a.z),E(ie.add(Er(0,ne.mul(2))),a.z),ae.y),ao(E(ie.add(Er(te,ne.negate())),a.z),E(ie.add(Er(te,ne.mul(2))),a.z),ae.y),ao(ao(E(ie.add(Er(te.negate(),ne.negate())),a.z),E(ie.add(Er(te.mul(2),ne.negate())),a.z),ae.x),ao(E(ie.add(Er(te.negate(),ne.mul(2))),a.z),E(ie.add(Er(te.mul(2),ne.mul(2))),a.z),ae.x),ae.y)).mul(1/9)}),T7=mn(({depthTexture:b,shadowCoord:a,depthLayer:y})=>{const x=ft(1).toVar();let E=Xa(b).sample(a.xy);b.isArrayTexture&&(E=E.depth(y)),E=E.rg;const z=Hw(a.z,E.x);return ds(z.notEqual(ft(1)),()=>{const ee=a.z.sub(E.x),te=Zl(0,E.y.mul(E.y));let ne=te.div(te.add(ee.mul(ee)));ne=bh(Za(ne,.3).div(.95-.3)),x.assign(bh(Zl(z,ne)))}),x}),uK=mn(([b,a,y])=>{let x=zf.sub(b).length();return x=x.sub(a).div(y.sub(a)),x=x.saturate(),x}),cK=b=>{const a=b.shadow.camera,y=rl("near","float",a).setGroup(Zs),x=rl("far","float",a).setGroup(Zs),E=bI(b);return uK(E,y,x)},I7=b=>{let a=B7.get(b);if(a===void 0){const y=b.isPointLight?cK(b):null;a=new Yl,a.colorNode=Ii(0,0,0,1),a.depthNode=y,a.isShadowPassMaterial=!0,a.name="ShadowMaterial",a.fog=!1,B7.set(b,a)}return a},F7=new wp,oy=[],N7=(b,a,y,x)=>{oy[0]=b,oy[1]=a;let E=F7.get(oy);return(E===void 0||E.shadowType!==y||E.useVelocity!==x)&&(E=(z,ee,te,ne,ie,ae,...oe)=>{(z.castShadow===!0||z.receiveShadow&&y===Tu)&&(x&&(PB(z).useVelocity=!0),z.onBeforeShadow(b,z,te,a.camera,ne,ee.overrideMaterial,ae),b.renderObject(z,ee,te,ne,ie,ae,...oe),z.onAfterShadow(b,z,te,a.camera,ne,ee.overrideMaterial,ae))},E.shadowType=y,E.useVelocity=x,F7.set(oy,E)),oy[0]=null,oy[1]=null,E},dK=mn(({samples:b,radius:a,size:y,shadowPass:x,depthLayer:E})=>{const z=ft(0).toVar("meanVertical"),ee=ft(0).toVar("squareMeanVertical"),te=b.lessThanEqual(ft(1)).select(ft(0),ft(2).div(b.sub(1))),ne=b.lessThanEqual(ft(1)).select(ft(0),ft(-1));Oo({start:Xt(0),end:Xt(b),type:"int",condition:"<"},({i:ae})=>{const oe=ne.add(ft(ae).mul(te));let le=x.sample(Eu(zx.xy,Er(0,oe).mul(a)).div(y));x.value.isArrayTexture&&(le=le.depth(E)),le=le.x,z.addAssign(le),ee.addAssign(le.mul(le))}),z.divAssign(b),ee.divAssign(b);const ie=sm(ee.sub(z.mul(z)));return Er(z,ie)}),fK=mn(({samples:b,radius:a,size:y,shadowPass:x,depthLayer:E})=>{const z=ft(0).toVar("meanHorizontal"),ee=ft(0).toVar("squareMeanHorizontal"),te=b.lessThanEqual(ft(1)).select(ft(0),ft(2).div(b.sub(1))),ne=b.lessThanEqual(ft(1)).select(ft(0),ft(-1));Oo({start:Xt(0),end:Xt(b),type:"int",condition:"<"},({i:ae})=>{const oe=ne.add(ft(ae).mul(te));let le=x.sample(Eu(zx.xy,Er(oe,0).mul(a)).div(y));x.value.isArrayTexture&&(le=le.depth(E)),z.addAssign(le.x),ee.addAssign(Eu(le.y.mul(le.y),le.x.mul(le.x)))}),z.divAssign(b),ee.divAssign(b);const ie=sm(ee.sub(z.mul(z)));return Er(z,ie)}),hK=[S7,M7,D7,T7];let N3;const P1=new Qx;class L7 extends oK{static get type(){return"ShadowNode"}constructor(a,y=null){super(a),this.shadow=y||a.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this._cameraFrameId=new WeakMap,this.isShadowNode=!0,this.depthLayer=0}setupShadowFilter(a,{filterFn:y,depthTexture:x,shadowCoord:E,shadow:z,depthLayer:ee}){const te=E.x.greaterThanEqual(0).and(E.x.lessThanEqual(1)).and(E.y.greaterThanEqual(0)).and(E.y.lessThanEqual(1)).and(E.z.lessThanEqual(1)),ne=y({depthTexture:x,shadowCoord:E,shadow:z,depthLayer:ee});return te.select(ne,ft(1))}setupShadowCoord(a,y){const{shadow:x}=this,{renderer:E}=a,z=rl("bias","float",x).setGroup(Zs);let ee=y,te;if(x.camera.isOrthographicCamera||E.logarithmicDepthBuffer!==!0)ee=ee.xyz.div(ee.w),te=ee.z,E.coordinateSystem===Sn&&(te=te.mul(2).sub(1));else{const ne=ee.w;ee=ee.xy.div(ne);const ie=rl("near","float",x.camera).setGroup(Zs),ae=rl("far","float",x.camera).setGroup(Zs);te=US(ne.negate(),ie,ae)}return ee=en(ee.x,ee.y.oneMinus(),te.add(z)),ee}getShadowFilterFn(a){return hK[a]}setupRenderTarget(a,y){const x=new Tf(a.mapSize.width,a.mapSize.height);x.name="ShadowDepthTexture",x.compareFunction=Go;const E=y.createRenderTarget(a.mapSize.width,a.mapSize.height);return E.texture.name="ShadowMap",E.texture.type=a.mapType,E.depthTexture=x,{shadowMap:E,depthTexture:x}}setupShadow(a){const{renderer:y}=a,{light:x,shadow:E}=this,z=y.shadowMap.type,{depthTexture:ee,shadowMap:te}=this.setupRenderTarget(E,a);if(E.camera.updateProjectionMatrix(),z===Tu&&E.isPointLightShadow!==!0){ee.compareFunction=null,te.depth>1?(te._vsmShadowMapVertical||(te._vsmShadowMapVertical=a.createRenderTarget(E.mapSize.width,E.mapSize.height,{format:jd,type:vl,depth:te.depth,depthBuffer:!1}),te._vsmShadowMapVertical.texture.name="VSMVertical"),this.vsmShadowMapVertical=te._vsmShadowMapVertical,te._vsmShadowMapHorizontal||(te._vsmShadowMapHorizontal=a.createRenderTarget(E.mapSize.width,E.mapSize.height,{format:jd,type:vl,depth:te.depth,depthBuffer:!1}),te._vsmShadowMapHorizontal.texture.name="VSMHorizontal"),this.vsmShadowMapHorizontal=te._vsmShadowMapHorizontal):(this.vsmShadowMapVertical=a.createRenderTarget(E.mapSize.width,E.mapSize.height,{format:jd,type:vl,depthBuffer:!1}),this.vsmShadowMapHorizontal=a.createRenderTarget(E.mapSize.width,E.mapSize.height,{format:jd,type:vl,depthBuffer:!1}));let me=Xa(ee);ee.isArrayTexture&&(me=me.depth(this.depthLayer));let Ce=Xa(this.vsmShadowMapVertical.texture);ee.isArrayTexture&&(Ce=Ce.depth(this.depthLayer));const Ee=rl("blurSamples","float",E).setGroup(Zs),Be=rl("radius","float",E).setGroup(Zs),Ne=rl("mapSize","vec2",E).setGroup(Zs);let Fe=this.vsmMaterialVertical||(this.vsmMaterialVertical=new Yl);Fe.fragmentNode=dK({samples:Ee,radius:Be,size:Ne,shadowPass:me,depthLayer:this.depthLayer}).context(a.getSharedContext()),Fe.name="VSMVertical",Fe=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new Yl),Fe.fragmentNode=fK({samples:Ee,radius:Be,size:Ne,shadowPass:Ce,depthLayer:this.depthLayer}).context(a.getSharedContext()),Fe.name="VSMHorizontal"}const ne=rl("intensity","float",E).setGroup(Zs),ie=rl("normalBias","float",E).setGroup(Zs),ae=C1(x).mul(T3.add(rv.mul(ie))),oe=this.setupShadowCoord(a,ae),le=E.filterNode||this.getShadowFilterFn(y.shadowMap.type)||null;if(le===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const de=z===Tu&&E.isPointLightShadow!==!0?this.vsmShadowMapHorizontal.texture:ee,he=this.setupShadowFilter(a,{filterFn:le,shadowTexture:te.texture,depthTexture:de,shadowCoord:oe,shadow:E,depthLayer:this.depthLayer});let ye=Xa(te.texture,oe);ee.isArrayTexture&&(ye=ye.depth(this.depthLayer));const Ae=ao(1,he.rgb.mix(ye,1),ne.mul(ye.a)).toVar();return this.shadowMap=te,this.shadow.map=te,Ae}setup(a){if(a.renderer.shadowMap.enabled!==!1)return mn(()=>{let y=this._node;return this.setupShadowPosition(a),y===null&&(this._node=y=this.setupShadow(a)),a.material.shadowNode&&console.warn('THREE.NodeMaterial: ".shadowNode" is deprecated. Use ".castShadowNode" instead.'),a.material.receivedShadowNode&&(y=a.material.receivedShadowNode(y)),y})()}renderShadow(a){const{shadow:y,shadowMap:x,light:E}=this,{renderer:z,scene:ee}=a;y.updateMatrices(E),x.setSize(y.mapSize.width,y.mapSize.height,x.depth),z.render(ee,y.camera)}updateShadow(a){const{shadowMap:y,light:x,shadow:E}=this,{renderer:z,scene:ee,camera:te}=a,ne=z.shadowMap.type,ie=y.depthTexture.version;this._depthVersionCached=ie;const ae=E.camera.layers.mask;E.camera.layers.mask&4294967294||(E.camera.layers.mask=te.layers.mask);const oe=z.getRenderObjectFunction(),le=z.getMRT(),de=le?le.has("velocity"):!1;N3=C7(z,ee,N3),ee.overrideMaterial=I7(x),z.setRenderObjectFunction(N7(z,E,ne,de)),z.setClearColor(0,0),z.setRenderTarget(y),this.renderShadow(a),z.setRenderObjectFunction(oe),ne===Tu&&E.isPointLightShadow!==!0&&this.vsmPass(z),E.camera.layers.mask=ae,P7(z,ee,N3)}vsmPass(a){const{shadow:y}=this,x=this.shadowMap.depth;this.vsmShadowMapVertical.setSize(y.mapSize.width,y.mapSize.height,x),this.vsmShadowMapHorizontal.setSize(y.mapSize.width,y.mapSize.height,x),a.setRenderTarget(this.vsmShadowMapVertical),P1.material=this.vsmMaterialVertical,P1.render(a),a.setRenderTarget(this.vsmShadowMapHorizontal),P1.material=this.vsmMaterialHorizontal,P1.render(a)}dispose(){this.shadowMap.dispose(),this.shadowMap=null,this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null),super.dispose()}updateBefore(a){const{shadow:y}=this;let x=y.needsUpdate||y.autoUpdate;x&&(this._cameraFrameId[a.camera]===a.frameId&&(x=!1),this._cameraFrameId[a.camera]=a.frameId),x&&(this.updateShadow(a),this.shadowMap.depthTexture.version===this._depthVersionCached&&(y.needsUpdate=!1))}}const O7=(b,a)=>gr(new L7(b,a)),pK=new xi,Cp=mn(([b,a])=>{const y=b.toVar(),x=hl(y),E=Nf(1,Zl(x.x,Zl(x.y,x.z)));x.mulAssign(E),y.mulAssign(E.mul(a.mul(2).oneMinus()));const z=Er(y.xy).toVar(),te=a.mul(1.5).oneMinus();return ds(x.z.greaterThanEqual(te),()=>{ds(y.z.greaterThan(0),()=>{z.x.assign(Za(4,y.x))})}).ElseIf(x.x.greaterThanEqual(te),()=>{const ne=Bx(y.x);z.x.assign(y.z.mul(ne).add(ne.mul(2)))}).ElseIf(x.y.greaterThanEqual(te),()=>{const ne=Bx(y.y);z.x.assign(y.x.add(ne.mul(2)).add(2)),z.y.assign(y.z.mul(ne).sub(2))}),Er(.125,.25).mul(z).add(Er(.375,.75)).flipY()}).setLayout({name:"cubeToUV",type:"vec2",inputs:[{name:"pos",type:"vec3"},{name:"texelSizeY",type:"float"}]}),R7=mn(({depthTexture:b,bd3D:a,dp:y,texelSize:x})=>Xa(b,Cp(a,x.y)).compare(y)),z7=mn(({depthTexture:b,bd3D:a,dp:y,texelSize:x,shadow:E})=>{const z=rl("radius","float",E).setGroup(Zs),ee=Er(-1,1).mul(z).mul(x.y);return Xa(b,Cp(a.add(ee.xyy),x.y)).compare(y).add(Xa(b,Cp(a.add(ee.yyy),x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.xyx),x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.yyx),x.y)).compare(y)).add(Xa(b,Cp(a,x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.xxy),x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.yxy),x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.xxx),x.y)).compare(y)).add(Xa(b,Cp(a.add(ee.yxx),x.y)).compare(y)).mul(1/9)}),mK=mn(({filterFn:b,depthTexture:a,shadowCoord:y,shadow:x})=>{const E=y.xyz.toVar(),z=E.length(),ee=bs("float").setGroup(Zs).onRenderUpdate(()=>x.camera.near),te=bs("float").setGroup(Zs).onRenderUpdate(()=>x.camera.far),ne=rl("bias","float",x).setGroup(Zs),ie=bs(x.mapSize).setGroup(Zs),ae=ft(1).toVar();return ds(z.sub(te).lessThanEqual(0).and(z.sub(ee).greaterThanEqual(0)),()=>{const oe=z.sub(ee).div(te.sub(ee)).toVar();oe.addAssign(ne);const le=E.normalize(),de=Er(1).div(ie.mul(Er(4,2)));ae.assign(b({depthTexture:a,bd3D:le,dp:oe,texelSize:de,shadow:x}))}),ae}),k7=new Ws,ly=new tr,qx=new tr;class gK extends L7{static get type(){return"PointShadowNode"}constructor(a,y=null){super(a,y)}getShadowFilterFn(a){return a===Lg?R7:z7}setupShadowCoord(a,y){return y}setupShadowFilter(a,{filterFn:y,shadowTexture:x,depthTexture:E,shadowCoord:z,shadow:ee}){return mK({filterFn:y,shadowTexture:x,depthTexture:E,shadowCoord:z,shadow:ee})}renderShadow(a){const{shadow:y,shadowMap:x,light:E}=this,{renderer:z,scene:ee}=a,te=y.getFrameExtents();qx.copy(y.mapSize),qx.multiply(te),x.setSize(qx.width,qx.height),ly.copy(y.mapSize);const ne=z.autoClear,ie=z.getClearColor(pK),ae=z.getClearAlpha();z.autoClear=!1,z.setClearColor(y.clearColor,y.clearAlpha),z.clear();const oe=y.getViewportCount();for(let le=0;legr(new gK(b,a));class xA extends q0{static get type(){return"AnalyticLightNode"}constructor(a=null){super(),this.light=a,this.color=new xi,this.colorNode=a&&a.colorNode||bs(this.color).setGroup(Zs),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=wa.FRAME}getHash(){return this.light.uuid}getLightVector(a){return B3(this.light).sub(a.context.positionView||au)}setupDirect(){}setupDirectRectArea(){}setupShadowNode(){return O7(this.light)}setupShadow(a){const{renderer:y}=a;if(y.shadowMap.enabled===!1)return;let x=this.shadowColorNode;if(x===null){const E=this.light.shadow.shadowNode;let z;E!==void 0?z=gr(E):z=this.setupShadowNode(),this.shadowNode=z,this.shadowColorNode=x=this.colorNode.mul(z),this.baseColorNode=this.colorNode}this.colorNode=x}setup(a){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?a.object.receiveShadow&&this.setupShadow(a):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null);const y=this.setupDirect(a),x=this.setupDirectRectArea(a);y&&a.lightsNode.setupDirectLight(a,this,y),x&&a.lightsNode.setupDirectRectAreaLight(a,this,x)}update(){const{light:a}=this;this.color.copy(a.color).multiplyScalar(a.intensity)}}const L3=mn(({lightDistance:b,cutoffDistance:a,decayExponent:y})=>{const x=b.pow(y).max(.01).reciprocal();return a.greaterThan(0).select(x.mul(b.div(a).pow4().oneMinus().clamp().pow2()),x)}),U7=({color:b,lightVector:a,cutoffDistance:y,decayExponent:x})=>{const E=a.normalize(),z=a.length(),ee=L3({lightDistance:z,cutoffDistance:y,decayExponent:x}),te=b.mul(ee);return{lightDirection:E,lightColor:te}};class vK extends xA{static get type(){return"PointLightNode"}constructor(a=null){super(a),this.cutoffDistanceNode=bs(0).setGroup(Zs),this.decayExponentNode=bs(2).setGroup(Zs)}update(a){const{light:y}=this;super.update(a),this.cutoffDistanceNode.value=y.distance,this.decayExponentNode.value=y.decay}setupShadowNode(){return H7(this.light)}setupDirect(a){return U7({color:this.colorNode,lightVector:this.getLightVector(a),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode})}}const AK=mn(([b=Xo()])=>{const a=b.mul(2),y=a.x.floor(),x=a.y.floor();return y.add(x).mod(2).sign()}),yK=mn(([b=Xo()],{renderer:a,material:y})=>{const x=tS(b.mul(2).sub(1));let E;if(y.alphaToCoverage&&a.samples>1){const z=ft(x.fwidth()).toVar();E=Eh(z.oneMinus(),z.add(1),x).oneMinus()}else E=Bc(x.greaterThan(1),0,1);return E}),_x=mn(([b,a,y])=>{const x=ft(y).toVar(),E=ft(a).toVar(),z=yh(b).toVar();return Bc(z,E,x)}).setLayout({name:"mx_select",type:"float",inputs:[{name:"b",type:"bool"},{name:"t",type:"float"},{name:"f",type:"float"}]}),B1=mn(([b,a])=>{const y=yh(a).toVar(),x=ft(b).toVar();return Bc(y,x.negate(),x)}).setLayout({name:"mx_negate_if",type:"float",inputs:[{name:"val",type:"float"},{name:"b",type:"bool"}]}),wu=mn(([b])=>{const a=ft(b).toVar();return Xt(am(a))}).setLayout({name:"mx_floor",type:"int",inputs:[{name:"x",type:"float"}]}),Pl=mn(([b,a])=>{const y=ft(b).toVar();return a.assign(wu(y)),y.sub(ft(a))}),j7=Vc([mn(([b,a,y,x,E,z])=>{const ee=ft(z).toVar(),te=ft(E).toVar(),ne=ft(x).toVar(),ie=ft(y).toVar(),ae=ft(a).toVar(),oe=ft(b).toVar(),le=ft(Za(1,te)).toVar();return Za(1,ee).mul(oe.mul(le).add(ae.mul(te))).add(ee.mul(ie.mul(le).add(ne.mul(te))))}).setLayout({name:"mx_bilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"}]}),mn(([b,a,y,x,E,z])=>{const ee=ft(z).toVar(),te=ft(E).toVar(),ne=en(x).toVar(),ie=en(y).toVar(),ae=en(a).toVar(),oe=en(b).toVar(),le=ft(Za(1,te)).toVar();return Za(1,ee).mul(oe.mul(le).add(ae.mul(te))).add(ee.mul(ie.mul(le).add(ne.mul(te))))}).setLayout({name:"mx_bilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"}]})]),V7=Vc([mn(([b,a,y,x,E,z,ee,te,ne,ie,ae])=>{const oe=ft(ae).toVar(),le=ft(ie).toVar(),de=ft(ne).toVar(),he=ft(te).toVar(),ye=ft(ee).toVar(),Ae=ft(z).toVar(),me=ft(E).toVar(),Ce=ft(x).toVar(),Ee=ft(y).toVar(),Be=ft(a).toVar(),Ne=ft(b).toVar(),Fe=ft(Za(1,de)).toVar(),ke=ft(Za(1,le)).toVar();return ft(Za(1,oe)).toVar().mul(ke.mul(Ne.mul(Fe).add(Be.mul(de))).add(le.mul(Ee.mul(Fe).add(Ce.mul(de))))).add(oe.mul(ke.mul(me.mul(Fe).add(Ae.mul(de))).add(le.mul(ye.mul(Fe).add(he.mul(de))))))}).setLayout({name:"mx_trilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"v4",type:"float"},{name:"v5",type:"float"},{name:"v6",type:"float"},{name:"v7",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),mn(([b,a,y,x,E,z,ee,te,ne,ie,ae])=>{const oe=ft(ae).toVar(),le=ft(ie).toVar(),de=ft(ne).toVar(),he=en(te).toVar(),ye=en(ee).toVar(),Ae=en(z).toVar(),me=en(E).toVar(),Ce=en(x).toVar(),Ee=en(y).toVar(),Be=en(a).toVar(),Ne=en(b).toVar(),Fe=ft(Za(1,de)).toVar(),ke=ft(Za(1,le)).toVar();return ft(Za(1,oe)).toVar().mul(ke.mul(Ne.mul(Fe).add(Be.mul(de))).add(le.mul(Ee.mul(Fe).add(Ce.mul(de))))).add(oe.mul(ke.mul(me.mul(Fe).add(Ae.mul(de))).add(le.mul(ye.mul(Fe).add(he.mul(de))))))}).setLayout({name:"mx_trilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"v4",type:"vec3"},{name:"v5",type:"vec3"},{name:"v6",type:"vec3"},{name:"v7",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]})]),Sc=Vc([mn(([b,a,y])=>{const x=ft(y).toVar(),E=ft(a).toVar(),z=Pi(b).toVar(),ee=Pi(z.bitAnd(Pi(7))).toVar(),te=ft(_x(ee.lessThan(Pi(4)),E,x)).toVar(),ne=ft(Ca(2,_x(ee.lessThan(Pi(4)),x,E))).toVar();return B1(te,yh(ee.bitAnd(Pi(1)))).add(B1(ne,yh(ee.bitAnd(Pi(2)))))}).setLayout({name:"mx_gradient_float_0",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"}]}),mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=ft(a).toVar(),te=Pi(b).toVar(),ne=Pi(te.bitAnd(Pi(15))).toVar(),ie=ft(_x(ne.lessThan(Pi(8)),ee,z)).toVar(),ae=ft(_x(ne.lessThan(Pi(4)),z,_x(ne.equal(Pi(12)).or(ne.equal(Pi(14))),ee,E))).toVar();return B1(ie,yh(ne.bitAnd(Pi(1)))).add(B1(ae,yh(ne.bitAnd(Pi(2)))))}).setLayout({name:"mx_gradient_float_1",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]})]),Mh=Vc([mn(([b,a,y])=>{const x=ft(y).toVar(),E=ft(a).toVar(),z=G0(b).toVar();return en(Sc(z.x,E,x),Sc(z.y,E,x),Sc(z.z,E,x))}).setLayout({name:"mx_gradient_vec3_0",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"}]}),mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=ft(a).toVar(),te=G0(b).toVar();return en(Sc(te.x,ee,z,E),Sc(te.y,ee,z,E),Sc(te.z,ee,z,E))}).setLayout({name:"mx_gradient_vec3_1",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]})]),xK=mn(([b])=>{const a=ft(b).toVar();return Ca(.6616,a)}).setLayout({name:"mx_gradient_scale2d_0",type:"float",inputs:[{name:"v",type:"float"}]}),bK=mn(([b])=>{const a=ft(b).toVar();return Ca(.982,a)}).setLayout({name:"mx_gradient_scale3d_0",type:"float",inputs:[{name:"v",type:"float"}]}),G7=Vc([xK,mn(([b])=>{const a=en(b).toVar();return Ca(.6616,a)}).setLayout({name:"mx_gradient_scale2d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]})]),X7=Vc([bK,mn(([b])=>{const a=en(b).toVar();return Ca(.982,a)}).setLayout({name:"mx_gradient_scale3d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]})]),Hf=mn(([b,a])=>{const y=Xt(a).toVar(),x=Pi(b).toVar();return x.shiftLeft(y).bitOr(x.shiftRight(Xt(32).sub(y)))}).setLayout({name:"mx_rotl32",type:"uint",inputs:[{name:"x",type:"uint"},{name:"k",type:"int"}]}),W7=mn(([b,a,y])=>{b.subAssign(y),b.bitXorAssign(Hf(y,Xt(4))),y.addAssign(a),a.subAssign(b),a.bitXorAssign(Hf(b,Xt(6))),b.addAssign(y),y.subAssign(a),y.bitXorAssign(Hf(a,Xt(8))),a.addAssign(b),b.subAssign(y),b.bitXorAssign(Hf(y,Xt(16))),y.addAssign(a),a.subAssign(b),a.bitXorAssign(Hf(b,Xt(19))),b.addAssign(y),y.subAssign(a),y.bitXorAssign(Hf(a,Xt(4))),a.addAssign(b)}),$x=mn(([b,a,y])=>{const x=Pi(y).toVar(),E=Pi(a).toVar(),z=Pi(b).toVar();return x.bitXorAssign(E),x.subAssign(Hf(E,Xt(14))),z.bitXorAssign(x),z.subAssign(Hf(x,Xt(11))),E.bitXorAssign(z),E.subAssign(Hf(z,Xt(25))),x.bitXorAssign(E),x.subAssign(Hf(E,Xt(16))),z.bitXorAssign(x),z.subAssign(Hf(x,Xt(4))),E.bitXorAssign(z),E.subAssign(Hf(z,Xt(14))),x.bitXorAssign(E),x.subAssign(Hf(E,Xt(24))),x}).setLayout({name:"mx_bjfinal",type:"uint",inputs:[{name:"a",type:"uint"},{name:"b",type:"uint"},{name:"c",type:"uint"}]}),nd=mn(([b])=>{const a=Pi(b).toVar();return ft(a).div(ft(Pi(Xt(4294967295))))}).setLayout({name:"mx_bits_to_01",type:"float",inputs:[{name:"bits",type:"uint"}]}),hm=mn(([b])=>{const a=ft(b).toVar();return a.mul(a).mul(a).mul(a.mul(a.mul(6).sub(15)).add(10))}).setLayout({name:"mx_fade",type:"float",inputs:[{name:"t",type:"float"}]}),Wo=Vc([mn(([b])=>{const a=Xt(b).toVar(),y=Pi(Pi(1)).toVar(),x=Pi(Pi(Xt(3735928559)).add(y.shiftLeft(Pi(2))).add(Pi(13))).toVar();return $x(x.add(Pi(a)),x,x)}).setLayout({name:"mx_hash_int_0",type:"uint",inputs:[{name:"x",type:"int"}]}),mn(([b,a])=>{const y=Xt(a).toVar(),x=Xt(b).toVar(),E=Pi(Pi(2)).toVar(),z=Pi().toVar(),ee=Pi().toVar(),te=Pi().toVar();return z.assign(ee.assign(te.assign(Pi(Xt(3735928559)).add(E.shiftLeft(Pi(2))).add(Pi(13))))),z.addAssign(Pi(x)),ee.addAssign(Pi(y)),$x(z,ee,te)}).setLayout({name:"mx_hash_int_1",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),mn(([b,a,y])=>{const x=Xt(y).toVar(),E=Xt(a).toVar(),z=Xt(b).toVar(),ee=Pi(Pi(3)).toVar(),te=Pi().toVar(),ne=Pi().toVar(),ie=Pi().toVar();return te.assign(ne.assign(ie.assign(Pi(Xt(3735928559)).add(ee.shiftLeft(Pi(2))).add(Pi(13))))),te.addAssign(Pi(z)),ne.addAssign(Pi(E)),ie.addAssign(Pi(x)),$x(te,ne,ie)}).setLayout({name:"mx_hash_int_2",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),mn(([b,a,y,x])=>{const E=Xt(x).toVar(),z=Xt(y).toVar(),ee=Xt(a).toVar(),te=Xt(b).toVar(),ne=Pi(Pi(4)).toVar(),ie=Pi().toVar(),ae=Pi().toVar(),oe=Pi().toVar();return ie.assign(ae.assign(oe.assign(Pi(Xt(3735928559)).add(ne.shiftLeft(Pi(2))).add(Pi(13))))),ie.addAssign(Pi(te)),ae.addAssign(Pi(ee)),oe.addAssign(Pi(z)),W7(ie,ae,oe),ie.addAssign(Pi(E)),$x(ie,ae,oe)}).setLayout({name:"mx_hash_int_3",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"}]}),mn(([b,a,y,x,E])=>{const z=Xt(E).toVar(),ee=Xt(x).toVar(),te=Xt(y).toVar(),ne=Xt(a).toVar(),ie=Xt(b).toVar(),ae=Pi(Pi(5)).toVar(),oe=Pi().toVar(),le=Pi().toVar(),de=Pi().toVar();return oe.assign(le.assign(de.assign(Pi(Xt(3735928559)).add(ae.shiftLeft(Pi(2))).add(Pi(13))))),oe.addAssign(Pi(ie)),le.addAssign(Pi(ne)),de.addAssign(Pi(te)),W7(oe,le,de),oe.addAssign(Pi(ee)),le.addAssign(Pi(z)),$x(oe,le,de)}).setLayout({name:"mx_hash_int_4",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"},{name:"yy",type:"int"}]})]),Dh=Vc([mn(([b,a])=>{const y=Xt(a).toVar(),x=Xt(b).toVar(),E=Pi(Wo(x,y)).toVar(),z=G0().toVar();return z.x.assign(E.bitAnd(Xt(255))),z.y.assign(E.shiftRight(Xt(8)).bitAnd(Xt(255))),z.z.assign(E.shiftRight(Xt(16)).bitAnd(Xt(255))),z}).setLayout({name:"mx_hash_vec3_0",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),mn(([b,a,y])=>{const x=Xt(y).toVar(),E=Xt(a).toVar(),z=Xt(b).toVar(),ee=Pi(Wo(z,E,x)).toVar(),te=G0().toVar();return te.x.assign(ee.bitAnd(Xt(255))),te.y.assign(ee.shiftRight(Xt(8)).bitAnd(Xt(255))),te.z.assign(ee.shiftRight(Xt(16)).bitAnd(Xt(255))),te}).setLayout({name:"mx_hash_vec3_1",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]})]),O3=Vc([mn(([b])=>{const a=Er(b).toVar(),y=Xt().toVar(),x=Xt().toVar(),E=ft(Pl(a.x,y)).toVar(),z=ft(Pl(a.y,x)).toVar(),ee=ft(hm(E)).toVar(),te=ft(hm(z)).toVar(),ne=ft(j7(Sc(Wo(y,x),E,z),Sc(Wo(y.add(Xt(1)),x),E.sub(1),z),Sc(Wo(y,x.add(Xt(1))),E,z.sub(1)),Sc(Wo(y.add(Xt(1)),x.add(Xt(1))),E.sub(1),z.sub(1)),ee,te)).toVar();return G7(ne)}).setLayout({name:"mx_perlin_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"}]}),mn(([b])=>{const a=en(b).toVar(),y=Xt().toVar(),x=Xt().toVar(),E=Xt().toVar(),z=ft(Pl(a.x,y)).toVar(),ee=ft(Pl(a.y,x)).toVar(),te=ft(Pl(a.z,E)).toVar(),ne=ft(hm(z)).toVar(),ie=ft(hm(ee)).toVar(),ae=ft(hm(te)).toVar(),oe=ft(V7(Sc(Wo(y,x,E),z,ee,te),Sc(Wo(y.add(Xt(1)),x,E),z.sub(1),ee,te),Sc(Wo(y,x.add(Xt(1)),E),z,ee.sub(1),te),Sc(Wo(y.add(Xt(1)),x.add(Xt(1)),E),z.sub(1),ee.sub(1),te),Sc(Wo(y,x,E.add(Xt(1))),z,ee,te.sub(1)),Sc(Wo(y.add(Xt(1)),x,E.add(Xt(1))),z.sub(1),ee,te.sub(1)),Sc(Wo(y,x.add(Xt(1)),E.add(Xt(1))),z,ee.sub(1),te.sub(1)),Sc(Wo(y.add(Xt(1)),x.add(Xt(1)),E.add(Xt(1))),z.sub(1),ee.sub(1),te.sub(1)),ne,ie,ae)).toVar();return X7(oe)}).setLayout({name:"mx_perlin_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"}]})]),Pb=Vc([mn(([b])=>{const a=Er(b).toVar(),y=Xt().toVar(),x=Xt().toVar(),E=ft(Pl(a.x,y)).toVar(),z=ft(Pl(a.y,x)).toVar(),ee=ft(hm(E)).toVar(),te=ft(hm(z)).toVar(),ne=en(j7(Mh(Dh(y,x),E,z),Mh(Dh(y.add(Xt(1)),x),E.sub(1),z),Mh(Dh(y,x.add(Xt(1))),E,z.sub(1)),Mh(Dh(y.add(Xt(1)),x.add(Xt(1))),E.sub(1),z.sub(1)),ee,te)).toVar();return G7(ne)}).setLayout({name:"mx_perlin_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),mn(([b])=>{const a=en(b).toVar(),y=Xt().toVar(),x=Xt().toVar(),E=Xt().toVar(),z=ft(Pl(a.x,y)).toVar(),ee=ft(Pl(a.y,x)).toVar(),te=ft(Pl(a.z,E)).toVar(),ne=ft(hm(z)).toVar(),ie=ft(hm(ee)).toVar(),ae=ft(hm(te)).toVar(),oe=en(V7(Mh(Dh(y,x,E),z,ee,te),Mh(Dh(y.add(Xt(1)),x,E),z.sub(1),ee,te),Mh(Dh(y,x.add(Xt(1)),E),z,ee.sub(1),te),Mh(Dh(y.add(Xt(1)),x.add(Xt(1)),E),z.sub(1),ee.sub(1),te),Mh(Dh(y,x,E.add(Xt(1))),z,ee,te.sub(1)),Mh(Dh(y.add(Xt(1)),x,E.add(Xt(1))),z.sub(1),ee,te.sub(1)),Mh(Dh(y,x.add(Xt(1)),E.add(Xt(1))),z,ee.sub(1),te.sub(1)),Mh(Dh(y.add(Xt(1)),x.add(Xt(1)),E.add(Xt(1))),z.sub(1),ee.sub(1),te.sub(1)),ne,ie,ae)).toVar();return X7(oe)}).setLayout({name:"mx_perlin_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"}]})]),EK=Vc([mn(([b])=>{const a=ft(b).toVar(),y=Xt(wu(a)).toVar();return nd(Wo(y))}).setLayout({name:"mx_cell_noise_float_0",type:"float",inputs:[{name:"p",type:"float"}]}),mn(([b])=>{const a=Er(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar();return nd(Wo(y,x))}).setLayout({name:"mx_cell_noise_float_1",type:"float",inputs:[{name:"p",type:"vec2"}]}),mn(([b])=>{const a=en(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar(),E=Xt(wu(a.z)).toVar();return nd(Wo(y,x,E))}).setLayout({name:"mx_cell_noise_float_2",type:"float",inputs:[{name:"p",type:"vec3"}]}),mn(([b])=>{const a=Ii(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar(),E=Xt(wu(a.z)).toVar(),z=Xt(wu(a.w)).toVar();return nd(Wo(y,x,E,z))}).setLayout({name:"mx_cell_noise_float_3",type:"float",inputs:[{name:"p",type:"vec4"}]})]),S1=Vc([mn(([b])=>{const a=ft(b).toVar(),y=Xt(wu(a)).toVar();return en(nd(Wo(y,Xt(0))),nd(Wo(y,Xt(1))),nd(Wo(y,Xt(2))))}).setLayout({name:"mx_cell_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"float"}]}),mn(([b])=>{const a=Er(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar();return en(nd(Wo(y,x,Xt(0))),nd(Wo(y,x,Xt(1))),nd(Wo(y,x,Xt(2))))}).setLayout({name:"mx_cell_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),mn(([b])=>{const a=en(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar(),E=Xt(wu(a.z)).toVar();return en(nd(Wo(y,x,E,Xt(0))),nd(Wo(y,x,E,Xt(1))),nd(Wo(y,x,E,Xt(2))))}).setLayout({name:"mx_cell_noise_vec3_2",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),mn(([b])=>{const a=Ii(b).toVar(),y=Xt(wu(a.x)).toVar(),x=Xt(wu(a.y)).toVar(),E=Xt(wu(a.z)).toVar(),z=Xt(wu(a.w)).toVar();return en(nd(Wo(y,x,E,z,Xt(0))),nd(Wo(y,x,E,z,Xt(1))),nd(Wo(y,x,E,z,Xt(2))))}).setLayout({name:"mx_cell_noise_vec3_3",type:"vec3",inputs:[{name:"p",type:"vec4"}]})]),M1=mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=Xt(a).toVar(),te=en(b).toVar(),ne=ft(0).toVar(),ie=ft(1).toVar();return Oo(ee,()=>{ne.addAssign(ie.mul(O3(te))),ie.mulAssign(E),te.mulAssign(z)}),ne}).setLayout({name:"mx_fractal_noise_float",type:"float",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),D1=mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=Xt(a).toVar(),te=en(b).toVar(),ne=en(0).toVar(),ie=ft(1).toVar();return Oo(ee,()=>{ne.addAssign(ie.mul(Pb(te))),ie.mulAssign(E),te.mulAssign(z)}),ne}).setLayout({name:"mx_fractal_noise_vec3",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),wK=mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=Xt(a).toVar(),te=en(b).toVar();return Er(M1(te,ee,z,E),M1(te.add(en(Xt(19),Xt(193),Xt(17))),ee,z,E))}).setLayout({name:"mx_fractal_noise_vec2",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),CK=mn(([b,a,y,x])=>{const E=ft(x).toVar(),z=ft(y).toVar(),ee=Xt(a).toVar(),te=en(b).toVar(),ne=en(D1(te,ee,z,E)).toVar(),ie=ft(M1(te.add(en(Xt(19),Xt(193),Xt(17))),ee,z,E)).toVar();return Ii(ne,ie)}).setLayout({name:"mx_fractal_noise_vec4",type:"vec4",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),uy=Vc([mn(([b,a,y,x,E,z,ee])=>{const te=Xt(ee).toVar(),ne=ft(z).toVar(),ie=Xt(E).toVar(),ae=Xt(x).toVar(),oe=Xt(y).toVar(),le=Xt(a).toVar(),de=Er(b).toVar(),he=en(S1(Er(le.add(ae),oe.add(ie)))).toVar(),ye=Er(he.x,he.y).toVar();ye.subAssign(.5),ye.mulAssign(ne),ye.addAssign(.5);const Ae=Er(Er(ft(le),ft(oe)).add(ye)).toVar(),me=Er(Ae.sub(de)).toVar();return ds(te.equal(Xt(2)),()=>hl(me.x).add(hl(me.y))),ds(te.equal(Xt(3)),()=>Zl(hl(me.x),hl(me.y))),tv(me,me)}).setLayout({name:"mx_worley_distance_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),mn(([b,a,y,x,E,z,ee,te,ne])=>{const ie=Xt(ne).toVar(),ae=ft(te).toVar(),oe=Xt(ee).toVar(),le=Xt(z).toVar(),de=Xt(E).toVar(),he=Xt(x).toVar(),ye=Xt(y).toVar(),Ae=Xt(a).toVar(),me=en(b).toVar(),Ce=en(S1(en(Ae.add(de),ye.add(le),he.add(oe)))).toVar();Ce.subAssign(.5),Ce.mulAssign(ae),Ce.addAssign(.5);const Ee=en(en(ft(Ae),ft(ye),ft(he)).add(Ce)).toVar(),Be=en(Ee.sub(me)).toVar();return ds(ie.equal(Xt(2)),()=>hl(Be.x).add(hl(Be.y)).add(hl(Be.z))),ds(ie.equal(Xt(3)),()=>Zl(hl(Be.x),hl(Be.y),hl(Be.z))),tv(Be,Be)}).setLayout({name:"mx_worley_distance_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"zoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),PK=mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=Er(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Er(Pl(z.x,ee),Pl(z.y,te)).toVar(),ie=ft(1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:ae})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:oe})=>{const le=ft(uy(ne,ae,oe,ee,te,E,x)).toVar();ie.assign(Kd(ie,le))})}),ds(x.equal(Xt(0)),()=>{ie.assign(sm(ie))}),ie}).setLayout({name:"mx_worley_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),BK=mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=Er(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Er(Pl(z.x,ee),Pl(z.y,te)).toVar(),ie=Er(1e6,1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:ae})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:oe})=>{const le=ft(uy(ne,ae,oe,ee,te,E,x)).toVar();ds(le.lessThan(ie.x),()=>{ie.y.assign(ie.x),ie.x.assign(le)}).ElseIf(le.lessThan(ie.y),()=>{ie.y.assign(le)})})}),ds(x.equal(Xt(0)),()=>{ie.assign(sm(ie))}),ie}).setLayout({name:"mx_worley_noise_vec2_0",type:"vec2",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),SK=mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=Er(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Er(Pl(z.x,ee),Pl(z.y,te)).toVar(),ie=en(1e6,1e6,1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:ae})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:oe})=>{const le=ft(uy(ne,ae,oe,ee,te,E,x)).toVar();ds(le.lessThan(ie.x),()=>{ie.z.assign(ie.y),ie.y.assign(ie.x),ie.x.assign(le)}).ElseIf(le.lessThan(ie.y),()=>{ie.z.assign(ie.y),ie.y.assign(le)}).ElseIf(le.lessThan(ie.z),()=>{ie.z.assign(le)})})}),ds(x.equal(Xt(0)),()=>{ie.assign(sm(ie))}),ie}).setLayout({name:"mx_worley_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),MK=Vc([PK,mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=en(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Xt().toVar(),ie=en(Pl(z.x,ee),Pl(z.y,te),Pl(z.z,ne)).toVar(),ae=ft(1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:oe})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:le})=>{Oo({start:-1,end:Xt(1),name:"z",condition:"<="},({z:de})=>{const he=ft(uy(ie,oe,le,de,ee,te,ne,E,x)).toVar();ae.assign(Kd(ae,he))})})}),ds(x.equal(Xt(0)),()=>{ae.assign(sm(ae))}),ae}).setLayout({name:"mx_worley_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),DK=Vc([BK,mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=en(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Xt().toVar(),ie=en(Pl(z.x,ee),Pl(z.y,te),Pl(z.z,ne)).toVar(),ae=Er(1e6,1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:oe})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:le})=>{Oo({start:-1,end:Xt(1),name:"z",condition:"<="},({z:de})=>{const he=ft(uy(ie,oe,le,de,ee,te,ne,E,x)).toVar();ds(he.lessThan(ae.x),()=>{ae.y.assign(ae.x),ae.x.assign(he)}).ElseIf(he.lessThan(ae.y),()=>{ae.y.assign(he)})})})}),ds(x.equal(Xt(0)),()=>{ae.assign(sm(ae))}),ae}).setLayout({name:"mx_worley_noise_vec2_1",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),R3=Vc([SK,mn(([b,a,y])=>{const x=Xt(y).toVar(),E=ft(a).toVar(),z=en(b).toVar(),ee=Xt().toVar(),te=Xt().toVar(),ne=Xt().toVar(),ie=en(Pl(z.x,ee),Pl(z.y,te),Pl(z.z,ne)).toVar(),ae=en(1e6,1e6,1e6).toVar();return Oo({start:-1,end:Xt(1),name:"x",condition:"<="},({x:oe})=>{Oo({start:-1,end:Xt(1),name:"y",condition:"<="},({y:le})=>{Oo({start:-1,end:Xt(1),name:"z",condition:"<="},({z:de})=>{const he=ft(uy(ie,oe,le,de,ee,te,ne,E,x)).toVar();ds(he.lessThan(ae.x),()=>{ae.z.assign(ae.y),ae.y.assign(ae.x),ae.x.assign(he)}).ElseIf(he.lessThan(ae.y),()=>{ae.z.assign(ae.y),ae.y.assign(he)}).ElseIf(he.lessThan(ae.z),()=>{ae.z.assign(he)})})})}),ds(x.equal(Xt(0)),()=>{ae.assign(sm(ae))}),ae}).setLayout({name:"mx_worley_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),TK=mn(([b,a,y,x,E,z,ee,te,ne,ie,ae])=>{const oe=Xt(b).toVar(),le=Er(a).toVar(),de=Er(y).toVar(),he=Er(x).toVar(),ye=ft(E).toVar(),Ae=ft(z).toVar(),me=ft(ee).toVar(),Ce=yh(te).toVar(),Ee=Xt(ne).toVar(),Be=ft(ie).toVar(),Ne=ft(ae).toVar(),Fe=le.mul(de).add(he),ke=ft(0).toVar();return ds(oe.equal(Xt(0)),()=>{ke.assign(Pb(Fe))}),ds(oe.equal(Xt(1)),()=>{ke.assign(S1(Fe))}),ds(oe.equal(Xt(2)),()=>{ke.assign(R3(Fe,ye,Xt(0)))}),ds(oe.equal(Xt(3)),()=>{ke.assign(D1(en(Fe,0),Ee,Be,Ne))}),ke.assign(ke.mul(me.sub(Ae)).add(Ae)),ds(Ce,()=>{ke.assign(bh(ke,Ae,me))}),ke}).setLayout({name:"mx_unifiednoise2d",type:"float",inputs:[{name:"noiseType",type:"int"},{name:"texcoord",type:"vec2"},{name:"freq",type:"vec2"},{name:"offset",type:"vec2"},{name:"jitter",type:"float"},{name:"outmin",type:"float"},{name:"outmax",type:"float"},{name:"clampoutput",type:"bool"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),IK=mn(([b,a,y,x,E,z,ee,te,ne,ie,ae])=>{const oe=Xt(b).toVar(),le=en(a).toVar(),de=en(y).toVar(),he=en(x).toVar(),ye=ft(E).toVar(),Ae=ft(z).toVar(),me=ft(ee).toVar(),Ce=yh(te).toVar(),Ee=Xt(ne).toVar(),Be=ft(ie).toVar(),Ne=ft(ae).toVar(),Fe=le.mul(de).add(he),ke=ft(0).toVar();return ds(oe.equal(Xt(0)),()=>{ke.assign(Pb(Fe))}),ds(oe.equal(Xt(1)),()=>{ke.assign(S1(Fe))}),ds(oe.equal(Xt(2)),()=>{ke.assign(R3(Fe,ye,Xt(0)))}),ds(oe.equal(Xt(3)),()=>{ke.assign(D1(Fe,Ee,Be,Ne))}),ke.assign(ke.mul(me.sub(Ae)).add(Ae)),ds(Ce,()=>{ke.assign(bh(ke,Ae,me))}),ke}).setLayout({name:"mx_unifiednoise3d",type:"float",inputs:[{name:"noiseType",type:"int"},{name:"position",type:"vec3"},{name:"freq",type:"vec3"},{name:"offset",type:"vec3"},{name:"jitter",type:"float"},{name:"outmin",type:"float"},{name:"outmax",type:"float"},{name:"clampoutput",type:"bool"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),FK=mn(([b])=>{const a=b.y,y=b.z,x=en().toVar();return ds(a.lessThan(1e-4),()=>{x.assign(en(y,y,y))}).Else(()=>{let E=b.x;E=E.sub(am(E)).mul(6).toVar();const z=Xt($B(E)),ee=E.sub(ft(z)),te=y.mul(a.oneMinus()),ne=y.mul(a.mul(ee).oneMinus()),ie=y.mul(a.mul(ee.oneMinus()).oneMinus());ds(z.equal(Xt(0)),()=>{x.assign(en(y,ie,te))}).ElseIf(z.equal(Xt(1)),()=>{x.assign(en(ne,y,te))}).ElseIf(z.equal(Xt(2)),()=>{x.assign(en(te,y,ie))}).ElseIf(z.equal(Xt(3)),()=>{x.assign(en(te,ne,y))}).ElseIf(z.equal(Xt(4)),()=>{x.assign(en(ie,te,y))}).Else(()=>{x.assign(en(y,te,ne))})}),x}).setLayout({name:"mx_hsvtorgb",type:"vec3",inputs:[{name:"hsv",type:"vec3"}]}),NK=mn(([b])=>{const a=en(b).toVar(),y=ft(a.x).toVar(),x=ft(a.y).toVar(),E=ft(a.z).toVar(),z=ft(Kd(y,Kd(x,E))).toVar(),ee=ft(Zl(y,Zl(x,E))).toVar(),te=ft(ee.sub(z)).toVar(),ne=ft().toVar(),ie=ft().toVar(),ae=ft().toVar();return ae.assign(ee),ds(ee.greaterThan(0),()=>{ie.assign(te.div(ee))}).Else(()=>{ie.assign(0)}),ds(ie.lessThanEqual(0),()=>{ne.assign(0)}).Else(()=>{ds(y.greaterThanEqual(ee),()=>{ne.assign(x.sub(E).div(te))}).ElseIf(x.greaterThanEqual(ee),()=>{ne.assign(Eu(2,E.sub(y).div(te)))}).Else(()=>{ne.assign(Eu(4,y.sub(x).div(te)))}),ne.mulAssign(1/6),ds(ne.lessThan(0),()=>{ne.addAssign(1)})}),en(ne,ie,ae)}).setLayout({name:"mx_rgbtohsv",type:"vec3",inputs:[{name:"c",type:"vec3"}]}),LK=mn(([b])=>{const a=en(b).toVar(),y=zB(ZB(a,en(.04045))).toVar(),x=en(a.div(12.92)).toVar(),E=en(xh(Zl(a.add(en(.055)),en(0)).div(1.055),en(2.4))).toVar();return ao(x,E,y)}).setLayout({name:"mx_srgb_texture_to_lin_rec709",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),Q7=(b,a)=>{b=ft(b),a=ft(a);const y=Er(a.dFdx(),a.dFdy()).length().mul(.7071067811865476);return Eh(b.sub(y),b.add(y),a)},Z7=(b,a,y,x)=>ao(b,a,y[x].clamp()),OK=(b,a,y=Xo())=>Z7(b,a,y,"x"),RK=(b,a,y=Xo())=>Z7(b,a,y,"y"),zK=(b,a,y,x,E=Xo())=>{const z=E.x.clamp(),ee=E.y.clamp(),te=ao(b,a,z),ne=ao(y,x,z);return ao(te,ne,ee)},Y7=(b,a,y,x,E)=>ao(b,a,Q7(y,x[E])),kK=(b,a,y,x=Xo())=>Y7(b,a,y,x,"x"),HK=(b,a,y,x=Xo())=>Y7(b,a,y,x,"y"),UK=(b=1,a=0,y=Xo())=>y.mul(b).add(a),jK=(b,a=1)=>(b=ft(b),b.abs().pow(a).mul(b.sign())),VK=(b,a=1,y=.5)=>ft(b).sub(y).mul(a).add(y),GK=(b=Xo(),a=1,y=0)=>O3(b.convert("vec2|vec3")).mul(a).add(y),XK=(b=Xo(),a=1,y=0)=>Pb(b.convert("vec2|vec3")).mul(a).add(y),WK=(b=Xo(),a=1,y=0)=>(b=b.convert("vec2|vec3"),Ii(Pb(b),O3(b.add(Er(19,73)))).mul(a).add(y)),QK=(b,a=Xo(),y=Er(1,1),x=Er(0,0),E=1,z=0,ee=1,te=!1,ne=1,ie=2,ae=.5)=>TK(b,a.convert("vec2|vec3"),y,x,E,z,ee,te,ne,ie,ae),ZK=(b,a=Xo(),y=Er(1,1),x=Er(0,0),E=1,z=0,ee=1,te=!1,ne=1,ie=2,ae=.5)=>IK(b,a.convert("vec2|vec3"),y,x,E,z,ee,te,ne,ie,ae),YK=(b=Xo(),a=1)=>MK(b.convert("vec2|vec3"),a,Xt(1)),JK=(b=Xo(),a=1)=>DK(b.convert("vec2|vec3"),a,Xt(1)),KK=(b=Xo(),a=1)=>R3(b.convert("vec2|vec3"),a,Xt(1)),qK=(b=Xo())=>EK(b.convert("vec2|vec3")),_K=(b=Xo(),a=3,y=2,x=.5,E=1)=>M1(b,Xt(a),y,x).mul(E),$K=(b=Xo(),a=3,y=2,x=.5,E=1)=>wK(b,Xt(a),y,x).mul(E),eq=(b=Xo(),a=3,y=2,x=.5,E=1)=>D1(b,Xt(a),y,x).mul(E),tq=(b=Xo(),a=3,y=2,x=.5,E=1)=>CK(b,Xt(a),y,x).mul(E),nq=(b,a=ft(0))=>Eu(b,a),rq=(b,a=ft(0))=>Za(b,a),iq=(b,a=ft(1))=>Ca(b,a),sq=(b,a=ft(1))=>Nf(b,a),aq=(b,a=ft(1))=>Px(b,a),oq=(b,a=ft(1))=>xh(b,a),lq=(b=ft(0),a=ft(1))=>kw(b,a),uq=()=>lv,cq=()=>J9,dq=(b,a=ft(1))=>Za(a,b),fq=(b,a,y,x)=>b.greaterThan(a).mix(y,x),hq=(b,a,y,x)=>b.greaterThanEqual(a).mix(y,x),pq=(b,a,y,x)=>b.equal(a).mix(y,x),mq=(b,a=null)=>{if(typeof a=="string"){const y={x:0,r:0,y:1,g:1,z:2,b:2,w:3,a:3},x=a.replace(/^out/,"").toLowerCase();if(y[x]!==void 0)return b.element(y[x])}if(typeof a=="number")return b.element(a);if(typeof a=="string"&&a.length===1){const y={x:0,r:0,y:1,g:1,z:2,b:2,w:3,a:3};if(y[a]!==void 0)return b.element(y[a])}return b},gq=(b,a=Er(.5,.5),y=Er(1,1),x=ft(0),E=Er(0,0))=>{let z=b;if(a&&(z=z.sub(a)),y&&(z=z.mul(y)),x){const ee=x.mul(Math.PI/180),te=ee.cos(),ne=ee.sin();z=Er(z.x.mul(te).sub(z.y.mul(ne)),z.x.mul(ne).add(z.y.mul(te)))}return a&&(z=z.add(a)),E&&(z=z.add(E)),z},vq=(b,a)=>{b=Er(b),a=ft(a);const y=a.mul(Math.PI/180);return Hx(b,y)},Aq=(b,a,y)=>{b=en(b),a=ft(a),y=en(y);const x=a.mul(Math.PI/180),E=y.normalize(),z=x.cos(),ee=x.sin(),te=ft(1).sub(z);return b.mul(z).add(E.cross(b).mul(ee)).add(E.mul(E.dot(b)).mul(te))},yq=(b,a)=>(b=en(b),a=ft(a),BS(b,a)),xq=mn(([b,a,y])=>{const x=ig(b).toVar(),E=Za(ft(.5).mul(a.sub(y)),zf).div(x).toVar(),z=Za(ft(-.5).mul(a.sub(y)),zf).div(x).toVar(),ee=en().toVar();ee.x=x.x.greaterThan(ft(0)).select(E.x,z.x),ee.y=x.y.greaterThan(ft(0)).select(E.y,z.y),ee.z=x.z.greaterThan(ft(0)).select(E.z,z.z);const te=Kd(ee.x,ee.y,ee.z).toVar();return zf.add(x.mul(te)).toVar().sub(y)}),J7=mn(([b,a])=>{const y=b.x,x=b.y,E=b.z;let z=a.element(0).mul(.886227);return z=z.add(a.element(1).mul(2*.511664).mul(x)),z=z.add(a.element(2).mul(2*.511664).mul(E)),z=z.add(a.element(3).mul(2*.511664).mul(y)),z=z.add(a.element(4).mul(2*.429043).mul(y).mul(x)),z=z.add(a.element(5).mul(2*.429043).mul(x).mul(E)),z=z.add(a.element(6).mul(E.mul(E).mul(.743125).sub(.247708))),z=z.add(a.element(7).mul(2*.429043).mul(y).mul(E)),z=z.add(a.element(8).mul(.429043).mul(Ca(y,y).sub(Ca(x,x)))),z});var bde=Object.freeze({__proto__:null,BRDF_GGX:QS,BRDF_Lambert:hA,BasicPointShadowFilter:R7,BasicShadowFilter:S7,Break:D4,Const:eI,Continue:kW,DFGApprox:ZS,D_GGX:e9,Discard:vI,EPSILON:w8,F_Schlick:ty,Fn:mn,INFINITY:gX,If:ds,Loop:Oo,NodeAccess:Uc,NodeShaderStage:hx,NodeType:GG,NodeUpdateType:wa,OnMaterialUpdate:WY,OnObjectUpdate:XY,PCFShadowFilter:M7,PCFSoftShadowFilter:D7,PI:Ow,PI2:vX,PointShadowFilter:z7,Return:LX,Schlick_to_F0:n9,ScriptableNodeResources:b1,ShaderNode:V0,Stack:Bw,Switch:oX,TBNViewMatrix:dA,VSMShadowFilter:T7,V_GGX_SmithCorrelated:$4,Var:$8,VarIntent:tI,abs:hl,acesFilmicToneMapping:d7,acos:KB,add:Eu,addMethodChaining:pr,addNodeElement:zX,agxToneMapping:f7,all:C8,alphaT:Iw,and:l8,anisotropy:ev,anisotropyB:lA,anisotropyT:xx,any:P8,append:dX,array:t8,arrayBuffer:uX,asin:D8,assign:n8,atan:kw,atan2:K8,atomicAdd:qJ,atomicAnd:tK,atomicFunc:fm,atomicLoad:JJ,atomicMax:$J,atomicMin:eK,atomicOr:nK,atomicStore:KJ,atomicSub:_J,atomicXor:rK,attenuationColor:GB,attenuationDistance:VB,attribute:Pd,attributeArray:YY,backgroundBlurriness:$9,backgroundIntensity:x3,backgroundRotation:e7,batch:P4,bentNormalView:ZI,billboarding:SY,bitAnd:f8,bitNot:h8,bitOr:p8,bitXor:m8,bitangentGeometry:AW,bitangentLocal:yW,bitangentView:WI,bitangentWorld:xW,bitcast:AX,blendBurn:H4,blendColor:rQ,blendDodge:U4,blendOverlay:V4,blendScreen:j4,blur:E9,bool:yh,buffer:Dx,bufferAttribute:Sx,bumpMap:BS,burn:sQ,bvec2:XT,bvec3:zB,bvec4:YT,bypass:hI,cache:Mx,call:r8,cameraFar:ug,cameraIndex:Zw,cameraNear:lg,cameraNormalMatrix:JX,cameraPosition:Ix,cameraProjectionMatrix:Of,cameraProjectionMatrixInverse:ZX,cameraViewMatrix:Rf,cameraWorldMatrix:YX,cbrt:W8,cdl:cJ,ceil:zw,checker:AK,cineonToneMapping:c7,clamp:bh,clearcoat:Mw,clearcoatNormalView:cA,clearcoatRoughness:yx,code:y1,color:VT,colorSpaceToWorking:Xw,colorToDirection:mQ,compute:fI,computeKernel:uS,computeSkinning:RW,context:jw,convert:KT,convertColorSpace:PX,convertToTexture:HY,cos:ag,cross:Uw,cubeTexture:J0,cubeTextureBase:bS,cubeToUV:Cp,dFdx:qB,dFdy:_B,dashSize:uA,debug:AI,decrement:b8,decrementBefore:y8,defaultBuildStages:MB,defaultShaderStages:IT,defined:px,degrees:S8,deltaTime:Y9,densityFog:FJ,densityFogFactor:w3,depth:jS,depthPass:mJ,determinant:R8,difference:j8,diffuseColor:xo,directPointLight:U7,directionToColor:W4,directionToFaceDirection:Z0,dispersion:XB,distance:U8,div:Nf,dodge:aQ,dot:tv,drawIndex:E4,dynamicBufferAttribute:dI,element:JT,emissive:kB,equal:QB,equals:k8,equirectUV:GS,exp:YB,exp2:W0,expression:og,faceDirection:vS,faceForward:iS,faceforward:yX,float:ft,floor:am,fog:Yx,fract:sg,frameGroup:$T,frameId:J9,frontFacing:PI,fwidth:L8,gain:dY,gapSize:Ex,getConstNodeType:jT,getCurrentStack:Pw,getDirection:x9,getDistanceAttenuation:L3,getGeometryRoughness:_4,getNormalFromDepth:jY,getParallaxCorrectNormal:xq,getRoughness:WS,getScreenPosition:UY,getShIrradianceAt:J7,getShadowMaterial:I7,getShadowRenderObjectFunction:N7,getTextureIndex:Q9,getViewPosition:ay,globalId:kJ,glsl:CJ,glslFn:PJ,grayscale:aJ,greaterThan:ZB,greaterThanEqual:o8,hash:cY,highpModelNormalViewMatrix:mS,highpModelViewMatrix:pS,hue:uJ,increment:x8,incrementBefore:A8,instance:DW,instanceIndex:iv,instancedArray:JY,instancedBufferAttribute:Ww,instancedDynamicBufferAttribute:lS,instancedMesh:C4,int:Xt,inverse:z8,inverseSqrt:JB,inversesqrt:xX,invocationLocalIndex:MW,invocationSubgroupIndex:SW,ior:wx,iridescence:Tw,iridescenceIOR:HB,iridescenceThickness:UB,ivec2:ic,ivec3:WT,ivec4:QT,js:EJ,label:_8,length:om,lengthSq:tS,lessThan:s8,lessThanEqual:a8,lightPosition:P3,lightProjectionUV:A7,lightShadowMatrix:C1,lightTargetDirection:S3,lightTargetPosition:y7,lightViewPosition:B3,lightingContext:F4,lights:aK,linearDepth:ey,linearToneMapping:l7,localId:HJ,log:Rw,log2:im,logarithmicDepthToViewZ:JW,luminance:b3,mat2:Sw,mat3:td,mat4:aA,matcapUV:L9,materialAO:x4,materialAlphaTest:JI,materialAnisotropy:u4,materialAnisotropyVector:K0,materialAttenuationColor:v4,materialAttenuationDistance:g4,materialClearcoat:r4,materialClearcoatNormal:s4,materialClearcoatRoughness:i4,materialColor:t1,materialDispersion:y4,materialEmissive:qI,materialEnvIntensity:Kw,materialEnvRotation:xS,materialIOR:m4,materialIridescence:c4,materialIridescenceIOR:d4,materialIridescenceThickness:f4,materialLightMap:FS,materialLineDashOffset:IS,materialLineDashSize:DS,materialLineGapSize:TS,materialLineScale:MS,materialLineWidth:i1,materialMetalness:t4,materialNormal:n4,materialOpacity:n1,materialPointSize:A4,materialReference:dg,materialReflectivity:r1,materialRefractionRatio:TI,materialRotation:a4,materialRoughness:e4,materialSheen:o4,materialSheenRoughness:l4,materialShininess:KI,materialSpecular:_I,materialSpecularColor:$I,materialSpecularIntensity:SS,materialSpecularStrength:Nx,materialThickness:p4,materialTransmission:h4,max:Zl,maxMipLevel:dS,mediumpModelViewMatrix:CI,metalness:Ax,min:Kd,mix:ao,mixElement:Z8,mod:Px,modInt:E8,modelDirection:tW,modelNormalMatrix:wI,modelPosition:nW,modelRadius:EI,modelScale:rW,modelViewMatrix:cg,modelViewPosition:iW,modelViewProjection:NS,modelWorldMatrix:Ph,modelWorldMatrixInverse:sW,morphReference:I4,mrt:Z9,mul:Ca,mx_aastep:Q7,mx_add:nq,mx_atan2:lq,mx_cell_noise_float:qK,mx_contrast:VK,mx_divide:sq,mx_fractal_noise_float:_K,mx_fractal_noise_vec2:$K,mx_fractal_noise_vec3:eq,mx_fractal_noise_vec4:tq,mx_frame:cq,mx_heighttonormal:yq,mx_hsvtorgb:FK,mx_ifequal:pq,mx_ifgreater:fq,mx_ifgreatereq:hq,mx_invert:dq,mx_modulo:aq,mx_multiply:iq,mx_noise_float:GK,mx_noise_vec3:XK,mx_noise_vec4:WK,mx_place2d:gq,mx_power:oq,mx_ramp4:zK,mx_ramplr:OK,mx_ramptb:RK,mx_rgbtohsv:NK,mx_rotate2d:vq,mx_rotate3d:Aq,mx_safepower:jK,mx_separate:mq,mx_splitlr:kK,mx_splittb:HK,mx_srgb_texture_to_lin_rec709:LK,mx_subtract:rq,mx_timer:uq,mx_transform_uv:UK,mx_unifiednoise2d:QK,mx_unifiednoise3d:ZK,mx_worley_noise_float:YK,mx_worley_noise_vec2:JK,mx_worley_noise_vec3:KK,negate:T8,neutralToneMapping:h7,nodeArray:sA,nodeImmutable:ui,nodeObject:gr,nodeObjectIntent:mx,nodeObjects:gx,nodeProxy:oa,nodeProxyIntent:Gi,normalFlat:BI,normalGeometry:Jw,normalLocal:qd,normalMap:PS,normalView:Lo,normalViewGeometry:Y0,normalWorld:rv,normalWorldGeometry:SI,normalize:ig,not:c8,notEqual:i8,numWorkgroups:RJ,objectDirection:KX,objectGroup:WB,objectPosition:bI,objectRadius:eW,objectScale:_X,objectViewPosition:$X,objectWorldMatrix:qX,oneMinus:I8,or:u8,orthographicDepthToViewZ:YW,oscSawtooth:CY,oscSine:bY,oscSquare:EY,oscTriangle:wY,output:X0,outputStruct:lY,overlay:lQ,overloadingFn:Vc,parabola:m3,parallaxDirection:QI,parallaxUV:bW,parameter:nY,pass:hJ,passTexture:pJ,pcurve:fY,perspectiveDepthToViewZ:HS,pmremTexture:f3,pointShadow:H7,pointUV:qY,pointWidth:fX,positionGeometry:jc,positionLocal:su,positionPrevious:Yw,positionView:au,positionViewDirection:yl,positionWorld:zf,positionWorldDirection:gS,posterize:fJ,pow:xh,pow2:eS,pow3:V8,pow4:G8,premultiplyAlpha:G4,property:Ep,radians:B8,rand:Q8,range:LJ,rangeFog:IJ,rangeFogFactor:E3,reciprocal:N8,reference:rl,referenceBuffer:ES,reflect:H8,reflectVector:NI,reflectView:II,reflector:LY,refract:rS,refractVector:LI,refractView:FI,reinhardToneMapping:u7,remap:mI,remapClamp:gI,renderGroup:Zs,renderOutput:cS,rendererReference:lI,rotate:Hx,rotateUV:PY,roughness:rm,round:F8,rtt:q9,sRGBTransferEOTF:iI,sRGBTransferOETF:sI,sample:GY,sampler:VX,samplerComparison:GX,saturate:nS,saturation:oJ,screen:oQ,screenCoordinate:zx,screenSize:Rx,screenUV:fg,scriptable:TJ,scriptableValue:x1,select:Bc,setCurrentStack:vx,setName:sS,shaderStages:DB,shadow:O7,shadowPositionWorld:T3,shapeCircle:yK,sharedUniformGroup:Lw,sheen:oA,sheenRoughness:Dw,shiftLeft:g8,shiftRight:v8,shininess:Fw,sign:Bx,sin:Lf,sinc:hY,skinning:M4,smoothstep:Eh,smoothstepElement:Y8,specularColor:Jd,specularF90:bx,spherizeUV:BY,split:cX,spritesheetUV:TY,sqrt:sm,stack:f1,step:Hw,stepElement:J8,storage:fA,storageBarrier:GJ,storageObject:OW,storageTexture:t7,string:lX,struct:oY,sub:Za,subBuild:Q0,subgroupIndex:BW,subgroupSize:UJ,tan:M8,tangentGeometry:_w,tangentLocal:Fx,tangentView:$w,tangentWorld:XI,temp:nI,texture:Xa,texture3D:n7,textureBarrier:XJ,textureBicubic:kQ,textureBicubicLevel:KS,textureCubeUV:b9,textureLoad:iu,textureSize:nv,textureStore:$Y,thickness:jB,time:lv,timerDelta:xY,timerGlobal:yY,timerLocal:AY,toneMapping:uI,toneMappingExposure:cI,toonOutlinePass:vJ,transformDirection:X8,transformNormal:MI,transformNormalToView:AS,transformedClearcoatNormalView:uW,transformedNormalView:oW,transformedNormalWorld:lW,transmission:Nw,transpose:O8,triNoise3D:mY,triplanarTexture:IY,triplanarTextures:K9,trunc:$B,uint:Pi,uniform:bs,uniformArray:wh,uniformCubeTexture:dW,uniformGroup:_T,uniformTexture:jX,unpremultiplyAlpha:iQ,userData:rJ,uv:Xo,uvec2:GT,uvec3:G0,uvec4:ZT,varying:lm,varyingProperty:Ff,vec2:Er,vec3:en,vec4:Ii,vectorComponents:nA,velocity:sJ,vertexColor:k4,vertexIndex:b4,vertexStage:rI,vibrance:lJ,viewZToLogarithmicDepth:US,viewZToOrthographicDepth:$0,viewZToPerspectiveDepth:kS,viewport:hg,viewportCoordinate:L4,viewportDepthTexture:zS,viewportLinearDepth:KW,viewportMipTexture:OS,viewportResolution:WW,viewportSafeUV:MY,viewportSharedTexture:X4,viewportSize:N4,viewportTexture:QW,viewportUV:XW,wgsl:wJ,wgslFn:BJ,workgroupArray:ZJ,workgroupBarrier:VJ,workgroupId:zJ,workingToColorSpace:aI,xor:d8});const Pp=new p3;class bq extends av{constructor(a,y){super(),this.renderer=a,this.nodes=y}update(a,y,x){const E=this.renderer,z=this.nodes.getBackgroundNode(a)||a.background;let ee=!1;if(z===null)E._clearColor.getRGB(Pp),Pp.a=E._clearColor.a;else if(z.isColor===!0)z.getRGB(Pp),Pp.a=1,ee=!0;else if(z.isNode===!0){const ne=this.get(a),ie=z;Pp.copy(E._clearColor);let ae=ne.backgroundMesh;if(ae===void 0){let ye=function(){z.removeEventListener("dispose",ye),ae.material.dispose(),ae.geometry.dispose()};const le=jw(Ii(ie).mul(x3),{getUV:()=>e7.mul(SI),getTextureLevel:()=>$9});let de=NS;de=de.setZ(de.w);const he=new Yl;he.name="Background.material",he.side=co,he.depthTest=!1,he.depthWrite=!1,he.allowOverride=!1,he.fog=!1,he.lights=!1,he.vertexNode=de,he.colorNode=le,ne.backgroundMeshNode=le,ne.backgroundMesh=ae=new Fo(new mp(1,32,32),he),ae.frustumCulled=!1,ae.name="Background.mesh",ae.onBeforeRender=function(Ae,me,Ce){this.matrixWorld.copyPosition(Ce.matrixWorld)},z.addEventListener("dispose",ye)}const oe=ie.getCacheKey();ne.backgroundCacheKey!==oe&&(ne.backgroundMeshNode.node=Ii(ie).mul(x3),ne.backgroundMeshNode.needsUpdate=!0,ae.material.needsUpdate=!0,ne.backgroundCacheKey=oe),y.unshift(ae,ae.geometry,ae.material,0,0,null,null)}else console.error("THREE.Renderer: Unsupported background configuration.",z);const te=E.xr.getEnvironmentBlendMode();if(te==="additive"?Pp.set(0,0,0,1):te==="alpha-blend"&&Pp.set(0,0,0,0),E.autoClear===!0||ee===!0){const ne=x.clearColorValue;ne.r=Pp.r,ne.g=Pp.g,ne.b=Pp.b,ne.a=Pp.a,(E.backend.isWebGLBackend===!0||E.alpha===!0)&&(ne.r*=ne.a,ne.g*=ne.a,ne.b*=ne.a),x.depthClearValue=E._clearDepth,x.stencilClearValue=E._clearStencil,x.clearColor=E.autoClearColor===!0,x.clearDepth=E.autoClearDepth===!0,x.clearStencil=E.autoClearStencil===!0}else x.clearColor=!1,x.clearDepth=!1,x.clearStencil=!1}}let Eq=0;class z3{constructor(a="",y=[],x=0,E=[]){this.name=a,this.bindings=y,this.index=x,this.bindingsReference=E,this.id=Eq++}}class wq{constructor(a,y,x,E,z,ee,te,ne,ie,ae=[]){this.vertexShader=a,this.fragmentShader=y,this.computeShader=x,this.transforms=ae,this.nodeAttributes=E,this.bindings=z,this.updateNodes=ee,this.updateBeforeNodes=te,this.updateAfterNodes=ne,this.observer=ie,this.usedTimes=0}createBindings(){const a=[];for(const y of this.bindings)if(y.bindings[0].groupNode.shared!==!0){const E=new z3(y.name,[],y.index,y);a.push(E);for(const z of y.bindings)E.bindings.push(z.clone())}else a.push(y);return a}}class K7{constructor(a,y,x=null){this.isNodeAttribute=!0,this.name=a,this.type=y,this.node=x}}class Cq{constructor(a,y,x){this.isNodeUniform=!0,this.name=a,this.type=y,this.node=x.getSelf()}get value(){return this.node.value}set value(a){this.node.value=a}get id(){return this.node.id}get groupNode(){return this.node.groupNode}}class q7{constructor(a,y,x=!1,E=null){this.isNodeVar=!0,this.name=a,this.type=y,this.readOnly=x,this.count=E}}class Pq extends q7{constructor(a,y,x=null,E=null){super(a,y),this.needsInterpolation=!1,this.isNodeVarying=!0,this.interpolationType=x,this.interpolationSampling=E}}class Bq{constructor(a,y,x=""){this.name=a,this.type=y,this.code=x,Object.defineProperty(this,"isNodeCode",{value:!0})}}let Sq=0;class k3{constructor(a=null){this.id=Sq++,this.nodesData=new WeakMap,this.parent=a}getData(a){let y=this.nodesData.get(a);return y===void 0&&this.parent!==null&&(y=this.parent.getData(a)),y}setData(a,y){this.nodesData.set(a,y)}}class Mq{constructor(a,y){this.name=a,this.members=y,this.output=!1}}class cv{constructor(a,y){this.name=a,this.value=y,this.boundary=0,this.itemSize=0,this.offset=0}setValue(a){this.value=a}getValue(){return this.value}}class Dq extends cv{constructor(a,y=0){super(a,y),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}}class Tq extends cv{constructor(a,y=new tr){super(a,y),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}}class Iq extends cv{constructor(a,y=new ot){super(a,y),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}}class Fq extends cv{constructor(a,y=new Ws){super(a,y),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}}class Nq extends cv{constructor(a,y=new xi){super(a,y),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}}class Lq extends cv{constructor(a,y=new ew){super(a,y),this.isMatrix2Uniform=!0,this.boundary=8,this.itemSize=4}}class Oq extends cv{constructor(a,y=new Aa){super(a,y),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}}class Rq extends cv{constructor(a,y=new ls){super(a,y),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}}class zq extends Dq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class kq extends Tq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Hq extends Iq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Uq extends Fq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class jq extends Nq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Vq extends Lq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Gq extends Oq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Xq extends Rq{constructor(a){super(a.name,a.value),this.nodeUniform=a}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}const _7=new WeakMap,Wq=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),T1=b=>/e/g.test(b)?String(b).replace(/\+/g,""):(b=Number(b),b+(b%1?"":".0"));class $7{constructor(a,y,x){this.object=a,this.material=a&&a.material||null,this.geometry=a&&a.geometry||null,this.renderer=y,this.parser=x,this.scene=null,this.camera=null,this.nodes=[],this.sequentialNodes=[],this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.observer=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.declarations={},this.flow={code:""},this.chaining=[],this.stack=f1(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new k3,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null,this.subBuildLayers=[],this.currentStack=null,this.subBuildFn=null}getBindGroupsCache(){let a=_7.get(this.renderer);return a===void 0&&(a=new wp,_7.set(this.renderer,a)),a}createRenderTarget(a,y,x){return new Xm(a,y,x)}createCubeRenderTarget(a,y){return new Q4(a,y)}includes(a){return this.nodes.includes(a)}getOutputStructName(){}_getBindGroup(a,y){const x=this.getBindGroupsCache(),E=[];let z=!0;for(const te of y)E.push(te),z=z&&te.groupNode.shared!==!0;let ee;return z?(ee=x.get(E),ee===void 0&&(ee=new z3(a,E,this.bindingsIndexes[a].group,E),x.set(E,ee))):ee=new z3(a,E,this.bindingsIndexes[a].group,E),ee}getBindGroupArray(a,y){const x=this.bindings[y];let E=x[a];return E===void 0&&(this.bindingsIndexes[a]===void 0&&(this.bindingsIndexes[a]={binding:0,group:Object.keys(this.bindingsIndexes).length}),x[a]=E=[]),E}getBindings(){let a=this.bindGroups;if(a===null){const y={},x=this.bindings;for(const E of DB)for(const z in x[E]){const ee=x[E][z];(y[z]||(y[z]=[])).push(...ee)}a=[];for(const E in y){const z=y[E],ee=this._getBindGroup(E,z);a.push(ee)}this.bindGroups=a}return a}sortBindingGroups(){const a=this.getBindings();a.sort((y,x)=>y.bindings[0].groupNode.order-x.bindings[0].groupNode.order);for(let y=0;y=0?`${Math.round(y)}u`:"0u";if(a==="bool")return y?"true":"false";if(a==="color")return`${this.getType("vec3")}( ${T1(y.r)}, ${T1(y.g)}, ${T1(y.b)} )`;const x=this.getTypeLength(a),E=this.getComponentType(a),z=ee=>this.generateConst(E,ee);if(x===2)return`${this.getType(a)}( ${z(y.x)}, ${z(y.y)} )`;if(x===3)return`${this.getType(a)}( ${z(y.x)}, ${z(y.y)}, ${z(y.z)} )`;if(x===4&&a!=="mat2")return`${this.getType(a)}( ${z(y.x)}, ${z(y.y)}, ${z(y.z)}, ${z(y.w)} )`;if(x>=4&&y&&(y.isMatrix2||y.isMatrix3||y.isMatrix4))return`${this.getType(a)}( ${y.elements.map(z).join(", ")} )`;if(x>4)return`${this.getType(a)}()`;throw new Error(`NodeBuilder: Type '${a}' not found in generate constant attempt.`)}getType(a){return a==="color"?"vec3":a}hasGeometryAttribute(a){return this.geometry&&this.geometry.getAttribute(a)!==void 0}getAttribute(a,y){const x=this.attributes;for(const z of x)if(z.name===a)return z;const E=new K7(a,y);return this.registerDeclaration(E),x.push(E),E}getPropertyName(a){return a.name}isVector(a){return/vec\d/.test(a)}isMatrix(a){return/mat\d/.test(a)}isReference(a){return a==="void"||a==="property"||a==="sampler"||a==="samplerComparison"||a==="texture"||a==="cubeTexture"||a==="storageTexture"||a==="depthTexture"||a==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(a){const y=a.type;if(a.isDataTexture){if(y===Vl)return"int";if(y===Ao)return"uint"}return"float"}getElementType(a){return a==="mat2"?"vec2":a==="mat3"?"vec3":a==="mat4"?"vec4":this.getComponentType(a)}getComponentType(a){if(a=this.getVectorType(a),a==="float"||a==="bool"||a==="int"||a==="uint")return a;const y=/(b|i|u|)(vec|mat)([2-4])/.exec(a);return y===null?null:y[1]==="b"?"bool":y[1]==="i"?"int":y[1]==="u"?"uint":"float"}getVectorType(a){return a==="color"?"vec3":a==="texture"||a==="cubeTexture"||a==="storageTexture"||a==="texture3D"?"vec4":a}getTypeFromLength(a,y="float"){if(a===1)return y;let x=EB(a);const E=y==="float"?"":y[0];return/mat2/.test(y)===!0&&(x=x.replace("vec","mat")),E+x}getTypeFromArray(a){return Wq.get(a.constructor)}isInteger(a){return/int|uint|(i|u)vec/.test(a)}getTypeFromAttribute(a){let y=a;a.isInterleavedBufferAttribute&&(y=a.data);const x=y.array,E=a.itemSize,z=a.normalized;let ee;return!(a instanceof g5)&&z!==!0&&(ee=this.getTypeFromArray(x)),this.getTypeFromLength(E,ee)}getTypeLength(a){const y=this.getVectorType(a),x=/vec([2-4])/.exec(y);return x!==null?Number(x[1]):y==="float"||y==="bool"||y==="int"||y==="uint"?1:/mat2/.test(a)===!0?4:/mat3/.test(a)===!0?9:/mat4/.test(a)===!0?16:0}getVectorFromMatrix(a){return a.replace("mat","vec")}changeComponentType(a,y){return this.getTypeFromLength(this.getTypeLength(a),y)}getIntegerType(a){const y=this.getComponentType(a);return y==="int"||y==="uint"?a:this.changeComponentType(a,"int")}addStack(){return this.stack=f1(this.stack),this.stacks.push(Pw()||this.stack),vx(this.stack),this.stack}removeStack(){const a=this.stack;return this.stack=a.parent,vx(this.stacks.pop()),a}getDataFromNode(a,y=this.shaderStage,x=null){x=x===null?a.isGlobal(this)?this.globalCache:this.cache:x;let E=x.getData(a);E===void 0&&(E={},x.setData(a,E)),E[y]===void 0&&(E[y]={});let z=E[y];const ee=E.any?E.any.subBuilds:null,te=this.getClosestSubBuild(ee);return te&&(z.subBuildsCache===void 0&&(z.subBuildsCache={}),z=z.subBuildsCache[te]||(z.subBuildsCache[te]={}),z.subBuilds=ee),z}getNodeProperties(a,y="any"){const x=this.getDataFromNode(a,y);return x.properties||(x.properties={outputNode:null})}getBufferAttributeFromNode(a,y){const x=this.getDataFromNode(a);let E=x.bufferAttribute;if(E===void 0){const z=this.uniforms.index++;E=new K7("nodeAttribute"+z,y,a),this.bufferAttributes.push(E),x.bufferAttribute=E}return E}getStructTypeFromNode(a,y,x=null,E=this.shaderStage){const z=this.getDataFromNode(a,E,this.globalCache);let ee=z.structType;if(ee===void 0){const te=this.structs.index++;x===null&&(x="StructType"+te),ee=new Mq(x,y),this.structs[E].push(ee),z.structType=ee}return ee}getOutputStructTypeFromNode(a,y){const x=this.getStructTypeFromNode(a,y,"OutputType","fragment");return x.output=!0,x}getUniformFromNode(a,y,x=this.shaderStage,E=null){const z=this.getDataFromNode(a,x,this.globalCache);let ee=z.uniform;if(ee===void 0){const te=this.uniforms.index++;ee=new Cq(E||"nodeUniform"+te,y,a),this.uniforms[x].push(ee),this.registerDeclaration(ee),z.uniform=ee}return ee}getVarFromNode(a,y=null,x=a.getNodeType(this),E=this.shaderStage,z=!1){const ee=this.getDataFromNode(a,E),te=this.getSubBuildProperty("variable",ee.subBuilds);let ne=ee[te];if(ne===void 0){const ie=z?"_const":"_var",ae=this.vars[E]||(this.vars[E]=[]),oe=this.vars[ie]||(this.vars[ie]=0);y===null&&(y=(z?"nodeConst":"nodeVar")+oe,this.vars[ie]++),te!=="variable"&&(y=this.getSubBuildProperty(y,ee.subBuilds));const le=a.getArrayCount(this);ne=new q7(y,x,z,le),z||ae.push(ne),this.registerDeclaration(ne),ee[te]=ne}return ne}isDeterministic(a){if(a.isMathNode)return this.isDeterministic(a.aNode)&&(a.bNode?this.isDeterministic(a.bNode):!0)&&(a.cNode?this.isDeterministic(a.cNode):!0);if(a.isOperatorNode)return this.isDeterministic(a.aNode)&&(a.bNode?this.isDeterministic(a.bNode):!0);if(a.isArrayNode){if(a.values!==null){for(const y of a.values)if(!this.isDeterministic(y))return!1}return!0}else if(a.isConstNode)return!0;return!1}getVaryingFromNode(a,y=null,x=a.getNodeType(this),E=null,z=null){const ee=this.getDataFromNode(a,"any"),te=this.getSubBuildProperty("varying",ee.subBuilds);let ne=ee[te];if(ne===void 0){const ie=this.varyings,ae=ie.length;y===null&&(y="nodeVarying"+ae),te!=="varying"&&(y=this.getSubBuildProperty(y,ee.subBuilds)),ne=new Pq(y,x,E,z),ie.push(ne),this.registerDeclaration(ne),ee[te]=ne}return ne}registerDeclaration(a){const y=this.shaderStage,x=this.declarations[y]||(this.declarations[y]={}),E=this.getPropertyName(a);let z=1,ee=E;for(;x[ee]!==void 0;)ee=E+"_"+z++;z>1&&(a.name=ee,console.warn(`THREE.TSL: Declaration name '${E}' of '${a.type}' already in use. Renamed to '${ee}'.`)),x[ee]=a}getCodeFromNode(a,y,x=this.shaderStage){const E=this.getDataFromNode(a);let z=E.code;if(z===void 0){const ee=this.codes[x]||(this.codes[x]=[]),te=ee.length;z=new Bq("nodeCode"+te,y),ee.push(z),E.code=z}return z}addFlowCodeHierarchy(a,y){const{flowCodes:x,flowCodeBlock:E}=this.getDataFromNode(a);let z=!0,ee=y;for(;ee;){if(E.get(ee)===!0){z=!1;break}ee=this.getDataFromNode(ee).parentNodeBlock}if(z)for(const te of x)this.addLineFlowCode(te)}addLineFlowCodeBlock(a,y,x){const E=this.getDataFromNode(a),z=E.flowCodes||(E.flowCodes=[]),ee=E.flowCodeBlock||(E.flowCodeBlock=new WeakMap);z.push(y),ee.set(x,!0)}addLineFlowCode(a,y=null){return a===""?this:(y!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(y,a,this.context.nodeBlock),a=this.tab+a,/;\s*$/.test(a)||(a=a+`; `),this.flow.code+=a,this)}addFlowCode(a){return this.flow.code+=a,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(a){return this.flowsData.get(a)}flowNode(a){const y=a.getNodeType(this),x=this.flowChildNode(a,y);return this.flowsData.set(a,x),x}addInclude(a){this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(a)}buildFunctionNode(a){const y=new p7,x=this.currentFunctionNode;return this.currentFunctionNode=y,y.code=this.buildFunctionCode(a),this.currentFunctionNode=x,y}flowShaderNode(a){const y=a.layout,x={[Symbol.iterator](){let ee=0;const te=Object.values(this);return{next:()=>({value:te[ee],done:ee++>=te.length})}}};for(const ee of y.inputs)x[ee.name]=new X9(ee.type,ee.name);a.layout=null;const E=a.call(x),z=this.flowStagesNode(E,y.type);return a.layout=y,z}flowBuildStage(a,y,x=null){const E=this.getBuildStage();this.setBuildStage(y);const z=a.build(this,x);return this.setBuildStage(E),z}flowStagesNode(a,y=null){const x=this.flow,E=this.vars,z=this.declarations,ee=this.cache,te=this.buildStage,ne=this.stack,ie={code:""};this.flow=ie,this.vars={},this.declarations={},this.cache=new k3,this.stack=f1();for(const ae of MB)this.setBuildStage(ae),ie.result=a.build(this,y);return ie.vars=this.getVars(this.shaderStage),this.flow=x,this.vars=E,this.declarations=z,this.cache=ee,this.stack=ne,this.setBuildStage(te),ie}getFunctionOperator(){return null}buildFunctionCode(){console.warn("Abstract function.")}flowChildNode(a,y=null){const x=this.flow,E={code:""};return this.flow=E,E.result=a.build(this,y),this.flow=x,E}flowNodeFromShaderStage(a,y,x=null,E=null){const z=this.tab,ee=this.cache,te=this.shaderStage,ne=this.context;this.setShaderStage(a);const ie=Dl({},this.context);delete ie.nodeBlock,this.cache=this.globalCache,this.tab=" ",this.context=ie;let ae=null;if(this.buildStage==="generate"){const oe=this.flowChildNode(y,x);E!==null&&(oe.code+=`${this.tab+E} = ${oe.result}; `),this.flowCode[a]=this.flowCode[a]+oe.code,ae=oe}else ae=y.build(this);return this.setShaderStage(te),this.cache=ee,this.tab=z,this.context=ne,ae}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){console.warn("Abstract function.")}getVaryings(){console.warn("Abstract function.")}getVar(a,y,x=null){return`${x!==null?this.generateArrayDeclaration(a,x):this.getType(a)} ${y}`}getVars(a){let y="";const x=this.vars[a];if(x!==void 0)for(const E of x)y+=`${this.getVar(E.type,E.name)}; `;return y}getUniforms(){console.warn("Abstract function.")}getCodes(a){const y=this.codes[a];let x="";if(y!==void 0)for(const E of y)x+=E.code+` `;return x}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(a){this.shaderStage=a}getShaderStage(){return this.shaderStage}setBuildStage(a){this.buildStage=a}getBuildStage(){return this.buildStage}buildCode(){console.warn("Abstract function.")}get subBuild(){return this.subBuildLayers[this.subBuildLayers.length-1]||null}addSubBuild(a){this.subBuildLayers.push(a)}removeSubBuild(){return this.subBuildLayers.pop()}getClosestSubBuild(a){let y;if(a&&a.isNode?a.isShaderCallNodeInternal?y=a.shaderNode.subBuilds:a.isStackNode?y=[a.subBuild]:y=this.getDataFromNode(a,"any").subBuilds:a instanceof Set?y=[...a]:y=a,!y)return null;const x=this.subBuildLayers;for(let E=y.length-1;E>=0;E--){const z=y[E];if(x.includes(z))return z}return null}getSubBuildOutput(a){return this.getSubBuildProperty("outputNode",a)}getSubBuildProperty(a="",y=null){let x;y!==null?x=this.getClosestSubBuild(y):x=this.subBuildFn;let E;return x?E=a?x+"_"+a:x:E=a,E}build(){const{object:a,material:y,renderer:x}=this;if(y!==null){let E=x.library.fromMaterial(y);E===null&&(console.error(`NodeMaterial: Material "${y.type}" is not compatible.`),E=new Yl),E.build(this)}else this.addFlow("compute",a);for(const E of MB){this.setBuildStage(E),this.context.vertex&&this.context.vertex.isNode&&this.flowNodeFromShaderStage("vertex",this.context.vertex);for(const z of DB){this.setShaderStage(z);const ee=this.flowNodes[z];for(const te of ee)E==="generate"?this.flowNode(te):te.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getNodeUniform(a,y){if(y==="float"||y==="int"||y==="uint")return new zq(a);if(y==="vec2"||y==="ivec2"||y==="uvec2")return new kq(a);if(y==="vec3"||y==="ivec3"||y==="uvec3")return new Hq(a);if(y==="vec4"||y==="ivec4"||y==="uvec4")return new Uq(a);if(y==="color")return new jq(a);if(y==="mat2")return new Vq(a);if(y==="mat3")return new Gq(a);if(y==="mat4")return new Xq(a);throw new Error(`Uniform "${y}" not declared.`)}format(a,y,x){if(y=this.getVectorType(y),x=this.getVectorType(x),y===x||x===null||this.isReference(x))return a;const E=this.getTypeLength(y),z=this.getTypeLength(x);return E===16&&z===9?`${this.getType(x)}( ${a}[ 0 ].xyz, ${a}[ 1 ].xyz, ${a}[ 2 ].xyz )`:E===9&&z===4?`${this.getType(x)}( ${a}[ 0 ].xy, ${a}[ 1 ].xy )`:E>4||z>4||z===0?a:E===z?`${this.getType(x)}( ${a} )`:E>z?(a=x==="bool"?`all( ${a} )`:`${a}.${"xyz".slice(0,z)}`,this.format(a,this.getTypeFromLength(z,this.getComponentType(y)),x)):z===4&&E>1?`${this.getType(x)}( ${this.format(a,y,"vec3")}, 1.0 )`:E===2?`${this.getType(x)}( ${this.format(a,y,"vec2")}, 0.0 )`:(E===1&&z>1&&y!==this.getComponentType(x)&&(a=`${this.getType(this.getComponentType(x))}( ${a} )`),`${this.getType(x)}( ${a} )`)}getSignature(){return`// Three.js r${pd} - Node System `}*[Symbol.iterator](){}}class eF{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(a,y){let x=a.get(y);return x===void 0&&(x={renderMap:new WeakMap,frameMap:new WeakMap},a.set(y,x)),x}updateBeforeNode(a){const y=a.getUpdateBeforeType(),x=a.updateReference(this);if(y===wa.FRAME){const{frameMap:E}=this._getMaps(this.updateBeforeMap,x);E.get(x)!==this.frameId&&a.updateBefore(this)!==!1&&E.set(x,this.frameId)}else if(y===wa.RENDER){const{renderMap:E}=this._getMaps(this.updateBeforeMap,x);E.get(x)!==this.renderId&&a.updateBefore(this)!==!1&&E.set(x,this.renderId)}else y===wa.OBJECT&&a.updateBefore(this)}updateAfterNode(a){const y=a.getUpdateAfterType(),x=a.updateReference(this);if(y===wa.FRAME){const{frameMap:E}=this._getMaps(this.updateAfterMap,x);E.get(x)!==this.frameId&&a.updateAfter(this)!==!1&&E.set(x,this.frameId)}else if(y===wa.RENDER){const{renderMap:E}=this._getMaps(this.updateAfterMap,x);E.get(x)!==this.renderId&&a.updateAfter(this)!==!1&&E.set(x,this.renderId)}else y===wa.OBJECT&&a.updateAfter(this)}updateNode(a){const y=a.getUpdateType(),x=a.updateReference(this);if(y===wa.FRAME){const{frameMap:E}=this._getMaps(this.updateMap,x);E.get(x)!==this.frameId&&a.update(this)!==!1&&E.set(x,this.frameId)}else if(y===wa.RENDER){const{renderMap:E}=this._getMaps(this.updateMap,x);E.get(x)!==this.renderId&&a.update(this)!==!1&&E.set(x,this.renderId)}else y===wa.OBJECT&&a.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}}class H3{constructor(a,y,x=null,E="",z=!1){this.type=a,this.name=y,this.count=x,this.qualifier=E,this.isConst=z}}H3.isNodeFunctionInput=!0;class Qq extends xA{static get type(){return"DirectionalLightNode"}constructor(a=null){super(a)}setupDirect(){const a=this.colorNode;return{lightDirection:S3(this.light),lightColor:a}}}const U3=new ls,I1=new ls;let Sb=null;class Zq extends xA{static get type(){return"RectAreaLightNode"}constructor(a=null){super(a),this.halfHeight=bs(new ot).setGroup(Zs),this.halfWidth=bs(new ot).setGroup(Zs),this.updateType=wa.RENDER}update(a){super.update(a);const{light:y}=this,x=a.camera.matrixWorldInverse;I1.identity(),U3.copy(y.matrixWorld),U3.premultiply(x),I1.extractRotation(U3),this.halfWidth.value.set(y.width*.5,0,0),this.halfHeight.value.set(0,y.height*.5,0),this.halfWidth.value.applyMatrix4(I1),this.halfHeight.value.applyMatrix4(I1)}setupDirectRectArea(a){let y,x;a.isAvailable("float32Filterable")?(y=Xa(Sb.LTC_FLOAT_1),x=Xa(Sb.LTC_FLOAT_2)):(y=Xa(Sb.LTC_HALF_1),x=Xa(Sb.LTC_HALF_2));const{colorNode:E,light:z}=this,ee=B3(z);return{lightColor:E,lightPosition:ee,halfWidth:this.halfWidth,halfHeight:this.halfHeight,ltc_1:y,ltc_2:x}}static setLTC(a){Sb=a}}class j3 extends xA{static get type(){return"SpotLightNode"}constructor(a=null){super(a),this.coneCosNode=bs(0).setGroup(Zs),this.penumbraCosNode=bs(0).setGroup(Zs),this.cutoffDistanceNode=bs(0).setGroup(Zs),this.decayExponentNode=bs(0).setGroup(Zs),this.colorNode=bs(this.color).setGroup(Zs)}update(a){super.update(a);const{light:y}=this;this.coneCosNode.value=Math.cos(y.angle),this.penumbraCosNode.value=Math.cos(y.angle*(1-y.penumbra)),this.cutoffDistanceNode.value=y.distance,this.decayExponentNode.value=y.decay}getSpotAttenuation(a,y){const{coneCosNode:x,penumbraCosNode:E}=this;return Eh(x,E,y)}getLightCoord(a){const y=a.getNodeProperties(this);let x=y.projectionUV;return x===void 0&&(x=A7(this.light,a.context.positionWorld),y.projectionUV=x),x}setupDirect(a){const{colorNode:y,cutoffDistanceNode:x,decayExponentNode:E,light:z}=this,ee=this.getLightVector(a),te=ee.normalize(),ne=te.dot(S3(z)),ie=this.getSpotAttenuation(a,ne),ae=ee.length(),oe=L3({lightDistance:ae,cutoffDistance:x,decayExponent:E});let le=y.mul(ie).mul(oe),de,he;return z.colorNode?(he=this.getLightCoord(a),de=z.colorNode(he)):z.map&&(he=this.getLightCoord(a),de=Xa(z.map,he.xy).onRenderUpdate(()=>z.map)),de&&(le=he.mul(2).sub(1).abs().lessThan(1).all().select(le.mul(de),le)),{lightColor:le,lightDirection:te}}}class Yq extends j3{static get type(){return"IESSpotLightNode"}getSpotAttenuation(a,y){const x=this.light.iesMap;let E=null;if(x&&x.isTexture===!0){const z=y.acos().mul(1/Math.PI);E=Xa(x,Er(z,0),0).r}else E=super.getSpotAttenuation(y);return E}}const Jq=mn(([b,a])=>{const y=b.abs().sub(a);return om(Zl(y,0)).add(Kd(Zl(y.x,y.y),0))});class Kq extends j3{static get type(){return"ProjectorLightNode"}update(a){super.update(a);const y=this.light;if(this.penumbraCosNode.value=Math.min(Math.cos(y.angle*(1-y.penumbra)),.99999),y.aspect===null){let x=1;y.map!==null&&(x=y.map.width/y.map.height),y.shadow.aspect=x}else y.shadow.aspect=y.aspect}getSpotAttenuation(a){const y=ft(0),x=this.penumbraCosNode,E=C1(this.light).mul(a.context.positionWorld||zf);return ds(E.w.greaterThan(0),()=>{const z=E.xyz.div(E.w),ee=Jq(z.xy.sub(Er(.5)),Er(.5)),te=Nf(-1,Za(1,KB(x)).sub(1));y.assign(nS(ee.mul(-2).mul(te)))}),y}}class qq extends xA{static get type(){return"AmbientLightNode"}constructor(a=null){super(a)}setup({context:a}){a.irradiance.addAssign(this.colorNode)}}class _q extends xA{static get type(){return"HemisphereLightNode"}constructor(a=null){super(a),this.lightPositionNode=P3(a),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=bs(new xi).setGroup(Zs)}update(a){const{light:y}=this;super.update(a),this.lightPositionNode.object3d=y,this.groundColorNode.value.copy(y.groundColor).multiplyScalar(y.intensity)}setup(a){const{colorNode:y,groundColorNode:x,lightDirectionNode:E}=this,ee=rv.dot(E).mul(.5).add(.5),te=ao(x,y,ee);a.context.irradiance.addAssign(te)}}class $q extends xA{static get type(){return"LightProbeNode"}constructor(a=null){super(a);const y=[];for(let x=0;x<9;x++)y.push(new ot);this.lightProbe=wh(y)}update(a){const{light:y}=this;super.update(a);for(let x=0;x<9;x++)this.lightProbe.array[x].copy(y.sh.coefficients[x]).multiplyScalar(y.intensity)}setup(a){const y=J7(rv,this.lightProbe);a.context.irradiance.addAssign(y)}}class tF{parseFunction(){console.warn("Abstract function.")}}class V3{constructor(a,y,x="",E=""){this.type=a,this.inputs=y,this.name=x,this.precision=E}getCode(){console.warn("Abstract function.")}}V3.isNodeFunction=!0;const e_=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,t_=/[a-z_0-9]+/ig,nF="#pragma main",n_=b=>{b=b.trim();const a=b.indexOf(nF),y=a!==-1?b.slice(a+nF.length):b,x=y.match(e_);if(x!==null&&x.length===5){const E=x[4],z=[];let ee=null;for(;(ee=t_.exec(E))!==null;)z.push(ee);const te=[];let ne=0;for(;ne0||a.backgroundBlurriness>0&&y.backgroundBlurriness===0;if(y.background!==x||E){const z=this.getCacheNode("background",x,()=>{if(x.isCubeTexture===!0||x.mapping===Qh||x.mapping===ah||x.mapping===Fu){if(a.backgroundBlurriness>0||x.mapping===Fu)return f3(x);{let ee;return x.isCubeTexture===!0?ee=J0(x):ee=Xa(x),J4(ee)}}else{if(x.isTexture===!0)return Xa(x,fg.flipY()).setUpdateMatrix(!0);x.isColor!==!0&&console.error("WebGPUNodes: Unsupported background configuration.",x)}},E);y.backgroundNode=z,y.background=x,y.backgroundBlurriness=a.backgroundBlurriness}}else y.backgroundNode&&(delete y.backgroundNode,delete y.background)}getCacheNode(a,y,x,E=!1){const z=this.cacheLib[a]||(this.cacheLib[a]=new WeakMap);let ee=z.get(y);return(ee===void 0||E)&&(ee=x(),z.set(y,ee)),ee}updateFog(a){const y=this.get(a),x=a.fog;if(x){if(y.fog!==x){const E=this.getCacheNode("fog",x,()=>{if(x.isFogExp2){const z=rl("color","color",x).setGroup(Zs),ee=rl("density","float",x).setGroup(Zs);return Yx(z,w3(ee))}else if(x.isFog){const z=rl("color","color",x).setGroup(Zs),ee=rl("near","float",x).setGroup(Zs),te=rl("far","float",x).setGroup(Zs);return Yx(z,E3(ee,te))}else console.error("THREE.Renderer: Unsupported fog configuration.",x)});y.fogNode=E,y.fog=x}}else delete y.fogNode,delete y.fog}updateEnvironment(a){const y=this.get(a),x=a.environment;if(x){if(y.environment!==x){const E=this.getCacheNode("environment",x,()=>{if(x.isCubeTexture===!0)return J0(x);if(x.isTexture===!0)return Xa(x);console.error("Nodes: Unsupported environment configuration.",x)});y.environmentNode=E,y.environment=x}}else y.environmentNode&&(delete y.environmentNode,delete y.environment)}getNodeFrame(a=this.renderer,y=null,x=null,E=null,z=null){const ee=this.nodeFrame;return ee.renderer=a,ee.scene=y,ee.object=x,ee.camera=E,ee.material=z,ee}getNodeFrameForRender(a){return this.getNodeFrame(a.renderer,a.scene,a.object,a.camera,a.material)}getOutputCacheKey(){const a=this.renderer;return a.toneMapping+","+a.currentColorSpace+","+a.xr.isPresenting}hasOutputChange(a){return rF.get(a)!==this.getOutputCacheKey()}getOutputNode(a){const y=this.renderer,x=this.getOutputCacheKey(),E=a.isArrayTexture?n7(a,en(fg,Tx("gl_ViewID_OVR"))).renderOutput(y.toneMapping,y.currentColorSpace):Xa(a,fg).renderOutput(y.toneMapping,y.currentColorSpace);return rF.set(a,x),E}updateBefore(a){const y=a.getNodeBuilderState();for(const x of y.updateBeforeNodes)this.getNodeFrameForRender(a).updateBeforeNode(x)}updateAfter(a){const y=a.getNodeBuilderState();for(const x of y.updateAfterNodes)this.getNodeFrameForRender(a).updateAfterNode(x)}updateForCompute(a){const y=this.getNodeFrame(),x=this.getForCompute(a);for(const E of x.updateNodes)y.updateNode(E)}updateForRender(a){const y=this.getNodeFrameForRender(a),x=a.getNodeBuilderState();for(const E of x.updateNodes)y.updateNode(E)}needsRefresh(a){const y=this.getNodeFrameForRender(a);return a.getMonitor().needsRefresh(a,y)}dispose(){super.dispose(),this.nodeFrame=new eF,this.nodeBuilderCache=new Map,this.cacheLib={}}}const G3=new pp;class F1{constructor(a=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewNormalMatrix=new Aa,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,a!==null&&(this.viewNormalMatrix=a.viewNormalMatrix,this.clippingGroupContexts=a.clippingGroupContexts,this.shadowPass=a.shadowPass,this.viewMatrix=a.viewMatrix)}projectPlanes(a,y,x){const E=a.length;for(let z=0;z0,alpha:!0,depth:y.depth,stencil:y.stencil,framebufferScaleFactor:this.getFramebufferScaleFactor()},te=new XRWebGLLayer(a,E,ee);this._glBaseLayer=te,a.updateRenderState({baseLayer:te}),y.setPixelRatio(1),y._setXRLayerSize(te.framebufferWidth,te.framebufferHeight),this._xrRenderTarget=new Ib(te.framebufferWidth,te.framebufferHeight,{format:yo,type:jo,colorSpace:y.outputColorSpace,stencilBuffer:y.stencil,resolveDepthBuffer:te.ignoreDepthValues===!1,resolveStencilBuffer:te.ignoreDepthValues===!1}),this._xrRenderTarget._isOpaqueFramebuffer=!0,this._referenceSpace=yield a.requestReferenceSpace(this.getReferenceSpaceType())}this.setFoveation(this.getFoveation()),y._animation.setAnimationLoop(this._onAnimationFrame),y._animation.setContext(a),y._animation.start(),this.isPresenting=!0,this.dispatchEvent({type:"sessionstart"})}})}updateCamera(a){const y=this._session;if(y===null)return;const x=a.near,E=a.far,z=this._cameraXR,ee=this._cameraL,te=this._cameraR;z.near=te.near=ee.near=x,z.far=te.far=ee.far=E,z.isMultiViewCamera=this._useMultiview,(this._currentDepthNear!==z.near||this._currentDepthFar!==z.far)&&(y.updateRenderState({depthNear:z.near,depthFar:z.far}),this._currentDepthNear=z.near,this._currentDepthFar=z.far),z.layers.mask=a.layers.mask|6,ee.layers.mask=z.layers.mask&3,te.layers.mask=z.layers.mask&5;const ne=a.parent,ie=z.cameras;oF(z,ne);for(let ae=0;ae=0&&(y[z]=null,a[z].disconnect(E))}for(let x=0;x=y.length){y.push(E),z=te;break}else if(y[te]===null){y[te]=E,z=te;break}if(z===-1)break}const ee=a[z];ee&&ee.connect(E)}}function g_(b){return b.type==="quad"?this._glBinding.createQuadLayer({transform:new XRRigidTransform(b.translation,b.quaternion),width:b.width/2,height:b.height/2,space:this._referenceSpace,viewPixelWidth:b.pixelwidth,viewPixelHeight:b.pixelheight,clearOnAccess:!1}):this._glBinding.createCylinderLayer({transform:new XRRigidTransform(b.translation,b.quaternion),radius:b.radius,centralAngle:b.centralAngle,aspectRatio:b.aspectRatio,space:this._referenceSpace,viewPixelWidth:b.pixelwidth,viewPixelHeight:b.pixelheight,clearOnAccess:!1})}function v_(b,a){if(a===void 0)return;const y=this._cameraXR,x=this._renderer,E=x.backend,z=this._glBaseLayer,ee=this.getReferenceSpace(),te=a.getViewerPose(ee);if(this._xrFrame=a,te!==null){const ne=te.views;this._glBaseLayer!==null&&E.setXRTarget(z.framebuffer);let ie=!1;ne.length!==y.cameras.length&&(y.cameras.length=0,ie=!0);for(let ae=0;aeFs(this,null,function*(){yield this.compileAsync(de,he);const Ae=this._renderLists.get(de,he),me=this._renderContexts.get(de,he,this._renderTarget),Ce=de.overrideMaterial||ye.material,Ee=this._objects.get(ye,Ce,de,he,Ae.lightsNode,me,me.clippingContext),{fragmentShader:Be,vertexShader:Ne}=Ee.getNodeBuilderState();return{fragmentShader:Be,vertexShader:Ne}})}}init(){return Fs(this,null,function*(){if(this._initialized)throw new Error("Renderer: Backend has already been initialized.");return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise((a,y)=>Fs(this,null,function*(){let x=this.backend;try{yield x.init(this)}catch(E){if(this._getFallback!==null)try{this.backend=x=this._getFallback(E),yield x.init(this)}catch(z){y(z);return}else{y(E);return}}this._nodes=new s_(this,x),this._animation=new IZ(this._nodes,this.info),this._attributes=new kZ(x),this._background=new bq(this,this._nodes),this._geometries=new HZ(this._attributes,this.info),this._textures=new tY(this,x,this.info),this._pipelines=new XZ(x,this._nodes),this._bindings=new WZ(x,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new OZ(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new YZ(this.lighting),this._bundles=new o_,this._renderContexts=new $Z,this._animation.start(),this._initialized=!0,a(this)})),this._initPromise)})}get coordinateSystem(){return this.backend.coordinateSystem}compileAsync(a,y,x=null){return Fs(this,null,function*(){if(this._isDeviceLost===!0)return;this._initialized===!1&&(yield this.init());const E=this._nodes.nodeFrame,z=E.renderId,ee=this._currentRenderContext,te=this._currentRenderObjectFunction,ne=this._compilationPromises,ie=a.isScene===!0?a:lF;x===null&&(x=a);const ae=this._renderTarget,oe=this._renderContexts.get(x,y,ae),le=this._activeMipmapLevel,de=[];this._currentRenderContext=oe,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=de,E.renderId++,E.update(),oe.depth=this.depth,oe.stencil=this.stencil,oe.clippingContext||(oe.clippingContext=new F1),oe.clippingContext.updateGlobal(ie,y),ie.onBeforeRender(this,a,y,ae);const he=this._renderLists.get(a,y);if(he.begin(),this._projectObject(a,y,0,he,oe.clippingContext),x!==a&&x.traverseVisible(function(Ee){Ee.isLight&&Ee.layers.test(y.layers)&&he.pushLight(Ee)}),he.finish(),ae!==null){this._textures.updateRenderTarget(ae,le);const Ee=this._textures.get(ae);oe.textures=Ee.textures,oe.depthTexture=Ee.depthTexture}else oe.textures=null,oe.depthTexture=null;this._background.update(ie,he,oe);const ye=he.opaque,Ae=he.transparent,me=he.transparentDoublePass,Ce=he.lightsNode;this.opaque===!0&&ye.length>0&&this._renderObjects(ye,y,ie,Ce),this.transparent===!0&&Ae.length>0&&this._renderTransparents(Ae,me,y,ie,Ce),E.renderId=z,this._currentRenderContext=ee,this._currentRenderObjectFunction=te,this._compilationPromises=ne,this._handleObjectFunction=this._renderObjectDirect,yield Promise.all(de)})}renderAsync(a,y){return Fs(this,null,function*(){this._initialized===!1&&(yield this.init()),this._renderScene(a,y)})}waitForGPU(){return Fs(this,null,function*(){yield this.backend.waitForGPU()})}set highPrecision(a){a===!0?(this.overrideNodes.modelViewMatrix=pS,this.overrideNodes.modelNormalViewMatrix=mS):this.highPrecision&&(this.overrideNodes.modelViewMatrix=null,this.overrideNodes.modelNormalViewMatrix=null)}get highPrecision(){return this.overrideNodes.modelViewMatrix===pS&&this.overrideNodes.modelNormalViewMatrix===mS}setMRT(a){return this._mrt=a,this}getMRT(){return this._mrt}getColorBufferType(){return this._colorBufferType}_onDeviceLost(a){let y=`THREE.WebGPURenderer: ${a.api} Device Lost: Message: ${a.message}`;a.reason&&(y+=` Reason: ${a.reason}`),console.error(y),this._isDeviceLost=!0}_renderBundle(a,y,x){const{bundleGroup:E,camera:z,renderList:ee}=a,te=this._currentRenderContext,ne=this._bundles.get(E,z),ie=this.backend.get(ne);ie.renderContexts===void 0&&(ie.renderContexts=new Set);const ae=E.version!==ie.version,oe=ie.renderContexts.has(te)===!1||ae;if(ie.renderContexts.add(te),oe){this.backend.beginBundle(te),(ie.renderObjects===void 0||ae)&&(ie.renderObjects=[]),this._currentRenderBundle=ne;const{transparentDoublePass:le,transparent:de,opaque:he}=ee;this.opaque===!0&&he.length>0&&this._renderObjects(he,z,y,x),this.transparent===!0&&de.length>0&&this._renderTransparents(de,le,z,y,x),this._currentRenderBundle=null,this.backend.finishBundle(te,ne),ie.version=E.version}else{const{renderObjects:le}=ie;for(let de=0,he=le.length;de>=le,he.viewportValue.height>>=le,he.viewportValue.minDepth=Be,he.viewportValue.maxDepth=Ne,he.viewport=he.viewportValue.equals(X3)===!1,he.scissorValue.copy(Ce).multiplyScalar(Ee).floor(),he.scissor=this._scissorTest&&he.scissorValue.equals(X3)===!1,he.scissorValue.width>>=le,he.scissorValue.height>>=le,he.clippingContext||(he.clippingContext=new F1),he.clippingContext.updateGlobal(ie,y),ie.onBeforeRender(this,a,y,de);const Fe=y.isArrayCamera?Q3:W3;y.isArrayCamera||(L1.multiplyMatrices(y.projectionMatrix,y.matrixWorldInverse),Fe.setFromProjectionMatrix(L1,y.coordinateSystem,y.reversedDepth));const ke=this._renderLists.get(a,y);if(ke.begin(),this._projectObject(a,y,0,ke,he.clippingContext),ke.finish(),this.sortObjects===!0&&ke.sort(this._opaqueSort,this._transparentSort),de!==null){this._textures.updateRenderTarget(de,le);const Et=this._textures.get(de);he.textures=Et.textures,he.depthTexture=Et.depthTexture,he.width=Et.width,he.height=Et.height,he.renderTarget=de,he.depth=de.depthBuffer,he.stencil=de.stencilBuffer}else he.textures=null,he.depthTexture=null,he.width=this.domElement.width,he.height=this.domElement.height,he.depth=this.depth,he.stencil=this.stencil;he.width>>=le,he.height>>=le,he.activeCubeFace=oe,he.activeMipmapLevel=le,he.occlusionQueryCount=ke.occlusionQueryCount,this._background.update(ie,ke,he),he.camera=y,this.backend.beginRender(he);const{bundles:Re,lightsNode:Oe,transparentDoublePass:ze,transparent:Le,opaque:_e}=ke;return Re.length>0&&this._renderBundles(Re,ie,Oe),this.opaque===!0&&_e.length>0&&this._renderObjects(_e,y,ie,Oe),this.transparent===!0&&Le.length>0&&this._renderTransparents(Le,ze,y,ie,Oe),this.backend.finishRender(he),z.renderId=ee,this._currentRenderContext=te,this._currentRenderObjectFunction=ne,E!==null&&(this.setRenderTarget(ae,oe,le),this._renderOutput(de)),ie.onAfterRender(this,a,y,de),he}_setXRLayerSize(a,y){this._width=a,this._height=y,this.setViewport(0,0,a,y)}_renderOutput(a){const y=this._quad;this._nodes.hasOutputChange(a.texture)&&(y.material.fragmentNode=this._nodes.getOutputNode(a.texture),y.material.needsUpdate=!0);const x=this.autoClear,E=this.xr.enabled;this.autoClear=!1,this.xr.enabled=!1,this._renderScene(y,y.camera,!1),this.autoClear=x,this.xr.enabled=E}getMaxAnisotropy(){return this.backend.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}setAnimationLoop(a){return Fs(this,null,function*(){this._initialized===!1&&(yield this.init()),this._animation.setAnimationLoop(a)})}getArrayBufferAsync(a){return Fs(this,null,function*(){return yield this.backend.getArrayBufferAsync(a)})}getContext(){return this.backend.getContext()}getPixelRatio(){return this._pixelRatio}getDrawingBufferSize(a){return a.set(this._width*this._pixelRatio,this._height*this._pixelRatio).floor()}getSize(a){return a.set(this._width,this._height)}setPixelRatio(a=1){this._pixelRatio!==a&&(this._pixelRatio=a,this.setSize(this._width,this._height,!1))}setDrawingBufferSize(a,y,x){this.xr&&this.xr.isPresenting||(this._width=a,this._height=y,this._pixelRatio=x,this.domElement.width=Math.floor(a*x),this.domElement.height=Math.floor(y*x),this.setViewport(0,0,a,y),this._initialized&&this.backend.updateSize())}setSize(a,y,x=!0){this.xr&&this.xr.isPresenting||(this._width=a,this._height=y,this.domElement.width=Math.floor(a*this._pixelRatio),this.domElement.height=Math.floor(y*this._pixelRatio),x===!0&&(this.domElement.style.width=a+"px",this.domElement.style.height=y+"px"),this.setViewport(0,0,a,y),this._initialized&&this.backend.updateSize())}setOpaqueSort(a){this._opaqueSort=a}setTransparentSort(a){this._transparentSort=a}getScissor(a){const y=this._scissor;return a.x=y.x,a.y=y.y,a.width=y.width,a.height=y.height,a}setScissor(a,y,x,E){const z=this._scissor;a.isVector4?z.copy(a):z.set(a,y,x,E)}getScissorTest(){return this._scissorTest}setScissorTest(a){this._scissorTest=a,this.backend.setScissorTest(a)}getViewport(a){return a.copy(this._viewport)}setViewport(a,y,x,E,z=0,ee=1){const te=this._viewport;a.isVector4?te.copy(a):te.set(a,y,x,E),te.minDepth=z,te.maxDepth=ee}getClearColor(a){return a.copy(this._clearColor)}setClearColor(a,y=1){this._clearColor.set(a),this._clearColor.a=y}getClearAlpha(){return this._clearColor.a}setClearAlpha(a){this._clearColor.a=a}getClearDepth(){return this._clearDepth}setClearDepth(a){this._clearDepth=a}getClearStencil(){return this._clearStencil}setClearStencil(a){this._clearStencil=a}isOccluded(a){const y=this._currentRenderContext;return y&&this.backend.isOccluded(y,a)}clear(a=!0,y=!0,x=!0){if(this._initialized===!1)return console.warn("THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead."),this.clearAsync(a,y,x);const E=this._renderTarget||this._getFrameBufferTarget();let z=null;if(E!==null){this._textures.updateRenderTarget(E);const ee=this._textures.get(E);z=this._renderContexts.getForClear(E),z.textures=ee.textures,z.depthTexture=ee.depthTexture,z.width=ee.width,z.height=ee.height,z.renderTarget=E,z.depth=E.depthBuffer,z.stencil=E.stencilBuffer,z.clearColorValue=this.backend.getClearColor(),z.activeCubeFace=this.getActiveCubeFace(),z.activeMipmapLevel=this.getActiveMipmapLevel()}this.backend.clear(a,y,x,z),E!==null&&this._renderTarget===null&&this._renderOutput(E)}clearColor(){return this.clear(!0,!1,!1)}clearDepth(){return this.clear(!1,!0,!1)}clearStencil(){return this.clear(!1,!1,!0)}clearAsync(a=!0,y=!0,x=!0){return Fs(this,null,function*(){this._initialized===!1&&(yield this.init()),this.clear(a,y,x)})}clearColorAsync(){return Fs(this,null,function*(){this.clearAsync(!0,!1,!1)})}clearDepthAsync(){return Fs(this,null,function*(){this.clearAsync(!1,!0,!1)})}clearStencilAsync(){return Fs(this,null,function*(){this.clearAsync(!1,!1,!0)})}get currentToneMapping(){return this.isOutputTarget?this.toneMapping:bc}get currentColorSpace(){return this.isOutputTarget?this.outputColorSpace:aa.workingColorSpace}get isOutputTarget(){return this._renderTarget===this._outputRenderTarget||this._renderTarget===null}dispose(){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose(),this._frameBufferTarget!==null&&this._frameBufferTarget.dispose(),Object.values(this.backend.timestampQueryPool).forEach(a=>{a!==null&&a.dispose()}),this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(a,y=0,x=0){this._renderTarget=a,this._activeCubeFace=y,this._activeMipmapLevel=x}getRenderTarget(){return this._renderTarget}setOutputRenderTarget(a){this._outputRenderTarget=a}getOutputRenderTarget(){return this._outputRenderTarget}_resetXRState(){this.backend.setXRTarget(null),this.setOutputRenderTarget(null),this.setRenderTarget(null),this._frameBufferTarget.dispose(),this._frameBufferTarget=null}setRenderObjectFunction(a){this._renderObjectFunction=a}getRenderObjectFunction(){return this._renderObjectFunction}compute(a,y=null){if(this._isDeviceLost===!0)return;if(this._initialized===!1)return console.warn("THREE.Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(a);const x=this._nodes.nodeFrame,E=x.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,x.renderId=this.info.calls;const z=this.backend,ee=this._pipelines,te=this._bindings,ne=this._nodes,ie=Array.isArray(a)?a:[a];if(ie[0]===void 0||ie[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");z.beginCompute(a);for(const ae of ie){if(ee.has(ae)===!1){const de=()=>{ae.removeEventListener("dispose",de),ee.delete(ae),te.delete(ae),ne.delete(ae)};ae.addEventListener("dispose",de);const he=ae.onInitFunction;he!==null&&he.call(ae,{renderer:this})}ne.updateForCompute(ae),te.updateForCompute(ae);const oe=te.getForCompute(ae),le=ee.getForCompute(ae,oe);z.compute(a,ae,oe,le,y)}z.finishCompute(a),x.renderId=E}computeAsync(a,y=null){return Fs(this,null,function*(){this._initialized===!1&&(yield this.init()),this.compute(a,y)})}hasFeatureAsync(a){return Fs(this,null,function*(){return this._initialized===!1&&(yield this.init()),this.backend.hasFeature(a)})}resolveTimestampsAsync(a="render"){return Fs(this,null,function*(){return this._initialized===!1&&(yield this.init()),this.backend.resolveTimestampsAsync(a)})}hasFeature(a){return this._initialized===!1?(console.warn("THREE.Renderer: .hasFeature() called before the backend is initialized. Try using .hasFeatureAsync() instead."),!1):this.backend.hasFeature(a)}hasInitialized(){return this._initialized}initTextureAsync(a){return Fs(this,null,function*(){this._initialized===!1&&(yield this.init()),this._textures.updateTexture(a)})}initTexture(a){this._initialized===!1&&console.warn("THREE.Renderer: .initTexture() called before the backend is initialized. Try using .initTextureAsync() instead."),this._textures.updateTexture(a)}copyFramebufferToTexture(a,y=null){if(y!==null)if(y.isVector2)y=dv.set(y.x,y.y,a.image.width,a.image.height).floor();else if(y.isVector4)y=dv.copy(y).floor();else{console.error("THREE.Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else y=dv.set(0,0,a.image.width,a.image.height);let x=this._currentRenderContext,E;x!==null?E=x.renderTarget:(E=this._renderTarget||this._getFrameBufferTarget(),E!==null&&(this._textures.updateRenderTarget(E),x=this._textures.get(E))),this._textures.updateTexture(a,{renderTarget:E}),this.backend.copyFramebufferToTexture(a,x,y)}copyTextureToTexture(a,y,x=null,E=null,z=0,ee=0){this._textures.updateTexture(a),this._textures.updateTexture(y),this.backend.copyTextureToTexture(a,y,x,E,z,ee)}readRenderTargetPixelsAsync(a,y,x,E,z,ee=0,te=0){return Fs(this,null,function*(){return this.backend.copyTextureToBuffer(a.textures[ee],y,x,E,z,te)})}_projectObject(a,y,x,E,z){if(a.visible===!1)return;if(a.layers.test(y.layers)){if(a.isGroup)x=a.renderOrder,a.isClippingGroup&&a.enabled&&(z=z.getGroupContext(a));else if(a.isLOD)a.autoUpdate===!0&&a.update(y);else if(a.isLight)E.pushLight(a);else if(a.isSprite){const ne=y.isArrayCamera?Q3:W3;if(!a.frustumCulled||ne.intersectsSprite(a,y)){this.sortObjects===!0&&dv.setFromMatrixPosition(a.matrixWorld).applyMatrix4(L1);const{geometry:ie,material:ae}=a;ae.visible&&E.push(a,ie,ae,x,dv.z,null,z)}}else if(a.isLineLoop)console.error("THREE.Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if(a.isMesh||a.isLine||a.isPoints){const ne=y.isArrayCamera?Q3:W3;if(!a.frustumCulled||ne.intersectsObject(a,y)){const{geometry:ie,material:ae}=a;if(this.sortObjects===!0&&(ie.boundingSphere===null&&ie.computeBoundingSphere(),dv.copy(ie.boundingSphere.center).applyMatrix4(a.matrixWorld).applyMatrix4(L1)),Array.isArray(ae)){const oe=ie.groups;for(let le=0,de=oe.length;le0){for(const{material:ee}of y)ee.side=co;this._renderObjects(y,x,E,z,"backSide");for(const{material:ee}of y)ee.side=yc;this._renderObjects(a,x,E,z);for(const{material:ee}of y)ee.side=eo}else this._renderObjects(a,x,E,z)}_renderObjects(a,y,x,E,z=null){for(let ee=0,te=a.length;ee0,de.isShadowPassMaterial&&(de.side=z.shadowSide===null?z.side:z.shadowSide,z.depthNode&&z.depthNode.isNode&&(le=de.depthNode,de.depthNode=z.depthNode),z.castShadowNode&&z.castShadowNode.isNode&&(oe=de.colorNode,de.colorNode=z.castShadowNode),z.castShadowPositionNode&&z.castShadowPositionNode.isNode&&(ae=de.positionNode,de.positionNode=z.castShadowPositionNode)),z=de}z.transparent===!0&&z.side===eo&&z.forceSinglePass===!1?(z.side=co,this._handleObjectFunction(a,z,y,x,te,ee,ne,"backSide"),z.side=yc,this._handleObjectFunction(a,z,y,x,te,ee,ne,ie),z.side=eo):this._handleObjectFunction(a,z,y,x,te,ee,ne,ie),ae!==void 0&&(y.overrideMaterial.positionNode=ae),le!==void 0&&(y.overrideMaterial.depthNode=le),oe!==void 0&&(y.overrideMaterial.colorNode=oe),a.onAfterRender(this,y,x,E,z,ee)}_renderObjectDirect(a,y,x,E,z,ee,te,ne){const ie=this._objects.get(a,y,x,E,z,this._currentRenderContext,te,ne);ie.drawRange=a.geometry.drawRange,ie.group=ee;const ae=this._nodes.needsRefresh(ie);ae&&(this._nodes.updateBefore(ie),this._geometries.updateForRender(ie),this._nodes.updateForRender(ie),this._bindings.updateForRender(ie)),this._pipelines.updateForRender(ie),this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(ie),ie.bundle=this._currentRenderBundle.bundleGroup),this.backend.draw(ie,this.info),ae&&this._nodes.updateAfter(ie)}_createObjectPipeline(a,y,x,E,z,ee,te,ne){const ie=this._objects.get(a,y,x,E,z,this._currentRenderContext,te,ne);ie.drawRange=a.geometry.drawRange,ie.group=ee,this._nodes.updateBefore(ie),this._geometries.updateForRender(ie),this._nodes.updateForRender(ie),this._bindings.updateForRender(ie),this._pipelines.getForRender(ie,this._compilationPromises),this._nodes.updateAfter(ie)}get compile(){return this.compileAsync}}class uF{constructor(a=""){this.name=a,this.visibility=0}setVisibility(a){this.visibility|=a}clone(){return Object.assign(new this.constructor,this)}}function y_(b){return b+(ov-b%ov)%ov}class cF extends uF{constructor(a,y=null){super(a),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=y}get byteLength(){return y_(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}}class dF extends cF{constructor(a,y=null){super(a,y),this.isUniformBuffer=!0}}let x_=0;class fF extends dF{constructor(a,y){super("UniformBuffer_"+x_++,a?a.value:null),this.nodeUniform=a,this.groupNode=y}get buffer(){return this.nodeUniform.value}}class b_ extends dF{constructor(a){super(a),this.isUniformsGroup=!0,this._values=null,this.uniforms=[]}addUniform(a){return this.uniforms.push(a),this}removeUniform(a){const y=this.uniforms.indexOf(a);return y!==-1&&this.uniforms.splice(y,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let a=this._buffer;if(a===null){const y=this.byteLength;a=new Float32Array(new ArrayBuffer(y)),this._buffer=a}return a}get byteLength(){const a=this.bytesPerElement;let y=0;for(let x=0,E=this.uniforms.length;x{this.texture=null},this.texture=y,this.version=y?y.version:0,this.generation=null,this.isSampler=!0}set texture(a){this._texture!==a&&(this._texture&&this._texture.removeEventListener("dispose",this._onDisposeTexture),this._texture=a,this.generation=null,this.version=0,this._texture&&this._texture.addEventListener("dispose",this._onDisposeTexture))}get texture(){return this._texture}update(){const{texture:a,version:y}=this;return y!==a.version?(this.version=a.version,!0):!1}}let P_=0;class B_ extends pF{constructor(a,y){super(a,y),this.id=P_++,this.store=!1,this.isSampledTexture=!0}}class O1 extends B_{constructor(a,y,x,E=null){super(a,y?y.value:null),this.textureNode=y,this.groupNode=x,this.access=E}update(){const{textureNode:a}=this;return this.texture!==a.value?(this.texture=a.value,!0):super.update()}}class mF extends O1{constructor(a,y,x,E=null){super(a,y,x,E),this.isSampledCubeTexture=!0}}class Z3 extends O1{constructor(a,y,x,E=null){super(a,y,x,E),this.isSampledTexture3D=!0}}const S_={textureDimensions:"textureSize",equals:"equal"},M_={low:"lowp",medium:"mediump",high:"highp"},gF={swizzleAssign:!0,storageBuffer:!1},vF={perspective:"smooth",linear:"noperspective"},AF={centroid:"centroid"},yF=` precision highp float; precision highp int; precision highp sampler2D; precision highp sampler3D; precision highp samplerCube; precision highp sampler2DArray; precision highp usampler2D; precision highp usampler3D; precision highp usamplerCube; precision highp usampler2DArray; precision highp isampler2D; precision highp isampler3D; precision highp isamplerCube; precision highp isampler2DArray; precision lowp sampler2DShadow; precision lowp sampler2DArrayShadow; precision lowp samplerCubeShadow; `;class D_ extends $7{constructor(a,y){super(a,y,new i_),this.uniformGroups={},this.transforms=[],this.extensions={},this.builtins={vertex:[],fragment:[],compute:[]}}needsToWorkingColorSpace(a){return a.isVideoTexture===!0&&a.colorSpace!==vn}getMethod(a){return S_[a]||a}getOutputStructName(){return""}buildFunctionCode(a){const y=a.layout,x=this.flowShaderNode(a),E=[];for(const ee of y.inputs)E.push(this.getType(ee.type)+" "+ee.name);return`${this.getType(y.type)} ${y.name}( ${E.join(", ")} ) { ${x.vars} ${x.code} return ${x.result}; }`}setupPBO(a){const y=a.value;if(y.pbo===void 0){const x=y.array,E=y.count*y.itemSize,{itemSize:z}=y,ee=y.array.constructor.name.toLowerCase().includes("int");let te=ee?Ud:Kh;z===2?te=ee?Vp:jd:z===3?te=ee?My:Jh:z===4&&(te=ee?qh:yo);const ne={Float32Array:Vo,Uint8Array:jo,Uint16Array:qu,Uint32Array:Ao,Int8Array:Zh,Int16Array:Yh,Int32Array:Vl,Uint8ClampedArray:jo},ie=Math.pow(2,Math.ceil(Math.log2(Math.sqrt(E/z))));let ae=Math.ceil(E/z/ie);ie*ae*z0?le:"";te=`${ae.name} { ${oe} ${ee.name}[${de}]; }; `}else te=`${this.getVectorType(ee.type)} ${this.getPropertyName(ee,a)};`,ne=!0;const ie=ee.node.precision;if(ie!==null&&(te=M_[ie]+" "+te),ne){te=" "+te;const ae=ee.groupNode.name;(E[ae]||(E[ae]=[])).push(te)}else te="uniform "+te,x.push(te)}let z="";for(const ee in E){const te=E[ee];z+=this._getGLSLUniformStruct(a+"_"+ee,te.join(` `))+` `}return z+=x.join(` `),z}getTypeFromAttribute(a){let y=super.getTypeFromAttribute(a);if(/^[iu]/.test(y)&&a.gpuType!==Vl){let x=a;a.isInterleavedBufferAttribute&&(x=a.data);const E=x.array;E instanceof Uint32Array||E instanceof Int32Array||(y=y.slice(1))}return y}getAttributes(a){let y="";if(a==="vertex"||a==="compute"){const x=this.getAttributesArray();let E=0;for(const z of x)y+=`layout( location = ${E++} ) in ${z.type} ${z.name}; `}return y}getStructMembers(a){const y=[];for(const x of a.members)y.push(` ${x.type} ${x.name};`);return y.join(` `)}getStructs(a){const y=[],x=this.structs[a],E=[];for(const z of x)if(z.output)for(const ee of z.members)E.push(`layout( location = ${ee.index} ) out ${ee.type} ${ee.name};`);else{let ee="struct "+z.name+` { `;ee+=this.getStructMembers(z),ee+=` }; `,y.push(ee)}return E.length===0&&E.push("layout( location = 0 ) out vec4 fragColor;"),` `+E.join(` `)+` `+y.join(` `)}getVaryings(a){let y="";const x=this.varyings;if(a==="vertex"||a==="compute")for(const E of x){a==="compute"&&(E.needsInterpolation=!0);const z=this.getType(E.type);if(E.needsInterpolation)if(E.interpolationType){const ee=vF[E.interpolationType]||E.interpolationType,te=AF[E.interpolationSampling]||"";y+=`${ee} ${te} out ${z} ${E.name}; `}else{const ee=z.includes("int")||z.includes("uv")||z.includes("iv")?"flat ":"";y+=`${ee}out ${z} ${E.name}; `}else y+=`${z} ${E.name}; `}else if(a==="fragment"){for(const E of x)if(E.needsInterpolation){const z=this.getType(E.type);if(E.interpolationType){const ee=vF[E.interpolationType]||E.interpolationType,te=AF[E.interpolationSampling]||"";y+=`${ee} ${te} in ${z} ${E.name}; `}else{const ee=z.includes("int")||z.includes("uv")||z.includes("iv")?"flat ":"";y+=`${ee}in ${z} ${E.name}; `}}}for(const E of this.builtins[a])y+=`${E}; `;return y}getVertexIndex(){return"uint( gl_VertexID )"}getInstanceIndex(){return"uint( gl_InstanceID )"}getInvocationLocalIndex(){return`uint( gl_InstanceID ) % ${this.object.workgroupSize.reduce((x,E)=>x*E,1)}u`}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":null}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(a,y,x=this.shaderStage){const E=this.extensions[x]||(this.extensions[x]=new Map);E.has(a)===!1&&E.set(a,{name:a,behavior:y})}getExtensions(a){const y=[];if(a==="vertex"){const E=this.renderer.backend.extensions;this.object.isBatchedMesh&&E.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",a)}const x=this.extensions[a];if(x!==void 0)for(const{name:E,behavior:z}of x.values())y.push(`#extension ${E} : ${z}`);return y.join(` `)}getClipDistance(){return"gl_ClipDistance"}isAvailable(a){let y=gF[a];if(y===void 0){let x;switch(y=!1,a){case"float32Filterable":x="OES_texture_float_linear";break;case"clipDistance":x="WEBGL_clip_cull_distance";break}if(x!==void 0){const E=this.renderer.backend.extensions;E.has(x)&&(E.get(x),y=!0)}gF[a]=y}return y}isFlipY(){return!0}enableHardwareClipping(a){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${a} ]`)}enableMultiview(){this.enableExtension("GL_OVR_multiview2","require","fragment"),this.enableExtension("GL_OVR_multiview2","require","vertex"),this.builtins.vertex.push("layout(num_views = 2) in")}registerTransform(a,y){this.transforms.push({varyingName:a,attributeNode:y})}getTransforms(){const a=this.transforms;let y="";for(let x=0;x0&&(x+=` `),x+=` // flow -> ${ie} `),x+=`${ne.code} `,te===z&&y!=="compute"&&(x+=`// result `,y==="vertex"?(x+="gl_Position = ",x+=`${ne.result};`):y==="fragment"&&(te.outputNode.isOutputStructNode||(x+="fragColor = ",x+=`${ne.result};`)))}const ee=a[y];ee.extensions=this.getExtensions(y),ee.uniforms=this.getUniforms(y),ee.attributes=this.getAttributes(y),ee.varyings=this.getVaryings(y),ee.vars=this.getVars(y),ee.structs=this.getStructs(y),ee.codes=this.getCodes(y),ee.transforms=this.getTransforms(y),ee.flow=x}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(a.vertex),this.fragmentShader=this._getGLSLFragmentCode(a.fragment)):this.computeShader=this._getGLSLVertexCode(a.compute)}getUniformFromNode(a,y,x,E=null){const z=super.getUniformFromNode(a,y,x,E),ee=this.getDataFromNode(a,x,this.globalCache);let te=ee.uniformGPU;if(te===void 0){const ne=a.groupNode,ie=ne.name,ae=this.getBindGroupArray(ie,x);if(y==="texture")te=new O1(z.name,z.node,ne),ae.push(te);else if(y==="cubeTexture")te=new mF(z.name,z.node,ne),ae.push(te);else if(y==="texture3D")te=new Z3(z.name,z.node,ne),ae.push(te);else if(y==="buffer"){a.name=`NodeBuffer_${a.id}`,z.name=`buffer${a.id}`;const oe=new fF(a,ne);oe.name=a.name,ae.push(oe),te=oe}else{const oe=this.uniformGroups[x]||(this.uniformGroups[x]={});let le=oe[ie];le===void 0&&(le=new hF(x+"_"+ie,ne),oe[ie]=le,ae.push(le)),te=this.getNodeUniform(z,y),le.addUniform(te)}ee.uniformGPU=te}return z}}let Y3=null,cy=null;class xF{constructor(a={}){this.parameters=Object.assign({},a),this.data=new WeakMap,this.renderer=null,this.domElement=null,this.timestampQueryPool={render:null,compute:null},this.trackTimestamp=a.trackTimestamp===!0}init(a){return Fs(this,null,function*(){this.renderer=a})}get coordinateSystem(){}beginRender(){}finishRender(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}createSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}copyTextureToBuffer(){return Fs(this,null,function*(){})}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}isOccluded(){}resolveTimestampsAsync(a="render"){return Fs(this,null,function*(){if(!this.trackTimestamp){Ou("WebGPURenderer: Timestamp tracking is disabled.");return}const y=this.timestampQueryPool[a];if(!y){Ou(`WebGPURenderer: No timestamp query pool for type '${a}' found.`);return}const x=yield y.resolveQueriesAsync();return this.renderer.info[a].timestamp=x,x})}waitForGPU(){return Fs(this,null,function*(){})}getArrayBufferAsync(){return Fs(this,null,function*(){})}hasFeatureAsync(){return Fs(this,null,function*(){})}hasFeature(){}getMaxAnisotropy(){}getDrawingBufferSize(){return Y3=Y3||new tr,this.renderer.getDrawingBufferSize(Y3)}setScissorTest(){}getClearColor(){const a=this.renderer;return cy=cy||new p3,a.getClearColor(cy),cy.getRGB(cy),cy}getDomElement(){let a=this.domElement;return a===null&&(a=this.parameters.canvas!==void 0?this.parameters.canvas:t0(),"setAttribute"in a&&a.setAttribute("data-engine",`three.js r${pd} webgpu`),this.domElement=a),a}set(a,y){this.data.set(a,y)}get(a){let y=this.data.get(a);return y===void 0&&(y={},this.data.set(a,y)),y}has(a){return this.data.has(a)}delete(a){this.data.delete(a)}dispose(){}}let T_=0;class I_{constructor(a,y){this.buffers=[a.bufferGPU,y],this.type=a.type,this.bufferType=a.bufferType,this.pbo=a.pbo,this.byteLength=a.byteLength,this.bytesPerElement=a.BYTES_PER_ELEMENT,this.version=a.version,this.isInteger=a.isInteger,this.activeBufferIndex=0,this.baseId=a.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}}class F_{constructor(a){this.backend=a}createAttribute(a,y){const x=this.backend,{gl:E}=x,z=a.array,ee=a.usage||E.STATIC_DRAW,te=a.isInterleavedBufferAttribute?a.data:a,ne=x.get(te);let ie=ne.bufferGPU;ie===void 0&&(ie=this._createBuffer(E,y,z,ee),ne.bufferGPU=ie,ne.bufferType=y,ne.version=te.version);let ae;if(z instanceof Float32Array)ae=E.FLOAT;else if(typeof Float16Array!="undefined"&&z instanceof Float16Array)ae=E.HALF_FLOAT;else if(z instanceof Uint16Array)a.isFloat16BufferAttribute?ae=E.HALF_FLOAT:ae=E.UNSIGNED_SHORT;else if(z instanceof Int16Array)ae=E.SHORT;else if(z instanceof Uint32Array)ae=E.UNSIGNED_INT;else if(z instanceof Int32Array)ae=E.INT;else if(z instanceof Int8Array)ae=E.BYTE;else if(z instanceof Uint8Array)ae=E.UNSIGNED_BYTE;else if(z instanceof Uint8ClampedArray)ae=E.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+z);let oe={bufferGPU:ie,bufferType:y,type:ae,byteLength:z.byteLength,bytesPerElement:z.BYTES_PER_ELEMENT,version:a.version,pbo:a.pbo,isInteger:ae===E.INT||ae===E.UNSIGNED_INT||a.gpuType===Vl,id:T_++};if(a.isStorageBufferAttribute||a.isStorageInstancedBufferAttribute){const le=this._createBuffer(E,y,z,ee);oe=new I_(oe,le)}x.set(a,oe)}updateAttribute(a){const y=this.backend,{gl:x}=y,E=a.array,z=a.isInterleavedBufferAttribute?a.data:a,ee=y.get(z),te=ee.bufferType,ne=a.isInterleavedBufferAttribute?a.data.updateRanges:a.updateRanges;if(x.bindBuffer(te,ee.bufferGPU),ne.length===0)x.bufferSubData(te,0,E);else{for(let ie=0,ae=ne.length;ie1?this.enable(E.SAMPLE_ALPHA_TO_COVERAGE):this.disable(E.SAMPLE_ALPHA_TO_COVERAGE),x>0&&this.currentClippingPlanes!==x)for(let ne=0;ne<8;ne++)ne{function z(){const ee=a.clientWaitSync(y,a.SYNC_FLUSH_COMMANDS_BIT,0);if(ee===a.WAIT_FAILED){a.deleteSync(y),E();return}if(ee===a.TIMEOUT_EXPIRED){requestAnimationFrame(z);return}a.deleteSync(y),x()}z()})}}let bF=!1,R1,K3,EF;class O_{constructor(a){this.backend=a,this.gl=a.gl,this.extensions=a.extensions,this.defaultTextures={},bF===!1&&(this._init(),bF=!0)}_init(){const a=this.gl;R1={[Hd]:a.REPEAT,[Nu]:a.CLAMP_TO_EDGE,[bf]:a.MIRRORED_REPEAT},K3={[fo]:a.NEAREST,[Ef]:a.NEAREST_MIPMAP_NEAREST,[mu]:a.NEAREST_MIPMAP_LINEAR,[Io]:a.LINEAR,[gd]:a.LINEAR_MIPMAP_NEAREST,[tu]:a.LINEAR_MIPMAP_LINEAR},EF={[tl]:a.NEVER,[ve]:a.ALWAYS,[Go]:a.LESS,[Pf]:a.LEQUAL,[vu]:a.EQUAL,[ge]:a.GEQUAL,[Gd]:a.GREATER,[Nl]:a.NOTEQUAL}}getGLTextureType(a){const{gl:y}=this;let x;return a.isCubeTexture===!0?x=y.TEXTURE_CUBE_MAP:a.isArrayTexture===!0||a.isDataArrayTexture===!0||a.isCompressedArrayTexture===!0?x=y.TEXTURE_2D_ARRAY:a.isData3DTexture===!0?x=y.TEXTURE_3D:x=y.TEXTURE_2D,x}getInternalFormat(a,y,x,E,z=!1){const{gl:ee,extensions:te}=this;if(a!==null){if(ee[a]!==void 0)return ee[a];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+a+"'")}let ne=y;if(y===ee.RED&&(x===ee.FLOAT&&(ne=ee.R32F),x===ee.HALF_FLOAT&&(ne=ee.R16F),x===ee.UNSIGNED_BYTE&&(ne=ee.R8),x===ee.UNSIGNED_SHORT&&(ne=ee.R16),x===ee.UNSIGNED_INT&&(ne=ee.R32UI),x===ee.BYTE&&(ne=ee.R8I),x===ee.SHORT&&(ne=ee.R16I),x===ee.INT&&(ne=ee.R32I)),y===ee.RED_INTEGER&&(x===ee.UNSIGNED_BYTE&&(ne=ee.R8UI),x===ee.UNSIGNED_SHORT&&(ne=ee.R16UI),x===ee.UNSIGNED_INT&&(ne=ee.R32UI),x===ee.BYTE&&(ne=ee.R8I),x===ee.SHORT&&(ne=ee.R16I),x===ee.INT&&(ne=ee.R32I)),y===ee.RG&&(x===ee.FLOAT&&(ne=ee.RG32F),x===ee.HALF_FLOAT&&(ne=ee.RG16F),x===ee.UNSIGNED_BYTE&&(ne=ee.RG8),x===ee.UNSIGNED_SHORT&&(ne=ee.RG16),x===ee.UNSIGNED_INT&&(ne=ee.RG32UI),x===ee.BYTE&&(ne=ee.RG8I),x===ee.SHORT&&(ne=ee.RG16I),x===ee.INT&&(ne=ee.RG32I)),y===ee.RG_INTEGER&&(x===ee.UNSIGNED_BYTE&&(ne=ee.RG8UI),x===ee.UNSIGNED_SHORT&&(ne=ee.RG16UI),x===ee.UNSIGNED_INT&&(ne=ee.RG32UI),x===ee.BYTE&&(ne=ee.RG8I),x===ee.SHORT&&(ne=ee.RG16I),x===ee.INT&&(ne=ee.RG32I)),y===ee.RGB){const ie=z?Sr:aa.getTransfer(E);x===ee.FLOAT&&(ne=ee.RGB32F),x===ee.HALF_FLOAT&&(ne=ee.RGB16F),x===ee.UNSIGNED_BYTE&&(ne=ee.RGB8),x===ee.UNSIGNED_SHORT&&(ne=ee.RGB16),x===ee.UNSIGNED_INT&&(ne=ee.RGB32UI),x===ee.BYTE&&(ne=ee.RGB8I),x===ee.SHORT&&(ne=ee.RGB16I),x===ee.INT&&(ne=ee.RGB32I),x===ee.UNSIGNED_BYTE&&(ne=ie===On?ee.SRGB8:ee.RGB8),x===ee.UNSIGNED_SHORT_5_6_5&&(ne=ee.RGB565),x===ee.UNSIGNED_SHORT_5_5_5_1&&(ne=ee.RGB5_A1),x===ee.UNSIGNED_SHORT_4_4_4_4&&(ne=ee.RGB4),x===ee.UNSIGNED_INT_5_9_9_9_REV&&(ne=ee.RGB9_E5)}if(y===ee.RGB_INTEGER&&(x===ee.UNSIGNED_BYTE&&(ne=ee.RGB8UI),x===ee.UNSIGNED_SHORT&&(ne=ee.RGB16UI),x===ee.UNSIGNED_INT&&(ne=ee.RGB32UI),x===ee.BYTE&&(ne=ee.RGB8I),x===ee.SHORT&&(ne=ee.RGB16I),x===ee.INT&&(ne=ee.RGB32I)),y===ee.RGBA){const ie=z?Sr:aa.getTransfer(E);x===ee.FLOAT&&(ne=ee.RGBA32F),x===ee.HALF_FLOAT&&(ne=ee.RGBA16F),x===ee.UNSIGNED_BYTE&&(ne=ee.RGBA8),x===ee.UNSIGNED_SHORT&&(ne=ee.RGBA16),x===ee.UNSIGNED_INT&&(ne=ee.RGBA32UI),x===ee.BYTE&&(ne=ee.RGBA8I),x===ee.SHORT&&(ne=ee.RGBA16I),x===ee.INT&&(ne=ee.RGBA32I),x===ee.UNSIGNED_BYTE&&(ne=ie===On?ee.SRGB8_ALPHA8:ee.RGBA8),x===ee.UNSIGNED_SHORT_4_4_4_4&&(ne=ee.RGBA4),x===ee.UNSIGNED_SHORT_5_5_5_1&&(ne=ee.RGB5_A1)}return y===ee.RGBA_INTEGER&&(x===ee.UNSIGNED_BYTE&&(ne=ee.RGBA8UI),x===ee.UNSIGNED_SHORT&&(ne=ee.RGBA16UI),x===ee.UNSIGNED_INT&&(ne=ee.RGBA32UI),x===ee.BYTE&&(ne=ee.RGBA8I),x===ee.SHORT&&(ne=ee.RGBA16I),x===ee.INT&&(ne=ee.RGBA32I)),y===ee.DEPTH_COMPONENT&&(x===ee.UNSIGNED_SHORT&&(ne=ee.DEPTH_COMPONENT16),x===ee.UNSIGNED_INT&&(ne=ee.DEPTH_COMPONENT24),x===ee.FLOAT&&(ne=ee.DEPTH_COMPONENT32F)),y===ee.DEPTH_STENCIL&&x===ee.UNSIGNED_INT_24_8&&(ne=ee.DEPTH24_STENCIL8),(ne===ee.R16F||ne===ee.R32F||ne===ee.RG16F||ne===ee.RG32F||ne===ee.RGBA16F||ne===ee.RGBA32F)&&te.get("EXT_color_buffer_float"),ne}setTextureParameters(a,y){const{gl:x,extensions:E,backend:z}=this,ee=aa.getPrimaries(aa.workingColorSpace),te=y.colorSpace===vn?null:aa.getPrimaries(y.colorSpace),ne=y.colorSpace===vn||ee===te?x.NONE:x.BROWSER_DEFAULT_WEBGL;x.pixelStorei(x.UNPACK_FLIP_Y_WEBGL,y.flipY),x.pixelStorei(x.UNPACK_PREMULTIPLY_ALPHA_WEBGL,y.premultiplyAlpha),x.pixelStorei(x.UNPACK_ALIGNMENT,y.unpackAlignment),x.pixelStorei(x.UNPACK_COLORSPACE_CONVERSION_WEBGL,ne),x.texParameteri(a,x.TEXTURE_WRAP_S,R1[y.wrapS]),x.texParameteri(a,x.TEXTURE_WRAP_T,R1[y.wrapT]),(a===x.TEXTURE_3D||a===x.TEXTURE_2D_ARRAY)&&(y.isArrayTexture||x.texParameteri(a,x.TEXTURE_WRAP_R,R1[y.wrapR])),x.texParameteri(a,x.TEXTURE_MAG_FILTER,K3[y.magFilter]);const ie=y.mipmaps!==void 0&&y.mipmaps.length>0,ae=y.minFilter===Io&&ie?tu:y.minFilter;if(x.texParameteri(a,x.TEXTURE_MIN_FILTER,K3[ae]),y.compareFunction&&(x.texParameteri(a,x.TEXTURE_COMPARE_MODE,x.COMPARE_REF_TO_TEXTURE),x.texParameteri(a,x.TEXTURE_COMPARE_FUNC,EF[y.compareFunction])),E.has("EXT_texture_filter_anisotropic")===!0){if(y.magFilter===fo||y.minFilter!==mu&&y.minFilter!==tu||y.type===Vo&&E.has("OES_texture_float_linear")===!1)return;if(y.anisotropy>1){const oe=E.get("EXT_texture_filter_anisotropic");x.texParameterf(a,oe.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(y.anisotropy,z.getMaxAnisotropy()))}}}createDefaultTexture(a){const{gl:y,backend:x,defaultTextures:E}=this,z=this.getGLTextureType(a);let ee=E[z];ee===void 0&&(ee=y.createTexture(),x.state.bindTexture(z,ee),y.texParameteri(z,y.TEXTURE_MIN_FILTER,y.NEAREST),y.texParameteri(z,y.TEXTURE_MAG_FILTER,y.NEAREST),E[z]=ee),x.set(a,{textureGPU:ee,glTextureType:z,isDefault:!0})}createTexture(a,y){const{gl:x,backend:E}=this,{levels:z,width:ee,height:te,depth:ne}=y,ie=E.utils.convert(a.format,a.colorSpace),ae=E.utils.convert(a.type),oe=this.getInternalFormat(a.internalFormat,ie,ae,a.colorSpace,a.isVideoTexture),le=x.createTexture(),de=this.getGLTextureType(a);E.state.bindTexture(de,le),this.setTextureParameters(de,a),a.isArrayTexture||a.isDataArrayTexture||a.isCompressedArrayTexture?x.texStorage3D(x.TEXTURE_2D_ARRAY,z,oe,ee,te,ne):a.isData3DTexture?x.texStorage3D(x.TEXTURE_3D,z,oe,ee,te,ne):a.isVideoTexture||x.texStorage2D(de,z,oe,ee,te),E.set(a,{textureGPU:le,glTextureType:de,glFormat:ie,glType:ae,glInternalFormat:oe})}copyBufferToTexture(a,y){const{gl:x,backend:E}=this,{textureGPU:z,glTextureType:ee,glFormat:te,glType:ne}=E.get(y),{width:ie,height:ae}=y.source.data;x.bindBuffer(x.PIXEL_UNPACK_BUFFER,a),E.state.bindTexture(ee,z),x.pixelStorei(x.UNPACK_FLIP_Y_WEBGL,!1),x.pixelStorei(x.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),x.texSubImage2D(ee,0,0,0,ie,ae,te,ne,0),x.bindBuffer(x.PIXEL_UNPACK_BUFFER,null),E.state.unbindTexture()}updateTexture(a,y){const{gl:x}=this,{width:E,height:z}=y,{textureGPU:ee,glTextureType:te,glFormat:ne,glType:ie,glInternalFormat:ae}=this.backend.get(a);if(!(a.isRenderTargetTexture||ee===void 0))if(this.backend.state.bindTexture(te,ee),this.setTextureParameters(te,a),a.isCompressedTexture){const oe=a.mipmaps,le=y.image;for(let de=0;de0,le=y.renderTarget?y.renderTarget.height:this.backend.getDrawingBufferSize().y;if(oe){const de=te!==0||ne!==0;let he,ye;if(a.isDepthTexture===!0?(he=E.DEPTH_BUFFER_BIT,ye=E.DEPTH_ATTACHMENT,y.stencil&&(he|=E.STENCIL_BUFFER_BIT)):(he=E.COLOR_BUFFER_BIT,ye=E.COLOR_ATTACHMENT0),de){const Ae=this.backend.get(y.renderTarget),me=Ae.framebuffers[y.getCacheKey()],Ce=Ae.msaaFrameBuffer;z.bindFramebuffer(E.DRAW_FRAMEBUFFER,me),z.bindFramebuffer(E.READ_FRAMEBUFFER,Ce);const Ee=le-ne-ae;E.blitFramebuffer(te,Ee,te+ie,Ee+ae,te,Ee,te+ie,Ee+ae,he,E.NEAREST),z.bindFramebuffer(E.READ_FRAMEBUFFER,me),z.bindTexture(E.TEXTURE_2D,ee),E.copyTexSubImage2D(E.TEXTURE_2D,0,0,0,te,Ee,ie,ae),z.unbindTexture()}else{const Ae=E.createFramebuffer();z.bindFramebuffer(E.DRAW_FRAMEBUFFER,Ae),E.framebufferTexture2D(E.DRAW_FRAMEBUFFER,ye,E.TEXTURE_2D,ee,0),E.blitFramebuffer(0,0,ie,ae,0,0,ie,ae,he,E.NEAREST),E.deleteFramebuffer(Ae)}}else z.bindTexture(E.TEXTURE_2D,ee),E.copyTexSubImage2D(E.TEXTURE_2D,0,0,0,te,le-ae-ne,ie,ae),z.unbindTexture();a.generateMipmaps&&this.generateMipmaps(a),this.backend._setFramebuffer(y)}setupRenderBufferStorage(a,y,x,E=!1){const{gl:z}=this,ee=y.renderTarget,{depthTexture:te,depthBuffer:ne,stencilBuffer:ie,width:ae,height:oe}=ee;if(z.bindRenderbuffer(z.RENDERBUFFER,a),ne&&!ie){let le=z.DEPTH_COMPONENT24;E===!0?this.extensions.get("WEBGL_multisampled_render_to_texture").renderbufferStorageMultisampleEXT(z.RENDERBUFFER,ee.samples,le,ae,oe):x>0?(te&&te.isDepthTexture&&te.type===z.FLOAT&&(le=z.DEPTH_COMPONENT32F),z.renderbufferStorageMultisample(z.RENDERBUFFER,x,le,ae,oe)):z.renderbufferStorage(z.RENDERBUFFER,le,ae,oe),z.framebufferRenderbuffer(z.FRAMEBUFFER,z.DEPTH_ATTACHMENT,z.RENDERBUFFER,a)}else ne&&ie&&(x>0?z.renderbufferStorageMultisample(z.RENDERBUFFER,x,z.DEPTH24_STENCIL8,ae,oe):z.renderbufferStorage(z.RENDERBUFFER,z.DEPTH_STENCIL,ae,oe),z.framebufferRenderbuffer(z.FRAMEBUFFER,z.DEPTH_STENCIL_ATTACHMENT,z.RENDERBUFFER,a));z.bindRenderbuffer(z.RENDERBUFFER,null)}copyTextureToBuffer(a,y,x,E,z,ee){return Fs(this,null,function*(){const{backend:te,gl:ne}=this,{textureGPU:ie,glFormat:ae,glType:oe}=this.backend.get(a),le=ne.createFramebuffer();ne.bindFramebuffer(ne.READ_FRAMEBUFFER,le);const de=a.isCubeTexture?ne.TEXTURE_CUBE_MAP_POSITIVE_X+ee:ne.TEXTURE_2D;ne.framebufferTexture2D(ne.READ_FRAMEBUFFER,ne.COLOR_ATTACHMENT0,de,ie,0);const he=this._getTypedArrayType(oe),ye=this._getBytesPerTexel(oe,ae),me=E*z*ye,Ce=ne.createBuffer();ne.bindBuffer(ne.PIXEL_PACK_BUFFER,Ce),ne.bufferData(ne.PIXEL_PACK_BUFFER,me,ne.STREAM_READ),ne.readPixels(y,x,E,z,ae,oe,0),ne.bindBuffer(ne.PIXEL_PACK_BUFFER,null),yield te.utils._clientWaitAsync();const Ee=new he(me/he.BYTES_PER_ELEMENT);return ne.bindBuffer(ne.PIXEL_PACK_BUFFER,Ce),ne.getBufferSubData(ne.PIXEL_PACK_BUFFER,0,Ee),ne.bindBuffer(ne.PIXEL_PACK_BUFFER,null),ne.deleteFramebuffer(le),Ee})}_getTypedArrayType(a){const{gl:y}=this;if(a===y.UNSIGNED_BYTE)return Uint8Array;if(a===y.UNSIGNED_SHORT_4_4_4_4||a===y.UNSIGNED_SHORT_5_5_5_1||a===y.UNSIGNED_SHORT_5_6_5||a===y.UNSIGNED_SHORT)return Uint16Array;if(a===y.UNSIGNED_INT)return Uint32Array;if(a===y.HALF_FLOAT)return Uint16Array;if(a===y.FLOAT)return Float32Array;throw new Error(`Unsupported WebGL type: ${a}`)}_getBytesPerTexel(a,y){const{gl:x}=this;let E=0;if(a===x.UNSIGNED_BYTE&&(E=1),(a===x.UNSIGNED_SHORT_4_4_4_4||a===x.UNSIGNED_SHORT_5_5_5_1||a===x.UNSIGNED_SHORT_5_6_5||a===x.UNSIGNED_SHORT||a===x.HALF_FLOAT)&&(E=2),(a===x.UNSIGNED_INT||a===x.FLOAT)&&(E=4),y===x.RGBA)return E*4;if(y===x.RGB)return E*3;if(y===x.ALPHA)return E}}function wF(b){return b.isDataTexture?b.image.data:typeof HTMLImageElement!="undefined"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&b instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&b instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&b instanceof OffscreenCanvas?b:b.data}class R_{constructor(a){this.backend=a,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(a){let y=this.extensions[a];return y===void 0&&(y=this.gl.getExtension(a),this.extensions[a]=y),y}has(a){return this.availableExtensions.includes(a)}}class z_{constructor(a){this.backend=a,this.maxAnisotropy=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const a=this.backend.gl,y=this.backend.extensions;if(y.has("EXT_texture_filter_anisotropic")===!0){const x=y.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=a.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}}const CF={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBKIT_WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-bc",EXT_texture_compression_bptc:"texture-compression-bptc",EXT_disjoint_timer_query_webgl2:"timestamp-query",OVR_multiview2:"OVR_multiview2"};class k_{constructor(a){this.gl=a.gl,this.extensions=a.extensions,this.info=a.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(a,y){const{gl:x,mode:E,object:z,type:ee,info:te,index:ne}=this;ne!==0?x.drawElements(E,y,ee,a):x.drawArrays(E,a,y),te.update(z,y,1)}renderInstances(a,y,x){const{gl:E,mode:z,type:ee,index:te,object:ne,info:ie}=this;x!==0&&(te!==0?E.drawElementsInstanced(z,y,ee,a,x):E.drawArraysInstanced(z,a,y,x),ie.update(ne,y,x))}renderMultiDraw(a,y,x){const{extensions:E,mode:z,object:ee,info:te}=this;if(x===0)return;const ne=E.get("WEBGL_multi_draw");if(ne===null)for(let ie=0;iethis.maxQueries)return Ou(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const y=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryStates.set(y,"inactive"),this.queryOffsets.set(a.id,y),y}beginQuery(a){if(!this.trackTimestamp||this.isDisposed)return;const y=this.queryOffsets.get(a.id);if(y==null||this.activeQuery!==null)return;const x=this.queries[y];if(x)try{this.queryStates.get(y)==="inactive"&&(this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,x),this.activeQuery=y,this.queryStates.set(y,"started"))}catch(E){console.error("Error in beginQuery:",E),this.activeQuery=null,this.queryStates.set(y,"inactive")}}endQuery(a){if(!this.trackTimestamp||this.isDisposed)return;const y=this.queryOffsets.get(a.id);if(y!=null&&this.activeQuery===y)try{this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.queryStates.set(y,"ended"),this.activeQuery=null}catch(x){console.error("Error in endQuery:",x),this.queryStates.set(y,"inactive"),this.activeQuery=null}}resolveQueriesAsync(){return Fs(this,null,function*(){if(!this.trackTimestamp||this.pendingResolve)return this.lastValue;this.pendingResolve=!0;try{const a=[];for(const[E,z]of this.queryStates)if(z==="ended"){const ee=this.queries[E];a.push(this.resolveQuery(ee))}if(a.length===0)return this.lastValue;const x=(yield Promise.all(a)).reduce((E,z)=>E+z,0);return this.lastValue=x,this.currentQueryIndex=0,this.queryOffsets.clear(),this.queryStates.clear(),this.activeQuery=null,x}catch(a){return console.error("Error resolving queries:",a),this.lastValue}finally{this.pendingResolve=!1}})}resolveQuery(a){return Fs(this,null,function*(){return new Promise(y=>{if(this.isDisposed){y(this.lastValue);return}let x,E=!1;const z=()=>{x&&(clearTimeout(x),x=null)},ee=ne=>{E||(E=!0,z(),y(ne))},te=()=>{if(this.isDisposed){ee(this.lastValue);return}try{if(this.gl.getParameter(this.ext.GPU_DISJOINT_EXT)){ee(this.lastValue);return}if(!this.gl.getQueryParameter(a,this.gl.QUERY_RESULT_AVAILABLE)){x=setTimeout(te,1);return}const ae=this.gl.getQueryParameter(a,this.gl.QUERY_RESULT);y(Number(ae)/1e6)}catch(ne){console.error("Error checking query:",ne),y(this.lastValue)}};te()})})}dispose(){if(!this.isDisposed&&(this.isDisposed=!0,!!this.trackTimestamp)){for(const a of this.queries)this.gl.deleteQuery(a);this.queries=[],this.queryStates.clear(),this.queryOffsets.clear(),this.lastValue=0,this.activeQuery=null}}}class BF extends xF{constructor(a={}){super(a),this.isWebGLBackend=!0,this.attributeUtils=null,this.extensions=null,this.capabilities=null,this.textureUtils=null,this.bufferRenderer=null,this.gl=null,this.state=null,this.utils=null,this.vaoCache={},this.transformFeedbackCache={},this.discard=!1,this.disjoint=null,this.parallel=null,this._currentContext=null,this._knownBindings=new WeakSet,this._supportsInvalidateFramebuffer=typeof navigator=="undefined"?!1:/OculusBrowser/g.test(navigator.userAgent),this._xrFramebuffer=null}init(a){super.init(a);const y=this.parameters,x={antialias:a.samples>0,alpha:!0,depth:a.depth,stencil:a.stencil},E=y.context!==void 0?y.context:a.domElement.getContext("webgl2",x);function z(ee){ee.preventDefault();const te={api:"WebGL",message:ee.statusMessage||"Unknown reason",reason:null,originalEvent:ee};a.onDeviceLost(te)}this._onContextLost=z,a.domElement.addEventListener("webglcontextlost",z,!1),this.gl=E,this.extensions=new R_(this),this.capabilities=new z_(this),this.attributeUtils=new F_(this),this.textureUtils=new O_(this),this.bufferRenderer=new k_(this),this.state=new N_(this),this.utils=new L_(this),this.extensions.get("EXT_color_buffer_float"),this.extensions.get("WEBGL_clip_cull_distance"),this.extensions.get("OES_texture_float_linear"),this.extensions.get("EXT_color_buffer_half_float"),this.extensions.get("WEBGL_multisampled_render_to_texture"),this.extensions.get("WEBGL_render_shared_exponent"),this.extensions.get("WEBGL_multi_draw"),this.extensions.get("OVR_multiview2"),this.disjoint=this.extensions.get("EXT_disjoint_timer_query_webgl2"),this.parallel=this.extensions.get("KHR_parallel_shader_compile")}get coordinateSystem(){return Ut}getArrayBufferAsync(a){return Fs(this,null,function*(){return yield this.attributeUtils.getArrayBufferAsync(a)})}waitForGPU(){return Fs(this,null,function*(){yield this.utils._clientWaitAsync()})}makeXRCompatible(){return Fs(this,null,function*(){this.gl.getContextAttributes().xrCompatible!==!0&&(yield this.gl.makeXRCompatible())})}setXRTarget(a){this._xrFramebuffer=a}setXRRenderTargetTextures(a,y,x=null){const E=this.gl;if(this.set(a.texture,{textureGPU:y,glInternalFormat:E.RGBA8}),x!==null){const z=a.stencilBuffer?E.DEPTH24_STENCIL8:E.DEPTH_COMPONENT24;this.set(a.depthTexture,{textureGPU:x,glInternalFormat:z}),this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&a._autoAllocateDepthBuffer===!0&&a.multiview===!1&&console.warn("THREE.WebGLBackend: Render-to-texture extension was disabled because an external texture was provided"),a._autoAllocateDepthBuffer=!1}}initTimestampQuery(a){if(!this.disjoint||!this.trackTimestamp)return;const y=a.isComputeNode?"compute":"render";this.timestampQueryPool[y]||(this.timestampQueryPool[y]=new H_(this.gl,y,2048));const x=this.timestampQueryPool[y];x.allocateQueriesForContext(a)!==null&&x.beginQuery(a)}prepareTimestampBuffer(a){if(!this.disjoint||!this.trackTimestamp)return;const y=a.isComputeNode?"compute":"render";this.timestampQueryPool[y].endQuery(a)}getContext(){return this.gl}beginRender(a){const{state:y}=this,x=this.get(a);if(a.viewport)this.updateViewport(a);else{const{width:z,height:ee}=this.getDrawingBufferSize();y.viewport(0,0,z,ee)}if(a.scissor){const{x:z,y:ee,width:te,height:ne}=a.scissorValue;y.scissor(z,a.height-ne-ee,te,ne)}this.initTimestampQuery(a),x.previousContext=this._currentContext,this._currentContext=a,this._setFramebuffer(a),this.clear(a.clearColor,a.clearDepth,a.clearStencil,a,!1);const E=a.occlusionQueryCount;E>0&&(x.currentOcclusionQueries=x.occlusionQueries,x.currentOcclusionQueryObjects=x.occlusionQueryObjects,x.lastOcclusionObject=null,x.occlusionQueries=new Array(E),x.occlusionQueryObjects=new Array(E),x.occlusionQueryIndex=0)}finishRender(a){const{gl:y,state:x}=this,E=this.get(a),z=E.previousContext;x.resetVertexState();const ee=a.occlusionQueryCount;ee>0&&(ee>E.occlusionQueryIndex&&y.endQuery(y.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(a));const te=a.textures;if(te!==null)for(let ie=0;ie0&&this._useMultisampledExtension(ne)===!1){const ae=ie.framebuffers[a.getCacheKey()];let oe=y.COLOR_BUFFER_BIT;ne.resolveDepthBuffer&&(ne.depthBuffer&&(oe|=y.DEPTH_BUFFER_BIT),ne.stencilBuffer&&ne.resolveStencilBuffer&&(oe|=y.STENCIL_BUFFER_BIT));const le=ie.msaaFrameBuffer,de=ie.msaaRenderbuffers,he=a.textures,ye=he.length>1;if(x.bindFramebuffer(y.READ_FRAMEBUFFER,le),x.bindFramebuffer(y.DRAW_FRAMEBUFFER,ae),ye)for(let Ae=0;Ae{let ne=0;for(let ie=0;ie{y.isBatchedMesh?y._multiDrawInstances!==null?(Ou("THREE.WebGLBackend: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Ee.renderMultiDrawInstances(y._multiDrawStarts,y._multiDrawCounts,y._multiDrawCount,y._multiDrawInstances)):this.hasFeature("WEBGL_multi_draw")?Ee.renderMultiDraw(y._multiDrawStarts,y._multiDrawCounts,y._multiDrawCount):Ou("THREE.WebGLRenderer: WEBGL_multi_draw not supported."):Ne>1?Ee.renderInstances(Fe,Be,Ne):Ee.render(Fe,Be)};if(a.camera.isArrayCamera===!0&&a.camera.cameras.length>0&&a.camera.isMultiViewCamera===!1){const Re=this.get(a.camera),Oe=a.camera.cameras,ze=a.getBindingGroup("cameraIndex").bindings[0];if(Re.indexesGPU===void 0||Re.indexesGPU.length!==Oe.length){const tn=new Uint32Array([0,0,0,0]),cn=[];for(let kt=0,pt=Oe.length;kt{const le=this.parallel,de=()=>{x.getProgramParameter(te,le.COMPLETION_STATUS_KHR)?(this._completeCompile(a,E),oe()):requestAnimationFrame(de)};de()});y.push(ae);return}this._completeCompile(a,E)}_handleSource(a,y){const x=a.split(` `),E=[],z=Math.max(y-6,0),ee=Math.min(y+6,x.length);for(let te=z;te":" "} ${ne}: ${x[te]}`)}return E.join(` `)}_getShaderErrors(a,y,x){const E=a.getShaderParameter(y,a.COMPILE_STATUS),ee=(a.getShaderInfoLog(y)||"").trim();if(E&&ee==="")return"";const te=/ERROR: 0:(\d+)/.exec(ee);if(te){const ne=parseInt(te[1]);return x.toUpperCase()+` `+ee+` `+this._handleSource(a.getShaderSource(y),ne)}else return ee}_logProgramError(a,y,x){if(this.renderer.debug.checkShaderErrors){const E=this.gl,ee=(E.getProgramInfoLog(a)||"").trim();if(E.getProgramParameter(a,E.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(E,a,x,y);else{const te=this._getShaderErrors(E,x,"vertex"),ne=this._getShaderErrors(E,y,"fragment");console.error("THREE.WebGLProgram: Shader Error "+E.getError()+" - VALIDATE_STATUS "+E.getProgramParameter(a,E.VALIDATE_STATUS)+` Program Info Log: `+ee+` `+te+` `+ne)}else ee!==""&&console.warn("THREE.WebGLProgram: Program Info Log:",ee)}}_completeCompile(a,y){const{state:x,gl:E}=this,z=this.get(y),{programGPU:ee,fragmentShader:te,vertexShader:ne}=z;E.getProgramParameter(ee,E.LINK_STATUS)===!1&&this._logProgramError(ee,te,ne),x.useProgram(ee);const ie=a.getBindings();this._setupBindings(ie,ee),this.set(y,{programGPU:ee})}createComputePipeline(a,y){const{state:x,gl:E}=this,z={stage:"fragment",code:`#version 300 es precision highp float; void main() {}`};this.createProgram(z);const{computeProgram:ee}=a,te=E.createProgram(),ne=this.get(z).shaderGPU,ie=this.get(ee).shaderGPU,ae=ee.transforms,oe=[],le=[];for(let Ae=0;AeCF[E]===a),x=this.extensions;for(let E=0;E1,de=z.isXRRenderTarget===!0,he=de===!0&&z._hasExternalTextures===!0;let ye=ee.msaaFrameBuffer,Ae=ee.depthRenderbuffer;const me=this.extensions.get("WEBGL_multisampled_render_to_texture"),Ce=this.extensions.get("OVR_multiview2"),Ee=this._useMultisampledExtension(z),Be=G9(a);let Ne;if(ae?(ee.cubeFramebuffers||(ee.cubeFramebuffers={}),Ne=ee.cubeFramebuffers[Be]):de&&he===!1?Ne=this._xrFramebuffer:(ee.framebuffers||(ee.framebuffers={}),Ne=ee.framebuffers[Be]),Ne===void 0){Ne=y.createFramebuffer(),x.bindFramebuffer(y.FRAMEBUFFER,Ne);const Fe=a.textures,ke=[];if(ae){ee.cubeFramebuffers[Be]=Ne;const{textureGPU:Oe}=this.get(Fe[0]),ze=this.renderer._activeCubeFace;y.framebufferTexture2D(y.FRAMEBUFFER,y.COLOR_ATTACHMENT0,y.TEXTURE_CUBE_MAP_POSITIVE_X+ze,Oe,0)}else{ee.framebuffers[Be]=Ne;for(let Oe=0;Oe0&&Ee===!1&&!z.multiview){if(ye===void 0){const Fe=[];ye=y.createFramebuffer(),x.bindFramebuffer(y.FRAMEBUFFER,ye);const ke=[],Re=a.textures;for(let Oe=0;Oe0&&this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&a._autoAllocateDepthBuffer!==!1}dispose(){const a=this.extensions.get("WEBGL_lose_context");a&&a.loseContext(),this.renderer.domElement.removeEventListener("webglcontextlost",this._onContextLost)}}const dy={PointList:"point-list",LineList:"line-list",LineStrip:"line-strip",TriangleList:"triangle-list",TriangleStrip:"triangle-strip"},Gc={Never:"never",Less:"less",Equal:"equal",LessEqual:"less-equal",Greater:"greater",NotEqual:"not-equal",GreaterEqual:"greater-equal",Always:"always"},Bd={Store:"store"},Ro={Load:"load",Clear:"clear"},q3={CCW:"ccw"},_3={None:"none",Front:"front",Back:"back"},fy={Uint16:"uint16",Uint32:"uint32"},an={R8Unorm:"r8unorm",R8Snorm:"r8snorm",R8Uint:"r8uint",R8Sint:"r8sint",R16Uint:"r16uint",R16Sint:"r16sint",R16Float:"r16float",RG8Unorm:"rg8unorm",RG8Snorm:"rg8snorm",RG8Uint:"rg8uint",RG8Sint:"rg8sint",R32Uint:"r32uint",R32Sint:"r32sint",R32Float:"r32float",RG16Uint:"rg16uint",RG16Sint:"rg16sint",RG16Float:"rg16float",RGBA8Unorm:"rgba8unorm",RGBA8UnormSRGB:"rgba8unorm-srgb",RGBA8Snorm:"rgba8snorm",RGBA8Uint:"rgba8uint",RGBA8Sint:"rgba8sint",BGRA8Unorm:"bgra8unorm",BGRA8UnormSRGB:"bgra8unorm-srgb",RGB9E5UFloat:"rgb9e5ufloat",RGB10A2Unorm:"rgb10a2unorm",RG11B10UFloat:"rgb10a2unorm",RG32Uint:"rg32uint",RG32Sint:"rg32sint",RG32Float:"rg32float",RGBA16Uint:"rgba16uint",RGBA16Sint:"rgba16sint",RGBA16Float:"rgba16float",RGBA32Uint:"rgba32uint",RGBA32Sint:"rgba32sint",RGBA32Float:"rgba32float",Depth16Unorm:"depth16unorm",Depth24Plus:"depth24plus",Depth24PlusStencil8:"depth24plus-stencil8",Depth32Float:"depth32float",Depth32FloatStencil8:"depth32float-stencil8",BC1RGBAUnorm:"bc1-rgba-unorm",BC1RGBAUnormSRGB:"bc1-rgba-unorm-srgb",BC2RGBAUnorm:"bc2-rgba-unorm",BC2RGBAUnormSRGB:"bc2-rgba-unorm-srgb",BC3RGBAUnorm:"bc3-rgba-unorm",BC3RGBAUnormSRGB:"bc3-rgba-unorm-srgb",BC4RUnorm:"bc4-r-unorm",BC4RSnorm:"bc4-r-snorm",BC5RGUnorm:"bc5-rg-unorm",BC5RGSnorm:"bc5-rg-snorm",BC6HRGBUFloat:"bc6h-rgb-ufloat",BC6HRGBFloat:"bc6h-rgb-float",BC7RGBAUnorm:"bc7-rgba-unorm",BC7RGBAUnormSRGB:"bc7-rgba-srgb",ETC2RGB8Unorm:"etc2-rgb8unorm",ETC2RGB8UnormSRGB:"etc2-rgb8unorm-srgb",ETC2RGB8A1Unorm:"etc2-rgb8a1unorm",ETC2RGB8A1UnormSRGB:"etc2-rgb8a1unorm-srgb",ETC2RGBA8Unorm:"etc2-rgba8unorm",ETC2RGBA8UnormSRGB:"etc2-rgba8unorm-srgb",EACR11Unorm:"eac-r11unorm",EACR11Snorm:"eac-r11snorm",EACRG11Unorm:"eac-rg11unorm",EACRG11Snorm:"eac-rg11snorm",ASTC4x4Unorm:"astc-4x4-unorm",ASTC4x4UnormSRGB:"astc-4x4-unorm-srgb",ASTC5x4Unorm:"astc-5x4-unorm",ASTC5x4UnormSRGB:"astc-5x4-unorm-srgb",ASTC5x5Unorm:"astc-5x5-unorm",ASTC5x5UnormSRGB:"astc-5x5-unorm-srgb",ASTC6x5Unorm:"astc-6x5-unorm",ASTC6x5UnormSRGB:"astc-6x5-unorm-srgb",ASTC6x6Unorm:"astc-6x6-unorm",ASTC6x6UnormSRGB:"astc-6x6-unorm-srgb",ASTC8x5Unorm:"astc-8x5-unorm",ASTC8x5UnormSRGB:"astc-8x5-unorm-srgb",ASTC8x6Unorm:"astc-8x6-unorm",ASTC8x6UnormSRGB:"astc-8x6-unorm-srgb",ASTC8x8Unorm:"astc-8x8-unorm",ASTC8x8UnormSRGB:"astc-8x8-unorm-srgb",ASTC10x5Unorm:"astc-10x5-unorm",ASTC10x5UnormSRGB:"astc-10x5-unorm-srgb",ASTC10x6Unorm:"astc-10x6-unorm",ASTC10x6UnormSRGB:"astc-10x6-unorm-srgb",ASTC10x8Unorm:"astc-10x8-unorm",ASTC10x8UnormSRGB:"astc-10x8-unorm-srgb",ASTC10x10Unorm:"astc-10x10-unorm",ASTC10x10UnormSRGB:"astc-10x10-unorm-srgb",ASTC12x10Unorm:"astc-12x10-unorm",ASTC12x10UnormSRGB:"astc-12x10-unorm-srgb",ASTC12x12Unorm:"astc-12x12-unorm",ASTC12x12UnormSRGB:"astc-12x12-unorm-srgb"},$3={ClampToEdge:"clamp-to-edge",Repeat:"repeat",MirrorRepeat:"mirror-repeat"},EA={Linear:"linear",Nearest:"nearest"},to={Zero:"zero",One:"one",Src:"src",OneMinusSrc:"one-minus-src",SrcAlpha:"src-alpha",OneMinusSrcAlpha:"one-minus-src-alpha",Dst:"dst",OneMinusDst:"one-minus-dst",DstAlpha:"dst-alpha",OneMinusDstAlpha:"one-minus-dst-alpha",SrcAlphaSaturated:"src-alpha-saturated",Constant:"constant",OneMinusConstant:"one-minus-constant"},wA={Add:"add",Subtract:"subtract",ReverseSubtract:"reverse-subtract",Min:"min",Max:"max"},SF={None:0,All:15},fv={Keep:"keep",Zero:"zero",Replace:"replace",Invert:"invert",IncrementClamp:"increment-clamp",DecrementClamp:"decrement-clamp",IncrementWrap:"increment-wrap",DecrementWrap:"decrement-wrap"},eM={Storage:"storage",ReadOnlyStorage:"read-only-storage"},tM={WriteOnly:"write-only",ReadOnly:"read-only",ReadWrite:"read-write"},MF={NonFiltering:"non-filtering",Comparison:"comparison"},CA={Float:"float",UnfilterableFloat:"unfilterable-float",Depth:"depth",SInt:"sint",UInt:"uint"},DF={TwoD:"2d",ThreeD:"3d"},ju={TwoD:"2d",TwoDArray:"2d-array",Cube:"cube",ThreeD:"3d"},U_={All:"all"},z1={Vertex:"vertex",Instance:"instance"},nM={CoreFeaturesAndLimits:"core-features-and-limits",DepthClipControl:"depth-clip-control",Depth32FloatStencil8:"depth32float-stencil8",TextureCompressionBC:"texture-compression-bc",TextureCompressionBCSliced3D:"texture-compression-bc-sliced-3d",TextureCompressionETC2:"texture-compression-etc2",TextureCompressionASTC:"texture-compression-astc",TextureCompressionASTCSliced3D:"texture-compression-astc-sliced-3d",TimestampQuery:"timestamp-query",IndirectFirstInstance:"indirect-first-instance",ShaderF16:"shader-f16",RG11B10UFloat:"rg11b10ufloat-renderable",BGRA8UNormStorage:"bgra8unorm-storage",Float32Filterable:"float32-filterable",Float32Blendable:"float32-blendable",ClipDistances:"clip-distances",DualSourceBlending:"dual-source-blending",Subgroups:"subgroups",TextureFormatsTier1:"texture-formats-tier1",TextureFormatsTier2:"texture-formats-tier2"};class j_ extends pF{constructor(a,y,x){super(a,y?y.value:null),this.textureNode=y,this.groupNode=x}update(){this.texture=this.textureNode.value}}class V_ extends cF{constructor(a,y){super(a,y?y.array:null),this.attribute=y,this.isStorageBuffer=!0}}let G_=0;class X_ extends V_{constructor(a,y){super("StorageBuffer_"+G_++,a?a.value:null),this.nodeUniform=a,this.access=a?a.access:Uc.READ_WRITE,this.groupNode=y}get buffer(){return this.nodeUniform.value}}class W_ extends av{constructor(a){super(),this.device=a;const y=` struct VarysStruct { @builtin( position ) Position: vec4, @location( 0 ) vTex : vec2 }; @vertex fn main( @builtin( vertex_index ) vertexIndex : u32 ) -> VarysStruct { var Varys : VarysStruct; var pos = array< vec2, 4 >( vec2( -1.0, 1.0 ), vec2( 1.0, 1.0 ), vec2( -1.0, -1.0 ), vec2( 1.0, -1.0 ) ); var tex = array< vec2, 4 >( vec2( 0.0, 0.0 ), vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ), vec2( 1.0, 1.0 ) ); Varys.vTex = tex[ vertexIndex ]; Varys.Position = vec4( pos[ vertexIndex ], 0.0, 1.0 ); return Varys; } `,x=` @group( 0 ) @binding( 0 ) var imgSampler : sampler; @group( 0 ) @binding( 1 ) var img : texture_2d; @fragment fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { return textureSample( img, imgSampler, vTex ); } `,E=` @group( 0 ) @binding( 0 ) var imgSampler : sampler; @group( 0 ) @binding( 1 ) var img : texture_2d; @fragment fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { return textureSample( img, imgSampler, vec2( vTex.x, 1.0 - vTex.y ) ); } `;this.mipmapSampler=a.createSampler({minFilter:EA.Linear}),this.flipYSampler=a.createSampler({minFilter:EA.Nearest}),this.transferPipelines={},this.flipYPipelines={},this.mipmapVertexShaderModule=a.createShaderModule({label:"mipmapVertex",code:y}),this.mipmapFragmentShaderModule=a.createShaderModule({label:"mipmapFragment",code:x}),this.flipYFragmentShaderModule=a.createShaderModule({label:"flipYFragment",code:E})}getTransferPipeline(a){let y=this.transferPipelines[a];return y===void 0&&(y=this.device.createRenderPipeline({label:`mipmap-${a}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.mipmapFragmentShaderModule,entryPoint:"main",targets:[{format:a}]},primitive:{topology:dy.TriangleStrip,stripIndexFormat:fy.Uint32},layout:"auto"}),this.transferPipelines[a]=y),y}getFlipYPipeline(a){let y=this.flipYPipelines[a];return y===void 0&&(y=this.device.createRenderPipeline({label:`flipY-${a}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.flipYFragmentShaderModule,entryPoint:"main",targets:[{format:a}]},primitive:{topology:dy.TriangleStrip,stripIndexFormat:fy.Uint32},layout:"auto"}),this.flipYPipelines[a]=y),y}flipY(a,y,x=0){const E=y.format,{width:z,height:ee}=y.size,te=this.getTransferPipeline(E),ne=this.getFlipYPipeline(E),ie=this.device.createTexture({size:{width:z,height:ee,depthOrArrayLayers:1},format:E,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),ae=a.createView({baseMipLevel:0,mipLevelCount:1,dimension:ju.TwoD,baseArrayLayer:x}),oe=ie.createView({baseMipLevel:0,mipLevelCount:1,dimension:ju.TwoD,baseArrayLayer:0}),le=this.device.createCommandEncoder({}),de=(he,ye,Ae)=>{const me=he.getBindGroupLayout(0),Ce=this.device.createBindGroup({layout:me,entries:[{binding:0,resource:this.flipYSampler},{binding:1,resource:ye}]}),Ee=le.beginRenderPass({colorAttachments:[{view:Ae,loadOp:Ro.Clear,storeOp:Bd.Store,clearValue:[0,0,0,0]}]});Ee.setPipeline(he),Ee.setBindGroup(0,Ce),Ee.draw(4,1,0,0),Ee.end()};de(te,ae,oe),de(ne,oe,ae),this.device.queue.submit([le.finish()]),ie.destroy()}generateMipmaps(a,y,x=0){const E=this.get(a);E.useCount===void 0&&(E.useCount=0,E.layers=[]);const z=E.layers[x]||this._mipmapCreateBundles(a,y,x),ee=this.device.createCommandEncoder({});this._mipmapRunBundles(ee,z),this.device.queue.submit([ee.finish()]),E.useCount!==0&&(E.layers[x]=z),E.useCount++}_mipmapCreateBundles(a,y,x){const E=this.getTransferPipeline(y.format),z=E.getBindGroupLayout(0);let ee=a.createView({baseMipLevel:0,mipLevelCount:1,dimension:ju.TwoD,baseArrayLayer:x});const te=[];for(let ne=1;ne1;for(let te=0;te]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,K_=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/ig,TF={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2":"vec2","vec2":"ivec2","vec2":"uvec2","vec2":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3":"vec3","vec3":"ivec3","vec3":"uvec3","vec3":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4":"vec4","vec4":"ivec4","vec4":"uvec4","vec4":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2":"mat2",mat2x2f:"mat2","mat3x3":"mat3",mat3x3f:"mat3","mat4x4":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_2d_array:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_depth_cube:"depthTexture",texture_depth_cube_array:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},q_=b=>{b=b.trim();const a=b.match(J_);if(a!==null&&a.length===4){const y=a[2],x=[];let E=null;for(;(E=K_.exec(y))!==null;)x.push({name:E[1],type:E[2]});const z=[];for(let ae=0;ae "+this.outputType:"";return`fn ${a} ( ${this.inputsCode.trim()} ) ${y}`+this.blockCode}}class $_ extends tF{parseFunction(a){return new __(a)}}const hy=typeof self!="undefined"?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},e$={[Uc.READ_ONLY]:"read",[Uc.WRITE_ONLY]:"write",[Uc.READ_WRITE]:"read_write"},IF={[Hd]:"repeat",[Nu]:"clamp",[bf]:"mirror"},k1={vertex:hy?hy.VERTEX:1,fragment:hy?hy.FRAGMENT:2,compute:hy?hy.COMPUTE:4},FF={instance:!0,swizzleAssign:!1,storageBuffer:!0},t$={"^^":"tsl_xor"},n$={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3",vec2:"vec2",ivec2:"vec2",uvec2:"vec2",bvec2:"vec2",vec3:"vec3",ivec3:"vec3",uvec3:"vec3",bvec3:"vec3",vec4:"vec4",ivec4:"vec4",uvec4:"vec4",bvec4:"vec4",mat2:"mat2x2",mat3:"mat3x3",mat4:"mat4x4"},NF={},Th={tsl_xor:new Uu("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new Uu("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new Uu("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new Uu("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new Uu("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new Uu("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new Uu("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2 { return vec2( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new Uu("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3 { return vec3( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new Uu("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4 { return vec4( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new Uu("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new Uu("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new Uu("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),biquadraticTexture:new Uu(` fn tsl_biquadraticTexture( map : texture_2d, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f { let res = vec2f( iRes ); let uvScaled = coord * res; let uvWrapping = ( ( uvScaled % res ) + res ) % res; // https://www.shadertoy.com/view/WtyXRy let uv = uvWrapping - 0.5; let iuv = floor( uv ); let f = fract( uv ); let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level ); let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level ); let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level ); let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level ); return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); } `)},Lb={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inversesqrt:"inverseSqrt",bitcast:"bitcast"};typeof navigator!="undefined"&&/Windows/g.test(navigator.userAgent)&&(Th.pow_float=new Uu("fn tsl_pow_float( a : f32, b : f32 ) -> f32 { return select( -pow( -a, b ), pow( a, b ), a > 0.0 ); }"),Th.pow_vec2=new Uu("fn tsl_pow_vec2( a : vec2f, b : vec2f ) -> vec2f { return vec2f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ) ); }",[Th.pow_float]),Th.pow_vec3=new Uu("fn tsl_pow_vec3( a : vec3f, b : vec3f ) -> vec3f { return vec3f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ) ); }",[Th.pow_float]),Th.pow_vec4=new Uu("fn tsl_pow_vec4( a : vec4f, b : vec4f ) -> vec4f { return vec4f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ), tsl_pow_float( a.w, b.w ) ); }",[Th.pow_float]),Lb.pow_float="tsl_pow_float",Lb.pow_vec2="tsl_pow_vec2",Lb.pow_vec3="tsl_pow_vec3",Lb.pow_vec4="tsl_pow_vec4");let LF="";(typeof navigator!="undefined"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(LF+=`diagnostic( off, derivative_uniformity ); `);class r$ extends $7{constructor(a,y){super(a,y,new $_),this.uniformGroups={},this.builtins={},this.directives={},this.scopedArrays=new Map}_generateTextureSample(a,y,x,E,z=this.shaderStage){return z==="fragment"?E?`textureSample( ${y}, ${y}_sampler, ${x}, ${E} )`:`textureSample( ${y}, ${y}_sampler, ${x} )`:this.generateTextureSampleLevel(a,y,x,"0",E)}generateTextureSampleLevel(a,y,x,E,z){return this.isUnfilterable(a)===!1?`textureSampleLevel( ${y}, ${y}_sampler, ${x}, ${E} )`:this.isFilteredTexture(a)?this.generateFilteredTexture(a,y,x,E):this.generateTextureLod(a,y,x,z,E)}generateWrapFunction(a){const y=`tsl_coord_${IF[a.wrapS]}S_${IF[a.wrapT]}_${a.isData3DTexture?"3d":"2d"}T`;let x=NF[y];if(x===void 0){const E=[],z=a.isData3DTexture?"vec3f":"vec2f";let ee=`fn ${y}( coord : ${z} ) -> ${z} { return ${z}( `;const te=(ne,ie)=>{ne===Hd?(E.push(Th.repeatWrapping_float),ee+=` tsl_repeatWrapping_float( coord.${ie} )`):ne===Nu?(E.push(Th.clampWrapping_float),ee+=` tsl_clampWrapping_float( coord.${ie} )`):ne===bf?(E.push(Th.mirrorWrapping_float),ee+=` tsl_mirrorWrapping_float( coord.${ie} )`):(ee+=` coord.${ie}`,console.warn(`WebGPURenderer: Unsupported texture wrap type "${ne}" for vertex shader.`))};te(a.wrapS,"x"),ee+=`, `,te(a.wrapT,"y"),a.isData3DTexture&&(ee+=`, `,te(a.wrapR,"z")),ee+=` ); } `,NF[y]=x=new Uu(ee,E)}return x.build(this),y}generateArrayDeclaration(a,y){return`array< ${this.getType(a)}, ${y} >`}generateTextureDimension(a,y,x){const E=this.getDataFromNode(a,this.shaderStage,this.globalCache);E.dimensionsSnippet===void 0&&(E.dimensionsSnippet={});let z=E.dimensionsSnippet[x];if(E.dimensionsSnippet[x]===void 0){let ee,te;const{primarySamples:ne}=this.renderer.backend.utils.getTextureSampleData(a),ie=ne>1;a.isData3DTexture?te="vec3":te="vec2",ie||a.isStorageTexture?ee=y:ee=`${y}${x?`, u32( ${x} )`:""}`,z=new Vw(new Qw(`textureDimensions( ${ee} )`,te)),E.dimensionsSnippet[x]=z,(a.isArrayTexture||a.isDataArrayTexture||a.isData3DTexture)&&(E.arrayLayerCount=new Vw(new Qw(`textureNumLayers(${y})`,"u32"))),a.isTextureCube&&(E.cubeFaceCount=new Vw(new Qw("6u","u32")))}return z.build(this)}generateFilteredTexture(a,y,x,E="0u"){this._include("biquadraticTexture");const z=this.generateWrapFunction(a),ee=this.generateTextureDimension(a,y,E);return`tsl_biquadraticTexture( ${y}, ${z}( ${x} ), ${ee}, u32( ${E} ) )`}generateTextureLod(a,y,x,E,z="0u"){const ee=this.generateWrapFunction(a),te=this.generateTextureDimension(a,y,z),ne=a.isData3DTexture?"vec3":"vec2",ie=`${ne}( ${ee}( ${x} ) * ${ne}( ${te} ) )`;return this.generateTextureLoad(a,y,ie,E,z)}generateTextureLoad(a,y,x,E,z="0u"){let ee;return E?ee=`textureLoad( ${y}, ${x}, ${E}, u32( ${z} ) )`:(ee=`textureLoad( ${y}, ${x}, u32( ${z} ) )`,this.renderer.backend.compatibilityMode&&a.isDepthTexture&&(ee+=".x")),ee}generateTextureStore(a,y,x,E,z){let ee;return E?ee=`textureStore( ${y}, ${x}, ${E}, ${z} )`:ee=`textureStore( ${y}, ${x}, ${z} )`,ee}isSampleCompare(a){return a.isDepthTexture===!0&&a.compareFunction!==null}isUnfilterable(a){return this.getComponentTypeFromTexture(a)!=="float"||!this.isAvailable("float32Filterable")&&a.isDataTexture===!0&&a.type===Vo||this.isSampleCompare(a)===!1&&a.minFilter===fo&&a.magFilter===fo||this.renderer.backend.utils.getTextureSampleData(a).primarySamples>1}generateTexture(a,y,x,E,z=this.shaderStage){let ee=null;return this.isUnfilterable(a)?ee=this.generateTextureLod(a,y,x,E,"0",z):ee=this._generateTextureSample(a,y,x,E,z),ee}generateTextureGrad(a,y,x,E,z,ee=this.shaderStage){if(ee==="fragment")return`textureSampleGrad( ${y}, ${y}_sampler, ${x}, ${E[0]}, ${E[1]} )`;console.error(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${ee} shader.`)}generateTextureCompare(a,y,x,E,z,ee=this.shaderStage){if(ee==="fragment")return a.isDepthTexture===!0&&a.isArrayTexture===!0?`textureSampleCompare( ${y}, ${y}_sampler, ${x}, ${z}, ${E} )`:`textureSampleCompare( ${y}, ${y}_sampler, ${x}, ${E} )`;console.error(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${ee} shader.`)}generateTextureLevel(a,y,x,E,z){return this.isUnfilterable(a)===!1?`textureSampleLevel( ${y}, ${y}_sampler, ${x}, ${E} )`:this.isFilteredTexture(a)?this.generateFilteredTexture(a,y,x,E):this.generateTextureLod(a,y,x,z,E)}generateTextureBias(a,y,x,E,z,ee=this.shaderStage){if(ee==="fragment")return`textureSampleBias( ${y}, ${y}_sampler, ${x}, ${E} )`;console.error(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${ee} shader.`)}getPropertyName(a,y=this.shaderStage){if(a.isNodeVarying===!0&&a.needsInterpolation===!0){if(y==="vertex")return`varyings.${a.name}`}else if(a.isNodeUniform===!0){const x=a.name,E=a.type;return E==="texture"||E==="cubeTexture"||E==="storageTexture"||E==="texture3D"?x:E==="buffer"||E==="storageBuffer"||E==="indirectStorageBuffer"?this.isCustomStruct(a)?x:x+".value":a.groupNode.name+"."+x}return super.getPropertyName(a)}getOutputStructName(){return"output"}getFunctionOperator(a){const y=t$[a];return y!==void 0?(this._include(y),y):null}getNodeAccess(a,y){return y!=="compute"?a.isAtomic===!0?(console.warn("WebGPURenderer: Atomic operations are only supported in compute shaders."),Uc.READ_WRITE):Uc.READ_ONLY:a.access}getStorageAccess(a,y){return e$[this.getNodeAccess(a,y)]}getUniformFromNode(a,y,x,E=null){const z=super.getUniformFromNode(a,y,x,E),ee=this.getDataFromNode(a,x,this.globalCache);if(ee.uniformGPU===void 0){let te;const ne=a.groupNode,ie=ne.name,ae=this.getBindGroupArray(ie,x);if(y==="texture"||y==="cubeTexture"||y==="storageTexture"||y==="texture3D"){let oe=null;const le=this.getNodeAccess(a,x);if(y==="texture"||y==="storageTexture"?a.value.is3DTexture===!0?oe=new Z3(z.name,z.node,ne,le):oe=new O1(z.name,z.node,ne,le):y==="cubeTexture"?oe=new mF(z.name,z.node,ne,le):y==="texture3D"&&(oe=new Z3(z.name,z.node,ne,le)),oe.store=a.isStorageTextureNode===!0,oe.setVisibility(k1[x]),this.isUnfilterable(a.value)===!1&&oe.store===!1){const de=new j_(`${z.name}_sampler`,z.node,ne);de.setVisibility(k1[x]),ae.push(de,oe),te=[de,oe]}else ae.push(oe),te=[oe]}else if(y==="buffer"||y==="storageBuffer"||y==="indirectStorageBuffer"){const oe=y==="buffer"?fF:X_,le=new oe(a,ne);le.setVisibility(k1[x]),ae.push(le),te=le,z.name=E||"NodeBuffer_"+z.id}else{const oe=this.uniformGroups[x]||(this.uniformGroups[x]={});let le=oe[ie];le===void 0&&(le=new hF(ie,ne),le.setVisibility(k1[x]),oe[ie]=le,ae.push(le)),te=this.getNodeUniform(z,y),le.addUniform(te)}ee.uniformGPU=te}return z}getBuiltin(a,y,x,E=this.shaderStage){const z=this.builtins[E]||(this.builtins[E]=new Map);return z.has(a)===!1&&z.set(a,{name:a,property:y,type:x}),y}hasBuiltin(a,y=this.shaderStage){return this.builtins[y]!==void 0&&this.builtins[y].has(a)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(a){const y=a.layout,x=this.flowShaderNode(a),E=[];for(const ee of y.inputs)E.push(ee.name+" : "+this.getType(ee.type));let z=`fn ${y.name}( ${E.join(", ")} ) -> ${this.getType(y.type)} { ${x.vars} ${x.code} `;return x.result&&(z+=` return ${x.result}; `),z+=` } `,z}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(a,y=this.shaderStage){(this.directives[y]||(this.directives[y]=new Set)).add(a)}getDirectives(a){const y=[],x=this.directives[a];if(x!==void 0)for(const E of x)y.push(`enable ${E};`);return y.join(` `)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(a){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array`,"vertex")}getBuiltins(a){const y=[],x=this.builtins[a];if(x!==void 0)for(const{name:E,property:z,type:ee}of x.values())y.push(`@builtin( ${E} ) ${z} : ${ee}`);return y.join(`, `)}getScopedArray(a,y,x,E){return this.scopedArrays.has(a)===!1&&this.scopedArrays.set(a,{name:a,scope:y,bufferType:x,bufferCount:E}),a}getScopedArrays(a){if(a!=="compute")return;const y=[];for(const{name:x,scope:E,bufferType:z,bufferCount:ee}of this.scopedArrays.values()){const te=this.getType(z);y.push(`var<${E}> ${x}: array< ${te}, ${ee} >;`)}return y.join(` `)}getAttributes(a){const y=[];if(a==="compute"&&(this.getBuiltin("global_invocation_id","globalId","vec3","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3","attribute"),this.getBuiltin("local_invocation_id","localId","vec3","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",a),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),a==="vertex"||a==="compute"){const x=this.getBuiltins("attribute");x&&y.push(x);const E=this.getAttributesArray();for(let z=0,ee=E.length;z"),y.push(` ${E+x.name} : ${z}`)}return a.output&&y.push(` ${this.getBuiltins("output")}`),y.join(`, `)}getStructs(a){let y="";const x=this.structs[a];if(x.length>0){const E=[];for(const z of x){let ee=`struct ${z.name} { `;ee+=this.getStructMembers(z),ee+=` };`,E.push(ee)}y=` `+E.join(` `)+` `}return y}getVar(a,y,x=null){let E=`var ${y} : `;return x!==null?E+=this.generateArrayDeclaration(a,x):E+=this.getType(a),E}getVars(a){const y=[],x=this.vars[a];if(x!==void 0)for(const E of x)y.push(` ${this.getVar(E.type,E.name,E.count)};`);return` ${y.join(` `)} `}getVaryings(a){const y=[];if(a==="vertex"&&this.getBuiltin("position","Vertex","vec4","vertex"),a==="vertex"||a==="fragment"){const z=this.varyings,ee=this.vars[a];for(let te=0;tex.value.itemSize;return E&&!z}getUniforms(a){const y=this.uniforms[a],x=[],E=[],z=[],ee={};for(const ne of y){const ie=ne.groupNode.name,ae=this.bindingsIndexes[ie];if(ne.type==="texture"||ne.type==="cubeTexture"||ne.type==="storageTexture"||ne.type==="texture3D"){const oe=ne.node.value;this.isUnfilterable(oe)===!1&&ne.node.isStorageTextureNode!==!0&&(this.isSampleCompare(oe)?x.push(`@binding( ${ae.binding++} ) @group( ${ae.group} ) var ${ne.name}_sampler : sampler_comparison;`):x.push(`@binding( ${ae.binding++} ) @group( ${ae.group} ) var ${ne.name}_sampler : sampler;`));let le,de="";const{primarySamples:he}=this.renderer.backend.utils.getTextureSampleData(oe);if(he>1&&(de="_multisampled"),oe.isCubeTexture===!0)le="texture_cube";else if(oe.isDepthTexture===!0)this.renderer.backend.compatibilityMode&&oe.compareFunction===null?le=`texture${de}_2d`:le=`texture_depth${de}_2d${oe.isArrayTexture===!0?"_array":""}`;else if(ne.node.isStorageTextureNode===!0){const ye=rM(oe),Ae=this.getStorageAccess(ne.node,a),me=ne.node.value.is3DTexture,Ce=ne.node.value.isArrayTexture;le=`texture_storage_${me?"3d":`2d${Ce?"_array":""}`}<${ye}, ${Ae}>`}else if(oe.isArrayTexture===!0||oe.isDataArrayTexture===!0||oe.isCompressedArrayTexture===!0)le="texture_2d_array";else if(oe.is3DTexture===!0||oe.isData3DTexture===!0)le="texture_3d";else{const ye=this.getComponentTypeFromTexture(oe).charAt(0);le=`texture${de}_2d<${ye}32>`}x.push(`@binding( ${ae.binding++} ) @group( ${ae.group} ) var ${ne.name} : ${le};`)}else if(ne.type==="buffer"||ne.type==="storageBuffer"||ne.type==="indirectStorageBuffer"){const oe=ne.node,le=this.getType(oe.getNodeType(this)),de=oe.bufferCount,he=de>0&&ne.type==="buffer"?", "+de:"",ye=oe.isStorageBufferNode?`storage, ${this.getStorageAccess(oe,a)}`:"uniform";if(this.isCustomStruct(ne))E.push(`@binding( ${ae.binding++} ) @group( ${ae.group} ) var<${ye}> ${ne.name} : ${le};`);else{const me=` value : array< ${oe.isAtomic?`atomic<${le}>`:`${le}`}${he} >`;E.push(this._getWGSLStructBinding(ne.name,me,ye,ae.binding++,ae.group))}}else{const oe=this.getType(this.getVectorType(ne.type)),le=ne.groupNode.name;(ee[le]||(ee[le]={index:ae.binding++,id:ae.group,snippets:[]})).snippets.push(` ${ne.name} : ${oe}`)}}for(const ne in ee){const ie=ee[ne];z.push(this._getWGSLStructBinding(ne,ie.snippets.join(`, `),"uniform",ie.index,ie.id))}let te=x.join(` `);return te+=E.join(` `),te+=z.join(` `),te}buildCode(){const a=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const y in a){this.shaderStage=y;const x=a[y];x.uniforms=this.getUniforms(y),x.attributes=this.getAttributes(y),x.varyings=this.getVaryings(y),x.structs=this.getStructs(y),x.vars=this.getVars(y),x.codes=this.getCodes(y),x.directives=this.getDirectives(y),x.scopedArrays=this.getScopedArrays(y);let E=`// code `;E+=this.flowCode[y];const z=this.flowNodes[y],ee=z[z.length-1],te=ee.outputNode,ne=te!==void 0&&te.isOutputStructNode===!0;for(const ie of z){const ae=this.getFlowData(ie),oe=ie.name;if(oe&&(E.length>0&&(E+=` `),E+=` // flow -> ${oe} `),E+=`${ae.code} `,ie===ee&&y!=="compute"){if(E+=`// result `,y==="vertex")E+=`varyings.Vertex = ${ae.result};`;else if(y==="fragment")if(ne)x.returnType=te.getNodeType(this),x.structs+="var output : "+x.returnType+";",E+=`return ${ae.result};`;else{let le=" @location(0) color: vec4";const de=this.getBuiltins("output");de&&(le+=`, `+de),x.returnType="OutputStruct",x.structs+=this._getWGSLStruct("OutputStruct",le),x.structs+=` var output : OutputStruct;`,E+=`output.color = ${ae.result}; return output;`}}}x.flow=E}if(this.shaderStage=null,this.material!==null)this.vertexShader=this._getWGSLVertexCode(a.vertex),this.fragmentShader=this._getWGSLFragmentCode(a.fragment);else{const y=this.object.workgroupSize;this.computeShader=this._getWGSLComputeCode(a.compute,y)}}getMethod(a,y=null){let x;return y!==null&&(x=this._getWGSLMethod(a+"_"+y)),x===void 0&&(x=this._getWGSLMethod(a)),x||a}getType(a){return n$[a]||a}isAvailable(a){let y=FF[a];return y===void 0&&(a==="float32Filterable"?y=this.renderer.hasFeature("float32-filterable"):a==="clipDistance"&&(y=this.renderer.hasFeature("clip-distances")),FF[a]=y),y}_getWGSLMethod(a){return Th[a]!==void 0&&this._include(a),Lb[a]}_include(a){const y=Th[a];return y.build(this),this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(y),y}_getWGSLVertexCode(a){return`${this.getSignature()} // directives ${a.directives} // structs ${a.structs} // uniforms ${a.uniforms} // varyings ${a.varyings} var varyings : VaryingsStruct; // codes ${a.codes} @vertex fn main( ${a.attributes} ) -> VaryingsStruct { // vars ${a.vars} // flow ${a.flow} return varyings; } `}_getWGSLFragmentCode(a){return`${this.getSignature()} // global ${LF} // structs ${a.structs} // uniforms ${a.uniforms} // codes ${a.codes} @fragment fn main( ${a.varyings} ) -> ${a.returnType} { // vars ${a.vars} // flow ${a.flow} } `}_getWGSLComputeCode(a,y){const[x,E,z]=y;return`${this.getSignature()} // directives ${a.directives} // system var instanceIndex : u32; // locals ${a.scopedArrays} // structs ${a.structs} // uniforms ${a.uniforms} // codes ${a.codes} @compute @workgroup_size( ${x}, ${E}, ${z} ) fn main( ${a.attributes} ) { // system instanceIndex = globalId.x + globalId.y * ( ${x} * numWorkgroups.x ) + globalId.z * ( ${x} * numWorkgroups.x ) * ( ${E} * numWorkgroups.y ); // vars ${a.vars} // flow ${a.flow} } `}_getWGSLStruct(a,y){return` struct ${a} { ${y} };`}_getWGSLStructBinding(a,y,x,E=0,z=0){const ee=a+"Struct";return`${this._getWGSLStruct(ee,y)} @binding( ${E} ) @group( ${z} ) var<${x}> ${a} : ${ee};`}}class i${constructor(a){this.backend=a}getCurrentDepthStencilFormat(a){let y;return a.depthTexture!==null?y=this.getTextureFormatGPU(a.depthTexture):a.depth&&a.stencil?y=an.Depth24PlusStencil8:a.depth&&(y=an.Depth24Plus),y}getTextureFormatGPU(a){return this.backend.get(a).format}getTextureSampleData(a){let y;if(a.isFramebufferTexture)y=1;else if(a.isDepthTexture&&!a.renderTarget){const z=this.backend.renderer,ee=z.getRenderTarget();y=ee?ee.samples:z.samples}else a.renderTarget&&(y=a.renderTarget.samples);y=y||1;const x=y>1&&a.renderTarget!==null&&a.isDepthTexture!==!0&&a.isFramebufferTexture!==!0;return{samples:y,primarySamples:x?1:y,isMSAA:x}}getCurrentColorFormat(a){let y;return a.textures!==null?y=this.getTextureFormatGPU(a.textures[0]):y=this.getPreferredCanvasFormat(),y}getCurrentColorSpace(a){return a.textures!==null?a.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(a,y){if(a.isPoints)return dy.PointList;if(a.isLineSegments||a.isMesh&&y.wireframe===!0)return dy.LineList;if(a.isLine)return dy.LineStrip;if(a.isMesh)return dy.TriangleList}getSampleCount(a){return a>=4?4:1}getSampleCountRenderContext(a){return a.textures!==null?this.getSampleCount(a.sampleCount):this.getSampleCount(this.backend.renderer.samples)}getPreferredCanvasFormat(){const a=this.backend.parameters.outputType;if(a===void 0)return navigator.gpu.getPreferredCanvasFormat();if(a===jo)return an.BGRA8Unorm;if(a===vl)return an.RGBA16Float;throw new Error("Unsupported outputType")}}const OF=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]);typeof Float16Array!="undefined"&&OF.set(Float16Array,["float16"]);const s$=new Map([[g5,["float16"]]]),a$=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]);class o${constructor(a){this.backend=a}createAttribute(a,y){const x=this._getBufferAttribute(a),E=this.backend,z=E.get(x);let ee=z.buffer;if(ee===void 0){const te=E.device;let ne=x.array;if(a.normalized===!1){if(ne.constructor===Int16Array||ne.constructor===Int8Array)ne=new Int32Array(ne);else if((ne.constructor===Uint16Array||ne.constructor===Uint8Array)&&(ne=new Uint32Array(ne),y&GPUBufferUsage.INDEX))for(let oe=0;oe1&&(ne.multisampled=!0,ee.texture.isDepthTexture||(ne.sampleType=CA.UnfilterableFloat)),ee.texture.isDepthTexture)y.compatibilityMode&&ee.texture.compareFunction===null?ne.sampleType=CA.UnfilterableFloat:ne.sampleType=CA.Depth;else if(ee.texture.isDataTexture||ee.texture.isDataArrayTexture||ee.texture.isData3DTexture){const ae=ee.texture.type;ae===Vl?ne.sampleType=CA.SInt:ae===Ao?ne.sampleType=CA.UInt:ae===Vo&&(this.backend.hasFeature("float32-filterable")?ne.sampleType=CA.Float:ne.sampleType=CA.UnfilterableFloat)}ee.isSampledCubeTexture?ne.viewDimension=ju.Cube:ee.texture.isArrayTexture||ee.texture.isDataArrayTexture||ee.texture.isCompressedArrayTexture?ne.viewDimension=ju.TwoDArray:ee.isSampledTexture3D&&(ne.viewDimension=ju.ThreeD),te.texture=ne}else if(ee.isSampler){const ne={};ee.texture.isDepthTexture&&(ee.texture.compareFunction!==null?ne.type=MF.Comparison:y.compatibilityMode&&(ne.type=MF.NonFiltering)),te.sampler=ne}else console.error(`WebGPUBindingUtils: Unsupported binding "${ee}".`);E.push(te)}return x.createBindGroupLayout({entries:E})}createBindings(a,y,x,E=0){const{backend:z,bindGroupLayoutCache:ee}=this,te=z.get(a);let ne=ee.get(a.bindingsReference);ne===void 0&&(ne=this.createBindingsLayout(a),ee.set(a.bindingsReference,ne));let ie;x>0&&(te.groups===void 0&&(te.groups=[],te.versions=[]),te.versions[x]===E&&(ie=te.groups[x])),ie===void 0&&(ie=this.createBindGroup(a,ne),x>0&&(te.groups[x]=ie,te.versions[x]=E)),te.group=ie,te.layout=ne}updateBinding(a){const y=this.backend,x=y.device,E=a.buffer,z=y.get(a).buffer;x.queue.writeBuffer(z,0,E,0)}createBindGroupIndex(a,y){const E=this.backend.device,z=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,ee=a[0],te=E.createBuffer({label:"bindingCameraIndex_"+ee,size:16,usage:z});E.queue.writeBuffer(te,0,a,0);const ne=[{binding:0,resource:{buffer:te}}];return E.createBindGroup({label:"bindGroupCameraIndex_"+ee,layout:y,entries:ne})}createBindGroup(a,y){const x=this.backend,E=x.device;let z=0;const ee=[];for(const te of a.bindings){if(te.isUniformBuffer){const ne=x.get(te);if(ne.buffer===void 0){const ie=te.byteLength,ae=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,oe=E.createBuffer({label:"bindingBuffer_"+te.name,size:ie,usage:ae});ne.buffer=oe}ee.push({binding:z,resource:{buffer:ne.buffer}})}else if(te.isStorageBuffer){const ne=x.get(te);if(ne.buffer===void 0){const ie=te.attribute;ne.buffer=x.get(ie).buffer}ee.push({binding:z,resource:{buffer:ne.buffer}})}else if(te.isSampledTexture){const ne=x.get(te.texture);let ie;if(ne.externalTexture!==void 0)ie=E.importExternalTexture({source:ne.externalTexture});else{const ae=te.store?1:ne.texture.mipLevelCount;let oe=`view-${ne.texture.width}-${ne.texture.height}`;if(ne.texture.depthOrArrayLayers>1&&(oe+=`-${ne.texture.depthOrArrayLayers}`),oe+=`-${ae}`,ie=ne[oe],ie===void 0){const le=U_.All;let de;te.isSampledCubeTexture?de=ju.Cube:te.isSampledTexture3D?de=ju.ThreeD:te.texture.isArrayTexture||te.texture.isDataArrayTexture||te.texture.isCompressedArrayTexture?de=ju.TwoDArray:de=ju.TwoD,ie=ne[oe]=ne.texture.createView({aspect:le,dimension:de,mipLevelCount:ae})}}ee.push({binding:z,resource:ie})}else if(te.isSampler){const ne=x.get(te.texture);ee.push({binding:z,resource:ne.sampler})}z++}return E.createBindGroup({label:"bindGroup_"+a.name,layout:y,entries:ee})}}class u${constructor(a){this.backend=a,this._activePipelines=new WeakMap}setPipeline(a,y){this._activePipelines.get(a)!==y&&(a.setPipeline(y),this._activePipelines.set(a,y))}_getSampleCount(a){return this.backend.utils.getSampleCountRenderContext(a)}createRenderPipeline(a,y){const{object:x,material:E,geometry:z,pipeline:ee}=a,{vertexProgram:te,fragmentProgram:ne}=ee,ie=this.backend,ae=ie.device,oe=ie.utils,le=ie.get(ee),de=[];for(const Et of a.getBindings()){const yt=ie.get(Et);de.push(yt.layout)}const he=ie.attributeUtils.createShaderVertexBuffers(a);let ye;E.blending!==El&&(E.blending!==xc||E.transparent!==!1)&&(ye=this._getBlending(E));let Ae={};E.stencilWrite===!0&&(Ae={compare:this._getStencilCompare(E),failOp:this._getStencilOperation(E.stencilFail),depthFailOp:this._getStencilOperation(E.stencilZFail),passOp:this._getStencilOperation(E.stencilZPass)});const me=this._getColorWriteMask(E),Ce=[];if(a.context.textures!==null){const Et=a.context.textures;for(let yt=0;yt1},layout:ae.createPipelineLayout({bindGroupLayouts:de})},ze={},Le=a.context.depth,_e=a.context.stencil;if((Le===!0||_e===!0)&&(Le===!0&&(ze.format=ke,ze.depthWriteEnabled=E.depthWrite,ze.depthCompare=Fe),_e===!0&&(ze.stencilFront=Ae,ze.stencilBack={},ze.stencilReadMask=E.stencilFuncMask,ze.stencilWriteMask=E.stencilWriteMask),E.polygonOffset===!0&&(ze.depthBias=E.polygonOffsetUnits,ze.depthBiasSlopeScale=E.polygonOffsetFactor,ze.depthBiasClamp=0),Oe.depthStencil=ze),y===null)le.pipeline=ae.createRenderPipeline(Oe);else{const Et=new Promise(yt=>{ae.createRenderPipelineAsync(Oe).then(jt=>{le.pipeline=jt,yt()})});y.push(Et)}}createBundleEncoder(a,y="renderBundleEncoder"){const x=this.backend,{utils:E,device:z}=x,ee=E.getCurrentDepthStencilFormat(a),te=E.getCurrentColorFormat(a),ne=this._getSampleCount(a),ie={label:y,colorFormats:[te],depthStencilFormat:ee,sampleCount:ne};return z.createRenderBundleEncoder(ie)}createComputePipeline(a,y){const x=this.backend,E=x.device,z=x.get(a.computeProgram).module,ee=x.get(a),te=[];for(const ne of y){const ie=x.get(ne);te.push(ie.layout)}ee.pipeline=E.createComputePipeline({compute:z,layout:E.createPipelineLayout({bindGroupLayouts:te})})}_getBlending(a){let y,x;const E=a.blending,z=a.blendSrc,ee=a.blendDst,te=a.blendEquation;if(E===zd){const ne=a.blendSrcAlpha!==null?a.blendSrcAlpha:z,ie=a.blendDstAlpha!==null?a.blendDstAlpha:ee,ae=a.blendEquationAlpha!==null?a.blendEquationAlpha:te;y={srcFactor:this._getBlendFactor(z),dstFactor:this._getBlendFactor(ee),operation:this._getBlendOperation(te)},x={srcFactor:this._getBlendFactor(ne),dstFactor:this._getBlendFactor(ie),operation:this._getBlendOperation(ae)}}else{const ne=a.premultipliedAlpha,ie=(ae,oe,le,de)=>{y={srcFactor:ae,dstFactor:oe,operation:wA.Add},x={srcFactor:le,dstFactor:de,operation:wA.Add}};if(ne)switch(E){case xc:ie(to.One,to.OneMinusSrcAlpha,to.One,to.OneMinusSrcAlpha);break;case jh:ie(to.One,to.One,to.One,to.One);break;case Ul:ie(to.Zero,to.OneMinusSrc,to.Zero,to.One);break;case Oc:ie(to.Dst,to.OneMinusSrcAlpha,to.Zero,to.One);break}else switch(E){case xc:ie(to.SrcAlpha,to.OneMinusSrcAlpha,to.One,to.OneMinusSrcAlpha);break;case jh:ie(to.SrcAlpha,to.One,to.One,to.One);break;case Ul:console.error("THREE.WebGPURenderer: SubtractiveBlending requires material.premultipliedAlpha = true");break;case Oc:console.error("THREE.WebGPURenderer: MultiplyBlending requires material.premultipliedAlpha = true");break}}if(y!==void 0&&x!==void 0)return{color:y,alpha:x};console.error("THREE.WebGPURenderer: Invalid blending: ",E)}_getBlendFactor(a){let y;switch(a){case Yc:y=to.Zero;break;case Og:y=to.One;break;case gf:y=to.Src;break;case Vh:y=to.OneMinusSrc;break;case kd:y=to.SrcAlpha;break;case Up:y=to.OneMinusSrcAlpha;break;case Gh:y=to.Dst;break;case Xh:y=to.OneMinusDst;break;case Rg:y=to.DstAlpha;break;case Mm:y=to.OneMinusDstAlpha;break;case vf:y=to.SrcAlphaSaturated;break;case RZ:y=to.Constant;break;case zZ:y=to.OneMinusConstant;break;default:console.error("THREE.WebGPURenderer: Blend factor not supported.",a)}return y}_getStencilCompare(a){let y;const x=a.stencilFunc;switch(x){case Gl:y=Gc.Never;break;case el:y=Gc.Always;break;case $o:y=Gc.Less;break;case $u:y=Gc.LessEqual;break;case wc:y=Gc.Equal;break;case nu:y=Gc.GreaterEqual;break;case Al:y=Gc.Greater;break;case ec:y=Gc.NotEqual;break;default:console.error("THREE.WebGPURenderer: Invalid stencil function.",x)}return y}_getStencilOperation(a){let y;switch(a){case fi:y=fv.Keep;break;case oi:y=fv.Zero;break;case ii:y=fv.Replace;break;case wo:y=fv.Invert;break;case ki:y=fv.IncrementClamp;break;case Hs:y=fv.DecrementClamp;break;case As:y=fv.IncrementWrap;break;case ba:y=fv.DecrementWrap;break;default:console.error("THREE.WebGPURenderer: Invalid stencil operation.",y)}return y}_getBlendOperation(a){let y;switch(a){case pu:y=wA.Add;break;case Sm:y=wA.Subtract;break;case rh:y=wA.ReverseSubtract;break;case ih:y=wA.Min;break;case Bv:y=wA.Max;break;default:console.error("THREE.WebGPUPipelineUtils: Blend equation not supported.",a)}return y}_getPrimitiveState(a,y,x){const E={},z=this.backend.utils;switch(E.topology=z.getPrimitiveTopology(a,x),y.index!==null&&a.isLine===!0&&a.isLineSegments!==!0&&(E.stripIndexFormat=y.index.array instanceof Uint16Array?fy.Uint16:fy.Uint32),x.side){case yc:E.frontFace=q3.CCW,E.cullMode=_3.Back;break;case co:E.frontFace=q3.CCW,E.cullMode=_3.Front;break;case eo:E.frontFace=q3.CCW,E.cullMode=_3.None;break;default:console.error("THREE.WebGPUPipelineUtils: Unknown material.side value.",x.side);break}return E}_getColorWriteMask(a){return a.colorWrite===!0?SF.All:SF.None}_getDepthCompare(a){let y;if(a.depthTest===!1)y=Gc.Always;else{const x=a.depthFunc;switch(x){case Jc:y=Gc.Never;break;case md:y=Gc.Always;break;case Af:y=Gc.Less;break;case sh:y=Gc.LessEqual;break;case Tm:y=Gc.Equal;break;case Im:y=Gc.GreaterEqual;break;case kg:y=Gc.Greater;break;case yf:y=Gc.NotEqual;break;default:console.error("THREE.WebGPUPipelineUtils: Invalid depth function.",x)}}return y}}class c$ extends PF{constructor(a,y,x=2048){super(x),this.device=a,this.type=y,this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxQueries,label:`queryset_global_timestamp_${y}`});const E=this.maxQueries*8;this.resolveBuffer=this.device.createBuffer({label:`buffer_timestamp_resolve_${y}`,size:E,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.resultBuffer=this.device.createBuffer({label:`buffer_timestamp_result_${y}`,size:E,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})}allocateQueriesForContext(a){if(!this.trackTimestamp||this.isDisposed)return null;if(this.currentQueryIndex+2>this.maxQueries)return Ou(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const y=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryOffsets.set(a.id,y),y}resolveQueriesAsync(){return Fs(this,null,function*(){if(!this.trackTimestamp||this.currentQueryIndex===0||this.isDisposed)return this.lastValue;if(this.pendingResolve)return this.pendingResolve;this.pendingResolve=this._resolveQueries();try{return yield this.pendingResolve}finally{this.pendingResolve=null}})}_resolveQueries(){return Fs(this,null,function*(){if(this.isDisposed)return this.lastValue;try{if(this.resultBuffer.mapState!=="unmapped")return this.lastValue;const a=new Map(this.queryOffsets),y=this.currentQueryIndex,x=y*8;this.currentQueryIndex=0,this.queryOffsets.clear();const E=this.device.createCommandEncoder();E.resolveQuerySet(this.querySet,0,y,this.resolveBuffer,0),E.copyBufferToBuffer(this.resolveBuffer,0,this.resultBuffer,0,x);const z=E.finish();if(this.device.queue.submit([z]),this.resultBuffer.mapState!=="unmapped")return this.lastValue;if(yield this.resultBuffer.mapAsync(GPUMapMode.READ,0,x),this.isDisposed)return this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue;const ee=new BigUint64Array(this.resultBuffer.getMappedRange(0,x));let te=0;for(const[,ne]of a){const ie=ee[ne],ae=ee[ne+1],oe=Number(ae-ie)/1e6;te+=oe}return this.resultBuffer.unmap(),this.lastValue=te,te}catch(a){return console.error("Error resolving queries:",a),this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue}})}dispose(){return Fs(this,null,function*(){if(!this.isDisposed){if(this.isDisposed=!0,this.pendingResolve)try{yield this.pendingResolve}catch(a){console.error("Error waiting for pending resolve:",a)}if(this.resultBuffer&&this.resultBuffer.mapState==="mapped")try{this.resultBuffer.unmap()}catch(a){console.error("Error unmapping buffer:",a)}this.querySet&&(this.querySet.destroy(),this.querySet=null),this.resolveBuffer&&(this.resolveBuffer.destroy(),this.resolveBuffer=null),this.resultBuffer&&(this.resultBuffer.destroy(),this.resultBuffer=null),this.queryOffsets.clear(),this.pendingResolve=null}})}}class iM extends xF{constructor(a={}){super(a),this.isWebGPUBackend=!0,this.parameters.alpha=a.alpha===void 0?!0:a.alpha,this.parameters.compatibilityMode=a.compatibilityMode===void 0?!1:a.compatibilityMode,this.parameters.requiredLimits=a.requiredLimits===void 0?{}:a.requiredLimits,this.compatibilityMode=this.parameters.compatibilityMode,this.device=null,this.context=null,this.colorBuffer=null,this.defaultRenderPassdescriptor=null,this.utils=new i$(this),this.attributeUtils=new o$(this),this.bindingUtils=new l$(this),this.pipelineUtils=new u$(this),this.textureUtils=new Y_(this),this.occludedResolveCache=new Map}init(a){return Fs(this,null,function*(){yield ZL(iM.prototype,this,"init").call(this,a);const y=this.parameters;let x;if(y.device===void 0){const ee={powerPreference:y.powerPreference,featureLevel:y.compatibilityMode?"compatibility":void 0},te=typeof navigator!="undefined"?yield navigator.gpu.requestAdapter(ee):null;if(te===null)throw new Error("WebGPUBackend: Unable to create WebGPU adapter.");const ne=Object.values(nM),ie=[];for(const oe of ne)te.features.has(oe)&&ie.push(oe);const ae={requiredFeatures:ie,requiredLimits:y.requiredLimits};x=yield te.requestDevice(ae)}else x=y.device;x.lost.then(ee=>{const te={api:"WebGPU",message:ee.message||"Unknown reason",reason:ee.reason||null,originalEvent:ee};a.onDeviceLost(te)});const E=y.context!==void 0?y.context:a.domElement.getContext("webgpu");this.device=x,this.context=E;const z=y.alpha?"premultiplied":"opaque";this.trackTimestamp=this.trackTimestamp&&this.hasFeature(nM.TimestampQuery),this.context.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:z}),this.updateSize()})}get coordinateSystem(){return Sn}getArrayBufferAsync(a){return Fs(this,null,function*(){return yield this.attributeUtils.getArrayBufferAsync(a)})}getContext(){return this.context}_getDefaultRenderPassDescriptor(){let a=this.defaultRenderPassdescriptor;if(a===null){const x=this.renderer;a={colorAttachments:[{view:null}]},(this.renderer.depth===!0||this.renderer.stencil===!0)&&(a.depthStencilAttachment={view:this.textureUtils.getDepthBuffer(x.depth,x.stencil).createView()});const E=a.colorAttachments[0];this.renderer.samples>0?E.view=this.colorBuffer.createView():E.resolveTarget=void 0,this.defaultRenderPassdescriptor=a}const y=a.colorAttachments[0];return this.renderer.samples>0?y.resolveTarget=this.context.getCurrentTexture().createView():y.view=this.context.getCurrentTexture().createView(),a}_isRenderCameraDepthArray(a){return a.depthTexture&&a.depthTexture.image.depth>1&&a.camera.isArrayCamera}_getRenderPassDescriptor(a,y={}){const x=a.renderTarget,E=this.get(x);let z=E.descriptors;if(z===void 0||E.width!==x.width||E.height!==x.height||E.dimensions!==x.dimensions||E.activeMipmapLevel!==a.activeMipmapLevel||E.activeCubeFace!==a.activeCubeFace||E.samples!==x.samples){z={},E.descriptors=z;const ie=()=>{x.removeEventListener("dispose",ie),this.delete(x)};x.hasEventListener("dispose",ie)===!1&&x.addEventListener("dispose",ie)}const ee=a.getCacheKey();let te=z[ee];if(te===void 0){const ie=a.textures,ae=[];let oe;const le=this._isRenderCameraDepthArray(a);for(let de=0;de1)if(le===!0){const Ae=a.camera.cameras;for(let me=0;me0&&(y.currentOcclusionQuerySet&&y.currentOcclusionQuerySet.destroy(),y.currentOcclusionQueryBuffer&&y.currentOcclusionQueryBuffer.destroy(),y.currentOcclusionQuerySet=y.occlusionQuerySet,y.currentOcclusionQueryBuffer=y.occlusionQueryBuffer,y.currentOcclusionQueryObjects=y.occlusionQueryObjects,z=x.createQuerySet({type:"occlusion",count:E,label:`occlusionQuerySet_${a.id}`}),y.occlusionQuerySet=z,y.occlusionQueryIndex=0,y.occlusionQueryObjects=new Array(E),y.lastOcclusionObject=null);let ee;a.textures===null?ee=this._getDefaultRenderPassDescriptor():ee=this._getRenderPassDescriptor(a,{loadOp:Ro.Load}),this.initTimestampQuery(a,ee),ee.occlusionQuerySet=z;const te=ee.depthStencilAttachment;if(a.textures!==null){const ie=ee.colorAttachments;for(let ae=0;ae0&&y.currentPass.executeBundles(y.renderBundles),x>y.occlusionQueryIndex&&y.currentPass.endOcclusionQuery();const E=y.encoder;if(this._isRenderCameraDepthArray(a)===!0){const z=[];for(let ee=0;ee0){const z=x*8;let ee=this.occludedResolveCache.get(z);ee===void 0&&(ee=this.device.createBuffer({size:z,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.occludedResolveCache.set(z,ee));const te=this.device.createBuffer({size:z,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});y.encoder.resolveQuerySet(y.occlusionQuerySet,0,x,ee,0),y.encoder.copyBufferToBuffer(ee,0,te,0,z),y.occlusionQueryBuffer=te,this.resolveOccludedAsync(a)}if(this.device.queue.submit([y.encoder.finish()]),a.textures!==null){const z=a.textures;for(let ee=0;eehe&&(ie[0]=Math.min(de,he),ie[1]=Math.ceil(de/he)),ee.dispatchSize=ie}ie=ee.dispatchSize}else ie=z;te.dispatchWorkgroups(ie[0],ie[1]||1,ie[2]||1)}finishCompute(a){const y=this.get(a);y.passEncoderGPU.end(),this.device.queue.submit([y.cmdEncoderGPU.finish()])}waitForGPU(){return Fs(this,null,function*(){yield this.device.queue.onSubmittedWorkDone()})}draw(a,y){const{object:x,material:E,context:z,pipeline:ee}=a,te=a.getBindings(),ne=this.get(z),ie=this.get(ee).pipeline,ae=a.getIndex(),oe=ae!==null,le=a.getDrawParameters();if(le===null)return;const de=(ye,Ae)=>{this.pipelineUtils.setPipeline(ye,ie),Ae.pipeline=ie;const me=Ae.bindingGroups;for(let Ee=0,Be=te.length;Ee{if(de(ye,Ae),x.isBatchedMesh===!0){const me=x._multiDrawStarts,Ce=x._multiDrawCounts,Ee=x._multiDrawCount,Be=x._multiDrawInstances;Be!==null&&Ou("THREE.WebGPUBackend: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection.");for(let Ne=0;Ne1?0:Ne;oe===!0?ye.drawIndexed(Ce[Ne],Fe,me[Ne]/ae.array.BYTES_PER_ELEMENT,0,ke):ye.draw(Ce[Ne],Fe,me[Ne],ke),y.update(x,Ce[Ne],Fe)}}else if(oe===!0){const{vertexCount:me,instanceCount:Ce,firstVertex:Ee}=le,Be=a.getIndirect();if(Be!==null){const Ne=this.get(Be).buffer;ye.drawIndexedIndirect(Ne,0)}else ye.drawIndexed(me,Ce,Ee,0,0);y.update(x,me,Ce)}else{const{vertexCount:me,instanceCount:Ce,firstVertex:Ee}=le,Be=a.getIndirect();if(Be!==null){const Ne=this.get(Be).buffer;ye.drawIndirect(Ne,0)}else ye.draw(me,Ce,Ee,0);y.update(x,me,Ce)}};if(a.camera.isArrayCamera&&a.camera.cameras.length>0){const ye=this.get(a.camera),Ae=a.camera.cameras,me=a.getBindingGroup("cameraIndex");if(ye.indexesGPU===void 0||ye.indexesGPU.length!==Ae.length){const Ee=this.get(me),Be=[],Ne=new Uint32Array([0,0,0,0]);for(let Fe=0,ke=Ae.length;Fe(console.warn("THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new BF(a)));const x=new y(a);super(x,a),this.library=new h$,this.isWebGPURenderer=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}}class Ede extends null{constructor(){super(),this.isBundleGroup=!0,this.type="BundleGroup",this.static=!0,this.version=0}set needsUpdate(a){a===!0&&this.version++}}class wde{constructor(a,y=Ii(0,0,1,1)){this.renderer=a,this.outputNode=y,this.outputColorTransform=!0,this.needsUpdate=!0;const x=new Yl;x.name="PostProcessing",this._quadMesh=new Qx(x),this._context=null}render(){const a=this.renderer;this._update(),this._context.onBeforePostProcessing!==null&&this._context.onBeforePostProcessing();const y=a.toneMapping,x=a.outputColorSpace;a.toneMapping=NoToneMapping,a.outputColorSpace=ColorManagement.workingColorSpace;const E=a.xr.enabled;a.xr.enabled=!1,this._quadMesh.render(a),a.xr.enabled=E,a.toneMapping=y,a.outputColorSpace=x,this._context.onAfterPostProcessing!==null&&this._context.onAfterPostProcessing()}get context(){return this._context}dispose(){this._quadMesh.material.dispose()}_update(){if(this.needsUpdate===!0){const a=this.renderer,y=a.toneMapping,x=a.outputColorSpace,E={postProcessing:this,onBeforePostProcessing:null,onAfterPostProcessing:null};let z=this.outputNode;this.outputColorTransform===!0?(z=z.context(E),z=cS(z,y,x)):(E.toneMapping=y,E.outputColorSpace=x,z=z.context(E)),this._context=E,this._quadMesh.material.fragmentNode=z,this._quadMesh.material.needsUpdate=!0,this.needsUpdate=!1}}renderAsync(){return Fs(this,null,function*(){this._update(),this._context.onBeforePostProcessing!==null&&this._context.onBeforePostProcessing();const a=this.renderer,y=a.toneMapping,x=a.outputColorSpace;a.toneMapping=NoToneMapping,a.outputColorSpace=ColorManagement.workingColorSpace;const E=a.xr.enabled;a.xr.enabled=!1,yield this._quadMesh.renderAsync(a),a.xr.enabled=E,a.toneMapping=y,a.outputColorSpace=x,this._context.onAfterPostProcessing!==null&&this._context.onAfterPostProcessing()})}}class Cde extends null{constructor(a=1,y=1){super(),this.image={width:a,height:y},this.magFilter=LinearFilter,this.minFilter=LinearFilter,this.isStorageTexture=!0}setSize(a,y){(this.image.width!==a||this.image.height!==y)&&(this.image.width=a,this.image.height=y,this.dispose())}}class Pde extends null{constructor(a=1,y=1,x=1){super(),this.isArrayTexture=!1,this.image={width:a,height:y,depth:x},this.magFilter=LinearFilter,this.minFilter=LinearFilter,this.wrapR=ClampToEdgeWrapping,this.isStorageTexture=!0,this.is3DTexture=!0}setSize(a,y,x){(this.image.width!==a||this.image.height!==y||this.image.depth!==x)&&(this.image.width=a,this.image.height=y,this.image.depth=x,this.dispose())}}class Bde extends null{constructor(a=1,y=1,x=1){super(),this.isArrayTexture=!0,this.image={width:a,height:y,depth:x},this.magFilter=LinearFilter,this.minFilter=LinearFilter,this.isStorageTexture=!0}setSize(a,y,x){(this.image.width!==a||this.image.height!==y||this.image.depth!==x)&&(this.image.width=a,this.image.height=y,this.image.depth=x,this.dispose())}}class Sde extends null{constructor(a,y){super(a,y,Uint32Array),this.isIndirectStorageBufferAttribute=!0}}class m$ extends null{constructor(a){super(a),this.textures={},this.nodes={}}load(a,y,x,E){const z=new FileLoader(this.manager);z.setPath(this.path),z.setRequestHeader(this.requestHeader),z.setWithCredentials(this.withCredentials),z.load(a,ee=>{try{y(this.parse(JSON.parse(ee)))}catch(te){E?E(te):console.error(te),this.manager.itemError(a)}},x,E)}parseNodes(a){const y={};if(a!==void 0){for(const E of a){const{uuid:z,type:ee}=E;y[z]=this.createNodeFromType(ee),y[z].uuid=z}const x={nodes:y,textures:this.textures};for(const E of a)E.meta=x,y[E.uuid].deserialize(E),delete E.meta}return y}parse(a){const y=this.createNodeFromType(a.type);y.uuid=a.uuid;const E={nodes:this.parseNodes(a.nodes),textures:this.textures};return a.meta=E,y.deserialize(a),delete a.meta,y}setTextures(a){return this.textures=a,this}setNodes(a){return this.nodes=a,this}createNodeFromType(a){return this.nodes[a]===void 0?(console.error("THREE.NodeLoader: Node type not found:",a),ft()):gr(new this.nodes[a])}}class g$ extends null{constructor(a){super(a),this.nodes={},this.nodeMaterials={}}parse(a){const y=super.parse(a),x=this.nodes,E=a.inputNodes;for(const z in E){const ee=E[z];y[z]=x[ee]}return y}setNodes(a){return this.nodes=a,this}setNodeMaterials(a){return this.nodeMaterials=a,this}createMaterialFromType(a){const y=this.nodeMaterials[a];return y!==void 0?new y:super.createMaterialFromType(a)}}class Mde extends null{constructor(a){super(a),this.nodes={},this.nodeMaterials={},this._nodesJSON=null}setNodes(a){return this.nodes=a,this}setNodeMaterials(a){return this.nodeMaterials=a,this}parse(a,y){this._nodesJSON=a.nodes;const x=super.parse(a,y);return this._nodesJSON=null,x}parseNodes(a,y){if(a!==void 0){const x=new m$;return x.setNodes(this.nodes),x.setTextures(y),x.parseNodes(a)}return{}}parseMaterials(a,y){const x={};if(a!==void 0){const E=this.parseNodes(this._nodesJSON,y),z=new g$;z.setTextures(y),z.setNodes(E),z.setNodeMaterials(this.nodeMaterials);for(let ee=0,te=a.length;eeRF&&(this.dispatchEvent(sM),this._lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this._lastPosition.distanceToSquared(this.object.position)>RF||this._lastZoom!==this.object.zoom)&&(this.dispatchEvent(sM),this._lastPosition.copy(this.object.position),this._lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type.")}reset(){this.state=zo.NONE,this.keyState=zo.NONE,this.target.copy(this._target0),this.object.position.copy(this._position0),this.object.up.copy(this._up0),this.object.zoom=this._zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(sM),this._lastPosition.copy(this.object.position),this._lastZoom=this.object.zoom}_panCamera(){if(hv.copy(this._panEnd).sub(this._panStart),hv.lengthSq()){if(this.object.isOrthographicCamera){const a=(this.object.right-this.object.left)/this.object.zoom/this.domElement.clientWidth,y=(this.object.top-this.object.bottom)/this.object.zoom/this.domElement.clientWidth;hv.x*=a,hv.y*=y}hv.multiplyScalar(this._eye.length()*this.panSpeed),U1.copy(this._eye).cross(this.object.up).setLength(hv.x),U1.add(v$.copy(this.object.up).setLength(hv.y)),this.object.position.add(U1),this.target.add(U1),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(hv.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}}_rotateCamera(){V1.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0);let a=V1.length();a?(this._eye.copy(this.object.position).sub(this.target),zF.copy(this._eye).normalize(),j1.copy(this.object.up).normalize(),uM.crossVectors(j1,zF).normalize(),j1.setLength(this._moveCurr.y-this._movePrev.y),uM.setLength(this._moveCurr.x-this._movePrev.x),V1.copy(j1.add(uM)),lM.crossVectors(V1,this._eye).normalize(),a*=this.rotateSpeed,py.setFromAxisAngle(lM,a),this._eye.applyQuaternion(py),this.object.up.applyQuaternion(py),this._lastAxis.copy(lM),this._lastAngle=a):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),py.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(py),this.object.up.applyQuaternion(py)),this._movePrev.copy(this._moveCurr)}_zoomCamera(){let a;this.state===zo.TOUCH_ZOOM_PAN?(a=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(a):this.object.isOrthographicCamera?(this.object.zoom=gh.clamp(this.object.zoom/a,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(a=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,a!==1&&a>0&&(this.object.isPerspectiveCamera?this._eye.multiplyScalar(a):this.object.isOrthographicCamera?(this.object.zoom=gh.clamp(this.object.zoom/a,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),this.staticMoving?this._zoomStart.copy(this._zoomEnd):this._zoomStart.y+=(this._zoomEnd.y-this._zoomStart.y)*this.dynamicDampingFactor)}_getMouseOnScreen(a,y){return H1.set((a-this.screen.left)/this.screen.width,(y-this.screen.top)/this.screen.height),H1}_getMouseOnCircle(a,y){return H1.set((a-this.screen.width*.5-this.screen.left)/(this.screen.width*.5),(this.screen.height+2*(this.screen.top-y))/this.screen.width),H1}_addPointer(a){this._pointers.push(a)}_removePointer(a){delete this._pointerPositions[a.pointerId];for(let y=0;ythis.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq()Math.PI&&(x-=ef),E<-Math.PI?E+=ef:E>Math.PI&&(E-=ef),x<=E?this._spherical.theta=Math.max(x,Math.min(E,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(x+E)/2?Math.max(x,this._spherical.theta):Math.min(E,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let z=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const ee=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),z=ee!=this._spherical.radius}if(ac.setFromSpherical(this._spherical),ac.applyQuaternion(this._quatInverse),y.copy(this.target).add(ac),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let ee=null;if(this.object.isPerspectiveCamera){const te=ac.length();ee=this._clampDistance(te*this._scale);const ne=te-ee;this.object.position.addScaledVector(this._dollyDirection,ne),this.object.updateMatrixWorld(),z=!!ne}else if(this.object.isOrthographicCamera){const te=new ot(this._mouse.x,this._mouse.y,0);te.unproject(this.object);const ne=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),z=ne!==this.object.zoom;const ie=new ot(this._mouse.x,this._mouse.y,0);ie.unproject(this.object),this.object.position.sub(ie).add(te),this.object.updateMatrixWorld(),ee=ac.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;ee!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(ee).add(this.object.position):(G1.origin.copy(this.object.position),G1.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(G1.direction))dM||8*(1-this._lastQuaternion.dot(this.object.quaternion))>dM||this._lastTargetPosition.distanceToSquared(this.target)>dM?(this.dispatchEvent(kF),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(a){return a!==null?ef/60*this.autoRotateSpeed*a:ef/60/60*this.autoRotateSpeed}_getZoomScale(a){const y=Math.abs(a*.01);return Math.pow(.95,this.zoomSpeed*y)}_rotateLeft(a){this._sphericalDelta.theta-=a}_rotateUp(a){this._sphericalDelta.phi-=a}_panLeft(a,y){ac.setFromMatrixColumn(y,0),ac.multiplyScalar(-a),this._panOffset.add(ac)}_panUp(a,y){this.screenSpacePanning===!0?ac.setFromMatrixColumn(y,1):(ac.setFromMatrixColumn(y,0),ac.crossVectors(this.object.up,ac)),ac.multiplyScalar(a),this._panOffset.add(ac)}_pan(a,y){const x=this.domElement;if(this.object.isPerspectiveCamera){const E=this.object.position;ac.copy(E).sub(this.target);let z=ac.length();z*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*a*z/x.clientHeight,this.object.matrix),this._panUp(2*y*z/x.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(a*(this.object.right-this.object.left)/this.object.zoom/x.clientWidth,this.object.matrix),this._panUp(y*(this.object.top-this.object.bottom)/this.object.zoom/x.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(a){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=a:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(a){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=a:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(a,y){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const x=this.domElement.getBoundingClientRect(),E=a-x.left,z=y-x.top,ee=x.width,te=x.height;this._mouse.x=E/ee*2-1,this._mouse.y=-(z/te)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(a){return Math.max(this.minDistance,Math.min(this.maxDistance,a))}_handleMouseDownRotate(a){this._rotateStart.set(a.clientX,a.clientY)}_handleMouseDownDolly(a){this._updateZoomParameters(a.clientX,a.clientX),this._dollyStart.set(a.clientX,a.clientY)}_handleMouseDownPan(a){this._panStart.set(a.clientX,a.clientY)}_handleMouseMoveRotate(a){this._rotateEnd.set(a.clientX,a.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const y=this.domElement;this._rotateLeft(ef*this._rotateDelta.x/y.clientHeight),this._rotateUp(ef*this._rotateDelta.y/y.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(a){this._dollyEnd.set(a.clientX,a.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(a){this._panEnd.set(a.clientX,a.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(a){this._updateZoomParameters(a.clientX,a.clientY),a.deltaY<0?this._dollyIn(this._getZoomScale(a.deltaY)):a.deltaY>0&&this._dollyOut(this._getZoomScale(a.deltaY)),this.update()}_handleKeyDown(a){let y=!1;switch(a.code){case this.keys.UP:a.ctrlKey||a.metaKey||a.shiftKey?this.enableRotate&&this._rotateUp(ef*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),y=!0;break;case this.keys.BOTTOM:a.ctrlKey||a.metaKey||a.shiftKey?this.enableRotate&&this._rotateUp(-ef*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),y=!0;break;case this.keys.LEFT:a.ctrlKey||a.metaKey||a.shiftKey?this.enableRotate&&this._rotateLeft(ef*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),y=!0;break;case this.keys.RIGHT:a.ctrlKey||a.metaKey||a.shiftKey?this.enableRotate&&this._rotateLeft(-ef*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),y=!0;break}y&&(a.preventDefault(),this.update())}_handleTouchStartRotate(a){if(this._pointers.length===1)this._rotateStart.set(a.pageX,a.pageY);else{const y=this._getSecondPointerPosition(a),x=.5*(a.pageX+y.x),E=.5*(a.pageY+y.y);this._rotateStart.set(x,E)}}_handleTouchStartPan(a){if(this._pointers.length===1)this._panStart.set(a.pageX,a.pageY);else{const y=this._getSecondPointerPosition(a),x=.5*(a.pageX+y.x),E=.5*(a.pageY+y.y);this._panStart.set(x,E)}}_handleTouchStartDolly(a){const y=this._getSecondPointerPosition(a),x=a.pageX-y.x,E=a.pageY-y.y,z=Math.sqrt(x*x+E*E);this._dollyStart.set(0,z)}_handleTouchStartDollyPan(a){this.enableZoom&&this._handleTouchStartDolly(a),this.enablePan&&this._handleTouchStartPan(a)}_handleTouchStartDollyRotate(a){this.enableZoom&&this._handleTouchStartDolly(a),this.enableRotate&&this._handleTouchStartRotate(a)}_handleTouchMoveRotate(a){if(this._pointers.length==1)this._rotateEnd.set(a.pageX,a.pageY);else{const x=this._getSecondPointerPosition(a),E=.5*(a.pageX+x.x),z=.5*(a.pageY+x.y);this._rotateEnd.set(E,z)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const y=this.domElement;this._rotateLeft(ef*this._rotateDelta.x/y.clientHeight),this._rotateUp(ef*this._rotateDelta.y/y.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(a){if(this._pointers.length===1)this._panEnd.set(a.pageX,a.pageY);else{const y=this._getSecondPointerPosition(a),x=.5*(a.pageX+y.x),E=.5*(a.pageY+y.y);this._panEnd.set(x,E)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(a){const y=this._getSecondPointerPosition(a),x=a.pageX-y.x,E=a.pageY-y.y,z=Math.sqrt(x*x+E*E);this._dollyEnd.set(0,z),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const ee=(a.pageX+y.x)*.5,te=(a.pageY+y.y)*.5;this._updateZoomParameters(ee,te)}_handleTouchMoveDollyPan(a){this.enableZoom&&this._handleTouchMoveDolly(a),this.enablePan&&this._handleTouchMovePan(a)}_handleTouchMoveDollyRotate(a){this.enableZoom&&this._handleTouchMoveDolly(a),this.enableRotate&&this._handleTouchMoveRotate(a)}_addPointer(a){this._pointers.push(a.pointerId)}_removePointer(a){delete this._pointerPositions[a.pointerId];for(let y=0;yjF||8*(1-this._lastQuaternion.dot(y.quaternion))>jF)&&(this.dispatchEvent(Z$),this._lastQuaternion.copy(y.quaternion),this._lastPosition.copy(y.position))}_updateMovementVector(){const a=this._moveState.forward||this.autoForward&&!this._moveState.back?1:0;this._moveVector.x=-this._moveState.left+this._moveState.right,this._moveVector.y=-this._moveState.down+this._moveState.up,this._moveVector.z=-a+this._moveState.back}_updateRotationVector(){this._rotationVector.x=-this._moveState.pitchDown+this._moveState.pitchUp,this._rotationVector.y=-this._moveState.yawRight+this._moveState.yawLeft,this._rotationVector.z=-this._moveState.rollRight+this._moveState.rollLeft}_getContainerDimensions(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}}}function J$(b){if(!(b.altKey||this.enabled===!1)){switch(b.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this._moveState.forward=1;break;case"KeyS":this._moveState.back=1;break;case"KeyA":this._moveState.left=1;break;case"KeyD":this._moveState.right=1;break;case"KeyR":this._moveState.up=1;break;case"KeyF":this._moveState.down=1;break;case"ArrowUp":this._moveState.pitchUp=1;break;case"ArrowDown":this._moveState.pitchDown=1;break;case"ArrowLeft":this._moveState.yawLeft=1;break;case"ArrowRight":this._moveState.yawRight=1;break;case"KeyQ":this._moveState.rollLeft=1;break;case"KeyE":this._moveState.rollRight=1;break}this._updateMovementVector(),this._updateRotationVector()}}function K$(b){if(this.enabled!==!1){switch(b.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this._moveState.forward=0;break;case"KeyS":this._moveState.back=0;break;case"KeyA":this._moveState.left=0;break;case"KeyD":this._moveState.right=0;break;case"KeyR":this._moveState.up=0;break;case"KeyF":this._moveState.down=0;break;case"ArrowUp":this._moveState.pitchUp=0;break;case"ArrowDown":this._moveState.pitchDown=0;break;case"ArrowLeft":this._moveState.yawLeft=0;break;case"ArrowRight":this._moveState.yawRight=0;break;case"KeyQ":this._moveState.rollLeft=0;break;case"KeyE":this._moveState.rollRight=0;break}this._updateMovementVector(),this._updateRotationVector()}}function q$(b){if(this.enabled!==!1)if(this.dragToLook)this._status++;else{switch(b.button){case 0:this._moveState.forward=1;break;case 2:this._moveState.back=1;break}this._updateMovementVector()}}function _$(b){if(this.enabled!==!1&&(!this.dragToLook||this._status>0)){const a=this._getContainerDimensions(),y=a.size[0]/2,x=a.size[1]/2;this._moveState.yawLeft=-(b.pageX-a.offset[0]-y)/y,this._moveState.pitchDown=(b.pageY-a.offset[1]-x)/x,this._updateRotationVector()}}function $$(b){if(this.enabled!==!1){if(this.dragToLook)this._status--,this._moveState.yawLeft=this._moveState.pitchDown=0;else{switch(b.button){case 0:this._moveState.forward=0;break;case 2:this._moveState.back=0;break}this._updateMovementVector()}this._updateRotationVector()}}function eee(){this.enabled!==!1&&(this.dragToLook?(this._status=0,this._moveState.yawLeft=this._moveState.pitchDown=0):(this._moveState.forward=0,this._moveState.back=0,this._updateMovementVector()),this._updateRotationVector())}function tee(b){this.enabled!==!1&&b.preventDefault()}const nee={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform float opacity; uniform sampler2D tDiffuse; varying vec2 vUv; void main() { vec4 texel = texture2D( tDiffuse, vUv ); gl_FragColor = opacity * texel; }`};class X1{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const ree=new T0(-1,1,1,-1,0,1);class iee extends Fa{constructor(){super(),this.setAttribute("position",new us([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new us([0,2,0,0,2,0],2))}}const see=new iee;class aee{constructor(a){this._mesh=new Fo(see,a)}dispose(){this._mesh.geometry.dispose()}render(a){a.render(this._mesh,ree)}get material(){return this._mesh.material}set material(a){this._mesh.material=a}}class oee extends X1{constructor(a,y="tDiffuse"){super(),this.textureID=y,this.uniforms=null,this.material=null,a instanceof fp?(this.uniforms=a.uniforms,this.material=a):a&&(this.uniforms=b5.clone(a.uniforms),this.material=new fp({name:a.name!==void 0?a.name:"unspecified",defines:Object.assign({},a.defines),uniforms:this.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader})),this._fsQuad=new aee(this.material)}render(a,y,x){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=x.texture),this._fsQuad.material=this.material,this.renderToScreen?(a.setRenderTarget(null),this._fsQuad.render(a)):(a.setRenderTarget(y),this.clear&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil),this._fsQuad.render(a))}dispose(){this.material.dispose(),this._fsQuad.dispose()}}class GF extends X1{constructor(a,y){super(),this.scene=a,this.camera=y,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(a,y,x){const E=a.getContext(),z=a.state;z.buffers.color.setMask(!1),z.buffers.depth.setMask(!1),z.buffers.color.setLocked(!0),z.buffers.depth.setLocked(!0);let ee,te;this.inverse?(ee=0,te=1):(ee=1,te=0),z.buffers.stencil.setTest(!0),z.buffers.stencil.setOp(E.REPLACE,E.REPLACE,E.REPLACE),z.buffers.stencil.setFunc(E.ALWAYS,ee,4294967295),z.buffers.stencil.setClear(te),z.buffers.stencil.setLocked(!0),a.setRenderTarget(x),this.clear&&a.clear(),a.render(this.scene,this.camera),a.setRenderTarget(y),this.clear&&a.clear(),a.render(this.scene,this.camera),z.buffers.color.setLocked(!1),z.buffers.depth.setLocked(!1),z.buffers.color.setMask(!0),z.buffers.depth.setMask(!0),z.buffers.stencil.setLocked(!1),z.buffers.stencil.setFunc(E.EQUAL,1,4294967295),z.buffers.stencil.setOp(E.KEEP,E.KEEP,E.KEEP),z.buffers.stencil.setLocked(!0)}}class lee extends X1{constructor(){super(),this.needsSwap=!1}render(a){a.state.buffers.stencil.setLocked(!1),a.state.buffers.stencil.setTest(!1)}}class uee{constructor(a,y){if(this.renderer=a,this._pixelRatio=a.getPixelRatio(),y===void 0){const x=a.getSize(new tr);this._width=x.width,this._height=x.height,y=new Gg(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:vl}),y.texture.name="EffectComposer.rt1"}else this._width=y.width,this._height=y.height;this.renderTarget1=y,this.renderTarget2=y.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new oee(nee),this.copyPass.material.blending=El,this.clock=new FP}swapBuffers(){const a=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=a}addPass(a){this.passes.push(a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(a,y){this.passes.splice(y,0,a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(a){const y=this.passes.indexOf(a);y!==-1&&this.passes.splice(y,1)}isLastEnabledPass(a){for(let y=a+1;y0)break}while(ZF(E,z));te=he.notation==="postfix",he.symbol!==")"&&(E.push(he),te&&ZF(E,z))}else if(oe){if(E.push(oe.prefix||oe.func),oe.func&&(x=ee.exec(b),!x||x[0]!=="("))throw new la(38,x?x.index:b.length,b)}else z.push(+ie),te=!0}while(x&&E.length);if(E.length)throw new la(39,x?x.index:b.length,b);if(x)throw new la(40,x?x.index:b.length,b);return z.pop()}function fM(b){return b.split("").reverse().join("")}function Nde(b,a){var y=fM(b),x=y.match(QF);if(x&&!x.every(function(z){return z===x[0]}))throw new la(41);var E=fM(y.replace(QF,""));return""+wee(E,a)+(x?fM(x[0]):"")}var Cee=/--[\S]*/g;function Lde(b,a){if(!b||!b.match(Cee))throw new la(73);var y;if(typeof document!="undefined"&&document.documentElement!==null&&(y=getComputedStyle(document.documentElement).getPropertyValue(b)),y)return y.trim();if(a)return a;throw new la(74)}function Ob(b){return b.charAt(0).toUpperCase()+b.slice(1)}var Pee=null;function Bee(b,a){if(!b)return a.toLowerCase();var y=b.split("-");if(y.length>1)return y.splice(1,0,a),y.reduce(function(E,z){return""+E+Ob(z)});var x=b.replace(/([a-z])([A-Z])/g,"$1"+a+"$2");return b===x?""+b+a:x}function See(b,a){for(var y={},x=0;x1?a-1:0),x=1;x=0)?y[x]=b[x]+" !important":y[x]=b[x]}),y}var qF={minorSecond:1.067,majorSecond:1.125,minorThird:1.2,majorThird:1.25,perfectFourth:1.333,augFourth:1.414,perfectFifth:1.5,minorSixth:1.6,goldenSection:1.618,majorSixth:1.667,minorSeventh:1.778,majorSeventh:1.875,octave:2,majorTenth:2.5,majorEleventh:2.667,majorTwelfth:3,doubleOctave:4};function Fee(b){return qF[b]}function zde(b,a,y){if(a===void 0&&(a="1em"),y===void 0&&(y=1.333),typeof b!="number")throw new la(42);if(typeof y=="string"&&!qF[y])throw new la(43);var x=typeof a=="string"?mg(a):[a,""],E=x[0],z=x[1],ee=typeof y=="string"?Fee(y):y;if(typeof E=="string")throw new la(44,a);return""+E*Math.pow(ee,b)+(z||"")}var kde=KF("rem"),Hde=null,hM=16;function _F(b){var a=mg(b);if(a[1]==="px")return parseFloat(b);if(a[1]==="%")return parseFloat(b)/100*hM;throw new la(78,a[1])}function Nee(){if(typeof document!="undefined"&&document.documentElement!==null){var b=getComputedStyle(document.documentElement).fontSize;return b?_F(b):hM}return hM}function Ude(b,a){var y=mg(b);if(y[1]!=="rem"&&y[1]!=="")throw new la(77,y[1]);var x=a?_F(a):Nee();return y[0]*x+"px"}var Lee={back:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",circ:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",cubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",expo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",quad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",quart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",quint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",sine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)"};function jde(b){return Lee[b.toLowerCase().trim()]}var Oee={back:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",circ:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",cubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",expo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",quad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",quart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",quint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",sine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function Vde(b){return Oee[b.toLowerCase().trim()]}var Ree={back:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",cubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",circ:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",expo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",quad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",quart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",quint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",sine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"};function Gde(b){return Ree[b.toLowerCase().trim()]}function $F(b,a,y,x){y===void 0&&(y="320px"),x===void 0&&(x="1200px");var E=mg(b),z=E[0],ee=E[1],te=mg(a),ne=te[0],ie=te[1],ae=mg(y),oe=ae[0],le=ae[1],de=mg(x),he=de[0],ye=de[1];if(typeof oe!="number"||typeof he!="number"||!le||!ye||le!==ye)throw new la(47);if(typeof z!="number"||typeof ne!="number"||ee!==ie)throw new la(48);if(ee!==le||ie!==ye)throw new la(76);var Ae=(z-ne)/(oe-he),me=ne-Ae*he;return"calc("+me.toFixed(2)+(ee||"")+" + "+(100*Ae).toFixed(2)+"vw)"}function Xde(b){var a;b===void 0&&(b="&");var y=b+"::after";return a={},a[y]={clear:"both",content:'""',display:"table"},a}function Wde(b){return b===void 0&&(b=0),{position:"absolute",top:b,right:b,bottom:b,left:b}}function Qde(b,a){a===void 0&&(a=1);var y={display:"inline-block",maxWidth:b||"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordWrap:"normal"};return a>1?_extends({},y,{WebkitBoxOrient:"vertical",WebkitLineClamp:a,display:"-webkit-box",whiteSpace:"normal"}):y}function zee(b,a){var y=typeof Symbol!="undefined"&&b[Symbol.iterator]||b["@@iterator"];if(y)return(y=y.call(b)).next.bind(y);if(Array.isArray(b)||(y=kee(b))||a&&b&&typeof b.length=="number"){y&&(b=y);var x=0;return function(){return x>=b.length?{done:!0}:{done:!1,value:b[x++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kee(b,a){if(b){if(typeof b=="string")return eN(b,a);var y=Object.prototype.toString.call(b).slice(8,-1);if(y==="Object"&&b.constructor&&(y=b.constructor.name),y==="Map"||y==="Set")return Array.from(b);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return eN(b,a)}}function eN(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=new Array(a);y1?y-1:0),E=1;E1?(a=a.slice(0,-1),a+=", "+x[z]):ee.length===1&&(a+=""+x[z])}else x[z]&&(a+=x[z]+" ");return a.trim()}var rN;function qde(b){var a=b.colorStops,y=b.fallback,x=b.toDirection,E=x===void 0?"":x;if(!a||a.length<2)throw new la(56);return{backgroundColor:y||a[0].replace(/,\s+/g,",").split(" ")[0].replace(/,(?=\S)/g,", "),backgroundImage:nN(rN||(rN=_taggedTemplateLiteralLoose(["linear-gradient(","",")"])),E,a.join(", ").replace(/,(?=\S)/g,", "))}}function _de(){var b;return[(b={html:{lineHeight:"1.15",textSizeAdjust:"100%"},body:{margin:"0"},main:{display:"block"},h1:{fontSize:"2em",margin:"0.67em 0"},hr:{boxSizing:"content-box",height:"0",overflow:"visible"},pre:{fontFamily:"monospace, monospace",fontSize:"1em"},a:{backgroundColor:"transparent"},"abbr[title]":{borderBottom:"none",textDecoration:"underline"}},b[`b, strong`]={fontWeight:"bolder"},b[`code, kbd, samp`]={fontFamily:"monospace, monospace",fontSize:"1em"},b.small={fontSize:"80%"},b[`sub, sup`]={fontSize:"75%",lineHeight:"0",position:"relative",verticalAlign:"baseline"},b.sub={bottom:"-0.25em"},b.sup={top:"-0.5em"},b.img={borderStyle:"none"},b[`button, input, optgroup, select, textarea`]={fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15",margin:"0"},b[`button, input`]={overflow:"visible"},b[`button, select`]={textTransform:"none"},b[`button, html [type="button"], [type="reset"], [type="submit"]`]={WebkitAppearance:"button"},b[`button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner`]={borderStyle:"none",padding:"0"},b[`button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring`]={outline:"1px dotted ButtonText"},b.fieldset={padding:"0.35em 0.625em 0.75em"},b.legend={boxSizing:"border-box",color:"inherit",display:"table",maxWidth:"100%",padding:"0",whiteSpace:"normal"},b.progress={verticalAlign:"baseline"},b.textarea={overflow:"auto"},b[`[type="checkbox"], [type="radio"]`]={boxSizing:"border-box",padding:"0"},b[`[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button`]={height:"auto"},b['[type="search"]']={WebkitAppearance:"textfield",outlineOffset:"-2px"},b['[type="search"]::-webkit-search-decoration']={WebkitAppearance:"none"},b["::-webkit-file-upload-button"]={WebkitAppearance:"button",font:"inherit"},b.details={display:"block"},b.summary={display:"list-item"},b.template={display:"none"},b["[hidden]"]={display:"none"},b),{"abbr[title]":{textDecoration:"underline dotted"}}]}var iN;function $de(b){var a=b.colorStops,y=b.extent,x=y===void 0?"":y,E=b.fallback,z=b.position,ee=z===void 0?"":z,te=b.shape,ne=te===void 0?"":te;if(!a||a.length<2)throw new la(57);return{backgroundColor:E||a[0].split(" ")[0],backgroundImage:nN(iN||(iN=_taggedTemplateLiteralLoose(["radial-gradient(","","","",")"])),ee,ne,x,a.join(", "))}}function efe(b,a,y,x,E){var z;if(y===void 0&&(y="png"),E===void 0&&(E="_2x"),!b)throw new la(58);var ee=y.replace(/^\./,""),te=x?x+"."+ee:""+b+E+"."+ee;return z={backgroundImage:"url("+b+"."+ee+")"},z[Wee()]=_extends({backgroundImage:"url("+te+")"},a?{backgroundSize:a}:{}),z}var Qee={easeInBack:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",easeInCirc:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",easeInCubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",easeInExpo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",easeInQuad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",easeInQuart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",easeInQuint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",easeInSine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)",easeOutBack:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",easeOutCubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",easeOutCirc:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",easeOutExpo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",easeOutQuad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",easeOutQuart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",easeOutQuint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",easeOutSine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)",easeInOutBack:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",easeInOutCirc:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",easeInOutCubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",easeInOutExpo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",easeInOutQuad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",easeInOutQuart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",easeInOutQuint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",easeInOutSine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function Zee(b){return Qee[b]}function tfe(b){return Zee(b)}var Yee=function(a,y,x){var E=""+x[0]+(x[1]||""),z=""+x[0]/2+(x[1]||""),ee=""+y[0]+(y[1]||""),te=""+y[0]/2+(y[1]||"");switch(a){case"top":return"0 "+z+" "+ee+" "+z;case"topLeft":return E+" "+ee+" 0 0";case"left":return te+" "+E+" "+te+" 0";case"bottomLeft":return E+" 0 0 "+ee;case"bottom":return ee+" "+z+" 0 "+z;case"bottomRight":return"0 0 "+E+" "+ee;case"right":return te+" 0 "+te+" "+E;case"topRight":default:return"0 "+E+" "+ee+" 0"}},Jee=function(a,y){switch(a){case"top":case"bottomRight":return{borderBottomColor:y};case"right":case"bottomLeft":return{borderLeftColor:y};case"bottom":case"topLeft":return{borderTopColor:y};case"left":case"topRight":return{borderRightColor:y};default:throw new la(59)}};function nfe(b){var a=b.pointingDirection,y=b.height,x=b.width,E=b.foregroundColor,z=b.backgroundColor,ee=z===void 0?"transparent":z,te=mg(x),ne=mg(y);if(isNaN(ne[0])||isNaN(te[0]))throw new la(60);return _extends({width:"0",height:"0",borderColor:ee},Jee(a,E),{borderStyle:"solid",borderWidth:Yee(a,ne,te)})}function rfe(b){b===void 0&&(b="break-word");var a=b==="break-word"?"break-all":b;return{overflowWrap:b,wordWrap:b,wordBreak:a}}function pM(b){return Math.round(b*255)}function Kee(b,a,y){return pM(b)+","+pM(a)+","+pM(y)}function Rb(b,a,y,x){if(x===void 0&&(x=Kee),a===0)return x(y,y,y);var E=(b%360+360)%360/60,z=(1-Math.abs(2*y-1))*a,ee=z*(1-Math.abs(E%2-1)),te=0,ne=0,ie=0;E>=0&&E<1?(te=z,ne=ee):E>=1&&E<2?(te=ee,ne=z):E>=2&&E<3?(ne=z,ie=ee):E>=3&&E<4?(ne=ee,ie=z):E>=4&&E<5?(te=ee,ie=z):E>=5&&E<6&&(te=z,ie=ee);var ae=y-z/2,oe=te+ae,le=ne+ae,de=ie+ae;return x(oe,le,de)}var sN={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function qee(b){if(typeof b!="string")return b;var a=b.toLowerCase();return sN[a]?"#"+sN[a]:b}var _ee=/^#[a-fA-F0-9]{6}$/,$ee=/^#[a-fA-F0-9]{8}$/,ete=/^#[a-fA-F0-9]{3}$/,tte=/^#[a-fA-F0-9]{4}$/,mM=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,nte=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,rte=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,ite=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function gg(b){if(typeof b!="string")throw new la(3);var a=qee(b);if(a.match(_ee))return{red:parseInt(""+a[1]+a[2],16),green:parseInt(""+a[3]+a[4],16),blue:parseInt(""+a[5]+a[6],16)};if(a.match($ee)){var y=parseFloat((parseInt(""+a[7]+a[8],16)/255).toFixed(2));return{red:parseInt(""+a[1]+a[2],16),green:parseInt(""+a[3]+a[4],16),blue:parseInt(""+a[5]+a[6],16),alpha:y}}if(a.match(ete))return{red:parseInt(""+a[1]+a[1],16),green:parseInt(""+a[2]+a[2],16),blue:parseInt(""+a[3]+a[3],16)};if(a.match(tte)){var x=parseFloat((parseInt(""+a[4]+a[4],16)/255).toFixed(2));return{red:parseInt(""+a[1]+a[1],16),green:parseInt(""+a[2]+a[2],16),blue:parseInt(""+a[3]+a[3],16),alpha:x}}var E=mM.exec(a);if(E)return{red:parseInt(""+E[1],10),green:parseInt(""+E[2],10),blue:parseInt(""+E[3],10)};var z=nte.exec(a.substring(0,50));if(z)return{red:parseInt(""+z[1],10),green:parseInt(""+z[2],10),blue:parseInt(""+z[3],10),alpha:parseFloat(""+z[4])>1?parseFloat(""+z[4])/100:parseFloat(""+z[4])};var ee=rte.exec(a);if(ee){var te=parseInt(""+ee[1],10),ne=parseInt(""+ee[2],10)/100,ie=parseInt(""+ee[3],10)/100,ae="rgb("+Rb(te,ne,ie)+")",oe=mM.exec(ae);if(!oe)throw new la(4,a,ae);return{red:parseInt(""+oe[1],10),green:parseInt(""+oe[2],10),blue:parseInt(""+oe[3],10)}}var le=ite.exec(a.substring(0,50));if(le){var de=parseInt(""+le[1],10),he=parseInt(""+le[2],10)/100,ye=parseInt(""+le[3],10)/100,Ae="rgb("+Rb(de,he,ye)+")",me=mM.exec(Ae);if(!me)throw new la(4,a,Ae);return{red:parseInt(""+me[1],10),green:parseInt(""+me[2],10),blue:parseInt(""+me[3],10),alpha:parseFloat(""+le[4])>1?parseFloat(""+le[4])/100:parseFloat(""+le[4])}}throw new la(5)}function ste(b){var a=b.red/255,y=b.green/255,x=b.blue/255,E=Math.max(a,y,x),z=Math.min(a,y,x),ee=(E+z)/2;if(E===z)return b.alpha!==void 0?{hue:0,saturation:0,lightness:ee,alpha:b.alpha}:{hue:0,saturation:0,lightness:ee};var te,ne=E-z,ie=ee>.5?ne/(2-E-z):ne/(E+z);switch(E){case a:te=(y-x)/ne+(y=1?W1(b,a,y):"rgba("+Rb(b,a,y)+","+x+")";if(typeof b=="object"&&a===void 0&&y===void 0&&x===void 0)return b.alpha>=1?W1(b.hue,b.saturation,b.lightness):"rgba("+Rb(b.hue,b.saturation,b.lightness)+","+b.alpha+")";throw new la(2)}function Q1(b,a,y){if(typeof b=="number"&&typeof a=="number"&&typeof y=="number")return gM("#"+BA(b)+BA(a)+BA(y));if(typeof b=="object"&&a===void 0&&y===void 0)return gM("#"+BA(b.red)+BA(b.green)+BA(b.blue));throw new la(6)}function Hb(b,a,y,x){if(typeof b=="string"&&typeof a=="number"){var E=gg(b);return"rgba("+E.red+","+E.green+","+E.blue+","+a+")"}else{if(typeof b=="number"&&typeof a=="number"&&typeof y=="number"&&typeof x=="number")return x>=1?Q1(b,a,y):"rgba("+b+","+a+","+y+","+x+")";if(typeof b=="object"&&a===void 0&&y===void 0&&x===void 0)return b.alpha>=1?Q1(b.red,b.green,b.blue):"rgba("+b.red+","+b.green+","+b.blue+","+b.alpha+")"}throw new la(7)}var lte=function(a){return typeof a.red=="number"&&typeof a.green=="number"&&typeof a.blue=="number"&&(typeof a.alpha!="number"||typeof a.alpha=="undefined")},ute=function(a){return typeof a.red=="number"&&typeof a.green=="number"&&typeof a.blue=="number"&&typeof a.alpha=="number"},cte=function(a){return typeof a.hue=="number"&&typeof a.saturation=="number"&&typeof a.lightness=="number"&&(typeof a.alpha!="number"||typeof a.alpha=="undefined")},dte=function(a){return typeof a.hue=="number"&&typeof a.saturation=="number"&&typeof a.lightness=="number"&&typeof a.alpha=="number"};function Bp(b){if(typeof b!="object")throw new la(8);if(ute(b))return Hb(b);if(lte(b))return Q1(b);if(dte(b))return oN(b);if(cte(b))return aN(b);throw new la(8)}function lN(b,a,y){return function(){var E=y.concat(Array.prototype.slice.call(arguments));return E.length>=a?b.apply(this,E):lN(b,a,E)}}function Uf(b){return lN(b,b.length,[])}function fte(b,a){if(a==="transparent")return a;var y=mm(a);return Bp((0,Ih.Z)({},y,{hue:y.hue+parseFloat(b)}))}var ife=Uf(fte),sfe=null;function afe(b){if(b==="transparent")return b;var a=mm(b);return Bp(_extends({},a,{hue:(a.hue+180)%360}))}function my(b,a,y){return Math.max(b,Math.min(a,y))}function hte(b,a){if(a==="transparent")return a;var y=mm(a);return Bp((0,Ih.Z)({},y,{lightness:my(0,1,y.lightness-parseFloat(b))}))}var ofe=Uf(hte),lfe=null;function pte(b,a){if(a==="transparent")return a;var y=mm(a);return Bp((0,Ih.Z)({},y,{saturation:my(0,1,y.saturation-parseFloat(b))}))}var ufe=Uf(pte),cfe=null;function AM(b){if(b==="transparent")return 0;var a=gg(b),y=Object.keys(a).map(function(ee){var te=a[ee]/255;return te<=.03928?te/12.92:Math.pow((te+.055)/1.055,2.4)}),x=y[0],E=y[1],z=y[2];return parseFloat((.2126*x+.7152*E+.0722*z).toFixed(3))}function uN(b,a){var y=AM(b),x=AM(a);return parseFloat((y>x?(y+.05)/(x+.05):(x+.05)/(y+.05)).toFixed(2))}function dfe(b){return b==="transparent"?b:Bp(_extends({},mm(b),{saturation:0}))}function ffe(b){if(typeof b=="object"&&typeof b.hue=="number"&&typeof b.saturation=="number"&&typeof b.lightness=="number")return b.alpha&&typeof b.alpha=="number"?oN({hue:b.hue,saturation:b.saturation,lightness:b.lightness,alpha:b.alpha}):aN({hue:b.hue,saturation:b.saturation,lightness:b.lightness});throw new la(45)}function hfe(b){if(b==="transparent")return b;var a=gg(b);return Bp(_extends({},a,{red:255-a.red,green:255-a.green,blue:255-a.blue}))}function mte(b,a){if(a==="transparent")return a;var y=mm(a);return Bp((0,Ih.Z)({},y,{lightness:my(0,1,y.lightness+parseFloat(b))}))}var pfe=Uf(mte),mfe=null;function gfe(b,a){var y=uN(b,a);return{AA:y>=4.5,AALarge:y>=3,AAA:y>=7,AAALarge:y>=4.5}}function gte(b,a,y){if(a==="transparent")return y;if(y==="transparent")return a;if(b===0)return y;var x=gg(a),E=(0,Ih.Z)({},x,{alpha:typeof x.alpha=="number"?x.alpha:1}),z=gg(y),ee=(0,Ih.Z)({},z,{alpha:typeof z.alpha=="number"?z.alpha:1}),te=E.alpha-ee.alpha,ne=parseFloat(b)*2-1,ie=ne*te===-1?ne:ne+te,ae=1+ne*te,oe=(ie/ae+1)/2,le=1-oe,de={red:Math.floor(E.red*oe+ee.red*le),green:Math.floor(E.green*oe+ee.green*le),blue:Math.floor(E.blue*oe+ee.blue*le),alpha:E.alpha*parseFloat(b)+ee.alpha*(1-parseFloat(b))};return Hb(de)}var vte=Uf(gte),cN=vte;function Ate(b,a){if(a==="transparent")return a;var y=gg(a),x=typeof y.alpha=="number"?y.alpha:1,E=(0,Ih.Z)({},y,{alpha:my(0,1,(x*100+parseFloat(b)*100)/100)});return Hb(E)}var yte=Uf(Ate),xte=yte,dN="#000",fN="#fff";function vfe(b,a,y,x){a===void 0&&(a=dN),y===void 0&&(y=fN),x===void 0&&(x=!0);var E=AM(b)>.179,z=E?a:y;return!x||uN(b,z)>=4.5?z:E?dN:fN}function Afe(b){if(typeof b=="object"&&typeof b.red=="number"&&typeof b.green=="number"&&typeof b.blue=="number")return typeof b.alpha=="number"?Hb({red:b.red,green:b.green,blue:b.blue,alpha:b.alpha}):Q1({red:b.red,green:b.green,blue:b.blue});throw new la(46)}function bte(b,a){if(a==="transparent")return a;var y=mm(a);return Bp((0,Ih.Z)({},y,{saturation:my(0,1,y.saturation+parseFloat(b))}))}var yfe=Uf(bte),xfe=null;function Ete(b,a){return a==="transparent"?a:Bp((0,Ih.Z)({},mm(a),{hue:parseFloat(b)}))}var bfe=Uf(Ete),Efe=null;function wte(b,a){return a==="transparent"?a:Bp((0,Ih.Z)({},mm(a),{lightness:parseFloat(b)}))}var wfe=Uf(wte),Cfe=null;function Cte(b,a){return a==="transparent"?a:Bp((0,Ih.Z)({},mm(a),{saturation:parseFloat(b)}))}var Pfe=Uf(Cte),Bfe=null;function Pte(b,a){return a==="transparent"?a:cN(parseFloat(b),"rgb(0, 0, 0)",a)}var Sfe=Uf(Pte),Mfe=null;function Bte(b,a){return a==="transparent"?a:cN(parseFloat(b),"rgb(255, 255, 255)",a)}var Dfe=Uf(Bte),Tfe=null;function Ste(b,a){if(a==="transparent")return a;var y=gg(a),x=typeof y.alpha=="number"?y.alpha:1,E=(0,Ih.Z)({},y,{alpha:my(0,1,+(x*100-parseFloat(b)*100).toFixed(2)/100)});return Hb(E)}var Ife=Uf(Ste),Ffe=null;function Nfe(){for(var b=arguments.length,a=new Array(b),y=0;y8)throw new la(64);var E=a.map(function(z){if(x&&!Array.isArray(z)||!x&&Array.isArray(z))throw new la(65);if(Array.isArray(z)&&z.length>8)throw new la(66);return Array.isArray(z)?z.join(" "):z}).join(", ");return{animation:E}}function Lfe(){for(var b=arguments.length,a=new Array(b),y=0;y1?a-1:0),x=1;x=0){var E;return E={},E["border"+Ob(b)+"Width"]=y[0],E["border"+Ob(b)+"Style"]=y[1],E["border"+Ob(b)+"Color"]=y[2],E}else return y.unshift(b),{borderWidth:y[0],borderStyle:y[1],borderColor:y[2]}}function zfe(){for(var b=arguments.length,a=new Array(b),y=0;y1?a-1:0),x=1;x=0&&b?_extends({},PA.apply(void 0,[""].concat(y)),{position:b}):PA.apply(void 0,["",b].concat(y))}function Wfe(b,a){return a===void 0&&(a=b),{height:b,width:a}}var Fte=null;function Nte(b){return'input[type="color"]'+b+`, input[type="date"]`+b+`, input[type="datetime"]`+b+`, input[type="datetime-local"]`+b+`, input[type="email"]`+b+`, input[type="month"]`+b+`, input[type="number"]`+b+`, input[type="password"]`+b+`, input[type="search"]`+b+`, input[type="tel"]`+b+`, input[type="text"]`+b+`, input[type="time"]`+b+`, input[type="url"]`+b+`, input[type="week"]`+b+`, input:not([type])`+b+`, textarea`+b}function Qfe(){for(var b=arguments.length,a=new Array(b),y=0;y1e4?1e4:b,{In:function(a){return Math.pow(a,b)},Out:function(a){return 1-Math.pow(1-a,b)},InOut:function(a){return a<.5?Math.pow(a*2,b)/2:(1-Math.pow(2-a*2,b))/2+.5}}}}),gy=function(){return performance.now()},yM=function(){function b(){for(var a=[],y=0;y0;){this._tweensAddedDuringUpdate={};for(var E=0;E1?z(b[y],b[y-1],y-x):z(b[E],b[E+1>y?y:E+1],x-E)},Bezier:function(b,a){for(var y=0,x=b.length-1,E=Math.pow,z=SA.Utils.Bernstein,ee=0;ee<=x;ee++)y+=E(1-a,x-ee)*E(a,ee)*b[ee]*z(x,ee);return y},CatmullRom:function(b,a){var y=b.length-1,x=y*a,E=Math.floor(x),z=SA.Utils.CatmullRom;return b[0]===b[y]?(a<0&&(E=Math.floor(x=y*(1+a))),z(b[(E-1+y)%y],b[E],b[(E+1)%y],b[(E+2)%y],x-E)):a<0?b[0]-(z(b[0],b[0],b[1],b[1],-x)-b[0]):a>1?b[y]-(z(b[y],b[y],b[y-1],b[y-1],x-y)-b[y]):z(b[E?E-1:0],b[E],b[y1;x--)y*=x;return b[a]=y,y}}(),CatmullRom:function(b,a,y,x,E){var z=(y-b)*.5,ee=(x-a)*.5,te=E*E,ne=E*te;return(2*a-2*y+z+ee)*ne+(-3*a+3*y-2*z-ee)*te+z*E+a}}},xM=function(){function b(){}return b.nextId=function(){return b._nextId++},b._nextId=0,b}(),bM=new yM,EM=function(){function b(a,y){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=pv.Linear.None,this._interpolationFunction=SA.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=xM.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=a,typeof y=="object"?(this._group=y,y.add(this)):y===!0&&(this._group=bM,bM.add(this))}return b.prototype.getId=function(){return this._id},b.prototype.isPlaying=function(){return this._isPlaying},b.prototype.isPaused=function(){return this._isPaused},b.prototype.getDuration=function(){return this._duration},b.prototype.to=function(a,y){if(y===void 0&&(y=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=a,this._propertiesAreSetUp=!1,this._duration=y<0?0:y,this},b.prototype.duration=function(a){return a===void 0&&(a=1e3),this._duration=a<0?0:a,this},b.prototype.dynamic=function(a){return a===void 0&&(a=!1),this._isDynamic=a,this},b.prototype.start=function(a,y){if(a===void 0&&(a=gy()),y===void 0&&(y=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var x in this._valuesStartRepeat)this._swapEndStartRepeatValues(x),this._valuesStart[x]=this._valuesStartRepeat[x]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=a,this._startTime+=this._delayTime,!this._propertiesAreSetUp||y){if(this._propertiesAreSetUp=!0,!this._isDynamic){var E={};for(var z in this._valuesEnd)E[z]=this._valuesEnd[z];this._valuesEnd=E}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,y)}return this},b.prototype.startFromCurrentValues=function(a){return this.start(a,!0)},b.prototype._setupProperties=function(a,y,x,E,z){for(var ee in x){var te=a[ee],ne=Array.isArray(te),ie=ne?"array":typeof te,ae=!ne&&Array.isArray(x[ee]);if(!(ie==="undefined"||ie==="function")){if(ae){var oe=x[ee];if(oe.length===0)continue;for(var le=[te],de=0,he=oe.length;dene)return 1;var ye=Math.trunc(ee/te),Ae=ee-ye*te,me=Math.min(Ae/x._duration,1);return me===0&&ee===x._duration?1:me},ae=ie(),oe=this._easingFunction(ae);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,oe),this._onUpdateCallback&&this._onUpdateCallback(this._object,ae),this._duration===0||ee>=this._duration)if(this._repeat>0){var le=Math.min(Math.trunc((ee-this._duration)/te)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=le);for(z in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[z]=="string"&&(this._valuesStartRepeat[z]=this._valuesStartRepeat[z]+parseFloat(this._valuesEnd[z])),this._yoyo&&this._swapEndStartRepeatValues(z),this._valuesStart[z]=this._valuesStartRepeat[z];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=te*le,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var de=0,he=this._chainedTweens.length;de=Ee&&(Ee=Ce+1);!(Ne=Ae[Ee])&&++Ee=0;)(ee=x[E])&&(z&&ee.compareDocumentPosition(z)^4&&z.parentNode.insertBefore(ee,z),z=ee);return this}function mne(b){b||(b=gne);function a(oe,le){return oe&&le?b(oe.__data__,le.__data__):!oe-!le}for(var y=this._groups,x=y.length,E=new Array(x),z=0;za?1:b>=a?0:NaN}function vne(){var b=arguments[0];return arguments[0]=this,b.apply(null,arguments),this}function Ane(){return Array.from(this)}function yne(){for(var b=this._groups,a=0,y=b.length;a=0&&(a=b.slice(0,y))!=="xmlns"&&(b=b.slice(y+1)),AN.hasOwnProperty(a)?{space:AN[a],local:b}:b}function wne(b){return function(){this.removeAttribute(b)}}function Cne(b){return function(){this.removeAttributeNS(b.space,b.local)}}function Pne(b,a){return function(){this.setAttribute(b,a)}}function Bne(b,a){return function(){this.setAttributeNS(b.space,b.local,a)}}function Sne(b,a){return function(){var y=a.apply(this,arguments);y==null?this.removeAttribute(b):this.setAttribute(b,y)}}function Mne(b,a){return function(){var y=a.apply(this,arguments);y==null?this.removeAttributeNS(b.space,b.local):this.setAttributeNS(b.space,b.local,y)}}function Dne(b,a){var y=yN(b);if(arguments.length<2){var x=this.node();return y.local?x.getAttributeNS(y.space,y.local):x.getAttribute(y)}return this.each((a==null?y.local?Cne:wne:typeof a=="function"?y.local?Mne:Sne:y.local?Bne:Pne)(y,a))}function xN(b){return b.ownerDocument&&b.ownerDocument.defaultView||b.document&&b||b.defaultView}function Tne(b){return function(){this.style.removeProperty(b)}}function Ine(b,a,y){return function(){this.style.setProperty(b,a,y)}}function Fne(b,a,y){return function(){var x=a.apply(this,arguments);x==null?this.style.removeProperty(b):this.style.setProperty(b,x,y)}}function Nne(b,a,y){return arguments.length>1?this.each((a==null?Tne:typeof a=="function"?Fne:Ine)(b,a,y==null?"":y)):Lne(this.node(),b)}function Lne(b,a){return b.style.getPropertyValue(a)||xN(b).getComputedStyle(b,null).getPropertyValue(a)}function One(b){return function(){delete this[b]}}function Rne(b,a){return function(){this[b]=a}}function zne(b,a){return function(){var y=a.apply(this,arguments);y==null?delete this[b]:this[b]=y}}function kne(b,a){return arguments.length>1?this.each((a==null?One:typeof a=="function"?zne:Rne)(b,a)):this.node()[b]}function bN(b){return b.trim().split(/^|\s+/)}function CM(b){return b.classList||new EN(b)}function EN(b){this._node=b,this._names=bN(b.getAttribute("class")||"")}EN.prototype={add:function(b){var a=this._names.indexOf(b);a<0&&(this._names.push(b),this._node.setAttribute("class",this._names.join(" ")))},remove:function(b){var a=this._names.indexOf(b);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(b){return this._names.indexOf(b)>=0}};function wN(b,a){for(var y=CM(b),x=-1,E=a.length;++x=0&&(y=a.slice(x+1),a=a.slice(0,x)),{type:a,name:y}})}function pre(b){return function(){var a=this.__on;if(a){for(var y=0,x=-1,E=a.length,z;y2&&(ee.children=arguments.length>3?Ub.call(arguments,2):y),typeof b=="function"&&b.defaultProps!=null)for(z in b.defaultProps)ee[z]===void 0&&(ee[z]=b.defaultProps[z]);return Wb(b,ee,x,E,null)}function Wb(b,a,y,x,E){var z={type:b,props:a,key:y,ref:x,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:E==null?++MN:E,__i:-1,__u:0};return E==null&&zl.vnode!=null&&zl.vnode(z),z}function Kfe(){return{current:null}}function Y1(b){return b.children}function J1(b,a){this.props=b,this.context=a}function vy(b,a){if(a==null)return b.__?vy(b.__,b.__i+1):null;for(var y;ate&&MA.sort(FN),b=MA.shift(),te=MA.length,b.__d&&(y=void 0,E=(x=(a=b).__v).__e,z=[],ee=[],a.__P&&((y=vm({},x)).__v=x.__v+1,zl.vnode&&zl.vnode(y),TM(a.__P,y,x,a.__n,a.__P.namespaceURI,32&x.__u?[E]:null,z,E==null?vy(x):E,!!(32&x.__u),ee),y.__v=x.__v,y.__.__k[y.__i]=y,jN(z,y,ee),y.__e!=E&&RN(y)));K1.__r=0}function zN(b,a,y,x,E,z,ee,te,ne,ie,ae){var oe,le,de,he,ye,Ae,me,Ce=x&&x.__k||ON,Ee=a.length;for(ne=Mre(y,a,Ce,ne,Ee),oe=0;oe0?Wb(ee.type,ee.props,ee.key,ee.ref?ee.ref:null,ee.__v):ee).__=b,ee.__b=b.__b+1,te=null,(ie=ee.__i=Tre(ee,y,ne,oe))!=-1&&(oe--,(te=y[ie])&&(te.__u|=2)),te==null||te.__v==null?(ie==-1&&(E>ae?le--:Ene?le--:le++,ee.__u|=4))):b.__k[z]=null;if(oe)for(z=0;z(ae?1:0)){for(E=y-1,z=y+1;E>=0||z=0?E--:z++])!=null&&!(2&ie.__u)&&te==ie.key&&ne==ie.type)return ee}return-1}function HN(b,a,y){a[0]=="-"?b.setProperty(a,y==null?"":y):b[a]=y==null?"":typeof y!="number"||Bre.test(a)?y:y+"px"}function q1(b,a,y,x,E){var z,ee;e:if(a=="style")if(typeof y=="string")b.style.cssText=y;else{if(typeof x=="string"&&(b.style.cssText=x=""),x)for(a in x)y&&a in y||HN(b.style,a,"");if(y)for(a in y)x&&y[a]==x[a]||HN(b.style,a,y[a])}else if(a[0]=="o"&&a[1]=="n")z=a!=(a=a.replace(NN,"$1")),ee=a.toLowerCase(),a=ee in b||a=="onFocusOut"||a=="onFocusIn"?ee.slice(2):a.slice(2),b.l||(b.l={}),b.l[a+z]=y,y?x?y.u=x.u:(y.u=PM,b.addEventListener(a,z?SM:BM,z)):b.removeEventListener(a,z?SM:BM,z);else{if(E=="http://www.w3.org/2000/svg")a=a.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(a!="width"&&a!="height"&&a!="href"&&a!="list"&&a!="form"&&a!="tabIndex"&&a!="download"&&a!="rowSpan"&&a!="colSpan"&&a!="role"&&a!="popover"&&a in b)try{b[a]=y==null?"":y;break e}catch(te){}typeof y=="function"||(y==null||y===!1&&a[4]!="-"?b.removeAttribute(a):b.setAttribute(a,a=="popover"&&y==1?"":y))}}function UN(b){return function(a){if(this.l){var y=this.l[a.type+b];if(a.t==null)a.t=PM++;else if(a.t0?b:Xb(b)?b.map(VN):vm({},b)}function Ire(b,a,y,x,E,z,ee,te,ne){var ie,ae,oe,le,de,he,ye,Ae=y.props,me=a.props,Ce=a.type;if(Ce=="svg"?E="http://www.w3.org/2000/svg":Ce=="math"?E="http://www.w3.org/1998/Math/MathML":E||(E="http://www.w3.org/1999/xhtml"),z!=null){for(ie=0;ie2&&(te.children=arguments.length>3?Ub.call(arguments,2):y),Wb(b.type,te,x||b.key,E||b.ref,null)}function qfe(b){function a(y){var x,E;return this.getChildContext||(x=new Set,(E={})[a.__c]=this,this.getChildContext=function(){return E},this.componentWillUnmount=function(){x=null},this.shouldComponentUpdate=function(z){this.props.value!=z.value&&x.forEach(function(ee){ee.__e=!0,DM(ee)})},this.sub=function(z){x.add(z);var ee=z.componentWillUnmount;z.componentWillUnmount=function(){x&&x.delete(z),ee&&ee.call(z)}}),y.children}return a.__c="__cC"+LN++,a.__=b,a.Provider=a.__l=(a.Consumer=function(y,x){return y.children(x)}).contextType=a,a}Ub=ON.slice,zl={__e:function(b,a,y,x){for(var E,z,ee;a=a.__;)if((E=a.__c)&&!E.__)try{if((z=E.constructor)&&z.getDerivedStateFromError!=null&&(E.setState(z.getDerivedStateFromError(b)),ee=E.__d),E.componentDidCatch!=null&&(E.componentDidCatch(b,x||{}),ee=E.__d),ee)return E.__E=E}catch(te){b=te}throw b}},MN=0,DN=function(b){return b!=null&&b.constructor==null},J1.prototype.setState=function(b,a){var y;y=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=vm({},this.state),typeof b=="function"&&(b=b(vm({},y),this.props)),b&&vm(y,b),b!=null&&this.__v&&(a&&this._sb.push(a),DM(this))},J1.prototype.forceUpdate=function(b){this.__v&&(this.__e=!0,b&&this.__h.push(b),DM(this))},J1.prototype.render=Y1,MA=[],IN=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,FN=function(b,a){return b.__v.__b-a.__v.__b},K1.__r=0,NN=/(PointerCapture)$|Capture$/i,PM=0,BM=UN(!1),SM=UN(!0),LN=0;function QN(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);y2&&arguments[2]!==void 0?arguments[2]:{},E=x.style,z=E===void 0?{}:E,ee=!!a&&_1(a)==="object"&&!!a.node&&typeof a.node=="function",te=wre(ee?a.node():a);te.style("position")==="static"&&te.style("position","relative"),y.tooltipEl=te.append("div").attr("class","float-tooltip-kap"),Object.entries(z).forEach(function(ie){var ae=Hre(ie,2),oe=ae[0],le=ae[1];return y.tooltipEl.style(oe,le)}),y.tooltipEl.style("left","-10000px").style("display","none");var ne="tooltip-".concat(Math.round(Math.random()*1e12));y.mouseInside=!1,te.on("mousemove.".concat(ne),function(ie){y.mouseInside=!0;var ae=Pre(ie),oe=te.node(),le=oe.offsetWidth,de=oe.offsetHeight,he=[y.offsetX===null||y.offsetX===void 0?"-".concat(ae[0]/le*100,"%"):typeof y.offsetX=="number"?"calc(-50% + ".concat(y.offsetX,"px)"):y.offsetX,y.offsetY===null||y.offsetY===void 0?de>130&&de-ae[1]<100?"calc(-100% - 6px)":"21px":typeof y.offsetY=="number"?y.offsetY<0?"calc(-100% - ".concat(Math.abs(y.offsetY),"px)"):"".concat(y.offsetY,"px"):y.offsetY];y.tooltipEl.style("left",ae[0]+"px").style("top",ae[1]+"px").style("transform","translate(".concat(he.join(","),")")),y.content&&y.tooltipEl.style("display","inline")}),te.on("mouseover.".concat(ne),function(){y.mouseInside=!0,y.content&&y.tooltipEl.style("display","inline")}),te.on("mouseout.".concat(ne),function(){y.mouseInside=!1,y.tooltipEl.style("display","none")})},update:function(a){a.tooltipEl.style("display",a.content&&a.mouseInside?"inline":"none"),a.content?a.content instanceof HTMLElement?(a.tooltipEl.text(""),a.tooltipEl.append(function(){return a.content})):typeof a.content=="string"?a.tooltipEl.html(a.content):Gre(a.content)?(a.tooltipEl.text(""),Xre(a.content,a.tooltipEl.node())):(a.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",a.content,a.content.toString())):a.tooltipEl.text("")}});function Yre(b,a){a===void 0&&(a={});var y=a.insertAt;if(typeof document!="undefined"){var x=document.head||document.getElementsByTagName("head")[0],E=document.createElement("style");E.type="text/css",y==="top"&&x.firstChild?x.insertBefore(E,x.firstChild):x.appendChild(E),E.styleSheet?E.styleSheet.cssText=b:E.appendChild(document.createTextNode(b))}}var Jre=`.scene-nav-info { position: absolute; bottom: 5px; width: 100%; text-align: center; color: slategrey; opacity: 0.7; font-size: 10px; font-family: sans-serif; pointer-events: none; user-select: none; } .scene-container canvas:focus { outline: none; }`;Yre(Jre);function LM(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);y=a.pointerRaycasterThrottleMs){a.lastRaycasterCheck=y;var x=null;if(a.hoverDuringDrag||!a.isPointerDragging){var E=this.intersectingObjects(a.pointerPos.x,a.pointerPos.y);a.hoverOrderComparator&&E.sort(function(ee,te){return a.hoverOrderComparator(ee.object,te.object)});var z=E.find(function(ee){return a.hoverFilter(ee.object)})||null;x=z?z.object:null,a.intersection=z||null}x!==a.hoverObj&&(a.onHover(x,a.hoverObj,a.intersection),a.tooltip.content(x&&so(a.tooltipContent)(x,a.intersection)||null),a.hoverObj=x)}a.tweenGroup.update()}return this},getPointerPos:function(a){var y=a.pointerPos,x=y.x,E=y.y;return{x,y:E}},cameraPosition:function(a,y,x,E){var z=a.camera;if(y&&a.initialised){var ee=y,te=x||{x:0,y:0,z:0};if(!E)ae(ee),oe(te);else{var ne=Object.assign({},z.position),ie=le();a.tweenGroup.add(new EM(ne).to(ee,E).easing(pv.Quadratic.Out).onUpdate(ae).start()),a.tweenGroup.add(new EM(ie).to(te,E/3).easing(pv.Quadratic.Out).onUpdate(oe).start())}return this}return Object.assign({},z.position,{lookAt:le()});function ae(de){var he=de.x,ye=de.y,Ae=de.z;he!==void 0&&(z.position.x=he),ye!==void 0&&(z.position.y=ye),Ae!==void 0&&(z.position.z=Ae)}function oe(de){var he=new kl.Vector3(de.x,de.y,de.z);a.controls.enabled&&a.controls.target?a.controls.target=he:z.lookAt(he)}function le(){return Object.assign(new kl.Vector3(0,0,-1e3).applyQuaternion(z.quaternion).add(z.position))}},zoomToFit:function(a){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,E=arguments.length,z=new Array(E>3?E-3:0),ee=3;ee2&&arguments[2]!==void 0?arguments[2]:0,E=arguments.length>3&&arguments[3]!==void 0?arguments[3]:10,z=a.camera;if(y){var ee=new kl.Vector3(0,0,0),te=Math.max.apply(Math,DA(Object.entries(y).map(function(de){var he=rie(de,2),ye=he[0],Ae=he[1];return Math.max.apply(Math,DA(Ae.map(function(me){return Math.abs(ee[ye]-me)})))})))*2,ne=(1-E*2/a.height)*z.fov,ie=te/Math.atan(ne*Math.PI/180),ae=ie/z.aspect,oe=Math.max(ie,ae);if(oe>0){var le=ee.clone().sub(z.position).normalize().multiplyScalar(-oe);this.cameraPosition(le,ee,x)}}return this},getBbox:function(a){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},x=new kl.Box3(new kl.Vector3(0,0,0),new kl.Vector3(0,0,0)),E=a.objects.filter(y);return E.length?(E.forEach(function(z){return x.expandByObject(z)}),Object.assign.apply(Object,DA(["x","y","z"].map(function(z){return _re({},z,[x.min[z],x.max[z]])})))):null},getScreenCoords:function(a,y,x,E){var z=new kl.Vector3(y,x,E);return z.project(this.camera()),{x:(z.x+1)*a.width/2,y:-(z.y-1)*a.height/2}},getSceneCoords:function(a,y,x){var E=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,z=new kl.Vector2(y/a.width*2-1,-(x/a.height)*2+1),ee=new kl.Raycaster;return ee.setFromCamera(z,a.camera),Object.assign({},ee.ray.at(E,new kl.Vector3))},intersectingObjects:function(a,y,x){var E=new kl.Vector2(y/a.width*2-1,-(x/a.height)*2+1),z=new kl.Raycaster;return z.params.Line.threshold=a.lineHoverPrecision,z.params.Points.threshold=a.pointsHoverPrecision,z.setFromCamera(E,a.camera),z.intersectObjects(a.objects,!0)},renderer:function(a){return a.renderer},scene:function(a){return a.scene},camera:function(a){return a.camera},postProcessingComposer:function(a){return a.postProcessingComposer},controls:function(a){return a.controls},tbControls:function(a){return a.controls}},stateInit:function(){return{scene:new kl.Scene,camera:new kl.PerspectiveCamera,clock:new kl.Clock,tweenGroup:new yM,lastRaycasterCheck:0}},init:function(a,y){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},E=x.controlType,z=E===void 0?"trackball":E,ee=x.useWebGPU,te=ee===void 0?!1:ee,ne=x.rendererConfig,ie=ne===void 0?{}:ne,ae=x.extraRenderers,oe=ae===void 0?[]:ae,le=x.waitForLoadComplete,de=le===void 0?!0:le;a.innerHTML="",a.appendChild(y.container=document.createElement("div")),y.container.className="scene-container",y.container.style.position="relative",y.container.appendChild(y.navInfo=document.createElement("div")),y.navInfo.className="scene-nav-info",y.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[z]||"",y.navInfo.style.display=y.showNavInfo?null:"none",y.tooltip=new Zre(y.container),y.pointerPos=new kl.Vector2,y.pointerPos.x=-2,y.pointerPos.y=-2,["pointermove","pointerdown"].forEach(function(he){return y.container.addEventListener(he,function(ye){if(he==="pointerdown"&&(y.isPointerPressed=!0),!y.isPointerDragging&&ye.type==="pointermove"&&(ye.pressure>0||y.isPointerPressed)&&(ye.pointerType==="mouse"||ye.movementX===void 0||[ye.movementX,ye.movementY].some(function(Ce){return Math.abs(Ce)>1}))&&(y.isPointerDragging=!0),y.enablePointerInteraction){var Ae=me(y.container);y.pointerPos.x=ye.pageX-Ae.left,y.pointerPos.y=ye.pageY-Ae.top}function me(Ce){var Ee=Ce.getBoundingClientRect(),Be=window.pageXOffset||document.documentElement.scrollLeft,Ne=window.pageYOffset||document.documentElement.scrollTop;return{top:Ee.top+Ne,left:Ee.left+Be}}},{passive:!0})}),y.container.addEventListener("pointerup",function(he){y.isPointerPressed&&(y.isPointerPressed=!1,!(y.isPointerDragging&&(y.isPointerDragging=!1,!y.clickAfterDrag))&&requestAnimationFrame(function(){he.button===0&&y.onClick(y.hoverObj||null,he,y.intersection),he.button===2&&y.onRightClick&&y.onRightClick(y.hoverObj||null,he,y.intersection)}))},{passive:!0,capture:!0}),y.container.addEventListener("contextmenu",function(he){y.onRightClick&&he.preventDefault()}),y.renderer=new(te?p$:kl.WebGLRenderer)(Object.assign({antialias:!0,alpha:!0},ie)),y.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),y.container.appendChild(y.renderer.domElement),y.extraRenderers=oe,y.extraRenderers.forEach(function(he){he.domElement.style.position="absolute",he.domElement.style.top="0px",he.domElement.style.pointerEvents="none",y.container.appendChild(he.domElement)}),y.postProcessingComposer=new uee(y.renderer),y.postProcessingComposer.addPass(new cee(y.scene,y.camera)),y.controls=new{trackball:A$,orbit:L$,fly:Y$}[z](y.camera,y.renderer.domElement),z==="fly"&&(y.controls.movementSpeed=300,y.controls.rollSpeed=Math.PI/6,y.controls.dragToLook=!0),(z==="trackball"||z==="orbit")&&(y.controls.minDistance=.1,y.controls.maxDistance=y.skyRadius,y.controls.addEventListener("start",function(){y.controlsEngaged=!0}),y.controls.addEventListener("change",function(){y.controlsEngaged&&(y.controlsDragging=!0)}),y.controls.addEventListener("end",function(){y.controlsEngaged=!1,y.controlsDragging=!1})),[y.renderer,y.postProcessingComposer].concat(DA(y.extraRenderers)).forEach(function(he){return he.setSize(y.width,y.height)}),y.camera.aspect=y.width/y.height,y.camera.updateProjectionMatrix(),y.camera.position.z=1e3,y.scene.add(y.skysphere=new kl.Mesh),y.skysphere.visible=!1,y.loadComplete=y.scene.visible=!de,window.scene=y.scene},update:function(a,y){if(a.width&&a.height&&(y.hasOwnProperty("width")||y.hasOwnProperty("height"))){var x,E=a.width,z=a.height;a.container.style.width="".concat(E,"px"),a.container.style.height="".concat(z,"px"),[a.renderer,a.postProcessingComposer].concat(DA(a.extraRenderers)).forEach(function(de){return de.setSize(E,z)}),a.camera.aspect=E/z;var ee=a.viewOffset.slice(0,2);ee.some(function(de){return de})&&(x=a.camera).setViewOffset.apply(x,[E,z].concat(DA(ee),[E,z])),a.camera.updateProjectionMatrix()}if(y.hasOwnProperty("viewOffset")){var te,ne=a.width,ie=a.height,ae=a.viewOffset.slice(0,2);ae.some(function(de){return de})?(te=a.camera).setViewOffset.apply(te,[ne,ie].concat(DA(ae),[ne,ie])):a.camera.clearViewOffset()}if(y.hasOwnProperty("skyRadius")&&a.skyRadius&&(a.controls.hasOwnProperty("maxDistance")&&y.skyRadius&&(a.controls.maxDistance=Math.min(a.controls.maxDistance,a.skyRadius)),a.camera.far=a.skyRadius*2.5,a.camera.updateProjectionMatrix(),a.skysphere.geometry=new kl.SphereGeometry(a.skyRadius)),y.hasOwnProperty("backgroundColor")){var oe=gg(a.backgroundColor).alpha;oe===void 0&&(oe=1),a.renderer.setClearColor(new kl.Color(xte(1,a.backgroundColor)),oe)}y.hasOwnProperty("backgroundImageUrl")&&(a.backgroundImageUrl?new kl.TextureLoader().load(a.backgroundImageUrl,function(de){de.colorSpace=kl.SRGBColorSpace,a.skysphere.material=new kl.MeshBasicMaterial({map:de,side:kl.BackSide}),a.skysphere.visible=!0,a.onBackgroundImageLoaded&&setTimeout(a.onBackgroundImageLoaded),!a.loadComplete&&le()}):(a.skysphere.visible=!1,a.skysphere.material.map=null,!a.loadComplete&&le())),y.hasOwnProperty("showNavInfo")&&(a.navInfo.style.display=a.showNavInfo?null:"none"),y.hasOwnProperty("lights")&&((y.lights||[]).forEach(function(de){return a.scene.remove(de)}),a.lights.forEach(function(de){return a.scene.add(de)})),y.hasOwnProperty("objects")&&((y.objects||[]).forEach(function(de){return a.scene.remove(de)}),a.objects.forEach(function(de){return a.scene.add(de)}));function le(){a.loadComplete=a.scene.visible=!0}}});function aie(b,a){a===void 0&&(a={});var y=a.insertAt;if(typeof document!="undefined"){var x=document.head||document.getElementsByTagName("head")[0],E=document.createElement("style");E.type="text/css",y==="top"&&x.firstChild?x.insertBefore(E,x.firstChild):x.appendChild(E),E.styleSheet?E.styleSheet.cssText=b:E.appendChild(document.createTextNode(b))}}var oie=`.graph-info-msg { top: 50%; width: 100%; text-align: center; color: lavender; opacity: 0.7; font-size: 22px; position: absolute; font-family: Sans-serif; } .scene-container .clickable { cursor: pointer; } .scene-container .grabbable { cursor: move; cursor: grab; cursor: -moz-grab; cursor: -webkit-grab; } .scene-container .grabbable:active { cursor: grabbing; cursor: -moz-grabbing; cursor: -webkit-grabbing; }`;aie(oie);function OM(b,a){(a==null||a>b.length)&&(a=b.length);for(var y=0,x=Array(a);y1?te-1:0),ie=1;ie3?z-3:0),te=3;te1&&(ye=de.y+de.vy),y>2&&(Ae=de.z+de.vz),le.visit(Be);function Be(Ne,Fe,ke,Re,Oe,ze,Le){var _e=[Fe,ke,Re,Oe,ze,Le],Et=_e[0],yt=_e[1],jt=_e[2],tn=_e[y],cn=_e[y+1],kt=_e[y+2],pt=Ne.data,An=Ne.r,Vt=me+An;if(pt){if(pt.index>de.index){var rn=he-pt.x-pt.vx,Bn=y>1?ye-pt.y-pt.vy:0,hr=y>2?Ae-pt.z-pt.vz:0,bt=rn*rn+Bn*Bn+hr*hr;bt1&&Bn===0&&(Bn=Ah(E),bt+=Bn*Bn),y>2&&hr===0&&(hr=Ah(E),bt+=hr*hr),bt=(Vt-(bt=Math.sqrt(bt)))/bt*z,de.vx+=(rn*=bt)*(Vt=(An*=An)/(Ce+An)),y>1&&(de.vy+=(Bn*=bt)*Vt),y>2&&(de.vz+=(hr*=bt)*Vt),pt.vx-=rn*(Vt=1-Vt),y>1&&(pt.vy-=Bn*Vt),y>2&&(pt.vz-=hr*Vt))}return}return Et>he+Vt||tn1&&(yt>ye+Vt||cn2&&(jt>Ae+Vt||ktae.r&&(ae.r=ae[oe].r)}function ie(){if(a){var ae,oe=a.length,le;for(x=new Array(oe),ae=0;aetypeof le=="function")||Math.random,y=oe.find(le=>[1,2,3].includes(le))||2,ie()},te.iterations=function(ae){return arguments.length?(ee=+ae,te):ee},te.strength=function(ae){return arguments.length?(z=+ae,te):z},te.radius=function(ae){return arguments.length?(b=typeof ae=="function"?ae:vp(+ae),ie(),te):b},te}var t6=Me(89392),n6=Me(59301),wie=Object.defineProperty,Cie=Object.defineProperties,Pie=Object.getOwnPropertyDescriptors,r6=Object.getOwnPropertySymbols,Bie=Object.prototype.hasOwnProperty,Sie=Object.prototype.propertyIsEnumerable,i6=(b,a,y)=>a in b?wie(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,UM=(b,a)=>{for(var y in a||(a={}))Bie.call(a,y)&&i6(b,y,a[y]);if(r6)for(var y of r6(a))Sie.call(a,y)&&i6(b,y,a[y]);return b},jM=(b,a)=>Cie(b,Pie(a)),Mie=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const s6=new Fa,Die=new Float32Array([0,.5,0,-.5,-.5,0,.5,-.5,0]);s6.setAttribute("position",new nl(Die,3));const Tie=new Cc({color:"#FF4500",side:eo,transparent:!0,opacity:.8}),VM=new Map,a6=b=>(VM.has(b)||VM.set(b,new yP({transparent:!1,color:b})),VM.get(b)),_fe=(b,a)=>{const y=b.getParentData(a.id,"tree");return y?a.style.x>y.style.x?"right":"left":"center"},GM=[20,15,10],o6=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C"}],Iie=(b,a)=>{const y={};let x=null;return b.forEach(E=>{y[E.properties.uuid]=jM(UM({},E),{id:E.properties.uuid,children:[]})}),a.forEach(E=>{const z=y[E.startNodeUuid],ee=y[E.endNodeUuid];z&&(z.id=z.properties.uuid),z&&ee&&z.children.push(ee)}),b.forEach(E=>{!a.some(ee=>ee.endNodeUuid===E.properties.uuid)&&(x=y[E.properties.uuid])}),x};var Fie=(0,fe.forwardRef)(({nodeUuid:b,subject_id:a,setshowdetail:y,setitems:x,setzoomsize:E},z)=>{var ee;const[te,ne]=(0,fe.useState)(!1),[ie,ae]=(0,fe.useState)({nodes:[],links:[]}),oe=(0,fe.useRef)(),le=(0,fe.useRef)(1),de=(0,fe.useRef)(null),he=(0,fe.useRef)(null),ye=50,Ae=2e3,[me,Ce]=(0,fe.useState)(null),[Ee,Be]=(0,fe.useState)(""),[Ne,Fe]=(0,fe.useState)(null),ke=(0,fe.useRef)(new Map);(0,fe.useEffect)(()=>{Re()},[]);const Re=()=>Mie(void 0,null,function*(){var pt,An,Vt,rn,Bn,hr,bt,on;ne(!0);let dn=yield(0,Nt.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:b,subject_id:a,depth:-1,relationshipFilter:"\u5305\u542B>"}});ne(!1);let Qn=(An=(pt=dn==null?void 0:dn.data)==null?void 0:pt.nodes)==null?void 0:An.map(En=>{var qn,vr,cr,Vr,kr,Jr,ms,Es,Pt,et;return jM(UM({},En==null?void 0:En.properties),{id:(qn=En==null?void 0:En.properties)==null?void 0:qn.uuid,name:(vr=En==null?void 0:En.properties)==null?void 0:vr.name,description:(cr=En==null?void 0:En.properties)==null?void 0:cr.description,nodeType:(Vr=En==null?void 0:En.properties)==null?void 0:Vr.nodeType,tags:((ms=(Jr=(kr=En==null?void 0:En.properties)==null?void 0:kr.tags)==null?void 0:Jr.split("\uFF0C"))==null?void 0:ms.map(Tn=>({name:Tn})))||[],colorType:parseInt((Es=En==null?void 0:En.properties)==null?void 0:Es.color)>3?"3":(Pt=En==null?void 0:En.properties)==null?void 0:Pt.color,activeColor:"#FA6400",size:GM[((et=En==null?void 0:En.properties)==null?void 0:et.color)-1]||20,shape:"circle",hide:!1,isExtendedState:!0})}),Un=Iie((rn=(Vt=dn==null?void 0:dn.data)==null?void 0:Vt.nodes)==null?void 0:rn.map((En,qn)=>{var vr,cr,Vr,kr,Jr,ms,Es,Pt,et;const Tn=parseInt((vr=En==null?void 0:En.properties)==null?void 0:vr.color)===1?"#CC7CF5":((cr=o6.find(or=>{var Pn;return(or==null?void 0:or.name)===((Pn=En==null?void 0:En.properties)==null?void 0:Pn.nodeType)}))==null?void 0:cr.color)||"#2D947C";return jM(UM({},En),{key:qn,title:(Vr=En==null?void 0:En.properties)==null?void 0:Vr.name,newcolor:Tn,nodeColor:Tn,color:Tn,colornodeType:parseInt((kr=En==null?void 0:En.properties)==null?void 0:kr.color)===1?"\u6839\u8282\u70B9":((Jr=o6.find(or=>{var Pn;return(or==null?void 0:or.name)===((Pn=En==null?void 0:En.properties)==null?void 0:Pn.nodeType)}))==null?void 0:Jr.name)||"\u5176\u4ED6",val:GM[((ms=En==null?void 0:En.properties)==null?void 0:ms.color)-1]||10,nodeVal:GM[((Es=En==null?void 0:En.properties)==null?void 0:Es.color)-1]||10,name:(Pt=En==null?void 0:En.properties)==null?void 0:Pt.name,nodeLabel:(et=En==null?void 0:En.properties)==null?void 0:et.name})}),(hr=(Bn=dn==null?void 0:dn.data)==null?void 0:Bn.relationships)==null?void 0:hr.filter(En=>En.type==="\u5305\u542B")),Kn=(0,Lc.RN)(Un),Nr=(bt=Kn.nodes)==null?void 0:bt.filter((En,qn,vr)=>qn===vr.findIndex(cr=>cr.id===En.id)),Xr=(on=Kn.edges)==null?void 0:on.filter((En,qn,vr)=>qn===vr.findIndex(cr=>cr.source===En.source&&cr.target===En.target));ae({nodes:Nr,links:Xr})}),Oe=(pt,An)=>{const Vt=new Map([[pt,!0]]),rn=hr=>{An.forEach(bt=>{bt.source.id===hr&&!Vt.has(bt.target.id)&&(Vt.set(bt.target.id,!0),rn(bt.target.id))})},Bn=hr=>{An.forEach(bt=>{bt.target.id===hr&&!Vt.has(bt.source.id)&&(Vt.set(bt.source.id,!0),Bn(bt.source.id))})};return rn(pt),Bn(pt),Vt};(0,fe.useEffect)(()=>{Ne?ke.current=Oe(Ne.id,ie.links):ke.current=new Map},[Ne,ie.links]);const ze=()=>s2().force("charge",f2().strength(-50)).force("collision",Eie().radius(pt=>(pt.val||20)*1.2)).force("link",o2().id(pt=>pt.id).distance(80)).force("center",h2()).numDimensions(3).tick(100),Le=pt=>Ne?ke.current.has(pt.id):!0,_e=pt=>Ne?ke.current.has(pt.source.id)&&ke.current.has(pt.target.id):!0;(0,fe.useEffect)(()=>()=>{he.current&&cancelAnimationFrame(he.current)},[]);const Et=()=>{if(!de.current||!oe.current)return;const pt=oe.current,An=pt.cameraPosition(),Vt={x:0,y:0,z:0},rn=.1,Bn={x:An.x+(de.current.x-An.x)*rn,y:An.y+(de.current.y-An.y)*rn,z:An.z+(de.current.z-An.z)*rn};pt.cameraPosition(Bn,Vt,0),Math.hypot(Bn.x-de.current.x,Bn.y-de.current.y,Bn.z-de.current.z)>5?he.current=requestAnimationFrame(Et):(he.current=null,de.current=null)};(0,fe.useImperativeHandle)(z,()=>({handleZoom:tn,getData:Re,selectall:yt,settype:jt}));const yt=pt=>{Ce(pt)},jt=pt=>{Be(pt)},tn=pt=>{he.current&&(cancelAnimationFrame(he.current),he.current=null);const An=oe.current;if(!An)return;const Vt=An.cameraPosition(),rn={x:0,y:0,z:0},Bn={x:Vt.x-rn.x,y:Vt.y-rn.y,z:Vt.z-rn.z},hr=Math.hypot(Bn.x,Bn.y,Bn.z);let on=hr*(pt==="in"?.8:1.2);if(on=Math.max(ye,Math.min(Ae,on)),hr>0){const dn=on/hr;de.current={x:rn.x+Bn.x*dn,y:rn.y+Bn.y*dn,z:rn.z+Bn.z*dn},le.current=1e3/on,Et()}},cn=(0,t6.debounce)(pt=>{Fe(pt)},100),kt=pt=>{console.log("---",pt),Ce(pt.id),x(pt),y(!0)};return n6.createElement("div",{style:{height:"calc(100vh - 0px)",overflow:"hidden"}},((ee=ie==null?void 0:ie.nodes)==null?void 0:ee.length)>0&&n6.createElement(kM,{graphData:ie,ref:oe,enableNodeDrag:!1,backgroundColor:"rgb(1, 10, 35)",linkColor:pt=>_e(pt)?"#ccc":"rgba(0,0,0,0)",linkWidth:pt=>(_e(pt),1),linkDirectionalArrowLength:Ne?6:0,nodeRelSize:8,linkDirectionalArrowColor:()=>"rgba(0,0,0,0)",linkDirectionalParticles:pt=>_e(pt)?3:0,linkDirectionalParticleSpeed:.001,linkDirectionalParticleWidth:2,linkDirectionalParticleColor:pt=>_e(pt)?"#ccc":"rgba(0,0,0,0)",linkThreeObjectExtend:!0,nodeThreeObject:pt=>{if(Ee){const An=new Fo(new mp(pt.val,16,16),a6(pt.colornodeType===Ee?pt.nodeColor:"#999999"));if(pt.id===me){const Vt=new Fo(new mp(pt.val+5,32,32),new Cc({transparent:!0,opacity:.3}));An.add(Vt)}return An}else{const An=new Fo(new mp(pt.val,16,16),a6(pt.id===me||Le(pt)?pt.nodeColor:"#999999"));if(pt.id===me){const Vt=new Fo(new mp(pt.val+5,32,32),new Cc({transparent:!0,opacity:.3}));An.add(Vt)}return An}},linkThreeObject:pt=>_e(pt)?new Fo(s6,Tie):null,onNodeHover:cn,onNodeClick:kt,onEngineStop:()=>{},onNodeDragEnd:pt=>{pt.fx=pt.x,pt.fy=pt.y,pt.fz=pt.z}}))}),Cu={flex_box_center:"flex_box_center___mORrQ",flex_space_between:"flex_space_between___AGgBm",flex_box_vertical_center:"flex_box_vertical_center____H93g",flex_box_center_end:"flex_box_center_end___VPK8Q",flex_box_column:"flex_box_column___qksG3",autocomp:"autocomp___H_feM",autocompwidth:"autocompwidth___RMYtG",hoverone:"hoverone___j7m8k",name:"name___qwPqM",img:"img___WHKD_",autopop:"autopop___YCC3k",studentHead:"studentHead___DeVom",headLi:"headLi___qiYnp",btn:"btn___s7HI8",tupugx:"tupugx___JCYSy",textname:"textname___iEAMA",dropdownst:"dropdownst___ca1cn",ChangeBut:"ChangeBut___uZelH"},XM=Me(2610),l6=Me(59301),Nie=Object.defineProperty,Lie=Object.defineProperties,Oie=Object.getOwnPropertyDescriptors,rC=Object.getOwnPropertySymbols,u6=Object.prototype.hasOwnProperty,c6=Object.prototype.propertyIsEnumerable,d6=(b,a,y)=>a in b?Nie(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,f6=(b,a)=>{for(var y in a||(a={}))u6.call(a,y)&&d6(b,y,a[y]);if(rC)for(var y of rC(a))c6.call(a,y)&&d6(b,y,a[y]);return b},Rie=(b,a)=>Lie(b,Oie(a)),zie=(b,a)=>{var y={};for(var x in b)u6.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&rC)for(var x of rC(b))a.indexOf(x)<0&&c6.call(b,x)&&(y[x]=b[x]);return y},kie=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});let iC=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5",bordercolor:"#A150CB"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7",bordercolor:"#3437D9"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7",bordercolor:"#7f77f9"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55",bordercolor:"#FFD60F"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF",bordercolor:"#0882FB"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3",bordercolor:"#3149D5"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE",bordercolor:"#339DC4"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73",bordercolor:"#33C448"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534",bordercolor:"#077A04"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C",bordercolor:"#157660"}];const ehe=null;let the=null;const Hie=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee,datas:te}=a,ne=zie(a,["pathsDetail","user","globalSetting","loading","dispatch","datas"]);const ie=(0,fe.useRef)(),ae=(0,fe.useRef)(null);(0,fe.useEffect)(()=>{oe()},[te]);function oe(){return kie(this,null,function*(){var le,de,he,ye,Ae,me,Ce;if(((le=te==null?void 0:te.nodes)==null?void 0:le.length)>0){let Ee=(0,Zt.fX)((de=te==null?void 0:te.nodes)==null?void 0:de.map((Re,Oe)=>{var ze,Le,_e,Et,yt,jt,tn,cn,kt,pt,An,Vt,rn,Bn,hr,bt;return Rie(f6(f6({},Re),Re==null?void 0:Re.properties),{rootNodeUuid:(ze=Re==null?void 0:Re.properties)==null?void 0:ze.rootNodeUuid,id:(Le=Re==null?void 0:Re.properties)==null?void 0:Le.uuid,name:(_e=Re==null?void 0:Re.properties)==null?void 0:_e.name,labelstype:(Et=Re==null?void 0:Re.labels)==null?void 0:Et[1],description:(yt=Re==null?void 0:Re.properties)==null?void 0:yt.description,nodeType:(jt=Re==null?void 0:Re.properties)==null?void 0:jt.nodeType,colornodeType:parseInt((tn=Re==null?void 0:Re.properties)==null?void 0:tn.color)===1?"\u6839\u8282\u70B9":((cn=iC==null?void 0:iC.find(on=>{var dn;return(on==null?void 0:on.name)===((dn=Re==null?void 0:Re.properties)==null?void 0:dn.nodeType)}))==null?void 0:cn.name)||"\u5176\u4ED6",newcolor:parseInt((kt=Re==null?void 0:Re.properties)==null?void 0:kt.color)===1?"#CC7CF5":((pt=iC==null?void 0:iC.find(on=>{var dn;return(on==null?void 0:on.name)===((dn=Re==null?void 0:Re.properties)==null?void 0:dn.nodeType)}))==null?void 0:pt.color)||"#2D947C",tags:((An=Re==null?void 0:Re.properties)==null?void 0:An.tags)&&((Bn=(rn=(Vt=Re==null?void 0:Re.properties)==null?void 0:Vt.tags)==null?void 0:rn.split("\uFF0C"))==null?void 0:Bn.map(on=>({name:on})))||[],colorType:parseInt((hr=Re==null?void 0:Re.properties)==null?void 0:hr.color)>3?"3":(bt=Re==null?void 0:Re.properties)==null?void 0:bt.color})}),(Ae=(ye=(he=te==null?void 0:te.relationships)==null?void 0:he.filter(Re=>{var Oe,ze,Le;return(Re==null?void 0:Re.endNodeUuid)!==((Le=(ze=(Oe=te==null?void 0:te.nodes)==null?void 0:Oe[0])==null?void 0:ze.properties)==null?void 0:Le.rootNodeUuid)}))==null?void 0:ye.filter(Re=>{var Oe,ze,Le;return(Re==null?void 0:Re.startNodeUuid)!==((Le=(ze=(Oe=te==null?void 0:te.nodes)==null?void 0:Oe[0])==null?void 0:ze.properties)==null?void 0:Le.rootNodeUuid)}))==null?void 0:Ae.filter(Re=>Re.type==="\u5305\u542B")),Be=(0,Lc.RN)(Ee),Ne=(me=Be.nodes)==null?void 0:me.filter((Re,Oe,ze)=>Oe===ze.findIndex(Le=>Le.id===Re.id)),Fe=(Ce=Be.edges)==null?void 0:Ce.filter((Re,Oe,ze)=>Oe===ze.findIndex(Le=>Le.source===Re.source&&Le.target===Re.target));Ne.map(Re=>(Re.transformd=!0,Re.style={labelWordWrap:!0,labelPlacement:Re.depth===0?"center":Re.depth<3?"top-left":"top",haloLineWidth:Math.max(20-Re.depth*6,0),labelMaxWidth:Re.depth===0?300:200,labelFontSize:Re.depth===0?22:Ne.length>300?12:14,labelLineHeight:100,halo:Re.depth<3},Re)),ie.current=null;let ke=Ne==null?void 0:Ne.length;ie.current=new Lc.kJ({container:ae.current,autoResize:!0,background:"#010A23",autoFit:{type:Ne.length>50?"view":"center",options:{direction:"both",when:"always"}},animation:!1,padding:50,data:{nodes:Ne,edges:Fe},node:{type:"circle",style:{size:Re=>Re.colorType==1?100:Re.depth<2?50:ke>250?10:20,fill:Re=>Re.newcolor,labelText:Re=>Re.name,labelFill:"#ffffff"},state:{highlight:{stroke:"transparent"},selected:{stroke:"transparent"},inactive:{fill:Re=>Re.newcolor,port:!1,labelBackground:!1,halo:!1,badgeBackground:!1}}},edge:{style:{labelBackground:!1,halo:!1,stroke:"#A150CB",strokeOpacity:.5},state:{inactive:{stroke:"#f9f0ff",strokeOpacity:.5,halo:!1,labelBackground:!1,lineWidth:1},highlight:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},selected:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},active:{halo:!1},disable:{halo:!1}}},layout:[{type:"dendrogram",radial:!0,nodeSep:40,rankSep:Ne.length>250?360:240,direction:"RL",unitRadius:90,linkDistance:200,preventOverlap:!0,maxPreventOverlapIteration:100,strictRadial:!1}],plugins:[{type:"tooltip",enable:Re=>Re.targetType==="node",getContent:(Re,Oe)=>{let ze="";return Oe.forEach(Le=>{ze+=`
${Le.name||""}
`}),ze}}],behaviors:["drag-canvas",{type:"zoom-canvas"},"drag-element",{type:"collapse-expand",onExpand:(Re,Oe)=>{console.log("----",Re,Oe)}},{type:"fix-element-size",state:"fix-element-size",enable:!0}],transforms:[{type:"place-radial-labels"}]}),ie.current.render()}})}return l6.createElement("div",{style:{background:"#fff",height:"800rem"}},l6.createElement("div",{style:{width:"100%",height:"800rem"},ref:ae}))};var Uie=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(Hie),WM={flex_box_center:"flex_box_center___WMF1f",flex_space_between:"flex_space_between___haq2g",flex_box_vertical_center:"flex_box_vertical_center___KFxAJ",flex_box_center_end:"flex_box_center_end___DIl10",flex_box_column:"flex_box_column___f8Jy4",zhishidian:"zhishidian___ftPXv"},sC={flex_box_center:"flex_box_center___JiLDQ",flex_space_between:"flex_space_between___Ur9j0",flex_box_vertical_center:"flex_box_vertical_center___FAM8c",flex_box_center_end:"flex_box_center_end___onqau",flex_box_column:"flex_box_column___jwO5r",tree_box:"tree_box___EeMwm",tree:"tree___jwv1Z"},Oa=Me(59301),jie=Object.defineProperty,Vie=Object.defineProperties,Gie=Object.getOwnPropertyDescriptors,h6=Object.getOwnPropertySymbols,Xie=Object.prototype.hasOwnProperty,Wie=Object.prototype.propertyIsEnumerable,p6=(b,a,y)=>a in b?jie(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,QM=(b,a)=>{for(var y in a||(a={}))Xie.call(a,y)&&p6(b,y,a[y]);if(h6)for(var y of h6(a))Wie.call(a,y)&&p6(b,y,a[y]);return b},m6=(b,a)=>Vie(b,Gie(a)),g6=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Qie=({dispatch:b,user:a,classroomList:y,account:x,resourceModalVisible:E,setResourceModalVisible:z,resourceId:ee,binding:te,getTableData:ne})=>{const[ie]=it.default.useForm(),ae=(0,st.useParams)(),[oe,le]=(0,fe.useState)([]),[de,he]=(0,fe.useState)([]),[ye,Ae]=(0,fe.useState)([]),[me,Ce]=(0,fe.useState)(!1),[Ee,Be]=(0,fe.useState)(!1),[Ne,Fe]=(0,fe.useState)([]),[ke,Re]=(0,fe.useState)({keyword:""});(0,fe.useEffect)(()=>{E?(ie.setFieldsValue({tab:"all"}),ze("all")):(Fe([]),Ae([]),ke.keyword="",Re(QM({},ke)))},[E]),(0,fe.useEffect)(()=>{E&&ze(ie.getFieldValue("tab"))},[ke==null?void 0:ke.keyword]);const Oe=_e=>{switch(_e.item_type){case"Challenge":return Oa.createElement(Mr.Z,{wrap:!1,align:"middle",justify:"space-between",gutter:20},Oa.createElement(Ai.Z,{flex:"302px"},Oa.createElement(pn.Z,{title:_e.name||""},Oa.createElement("div",{className:" multi_ellipsis1"},Oa.createElement("span",{className:"mr5",style:{color:"#20BB8A"}},"\u5173\u5361")," ",_e.name||""))),Oa.createElement(Ai.Z,{flex:1},Oa.createElement(pn.Z,{title:_e.shixun_name||""},Oa.createElement("div",{className:"c-grey-666 multi_ellipsis1"},"\u6240\u5C5E\u5B9E\u8BAD\uFF1A",(_e==null?void 0:_e.shixun_name)||""))));case"Shixun":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5 c-light-primary"},"\u5B9E\u8BAD"),_e.name);case"Attachment":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5 c-cyan-blue"},"\u8BFE\u4EF6"),_e.name);case"ExaminationBank":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5",style:{color:"#e69917"}},"\u6D4B\u9A8C"),_e.name);case"HomeworkCommon":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5",style:{color:"#E99237"}},"\u7F16\u7A0B\u4F5C\u4E1A"),_e.name);case"VideoItem":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5 c-purple-8C1"},"\u89C6\u9891"),_e.name);case"SubjectHomework":return(_e==null?void 0:_e.homework_type)=="group"?Oa.createElement("span",null,Oa.createElement("span",{className:"mr5",style:{color:"#AABF07"}},"\u5206\u7EC4\u4F5C\u4E1A"),_e.name):Oa.createElement("span",null,Oa.createElement("span",{className:"mr5",style:{color:"#20BB8A"}},"\u56FE\u6587\u4F5C\u4E1A"),_e.name);case"StageCatalog":return Oa.createElement("span",null,Oa.createElement("span",{className:"mr5"},"\u5C0F\u8282"),_e.name);default:return""}},ze=_e=>g6(void 0,null,function*(){Ce(!0);const Et=yield(0,Nt.ZP)(`/api/paths/${ae==null?void 0:ae.pathId}/bind_tag_stage_shixuns.json`,{method:"get",params:{tag_discipline_id:ee,binding:te,keywords:ke==null?void 0:ke.keyword,tab:_e}});if(Et){const yt=(cn,kt="")=>cn==null?void 0:cn.map((pt,An)=>{const Vt=kt?`${kt}-${An}`:`${An}`,Bn=!kt?pt.state_name||"":Oe(pt),hr=!(pt!=null&&pt.can_choose);return m6(QM({},pt),{title:Bn,key:Vt,disabled:hr,children:yt(pt.items||pt.children||[],Vt)})}),jt=yt((Et==null?void 0:Et.stages)||[]);le(jt||[]);const tn=(cn,kt=[])=>(cn.forEach(pt=>{var An;kt.push(pt.key),(An=pt.children)!=null&&An.length&&tn(pt.children,kt)}),kt);he(tn(jt||[]))}Ce(!1)}),Le=(_e,Et)=>{var yt,jt;(yt=Et==null?void 0:Et.checkedNodes)!=null&&yt.length&&Ae((jt=Et==null?void 0:Et.checkedNodes)==null?void 0:jt.map(tn=>tn==null?void 0:tn.stage_shixun_id)),Fe(_e)};return Oa.createElement("div",null,Oa.createElement(rt.default,{title:te?"\u89E3\u7ED1\u8D44\u6E90":"\u5173\u8054\u8D44\u6E90",open:E,width:700,centered:!0,destroyOnClose:!0,okText:"\u786E\u5B9A\u4FDD\u5B58",className:sC.scoremodal,onCancel:()=>{z(!1)},onOk:()=>g6(void 0,null,function*(){if(Be(!0),te){const _e=yield(0,Nt.ZP)(`/api/v2/tag_disciplines/${ee}/un_bind_resource.json`,{method:"post",body:{stage_shixun_ids:ye}});(_e==null?void 0:_e.status)==0&&(z(!1),ne()),Be(!1)}else{const _e=yield(0,Nt.ZP)(`/api/v2/tag_disciplines/${ee}/bind_resource.json`,{method:"post",body:{stage_shixun_ids:ye}});(_e==null?void 0:_e.status)==0&&(z(!1),ne()),Be(!1)}})},Oa.createElement(it.default,{layout:"inline",form:ie,className:sC.myForm},Oa.createElement(it.default.Item,{name:"tab",colon:!1},Oa.createElement(ho.default,{style:{width:200},size:"large",placeholder:"\u8BF7\u9009\u62E9\u8D44\u6E90\u7C7B\u578B",onChange:_e=>{ze(_e)}},Oa.createElement(ho.default.Option,{value:"all"},"\u5168\u90E8"),Oa.createElement(ho.default.Option,{value:"shixun"},"\u5B9E\u8DF5\u9879\u76EE"),Oa.createElement(ho.default.Option,{value:"video"},"\u89C6\u9891"),Oa.createElement(ho.default.Option,{value:"attachment"},"\u8BFE\u4EF6"),Oa.createElement(ho.default.Option,{value:"challenge"},"\u5173\u5361"),Oa.createElement(ho.default.Option,{value:"group_homework"},"\u5206\u7EC4\u4F5C\u4E1A"),Oa.createElement(ho.default.Option,{value:"normal_homework"},"\u56FE\u6587\u4F5C\u4E1A"),Oa.createElement(ho.default.Option,{value:"hack_homework"},"\u7F16\u7A0B\u4F5C\u4E1A"),Oa.createElement(ho.default.Option,{value:"exercise"},"\u6D4B\u9A8C"))),Oa.createElement(Zf.t7,{placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",value:ke==null?void 0:ke.keyword,style:{width:240,marginLeft:"auto"},onChange:_e=>{Re(m6(QM({},ke),{keyword:_e,page:1}))}})),Oa.createElement(Mt.Z,{spinning:me},(oe==null?void 0:oe.length)>0?Oa.createElement("div",{className:sC.tree_box},Oa.createElement(Dc.default,{className:sC.tree,checkable:!0,treeData:oe,checkedKeys:Ne,expandedKeys:de,onExpand:_e=>he(_e),onCheck:(_e,Et)=>Le(_e,Et)})):Oa.createElement(bl.Z,null))))};var Zie=(0,st.connect)(({user:b,classroomList:a,account:y})=>({user:b,classroomList:a,account:y}))(Qie),rd=Me(59301),Yie=Object.defineProperty,Jie=Object.defineProperties,Kie=Object.getOwnPropertyDescriptors,v6=Object.getOwnPropertySymbols,qie=Object.prototype.hasOwnProperty,_ie=Object.prototype.propertyIsEnumerable,A6=(b,a,y)=>a in b?Yie(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,y6=(b,a)=>{for(var y in a||(a={}))qie.call(a,y)&&A6(b,y,a[y]);if(v6)for(var y of v6(a))_ie.call(a,y)&&A6(b,y,a[y]);return b},$ie=(b,a)=>Jie(b,Kie(a)),x6=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const ese=({dispatch:b,user:a,classroomList:y,account:x})=>{const[E]=it.default.useForm(),z=(0,st.useParams)(),[ee,te]=(0,fe.useState)(!1),[ne,ie]=(0,fe.useState)({page:1,limit:10,keyword:""}),[ae,oe]=(0,fe.useState)([]),[le,de]=(0,fe.useState)({}),[he,ye]=(0,fe.useState)(!1),[Ae,me]=(0,fe.useState)(""),[Ce,Ee]=(0,fe.useState)(!1),[Be,Ne]=(0,fe.useState)("");(0,fe.useEffect)(()=>{x.actionTabs.key=="\u8BFE\u7A0B\u77E5\u8BC6\u70B9\u5173\u8054\u8D44\u6E90"?Fe():(ne.keyword="",ie(y6({},ne)))},[x.actionTabs]);const Fe=()=>x6(void 0,null,function*(){var Oe,ze,Le,_e,Et,yt,jt,tn,cn,kt,pt,An;te(!0);const Vt=yield(0,Nt.ZP)("/api/v2/course_disciplines.json",{method:"get"});(Vt==null?void 0:Vt.status)===0&&(oe((Oe=Vt==null?void 0:Vt.data)==null?void 0:Oe.list),E.setFieldsValue({course_discipline_id:(_e=(Le=(ze=Vt==null?void 0:Vt.data)==null?void 0:ze.list)==null?void 0:Le[0])==null?void 0:_e.id}),((yt=(Et=Vt==null?void 0:Vt.data)==null?void 0:Et.list)==null?void 0:yt.length)>0?ke((cn=(tn=(jt=Vt==null?void 0:Vt.data)==null?void 0:jt.list)==null?void 0:tn[0])==null?void 0:cn.id):te(!1),Ne((An=(pt=(kt=Vt==null?void 0:Vt.data)==null?void 0:kt.list)==null?void 0:pt[0])==null?void 0:An.id))}),ke=Oe=>x6(void 0,null,function*(){const ze=yield(0,Nt.ZP)("/api/v2/tag_disciplines.json",{method:"get",params:{subject_id:(z==null?void 0:z.pathId)||"",course_discipline_id:Oe,keyword:ne==null?void 0:ne.keyword}});(ze==null?void 0:ze.status)===0&&de(ze==null?void 0:ze.data),te(!1)});(0,fe.useEffect)(()=>{x.actionTabs.key=="\u8BFE\u7A0B\u77E5\u8BC6\u70B9\u5173\u8054\u8D44\u6E90"&&(ke(E.getFieldValue("course_discipline_id")),Ne(E.getFieldValue("course_discipline_id")))},[ne==null?void 0:ne.keyword]);const Re=[{title:"\u77E5\u8BC6\u70B9\u540D\u79F0",dataIndex:"name",key:"name",ellipsis:!0,align:"left",render:(Oe,ze)=>rd.createElement("span",null,Oe||"--")},{title:"\u5DF2\u5173\u8054\u8D44\u6E90\u6570\u91CF",dataIndex:"resource_size",key:"resource_size",ellipsis:!0,align:"left",render:Oe=>rd.createElement("span",null,Oe)},{title:"\u64CD\u4F5C",key:"action",align:"right",width:200,render:(Oe,ze)=>rd.createElement(rd.Fragment,null,rd.createElement("span",{style:{color:"#165DFF",cursor:"pointer",marginRight:"20px"},onClick:()=>{ye(!0),me(ze==null?void 0:ze.id),Ee(!1)}},"\u5173\u8054\u8D44\u6E90"),rd.createElement("span",{style:{color:"#165DFF",cursor:"pointer"},onClick:()=>{ye(!0),me(ze==null?void 0:ze.id),Ee(!0)}},"\u89E3\u7ED1\u8D44\u6E90"))}].filter(Oe=>!!Oe);return rd.createElement(rt.default,{title:"\u8BFE\u7A0B\u77E5\u8BC6\u70B9\u5173\u8054\u8D44\u6E90",open:x.actionTabs.key=="\u8BFE\u7A0B\u77E5\u8BC6\u70B9\u5173\u8054\u8D44\u6E90",width:900,centered:!0,footer:null,destroyOnClose:!0,className:WM.scoremodal,onCancel:()=>{b({type:"account/setActionTabs",payload:{key:""}})}},rd.createElement(Mt.Z,{spinning:ee},rd.createElement(it.default,{layout:"inline",form:E,className:WM.myForm},rd.createElement(it.default.Item,{name:"course_discipline_id",colon:!1},rd.createElement(ho.default,{style:{width:200},size:"large",placeholder:"\u8BF7\u9009\u62E9\u8BFE\u7A0B",onChange:Oe=>{ke(Oe),Ne(Oe)}},ae==null?void 0:ae.map(Oe=>rd.createElement(ho.default.Option,{key:Oe==null?void 0:Oe.id,value:Oe==null?void 0:Oe.id},Oe==null?void 0:Oe.name)))),rd.createElement(Zf.t7,{placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",value:ne==null?void 0:ne.keyword,style:{width:240},onChange:Oe=>{ie($ie(y6({},ne),{keyword:Oe,page:1}))}}),rd.createElement("div",{className:WM.zhishidian,onClick:()=>{(0,Zt.xg)(`/knowledgeHub?course_discipline_id=${Be}`)}},"\u77E5\u8BC6\u70B9\u7BA1\u7406")),rd.createElement(fd.default,{columns:Re,pagination:!1,scroll:{y:400},style:{marginTop:"20px",marginBottom:"20px"},dataSource:(le==null?void 0:le.tag_disciplines)||[]})),rd.createElement(Zie,{resourceModalVisible:he,setResourceModalVisible:ye,resourceId:Ae,binding:Ce,getTableData:()=>{ke(E.getFieldValue("course_discipline_id")),Ne(E.getFieldValue("course_discipline_id"))}}))};var tse=(0,st.connect)(({user:b,classroomList:a,account:y})=>({user:b,classroomList:a,account:y}))(ese),zr=Me(59301),nse=Object.defineProperty,rse=Object.defineProperties,ise=Object.getOwnPropertyDescriptors,aC=Object.getOwnPropertySymbols,b6=Object.prototype.hasOwnProperty,E6=Object.prototype.propertyIsEnumerable,w6=(b,a,y)=>a in b?nse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Ay=(b,a)=>{for(var y in a||(a={}))b6.call(a,y)&&w6(b,y,a[y]);if(aC)for(var y of aC(a))E6.call(a,y)&&w6(b,y,a[y]);return b},sse=(b,a)=>rse(b,ise(a)),ase=(b,a)=>{var y={};for(var x in b)b6.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&aC)for(var x of aC(b))a.indexOf(x)<0&&E6.call(b,x)&&(y[x]=b[x]);return y},Ag=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});let TA=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5",bordercolor:"#A150CB",img:"/images/gjd.svg"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7",bordercolor:"#3437D9",img:"/images/kcjd.svg"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7",bordercolor:"#7f77f9",img:"/images/zjjd.svg"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55",bordercolor:"#FFD60F",img:"/images/zsdjd.svg"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF",bordercolor:"#0882FB",img:"/images/sxjd.svg"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3",bordercolor:"#3149D5",img:"/images/zyjd.svg"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE",bordercolor:"#339DC4",img:"/images/spjd.svg"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73",bordercolor:"#33C448",img:"/images/kjjd.svg"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534",bordercolor:"#077A04",img:"/images/sjjd.svg"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C",bordercolor:"#157660",img:"/images/qtjd.svg"}];const ose=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee,uuid:te,Tabsdatas:ne,initdata:ie,setactivied:ae,tpacti:oe}=a,le=ase(a,["pathsDetail","user","globalSetting","loading","dispatch","uuid","Tabsdatas","initdata","setactivied","tpacti"]),de,he,ye,Ae,me,Ce,Ee,Be,Ne;const Fe=(0,st.useParams)(),ke=(0,fe.useRef)(),Re=(0,fe.useRef)(),Oe=(0,fe.useRef)(),[ze,Le]=(0,fe.useState)([]),[_e,Et]=(0,fe.useState)(!0),[yt,jt]=(0,fe.useState)([]),[tn,cn]=(0,fe.useState)(""),[kt,pt]=(0,fe.useState)(!1),An=(0,fe.useRef)(null),[Vt,rn]=(0,fe.useState)(),[Bn,hr]=(0,fe.useState)(!1),[bt,on]=(0,fe.useState)([]);let[dn,Qn]=(0,fe.useState)(!1);const[Un,Kn]=(0,fe.useState)(!1),[Nr,Xr]=(0,fe.useState)(!1),[Ht,En]=(0,fe.useState)(!1),[qn,vr]=(0,fe.useState)([]),[cr,Vr]=(0,fe.useState)(!1),[kr,Jr]=(0,fe.useState)([]),[ms]=(0,st.useSearchParams)(),[Es,Pt]=(0,fe.useState)(!1),[et,Tn]=(0,fe.useState)(0),[or,Pn]=(0,fe.useState)("\u5168\u90E8");let[Xn,Li]=(0,fe.useState)({page:1,limit:10});const[Kr,es]=(0,fe.useState)({}),[qi,Zr]=(0,fe.useState)([]),Bi=(0,fe.useRef)(null),gs=(0,fe.useRef)(null),[Fi,Br]=(0,fe.useState)(!1);(0,fe.useEffect)(()=>(dn=!1,Qn(!1),Gr(2,!0),nt.ZP.config({getContainer:()=>An.current}),()=>{var yr;Et(!1),jt([]),hr(!1),cn(""),(yr=Oe.current)==null||yr.clear()}),[te]),(0,fe.useEffect)(()=>(document.addEventListener("keydown",_s),document.addEventListener("keyup",yn),()=>{document.removeEventListener("keydown",_s),document.addEventListener("keyup",yn)}),[]);function _s(yr){yr.ctrlKey&&Oe.current&&Oe.current.setBehaviors(Ei=>[...Ei.filter(Js=>typeof Js=="string"?Js!=="zoom-canvas":Js.type!=="zoom-canvas"),{type:"zoom-canvas",key:"new-zoom",enable:!0,preventDefault:!0}])}function yn(yr){Oe.current&&Oe.current.setBehaviors(Ei=>[...Ei.filter(Js=>typeof Js=="string"?Js!=="zoom-canvas":Js.type!=="zoom-canvas"),{type:"zoom-canvas",key:"new-zoom1",enable:!1,preventDefault:!1}])}const ti={onRemove:()=>{vr([])},beforeUpload:yr=>{if(console.log(yr),(yr==null?void 0:yr.size)>1024*1024*50)return nt.ZP.info("\u6587\u4EF6\u8D85\u8FC750M\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42"),!1;let Ei=[];return Ei.push(yr),vr([...Ei]),!1},fileList:qn,accept:".xls,.xlsx"};(0,fe.useEffect)(()=>{},[dn]),(0,fe.useEffect)(()=>(window.addEventListener("resize",hi),()=>{window.removeEventListener("resize",hi)}),[]);function hi(){var yr,Ei;(Ei=(yr=ke.current)==null?void 0:yr.update)==null||Ei.call(yr)}const ss=(...yr)=>Ag(void 0,[...yr],function*(Ei={}){return yield ee({type:"pathsDetail/getKnowledgeGraphs",payload:Ay({graphable_type:ms.get("type")==="classrooms"?"course":"subject",graphable_id:Fe==null?void 0:Fe.pathId},Ei)})});function Gr(yr,Ei=!1){return Ag(this,null,function*(){var Ui,Js,vs,Vf,Xc,xg,Yb,Jb;(Ui=Oe.current)==null||Ui.destroy(),Pt(!0);let Mp=yield(0,Nt.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:te,subject_id:Fe==null?void 0:Fe.pathId,depth:yr===0?yr:yr||-1,relationshipFilter:"\u5305\u542B>"}});if(Pt(!1),(Mp==null?void 0:Mp.status)===0){if(Ei||ss({graphable_id:Fe==null?void 0:Fe.pathId}),dn){Re.current.getData();return}Et(!0);let mC=(0,Zt.fX)((vs=(Js=Mp==null?void 0:Mp.data)==null?void 0:Js.nodes)==null?void 0:vs.map((di,Sd)=>{var nf,dt,Dn,ar,lr,In,ni,ji,ys,as,ua,ga,$s,Ya,ko,Ml,al,Zo;return sse(Ay(Ay({},di),di==null?void 0:di.properties),{rootNodeUuid:(nf=di==null?void 0:di.properties)==null?void 0:nf.rootNodeUuid,id:(dt=di==null?void 0:di.properties)==null?void 0:dt.uuid,name:(Dn=di==null?void 0:di.properties)==null?void 0:Dn.name,labelstype:(ar=di==null?void 0:di.labels)==null?void 0:ar[1],description:(lr=di==null?void 0:di.properties)==null?void 0:lr.description,nodeType:(In=di==null?void 0:di.properties)==null?void 0:In.nodeType,colornodeType:parseInt((ni=di==null?void 0:di.properties)==null?void 0:ni.color)===1?"\u6839\u8282\u70B9":((ji=TA==null?void 0:TA.find(Bs=>{var Po;return(Bs==null?void 0:Bs.name)===((Po=di==null?void 0:di.properties)==null?void 0:Po.nodeType)}))==null?void 0:ji.name)||"\u5176\u4ED6",newcolor:parseInt((ys=di==null?void 0:di.properties)==null?void 0:ys.color)===1?"#CC7CF5":((as=TA==null?void 0:TA.find(Bs=>{var Po;return(Bs==null?void 0:Bs.name)===((Po=di==null?void 0:di.properties)==null?void 0:Po.nodeType)}))==null?void 0:as.color)||"#2D947C",newbordercolor:parseInt((ua=di==null?void 0:di.properties)==null?void 0:ua.color)===1?"/images/gjd.svg":((ga=TA==null?void 0:TA.find(Bs=>{var Po;return(Bs==null?void 0:Bs.name)===((Po=di==null?void 0:di.properties)==null?void 0:Po.nodeType)}))==null?void 0:ga.img)||"/images/qtjd.svg",tags:(($s=di==null?void 0:di.properties)==null?void 0:$s.tags)&&((Ml=(ko=(Ya=di==null?void 0:di.properties)==null?void 0:Ya.tags)==null?void 0:ko.split("\uFF0C"))==null?void 0:Ml.map(Bs=>({name:Bs})))||[],colorType:parseInt((al=di==null?void 0:di.properties)==null?void 0:al.color)>3?"3":(Zo=di==null?void 0:di.properties)==null?void 0:Zo.color})}),(Xc=(Vf=Mp==null?void 0:Mp.data)==null?void 0:Vf.relationships)==null?void 0:Xc.filter(di=>di.type==="\u5305\u542B")),_b=(0,Lc.RN)(mC),Dp=(xg=_b.nodes)==null?void 0:xg.filter((di,Sd,nf)=>Sd===nf.findIndex(dt=>dt.id===di.id));Le(Dp);let t5=(Yb=_b.edges)==null?void 0:Yb.filter((di,Sd,nf)=>Sd===nf.findIndex(dt=>dt.source===di.source&&dt.target===di.target));Dp.map(di=>(di.transformd=!0,di.style={labelWordWrap:!0,labelPlacement:di.depth===0?"center":di.depth<3?"top-left":"top",haloLineWidth:Math.max(20-di.depth*6,0),labelMaxWidth:di.depth===0?300:100,labelFontSize:di.depth===0?22:Dp.length>300?12:14,labelLineHeight:100,halo:di.depth<3},di)),Oe.current=null;let n5=Dp==null?void 0:Dp.length;Oe.current=new Lc.kJ({container:gs.current,autoResize:!0,background:"#010A23",autoFit:{type:Dp.length>10?"view":"center",options:{direction:"both",when:"always"}},animation:!1,padding:50,data:{nodes:Dp,edges:t5},node:{type:"image",style:{src:di=>di.newbordercolor,size:di=>di.colorType==1?100:di.depth<2?50:n5>250?10:20,fill:di=>di.newcolor,labelText:di=>di.name,labelFill:"#ffffff"},state:{highlight:{stroke:"transparent"},selected:{stroke:"transparent"},inactive:{fill:di=>di.newcolor,port:!1,labelBackground:!1,halo:!1,badgeBackground:!1}}},edge:{style:{labelBackground:!1,halo:!1,stroke:"#A150CB",strokeOpacity:.5},state:{inactive:{stroke:"#f9f0ff",strokeOpacity:.5,halo:!1,labelBackground:!1,lineWidth:1},highlight:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},selected:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},active:{halo:!1},disable:{halo:!1}}},layout:[{type:"dendrogram",radial:!0,nodeSep:40,rankSep:Dp.length>250?360:240,direction:"RL",unitRadius:90,linkDistance:200,preventOverlap:!0,maxPreventOverlapIteration:100,strictRadial:!1}],plugins:[{type:"tooltip",position:"bottom",enable:di=>di.targetType==="node",getContent:(di,Sd)=>{let nf="";return Sd.forEach(dt=>{nf+=`
${dt.name||""}
`}),nf}}],behaviors:["drag-canvas",{type:"zoom-canvas",enable:!1,preventDefault:!1,onFinish:()=>{setTimeout(()=>{var di;Tn((((di=Oe==null?void 0:Oe.current)==null?void 0:di.getZoom())*100).toFixed(0))},300)}},"drag-element",{type:"collapse-expand",onExpand:(di,Sd)=>{console.log("----",di,Sd)}},{type:"fix-element-size",state:"fix-element-size",enable:!0},{type:"click-select",state:"selected",onClick:di=>{let Sd=Dp.filter(nf=>{var dt,Dn;return(nf==null?void 0:nf.id)===((Dn=(dt=di.target)==null?void 0:dt.config)==null?void 0:Dn.id)});if((Sd==null?void 0:Sd.length)===0){hr(!1);return}rn(Sd==null?void 0:Sd[0]),hr(!0),di.view.setCursor("pointer"),Bi.current=null},multiple:!1},{type:"hover-activate",enable:di=>di.targetType==="node",degree:1,state:"highlight",direction:"both",inactiveState:"inactive",onHover:di=>{di.view.setCursor("pointer")},onHoverEnd:di=>{di.view.setCursor("default")}}],transforms:[{type:"place-radial-labels"}]}),Oe.current.render(),gs.current&&(gs.current.style.opacity=1),(Jb=Oe==null?void 0:Oe.current)==null||Jb.fitView(),setTimeout(()=>{var di;Tn((((di=Oe==null?void 0:Oe.current)==null?void 0:di.getZoom())*100).toFixed(0))},300);var Kb=Oe.current.getOptions();setTimeout(()=>{var di;Kb.animation=!0,(di=Oe.current)==null||di.setOptions(Kb)},2500),window.graphsRef=Oe.current}let bg=yield(0,Nt.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:3,subject_id:Fe==null?void 0:Fe.pathId}});(bg==null?void 0:bg.status)===0&&Zr(bg==null?void 0:bg.data)})}const Or=(yr,Ei)=>{if(Oe.current){if(Un){yr==="Leave"?Re.current.settype(""):Re.current.settype(Ei==null?void 0:Ei.name);return}if(dn){Re.current.onMouse(yr,Ei.name);return}try{const Ui={},Js={};Oe.current.getEdgeData().map(vs=>{Ui[vs.id]=yr==="Enter"?"inactive":"active"}),Oe.current.getNodeData().map(vs=>{yr==="Enter"?Js[vs.id]=vs.colornodeType===Ei.name?"highlight":"inactive":Js[vs.id]="active"}),Oe.current.setElementState(Ui),Oe.current.setElementState(Js)}catch(Ui){}}},fs=(yr,Ei)=>{if(Oe.current){if(dn){Re.current.onMouse(yr,Ei.name);return}try{const Ui={},Js={};Oe.current.getEdgeData().map(vs=>{Ui[vs.id]=yr==="Enter"?"inactive":"active"}),Oe.current.getNodeData().map(vs=>{var Vf,Xc;yr==="Enter"?Js[vs.id]=(Xc=(Vf=vs.tags)==null?void 0:Vf.map(xg=>xg==null?void 0:xg.name))!=null&&Xc.includes(Ei.name)?"highlight":"inactive":Js[vs.id]="active"}),Oe.current.setElementState(Ui),Oe.current.setElementState(Js)}catch(Ui){}}};return zr.createElement(Mt.Z,{spinning:Es},zr.createElement("div",{ref:An,className:"h-screen flex flex-col",style:{background:"#010A23",height:"100%"}},zr.createElement("div",{className:"relative w-full"},zr.createElement("div",{className:"flex w-full px-40px-rem pt-24px-rem absolute gap-20px-rem",style:{left:0,top:0,justifyContent:"start",zIndex:1}},zr.createElement("span",{className:Cu.tupugx,onClick:()=>{ae(),localStorage.setItem("tpuuid",te)}},zr.createElement("img",{src:"/images/tpgx.svg",style:{marginRight:"10rem",width:"16rem"}}),"\u56FE\u8C31\u5173\u7CFB"),zr.createElement("div",{className:Cu.autocomp},zr.createElement("div",{style:{display:"flex",alignItems:"center"}},zr.createElement(ks.Z,{className:Cu.autocompwidth,options:yt,popupClassName:Cu.autopop,getPopupContainer:()=>An.current,value:tn,onSelect:(yr,Ei)=>{var Ui;if(cn(ze.find(Js=>Js.id===yr).name),rn(ze.find(Js=>Js.id===yr)),hr(!0),Un){Re.current.selectall(yr);return}if(dn)Re.current.selectall(yr);else{let Js=Oe.current.getElementDataByState("node","selected");(Js==null?void 0:Js.length)>0&&Oe.current.setElementState((Ui=Js==null?void 0:Js[0])==null?void 0:Ui.id,[""]),Oe.current.setElementState(yr,["selected"])}},onChange:yr=>{cn(yr)},onSearch:yr=>{jt(()=>{var Ei,Ui,Js;return or==="\u5168\u90E8"?(Ei=ze==null?void 0:ze.filter(vs=>vs.name.includes(yr)))==null?void 0:Ei.map(vs=>({label:zr.createElement("div",{style:{display:"flex",alignItems:"center"}},zr.createElement("span",{style:{marginRight:"10rem",height:"20rem",lineHeight:"20rem",padding:"0rem 6rem",color:"#fff",fontSize:"12rem",background:"#1890FF",borderRadius:"2rem"}},vs==null?void 0:vs.nodeType)," ",zr.createElement("div",{style:{color:"#fff"},dangerouslySetInnerHTML:{__html:vs==null?void 0:vs.name.replaceAll(yr,`${yr}`)}})),value:vs==null?void 0:vs.id})):(Js=(Ui=ze==null?void 0:ze.filter(vs=>{var Vf;return(Vf=vs==null?void 0:vs.tags)==null?void 0:Vf.find(Xc=>Xc.name===or)}))==null?void 0:Ui.filter(vs=>vs.name.includes(yr)))==null?void 0:Js.map(vs=>({label:zr.createElement("div",{style:{display:"flex",alignItems:"center"}},zr.createElement("span",{style:{marginRight:"10rem",height:"20rem",padding:"2rem 6rem",color:"#fff",fontSize:"12rem",background:"#1890FF",borderRadius:"2rem"}},vs==null?void 0:vs.nodeType)," ",zr.createElement("div",{style:{color:"#fff"},dangerouslySetInnerHTML:{__html:vs==null?void 0:vs.name.replaceAll(yr,`${yr}`)}})),value:vs==null?void 0:vs.id}))})}},zr.createElement(ct.default,{placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",addonBefore:zr.createElement(ya.Z,{overlayClassName:Cu.dropdownst,menu:{items:[{label:zr.createElement("div",{onClick:()=>{Pn("\u5168\u90E8"),fs("\u5168\u90E8","")}},"\u5168\u90E8"),key:"1"},...qi==null?void 0:qi.map(yr=>({label:zr.createElement("div",{onClick:()=>{Pn(yr.name),fs("Enter",yr)}},yr==null?void 0:yr.name),key:yr.id}))]}},zr.createElement("div",{style:{display:"flex",alignItems:"center"}},zr.createElement("div",{className:Cu.textname,style:{width:"60rem"}},or),zr.createElement("div",{style:{height:"22rem",background:"linear-gradient( 180deg, rgba(255,255,255,0) 0%, #AEAEAE 52%, rgba(255,255,255,0) 100%)",width:"1rem"}})))})))),zr.createElement("div",{className:"flex ml-auto",style:{zIndex:"3"}},((de=y==null?void 0:y.detail)==null?void 0:de.can_managed)&&ms.get("type")==="classrooms"&&zr.createElement("div",{className:`current flex item-center c-white ${Cu.ChangeBut}`,onClick:()=>{st.history.push(`/knowledgegraph/${Fe==null?void 0:Fe.pathId}/statistics/pathatlas/${te}?type=classrooms&tabs=3`)}},"\u6570\u636E\u7EDF\u8BA1"),ms.get("type")!="classrooms"&&zr.createElement(pn.Z,{title:"\u77E5\u8BC6\u70B9\u5173\u8054"},zr.createElement("div",{className:"current flex item-center justify-center c-white",style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem",borderRadius:"50%",background:"#202F4F"},onClick:()=>{ee({type:"account/setActionTabs",payload:{key:"\u8BFE\u7A0B\u77E5\u8BC6\u70B9\u5173\u8054\u8D44\u6E90"}})}},zr.createElement("img",{src:"/images/zsdgl.svg",style:{width:"20rem"}}))),((he=y==null?void 0:y.detail)==null?void 0:he.sync_uuid)&&((ye=y==null?void 0:y.detail)==null?void 0:ye.sync_uuid)===te&&((Ae=y==null?void 0:y.detail)==null?void 0:Ae.can_managed)&&zr.createElement(pn.Z,{title:"\u540C\u6B65"},zr.createElement("img",{className:"current",onClick:(0,t6.debounce)(()=>{rt.default.confirm({title:"\u63D0\u793A",icon:null,centered:!0,getContainer:()=>An.current,content:"\u8BF7\u786E\u5B9A\u662F\u5426\u5C06\u540C\u6B65\u8BFE\u7A0B\u7AE0\u8282\u5185\u5BB9\uFF0C\u66F4\u65B0\u540E\u539F\u6709\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u5C06\u88AB\u8986\u76D6\uFF0C\u8986\u76D6\u540E\u53EF\u5728\u7248\u672C\u7BA1\u7406\u4E2D\u9009\u62E9\u6062\u590D\u3002",onOk:()=>Ag(void 0,null,function*(){var yr;const Ei=(yr=ne==null?void 0:ne.find(Js=>(Js==null?void 0:Js.uuid)===te))==null?void 0:yr.name;let Ui=yield(0,Nt.ZP)("/api/knowledge/v2/sync.json",{method:"post",body:{subject_id:Fe==null?void 0:Fe.pathId,uuid:te,name:Ei}});Ui.status===0&&nt.ZP.info(Ui==null?void 0:Ui.message)})})},500),src:Fi===1?"/images/gxxz.png":"/images/gx.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(1)},style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"}})),((me=y==null?void 0:y.detail)==null?void 0:me.can_managed)&&zr.createElement("div",{className:Cu.hoverone},zr.createElement("div",{onClick:()=>Ag(void 0,null,function*(){let yr=yield(0,Nt.ZP)("/api/knowledge/v2/backup.json",{method:"POST",body:{subject_id:Fe==null?void 0:Fe.pathId,parentNodeUuid:te}});(yr==null?void 0:yr.status)===0&&nt.ZP.info("\u56FE\u8C31\u4FDD\u5B58\u6210\u529F")})},zr.createElement("img",{src:Fi===2?"/images/bcbbxz.png":"/images/bcbb.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(2)}}),zr.createElement("div",{className:Cu.name},"\u4FDD\u5B58\u7248\u672C")),zr.createElement("div",{onClick:()=>Ag(void 0,null,function*(){Xn.page=1,Xn.limit=10;let yr=yield(0,Nt.ZP)("/api/knowledge/v2/knowledge_histories.json",{mehtod:"get",params:Ay({subject_id:Fe==null?void 0:Fe.pathId,nodeUuid:te},Xn)});Li(Xn),(yr==null?void 0:yr.status)===0&&(Vr(!0),Jr(yr))})},zr.createElement("img",{src:Fi===3?"/images/qhbbxz.png":"/images/qhbb.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(3)},className:Cu.img}),zr.createElement("div",{className:Cu.name},"\u5207\u6362\u7248\u672C"))),((Ce=y==null?void 0:y.detail)==null?void 0:Ce.can_managed)&&zr.createElement(pn.Z,{title:"\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31"},zr.createElement("div",{className:"current flex item-center justify-center c-white",style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem",borderRadius:"50%",background:"#202F4F"},onClick:()=>{So.Z.publish("create_a_knowledge_map")}},zr.createElement("span",{className:"iconfont icon-tianjia4"}))),ms.get("type")!=="classrooms"&&!(0,Ks.JA)()&&zr.createElement(pn.Z,{title:"\u53D1\u9001\u81F3\u8BFE\u5802"},zr.createElement("img",{src:Fi===13?"/images/glkt.png":"/images/glktxz.png",className:"current",style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"},onClick:()=>{ee({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"knowledge"}}}})},onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(13)}})),zr.createElement("div",{className:Cu.hoverone},zr.createElement("div",{onClick:()=>{dn=!1,Qn(!1),Kn(!1),Et(!0),Gr(2,!0)}},zr.createElement("img",{src:Fi===4?"/images/gxtxz.png":"/images/gxt.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(4)}}),zr.createElement("div",{className:Cu.name},"\u5173\u7CFB\u56FE")),zr.createElement("div",{onClick:()=>{dn=!0,Kn(!1),Qn(!0)}},zr.createElement("img",{src:Fi===5?"/images/zssxz.png":"/images/zss.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(5)},className:Cu.img}),zr.createElement("div",{className:Cu.name},"\u77E5\u8BC6\u6811"))),zr.createElement(pn.Z,{title:"\u5168\u5C4F"},zr.createElement("img",{className:"current",onClick:()=>{var yr,Ei,Ui,Js;(0,XM.vp)()?(pt(!1),(0,XM.BU)(),!dn&&_e?(yr=Oe==null?void 0:Oe.current)==null||yr.fitCenter():(Ei=Re==null?void 0:Re.current)==null||Ei.fitView()):(pt(!0),(0,XM.Dj)(An.current),!dn&&_e?(Ui=Oe==null?void 0:Oe.current)==null||Ui.fitCenter():(Js=Re==null?void 0:Re.current)==null||Js.fitView())},src:Fi===6?"/images/qpxz.png":"/images/qp.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(6)},style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"}})),((Ee=y==null?void 0:y.detail)==null?void 0:Ee.can_managed)&&zr.createElement("div",{className:Cu.hoverone,style:{marginRight:"0rem"}},zr.createElement("div",{onClick:()=>{Xr(!0)}},zr.createElement("img",{src:Fi===10?"/images/drxz.png":"/images/dr.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(10)}}),zr.createElement("div",{className:Cu.name},"\u5BFC\u5165")),zr.createElement("div",{onClick:()=>{(0,Zt.FH)("",Gt.Z.API_SERVER+`/api/knowledge/v2/export.json?subject_id=${Fe==null?void 0:Fe.pathId}&fileType=xlsx&parentNodeUuid=${te}`)}},zr.createElement("img",{src:Fi===11?"/images/dcxz.png":"/images/dc.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(11)},className:Cu.img}),zr.createElement("div",{className:Cu.name},"\u5BFC\u51FA")))))),_e&&!dn&&!Un&&zr.createElement("div",{className:"w-full h-screen",style:{opacity:0},ref:gs}),zr.createElement("div",{id:"myDiagramDiv",className:`w-full ${dn?"h-screen":""}`},dn?zr.createElement(vc,{ref:Re,setzoomsize:Tn,setshowdetail:hr,setitems:rn,nodeUuid:te,subject_id:Fe==null?void 0:Fe.pathId}):"",Un?zr.createElement(Fie,{ref:Re,setzoomsize:Tn,setshowdetail:hr,setitems:rn,nodeUuid:te,subject_id:Fe==null?void 0:Fe.pathId}):""),zr.createElement("div",{className:"flex item-center sticky c-white px-10px-rem",style:{bottom:"30px",zIndex:101}},(ze==null?void 0:ze.length)>0&&zr.createElement("div",{className:" flex item-center gap-12px-rem"},(Be=TA.filter(yr=>{var Ei;return(Ei=ze==null?void 0:ze.map(Ui=>Ui==null?void 0:Ui.colornodeType))==null?void 0:Ei.includes(yr==null?void 0:yr.name)}))==null?void 0:Be.map(yr=>zr.createElement("div",{onMouseLeave:()=>Or("Leave",yr),onMouseEnter:()=>Or("Enter",yr),className:"flex item-center current gap-6px-rem"},zr.createElement("img",{src:yr==null?void 0:yr.img,style:{width:"20rem",height:"20rem"}}),zr.createElement("span",null,yr==null?void 0:yr.name)))),zr.createElement("div",{className:"flex item-center ml-auto"},!dn&&!Un&&zr.createElement(ya.Z,{overlayClassName:Cu.dropdownst,getPopupContainer:()=>An.current,menu:{items:[{label:zr.createElement("div",{onClick:()=>{Gr()}},"\u5C55\u5F00\u5168\u90E8"),key:"1"},{label:zr.createElement("div",{onClick:()=>{Gr(3)}},"\u5C55\u5F003\u5C42"),key:"2"},{label:zr.createElement("div",{onClick:()=>{Gr(2)}},"\u5C55\u5F002\u5C42"),key:"3"},{label:zr.createElement("div",{onClick:()=>{Gr(1)}},"\u5C55\u5F001\u5C42"),key:"4"},{label:zr.createElement("div",{onClick:()=>{Gr(0)}},"\u6536\u8D77\u5168\u90E8"),key:"5"}]}},zr.createElement("img",{style:{cursor:"pointer"},onClick:()=>{},src:Fi===7?"/images/xscjxz.png":"/images/xscj.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(7)}})),!Un&&zr.createElement(pn.Z,{title:"\u5C45\u4E2D\u663E\u793A"},zr.createElement("img",{onClick:()=>{Et(!1),Gr()},style:{marginLeft:"10rem",cursor:"pointer"},src:Fi===8?"/images/jzxsxz.png":"/images/jzxs.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(8)},className:Cu.img})),zr.createElement("div",{style:{marginLeft:"10rem",background:"#202F4F",borderRadius:"4px",alignItems:"center"}},zr.createElement("img",{style:{cursor:"pointer"},onClick:()=>{if(Un){Re.current.handleZoom("out");return}dn?(Re.current.zoomBy(.9),Re.current.getZooms()):(Oe.current.zoomBy(.9),setTimeout(()=>{var yr;Tn((((yr=Oe==null?void 0:Oe.current)==null?void 0:yr.getZoom())*100).toFixed(0))},300))},src:Fi===9?"/images/newsxxz.png":"/images/newsx.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(9)}}),!Un&&zr.createElement("span",{style:{display:"inline-flex",width:"46px",justifyContent:"center"},onClick:()=>{}}," ",et+"%"),zr.createElement("img",{style:{cursor:"pointer"},onClick:()=>{if(Un){Re.current.handleZoom("in");return}dn?(Re.current.zoomBy(1.1),Re.current.getZooms()):(Oe.current.zoomBy(1.1),setTimeout(()=>{var yr;Tn((((yr=Oe==null?void 0:Oe.current)==null?void 0:yr.getZoom())*100).toFixed(0))},300))},src:Fi===12?"/images/newfdxz.png":"/images/newfd.png",onMouseOut:()=>{Br(!1)},onMouseOver:()=>{Br(12)}})))),zr.createElement(wr.Z,{tpacti:oe,initdata:ie,uuid:te,Tabsdatas:ne,setshow:Et,getData:Gr,containerRef:An,showdetail:Bn,setshowdetail:hr,items:Vt}),zr.createElement(rt.default,{title:"\u6587\u4EF6\u5BFC\u5165",open:Nr,centered:!0,getContainer:()=>An.current,okButtonProps:{loading:Ht},onCancel:()=>{Xr(!1),vr([])},onOk:()=>Ag(void 0,null,function*(){var yr,Ei,Ui;const Js=new FormData;if(qn.length>0)Js.append("file",qn[0]);else{nt.ZP.warning("\u8BF7\u9009\u62E9\u6587\u4EF6");return}En(!0),Js.append("subject_id",(Fe==null?void 0:Fe.pathId)+""),Js.append("parentNodeUuid",te);let vs=yield(0,Nt.ZP)("/api/knowledge/v2/import.json",{method:"post",body:Js},!0);En(!1),(vs==null?void 0:vs.status)===0&&((yr=vs==null?void 0:vs.data)!=null&&yr.importErrorFilePath?rt.default.confirm({icon:null,title:"\u5BFC\u5165\u5931\u8D25",centered:!0,content:zr.createElement("span",null,"\u68C0\u6D4B\u5230\u672C\u6B21\u5BFC\u5165\u5B58\u5728\u4E0D\u7B26\u5408\u8981\u6C42\u7684\u6570\u636E\uFF0C\u70B9\u51FB\u4E0B\u8F7D",zr.createElement("a",{href:`${Gt.Z.API_SERVER}${(Ei=vs==null?void 0:vs.data)==null?void 0:Ei.importErrorFilePath}`,download:"\u5931\u8D25\u6570\u636E.xlsx"},"\u5BFC\u5165\u5931\u8D25\u7684\u6570\u636E"),"\u67E5\u770B")}):(Gr(),Et(!1),(Ui=vs==null?void 0:vs.data)!=null&&Ui.has_route?nt.ZP.info("\u77E5\u8BC6\u56FE\u8C31\u6570\u636E\u5BFC\u5165\u6210\u529F\uFF0C\u4E3A\u4FDD\u8BC1\u5B66\u4E60\u8DEF\u5F84\u7684\u8282\u70B9\u4E0E\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u7ED1\u5B9A\uFF0C\u8BF7\u66F4\u65B0\u5B66\u4E60\u8DEF\u5F84"):nt.ZP.info("\u5BFC\u5165\u6210\u529F"),vr([]),rn({}),Xr(!1)))})},(ze==null?void 0:ze.length)>0&&zr.createElement("div",{style:{marginBottom:30,color:"#333333"}},"\u68C0\u6D4B\u5F53\u524D\u5DF2\u5B58\u5728\u6570\u636E\uFF0C\u5BFC\u5165\u540E\u539F\u6570\u636E\u5C06\u4F1A\u88AB\u8986\u76D6\uFF0C\u6309\u7167\u6700\u65B0\u5BFC\u5165\u7684\u4E3A\u4E3B\uFF0C\u5982\u9700\u7EE7\u7EED\u5BFC\u5165\uFF0C\u8BF7\u6309\u7167\u4E0B\u65B9\u6B65\u9AA4\u8FDB\u884C"),zr.createElement("p",{style:{color:"#5F6368"}},"\u6B65\u9AA41\uFF1A",zr.createElement("span",{style:{color:"#000000"}},"\u4E0B\u8F7D"),zr.createElement("a",{href:`${Gt.Z.API_SERVER}/api/knowledge/v2/down_template.json`,download:"\u6A21\u7248.xlsx"},"\u77E5\u8BC6\u56FE\u8C31\u5BFC\u5165\u6A21\u7248")),zr.createElement(Mr.Z,null,zr.createElement(Ai.Z,{style:{color:"#5F6368"}},"\u6B65\u9AA42\uFF1A",zr.createElement("span",{style:{color:"#000000"}},"\u4E0A\u4F20\u586B\u5199\u597D\u7684\u300A\u77E5\u8BC6\u56FE\u8C31\u5BFC\u5165\u6A21\u7248\u300B"))),zr.createElement(Mr.Z,{style:{marginTop:10,marginLeft:50}},zr.createElement(fl.default,Ay({},ti),zr.createElement("span",{style:{padding:"0px 16px",color:"#1b8565",cursor:"pointer",height:32,alignItems:"center",display:"inline-flex",borderRadius:2,border:"1px solid #1b8565",background:"#1b8565 linear-gradient(180deg, #FFFFFF 0%, #F6F7F9 100%)",boxShadow:"0px 2px 4px 0px #E0DFE1, inset 0px 1px 3px 0px rgba(255,255,255,0.5)"}},zr.createElement("i",{style:{fontSize:12,marginRight:6},className:"iconfont icon-tianjiashitixiaojiahao"})," \u9009\u62E9\u6587\u4EF6")))),zr.createElement(Ba.Z,null,zr.createElement(zr.Fragment,null,zr.createElement(rt.default,{title:"\u7248\u672C\u8BB0\u5F55",centered:!0,width:1200,open:cr,footer:!1,getContainer:()=>An.current,onCancel:()=>{Vr(!1)}},zr.createElement(fd.default,{dataSource:kr==null?void 0:kr.data,pagination:!1,columns:[{title:"\u7248\u672C\u4FDD\u5B58\u65F6\u95F4",dataIndex:"created_at",ellipsis:!0,key:"created_at",render:(yr,Ei)=>zr.createElement("div",null,zr.createElement("span",null,yr),(Ei==null?void 0:Ei.is_now_version)&&zr.createElement("span",{style:{background:"#2BAC8E",padding:"4rem",fontSize:"12rem",marginLeft:"5rem",color:"#fff"}},"\u5F53\u524D\u4F7F\u7528\u7248\u672C"))},{title:"\u4FDD\u5B58\u4EBA",dataIndex:"username",ellipsis:!0,key:"username"},{title:"\u64CD\u4F5C",dataIndex:"name",ellipsis:!0,key:"name",render:(yr,Ei)=>zr.createElement("div",null,zr.createElement("span",{style:{color:"#1B8565",marginRight:"30rem",cursor:"pointer"},onClick:()=>Ag(void 0,null,function*(){var Ui,Js;let vs=yield(0,Nt.ZP)(`${Ei==null?void 0:Ei.url}`,{method:"get"});(vs==null?void 0:vs.status)===0&&((Js=(Ui=vs==null?void 0:vs.data)==null?void 0:Ui.nodes)==null?void 0:Js.length)>0&&on(vs==null?void 0:vs.data)})},"\u67E5\u770B"),zr.createElement("span",{onClick:()=>Ag(void 0,null,function*(){if(Ei!=null&&Ei.is_now_version)return;let Ui=yield(0,Nt.ZP)("/api/knowledge/v2/restore.json",{method:"post",body:{subject_id:Fe==null?void 0:Fe.pathId,backupFilePath:Ei==null?void 0:Ei.backupFilePath}});(Ui==null?void 0:Ui.status)===0&&(Gr(),Vr(!1),Et(!1),nt.ZP.info("\u5207\u6362\u6210\u529F"))}),style:{color:Ei!=null&&Ei.is_now_version?"#999999":"#1B8565",cursor:"pointer"}},"\u5207\u6362\u81F3\u5F53\u524D\u7248\u672C"))}]}),zr.createElement(Ps.Z,{hideOnSinglePage:!0,style:{marginTop:"20rem"},pageSize:Xn.limit,total:kr==null?void 0:kr.total_count,current:Xn.page,onChange:(yr,Ei)=>Ag(void 0,null,function*(){Xn.page=yr,Xn.limit=Ei,Li(Xn);let Ui=yield(0,Nt.ZP)("/api/knowledge/v2/knowledge_histories.json",{mehtod:"get",params:Ay({subject_id:Fe==null?void 0:Fe.pathId,nodeUuid:te},Xn)});(Ui==null?void 0:Ui.status)===0&&(Vr(!0),Jr(Ui))})})),zr.createElement(rt.default,{open:((Ne=bt==null?void 0:bt.nodes)==null?void 0:Ne.length)>0,title:"\u5386\u53F2\u56FE\u8C31",width:"1200rem",footer:null,getContainer:()=>An.current,destroyOnClose:!0,onCancel:()=>{on({})}},zr.createElement(Uie,{datas:bt}))))),zr.createElement(tse,null))};var lse=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(ose),Am={wrap:"wrap___HuFFi",add:"add___GrP2R",dimensionalBall:"dimensionalBall___flm6B",archer:"archer___biVqC",svg:"svg___hXxGw",modal:"modal___DR9M_",mHead:"mHead___I923K",form:"form___W2fTe",mType:"mType___hoISa",listItem:"listItem___JCZwd",tupugx:"tupugx___iCNXk"},Fh={flex_box_center:"flex_box_center___aEG4A",flex_space_between:"flex_space_between___O70yE",flex_box_vertical_center:"flex_box_vertical_center___rEvY1",flex_box_center_end:"flex_box_center_end___Xp3ui",flex_box_column:"flex_box_column___McZmY",largeBall:"largeBall___SbxSR",middleBall:"middleBall___eKLzh",smallBall:"smallBall___r7xv5",largeBallDish:"largeBallDish___EeTGm",middleBallDish:"middleBallDish___hca4h",smallBallDish:"smallBallDish___rrHxf",smallBallGather:"smallBallGather___hHHqa",box:"box___yWjPn",spectrum:"spectrum___r9a7p",pedestal:"pedestal___Grjvz",spectrumHover:"spectrumHover___OibBM",pedestalHover:"pedestalHover___EcKUJ"};const use="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjkxcHgiIGhlaWdodD0iMTk0cHgiIHZpZXdCb3g9IjAgMCAyOTEgMTk0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA2MSAoODk1ODEpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPuWfuuW6pzwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNzcyODY0MyUiIHkxPSI0My4xNzgwNjE3JSIgeDI9Ijk3LjIyMjIyMjIlIiB5Mj0iNTAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMTdDRDMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3MkE5NSIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjE0LjI3MTI2ODMlIiB5MT0iMzEuNjQ0NzI5NyUiIHgyPSIxMDAlIiB5Mj0iNzMuMTEyMDA3OCUiIGlkPSJsaW5lYXJHcmFkaWVudC0yIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3NzFEQiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjg0REIwIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMTAwJSIgeTE9IjM1LjA0MTMwMTklIiB4Mj0iMCUiIHkyPSI2NS41NDY3MzEzJSIgaWQ9ImxpbmVhckdyYWRpZW50LTMiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzA2NkI0IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxNDM4OTQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIyNy43NzI4NjQzJSIgeTE9IjQzLjE1NTA2NzMlIiB4Mj0iOTcuMjIyMjIyMiUiIHkyPSI1MCUiIGlkPSJsaW5lYXJHcmFkaWVudC00Ij4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzMxN0NEMyIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjcyQTk1IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMCUiIHkxPSI1MCUiIHgyPSI1MCUiIHkyPSI2NC4yMTc0OTQ1JSIgaWQ9ImxpbmVhckdyYWRpZW50LTUiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkY3MEM5IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM1QjVGRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtNiIgcG9pbnRzPSIxNDQuNzQ1OSAxNi40Njc5NzAxIDI2MC4xMzI5MzUgNzIuOTI3OTU1NiAxNDYuMTg4MjM4IDEzOC43NTc4OTYgMzAuODAxMjAzMyA3Mi4yMDcxODk5Ij48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMS41JSIgeT0iLTIuOSUiIHdpZHRoPSIxMDMuMSUiIGhlaWdodD0iMTA1LjclIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItNyI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dCbHVySW5uZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSI1IiBpbj0ic2hhZG93Qmx1cklubmVyMSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRJbm5lcjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93T2Zmc2V0SW5uZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIgcmVzdWx0PSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuNzk2ODM2ODkgICAwIDAgMCAwIDAuOTc0NjYwMTA4ICAgMCAwIDAgMCAxICAwIDAgMCAwLjUgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjA4MjAtM0Tlm77osLEt5YiH5Zu+VjQuMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ0OS4wMDAwMDAsIC0xMzQ0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5Z+65bqnIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NDkuMDAwMDAwLCAxMzQ0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IuefqeW9oiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgb3BhY2l0eT0iMC4zMjA4NzA1MzYiIHBvaW50cz0iMTQ0LjU4NDkwNiAzOC45MDI0MTk0IDI5MSAxMTAuNDY0MzA1IDE0Ni40MTUwOTQgMTkzLjkwMjQxOSAwIDEwOS41NTA3NDkiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMikiIHBvaW50cz0iLTcuNTMxNzUzZS0xMyA3MC43NTEyNzkgMTQ2LjA3Njk5NCAxNTUuMjI1ODY2IDE0Ni4wNzY5OTQgMTc3Ljc5MzA4NSAtNy41MzE3NTNlLTEzIDkzLjMxODQ5NzMiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMykiIHBvaW50cz0iMTQ2LjA3Njk5NCAxNTUuMjI1ODY2IDI5MC45MzQxMzggNzEuNjY2MTY2MiAyOTAuOTM0MTM4IDk0LjIzMzM4NDUgMTQ2LjA3Njk5NCAxNzcuNzkzMDg1Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTQpIiBwb2ludHM9IjE0NC41NTIxODIgLTUuODk5OTA5NzdlLTEzIDI5MC45MzQxMzggNzEuNjY2MTY2MiAxNDYuMzgxOTU2IDE1NS4yMjU4NjYgLTUuNjg0MzQxODllLTEzIDcwLjc1MTI3OSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgPGcgaWQ9IuefqeW9oiI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTUpIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHhsaW5rOmhyZWY9IiNwYXRoLTYiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci03KSIgeGxpbms6aHJlZj0iI3BhdGgtNiI+PC91c2U+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==",cse="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjk1cHgiIGhlaWdodD0iMTk3cHgiIHZpZXdCb3g9IjAgMCAyOTUgMTk3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA2MSAoODk1ODEpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPuW6leW6p+mAieS4rTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNzcyODY0MyUiIHkxPSI0My4xNTUwNjczJSIgeDI9Ijk3LjIyMjIyMjIlIiB5Mj0iNTAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMTdDRDMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3MkE5NSIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjE0LjI3MTI2ODMlIiB5MT0iMzEuNjQ0NzI5NyUiIHgyPSIxMDAlIiB5Mj0iNzMuMTEyMDA3OCUiIGlkPSJsaW5lYXJHcmFkaWVudC0yIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3NzFEQiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjg0REIwIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMTAwJSIgeTE9IjM1LjA0MTMwMTklIiB4Mj0iMCUiIHkyPSI2NS41NDY3MzEzJSIgaWQ9ImxpbmVhckdyYWRpZW50LTMiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzA2NkI0IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxNDM4OTQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSI2LjA2MjU2MyUiIHgyPSI1MCUiIHkyPSI2NC40MjMxOTgxJSIgaWQ9ImxpbmVhckdyYWRpZW50LTQiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkY3MEM5IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyREUxRkQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtNSIgcG9pbnRzPSIxNDYuMzI3NiAxNi42NDc5MjI2IDI2Mi45NzU1MTcgNzMuNzI0ODcwMiAxNDcuNzg1Njk5IDE0MC4yNzQxNjIgMzEuMTM3NzgxMSA3Mi45OTYyMjgzIj48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMS4xJSIgeT0iLTIuMCUiIHdpZHRoPSIxMDIuMiUiIGhlaWdodD0iMTA0LjAlIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItNiI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjAuNSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd0JsdXJJbm5lcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjQiIGluPSJzaGFkb3dCbHVySW5uZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldElubmVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluPSJzaGFkb3dPZmZzZXRJbm5lcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIiByZXN1bHQ9InNoYWRvd0lubmVySW5uZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMC43OTY4MzY4OSAgIDAgMCAwIDAgMC45NzQ2NjAxMDggICAwIDAgMCAwIDEgIDAgMCAwIDAuNSAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iMDgyMC0zROWbvuiwsS3liIflm75WNC4wIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTQ3MS4wMDAwMDAsIC0xMzU0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5bqV5bqn6YCJ5LitIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDcxLjAwMDAwMCwgMTM1NC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMyI+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IuefqeW9oiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgb3BhY2l0eT0iMC4zMjA4NzA1MzYiIHBvaW50cz0iMTQ2LjEzMTc2NSAzOS40MTkzNDQyIDI5NC4xMTMyOTggMTExLjg2ODYzNyAxNDcuOTgxNTM0IDE5Ni4zNDE0MjkgLTEuNDIxMDg1NDdlLTEzIDExMC45NDM3NTIiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIiBwb2ludHM9IjEuMTM2ODY4MzhlLTEzIDcxLjUyNDQwOCAxNDcuNjczMjM5IDE1Ni45MjIwODUgMTQ3LjY3MzIzOSAxNzkuNzM1OTA1IDEuMTM2ODY4MzhlLTEzIDk0LjMzODIyNzgiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTMpIiBwb2ludHM9IjE0Ny42NzMyMzkgMTU2LjkyMjA4NSAyOTQuMTEzMjk4IDcyLjQ0OTI5MjYgMjk0LjExMzI5OCA5NS4yNjMxMTI0IDE0Ny42NzMyMzkgMTc5LjczNTkwNSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiIHBvaW50cz0iMTQ2LjEzMTc2NSAtNC43OTMzNDg4M2UtMTMgMjk0LjExMzI5OCA3Mi40NDkyOTI2IDE0Ny45ODE1MzQgMTU2LjkyMjA4NSAtMS40MjEwODU0N2UtMTMgNzEuNTI0NDA4Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IuefqeW9oiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC00KSIgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTYpIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==",dse="data:image/png;base64,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",fse="data:image/png;base64,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";var hse=Object.defineProperty,pse=Object.defineProperties,mse=Object.getOwnPropertyDescriptors,C6=Object.getOwnPropertySymbols,gse=Object.prototype.hasOwnProperty,vse=Object.prototype.propertyIsEnumerable,P6=(b,a,y)=>a in b?hse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,oC=(b,a)=>{for(var y in a||(a={}))gse.call(a,y)&&P6(b,y,a[y]);if(C6)for(var y of C6(a))vse.call(a,y)&&P6(b,y,a[y]);return b},lC=(b,a)=>pse(b,mse(a)),Ase=({className:b,style:a={},title:y="",childNode:x=[],knowledgeNode:E=[]})=>{const z="rem",ee=[{position:"absolute",zIndex:2,bottom:112,left:44},{position:"absolute",zIndex:3,bottom:94,left:74},{position:"absolute",zIndex:4,bottom:78,left:104},{position:"absolute",zIndex:5,bottom:66,left:136},{position:"absolute",zIndex:6,bottom:82,left:168},{position:"absolute",zIndex:7,bottom:104,left:202},{position:"absolute",zIndex:8,bottom:122,left:166}],te=[{position:"absolute",zIndex:10,bottom:166,left:66},{position:"absolute",zIndex:11,bottom:148,left:120},{position:"absolute",zIndex:12,bottom:150,left:180},{position:"absolute",zIndex:13,bottom:188,left:164},{position:"absolute",zIndex:14,bottom:192,left:114}],ne=(le="")=>{if(!le)return"-";let de=3;return/[\u4e00-\u9fff]/.test(le)||(de=7),(le==null?void 0:le.length)>=de?(le==null?void 0:le.slice(0,de-1))+"...":le},ie=()=>(Array.isArray(E)?E.slice(0,7):Array(7).fill("\u77E5\u8BC6\u70B9")).map((he,ye)=>{const Ae=ee[ye],me=lC(oC({},Ae),{bottom:`${Ae.bottom}${z}`,left:`${Ae.left}${z}`});return fe.createElement("div",{key:ye,style:me,className:Fh.smallBallGather},fe.createElement("div",{className:Fh.smallBall},fe.createElement("b",null,ne(he))),fe.createElement("div",{className:Fh.smallBallDish}))}),ae=()=>(Array.isArray(x)?x.slice(0,5):Array(5).fill("\u5B50\u8282\u70B9")).map((he,ye)=>{const Ae=te[ye],me=lC(oC({},Ae),{bottom:`${Ae.bottom}${z}`,left:`${Ae.left}${z}`});return fe.createElement("div",{key:ye,style:me,className:Fh.middleBall},fe.createElement("div",null,fe.createElement("b",null,ne(he))))}),oe={position:"absolute",zIndex:1,bottom:0,width:"100%"};return fe.createElement("div",{className:Hr()(Fh.box,b),style:a},fe.createElement("img",{className:Fh.pedestal,style:oe,src:use}),fe.createElement("img",{className:Fh.pedestalHover,style:oe,src:cse}),ie(),fe.createElement("div",{style:{position:"absolute",zIndex:9,bottom:138+z,left:"50%",transform:"translateX(-50%)"},className:Fh.middleBallDish}),ae(),fe.createElement("div",{style:{position:"absolute",zIndex:15,bottom:214+z,left:"50%",transform:"translateX(-50%)"},className:Fh.largeBallDish}),fe.createElement("div",{style:{position:"absolute",zIndex:16,bottom:234+z,left:120+z},className:Fh.largeBall},fe.createElement("b",null,ne(y))),fe.createElement("img",{style:lC(oC({},oe),{zIndex:17}),className:Fh.spectrum,src:dse}),fe.createElement("img",{style:lC(oC({},oe),{zIndex:17}),className:Fh.spectrumHover,src:fse}),fe.createElement("div",{title:y,style:{position:"absolute",zIndex:18,bottom:304+z,left:0,fontSize:24+z,width:"100%",textAlign:"center"},className:"c-white blod"},(0,Zt.Pq)(y,9)))},yse=Object.defineProperty,xse=Object.defineProperties,bse=Object.getOwnPropertyDescriptors,B6=Object.getOwnPropertySymbols,Ese=Object.prototype.hasOwnProperty,wse=Object.prototype.propertyIsEnumerable,S6=(b,a,y)=>a in b?yse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,M6=(b,a)=>{for(var y in a||(a={}))Ese.call(a,y)&&S6(b,y,a[y]);if(B6)for(var y of B6(a))wse.call(a,y)&&S6(b,y,a[y]);return b},D6=(b,a)=>xse(b,bse(a));function Cse(b){const a=new Map,y=[];return b.nodes.forEach(x=>{const E=D6(M6({},x.properties),{children:[]});a.set(E.uuid,E)}),b.relationships.forEach(x=>{const E=a.get(x.startNodeUuid),z=a.get(x.endNodeUuid);E&&z&&E.children.push(z)}),b.nodes.forEach(x=>{const E=x.properties;if(!b.relationships.some(te=>te.startNodeUuid===E.uuid||te.endNodeUuid===E.uuid))return;b.relationships.some(te=>te.endNodeUuid===E.uuid)||y.push(a.get(E.uuid))}),y.length===1?y[0]:y}function T6(b,a){const y=new Set,x=[];return b.forEach(E=>{const z=E[a[0]],ee=E[a[1]];if(!z||!ee)return;const te=`${z}-${ee}`,ne=`${ee}-${z}`;z!==ee&&!y.has(te)&&!y.has(ne)&&(x.push(E),y.add(te),y.add(ne))}),x}const Pse=(b,a)=>{const y=b==null?void 0:b.map(E=>{const z=ee=>{let te=[ee.uuid];return ee.children.forEach(ne=>{te=te.concat(z(ne))}),te};return z(E)});return a.map(E=>{let z,ee;return y.forEach(te=>{te.includes(E.startNodeUuid)&&(z=te[0]),te.includes(E.endNodeUuid)&&(ee=te[0])}),D6(M6({},E),{firstStartNodeUuid:z,firstEndNodeUuid:ee})})};var oc=Me(59301),Bse=({data:b})=>{const a=(0,fe.useRef)(),y=(0,fe.useRef)();function x(ee,te,ne){let ie,ae;switch(te){case"top":ie=Math.ceil(ee.left+ee.width/2-ne.left),ae=Math.ceil(ee.top-ne.top);break;case"bottom":ie=Math.ceil(ee.left+ee.width/2-ne.left),ae=Math.ceil(ee.bottom-ne.top+15);break;case"left":ie=Math.ceil(ee.left-ne.left-10),ae=Math.ceil(ee.top+ee.height/2-ne.top+80);break;case"right":ie=Math.ceil(ee.right-ne.left+10),ae=Math.ceil(ee.top+ee.height/2-ne.top+50);break}return{x:ie,y:ae}}function E(ee,te){const ne={x:parseInt(ee.left+ee.width/2),y:parseInt(ee.top+ee.height/2)},ie={x:parseInt(te.left+te.width/2),y:parseInt(te.top+te.height/2)},ae=ie.x-ne.x,oe=ie.y-ne.y;let le,de;return Math.abs(ae)>Math.abs(oe)?(le=ae>0?"right":"left",de=ae>0?"left":"right"):(le=oe>0?"bottom":"top",de=oe>0?"top":"bottom"),{startEdge:le,endEdge:de}}function z(){let ee=b;if(!(ee!=null&&ee.length))return;const te=document.getElementById("lineContainer"),ne=document.getElementById("parentContainer").getBoundingClientRect();te.querySelectorAll("line").forEach(ie=>ie.remove()),ee.forEach(ie=>{const ae=document.getElementById(ie.from),oe=document.getElementById(ie.to),le=ae.getBoundingClientRect(),de=oe.getBoundingClientRect();let{startEdge:he,endEdge:ye}=ie;if(!he||!ye){const Ee=E(le,de);he=he||Ee.startEdge,ye=ye||Ee.endEdge}const Ae=x(le,he,ne),me=x(de,ye,ne),Ce=document.createElementNS("http://www.w3.org/2000/svg","line");if(Ce.setAttribute("x1",Ae.x+ie.offsetStart.x),Ce.setAttribute("y1",Ae.y+ie.offsetStart.y),Ce.setAttribute("x2",Ae.x+ie.offsetStart.x+.01),Ce.setAttribute("y2",Ae.y+ie.offsetStart.y),Ce.setAttribute("stroke",`url(#${ie.gradient})`),Ce.setAttribute("stroke-width","2"),ie.dashed&&Ce.setAttribute("stroke-dasharray","5, 5"),ie.arrow==="start"?Ce.setAttribute("marker-start",ie!=null&&ie.animated?"url(#triangle-start-h)":"url(#triangle-start)"):ie.arrow==="end"?Ce.setAttribute("marker-end",ie!=null&&ie.animated?"url(#triangle-end-h)":"url(#triangle-end)"):ie.arrow==="both"&&(Ce.setAttribute("marker-start",ie!=null&&ie.animated?"url(#triangle-start-h)":"url(#triangle-start)"),Ce.setAttribute("marker-end",ie!=null&&ie.animated?"url(#triangle-end-h)":"url(#triangle-end)")),ie.animated){Ce.classList.add("dashed-line");const Ee=document.createElementNS("http://www.w3.org/2000/svg","animate");Ee.setAttribute("attributeName","x2"),Ee.setAttribute("from",Ae.x+ie.offsetStart.x),Ee.setAttribute("to",me.x+ie.offsetEnd.x+.01),Ee.setAttribute("dur","1s"),Ee.setAttribute("fill","freeze"),Ce.appendChild(Ee);const Be=document.createElementNS("http://www.w3.org/2000/svg","animate");Be.setAttribute("attributeName","y2"),Be.setAttribute("from",Ae.y+ie.offsetStart.y),Be.setAttribute("to",me.y+ie.offsetEnd.y),Be.setAttribute("dur","1s"),Be.setAttribute("fill","freeze"),Ce.appendChild(Be)}else Ce.setAttribute("x2",me.x+ie.offsetEnd.x+.01),Ce.setAttribute("y2",me.y+ie.offsetEnd.y);te.appendChild(Ce)})}return(0,fe.useEffect)(()=>{b!=null&&b.length&&z()},[b]),(0,fe.useEffect)(()=>(window.addEventListener("resize",()=>z),window.addEventListener("scroll",()=>z),()=>{window.removeEventListener("resize",z),window.removeEventListener("scroll",z)}),[]),oc.createElement(oc.Fragment,null,oc.createElement("svg",{id:"lineContainer",style:{width:"100%",height:"100%",position:"absolute",top:0,left:0}}),oc.createElement("svg",null,oc.createElement("defs",null,oc.createElement("linearGradient",{id:"gradient1",x1:"0%",y1:"0%",x2:"0%",y2:"100%"},oc.createElement("stop",{"stop-color":"#42BECD",offset:"0%"}),oc.createElement("stop",{"stop-color":"#3C30C6",offset:"100%"})),oc.createElement("linearGradient",{id:"gradient2",x1:"0%",y1:"0%",x2:"100%",y2:"100%"},oc.createElement("stop",{"stop-color":"#2DE1FD",offset:"0%"}),oc.createElement("stop",{"stop-color":"#C7FFB0",offset:"100%"})),oc.createElement("marker",{id:"triangle-start",viewBox:"0 0 10 10",refX:"2",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},oc.createElement("path",{d:"M 10 0 L 0 5 L 10 10 z",fill:"url(#gradient1)"})),oc.createElement("marker",{id:"triangle-end",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},oc.createElement("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"url(#gradient1)"})),oc.createElement("marker",{id:"triangle-start-h",viewBox:"0 0 10 10",refX:"2",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},oc.createElement("path",{d:"M 10 0 L 0 5 L 10 10 z",fill:"url(#gradient2)"})),oc.createElement("marker",{id:"triangle-end-h",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},oc.createElement("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"url(#gradient2)"})))))},Sse=Object.defineProperty,Mse=Object.defineProperties,Dse=Object.getOwnPropertyDescriptors,I6=Object.getOwnPropertySymbols,Tse=Object.prototype.hasOwnProperty,Ise=Object.prototype.propertyIsEnumerable,F6=(b,a,y)=>a in b?Sse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,N6=(b,a)=>{for(var y in a||(a={}))Tse.call(a,y)&&F6(b,y,a[y]);if(I6)for(var y of I6(a))Ise.call(a,y)&&F6(b,y,a[y]);return b},Fse=(b,a)=>Mse(b,Dse(a)),L6=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),Nse=({subjectId:b,setActivated:a,onAddSuccess:y,settpacti:x})=>{const E=(0,st.useSelector)(pt=>pt),{pathsDetail:{detail:z={}}}=E,[ee]=it.default.useForm(),[te,ne]=(0,fe.useState)(""),[ie,ae]=(0,fe.useState)(!1),[oe,le]=(0,fe.useState)(!0),[de,he]=(0,fe.useState)(!1),[ye,Ae]=(0,fe.useState)([]),[me,Ce]=(0,fe.useState)([]),[Ee,Be]=(0,fe.useState)(null),[Ne,Fe]=(0,fe.useState)(),ke=(0,fe.useRef)(),Re=(0,fe.useRef)();let Oe=(0,fe.useRef)().current,ze=(0,fe.useRef)().current,Le=(0,fe.useRef)(!1).current;const _e=z==null?void 0:z.can_managed;(0,fe.useEffect)(()=>{b&&Et()},[b]);const Et=()=>L6(void 0,null,function*(){var pt,An,Vt,rn,Bn;le(!0);const hr=yield(0,Nt.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{depth:-1,subject_id:b}});if(hr.status===0){ne((rn=(Vt=(An=(pt=hr==null?void 0:hr.data)==null?void 0:pt.nodes)==null?void 0:An[0])==null?void 0:Vt.properties)==null?void 0:rn.uuid);const bt=((Bn=hr==null?void 0:hr.data)==null?void 0:Bn.relationships)||[];let on=[],dn=[];bt==null||bt.forEach(Nr=>{["\u5173\u8054"].includes(Nr.type)?on.push(Nr):["\u5305\u542B"].includes(Nr.type)&&dn.push(Nr)}),on=T6(on,["startNodeUuid","endNodeUuid"]);const Qn=Fse(N6({},hr==null?void 0:hr.data),{relationships:dn}),Un=Cse(Qn);let Kn=Pse((Un==null?void 0:Un.children)||[],on);console.log(Kn,3),Kn=T6(Kn,["firstStartNodeUuid","firstEndNodeUuid"]),Ae((Un==null?void 0:Un.children)||[]),Ce(Kn),console.log(Kn,Un==null?void 0:Un.children,222)}le(!1)});(0,fe.useEffect)(()=>{me!=null&&me.length&&Fe(me.map(pt=>({from:pt.firstStartNodeUuid,to:pt.firstEndNodeUuid,animated:!1,dashed:!0,arrow:"both",offsetStart:{x:0,y:0},offsetEnd:{x:0,y:1},gradient:"gradient1"})))},[me]),(0,fe.useEffect)(()=>{var pt;Ne!=null&&Ne.length&&((pt=Ne==null?void 0:Ne.map)==null||pt.call(Ne,An=>{An.animated=An.from===Ee||An.to===Ee,An.gradient=An.from===Ee||An.to===Ee?"gradient2":"gradient1"}),Fe([...Ne]))},[Ee]);function yt(pt){var An,Vt;if(!Le)return;const rn=pt.pageY-Oe;(Vt=(An=ke.current)==null?void 0:An.scrollTo)==null||Vt.call(An,0,ze-rn)}function jt(pt){var An;Le=!0,Oe=pt.pageY,ze=((An=ke.current)==null?void 0:An.scrollTop)||0}function tn(pt){Le=!1}(0,fe.useEffect)(()=>(document.addEventListener("mousedown",jt),document.addEventListener("mousemove",yt),document.addEventListener("mouseup",tn),()=>{document.removeEventListener("mouseup",tn),document.removeEventListener("mousemove",yt),document.removeEventListener("mousedown",jt)}),[]);const cn=pt=>L6(void 0,null,function*(){const{nodeType:An,description:Vt,name:rn,tags:Bn}=pt;he(!0);const hr=yield(0,Nt.ZP)("/api/knowledge/v2/add_node.json",{method:"POST",body:{label:"\u56FE\u8C31",subject_id:b,properties:{description:Vt,rootNodeUuid:te,name:rn,nodeType:An[0],tags:(Bn==null?void 0:Bn.join("\uFF0C"))||"",color:"1"},relationships:[{startNodeUuid:te,type:"\u5305\u542B"}]}});(hr==null?void 0:hr.status)===0&&(ae(!1),Et(),y()),he(!1)}),kt=()=>{const pt=[],An=ye==null?void 0:ye.map((rn,Bn)=>{var hr;let bt;const on=Bn+1,dn=pt.length-3,Qn=pt[dn];on%3===1&&(bt={top:Qn!==void 0?`${parseFloat(Qn==null?void 0:Qn.top)+600}rem`:"100rem",left:"50%",marginLeft:"-146rem"}),on%3===2&&(bt={top:Qn!==void 0?`${parseFloat(Qn==null?void 0:Qn.top)+600}rem`:"380rem",left:0}),on%3===0&&(bt={top:Qn!==void 0?`${parseFloat(Qn==null?void 0:Qn.top)+600}rem`:"380rem",right:0}),pt.push(bt);let Un=[],Kn=(hr=rn==null?void 0:rn.children)==null?void 0:hr.map(Nr=>{var Xr;return Nr!=null&&Nr.children&&((Xr=Nr==null?void 0:Nr.children)==null||Xr.forEach(Ht=>{Un.push(Ht.name)})),Nr.name});return Kn.length>5&&(Kn[0]="..."),Un.length>7&&(Un[0]="..."),fe.createElement("div",{className:Am.listItem,key:Bn,onMouseEnter:()=>Be(rn==null?void 0:rn.uuid),onMouseLeave:()=>Be(null),id:rn==null?void 0:rn.uuid,onClick:()=>{a(rn==null?void 0:rn.uuid),x(rn==null?void 0:rn.uuid)},style:N6({position:"absolute",zIndex:10},bt)},fe.createElement(Ase,{childNode:Kn,knowledgeNode:Un,title:rn==null?void 0:rn.name}))}),Vt=parseFloat(pt[pt.length-1].top)+352+80+"rem";return fe.createElement("div",{ref:Re,style:{height:Vt}},An)};return fe.createElement(Ba.Z,null,fe.createElement("div",{className:Am.wrap},oe&&fe.createElement(Mt.Z,{style:{width:"100%",marginTop:"300rem"},spinning:oe}),!oe&&fe.createElement(fe.Fragment,null,_e&&fe.createElement("div",{className:Am.add,onClick:()=>ae(!0)},fe.createElement("i",{className:"iconfont icon-tianjiatixing"})),fe.createElement("span",{className:Am.tupugx,onClick:()=>{let pt=localStorage.getItem("tpuuid");a(pt),x(pt)}},"\u8FD4\u56DE"),ye!=null&&ye.length?fe.createElement("div",{className:Am.dimensionalBall,ref:ke},fe.createElement("div",{className:Am.archer,id:"parentContainer"},kt(),fe.createElement(Bse,{data:Ne}))):fe.createElement(Mo,{text:"\u6682\u65E0\u56FE\u8C31\uFF0C\u7ACB\u5373\u65B0\u5EFA\u4E00\u4E2A\u56FE\u8C31\u5427\uFF5E",textColor:"#fff",buttonText:_e&&"\u65B0\u5EFA\u56FE\u8C31",onClick:()=>ae(!0)})),fe.createElement(rt.default,{open:ie,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>ae(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{ee.resetFields()},confirmLoading:de,onOk:()=>ee.submit(),title:"\u65B0\u589E\u77E5\u8BC6\u56FE\u8C31"},fe.createElement("div",{className:Am.modal},fe.createElement("div",{className:Am.mHead},"\u8282\u70B9\u5C5E\u6027"),fe.createElement(it.default,{form:ee,scrollToFirstError:!0,layout:"horizontal",colon:!1,size:"large",labelCol:{flex:"110rem"},onFinish:cn,className:Am.form},fe.createElement(it.default.Item,{label:"\u56FE\u8C31\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8282\u70B9\u540D\u79F0"},{type:"string",max:60,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},fe.createElement(ct.default,{maxLength:60,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),fe.createElement(it.default.Item,{label:"\u7B80\u4ECB",name:"description",rules:[{type:"string",max:5e3,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},fe.createElement(ct.default.TextArea,{maxLength:5e3,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),fe.createElement(it.default.Item,{className:Am.mType,label:fe.createElement("span",null,"\u56FE\u8C31\u7C7B\u578B ",fe.createElement(pn.Z,{title:"\u5F53\u524D\u77E5\u8BC6\u56FE\u8C31\u7684\u7C7B\u578B\uFF0C\u5982\uFF1A\u5927\u7EB2\u56FE\u8C31\u3001\u80FD\u529B\u56FE\u8C31"},fe.createElement(xr.Z,null))),name:"nodeType",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8282\u70B9\u7C7B\u578B"}]},fe.createElement(ra,{subjectId:b,type:1})))))))},Bl={statistics:"statistics___BP4qi",noUnfold:"noUnfold___EpqXR",wrapBox:"wrapBox___TsFlb",scrollBox:"scrollBox___Oh4zJ",content:"content___NRQFH",title:"title___z20Sn",box:"box___k6Eep",left:"left___Gnxfc",right:"right___rNC9V",head:"head___mT3Wl",radio:"radio___sjK3F",active:"active___oX7gd",average:"average___KVA2l",li:"li____NnY1",yellow:"yellow___CCujs",blue:"blue___m_425",lineTitle:"lineTitle___qo6vf",echartsTwo:"echartsTwo___aC24D",echartsThree:"echartsThree___Z2Q2A",unfold:"unfold___VUl4t",select:"select___dM1mS"},Lse="data:image/png;base64,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",Ose="data:image/png;base64,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",Rse="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAsCAYAAAA5KtvpAAAAAXNSR0IArs4c6QAABFJJREFUaEPtml9MW1Ucxz+nlxbaUkYvYjdENG7RiEg6jNGQ+aIx08SE6IvZxGS+qGGPPjnj2+J8MIuJMVk00Zgg0zc1Rpm+Gf+M+GdkZKhT4gyMjnWllJWWtrf3mNPLHJcWaBmlXcMvaV96fufez/n+fuf8zjkV/a8ZBzB5R4JO7VpICHlo8A3nt6L/VWNSIttrl9UiEzAyeMz5sOg/khmTkq7aBxbfDB6r2y8OHZFBjzf7rt5Mb61ChyOcWkxrhz86KiaEggxF5Aum5INaBRaCJ9taxPBSaG8D15zQVaVwnQaao/QxlhLSxnU/1Y+RLdxP1QA7BAT8IHIzSekWjUMyBS1NUO+EuTgkUvn9lB84mwVNK4pA921c4bkFS1V/IzS4QA3AYroCwM2nBpnf14fp9RUFvRmNVLSYskIh3XryOMJIc+WZw1sKvdrAlT2kFbAzPEVGDxB5eqDi0EUDzyetSWC1UFk+oq74LPqFURrD/9AUOo8jm8n9nNwR4M/HBzDc5Q1vhwO8LvC5N5jDV5MQXVg/u1wLUe789TP8F88hpFnQIdkUYPyxATJlhlYPb/WBu97+GkUpHJ6HZIEZb3lX/qkx9vw0hJYpsBasQE807+LsE6+AkqKM1tgAeuMGgC/HYNGKyoKmFL37uw9XVXW5k3Ro/NX7PLMd3WVEtbr21kPLiuwpSuG1gLVUguCXb+JMxdcF2ErYsgHfNfIpt06M5GANl4doWyfzgT25HM3U+9h9eghP7BKbBauKi08+t9eNDg0O9uUXN5uusGdumu6v3iLT4ONCTx+RjmBeXt7/9XE8sdCmhbECPjG4rHAG6jTBy/1bANx+dhjPXIiJh54lW+8pGNJdw28z3floSTkbnoVozF4qteoC/w4wDDjxcYWAO377gsngU8g1ZltP9CIJ/23r5vfyBj/8YnLmnH1Z631Ao6dL5OrlyihsmjiyBqbTVRKMamxm4cy4XUG1LQzeZ22V1gSupMIlky45pDPw3pA9LJ11gpees/KwOhVeh/bvfyVTIbuKu+8Q3L5LcEPA1arw9z+bjI7b83DfgxrBzhsErlgOAwsJu8xqH+peKtjLBlwphVNpeP+kPQ9dTsGLB608LBtwpRTeBga2Fa6lSaumQ3r2KsRX7OtvBuAmNzR7N3AAkMnCzJz9PKvagVWpurM5/5y7qAMANUZZE1KZ69DqfH30D3slpfYQe++16uHJS3A5Yv+9PSAI3GL1Nfr7Cl8Bezst36kZmLlS2Nc08+vw3HOXfJW/ur1wu0DVBSutaOCN1s3V5rcNvNaFuAoVV121aZb/PmpzsspNiwr34i/Er93MVTtyYhHU5VohKwnY2wDqU82m7orjydXP0UsCrmbQYt8tD3g6IvdLSe5PH7VomoPunboYyy1f6ktK2TAdYRS4p+aABT+26TwihMidTPy/TM/EZcBY5HUEPUJyE8zL60gjSEk47RYc1XURu9b6P7vslVpOgNBqAAAAAElFTkSuQmCC",zse="data:image/png;base64,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",kse="data:image/png;base64,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",ZM={wave:"wave___rx4XG",fillWrap:"fillWrap___q512j",svgBox:"svgBox___DfbUu"},Hse=Object.defineProperty,O6=Object.getOwnPropertySymbols,Use=Object.prototype.hasOwnProperty,jse=Object.prototype.propertyIsEnumerable,R6=(b,a,y)=>a in b?Hse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Vse=(b,a)=>{for(var y in a||(a={}))Use.call(a,y)&&R6(b,y,a[y]);if(O6)for(var y of O6(a))jse.call(a,y)&&R6(b,y,a[y]);return b};const she=b=>React.createElement("svg",Vse({width:449,height:204,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},b),React.createElement("title",null,"\u6CE2\u7EB9"),React.createElement("defs",null,React.createElement("linearGradient",{x1:"50%",y1:"41.532%",x2:"51.437%",y2:"65.254%",id:"water_svg__c"},React.createElement("stop",{stopColor:"#34D5A2",offset:"0%"}),React.createElement("stop",{stopColor:"#1D9F76",offset:"100%"})),React.createElement("path",{id:"water_svg__a",d:"M0 0h449v204H0z"})),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("mask",{id:"water_svg__b",fill:"#fff"},React.createElement("use",{xlinkHref:"#water_svg__a"})),React.createElement("g",{mask:"url(#water_svg__b)"},React.createElement("path",{d:"M0 7.704c14.667 8 29.667 8 45 0 6.537-3.41 23.776-14.982 45 0 17 12 29 9 45 0s31-9 45 0c25 17 35 8 45 0s32.344-7.91 45 0c16 10 32 10 45 0 10.947-8.42 33.124-8.71 45 0 15 11 31.839 11.136 45 0 13-11 30-9.517 45 0s15 17 45 0v196H0v-196Z",fill:"url(#water_svg__c)",transform:"translate(-40)"}),React.createElement("path",{d:"M0 11c14.667 8 29.667 8 45 0 6.537-3.41 23.776-14.982 45 0 17 12 29 9 45 0s31-9 45 0c25 17 35 8 45 0s32.344-7.91 45 0c16 10 32 10 45 0 10.947-8.42 33.124-8.71 45 0 15 11 31.839 11.137 45 0 13-11 30-10 45 0s15 17 45 0v193H0V11Z",fill:"#38E5AE"}))));var Gse="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQ5IiBoZWlnaHQ9IjIwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSI0MS41MzIlIiB4Mj0iNTEuNDM3JSIgeTI9IjY1LjI1NCUiIGlkPSJjIj48c3RvcCBzdG9wLWNvbG9yPSIjMzRENUEyIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzFEOUY3NiIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBpZD0iYSIgZD0iTTAgMGg0NDl2MjA0SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PGcgbWFzaz0idXJsKCNiKSI+PHBhdGggZD0iTTAgNy43MDRjMTQuNjY3IDggMjkuNjY3IDggNDUgMCA2LjUzNy0zLjQxIDIzLjc3Ni0xNC45ODIgNDUgMCAxNyAxMiAyOSA5IDQ1IDBzMzEtOSA0NSAwYzI1IDE3IDM1IDggNDUgMHMzMi4zNDQtNy45MSA0NSAwYzE2IDEwIDMyIDEwIDQ1IDAgMTAuOTQ3LTguNDIgMzMuMTI0LTguNzEgNDUgMCAxNSAxMSAzMS44MzkgMTEuMTM2IDQ1IDAgMTMtMTEgMzAtOS41MTcgNDUgMHMxNSAxNyA0NSAwdjE5Nkgwdi0xOTZaIiBmaWxsPSJ1cmwoI2MpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDApIi8+PHBhdGggZD0iTTAgMTFjMTQuNjY3IDggMjkuNjY3IDggNDUgMCA2LjUzNy0zLjQxIDIzLjc3Ni0xNC45ODIgNDUgMCAxNyAxMiAyOSA5IDQ1IDBzMzEtOSA0NSAwYzI1IDE3IDM1IDggNDUgMHMzMi4zNDQtNy45MSA0NSAwYzE2IDEwIDMyIDEwIDQ1IDAgMTAuOTQ3LTguNDIgMzMuMTI0LTguNzEgNDUgMCAxNSAxMSAzMS44MzkgMTEuMTM3IDQ1IDAgMTMtMTEgMzAtMTAgNDUgMHMxNSAxNyA0NSAwdjE5M0gwVjExWiIgZmlsbD0iIzM4RTVBRSIvPjwvZz48L2c+PC9zdmc+",Xse=({percentage:b,size:a=180,unit:y="rem"})=>{const[x,E]=(0,fe.useState)(["",""]),[z,ee]=(0,fe.useState)(0),te=(0,fe.useRef)(null),ne=(0,fe.useRef)(null);(0,fe.useEffect)(()=>(te.current&&(clearTimeout(ne.current),ne.current=setTimeout(()=>{var de;const he=z+20;he+a>((de=te.current)==null?void 0:de.offsetWidth)-40&&E([...x,""]),ee(he)},200)),()=>{clearTimeout(ne.current)}),[te.current,z]),(0,fe.useEffect)(()=>(window.addEventListener("resize",ie),()=>{window.removeEventListener("resize",ie)}),[]);const ie=()=>{ee(0)},ae={width:a+y,height:a+y},oe=148-a*(b/100),le=()=>fe.createElement("img",{src:Gse,style:{width:`449${y}`,height:`204${y}`}});return fe.createElement("div",{className:ZM.wave,style:ae},fe.createElement("div",{className:ZM.fillWrap},fe.createElement("div",{style:{fontSize:`28${y}`,zIndex:2,color:"#fff"}},b,"%"),fe.createElement("div",{className:ZM.svgBox,ref:te,style:{top:oe+y,transform:`translateX(-${z}px)`}},x.map((de,he)=>fe.createElement(le,{key:he})))))},z6=Me(57374),yg={trapezoid:"trapezoid___qw8yM",pillarBox:"pillarBox___rGJCP",pillar1:"pillar1___uJ0zx",point:"point____XIHt",pillar2:"pillar2___pL9k5",pillar3:"pillar3___dUdZf",textBox:"textBox___isldE",text1:"text1___g5Hy9",tip:"tip___PXfJr",line:"line___A5wA_",l:"l___hfZzL",text2:"text2___u2scn",text3:"text3___WSnmy"},Wse=Object.defineProperty,Qse=Object.defineProperties,Zse=Object.getOwnPropertyDescriptors,k6=Object.getOwnPropertySymbols,Yse=Object.prototype.hasOwnProperty,Jse=Object.prototype.propertyIsEnumerable,H6=(b,a,y)=>a in b?Wse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,U6=(b,a)=>{for(var y in a||(a={}))Yse.call(a,y)&&H6(b,y,a[y]);if(k6)for(var y of k6(a))Jse.call(a,y)&&H6(b,y,a[y]);return b},j6=(b,a)=>Qse(b,Zse(a)),Kse=({dataSource:b=[]})=>{const[a,y]=(0,fe.useState)([]),[x,E]=(0,fe.useState)(0),z=(0,fe.useRef)(String(Math.random()).slice(-6));(0,fe.useEffect)(()=>{if(b!=null&&b.length){const ie=ne(b),ae=b.map((oe,le)=>j6(U6({value:oe,lineWidth:30,pillarWidth:104+ie[le]},te[le]),{from:te[le].from+z.current,to:te[le].to+z.current}));y(ae),E(x+1)}},[JSON.stringify(b)]),(0,fe.useEffect)(()=>{x>0&&ee()},[x]),(0,fe.useEffect)(()=>(window.addEventListener("resize",ee),()=>{window.removeEventListener("resize",ee)}),[x]);const ee=()=>{const ie=a.map((ae,oe)=>{const{from:le,to:de}=ae,he=document.querySelector(`#${le}`),ye=document.querySelector(`#${de}`),Ae=he.getBoundingClientRect(),me=ye.getBoundingClientRect(),Ce=Math.abs(me.left-Ae.left);return j6(U6({},ae),{lineWidth:Ce})});y(ie)},te=[{title:"\u5B8C\u6210\u738780%\uFF5E100%",pillarTitle:"80\uFF5E100%",from:"lineStart1",to:"lineEnd1"},{title:"\u5B8C\u6210\u738760%\uFF5E79%",pillarTitle:"60\uFF5E79%",from:"lineStart2",to:"lineEnd2"},{title:"\u5B8C\u6210\u738759%\u4EE5\u4E0B",pillarTitle:"59%\u4EE5\u4E0B",from:"lineStart3",to:"lineEnd3"}];function ne(ie){const ae=ie.reduce((oe,le)=>oe+le,0);return ie.map(oe=>oe/ae*100)}return fe.createElement("div",{className:yg.trapezoid},fe.createElement("div",{className:yg.textBox},a.map((ie,ae)=>{const{value:oe,lineWidth:le,title:de,from:he}=ie,ye=ae+1;return fe.createElement("div",{key:ae,className:yg[`text${ye}`]},fe.createElement("div",{className:yg.tip},de,fe.createElement("span",null,oe)),fe.createElement("div",{id:he,className:yg.line},fe.createElement("div",{style:{width:le},className:yg.l})))})),fe.createElement("div",{className:yg.pillarBox},a.map((ie,ae)=>{const{pillarWidth:oe,pillarTitle:le,to:de}=ie,he=ae+1;return fe.createElement("div",{key:ae,className:yg[`pillar${he}`],style:{width:oe+"rem"}},fe.createElement("span",null,le),fe.createElement("div",{id:de,className:yg.point}))})))},$i=Me(59301),qse=Object.defineProperty,V6=Object.getOwnPropertySymbols,_se=Object.prototype.hasOwnProperty,$se=Object.prototype.propertyIsEnumerable,G6=(b,a,y)=>a in b?qse(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,YM=(b,a)=>{for(var y in a||(a={}))_se.call(a,y)&&G6(b,y,a[y]);if(V6)for(var y of V6(a))$se.call(a,y)&&G6(b,y,a[y]);return b},eae=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),tae=({subjectId:b,uuid:a,isAll:y})=>{const[x,E]=(0,fe.useState)(!1),[z,ee]=(0,fe.useState)({type:0,course_id:null}),[te,ne]=(0,fe.useState)(!0),[ie,ae]=(0,fe.useState)(!0),[oe,le]=(0,fe.useState)([]),[de]=(0,st.useSearchParams)(),[he,ye]=(0,fe.useState)({graphCount:0,tagCount:0,resourceCount:0,proportionCount:0}),Ae=[{name:"",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"",value:0,itemStyle:{color:"rgb(6,110,247)"}}],[me,Ce]=(0,fe.useState)({averageCompletionRate:0,averageMasteryRate:0,completionRate:[0,0,0],masteryRate:Ae});(0,fe.useEffect)(()=>{x?Ee(z):ee({type:0,course_id:null})},[x]),(0,fe.useEffect)(()=>{x&&E(!1)},[a]);const Ee=(ke,Re=!1)=>eae(void 0,null,function*(){var Oe,ze,Le,_e,Et,yt,jt,tn,cn,kt;Re?ae(!0):ne(!0);const pt=yield(0,Nt.ZP)(y?"/api/knowledge/v2/subject_statistics.json":"/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:YM({subject_id:b,parentNodeUuid:a,labels:"\u56FE\u8C31,\u6807\u7B7E,\u8D44\u6E90",depth:-1},ke)});if((pt==null?void 0:pt.status)===0){let An=(Oe=pt==null?void 0:pt.data)==null?void 0:Oe.metricCounters;An=An||[];const Vt={graphCount:((ze=An.find(bt=>(bt==null?void 0:bt.name)==="\u56FE\u8C31"))==null?void 0:ze.count)||0,tagCount:((Le=An.find(bt=>(bt==null?void 0:bt.name)==="\u6807\u7B7E"))==null?void 0:Le.count)||0,resourceCount:((_e=An.find(bt=>(bt==null?void 0:bt.name)==="\u8D44\u6E90"))==null?void 0:_e.count)||0,proportionCount:(Et=pt==null?void 0:pt.data)==null?void 0:Et.resource_rate};let rn=Object.entries((yt=pt==null?void 0:pt.data)==null?void 0:yt.study_grasp_hash).map(([bt,on],dn)=>({name:bt,value:on,itemStyle:Ae[dn].itemStyle}));const Bn={averageCompletionRate:(jt=pt==null?void 0:pt.data)==null?void 0:jt.study_complete_rate,averageMasteryRate:(tn=pt==null?void 0:pt.data)==null?void 0:tn.study_grasp_rate,completionRate:Object.values((cn=pt==null?void 0:pt.data)==null?void 0:cn.study_complete_hash),masteryRate:rn};console.log(rn,"newMasteryRate");const hr=(kt=pt==null?void 0:pt.courses)==null?void 0:kt.map(bt=>({label:bt.name,value:bt.id}));le(hr),ye(Vt),Ce(Bn)}setTimeout(()=>{ne(!1)},500),ae(!1)}),Be=ke=>{z.type=ke,ee(YM({},z)),(ke!==2||z.course_id)&&Ee(z,!0)},Ne=ke=>{z.course_id=ke,ee(YM({},z)),Ee(z,!0)},Fe=[{name:"\u5168\u90E8",id:0},{name:"\u81EA\u4E3B\u5B66\u4E60",id:1},{name:"\u8BFE\u5802\u5B66\u4E60",id:2}];return $i.createElement(Ba.Z,null,$i.createElement("div",{className:Bl.statistics},$i.createElement("div",{onClick:()=>E(!0),className:Bl.noUnfold},$i.createElement("img",{style:{width:"32rem",marginBottom:"4rem"},src:Lse}),$i.createElement("span",null,"\u7EDF"),$i.createElement("span",null,"\u8BA1")),$i.createElement("div",{className:Bl.wrapBox,style:{right:x?0:"-600rem"}},te&&$i.createElement(Mt.Z,{style:{width:"100%",marginTop:"200rem"},spinning:!0}),!te&&$i.createElement($i.Fragment,null,$i.createElement("div",{className:Bl.scrollBox},$i.createElement("div",{className:Bl.content},$i.createElement("div",{className:Bl.title},$i.createElement("img",{src:Ose}),$i.createElement("span",null,"\u56FE\u8C31\u7EDF\u8BA1\u5206\u6790")),$i.createElement(Mr.Z,{className:Bl.box,justify:"space-between"},$i.createElement("div",{className:Bl.left},$i.createElement("div",null,$i.createElement("span",null,"\u77E5\u8BC6\u56FE\u8C31\u6570\u91CF"),$i.createElement("b",null,he==null?void 0:he.graphCount)),$i.createElement("div",{style:{margin:"18rem 0"}},$i.createElement("span",null,"\u6807\u7B7E\u8282\u70B9\u6570\u91CF"),$i.createElement("b",null,he==null?void 0:he.tagCount)),$i.createElement("div",null,$i.createElement("span",null,"\u8D44\u6E90\u8282\u70B9\u6570\u91CF"),$i.createElement("b",null,he==null?void 0:he.resourceCount))),$i.createElement("div",{className:Bl.right},x&&$i.createElement(Xse,{percentage:he==null?void 0:he.proportionCount}),$i.createElement("div",{className:"c-white",style:{marginTop:"20rem",fontSize:"14rem"}},"\u5DF2\u5173\u8054\u8D44\u6E90\u7684\u6807\u7B7E\u8282\u70B9\u5360\u6BD4"))),$i.createElement("div",{style:{marginTop:"20rem"},className:Bl.title},$i.createElement("img",{src:Rse}),$i.createElement("span",null,"\u5B66\u4E60\u7EDF\u8BA1\u5206\u6790")),$i.createElement("div",{className:Bl.box},de.get("type")!=="classrooms"&&$i.createElement("div",{className:Bl.head},$i.createElement("span",{style:{marginRight:"10rem",fontSize:"16rem"}},"\u7EDF\u8BA1\u8303\u56F4"),$i.createElement("div",{className:Bl.radio},Fe.map(ke=>$i.createElement("div",{className:z.type===ke.id?Bl.active:"",key:ke.id,onClick:()=>Be(ke.id)},$i.createElement("b",null),$i.createElement("span",null,ke.name)))),z.type===2&&$i.createElement(ho.default,{className:Bl.select,options:oe,value:z==null?void 0:z.course_id,onChange:Ne,placeholder:"\u8BF7\u9009\u62E9",getPopupContainer:ke=>ke.parentNode,style:{width:"156rem",marginLeft:"10rem"},suffixIcon:$i.createElement("i",{className:"iconfont icon-a-bianzu11",style:{color:"#1B8565",fontSize:"16rem"}})})),$i.createElement(Mt.Z,{spinning:ie},$i.createElement("div",{className:Bl.average},$i.createElement("div",{className:Bl.li},$i.createElement("img",{src:zse,style:{marginLeft:0}}),$i.createElement("aside",{className:Bl.yellow},$i.createElement("div",{style:{fontSize:"16rem"}},"\u5E73\u5747\u5B8C\u6210\u7387"),$i.createElement("div",null,$i.createElement("b",{style:{fontSize:"40rem"}},me==null?void 0:me.averageCompletionRate),$i.createElement("span",{style:{fontSize:"20rem"}},"%")))),$i.createElement("div",{className:Bl.li},$i.createElement("img",{src:kse}),$i.createElement("aside",{className:Bl.blue},$i.createElement("div",{style:{fontSize:"16rem"}},"\u5E73\u5747\u638C\u63E1\u7387"),$i.createElement("div",null,$i.createElement("b",{style:{fontSize:"40rem"}},me==null?void 0:me.averageMasteryRate),$i.createElement("span",{style:{fontSize:"20rem"}},"%"))))),$i.createElement("div",{className:Bl.lineTitle},$i.createElement("b",null),$i.createElement("span",null,"\u5B8C\u6210\u7387"),$i.createElement("b",null)),$i.createElement("div",{className:Bl.echartsTwo},$i.createElement(Kse,{dataSource:me==null?void 0:me.completionRate})),$i.createElement("div",{className:Bl.lineTitle,style:{marginTop:"40rem"}},$i.createElement("b",null),$i.createElement("span",null,"\u638C\u63E1\u7387"),$i.createElement("b",null)),$i.createElement("div",{className:Bl.echartsThree},$i.createElement(z6.Z,{dataSource:me==null?void 0:me.masteryRate})))))),x&&$i.createElement("div",{onClick:()=>E(!1),className:Bl.unfold})))))},ou={statistics:"statistics___BZJje",noUnfold:"noUnfold___L4va9",wrapBox:"wrapBox___tHLW6",scrollBox:"scrollBox___m8AGu",content:"content____Gl9N",title:"title___SAaGy",top:"top___h1nbU",topLi:"topLi___Ib2Tu",bottom:"bottom___ZKnwW",bottomLi:"bottomLi___YAGiM",echarts:"echarts___M5Dkf",name:"name___XhFko",unfold:"unfold___I5om1",select:"select___TcV_B"},nae="data:image/png;base64,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",rae="data:image/png;base64,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",iae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAsCAYAAAA5KtvpAAAAAXNSR0IArs4c6QAABFJJREFUaEPtml9MW1Ucxz+nlxbaUkYvYjdENG7RiEg6jNGQ+aIx08SE6IvZxGS+qGGPPjnj2+J8MIuJMVk00Zgg0zc1Rpm+Gf+M+GdkZKhT4gyMjnWllJWWtrf3mNPLHJcWaBmlXcMvaV96fufez/n+fuf8zjkV/a8ZBzB5R4JO7VpICHlo8A3nt6L/VWNSIttrl9UiEzAyeMz5sOg/khmTkq7aBxbfDB6r2y8OHZFBjzf7rt5Mb61ChyOcWkxrhz86KiaEggxF5Aum5INaBRaCJ9taxPBSaG8D15zQVaVwnQaao/QxlhLSxnU/1Y+RLdxP1QA7BAT8IHIzSekWjUMyBS1NUO+EuTgkUvn9lB84mwVNK4pA921c4bkFS1V/IzS4QA3AYroCwM2nBpnf14fp9RUFvRmNVLSYskIh3XryOMJIc+WZw1sKvdrAlT2kFbAzPEVGDxB5eqDi0EUDzyetSWC1UFk+oq74LPqFURrD/9AUOo8jm8n9nNwR4M/HBzDc5Q1vhwO8LvC5N5jDV5MQXVg/u1wLUe789TP8F88hpFnQIdkUYPyxATJlhlYPb/WBu97+GkUpHJ6HZIEZb3lX/qkx9vw0hJYpsBasQE807+LsE6+AkqKM1tgAeuMGgC/HYNGKyoKmFL37uw9XVXW5k3Ro/NX7PLMd3WVEtbr21kPLiuwpSuG1gLVUguCXb+JMxdcF2ErYsgHfNfIpt06M5GANl4doWyfzgT25HM3U+9h9eghP7BKbBauKi08+t9eNDg0O9uUXN5uusGdumu6v3iLT4ONCTx+RjmBeXt7/9XE8sdCmhbECPjG4rHAG6jTBy/1bANx+dhjPXIiJh54lW+8pGNJdw28z3floSTkbnoVozF4qteoC/w4wDDjxcYWAO377gsngU8g1ZltP9CIJ/23r5vfyBj/8YnLmnH1Z631Ao6dL5OrlyihsmjiyBqbTVRKMamxm4cy4XUG1LQzeZ22V1gSupMIlky45pDPw3pA9LJ11gpees/KwOhVeh/bvfyVTIbuKu+8Q3L5LcEPA1arw9z+bjI7b83DfgxrBzhsErlgOAwsJu8xqH+peKtjLBlwphVNpeP+kPQ9dTsGLB608LBtwpRTeBga2Fa6lSaumQ3r2KsRX7OtvBuAmNzR7N3AAkMnCzJz9PKvagVWpurM5/5y7qAMANUZZE1KZ69DqfH30D3slpfYQe++16uHJS3A5Yv+9PSAI3GL1Nfr7Cl8Bezst36kZmLlS2Nc08+vw3HOXfJW/ur1wu0DVBSutaOCN1s3V5rcNvNaFuAoVV121aZb/PmpzsspNiwr34i/Er93MVTtyYhHU5VohKwnY2wDqU82m7orjydXP0UsCrmbQYt8tD3g6IvdLSe5PH7VomoPunboYyy1f6ktK2TAdYRS4p+aABT+26TwihMidTPy/TM/EZcBY5HUEPUJyE8zL60gjSEk47RYc1XURu9b6P7vslVpOgNBqAAAAAElFTkSuQmCC",sae=Me.p+"static/a.d3f19668.png",aae=Me.p+"static/b.ba7414bd.png",oae=Me.p+"static/c.2b6f6bd3.png",lae=Me.p+"static/d.f1216ccd.png",mv={cylinder:"cylinder___rUBlO",cylinderBox:"cylinderBox___NurwX",cylinder1:"cylinder1___LPJD0",item1:"item1___ekrFi",item2:"item2___PuVOv",item3:"item3___x9UjL",point:"point___ZJ1ZD",cylinder2:"cylinder2___aQBbC",cylinder3:"cylinder3___lefpl",textBox:"textBox____wuhT"},uae=Object.defineProperty,cae=Object.defineProperties,dae=Object.getOwnPropertyDescriptors,X6=Object.getOwnPropertySymbols,fae=Object.prototype.hasOwnProperty,hae=Object.prototype.propertyIsEnumerable,W6=(b,a,y)=>a in b?uae(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Q6=(b,a)=>{for(var y in a||(a={}))fae.call(a,y)&&W6(b,y,a[y]);if(X6)for(var y of X6(a))hae.call(a,y)&&W6(b,y,a[y]);return b},Z6=(b,a)=>cae(b,dae(a)),pae=({dataSource:b=[]})=>{const[a,y]=(0,fe.useState)([]),[x,E]=(0,fe.useState)(0),z=(0,fe.useRef)(String(Math.random()).slice(-6));console.log(b,a,223),(0,fe.useEffect)(()=>{if(b!=null&&b.length){const ie=ne(b),ae=b.map((oe,le)=>Z6(Q6({value:oe,lineWidth:30,cylinderWidth:40+ie[le]},te[le]),{from:te[le].from+z.current,to:te[le].to+z.current}));y(ae),E(x+1)}},[JSON.stringify(b)]),(0,fe.useEffect)(()=>{x>0&&ee()},[x]),(0,fe.useEffect)(()=>(window.addEventListener("resize",ee),()=>{window.removeEventListener("resize",ee)}),[x]);const ee=()=>{const ie=a.map((ae,oe)=>{const{from:le,to:de}=ae,he=document.querySelector(`#${le}`),ye=document.querySelector(`#${de}`),Ae=he.getBoundingClientRect(),me=ye.getBoundingClientRect(),Ce=Math.abs(me.left-Ae.left);return Z6(Q6({},ae),{lineWidth:Ce})});y(ie)},te=[{title:"\u90E8\u5206\u638C\u63E1  ",from:"lineStart1",to:"lineEnd1"},{title:"\u5168\u90E8\u638C\u63E1  ",from:"lineStart2",to:"lineEnd2"},{title:"\u672A  \u638C  \u63E1  ",from:"lineStart3",to:"lineEnd3"}];function ne(ie){const ae=ie.reduce((oe,le)=>oe+le,0);return ie.map(oe=>oe/ae*122)}return fe.createElement("div",{className:mv.cylinder},fe.createElement("div",{className:mv.cylinderBox},a.map((ie,ae)=>{const{cylinderWidth:oe,lineWidth:le,from:de}=ie,he=ae+1;return fe.createElement("div",{key:he,className:mv[`cylinder${he}`],style:{width:oe+"rem"}},fe.createElement("div",{className:mv.item1}),fe.createElement("div",{className:mv.item2}),fe.createElement("div",{className:mv.item3}),fe.createElement("div",{id:de,style:{width:le},className:mv.point}))})),fe.createElement("div",{className:mv.textBox},a.map((ie,ae)=>{const{title:oe,to:le,value:de}=ie,he=ae+1;return fe.createElement("div",{key:he,id:le},fe.createElement("span",{dangerouslySetInnerHTML:{__html:`${oe}${de}%`}}))})))},Ys=Me(59301),mae=Object.defineProperty,Y6=Object.getOwnPropertySymbols,gae=Object.prototype.hasOwnProperty,vae=Object.prototype.propertyIsEnumerable,J6=(b,a,y)=>a in b?mae(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,K6=(b,a)=>{for(var y in a||(a={}))gae.call(a,y)&&J6(b,y,a[y]);if(Y6)for(var y of Y6(a))vae.call(a,y)&&J6(b,y,a[y]);return b},Aae=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())}),yae=({subjectId:b,uuid:a,isAll:y})=>{const[x,E]=(0,fe.useState)(!1),[z,ee]=(0,fe.useState)({course_id:null}),[te,ne]=(0,fe.useState)(!0),[ie,ae]=(0,fe.useState)(!0),[oe,le]=(0,fe.useState)([]),[de]=(0,st.useSearchParams)(),[he,ye]=(0,fe.useState)({graphCount:0,tagCount:0,resourceCount:0,proportionCount:0}),Ae=[{name:"\u5DF2\u5B8C\u6210",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"\u5F85\u5F00\u59CB",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u90E8\u5206\u5B8C\u6210",value:0,itemStyle:{color:"rgb(6,110,247)"}}],[me,Ce]=(0,fe.useState)({averageCompletionRate:0,averageMasteryRate:0,completionRate:Ae,masteryRate:[0,0,0],course_rank_num:0,course_rank_all_num:0,system_rank_num:0,system_rank_all_num:0});(0,fe.useEffect)(()=>{x?Ee(z):ee({course_id:null})},[x]),(0,fe.useEffect)(()=>{x&&E(!1)},[a]);const Ee=(Ne,Fe=!1)=>Aae(void 0,null,function*(){var ke,Re,Oe,ze,Le,_e,Et,yt,jt,tn,cn,kt,pt,An,Vt;Fe?ae(!0):ne(!0);const rn=yield(0,Nt.ZP)(y?"/api/knowledge/v2/subject_statistics.json":"/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:K6({subject_id:b,parentNodeUuid:a,labels:"\u56FE\u8C31,\u6807\u7B7E,\u8D44\u6E90",depth:-1},Ne)});if((rn==null?void 0:rn.status)===0){let Bn=(ke=rn==null?void 0:rn.data)==null?void 0:ke.metricCounters;Bn=Bn||[];const hr={graphCount:((Re=Bn.find(Qn=>(Qn==null?void 0:Qn.name)==="\u56FE\u8C31"))==null?void 0:Re.count)||0,tagCount:((Oe=Bn.find(Qn=>(Qn==null?void 0:Qn.name)==="\u6807\u7B7E"))==null?void 0:Oe.count)||0,resourceCount:((ze=Bn.find(Qn=>(Qn==null?void 0:Qn.name)==="\u8D44\u6E90"))==null?void 0:ze.count)||0,proportionCount:(Le=rn==null?void 0:rn.data)==null?void 0:Le.resource_rate};let bt=Object.entries((_e=rn==null?void 0:rn.data)==null?void 0:_e.study_complete_hash).map(([Qn,Un],Kn)=>({name:Ae[Kn].name,value:Un,itemStyle:Ae[Kn].itemStyle}));const on={averageCompletionRate:(Et=rn==null?void 0:rn.data)==null?void 0:Et.study_complete_rate,averageMasteryRate:(yt=rn==null?void 0:rn.data)==null?void 0:yt.study_grasp_rate,completionRate:bt,masteryRate:Object.values((jt=rn==null?void 0:rn.data)==null?void 0:jt.study_grasp_hash),course_rank_num:(tn=rn==null?void 0:rn.data)==null?void 0:tn.course_rank_num,course_rank_all_num:(cn=rn==null?void 0:rn.data)==null?void 0:cn.course_rank_all_num,system_rank_num:(kt=rn==null?void 0:rn.data)==null?void 0:kt.system_rank_num,system_rank_all_num:(pt=rn==null?void 0:rn.data)==null?void 0:pt.system_rank_all_num},dn=(An=rn==null?void 0:rn.courses)==null?void 0:An.map(Qn=>({label:Qn.name,value:Qn.id}));le(dn),ye(hr),Ce(on),Fe||ee({course_id:((Vt=dn==null?void 0:dn[0])==null?void 0:Vt.value)||null})}setTimeout(()=>{ne(!1)},500),ae(!1)}),Be=Ne=>{z.course_id=Ne,ee(K6({},z)),Ee(z,!0)};return Ys.createElement(Ba.Z,null,Ys.createElement("div",{className:ou.statistics},Ys.createElement("div",{onClick:()=>E(!0),className:ou.noUnfold},Ys.createElement("img",{style:{width:"32rem",marginBottom:"4rem"},src:nae}),Ys.createElement("span",null,"\u7EDF"),Ys.createElement("span",null,"\u8BA1")),Ys.createElement("div",{className:ou.wrapBox,style:{right:x?0:"-600rem"}},te&&Ys.createElement(Mt.Z,{style:{width:"100%",marginTop:"200rem"},spinning:!0}),!te&&Ys.createElement(Ys.Fragment,null,Ys.createElement("div",{className:ou.scrollBox},Ys.createElement("div",{className:ou.content},Ys.createElement("div",{className:ou.title},Ys.createElement("img",{src:rae}),Ys.createElement("span",null,"\u56FE\u8C31\u7EDF\u8BA1\u5206\u6790")),Ys.createElement("div",{className:ou.top},Ys.createElement("div",{className:ou.topLi},Ys.createElement("div",null,he==null?void 0:he.graphCount),Ys.createElement("div",null,"\u77E5\u8BC6\u56FE\u8C31\u6570\u91CF")),Ys.createElement("div",{className:ou.topLi},Ys.createElement("div",null,he==null?void 0:he.tagCount),Ys.createElement("div",null,"\u6807\u7B7E\u8282\u70B9\u6570\u91CF")),Ys.createElement("div",{className:ou.topLi},Ys.createElement("div",null,he==null?void 0:he.resourceCount),Ys.createElement("div",null,"\u8D44\u6E90\u8282\u70B9\u6570\u91CF"))),Ys.createElement("div",{style:{marginTop:"20rem"},className:ou.title},Ys.createElement("img",{src:iae}),Ys.createElement("span",null,"\u5B66\u4E60\u7EDF\u8BA1\u5206\u6790")),Ys.createElement(Mt.Z,{spinning:ie},Ys.createElement("div",{className:ou.bottom},Ys.createElement("div",{className:ou.bottomLi,style:{marginTop:"82rem",marginRight:"26rem"}},de.get("type")!=="classrooms"&&Ys.createElement(ho.default,{className:ou.select,options:oe,value:z==null?void 0:z.course_id,size:"small",onChange:Be,placeholder:"\u8BF7\u9009\u62E9",getPopupContainer:Ne=>Ne.parentNode,style:{width:"222rem"},suffixIcon:Ys.createElement("i",{className:"iconfont icon-a-bianzu11",style:{color:"#fff",fontSize:"12rem"}})}),Ys.createElement("b",{style:{fontSize:"26rem",marginTop:"5rem"}},me==null?void 0:me.course_rank_num),Ys.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\u8BFE\u5802\u6392\u540D"),Ys.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\uFF08\u5171",me==null?void 0:me.course_rank_all_num,"\u4EBA\uFF09"),Ys.createElement("img",{src:sae})),Ys.createElement("div",{className:ou.bottomLi,style:{marginTop:"82rem"}},Ys.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},me==null?void 0:me.system_rank_num),Ys.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\u7CFB\u7EDF\u6392\u540D"),Ys.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\uFF08\u5171",me==null?void 0:me.system_rank_all_num,"\u4EBA\uFF09"),Ys.createElement("img",{src:aae})),Ys.createElement("div",{className:ou.bottomLi,style:{marginTop:"104rem",marginRight:"26rem"}},Ys.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},me==null?void 0:me.averageCompletionRate,"%"),Ys.createElement("div",{style:{fontSize:"14rem",marginTop:"2rem"}},"\u5E73\u5747\u5B8C\u6210\u7387"),Ys.createElement("img",{src:oae})),Ys.createElement("div",{className:ou.bottomLi,style:{marginTop:"104rem"}},Ys.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},me==null?void 0:me.averageMasteryRate,"%"),Ys.createElement("div",{style:{fontSize:"14rem",marginTop:"2rem"}},"\u5E73\u5747\u638C\u63E1\u7387"),Ys.createElement("img",{src:lae})),Ys.createElement("div",{className:ou.echarts},Ys.createElement("div",{className:ou.name},"\u5B8C\u6210\u60C5\u51B5"),Ys.createElement(z6.Z,{dataSource:me==null?void 0:me.completionRate})),Ys.createElement("div",{className:ou.echarts},Ys.createElement("div",{className:ou.name},"\u638C\u63E1\u60C5\u51B5"),Ys.createElement(pae,{dataSource:me==null?void 0:me.masteryRate})))))),x&&Ys.createElement("div",{onClick:()=>E(!1),className:ou.unfold})))))},yy=Me(59301),xae=Object.defineProperty,uC=Object.getOwnPropertySymbols,q6=Object.prototype.hasOwnProperty,_6=Object.prototype.propertyIsEnumerable,$6=(b,a,y)=>a in b?xae(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,bae=(b,a)=>{for(var y in a||(a={}))q6.call(a,y)&&$6(b,y,a[y]);if(uC)for(var y of uC(a))_6.call(a,y)&&$6(b,y,a[y]);return b},Eae=(b,a)=>{var y={};for(var x in b)q6.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&uC)for(var x of uC(b))a.indexOf(x)<0&&_6.call(b,x)&&(y[x]=b[x]);return y},eL=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const wae=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee,tpacti:te,settpacti:ne}=a,ie=Eae(a,["pathsDetail","user","globalSetting","loading","dispatch","tpacti","settpacti"]),ae,oe,le,de,he,ye;const Ae=(0,st.useParams)(),[me,Ce]=(0,fe.useState)(""),[Ee,Be]=(0,fe.useState)([]),[Ne]=(0,st.useSearchParams)(),[Fe,ke]=(0,fe.useState)([]),[Re,Oe]=(0,fe.useState)(1);(0,fe.useEffect)(()=>{var _e,Et,yt,jt,tn,cn;if((_e=y==null?void 0:y.detail)!=null&&_e.nodes&&Re===1){Be((Et=y==null?void 0:y.detail)==null?void 0:Et.nodes),Ne.get("uuid")?Ce(Ne.get("uuid")):Ce((tn=(jt=(yt=y==null?void 0:y.detail)==null?void 0:yt.nodes)==null?void 0:jt[1])==null?void 0:tn.uuid);let kt=[...(cn=y==null?void 0:y.detail)==null?void 0:cn.nodes];ke(kt==null?void 0:kt.splice(1)),Oe(2)}},[(ae=y==null?void 0:y.detail)==null?void 0:ae.nodes]),(0,fe.useEffect)(()=>{var _e,Et,yt;Ce(te||((yt=(Et=(_e=y==null?void 0:y.detail)==null?void 0:_e.nodes)==null?void 0:Et[1])==null?void 0:yt.uuid))},[te]);const ze=(..._e)=>eL(void 0,[..._e],function*(Et={}){return yield ee({type:"pathsDetail/getKnowledgeGraphs",payload:bae({graphable_type:Ne.get("type")==="classrooms"?"course":"subject",graphable_id:Ae==null?void 0:Ae.pathId},Et)})});function Le(){return eL(this,null,function*(){var _e,Et,yt,jt;const tn=yield ze({graphable_id:Ae==null?void 0:Ae.pathId});Ce((Et=(_e=tn==null?void 0:tn.nodes)==null?void 0:_e[1])==null?void 0:Et.uuid),ne((jt=(yt=tn==null?void 0:tn.nodes)==null?void 0:yt[1])==null?void 0:jt.uuid)})}return yy.createElement("div",{style:{height:"calc(100vh - 72px - 170rem)"}},(Ee==null?void 0:Ee.length)>0&&yy.createElement("div",{className:ns.content},((oe=Ee==null?void 0:Ee[0])==null?void 0:oe.uuid)===me&&me&&yy.createElement(Nse,{onAddSuccess:Le,setActivated:Ce,subjectId:Ae==null?void 0:Ae.pathId,settpacti:ne}),((le=Ee==null?void 0:Ee[0])==null?void 0:le.uuid)!==me&&me&&yy.createElement(lse,{tpacti:te,setactivied:()=>{var _e;Ce((_e=Ee==null?void 0:Ee[0])==null?void 0:_e.uuid)},initdata:Le,Tabsdatas:Fe,uuid:me})),(de=y==null?void 0:y.detail)!=null&&de.can_managed?yy.createElement(tae,{isAll:((he=Ee==null?void 0:Ee[0])==null?void 0:he.uuid)===me,subjectId:Ae==null?void 0:Ae.pathId,uuid:me}):yy.createElement(yae,{isAll:((ye=Ee==null?void 0:Ee[0])==null?void 0:ye.uuid)===me,subjectId:Ae==null?void 0:Ae.pathId,uuid:me}))};var Cae=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(wae),tL={TabsItemActive:"TabsItemActive___UqdaX",TabsItem:"TabsItem___L0dKD"},Pae=Me(84105),gv=Me(59301),Bae=Object.defineProperty,Sae=Object.defineProperties,Mae=Object.getOwnPropertyDescriptors,cC=Object.getOwnPropertySymbols,nL=Object.prototype.hasOwnProperty,rL=Object.prototype.propertyIsEnumerable,iL=(b,a,y)=>a in b?Bae(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Dae=(b,a)=>{for(var y in a||(a={}))nL.call(a,y)&&iL(b,y,a[y]);if(cC)for(var y of cC(a))rL.call(a,y)&&iL(b,y,a[y]);return b},Tae=(b,a)=>Sae(b,Mae(a)),Iae=(b,a)=>{var y={};for(var x in b)nL.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&cC)for(var x of cC(b))a.indexOf(x)<0&&rL.call(b,x)&&(y[x]=b[x]);return y};const sL=({DataProps:b,isActive:a=!1,onClick:y})=>gv.createElement("div",{className:`current ${tL.TabsItem} ${a?tL.TabsItemActive:""}`,onClick:y},(b==null?void 0:b.name)||""),Fae=b=>{var a=b,{pathsDetail:y,dispatch:x,activied:E,setactivied:z,settpacti:ee,tpacti:te,setxxljac:ne,xxljac:ie,TabsData:ae=[],tplist:oe=[]}=a,le=Iae(a,["pathsDetail","dispatch","activied","setactivied","settpacti","tpacti","setxxljac","xxljac","TabsData","tplist"]),de,he,ye,Ae,me;const Ce=(0,fe.useRef)(null),[Ee,Be]=(0,fe.useState)(0),[Ne,Fe]=(0,fe.useState)(!1),ke=(0,fe.useMemo)(()=>(ae==null?void 0:ae.filter(Re=>![1,3,4].includes(Re==null?void 0:Re.key)))||[],[ae]);return(0,fe.useEffect)(()=>{Ce.current&&setTimeout(()=>{const Re=(0,Zt.ZR)(Ce.current,"rem",1,!0);Be(Re)},500)},[Ce.current,y==null?void 0:y.detail]),(0,fe.useEffect)(()=>{var Re,Oe;((Re=y==null?void 0:y.actionTabs)==null?void 0:Re.key)==="\u4FEE\u6539tab\u4FE1\u606F"&&(x({type:"pathsDetail/setActionTabs",payload:{key:""}}),z==null||z((Oe=y==null?void 0:y.actionTabs)==null?void 0:Oe.type),window.scrollTo({top:800,left:0,behavior:"smooth"}))},[(de=y==null?void 0:y.actionTabs)==null?void 0:de.key]),gv.createElement("div",{className:"flex c-white justify-between overflow_hidden",style:{height:Ne?"auto":"40rem",background:"#101C39",borderRadius:"22rem",backdropFilter:"blur(10rem)",fontSize:"16rem",lineHeight:"26rem"}},gv.createElement("div",{ref:Ce,className:"flex flex-wrap",style:{gap:"25rem 40rem"}},(me=((ye=(he=y==null?void 0:y.detail)==null?void 0:he.nodes)==null?void 0:ye.length)>1?(Ae=y==null?void 0:y.detail)==null?void 0:Ae.nodes.slice(1):[{isNull:!0}])==null?void 0:me.map((Re,Oe)=>{var ze;return gv.createElement(sL,{key:Re==null?void 0:Re.uuid,DataProps:Re!=null&&Re.isNull?Tae(Dae({},Re),{name:((ze=ae==null?void 0:ae.find(Le=>(Le==null?void 0:Le.key)==3))==null?void 0:ze.name)||(Re==null?void 0:Re.name)}):Re,isActive:Re!=null&&Re.isNull?E==3:E==3&&(te?(Re==null?void 0:Re.uuid)==te:Oe==0),onClick:()=>{ee==null||ee(Re==null?void 0:Re.uuid),z==null||z(3)}})}),ke==null?void 0:ke.map(Re=>gv.createElement(sL,{key:Re==null?void 0:Re.key,DataProps:Re,isActive:E==(Re==null?void 0:Re.key),onClick:()=>{z==null||z(Re==null?void 0:Re.key)}}))),Ee>44&&gv.createElement("div",{className:"current flex text-nowrap",style:{padding:"7rem 20rem"},onClick:()=>{Fe(!Ne)}},gv.createElement("a",null,Ne?"\u6536\u8D77":"\u5C55\u5F00"," ",gv.createElement(Pae.Z,{rotate:Ne?-180:0,rev:void 0}))))};var Nae=(0,st.connect)(({pathsDetail:b})=>({pathsDetail:b}))(Fae),aL=Me(60242),Lae=Me(16288),Oae="data:image/png;base64,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",Rae="data:image/png;base64,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",zae=Me(37426),kae=Me(19150),Hae=Me(55303),Uae=Me(92691),jae=Me(99755),Vae=Me(46016),Gae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABYCAYAAABxlTA0AAAAAXNSR0IArs4c6QAAFR5JREFUeF7dXWtsHNd1PrO7s49ZLpcrLkmtxNeSej/s1pAdo4mRsrVjR4mbtIVS1HWNwEllw6mNtIXR9h+BokgNB4nhBEokOIoauYYjIzb8ku3EqRDH8Y/EDZpasinJevH9WGq55L5nd29x7p27M7M7szP7otguIYggZ+7c+8253/nOuedeCmDzc5S8L+6Xw/tEAPitGDv7kHBAtnlr05cdIb8MDUGwf0AOuvGh82Iifw0S048Id8SbbrzNDQh22z+Z/c3Omz1bO/D63+Vmkn/tvfW83Xubue5p8k7PbbBlMA0AMrB3KoFIv36dPDf5WODgUjPtt/teWwA/sfRy4Nbwjh1pOkARJFmE3yTOXfjHni+stbODR8lRMSLfvr8oFoQYpCGBz5cBgqIIQZCgA7ylX8PiB+PCWKGd/WimbVsAP5P71T6X4PQkAO2IDa6QK+W+Grj1bDMPt7r3GfLeNh84gpOQgDkZn84sOAgihCEIg2IYVnKria95xz62autG/d4S4CfX3urt8QQHcJBoRSJaEEgwKoZhNpedejzwycV2dP5J8pZ/ixzcNSkm4JIcgxgkmAVrAB6FMAxCGGavxyYe33x3qh39aLbNmgCPk3HHKHx2/7S84qIAy2jBQK0HB9cn+guXxFc+GBfGS812pPL+4+SdPWtQ8E3Ic8BermrBEkgQBomCuwvC4CFS5mHP7R+2ug+taK8mwN/M/HxIcrrDExCDSRktKM04EAEWGcglRzH2t75PXmtFZ3gb3yRnwmHwDSG4l/DZ1HrTIMvMgtHB4SwapP1AkCNwNbt0bbzz3lgr+9GKtgwBRssNwx0Dkix1X4Fl4ZKcgDkcpDLA8uAgDP1iN0k7issx7ytTrbBkQohwHN69aVFOuyZAY70y1xAMYFQSZSsWw9ALXYUHxdv+RxAE0gpgWtVGFcBPJd/uG3J3R9JiyTkpxyj/TUKa0gN1MjJajzI4ETmQWZGfOIsXU9fnvt53+0IznXuK/GzQDd6eS1rrpeDqZTeCjABHlOePQgQyhdziP0ifnmrm+a2+twzwE+TlwHYYHvKD24MeGy0WaYFzL4KbltF61CmKXMwGGIQI/gMJVnPp/HJRuPqVnl11S7hxcso9KA/sm4ZlgdISxNQXWzFybsVsNoVhlxiGIdhUyorCugZBVi9EwAjNC8XoAHQG0EtzcOcgTb9HWmD8R+mXcaCMUxS/FCui4CLIEv2Hg54pZtYSgZErDwmC7Yjvu9m3dxQ9jgB3bPT51HaNmkCImaLBZ+NM2iVGwFMqrT7s/fRFq4Gv1++Fn5Jzv+cCh5NrTQQ2JjNJhuCi5WrBRYrgVkyBFplHZwOVICxKMEgtWoJCvlQcC/X/t53B4Azqk/t2oFND7sUZVKYlkwZYPMe5mDndUTECC4nptgdBdsaE1wgvkt/evAp5F/ItDmpOZhETgotfSAvlj4zQKn6c0gX7Qkvm0okBzED2EUfh3tDI7+x05nu5M/tSAvEwx4Z9SUNa5qFFZQu8H5yu9A6vk3RkD3tuO2fnue2+hlLEVG5qcLUod1FaUAZGY38TcHHGMjtmdKHyoUgtGC3ZL/hWegdg0k5S6EnyVm8PBAc+UBwbUyyKU61CQAWXMwe+YMrFinREqljKxaYeD9zdliConpdSdnKHyavS/NriwJoz10GpQUGXYlxhudyKOdBahxNyOJOSt2fq2JYDLCqx+KAkHJLvumkeks6yLKPgWlsvB1gr21DRIFX0i11tC4KsxqT9fZVM+yL5YddKPNufKRKPGf9SLVFBEUGQcsE0zDx30+frSiF+O/PGsMfZ0Y3gIv8i9yP3mjk2la7UYbA5pDg8xYoR6FKx9UFQPeBSDja6AcX+51In+uLpYiRXyDuoKZbpQgUXp2aAeEpul2/u9eGDC/WK/KfJaU9IDu3FYIbJMnRsZrqhmhq0fddacYRGd2GIQieJS4vnHhMO5uoFplXX1wyV7146GUnJxS06S1Yslzu2kKs0++Lwn8810qEj2f/cKTugA8Gl1msqy2qDq7hdasXobKlsE4MUZLEoJB/p/NS65K6NMKgJMFryny38eO9SKetBNUGnreLU0Kn0gpR7fvQz5+q1XOzIv5GfBTfLgW2cGniuo5p5NeDqZpLefhnILBmvzVMgH8/nrn/8T5vuSjRiBM3eY5muvG/ltVAinR5RHZ+SB6BqIXj5e0ONLdsczf1i/5pQdJdlmaIa9NxrZbl68Lk+r8xTdLm8ua962pu7NnsRlgDjjffPvLxzscDUBctkiRByBJPPjvxRQ1PvX1NvRnpF/xZODSxiq9QN9i2XD47eIStWzAxAybaFIUWKM1/ruG2+WYus935bAB+efVVKELIrnikKOIiQq5NI7uCEXSmm7dQhcsp5EIb3z8txJsuUqJHpBq3wtm+9eCWqSk0YRA2Bhu5KnmIz6Sie9l/84AXhS8V6QWrmelsA4wMenjsznMnnu3EYvpKw/P3o2NVGHvwd8ouoU3Zs4tzLIkfOvOVsh9p0VRqiwrKVK/UgM+GGMw2TUCxPEYaiQ7j+qO8TVxrpd6P32AZ4nJxxJRfcuyAP0DGQn2hkofFb5JSvB0Z2X5DnBZpIp9bLFoK02V46mJopomrrpgArmT4OhjYZhQBHoZssXU999PcDf5BpFLB677MNcL0NG11/lLy3Kytn/dWyrOJqQ3CrLbfSaiufya2YLnFhACKGwVt0pR7qPDDRivHYaWPdAP4GeS0UkcMj1bKMm2tjTk3LvSoLq0Pnsq3s8MQwpmEv/3NXY+rHDqjaa9YF4G+QX4Z6wT24KK+42PoeC4kNA+IWWa+qLDTLS0oY3evyF3KF1OQj6wByWwH+FnnPFwZhOAB+iS4/YcSmgMtkWWPUwDlayedZGBUWymCxirISjckgxfHlSoX07Mra1XZyclsAPkVOOZMQHdoqd4QSYpo6M7oEhXleRTVUWa9Ny2VJpmqHZowyz5uo2pgulCoA4/+oNOac6bjombj2pTZIuJYDfJS8ExmB7s0lcDjU5ScGsCG4zPWbqIZqXrYNLn1h+sQ85WNRVFZeNMtcIIEDXKXLEJt/yH+gobyK2TRqGcDfjr/UNSANDm5ySyJfdqKgYvpRWfJneheXoTQfUzlWHQZbOTTdIMs5bPZTHkZzZcEpA4MRunirUMgayciX5bnJvwuNrdTr0IyubxpgTDmGoSu6GUJ+BBCtlK6nKaVWfF2NrkpXZnlt0kJlpGakFtTBMVow+vBVGJYJVHMqSBt8JSYsBjEHB1PFbCoWcFx5TNjeVKqzYYBxJWJrdmxoxLsllIGMwBcpGbhotbhoypUCCyMMx20jUrPSu7Us10gbUx4XVZCRh7lFq0BL0Akucl5OxGeCL11rtKimIYCfIm/37YFIhIDDyYBVqUALLLdYBm/9Orc+taAQgV3K0dR4UNpQSmL11MEsWyCl4jVIzv1Nx/66i2rqAvgJ8m4gmvcOh91+NwLJHJfGYnVWq7VYOwAbR2q6lZRapFjBudWXKu1rnGplcojShshWqBFwWjmE3EzrPkRYbqCoxhbAWHEThaFhVpzCVp61Vos/w4wCLpSytE11oRO3RlM5ZaCJbSsGZY3QHH8NuJqL9BqDzQBJSdoj0Ji411IGfo+gY1HNxFT26vjevXkrR2i5onEM3h3YBt3hDBQYzyoVP4xnWeUNAsuTjTUXK206tbLA0q4Dmo3E0nI1cq3i+UaBilZtsDCblSJwcCngogQuIGQ6l4o9ENozVWtFxxTgp9dO94x6IltdoteJQHIdy9UBT5Brwa1pnTbB1Tq0yuyY4bSvmXWrBledFZrfGc4epjnQknk+Qws0ow6RVi9NZOMzj0VuMdwrUgUwVpZHoW94E3i8nGdVOmC5Ww4u1uvWHl+tpLlBXldpTDt1a057O+AaWi1vtbbj1ck6HdCKVZc5WoJ4KZU9n0pffXzzzbpK+zLAmO8dyjmiQ57ezjLPapyYFthyetyOx7ZzDR9veVXCAHwt0tS0zfWuTrFonm9pvSaUpNKGGnJrqYPX5OHPJvMrqxd7dl8ZFwS6MYcC/DQ53bNDHh4o0N08THJxXYssGysHCSrX1psQ11tiuxWDMTWofTB5gTpjqI4kecEYD1K4tOO8zChEBJdMyLnM9SmkDQHztJ+A0ZGy7KqwWlbExHQBraYyzRtUTLs6LNd2IGFpucYOTdtlPu3LYNsIdLTXlmlDVJelONCMlxVpByJ8THKXhB+RX+1zgtODmS5eWcP3pPGFSF0favKeVTBhzLv2ONcqkKhwWlV8buDU6gSX05JePzNHWI4GFYCxwtRRFLPC8+T9W+g+DJpKVBPh2rwBWi99c3bBtakY6JCVwu4qy6rk3MpIsMr7GTvUmlq6BiXomqfXmdCaUhen5jaYA8Scc7/oI8J38z+/5YK4LPD6YF4ZxvUBnZUmDzDlNDsA03wAT1DYcGp1Asxb5KxmHapb8bIZwAx87gi58xuVFID/hby2+5qckC7BnGYZR7+jhwLZsPWa0IICbku1rkE/DWeGXWowURVae9b2n+pmJTDBZP5WUUwLj5JnO3NAtl2UF+h+YH0BSOtpwbZDo2+1sedbcrpdajB4vl7q6Z0qBRhzGKIEw65O0iULH1OZdh/5j9CqvDa4BHGXShFWVmvssa3kGF/yYdfVoAZLWqqtGFjLxrPHso/lmWDcvyoBp9AdT+b3OqRC2B269lT091fKgQaWNMWzs1uTznw4BVmB7c2oFakZO5VawDEut7OeZmW5VoqhCWA5+gY5Dj2vq6+QF4D7iZN0El8M9sRneIlWVaj8ZfJD7+Xc6kDSke7EUFg9p0GvJs15ucZbr8FpOodZk+/NZ46p1ZZB499YOVVzh1bJubzw20/IatjXMXUiOpbVzhDTZM+d5GiwmE/1Jwolr5aX7WliPQuqa2lWA7MDQPXMMeXFKmDt0JLxNdoRccWAqU23y5ftdDinXxg1rj+2TFd+AZ7pjaWSkTUh60RwyxGdnsjM+VRT9WjNuxYvgPOqJohQZViTnEu5qxbncinGRJnP6S6GXZ6556J/vNhQulKL3x+SMy5H9tzWdEnuTkFRYFk0k6S6cmOZUOwkcOpxaGUHpL4ue1rXyqHqX5B+ViipSxDB7XKSLqdz+aaoNGOnANLWigYH+97Zo1J6k9yfLBYDlXngStrUyzGLqWkpx5T7NQ+p8uRVM6pSBZkATN9OtVPlV3MHhvrW53avOeOl6VcP3Gtrixp2qS6A+Rg+t3IklHIKW1eLeQ+3ZUYfGqvSUUOtqV+HYtBV9VioETtatya4bPmIOjFRzIVFmHluqL4tag0DjDfiBpl70sc2r5FCX7ZQcFZWqNt3bFa8q/y+Yoro3WiF+doBV0c1ev3BlQHybMDtXPjJ0N3zjWz0aQpgPqTD5Kh4NeHoT0B6E46LUYeNj13eNQXWjlOz4t1qYPEnSAcdgvN6JLll+tiB5s6Ha4gijOD7DPmRP7+cGci4in62r64G0JbgmgcxppZr12rLlqtmKcqySxSho+hKdQXdUydbdMhSywDmoP/p6r93xzKprXkHiPrCE81rsVwJbiMtKABzeBWOhU7BnffkPbMv7b5z2cb8s31JywHGJ2NZ1TvL0UjBKfcmC3mHbknfrvWaal0DarBrveU2mTaQRAAv8ZS8JcfigR3/NddoeVQttNsCMH/gIXLKfT2R7E/K2RDlZ77sZNojK2qoIbVom7UdJh69gB++FC+JYlwajE6/IFgXkNg22YoL2wowf9afLP0gsFokQ6vOvMfcCbaXFti5FhxcV85bcF57ZVd7j4ZsiYqw+2YR5DVw7uDH1OgzddXgVtuigXXaSh4puz811ZTeguPCeoC7rgDjw7648PxowpHtYmWtxnvjyiG28ub0QkrrKLWvtjZ1cEdGtwATz8qPtx+8ZNcwmr1uXSiCd/LRi6c9s8H0noVC3MES+5qVKMMwuDnOpXGYUguM4Pa5PKUeGT78zvb1Oz9iXQFGoP9q+Sf9K6VsH1a+88M++dlAHE415K5FCxZOTVEr2EK5bsHrX3imf2y6Waus5/51Bxgl3PnFffvmi0kRK4aMAhJTWlA0rOVSE+UZJb1I63xF6HZ45Z3Re86OC0LLDzK9YTLN7MF/OftqOCNmhnA/B8/K6a+1slwr61XkGF+ExMNDJP+1Y1vG1v3w0HW3YA7kX8y+uDsOGYmuZCthdavDYF5x0+fqSJ8cvuujeqZ2q669YQA/snimY7awtJOfMGiYIOKZdDuRmiZC5LkFvg2gJ+c+f2TvWLJVoNXTzg0DGDt538JrI7FiOqTuRjLoul2tq0na84wY1if0lbzx4zvuvFwPKK289oYCfOjcKXepy7F3Qcg58BhF8w2KVmlHlZO11ttHPKXObb1nj63jn6SofDk3FGDszINLP92yIK9E+IZFarBVfGEFsF53cGrY5O6aOz74qdlWWmS9bd1wgHFl5P6Fl/fN5lJuuqGGo2uXGiq4l+9H7hE68s+O3Hm20ZWIeoE0u/6GA4wd+0rizU3LqUyUBx/srPbamTFWt6Zex6hBOZhOlKDTQ678YOCe660CqtF2NgTA2Pn7Z97YuVhY61C3hZkMqaws9C9A59gcUvJ4g0eONQrkhrZg7Nxh8r4Un5zaPUf33Rkc1sFHYJCw18syEULS5o8aOXKs1eBiexvGgrEzX557Y3gpn+3WOTztqE1WQ1h1OTvVpMfpXz7R4JFj/+8Bxq1kF2bS++aKKSc/gVsnKEysl+8xjpT8xR3bxbN2Km7aAaZRmxvKgikXX30zkhQyW2ieQlueVYMaeFV5l9M9cyI6tu7HJ9Z6WRsOYJRtD0y9vneByB52UHPFUeea0XDHhtQQEaXsicGxD2+0LNtwgYbR2/96/EzXzGpqlFux7qB+5YbKfIPf6b50ItqaY2BaSR8bzoL54B6Yfn3HcjEfiCnnyWu5mMdt6Ngw39DjCayeGNg4fztD+4I2LMCHpt7zOYqruxcLq0JCORxaG37wU0p6iY/sdu38cDwa1VWWt9IKm2lrwwJMI7zLrw/Nl0iY7u7nJ3Dzike6XUqEgBBcOjl6x2QzILTz3g0N8CFCnJ6Zt/YtZjMuttzPj+dimhd38+SiY2dfEIR1PRO4nheyoQHGgaDDm0vkRuKFjLLziRWPhIiP+FyOyxvRsf2f4GBtJx+ceDeQErORTCnvx5/7HO5Ud8A5e6T3xqxS1GPB/wuaJX/J/HuWGgAAAABJRU5ErkJggg==",Xae=Me.p+"static/nltpbg.f01aad4b.png",Wae=Me.p+"static/nltpbg2.303fcb0b.png",JM={title:"title___m9Fww",bg:"bg___f9tLu"},Qae="data:image/png;base64,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",Zae=Me.p+"static/2.3612d2e5.png",Yae=Me.p+"static/3.0ae7bccf.png",Jae=Me.p+"static/4.d75cb058.png",Kae=Me.p+"static/5.89f1948f.png",qae=Me.p+"static/6.cc2d55ef.png",_ae=Me.p+"static/7.3afb9435.png",$ae=Me.p+"static/8.5401d4a7.png",eoe=Object.defineProperty,oL=Object.getOwnPropertySymbols,toe=Object.prototype.hasOwnProperty,noe=Object.prototype.propertyIsEnumerable,lL=(b,a,y)=>a in b?eoe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,roe=(b,a)=>{for(var y in a||(a={}))toe.call(a,y)&&lL(b,y,a[y]);if(oL)for(var y of oL(a))noe.call(a,y)&&lL(b,y,a[y]);return b};const ioe=({DataProps:b=[],baifenbi:a=1,pathsDetail:y,isShow:x,item:E,i:z})=>{const ee=(0,st.useParams)(),[te,ne]=(0,fe.useState)(0),ie=33,ae=Math.PI/2+z*(Math.PI*2/(b==null?void 0:b.length)),oe=ie*Math.cos(ae)/100,le=ie*Math.sin(ae)/100;return fe.createElement(pn.Z,{color:"#444FC2",title:x?null:fe.createElement("div",{style:{fontSize:`${14*a}rem`}},fe.createElement("div",null,"\u8986\u76D6",(E==null?void 0:E.children_count)||0,"\u4E2A\u5B50\u80FD\u529B\u3001",(E==null?void 0:E.subject_knowledge_graph_count)||0,"\u4E2A\u77E5\u8BC6\u70B9"),fe.createElement("div",{style:{marginTop:"10rem"}},"\u70B9\u51FB\u67E5\u770B\u8BE6\u60C5"))},fe.createElement("div",{className:`flex flex-col item-center justify-center absolute ${x?"":"current"} ${JM.title}`,onClick:()=>{x||(0,Zt.xg)(`/knowledgegraph/${ee==null?void 0:ee.pathId}/abilityMap/detail/${E==null?void 0:E.id}${window.location.search}`)},onMouseOver:()=>{x||ne(2)},onMouseOut:()=>{x||ne(0)},style:{left:`calc(50% - ${oe*100}%)`,top:`calc(50% - ${le*100}%)`,transform:"translate(-50%,-50%)",width:"20%",fontSize:`${(14+te)*a}rem`}},fe.createElement("div",{style:{opacity:"0.8"}},"\u4E3B\u80FD\u529B"),fe.createElement("div",{className:"multi_ellipsis1",style:{fontSize:`${18*a}rem`,fontWeight:500}},E==null?void 0:E.name),!(y!=null&&y.detail.can_managed)&&fe.createElement("div",null,"\u638C\u63E1\u7387 ",E==null?void 0:E.grasp_rate," %")))},soe=({DataProps:b=[],className:a="",style:y={},baifenbi:x=1,pathsDetail:E,isShow:z})=>{const ee=(0,fe.useMemo)(()=>{const te=["",Qae,Zae,Yae,Jae,Kae,qae,_ae,$ae];return te==null?void 0:te[(b==null?void 0:b.length)||0]},[b]);return fe.createElement("div",{className:`w-full h-full flex item-center justify-center relative overflow_hidden ${a} ${JM.bg}`,style:roe({backgroundImage:`url(${b!=null&&b.length?Wae:Xae})`,backgroundSize:"auto 100%",height:"100%"},y)},((b==null?void 0:b.length)||0)>0&&fe.createElement("img",{className:`absolute ${JM.bg}`,src:ee,style:{width:"95%",height:"95%",left:"50%",top:"50%",transform:`translate(-50%, -50%) ${[2,3,6].includes(b==null?void 0:b.length)?"rotate(90deg)":(b==null?void 0:b.length)==7?"rotate(25deg)":""}`}}),b==null?void 0:b.map((te,ne)=>fe.createElement(ioe,{key:ne,i:ne,item:te,DataProps:b,className:a,style:y,baifenbi:x,pathsDetail:E,isShow:z})),fe.createElement("div",{className:"text-center"},fe.createElement("div",{style:{fontSize:`${28*x}rem`}},"\u80FD\u529B\u76EE\u6807"),fe.createElement("div",{style:{fontSize:`${12*x}rem`}},"\u70B9\u51FB\u73AF\u56FE\u67E5\u770B\u80FD\u529B\u8BE6\u60C5")))};var aoe=(0,st.connect)(({pathsDetail:b})=>({pathsDetail:b}))(soe),ooe=Me.p+"static/bg.a1e8d200.png",Zb={ChangeBut:"ChangeBut___VXZuF",spin:"spin___YZs77"},loe=Me(77817),uoe=Object.defineProperty,coe=Object.defineProperties,doe=Object.getOwnPropertyDescriptors,uL=Object.getOwnPropertySymbols,foe=Object.prototype.hasOwnProperty,hoe=Object.prototype.propertyIsEnumerable,cL=(b,a,y)=>a in b?uoe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,dL=(b,a)=>{for(var y in a||(a={}))foe.call(a,y)&&cL(b,y,a[y]);if(uL)for(var y of uL(a))hoe.call(a,y)&&cL(b,y,a[y]);return b},fL=(b,a)=>coe(b,doe(a)),KM=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const poe=({pathsDetail:b,dispatch:a})=>{var y,x,E,z,ee,te,ne,ie,ae,oe,le,de,he,ye,Ae,me,Ce,Ee,Be,Ne;const{detail:Fe,actionTabs:ke}=b,Re=(0,st.useParams)(),[Oe]=(0,st.useSearchParams)(),ze=(0,fe.useRef)(null),[Le,_e]=(0,fe.useState)({}),[,Et,yt,jt]=(0,Cn.U)(lt.Eu,{subject_id:Re==null?void 0:Re.pathId}),[tn,cn]=(0,fe.useState)([{name:"\u638C\u63E1\u738759%\u4EE5\u4E0B",value:0,itemStyle:{color:"rgb(6,110,247)"}},{name:"\u638C\u63E1\u738760%\uFF5E79%",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u638C\u63E1\u738780%\uFF5E100%",value:0,itemStyle:{color:"rgb(223,209,38)"}}]),kt=[{title:"\u80FD\u529B\u76EE\u6807\u638C\u63E1\u6570",value:(y=jt==null?void 0:jt.data)==null?void 0:y.total_grasp_count,unit:"\u4E2A",img:Vae,bg:"rgba(18, 42, 159, .4)",ProgressTitle:"\u5B8C\u6210\u6574\u4F53\u80FD\u529B\u7387",percent:((x=jt==null?void 0:jt.data)==null?void 0:x.total_grasp_rate)||0,trailColor:"rgba(22, 115, 255, .1)",strokeColor:"#1673FF"},{title:"\u5DF2\u638C\u63E1\u5B50\u80FD\u529B\u6570",value:(E=jt==null?void 0:jt.data)==null?void 0:E.children_ability_goal_grasp_count,unit:"\u4E2A",img:Gae,bg:"rgba(0, 87, 76, .4)",ProgressTitle:"\u5B8C\u6210\u5B50\u80FD\u529B\u7387",percent:((z=jt==null?void 0:jt.data)==null?void 0:z.children_ability_goal_grasp_rate)||0,trailColor:"rgba(50, 199, 145, .1)",strokeColor:"#32C791"},{title:"\u8D44\u6E90\u5B8C\u6210\u6570",value:(ee=jt==null?void 0:jt.data)==null?void 0:ee.resource_complete_count,unit:"\u4E2A",img:Uae,bg:"rgba(108, 76, 0, .4)",ProgressTitle:"\u5B8C\u6210\u8D44\u6E90\u7387",percent:((te=jt==null?void 0:jt.data)==null?void 0:te.resource_complete_rate)||0,trailColor:"rgba(209, 157, 83, .1)",strokeColor:"#D19D53"},{title:"\u5DF2\u7ECF\u638C\u63E1\u77E5\u8BC6\u70B9",value:(ne=jt==null?void 0:jt.data)==null?void 0:ne.knowledge_grasp_count,unit:"\u4E2A",img:jae,bg:"rgba(0, 28, 106, .4)",ProgressTitle:"\u77E5\u8BC6\u70B9\u638C\u63E1\u7387",percent:((ie=jt==null?void 0:jt.data)==null?void 0:ie.knowledge_grasp_rate)||0,trailColor:"rgba(50, 199, 145, .1)",strokeColor:"#1673FF"}],pt=(...Vt)=>KM(void 0,[...Vt],function*(rn={}){yield yt(fL(dL({},rn),{subject_id:Re==null?void 0:Re.pathId}))}),An=()=>KM(void 0,null,function*(){a({type:"pathsDetail/getKnowledgeGraphs",payload:{graphable_type:Oe.get("type")==="classrooms"?"course":"subject",graphable_id:Re.pathId}})});return(0,fe.useEffect)(()=>{var Vt,rn;if((jt==null?void 0:jt.status)==0&&(Fe!=null&&Fe.can_managed)){const Bn=(rn=Object==null?void 0:Object.entries(((Vt=jt==null?void 0:jt.data)==null?void 0:Vt.study_grasp_hash)||{}))==null?void 0:rn.map(([hr,bt],on)=>({name:hr,value:bt,itemStyle:tn[on].itemStyle}));cn(Bn)}},[Fe==null?void 0:Fe.can_managed,jt]),(0,fe.useEffect)(()=>{Le!=null&&Le.id&&pt({id:Le==null?void 0:Le.id})},[Le==null?void 0:Le.id]),(0,fe.useEffect)(()=>{var Vt,rn,Bn;if(((Vt=Fe==null?void 0:Fe.ability_goals)==null?void 0:Vt.length)>0){const hr=(rn=Fe==null?void 0:Fe.ability_goals)==null?void 0:rn.find(bt=>bt==null?void 0:bt.is_choice);_e(fL(dL({},hr),{knowledge_graph_route_id:(Bn=jt==null?void 0:jt.data)==null?void 0:Bn.knowledge_graph_route_id})),!(hr!=null&&hr.id)&&a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u80FD\u529B\u56FE\u8C31"}}})}},[Fe==null?void 0:Fe.ability_goals,(ae=jt==null?void 0:jt.data)==null?void 0:ae.knowledge_graph_route_id]),fe.createElement(Mt.Z,{spinning:Et,wrapperClassName:Zb.spin,size:"large",tip:"\u6570\u636E\u7EDF\u8BA1\u4E2D\uFF0C\u8BF7\u7A0D\u540E"},((oe=Fe==null?void 0:Fe.ability_goals)==null?void 0:oe.length)>0?fe.createElement("div",{className:"flex w-full c-white overflow_hidden",style:{padding:"20rem 40rem",fontSize:"16rem"}},fe.createElement("div",{className:" minW-0 flex flex-col",style:{flex:"1.5",gap:"10rem"}},fe.createElement("div",{className:" flex-1",style:{padding:"20rem",background:"rgba(32, 47, 79, .34)",borderRadius:"12rem"}},fe.createElement("div",{className:"flex item-center gap-10px-rem"},fe.createElement("div",{className:"flex item-center rounded-full text-14px-rem mr-auto",style:{background:"#101C39",padding:"0 0 0 20rem",gap:"10rem"}},fe.createElement("div",{className:"c-grey-eee text-nowrap "},"\u5F53\u524D\u8DEF\u5F84"),fe.createElement(pn.Z,{title:(Le==null?void 0:Le.name)||"",placement:"topLeft"},fe.createElement("div",{className:"multi_ellipsis1"},(Le==null?void 0:Le.name)||"")),fe.createElement("div",{className:`current flex item-center text-nowrap ${Zb.ChangeBut}`,onClick:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u80FD\u529B\u56FE\u8C31"}}})}},fe.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),(Fe==null?void 0:Fe.can_managed)&&fe.createElement("div",{className:"text-12px-rem c-white flex item-center gap-10px-rem"},fe.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"}}})}},fe.createElement("span",{className:"iconfont icon-tianjiatixing",style:{fontSize:"12rem"}})," \u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"),fe.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"}}})}},fe.createElement("span",{className:"iconfont icon-bianji13",style:{fontSize:"12rem"}})," \u7F16\u8F91\u80FD\u529B\u56FE\u8C31"),fe.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{rt.default.confirm({title:"\u5220\u9664\u80FD\u529B\u56FE\u8C31",icon:null,centered:!0,width:"500rem",content:fe.createElement(fe.Fragment,null,fe.createElement("div",{className:"text-16px-rem c-black ",style:{marginBottom:"10rem"}},"\u8BF7\u786E\u8BA4\u662F\u5426\u9700\u8981\u5220\u9664\u300A",Le==null?void 0:Le.name,"\u300B\u80FD\u529B\u56FE\u8C31\uFF1F\u5220\u9664\u540E\uFF0C\u5C06\u65E0\u6CD5\u6062\u590D\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002"),fe.createElement(loe.Z,{ref:Vt=>ze.current=Vt})),okText:"\u786E\u8BA4\u5220\u9664",onOk:()=>KM(void 0,null,function*(){if(ze.current.onVerify())return Promise.reject();const Vt=yield(0,lt.pf)({id:Le==null?void 0:Le.id,subject_id:Re==null?void 0:Re.pathId});(Vt==null?void 0:Vt.status)===0&&(nt.ZP.success("\u5220\u9664\u6210\u529F"),An())})})}},fe.createElement("span",{className:"iconfont icon-shanchu17",style:{fontSize:"12rem"}})," \u5220\u9664\u80FD\u529B\u56FE\u8C31"))),fe.createElement("div",{className:"flex",style:{marginTop:"30rem",gap:"10rem"}},fe.createElement("div",{className:"minW-0 flex",style:{flex:"1.5"}},[{title:"\u4E3B\u80FD\u529B\uFF08\u4E2A\uFF09",value:(le=jt==null?void 0:jt.data)==null?void 0:le.total_count,img:Oae},{title:"\u5B50\u80FD\u529B\uFF08\u4E2A\uFF09",value:(de=jt==null?void 0:jt.data)==null?void 0:de.total_children_count,img:Rae}].map((Vt,rn)=>fe.createElement("div",{key:rn,className:"flex-1 minW-0 flex flex-col item-center",style:{gap:"10rem"}},fe.createElement("div",{style:{fontSize:"30rem",textShadow:"0 1rem 10rem #0096FC"}},Vt==null?void 0:Vt.value),fe.createElement("div",{style:{fontSize:"14rem"}},Vt==null?void 0:Vt.title),fe.createElement("img",{src:Vt==null?void 0:Vt.img,width:"166rem",height:"160rem",style:{width:"166rem",height:"160rem",marginTop:"-15rem"}})))),fe.createElement("div",{className:"flex-1 minW-0 flex flex-col justify-between",style:{gap:"70rem"}},[{title:"\u8986\u76D6\u77E5\u8BC6\u70B9",value:(he=jt==null?void 0:jt.data)==null?void 0:he.total_knowledge_count,unit:"\u4E2A",percent:(ye=jt==null?void 0:jt.data)==null?void 0:ye.knowledge_rate,percenttitle:"\u5360\u603B\u77E5\u8BC6\u70B9"},{title:"\u8986\u76D6\u8D44\u6E90\u6570",value:(Ae=jt==null?void 0:jt.data)==null?void 0:Ae.total_resource_count,unit:"\u4E2A",percent:(me=jt==null?void 0:jt.data)==null?void 0:me.resource_rate,percenttitle:"\u5360\u603B\u8D44\u6E90\u6570"}].map((Vt,rn)=>fe.createElement("div",{key:rn,className:"flex-1 minW-0 flex relative",style:{gap:"20rem"}},fe.createElement("div",{className:"flex flex-col justify-between",style:{marginLeft:"40rem"}},fe.createElement("div",{style:{fontSize:"14rem",whiteSpace:"nowrap"}},Vt==null?void 0:Vt.title),fe.createElement("div",{style:{fontSize:"26rem",textShadow:(Vt==null?void 0:Vt.value)==0?"":"0 1rem 10rem #0096FC",opacity:(Vt==null?void 0:Vt.value)==0?.9:1}},Vt==null?void 0:Vt.value,fe.createElement("span",{style:{fontSize:"14rem"}},Vt==null?void 0:Vt.unit))),fe.createElement(aL.Z,{type:"dashboard",percent:Vt==null?void 0:Vt.percent,gapDegree:178,strokeWidth:10,className:"absolute",style:{right:"30rem",top:"15rem"},trailColor:"#1E2E72",strokeColor:{"0%":"#0E5FFF","50%":"#2DE1FD","100%":"#2DE1FD"},strokeLinecap:"round",format:Bn=>fe.createElement("div",{className:"c-white",style:{fontSize:"12rem",textAlign:"center",marginTop:"-35rem"}},Bn,"%",fe.createElement("br",null),fe.createElement("br",null),Vt==null?void 0:Vt.percenttitle)})))))),fe.createElement("div",{className:"flex-1",style:{padding:"20rem",background:"rgba(32, 47, 79, .34)",borderRadius:"12rem"}},fe.createElement("div",{style:{marginBottom:"20rem"}},"\u4E3B\u80FD\u529B\u5B66\u4E60\u60C5\u51B5"),Fe!=null&&Fe.can_managed?fe.createElement("div",{className:"flex",style:{gap:"10rem"}},fe.createElement("div",{className:"minW-0 flex flex-col flex-1",style:{gap:"13rem"}},[{title:"\u5B66\u4E60\u4EBA\u6570",value:(Ce=jt==null?void 0:jt.data)==null?void 0:Ce.study_count,unit:"",img:zae,bg:"rgba(68, 95, 232, 0.4)"},{title:"\u5B66\u4E60\u5B8C\u6210\u7387",value:(Ee=jt==null?void 0:jt.data)==null?void 0:Ee.complete_rate,unit:"%",img:kae,bg:"rgba(182, 129, 0, .4)"},{title:"\u5B66\u4E60\u638C\u63E1\u7387",value:(Be=jt==null?void 0:jt.data)==null?void 0:Be.grasp_rate,unit:"%",img:Hae,bg:"rgba(6, 145, 127, .4)"}].map((Vt,rn)=>fe.createElement("div",{key:rn,className:"relative",style:{borderRadius:"6rem",padding:"20rem",background:Vt==null?void 0:Vt.bg}},fe.createElement("div",{style:{fontSize:"14rem",color:"rgba(255,255,255,.8)"}},Vt==null?void 0:Vt.title),fe.createElement("div",{style:{fontSize:"26rem"}},Vt==null?void 0:Vt.value,fe.createElement("span",{style:{fontSize:"14rem"}},Vt==null?void 0:Vt.unit)),fe.createElement("img",{className:"absolute",style:{right:"6rem",bottom:"6rem"},height:"35rem",src:Vt==null?void 0:Vt.img})))),fe.createElement("div",{className:"flex-2 minW-0"},fe.createElement(Lae.Z,{dataSource:tn,legend:{top:null,icon:"roundRect",bottom:10,left:"center",itemWidth:14,itemGap:15,textStyle:{color:"#fff"},formatter:Vt=>Vt}}))):fe.createElement("div",{style:{display:"grid",gap:"20rem",gridTemplateColumns:"1fr 1fr"}},kt==null?void 0:kt.map((Vt,rn)=>fe.createElement("div",{key:rn,className:"relative c-white",style:{padding:"22rem 30rem",background:Vt==null?void 0:Vt.bg,borderRadius:"6rem"}},fe.createElement("img",{src:Vt==null?void 0:Vt.img,width:"43rem",height:"43rem",className:"absolute",style:{right:"22rem",top:"22rem"}}),fe.createElement("div",{style:{fontSize:"14rem"}},Vt==null?void 0:Vt.title),fe.createElement("div",{className:" blod",style:{marginTop:"10rem",fontSize:"26rem",lineHeight:"26rem"}},Vt==null?void 0:Vt.value,fe.createElement("span",{style:{fontSize:"14rem"}},Vt==null?void 0:Vt.unit)),fe.createElement("div",{style:{fontSize:"12rem",marginTop:"26rem"}},fe.createElement("div",null,Vt==null?void 0:Vt.ProgressTitle,Vt==null?void 0:Vt.percent,"%"),fe.createElement(aL.Z,{percent:Vt==null?void 0:Vt.percent,showInfo:!1,trailColor:Vt==null?void 0:Vt.trailColor,strokeColor:Vt==null?void 0:Vt.strokeColor,style:{marginBottom:"0",marginLeft:"0"}}))))))),fe.createElement("div",{className:"flex-2 minW-0 flex item-center justify-center relative"},(Fe==null?void 0:Fe.can_managed)&&fe.createElement("div",{className:"absolute flex item-center gap-16px-rem",style:{top:0,right:0}},Oe.get("type")==="classrooms"&&fe.createElement("div",{className:`current flex item-center ${Zb.ChangeBut}`,onClick:()=>{st.history.push(`/knowledgegraph/${Re==null?void 0:Re.pathId}/statistics/abilitymap/${Le==null?void 0:Le.id}?type=classrooms&tabs=5`)}},fe.createElement("span",{style:{fontSize:"14rem"}},"\u6570\u636E\u7EDF\u8BA1")),fe.createElement("div",{className:`current flex item-center ${Zb.ChangeBut}`,onClick:()=>{(0,Zt.xg)(`/knowledgegraph/${Re.pathId}/abilityMap/edit/${Le==null?void 0:Le.id}${window.location.search}`)}},fe.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u7F16\u8F91\u80FD\u529B\u76EE\u6807"),Oe.get("type")!=="classrooms"&&fe.createElement("div",{className:`current flex item-center ${Zb.ChangeBut}`,onClick:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"goal"}}}})}},fe.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u53D1\u9001\u81F3\u8BFE\u5802")),fe.createElement("img",{src:ooe,className:"absolute",width:"1532rem",height:"100%",style:{left:"50%",pointerEvents:"none",transform:"translateX(-61%)"}}),fe.createElement(aoe,{DataProps:((Ne=jt==null?void 0:jt.data)==null?void 0:Ne.ability_goals)||[],className:"c-white",style:{backgroundSize:"auto 100%",height:"710rem",width:"710rem"}}))):fe.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},fe.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},(Fe==null?void 0:Fe.can_managed)&&fe.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{a({type:"pathsDetail/save",payload:{actionTabs:{key:"\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"}}})}},"\u521B\u5EFA\u80FD\u529B\u56FE\u8C31")),fe.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\u662F\u4EC0\u4E48\uFF1F "),fe.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u80FD\u529B\u56FE\u8C31\u901A\u8FC7\u6574\u5408\u8BFE\u7A0B\u57F9\u517B\u76EE\u6807\u4E0E\u77E5\u8BC6\u70B9\uFF0C\u6784\u5EFA\u4EE5\u80FD\u529B\u57F9\u517B\u4E3A\u6838\u5FC3\u7684\u6210\u957F\u5730\u56FE\u3002\u5B83\u6E05\u6670\u6807\u6CE8\u6BCF\u4E00\u95E8\u8BFE\u7A0B\u9700\u638C\u63E1\u7684\u6838\u5FC3\u80FD\u529B\uFF0C\u5C06\u62BD\u8C61\u7684\u77E5\u8BC6\u8F6C\u5316\u4E3A\u53EF\u91CF\u5316\u3001\u53EF\u8FFD\u8E2A\u7684\u80FD\u529B\u5750\u6807\uFF0C\u8BA9\u5B66\u4E60\u6709\u65B9\u5411\uFF0C\u6210\u957F\u6709\u8F68\u8FF9\u3002",fe.createElement("img",{className:"absolute",src:Me(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),fe.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},fe.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},fe.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),fe.createElement("div",{className:"w-full flex justify-between gap-32px-rem relative"},fe.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",left:"200rem",top:"80rem"},src:Me(79989)}),fe.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",right:"210rem",top:"80rem"},src:Me(73486)}),[{title:"\u591A\u7EF4\u80FD\u529B\u56FE\u8C31",desc:"\u4E00\u4E2A\u8BFE\u7A0B\u4E0B\u652F\u6301\u6784\u5EFA\u591A\u4E2A\u80FD\u529B\u56FE\u8C31\uFF0C\u5B66\u751F\u53EF\u4EE5\u6839\u636E\u4E2A\u4EBA\u4E13\u4E1A\u3001\u5B66\u4E60\u60C5\u51B5\u7B49\u56E0\u7D20\uFF0C\u9009\u62E9\u4E0D\u540C\u7684\u80FD\u529B\u56FE\u8C31\u8FDB\u884C\u5B66\u4E60\u3002",img:Me(4212)},{title:"\u6570\u636E\u5173\u8054",desc:"\u652F\u6301\u5C06\u5B66\u751F\u5728\u6559\u5B66\u8BFE\u5802\u3001\u77E5\u8BC6\u56FE\u8C31\u3001\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u6C47\u603B\u7EDF\u8BA1\uFF0C\u5206\u6790\u51FA\u5B66\u751F\u5728\u80FD\u529B\u56FE\u8C31\u4E2D\u7684\u638C\u63E1\u60C5\u51B5\u3002",img:Me(50356)},{title:"\u80FD\u529B\u5B66\u4E60\u8DEF\u5F84",desc:"\u652F\u6301\u6839\u636E\u80FD\u529B\u56FE\u8C31\u4E2D\u7684\u4E3B\u80FD\u529B\u548C\u5B50\u80FD\u529B\u751F\u6210\u5BF9\u5E94\u5B66\u4E60\u8DEF\u5F84\uFF0C\u4FBF\u4E8E\u5B66\u751F\u6309\u7167\u5BF9\u7528\u8DEF\u5F84\u8FDB\u884C\u5B66\u4E60\u3002",img:Me(40362)}].map((Vt,rn)=>fe.createElement("div",{key:rn,className:`flex flex-col item-center ${rn!=1?"mt-64px-rem":""}`},fe.createElement("img",{src:Vt==null?void 0:Vt.img,style:{width:"127rem",height:"119rem"}}),fe.createElement("div",{className:"px-20px-rem pb-20px-rem",style:{background:`url(${Me(14760)}) 0 0 / 100% 100% no-repeat`}},Vt==null?void 0:Vt.title),fe.createElement("div",{className:"mt-6px-rem",style:{width:"20rem",height:"10rem",background:"#7A99DD",clipPath:"polygon(100% 0, 0 0, 50% 100%)",WebkitClipPath:"polygon(100% 0, 0 0, 50% 100%)"}}),fe.createElement("div",{className:"px-20px-rem py-20px-rem mt-6px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",color:"rgba(255,255,255,0.8)",width:"236rem",height:"153rem"}},Vt==null?void 0:Vt.desc))))),fe.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},fe.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u80FD\u529B\u56FE\u8C31\u6CE8\u610F\u4E8B\u9879 "),fe.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:fe.createElement("div",{className:"flex flex-col gap-4px-rem"},fe.createElement("div",{className:"text-16px-rem"},"\u80FD\u529B\u56FE\u8C31\u6784\u5EFA"),fe.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u80FD\u529B\u56FE\u8C31\u57FA\u4E8E\u5B66\u4E60\u8DEF\u5F84\u548C\u77E5\u8BC6\u56FE\u8C31\u521B\u5EFA\uFF0C\u5728\u521B\u5EFA\u80FD\u529B\u56FE\u8C31\u524D\uFF0C\u9700\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u548C\u5B66\u4E60\u8DEF\u5F84\u3002"))},{desc:fe.createElement("div",{className:"flex flex-col gap-4px-rem"},fe.createElement("div",{className:"text-16px-rem"},"\u5B50\u80FD\u529B/\u4E3B\u80FD\u529B\u638C\u63E1\u5EA6\u8BA1\u7B97"),fe.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},fe.createElement("span",{className:"c-white"},"\u5B50\u80FD\u529B\uFF1A"),"\u6839\u636E\u5F53\u524D\u5173\u8054\u7684\u8D44\u6E90\u638C\u63E1\u8FDB\u884C\u8BA1\u7B97\uFF0C\u6240\u6709\u8D44\u6E90\u638C\u63E1\u7387\u8FBE\u5230\u8BBE\u7F6E\u6570\u503C\u540E, \u8868\u793A\u638C\u63E1\u6539\u8BE5\u80FD\u529B\uFF1B",fe.createElement("br",null),fe.createElement("span",{className:"c-white"},"\u4E3B\u80FD\u529B\uFF1A"),"\u6839\u636E\u8BE5\u4E3B\u80FD\u529B\u4E0B\u7684\u5B50\u80FD\u529B\u8FDB\u884C\u8BA1\u7B97\uFF0C\u6240\u6709\u5B50\u80FD\u529B\u638C\u63E1\u540E\uFF0C\u8868\u793A\u4E3B\u80FD\u529B\u638C\u63E1\u3002"))},{desc:fe.createElement("div",{className:"flex flex-col gap-4px-rem"},fe.createElement("div",{className:"text-16px-rem"},"\u4E3B\u80FD\u529B/\u5B50\u80FD\u529B\u6570\u91CF\u9650\u5236"),fe.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u4E00\u4E2A\u80FD\u529B\u56FE\u8C31\u4E2D\u6700\u591A\u521B\u5EFA8\u4E2A\u4E3B\u80FD\u529B\uFF0C\u4E3B\u80FD\u529B\u4E0B\u4E0D\u9650\u5236\u5B50\u80FD\u529B\u6570\u91CF\uFF0C\u5B50\u80FD\u529B\u4E0B\u4E0D\u9650\u5236\u8D44\u6E90\u77E5\u8BC6\u70B9\u5173\u8054\u6570\u91CF\u3002"))}].map((Vt,rn)=>fe.createElement("div",{key:rn,className:"px-16px-rem py-22px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},fe.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(rn+1).toString().padStart(2,"0")),fe.createElement("div",{className:"flex-1 minW-0"},Vt==null?void 0:Vt.desc))))))),(ke==null?void 0:ke.key)=="\u5207\u6362\u80FD\u529B\u56FE\u8C31"&&fe.createElement(df.E_,{type:"goal",open:(ke==null?void 0:ke.key)=="\u5207\u6362\u80FD\u529B\u56FE\u8C31",title:"\u9009\u62E9\u80FD\u529B\u56FE\u8C31",currentSeleteData:Le,onFinish:()=>{An()}}),((ke==null?void 0:ke.key)=="\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"||(ke==null?void 0:ke.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31")&&fe.createElement(df.DZ,{currentSeleteData:Le,onFinish:()=>{An()}}))};var moe=(0,st.connect)(({pathsDetail:b})=>({pathsDetail:b}))(poe),goe=Me(22797),Qo={top_content:"top_content___O4EKG",top_content_user:"top_content_user___CC2nM",user_img:"user_img___tdbt6",user_name:"user_name___uawJi",user_info:"user_info___oCHyE",top_content_item:"top_content_item___cPfTY",top_content_item_right:"top_content_item_right____eALl",top_content_item_right_title:"top_content_item_right_title___xNZTQ",top_content_item_right_value:"top_content_item_right_value___E4YyP",top_content_line:"top_content_line___UiRZT",tabs_content:"tabs_content___atjiT",tabs_content_item:"tabs_content_item___WAo03",tabs_content_item_active:"tabs_content_item_active___kSHPA",setting_button:"setting_button___FRpix"},qM={flex_box_center:"flex_box_center___pj7zA",flex_space_between:"flex_space_between___KLJ6R",flex_box_vertical_center:"flex_box_vertical_center___u4EyD",flex_box_center_end:"flex_box_center_end___yMtf6",flex_box_column:"flex_box_column___rBiiO",myForm:"myForm___czOKi",table_box:"table_box___c14mq",TableStyle:"TableStyle___awF96"},Sl=Me(59301),voe=Object.defineProperty,hL=Object.getOwnPropertySymbols,Aoe=Object.prototype.hasOwnProperty,yoe=Object.prototype.propertyIsEnumerable,pL=(b,a,y)=>a in b?voe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,dC=(b,a)=>{for(var y in a||(a={}))Aoe.call(a,y)&&pL(b,y,a[y]);if(hL)for(var y of hL(a))yoe.call(a,y)&&pL(b,y,a[y]);return b},xoe=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const{RangePicker:dhe}=Tl.default;var boe=({setInfo:b})=>{var a,y;const[x]=it.default.useForm(),E=(0,fe.useRef)(!0),[z]=(0,st.useSearchParams)(),ee=(0,st.useParams)(),[te,ne]=(0,fe.useState)(!1),[ie,ae]=(0,fe.useState)(1),[oe,le]=(0,fe.useState)({}),[de,he]=(0,fe.useState)({real_name:"",course_group_id:"",role_sub_type:"",time:null}),ye=[{title:"\u5E8F\u53F7",dataIndex:"order",key:"order",align:"center",render:(me,Ce,Ee)=>`${(ie-1)*10+Ee+1}`,width:50},{title:"\u59D3\u540D",dataIndex:"real_name",key:"real_name",width:250,ellipsis:!0,align:"left",render:(me,Ce)=>Sl.createElement("span",null,me||"--")},{title:"\u5B66\u53F7",dataIndex:"student_id",key:"student_id",ellipsis:!0,width:200,align:"left",render:me=>Sl.createElement("span",null,me||"--")},{title:"\u73ED\u7EA7",dataIndex:"course_group_name",key:"course_group_name",ellipsis:!0,width:120,align:"left",render:(me,Ce,Ee)=>Sl.createElement("span",null,me||"--")},{title:"\u9884\u8B66\u65E5\u671F",dataIndex:"created_at",key:"created_at",ellipsis:!0,align:"left",width:200,render:me=>Sl.createElement("span",null,me||"--")},{title:"\u9884\u8B66\u4FE1\u606F",dataIndex:"extra",key:"extra",ellipsis:!0,align:"left",render:me=>Sl.createElement("span",null,me||"--")},{title:"\u64CD\u4F5C",key:"action",align:"left",width:120,render:(me,Ce)=>Sl.createElement("span",{style:{color:"#18D6FF",cursor:"pointer"},onClick:()=>{(0,Zt.xg)(`/knowledgegraph/${ee==null?void 0:ee.pathId}?type=${z.get("type")}&tabs=7&uuid=${z.get("uuid")}&studentId=${Ce==null?void 0:Ce.user_id}&studentTab=0`)}},"\u67E5\u770B")}].filter(me=>!!me);(0,fe.useEffect)(()=>{if(E.current){E.current=!1;return}ie==1?Ae():ae(1)},[de]),(0,fe.useEffect)(()=>{(0,Ks.bg)()&&Ae()},[ie,(0,Ks.bg)()]);const Ae=()=>xoe(void 0,null,function*(){var me,Ce,Ee,Be;ne(!0);const Ne=yield(0,Nt.ZP)(`/api/courses/${ee==null?void 0:ee.pathId}/student_situations.json`,{method:"get",params:{role_type:"study_progress",page:ie,limit:10,real_name:de==null?void 0:de.real_name,course_group_id:de==null?void 0:de.course_group_id,role_sub_type:de==null?void 0:de.role_sub_type,start_time:(Ce=(me=de==null?void 0:de.time)==null?void 0:me[0])==null?void 0:Ce.format("YYYY-MM-DD"),end_time:(Be=(Ee=de==null?void 0:de.time)==null?void 0:Ee[1])==null?void 0:Be.format("YYYY-MM-DD")}});(Ne==null?void 0:Ne.status)===0&&(le(Ne==null?void 0:Ne.data),b(Ne==null?void 0:Ne.data)),ne(!1)});return Sl.createElement(Mt.Z,{spinning:te},Sl.createElement("div",{className:"mt20"},Sl.createElement(it.default,{layout:"inline",form:x,className:qM.myForm,initialValues:{real_name:"",course_group_id:"",role_sub_type:"",start_time:null,end_time:null}},Sl.createElement(it.default.Item,{name:"real_name",label:"\u59D3\u540D",colon:!1},Sl.createElement(ct.default.Search,{style:{width:200},autocomplete:"off",onSearch:me=>{de.real_name=me,he(dC({},de))},onPressEnter:me=>{de.real_name=me.target.value,he(dC({},de))}})),Sl.createElement(it.default.Item,{name:"course_group_id",label:"\u73ED\u7EA7",colon:!1,className:"ml20"},Sl.createElement(ho.default,{style:{width:200},onChange:me=>{de.course_group_id=me,he(dC({},de))}},Sl.createElement(ho.default.Option,{value:""},"\u5168\u90E8"),(a=oe==null?void 0:oe.course_groups)==null?void 0:a.map(me=>Sl.createElement(ho.default.Option,{value:me==null?void 0:me.id,key:me==null?void 0:me.id},me==null?void 0:me.name)))),Sl.createElement(it.default.Item,{name:"role_sub_type",label:"\u9884\u8B66\u7C7B\u578B",colon:!1,className:"ml20"},Sl.createElement(ho.default,{style:{width:200},onChange:me=>{de.role_sub_type=me,he(dC({},de))}},Sl.createElement(ho.default.Option,{value:""},"\u5168\u90E8"),(y=oe==null?void 0:oe.situation_types)==null?void 0:y.map(me=>Sl.createElement(ho.default.Option,{value:me==null?void 0:me.role_sub_type,key:me==null?void 0:me.role_sub_type},me==null?void 0:me.name))))),Sl.createElement("div",{className:qM.table_box},Sl.createElement(fd.default,{className:`mt-14px-rem ${qM.TableStyle} flex-1`,locale:{emptyText:Sl.createElement(bl.Z,null)},columns:ye,pagination:!1,dataSource:(oe==null?void 0:oe.list)||[]}),Sl.createElement(Ps.Z,{className:"mt20",showTotal:me=>Sl.createElement("span",{className:"mr10",style:{color:"#fff"}},"\u5171",Sl.createElement("span",{className:"c-blue"}," ",me," "),"\u6761\u6570\u636E"),defaultCurrent:1,defaultPageSize:10,current:ie||1,showSizeChanger:!1,showQuickJumper:!0,hideOnSinglePage:!0,total:oe==null?void 0:oe.total_count,onChange:me=>{ae(me)}}))))},sl={type_style:"type_style___bCBMr",type_title:"type_title___X2z0K",type_title_active:"type_title_active___Rkldh",box:"box___J4O5Y",box_title:"box_title___jIM3k",box_title_text:"box_title_text___kNiNm",box_content:"box_content___igWCo",box_item:"box_item___WdNGE",item_tag:"item_tag___BN5JO",item_tag_good:"item_tag_good___Cn7Nr",item_icon:"item_icon___R4_LT",item_right:"item_right___Dr9g8",item_title:"item_title___SW2Ca",item_content:"item_content___eJHfJ",item_time:"item_time___st64A",item_go:"item_go___lezjx"},Eoe=Object.defineProperty,mL=Object.getOwnPropertySymbols,woe=Object.prototype.hasOwnProperty,Coe=Object.prototype.propertyIsEnumerable,gL=(b,a,y)=>a in b?Eoe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Poe=(b,a)=>{for(var y in a||(a={}))woe.call(a,y)&&gL(b,y,a[y]);if(mL)for(var y of mL(a))Coe.call(a,y)&&gL(b,y,a[y]);return b};const hhe=b=>React.createElement("svg",Poe({width:32,height:31,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u8003\u8BD5"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M21.195 8.005H9.237v2.657h11.958V8.005Zm0 5.315H9.237v2.657h11.958V13.32Z",fill:"#00EFEF"}),React.createElement("path",{d:"M27.906.032H5.316c-.73 0-1.328.598-1.328 1.329v21.26H1.33c-.73 0-1.328.598-1.328 1.329v2.657c0 2.193 1.86 3.987 4.185 3.987h18.204c2.326 0 4.186-1.993 4.186-4.452V8.005h3.986c.731 0 1.33-.598 1.33-1.33V4.019C31.825 1.826 30.097.032 27.905.032ZM4.12 27.936c-.864 0-1.528-.598-1.528-1.329V25.28h15.28v1.262c0 .465.067.93.266 1.395H4.121Zm19.732-1.794c0 .997-.664 1.794-1.528 1.794h-.133c-.93 0-1.66-.598-1.66-1.395V23.95c0-.731-.599-1.329-1.33-1.329H6.58V2.69h17.274v23.452Zm5.315-20.795h-2.657V2.69h1.328c.731 0 1.33.598 1.33 1.328v1.33Z",fill:"#52A9FF"})));var Boe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMjEuMTk1IDguMDA1SDkuMjM3djIuNjU3aDExLjk1OFY4LjAwNVptMCA1LjMxNUg5LjIzN3YyLjY1N2gxMS45NThWMTMuMzJaIiBmaWxsPSIjMDBFRkVGIi8+PHBhdGggZD0iTTI3LjkwNi4wMzJINS4zMTZjLS43MyAwLTEuMzI4LjU5OC0xLjMyOCAxLjMyOXYyMS4yNkgxLjMzYy0uNzMgMC0xLjMyOC41OTgtMS4zMjggMS4zMjl2Mi42NTdjMCAyLjE5MyAxLjg2IDMuOTg3IDQuMTg1IDMuOTg3aDE4LjIwNGMyLjMyNiAwIDQuMTg2LTEuOTkzIDQuMTg2LTQuNDUyVjguMDA1aDMuOTg2Yy43MzEgMCAxLjMzLS41OTggMS4zMy0xLjMzVjQuMDE5QzMxLjgyNSAxLjgyNiAzMC4wOTcuMDMyIDI3LjkwNS4wMzJaTTQuMTIgMjcuOTM2Yy0uODY0IDAtMS41MjgtLjU5OC0xLjUyOC0xLjMyOVYyNS4yOGgxNS4yOHYxLjI2MmMwIC40NjUuMDY3LjkzLjI2NiAxLjM5NUg0LjEyMVptMTkuNzMyLTEuNzk0YzAgLjk5Ny0uNjY0IDEuNzk0LTEuNTI4IDEuNzk0aC0uMTMzYy0uOTMgMC0xLjY2LS41OTgtMS42Ni0xLjM5NVYyMy45NWMwLS43MzEtLjU5OS0xLjMyOS0xLjMzLTEuMzI5SDYuNThWMi42OWgxNy4yNzR2MjMuNDUyWm01LjMxNS0yMC43OTVoLTIuNjU3VjIuNjloMS4zMjhjLjczMSAwIDEuMzMuNTk4IDEuMzMgMS4zMjh2MS4zM1oiIGZpbGw9IiM1MkE5RkYiLz48L2c+PC9zdmc+",Soe=Object.defineProperty,vL=Object.getOwnPropertySymbols,Moe=Object.prototype.hasOwnProperty,Doe=Object.prototype.propertyIsEnumerable,AL=(b,a,y)=>a in b?Soe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Toe=(b,a)=>{for(var y in a||(a={}))Moe.call(a,y)&&AL(b,y,a[y]);if(vL)for(var y of vL(a))Doe.call(a,y)&&AL(b,y,a[y]);return b};const phe=b=>React.createElement("svg",Toe({width:28,height:32,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u8BFE\u5802\u8D44\u6E90"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M.023 8.014V23.98l13.684 7.982 13.684-7.982V8.014L13.707.032.023 8.014ZM25.11 22.84 13.707 29.68 2.304 22.839V9.155l11.403-6.842 11.404 6.842v13.684Z",fill:"#52A9FF"}),React.createElement("path",{d:"M14.989 17.253v7.723a.998.998 0 0 1-.997.999.978.978 0 0 1-.999-1v-7.722l-6.98-4.028a.996.996 0 0 1 .243-1.824.98.98 0 0 1 .753.107l6.986 3.991 6.926-3.99a.978.978 0 0 1 1.357.357.997.997 0 0 1-.362 1.357l-6.925 3.992v.04-.001h-.002Z",fill:"#00EFEF"})));var Ioe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNLjAyMyA4LjAxNFYyMy45OGwxMy42ODQgNy45ODIgMTMuNjg0LTcuOTgyVjguMDE0TDEzLjcwNy4wMzIuMDIzIDguMDE0Wk0yNS4xMSAyMi44NCAxMy43MDcgMjkuNjggMi4zMDQgMjIuODM5VjkuMTU1bDExLjQwMy02Ljg0MiAxMS40MDQgNi44NDJ2MTMuNjg0WiIgZmlsbD0iIzUyQTlGRiIvPjxwYXRoIGQ9Ik0xNC45ODkgMTcuMjUzdjcuNzIzYS45OTguOTk4IDAgMCAxLS45OTcuOTk5Ljk3OC45NzggMCAwIDEtLjk5OS0xdi03LjcyMmwtNi45OC00LjAyOGEuOTk2Ljk5NiAwIDAgMSAuMjQzLTEuODI0Ljk4Ljk4IDAgMCAxIC43NTMuMTA3bDYuOTg2IDMuOTkxIDYuOTI2LTMuOTlhLjk3OC45NzggMCAwIDEgMS4zNTcuMzU3Ljk5Ny45OTcgMCAwIDEtLjM2MiAxLjM1N2wtNi45MjUgMy45OTJ2LjA0LS4wMDFoLS4wMDJaIiBmaWxsPSIjMDBFRkVGIi8+PC9nPjwvc3ZnPg==",Foe=Object.defineProperty,yL=Object.getOwnPropertySymbols,Noe=Object.prototype.hasOwnProperty,Loe=Object.prototype.propertyIsEnumerable,xL=(b,a,y)=>a in b?Foe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Ooe=(b,a)=>{for(var y in a||(a={}))Noe.call(a,y)&&xL(b,y,a[y]);if(yL)for(var y of yL(a))Loe.call(a,y)&&xL(b,y,a[y]);return b};const mhe=b=>React.createElement("svg",Ooe({width:32,height:30,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u89C6\u9891\u76F4\u64AD"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M26.036 0H5.917C2.663 0 0 2.663 0 5.917V23.67c0 3.254 2.663 5.917 5.917 5.917h20.119c3.254 0 5.917-2.663 5.917-5.917V5.917C31.953 2.663 29.29 0 26.036 0ZM2.366 22.485V7.101h27.22v15.384H2.366ZM5.918 2.367h20.119c1.538 0 2.84 1.006 3.313 2.367H2.604c.473-1.361 1.775-2.367 3.313-2.367Zm20.119 24.852H5.917c-1.538 0-2.84-1.006-3.313-2.367h26.804c-.532 1.361-1.834 2.367-3.372 2.367Z",fill:"#52A9FF"}),React.createElement("path",{d:"m20.296 12.781-4.852-2.9a2.188 2.188 0 0 0-1.243-.354 2.374 2.374 0 0 0-2.367 2.366v5.858c0 .415.119.829.355 1.243.296.533.829.947 1.48 1.065.177.06.414.06.591.06.415 0 .829-.119 1.243-.356l4.852-2.9c.355-.177.592-.472.828-.827.592-1.125.237-2.604-.887-3.255Zm-1.243 2.012-4.852 2.9v-5.859l4.852 2.959Z",fill:"#00EFEF"})));var Roe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMjYuMDM2IDBINS45MTdDMi42NjMgMCAwIDIuNjYzIDAgNS45MTdWMjMuNjdjMCAzLjI1NCAyLjY2MyA1LjkxNyA1LjkxNyA1LjkxN2gyMC4xMTljMy4yNTQgMCA1LjkxNy0yLjY2MyA1LjkxNy01LjkxN1Y1LjkxN0MzMS45NTMgMi42NjMgMjkuMjkgMCAyNi4wMzYgMFpNMi4zNjYgMjIuNDg1VjcuMTAxaDI3LjIydjE1LjM4NEgyLjM2NlpNNS45MTggMi4zNjdoMjAuMTE5YzEuNTM4IDAgMi44NCAxLjAwNiAzLjMxMyAyLjM2N0gyLjYwNGMuNDczLTEuMzYxIDEuNzc1LTIuMzY3IDMuMzEzLTIuMzY3Wm0yMC4xMTkgMjQuODUySDUuOTE3Yy0xLjUzOCAwLTIuODQtMS4wMDYtMy4zMTMtMi4zNjdoMjYuODA0Yy0uNTMyIDEuMzYxLTEuODM0IDIuMzY3LTMuMzcyIDIuMzY3WiIgZmlsbD0iIzUyQTlGRiIvPjxwYXRoIGQ9Im0yMC4yOTYgMTIuNzgxLTQuODUyLTIuOWEyLjE4OCAyLjE4OCAwIDAgMC0xLjI0My0uMzU0IDIuMzc0IDIuMzc0IDAgMCAwLTIuMzY3IDIuMzY2djUuODU4YzAgLjQxNS4xMTkuODI5LjM1NSAxLjI0My4yOTYuNTMzLjgyOS45NDcgMS40OCAxLjA2NS4xNzcuMDYuNDE0LjA2LjU5MS4wNi40MTUgMCAuODI5LS4xMTkgMS4yNDMtLjM1Nmw0Ljg1Mi0yLjljLjM1NS0uMTc3LjU5Mi0uNDcyLjgyOC0uODI3LjU5Mi0xLjEyNS4yMzctMi42MDQtLjg4Ny0zLjI1NVptLTEuMjQzIDIuMDEyLTQuODUyIDIuOXYtNS44NTlsNC44NTIgMi45NTlaIiBmaWxsPSIjMDBFRkVGIi8+PC9nPjwvc3ZnPg==",zoe=Object.defineProperty,bL=Object.getOwnPropertySymbols,koe=Object.prototype.hasOwnProperty,Hoe=Object.prototype.propertyIsEnumerable,EL=(b,a,y)=>a in b?zoe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Uoe=(b,a)=>{for(var y in a||(a={}))koe.call(a,y)&&EL(b,y,a[y]);if(bL)for(var y of bL(a))Hoe.call(a,y)&&EL(b,y,a[y]);return b};const ghe=b=>React.createElement("svg",Uoe({width:32,height:31,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u5B66\u4E60\u8DEF\u5F84"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M12.665.01c1.286 0 2.445.54 3.265 1.407l.237-.233A4.478 4.478 0 0 1 18.923.018l.272-.008h9.796a2.857 2.857 0 0 1 2.857 2.857V24.09a4.49 4.49 0 0 1-4.49 4.49l-6.623.002-.253.192a7.72 7.72 0 0 1-4.101 1.437l-.409.01a7.726 7.726 0 0 1-4.51-1.447l-.257-.192H4.501A4.49 4.49 0 0 1 .02 24.366l-.008-.275V2.867A2.858 2.858 0 0 1 2.869.01h9.796ZM28.99 2.459h-9.796c-1.126 0-2.04.914-2.04 2.04l.001 23.14a5.28 5.28 0 0 0 2.33-1.197l.348-.308h7.526c1.127 0 2.041-.915 2.041-2.041V2.868a.408.408 0 0 0-.408-.408l-.002-.001Zm-16.326 0H2.869a.408.408 0 0 0-.408.408V24.09c0 1.127.914 2.041 2.04 2.041l7.609.002.347.307a5.297 5.297 0 0 0 2.248 1.18V4.5l-.01-.207a2.04 2.04 0 0 0-2.032-1.833h.002Z",fill:"#52A9FF"}),React.createElement("path",{d:"M5.726 4.5c.676 0 1.224.548 1.224 1.224v8.98a1.224 1.224 0 0 1-2.449 0v-8.98c0-.676.549-1.225 1.225-1.225ZM9.832 4.51c.676 0 1.224.547 1.224 1.224v4.081a1.224 1.224 0 0 1-2.448 0V5.734c0-.677.548-1.225 1.224-1.225Z",fill:"#00EFEF"})));var joe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTIuNjY1LjAxYzEuMjg2IDAgMi40NDUuNTQgMy4yNjUgMS40MDdsLjIzNy0uMjMzQTQuNDc4IDQuNDc4IDAgMCAxIDE4LjkyMy4wMThsLjI3Mi0uMDA4aDkuNzk2YTIuODU3IDIuODU3IDAgMCAxIDIuODU3IDIuODU3VjI0LjA5YTQuNDkgNC40OSAwIDAgMS00LjQ5IDQuNDlsLTYuNjIzLjAwMi0uMjUzLjE5MmE3LjcyIDcuNzIgMCAwIDEtNC4xMDEgMS40MzdsLS40MDkuMDFhNy43MjYgNy43MjYgMCAwIDEtNC41MS0xLjQ0N2wtLjI1Ny0uMTkySDQuNTAxQTQuNDkgNC40OSAwIDAgMSAuMDIgMjQuMzY2bC0uMDA4LS4yNzVWMi44NjdBMi44NTggMi44NTggMCAwIDEgMi44NjkuMDFoOS43OTZaTTI4Ljk5IDIuNDU5aC05Ljc5NmMtMS4xMjYgMC0yLjA0LjkxNC0yLjA0IDIuMDRsLjAwMSAyMy4xNGE1LjI4IDUuMjggMCAwIDAgMi4zMy0xLjE5N2wuMzQ4LS4zMDhoNy41MjZjMS4xMjcgMCAyLjA0MS0uOTE1IDIuMDQxLTIuMDQxVjIuODY4YS40MDguNDA4IDAgMCAwLS40MDgtLjQwOGwtLjAwMi0uMDAxWm0tMTYuMzI2IDBIMi44NjlhLjQwOC40MDggMCAwIDAtLjQwOC40MDhWMjQuMDljMCAxLjEyNy45MTQgMi4wNDEgMi4wNCAyLjA0MWw3LjYwOS4wMDIuMzQ3LjMwN2E1LjI5NyA1LjI5NyAwIDAgMCAyLjI0OCAxLjE4VjQuNWwtLjAxLS4yMDdhMi4wNCAyLjA0IDAgMCAwLTIuMDMyLTEuODMzaC4wMDJaIiBmaWxsPSIjNTJBOUZGIi8+PHBhdGggZD0iTTUuNzI2IDQuNWMuNjc2IDAgMS4yMjQuNTQ4IDEuMjI0IDEuMjI0djguOThhMS4yMjQgMS4yMjQgMCAwIDEtMi40NDkgMHYtOC45OGMwLS42NzYuNTQ5LTEuMjI1IDEuMjI1LTEuMjI1Wk05LjgzMiA0LjUxYy42NzYgMCAxLjIyNC41NDcgMS4yMjQgMS4yMjR2NC4wODFhMS4yMjQgMS4yMjQgMCAwIDEtMi40NDggMFY1LjczNGMwLS42NzcuNTQ4LTEuMjI1IDEuMjI0LTEuMjI1WiIgZmlsbD0iIzAwRUZFRiIvPjwvZz48L3N2Zz4=",Voe=Object.defineProperty,wL=Object.getOwnPropertySymbols,Goe=Object.prototype.hasOwnProperty,Xoe=Object.prototype.propertyIsEnumerable,CL=(b,a,y)=>a in b?Voe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Woe=(b,a)=>{for(var y in a||(a={}))Goe.call(a,y)&&CL(b,y,a[y]);if(wL)for(var y of wL(a))Xoe.call(a,y)&&CL(b,y,a[y]);return b};const vhe=b=>React.createElement("svg",Woe({width:29,height:34,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u4F5C\u4E1A"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M19.505.75a2.818 2.818 0 0 1 2.812 2.646l.005.172v.295l2.916.001a3.75 3.75 0 0 1 3.615 3.465l.01.2V29.59a3.747 3.747 0 0 1-3.819 3.66l-20.657-.002A3.75 3.75 0 0 1 .76 29.584V7.522a3.747 3.747 0 0 1 3.82-3.659H7.7v-.295A2.818 2.818 0 0 1 10.345.755l.172-.005h8.987Zm-11.8 5.539H4.434a1.32 1.32 0 0 0-1.247 1.24V29.57a1.32 1.32 0 0 0 1.25 1.253h20.754a1.32 1.32 0 0 0 1.247-1.24V7.541a1.326 1.326 0 0 0-1.394-1.252h-2.727v.018a2.818 2.818 0 0 1-2.64 2.64l-.172.006h-8.987a2.818 2.818 0 0 1-2.813-2.646v-.018Zm11.8-3.113h-8.987a.392.392 0 0 0-.384.313l-.008.079v2.567c0 .19.134.348.313.384l.079.008h8.987c.189 0 .347-.134.383-.313l.008-.079V3.568a.392.392 0 0 0-.391-.392Z",fill:"#52A9FF"}),React.createElement("path",{d:"M22.477 20.707H7.392a.963.963 0 0 1 0-1.926h15.085a.963.963 0 0 1 0 1.926Zm-6.824-5.136H7.392a.963.963 0 0 1 0-1.925h8.261a.963.963 0 0 1 0 1.925Zm3.852 9.629H7.392a.963.963 0 0 1 0-1.926h12.113a.963.963 0 0 1 0 1.926Z",fill:"#00EFEF"})));var Qoe="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjkiIGhlaWdodD0iMzQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTkuNTA1Ljc1YTIuODE4IDIuODE4IDAgMCAxIDIuODEyIDIuNjQ2bC4wMDUuMTcydi4yOTVsMi45MTYuMDAxYTMuNzUgMy43NSAwIDAgMSAzLjYxNSAzLjQ2NWwuMDEuMlYyOS41OWEzLjc0NyAzLjc0NyAwIDAgMS0zLjgxOSAzLjY2bC0yMC42NTctLjAwMkEzLjc1IDMuNzUgMCAwIDEgLjc2IDI5LjU4NFY3LjUyMmEzLjc0NyAzLjc0NyAwIDAgMSAzLjgyLTMuNjU5SDcuN3YtLjI5NUEyLjgxOCAyLjgxOCAwIDAgMSAxMC4zNDUuNzU1bC4xNzItLjAwNWg4Ljk4N1ptLTExLjggNS41MzlINC40MzRhMS4zMiAxLjMyIDAgMCAwLTEuMjQ3IDEuMjRWMjkuNTdhMS4zMiAxLjMyIDAgMCAwIDEuMjUgMS4yNTNoMjAuNzU0YTEuMzIgMS4zMiAwIDAgMCAxLjI0Ny0xLjI0VjcuNTQxYTEuMzI2IDEuMzI2IDAgMCAwLTEuMzk0LTEuMjUyaC0yLjcyN3YuMDE4YTIuODE4IDIuODE4IDAgMCAxLTIuNjQgMi42NGwtLjE3Mi4wMDZoLTguOTg3YTIuODE4IDIuODE4IDAgMCAxLTIuODEzLTIuNjQ2di0uMDE4Wm0xMS44LTMuMTEzaC04Ljk4N2EuMzkyLjM5MiAwIDAgMC0uMzg0LjMxM2wtLjAwOC4wNzl2Mi41NjdjMCAuMTkuMTM0LjM0OC4zMTMuMzg0bC4wNzkuMDA4aDguOTg3Yy4xODkgMCAuMzQ3LS4xMzQuMzgzLS4zMTNsLjAwOC0uMDc5VjMuNTY4YS4zOTIuMzkyIDAgMCAwLS4zOTEtLjM5MloiIGZpbGw9IiM1MkE5RkYiLz48cGF0aCBkPSJNMjIuNDc3IDIwLjcwN0g3LjM5MmEuOTYzLjk2MyAwIDAgMSAwLTEuOTI2aDE1LjA4NWEuOTYzLjk2MyAwIDAgMSAwIDEuOTI2Wm0tNi44MjQtNS4xMzZINy4zOTJhLjk2My45NjMgMCAwIDEgMC0xLjkyNWg4LjI2MWEuOTYzLjk2MyAwIDAgMSAwIDEuOTI1Wm0zLjg1MiA5LjYyOUg3LjM5MmEuOTYzLjk2MyAwIDAgMSAwLTEuOTI2aDEyLjExM2EuOTYzLjk2MyAwIDAgMSAwIDEuOTI2WiIgZmlsbD0iIzAwRUZFRiIvPjwvZz48L3N2Zz4=",bo=Me(59301),_M=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const fC={\u5B66\u4E60\u8DEF\u5F84:joe,\u8BFE\u5802\u4F5C\u4E1A:Qoe,\u5728\u7EBF\u8003\u8BD5:Boe,\u8BFE\u5802\u8D44\u6E90:Ioe,\u89C6\u9891\u76F4\u64AD:Roe},Zoe=({user:b,setInfo:a})=>{var y,x,E,z,ee,te,ne,ie;const[ae]=(0,st.useSearchParams)(),oe=(0,st.useParams)(),[le,de]=(0,fe.useState)(""),[he,ye]=(0,fe.useState)(!1),[Ae,me]=(0,fe.useState)({});(0,fe.useEffect)(()=>{Ce()},[le]);const Ce=()=>_M(void 0,null,function*(){var Ee;ye(!0);const Be=yield(0,Nt.ZP)(`/api/courses/${oe==null?void 0:oe.pathId}/student_situations/student_index.json`,{method:"get",params:{role_type:"study_progress",role_sub_type:le,user_id:ae.get("studentId")||((Ee=b==null?void 0:b.userInfo)==null?void 0:Ee.user_id)}});(Be==null?void 0:Be.status)===0&&(me(Be==null?void 0:Be.data),a(Be==null?void 0:Be.data)),ye(!1)});return bo.createElement("div",{style:{paddingBottom:"20px"}},bo.createElement("div",{className:sl.type_style},bo.createElement("div",{className:sl.type_title},"\u9884\u8B66\u7C7B\u578B"),(x=((y=Ae==null?void 0:Ae.situation_types)==null?void 0:y.length)>0?[{name:"\u5168\u90E8",role_sub_type:""},...Ae==null?void 0:Ae.situation_types]:[{name:"\u5168\u90E8",role_sub_type:""}])==null?void 0:x.map((Ee,Be)=>bo.createElement("div",{onClick:()=>de(Ee.role_sub_type),key:Be,className:(Ee==null?void 0:Ee.role_sub_type)==le?sl.type_title_active:sl.type_title},Ee.name))),((E=Ae==null?void 0:Ae.no_handle_list)==null?void 0:E.length)>0&&bo.createElement("div",{className:sl.box},bo.createElement("div",{className:sl.box_title},bo.createElement("img",{src:Me(30711),style:{width:"8px",height:"16px"}}),bo.createElement("div",{className:sl.box_title_text},"\u672A\u5904\u7406")),bo.createElement("div",{className:sl.box_content},(z=Ae==null?void 0:Ae.no_handle_list)==null?void 0:z.map((Ee,Be)=>bo.createElement("div",{className:sl.box_item,key:Be},bo.createElement("div",{className:sl.item_tag},"\u672A\u5904\u7406"),bo.createElement("div",{className:sl.item_icon},bo.createElement("img",{src:fC==null?void 0:fC[Ee==null?void 0:Ee.record_type]})),bo.createElement("div",{className:sl.item_right},bo.createElement("div",{className:sl.item_title},Ee==null?void 0:Ee.record_type),bo.createElement("div",{className:sl.item_content},Ee==null?void 0:Ee.extra),bo.createElement("div",{className:sl.item_time},Ee==null?void 0:Ee.created_at,bo.createElement("div",{className:sl.item_go,onClick:()=>_M(void 0,null,function*(){if(!ae.get("studentId")){const Ne=yield(0,Nt.ZP)(`/api/courses/${oe==null?void 0:oe.pathId}/student_situations/update_status.json`,{method:"post",body:{id:Ee==null?void 0:Ee.id}})}window.open(Ee==null?void 0:Ee.url)})},"\u524D\u5F80\u5B66\u4E60"))))))),((ee=Ae==null?void 0:Ae.handle_list)==null?void 0:ee.length)>0&&bo.createElement("div",{className:sl.box,style:{marginTop:"20px"}},bo.createElement("div",{className:sl.box_title},bo.createElement("img",{src:Me(30711),style:{width:"8px",height:"16px"}}),bo.createElement("div",{className:sl.box_title_text},"\u5DF2\u5904\u7406")),bo.createElement("div",{className:sl.box_content},(te=Ae==null?void 0:Ae.handle_list)==null?void 0:te.map((Ee,Be)=>bo.createElement("div",{className:sl.box_item,key:Be,style:{border:"1px solid rgba(65, 185, 149, 0.35)"}},bo.createElement("div",{className:sl.item_tag_good},"\u5DF2\u5904\u7406"),bo.createElement("div",{className:sl.item_icon},bo.createElement("img",{src:fC==null?void 0:fC[Ee==null?void 0:Ee.record_type]})),bo.createElement("div",{className:sl.item_right},bo.createElement("div",{className:sl.item_title},Ee==null?void 0:Ee.record_type),bo.createElement("div",{className:sl.item_content},Ee==null?void 0:Ee.extra),bo.createElement("div",{className:sl.item_time},Ee==null?void 0:Ee.created_at,bo.createElement("div",{className:sl.item_go,onClick:()=>_M(void 0,null,function*(){window.open(Ee==null?void 0:Ee.url)})},"\u524D\u5F80\u5B66\u4E60"))))))),((ne=Ae==null?void 0:Ae.no_handle_list)==null?void 0:ne.length)==0&&((ie=Ae==null?void 0:Ae.handle_list)==null?void 0:ie.length)==0&&bo.createElement(bl.Z,null))};var Yoe=(0,st.connect)(({user:b})=>({user:b}))(Zoe),tf={weak:"weak___DH3Z9",waveDom:"waveDom___UK7xx",waveDom_poor:"waveDom_poor___xDdDI",wave:"wave___nzHXf",waveDom_average:"waveDom_average___PLvUf",waveDom_fine:"waveDom_fine___RuZNo",legend:"legend___ckKLX",legend_text_poor:"legend_text_poor___KuUv3",legend_text_average:"legend_text_average___KthU9",legend_text_fine:"legend_text_fine___RwZNq",legend_value:"legend_value___uvSOl",name_span:"name_span___SDyy5"},lc=Me(59301),Joe=Object.defineProperty,PL=Object.getOwnPropertySymbols,Koe=Object.prototype.hasOwnProperty,qoe=Object.prototype.propertyIsEnumerable,BL=(b,a,y)=>a in b?Joe(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,_oe=(b,a)=>{for(var y in a||(a={}))Koe.call(a,y)&&BL(b,y,a[y]);if(PL)for(var y of PL(a))qoe.call(a,y)&&BL(b,y,a[y]);return b},$oe=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const ele=({user:b,openInfo:a,openKnowledge:y,setInfo:x})=>{var E,z;const[ee]=(0,st.useSearchParams)(),te=(0,st.useParams)(),[ne,ie]=(0,fe.useState)(!1),[ae,oe]=(0,fe.useState)({}),le=(0,Ks.bg)()&&(ee.get("studentId")||!(0,Ks.GJ)()),[de,he]=(0,fe.useState)({bad1:"",bad2:"",norm1:"",norm2:"",good1:"",good2:""});(0,fe.useEffect)(()=>{ye()},[]);const ye=()=>$oe(void 0,null,function*(){var Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re,Oe,ze,Le,_e,Et,yt,jt,tn,cn,kt,pt,An,Vt,rn,Bn,hr,bt,on,dn,Qn;ie(!0);const Un=le?`/api/courses/${te==null?void 0:te.pathId}/student_situations/student_index.json`:`/api/courses/${te==null?void 0:te.pathId}/student_situations.json`,Kn=yield(0,Nt.ZP)(Un,{method:"get",params:{role_type:"knowledge_grasp",user_id:ee.get("studentId")||((Ae=b==null?void 0:b.userInfo)==null?void 0:Ae.user_id)}});if((Kn==null?void 0:Kn.status)===0){oe(Kn==null?void 0:Kn.data),x(Kn==null?void 0:Kn.data);for(let Nr in(me=Kn==null?void 0:Kn.data)==null?void 0:me.settings)((Be=(Ee=(Ce=Kn==null?void 0:Kn.data)==null?void 0:Ce.settings)==null?void 0:Ee[Nr])==null?void 0:Be.role_sub_type)=="weak_kp"&&(de.bad1=(ke=(Fe=(Ne=Kn==null?void 0:Kn.data)==null?void 0:Ne.settings)==null?void 0:Fe[Nr])==null?void 0:ke.min_value,de.bad2=(ze=(Oe=(Re=Kn==null?void 0:Kn.data)==null?void 0:Re.settings)==null?void 0:Oe[Nr])==null?void 0:ze.max_value),((Et=(_e=(Le=Kn==null?void 0:Kn.data)==null?void 0:Le.settings)==null?void 0:_e[Nr])==null?void 0:Et.role_sub_type)=="norm_kp"&&(de.norm1=(tn=(jt=(yt=Kn==null?void 0:Kn.data)==null?void 0:yt.settings)==null?void 0:jt[Nr])==null?void 0:tn.min_value,de.norm2=(pt=(kt=(cn=Kn==null?void 0:Kn.data)==null?void 0:cn.settings)==null?void 0:kt[Nr])==null?void 0:pt.max_value),((rn=(Vt=(An=Kn==null?void 0:Kn.data)==null?void 0:An.settings)==null?void 0:Vt[Nr])==null?void 0:rn.role_sub_type)=="good_kp"&&(de.good1=(bt=(hr=(Bn=Kn==null?void 0:Kn.data)==null?void 0:Bn.settings)==null?void 0:hr[Nr])==null?void 0:bt.min_value,de.good2=(Qn=(dn=(on=Kn==null?void 0:Kn.data)==null?void 0:on.settings)==null?void 0:dn[Nr])==null?void 0:Qn.max_value),he(_oe({},de))}ie(!1)});return lc.createElement(Mt.Z,{spinning:ne},lc.createElement("div",{className:tf.weak},lc.createElement("div",{className:tf.legend},lc.createElement("div",{className:tf.legend_text_poor}),lc.createElement("div",{className:tf.legend_value},"\u8584\u5F31\u70B9\uFF08",de==null?void 0:de.bad1,"%~",de==null?void 0:de.bad2,"%\uFF09"),lc.createElement("div",{className:tf.legend_text_average}),lc.createElement("div",{className:tf.legend_value},"\u638C\u63E1\u4E00\u822C\uFF08",de==null?void 0:de.norm1,"%~",de==null?void 0:de.norm2,"%\uFF09"),lc.createElement("div",{className:tf.legend_text_fine}),lc.createElement("div",{className:tf.legend_value},"\u638C\u63E1\u826F\u597D\uFF08",de==null?void 0:de.good1,"%~",de==null?void 0:de.good2,"%\uFF09")),((E=ae==null?void 0:ae.list)==null?void 0:E.length)>0?lc.createElement("div",{className:tf.waveDom},(z=ae==null?void 0:ae.list)==null?void 0:z.map(Ae=>lc.createElement(pn.Z,{title:lc.createElement("div",{style:{color:"#fff"}},lc.createElement("div",{style:{fontWeight:600}},Ae==null?void 0:Ae.knowledge_name),!le&&lc.createElement("div",{style:{margin:"5px 0"}},"\u5B66\u4E60\u4EBA\u6570\uFF1A",Ae==null?void 0:Ae.user_count),lc.createElement("div",null,"\u638C\u63E1\u7387\uFF1A",Ae==null?void 0:Ae.rate,"%"))},lc.createElement("div",{style:{cursor:"pointer"},onClick:()=>{le?y(Ae):a(Ae)},className:(Ae==null?void 0:Ae.rate)<(de==null?void 0:de.norm1)?tf.waveDom_poor:(Ae==null?void 0:Ae.rate)>(de==null?void 0:de.norm2)?tf.waveDom_fine:tf.waveDom_average},!!(Ae!=null&&Ae.rate)&&lc.createElement("div",{style:{top:`calc(100% - ${Ae==null?void 0:Ae.rate}%)`},className:tf.wave}),lc.createElement("span",{className:tf.name_span,style:{fontSize:"12px"}},Ae==null?void 0:Ae.knowledge_name))))):lc.createElement(bl.Z,null)))};var tle=(0,st.connect)(({user:b})=>({user:b}))(ele),$M={flex_box_center:"flex_box_center___Pkd4t",flex_space_between:"flex_space_between___ssHC9",flex_box_vertical_center:"flex_box_vertical_center___mDdC9",flex_box_center_end:"flex_box_center_end___dz9ne",flex_box_column:"flex_box_column___Q1Kq7",myForm:"myForm___M_LXD",table_box:"table_box___hnXuC",TableStyle:"TableStyle___yZoBi"},Vu=Me(59301),nle=Object.defineProperty,SL=Object.getOwnPropertySymbols,rle=Object.prototype.hasOwnProperty,ile=Object.prototype.propertyIsEnumerable,ML=(b,a,y)=>a in b?nle(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,e5=(b,a)=>{for(var y in a||(a={}))rle.call(a,y)&&ML(b,y,a[y]);if(SL)for(var y of SL(a))ile.call(a,y)&&ML(b,y,a[y]);return b},sle=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const{RangePicker:Ahe}=Tl.default;var ale=({setInfo:b})=>{var a;const[y]=it.default.useForm(),x=(0,fe.useRef)(!0),E=(0,st.useParams)(),[z,ee]=(0,fe.useState)(!1),[te,ne]=(0,fe.useState)(1),[ie,ae]=(0,fe.useState)({}),[oe,le]=(0,fe.useState)({real_name:"",course_group_id:"",time:null}),de=[{title:"\u5E8F\u53F7",dataIndex:"order",key:"order",align:"center",render:(ye,Ae,me)=>`${(te-1)*10+me+1}`,width:50},{title:"\u59D3\u540D",dataIndex:"real_name",key:"real_name",width:250,ellipsis:!0,align:"left",render:(ye,Ae)=>Vu.createElement("span",null,ye||"--")},{title:"\u5B66\u53F7",dataIndex:"student_id",key:"student_id",ellipsis:!0,width:200,align:"left",render:ye=>Vu.createElement("span",null,ye||"--")},{title:"\u73ED\u7EA7",dataIndex:"course_group_name",key:"course_group_name",ellipsis:!0,width:200,align:"left",render:(ye,Ae,me)=>Vu.createElement("span",null,ye||"--")},{title:"\u9884\u8B66\u65E5\u671F",dataIndex:"created_at",key:"created_at",ellipsis:!0,align:"left",width:200,render:ye=>Vu.createElement("span",null,ye||"--")},{title:"\u9884\u8B66\u4FE1\u606F",dataIndex:"extra",key:"extra",ellipsis:!0,align:"left",render:ye=>Vu.createElement("span",null,ye||"--")}].filter(ye=>!!ye);(0,fe.useEffect)(()=>{if(x.current){x.current=!1;return}te==1?he():ne(1)},[oe]),(0,fe.useEffect)(()=>{he()},[te]);const he=()=>sle(void 0,null,function*(){var ye,Ae,me,Ce;ee(!0);const Ee=yield(0,Nt.ZP)(`/api/courses/${E==null?void 0:E.pathId}/student_situations.json`,{method:"get",params:{role_type:"action_abnormal",page:te,limit:10,real_name:oe==null?void 0:oe.real_name,course_group_id:oe==null?void 0:oe.course_group_id,start_time:(Ae=(ye=oe==null?void 0:oe.time)==null?void 0:ye[0])==null?void 0:Ae.format("YYYY-MM-DD"),end_time:(Ce=(me=oe==null?void 0:oe.time)==null?void 0:me[1])==null?void 0:Ce.format("YYYY-MM-DD")}});(Ee==null?void 0:Ee.status)===0&&(ae(Ee==null?void 0:Ee.data),b(Ee==null?void 0:Ee.data)),ee(!1)});return Vu.createElement(Mt.Z,{spinning:z},Vu.createElement("div",{className:"mt20"},Vu.createElement(it.default,{layout:"inline",form:y,className:$M.myForm,initialValues:{real_name:"",course_group_id:"",start_time:null,end_time:null}},Vu.createElement(it.default.Item,{name:"real_name",label:"\u59D3\u540D",colon:!1},Vu.createElement(ct.default.Search,{style:{width:200},autocomplete:"off",onSearch:ye=>{oe.real_name=ye,le(e5({},oe))},onPressEnter:ye=>{oe.real_name=ye.target.value,le(e5({},oe))}})),Vu.createElement(it.default.Item,{name:"course_group_id",label:"\u73ED\u7EA7",colon:!1,className:"ml20"},Vu.createElement(ho.default,{style:{width:200},onChange:ye=>{oe.course_group_id=ye,le(e5({},oe))}},Vu.createElement(ho.default.Option,{value:""},"\u5168\u90E8"),(a=ie==null?void 0:ie.course_groups)==null?void 0:a.map(ye=>Vu.createElement(ho.default.Option,{value:ye==null?void 0:ye.id,key:ye==null?void 0:ye.id},ye==null?void 0:ye.name))))),Vu.createElement("div",{className:$M.table_box},Vu.createElement(fd.default,{className:`mt-14px-rem ${$M.TableStyle} flex-1`,locale:{emptyText:Vu.createElement(bl.Z,null)},columns:de,pagination:!1,dataSource:(ie==null?void 0:ie.list)||[]}),Vu.createElement(Ps.Z,{className:"mt20",showTotal:ye=>Vu.createElement("span",{className:"mr10",style:{color:"#fff"}},"\u5171",Vu.createElement("span",{className:"c-blue"}," ",ye," "),"\u6761\u6570\u636E"),defaultCurrent:1,defaultPageSize:10,current:te||1,showSizeChanger:!1,showQuickJumper:!0,hideOnSinglePage:!0,total:ie==null?void 0:ie.total_count,onChange:ye=>{ne(ye)}}))))},id=Me(71051),js={flex_box_center:"flex_box_center___eu1jv",flex_space_between:"flex_space_between___imwgW",flex_box_vertical_center:"flex_box_vertical_center___gp9YH",flex_box_center_end:"flex_box_center_end___WUd2W",flex_box_column:"flex_box_column___hchtU",scoremodal:"scoremodal___CPE35",tabWrap:"tabWrap___kCujm",from_item:"from_item___yB1Ob",from_item_title:"from_item_title____sFK_",from_item_desc:"from_item_desc___Sgx_g"},Ir=Me(59301),ole=Object.defineProperty,lle=Object.defineProperties,ule=Object.getOwnPropertyDescriptors,DL=Object.getOwnPropertySymbols,cle=Object.prototype.hasOwnProperty,dle=Object.prototype.propertyIsEnumerable,TL=(b,a,y)=>a in b?ole(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,IL=(b,a)=>{for(var y in a||(a={}))cle.call(a,y)&&TL(b,y,a[y]);if(DL)for(var y of DL(a))dle.call(a,y)&&TL(b,y,a[y]);return b},fle=(b,a)=>lle(b,ule(a)),FL=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const hle=({dispatch:b,user:a,classroomList:y})=>{const x=(0,st.useParams)(),[E,z]=(0,fe.useState)([]),[ee,te]=(0,fe.useState)({type:"0"}),[ne]=it.default.useForm();(0,fe.useEffect)(()=>{y.actionTabs.key=="\u5B66\u60C5\u9884\u8B66\u89C4\u5219\u8BBE\u7F6E"&&(te(fle(IL({},ee),{type:y.actionTabs.params.tabs.toString()})),ie())},[y.actionTabs]);const ie=()=>FL(void 0,null,function*(){var oe,le;const de=yield(0,Nt.ZP)(`/api/courses/${x==null?void 0:x.pathId}/student_situations.json`,{method:"get"});(de==null?void 0:de.status)===0&&(z((oe=de==null?void 0:de.data)==null?void 0:oe.settings),ae((le=de==null?void 0:de.data)==null?void 0:le.settings))}),ae=oe=>{var le,de,he,ye,Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re,Oe,ze,Le,_e,Et;for(let yt in oe)((le=oe[yt])==null?void 0:le.role_type)=="study_progress"?((de=oe[yt])==null?void 0:de.role_sub_type)=="route_rate"?(ne.setFieldValue("tab0_1_right",oe[yt].min_value),ne.setFieldValue("tab0_1_left",oe[yt].status)):((he=oe[yt])==null?void 0:he.role_sub_type)=="miss_hw"?(ne.setFieldValue("tab0_2_right",oe[yt].min_value),ne.setFieldValue("tab0_2_left",oe[yt].status)):((ye=oe[yt])==null?void 0:ye.role_sub_type)=="late_hw"?(ne.setFieldValue("tab0_3_right",oe[yt].min_value),ne.setFieldValue("tab0_3_left",oe[yt].status)):((Ae=oe[yt])==null?void 0:Ae.role_sub_type)=="anon_hw"?(ne.setFieldValue("tab0_4_right",oe[yt].min_value),ne.setFieldValue("tab0_4_left",oe[yt].status)):((me=oe[yt])==null?void 0:me.role_sub_type)=="exam_end"?(ne.setFieldValue("tab0_5_right",oe[yt].min_value),ne.setFieldValue("tab0_5_left",oe[yt].status)):((Ce=oe[yt])==null?void 0:Ce.role_sub_type)=="res_warn"?(ne.setFieldValue("tab0_6_right",oe[yt].min_value),ne.setFieldValue("tab0_6_left",oe[yt].status)):((Ee=oe[yt])==null?void 0:Ee.role_sub_type)=="vid_warn"&&(ne.setFieldValue("tab0_7_right",oe[yt].min_value),ne.setFieldValue("tab0_7_left",oe[yt].status)):((Be=oe[yt])==null?void 0:Be.role_type)=="knowledge_grasp"?((Ne=oe[yt])==null?void 0:Ne.role_sub_type)=="weak_kp"?(ne.setFieldValue("tab1_1_right",oe[yt].max_value),ne.setFieldValue("tab1_1_left",oe[yt].min_value)):((Fe=oe[yt])==null?void 0:Fe.role_sub_type)=="norm_kp"?(ne.setFieldValue("tab1_2_right",oe[yt].max_value),ne.setFieldValue("tab1_2_left",oe[yt].min_value)):((ke=oe[yt])==null?void 0:ke.role_sub_type)=="good_kp"&&(ne.setFieldValue("tab1_3_right",oe[yt].max_value),ne.setFieldValue("tab1_3_left",oe[yt].min_value)):((Re=oe[yt])==null?void 0:Re.role_type)=="action_abnormal"&&(((Oe=oe[yt])==null?void 0:Oe.role_sub_type)=="time_hw"?(ne.setFieldValue("tab2_1_right",oe[yt].min_value),ne.setFieldValue("tab2_1_left",oe[yt].status)):((ze=oe[yt])==null?void 0:ze.role_sub_type)=="peek_hw"?ne.setFieldValue("tab2_2_left",oe[yt].status):((Le=oe[yt])==null?void 0:Le.role_sub_type)=="copy_hw"?(ne.setFieldValue("tab2_3_right",oe[yt].min_value),ne.setFieldValue("tab2_3_left",oe[yt].status)):((_e=oe[yt])==null?void 0:_e.role_sub_type)=="absent"?ne.setFieldValue("tab2_4_left",oe[yt].status):((Et=oe[yt])==null?void 0:Et.role_sub_type)=="no_login"&&(ne.setFieldValue("tab2_5_right",oe[yt].min_value),ne.setFieldValue("tab2_5_left",oe[yt].status)))};return Ir.createElement("div",null,Ir.createElement(rt.default,{title:"\u5B66\u60C5\u9884\u8B66\u89C4\u5219\u8BBE\u7F6E",open:y.actionTabs.key=="\u5B66\u60C5\u9884\u8B66\u89C4\u5219\u8BBE\u7F6E",width:900,centered:!0,className:js.scoremodal,onCancel:()=>{b({type:"classroomList/setActionTabs",payload:{key:""}})},onOk:()=>FL(void 0,null,function*(){var oe,le,de,he,ye,Ae,me,Ce,Ee,Be,Ne,Fe,ke,Re,Oe,ze;let Le=ne.getFieldsValue(),_e=[];if(ee.type=="0"){if(Le!=null&&Le.tab0_1_left&&(Le==null?void 0:Le.tab0_1_right)!=0&&!(Le!=null&&Le.tab0_1_right)&&!((oe=Le==null?void 0:Le.tab0_1_right)!=null&&oe.trim())||Le!=null&&Le.tab0_2_left&&(Le==null?void 0:Le.tab0_2_right)!=0&&!(Le!=null&&Le.tab0_2_right)&&!((le=Le==null?void 0:Le.tab0_2_right)!=null&&le.trim())||Le!=null&&Le.tab0_3_left&&(Le==null?void 0:Le.tab0_3_right)!=0&&!(Le!=null&&Le.tab0_3_right)&&!((de=Le==null?void 0:Le.tab0_3_right)!=null&&de.trim())||Le!=null&&Le.tab0_4_left&&(Le==null?void 0:Le.tab0_4_right)!=0&&!(Le!=null&&Le.tab0_4_right)&&!((he=Le==null?void 0:Le.tab0_4_right)!=null&&he.trim())||Le!=null&&Le.tab0_5_left&&(Le==null?void 0:Le.tab0_5_right)!=0&&!(Le!=null&&Le.tab0_5_right)&&!((ye=Le==null?void 0:Le.tab0_5_right)!=null&&ye.trim())||Le!=null&&Le.tab0_6_left&&(Le==null?void 0:Le.tab0_6_right)!=0&&!(Le!=null&&Le.tab0_6_right)&&!((Ae=Le==null?void 0:Le.tab0_6_right)!=null&&Ae.trim())||Le!=null&&Le.tab0_7_left&&(Le==null?void 0:Le.tab0_7_right)!=0&&!(Le!=null&&Le.tab0_7_right)&&!((me=Le==null?void 0:Le.tab0_7_right)!=null&&me.trim())){nt.ZP.warning("\u5DF2\u52FE\u9009\u7684\u5185\u5BB9\u9608\u503C\u4E3A\u5FC5\u586B");return}_e.push({role_type:"study_progress",role_sub_type:"route_rate",min_value:Le==null?void 0:Le.tab0_1_right,max_value:"",status:Le!=null&&Le.tab0_1_left?1:0},{role_type:"study_progress",role_sub_type:"miss_hw",min_value:Le==null?void 0:Le.tab0_2_right,max_value:"",status:Le!=null&&Le.tab0_2_left?1:0},{role_type:"study_progress",role_sub_type:"late_hw",min_value:Le==null?void 0:Le.tab0_3_right,max_value:"",status:Le!=null&&Le.tab0_3_left?1:0},{role_type:"study_progress",role_sub_type:"anon_hw",min_value:Le==null?void 0:Le.tab0_4_right,max_value:"",status:Le!=null&&Le.tab0_4_left?1:0},{role_type:"study_progress",role_sub_type:"exam_end",min_value:Le==null?void 0:Le.tab0_5_right,max_value:"",status:Le!=null&&Le.tab0_5_left?1:0},{role_type:"study_progress",role_sub_type:"res_warn",min_value:Le==null?void 0:Le.tab0_6_right,max_value:"",status:Le!=null&&Le.tab0_6_left?1:0},{role_type:"study_progress",role_sub_type:"vid_warn",min_value:Le==null?void 0:Le.tab0_7_right,max_value:"",status:Le!=null&&Le.tab0_7_left?1:0})}else if(ee.type=="1"){if((Le==null?void 0:Le.tab1_1_left)!=0&&!(Le!=null&&Le.tab1_1_left)&&!((Ce=Le==null?void 0:Le.tab1_1_left)!=null&&Ce.trim())||(Le==null?void 0:Le.tab1_1_right)!=0&&!(Le!=null&&Le.tab1_1_right)&&!((Ee=Le==null?void 0:Le.tab1_1_right)!=null&&Ee.trim())||(Le==null?void 0:Le.tab1_2_left)!=0&&!(Le!=null&&Le.tab1_2_left)&&!((Be=Le==null?void 0:Le.tab1_2_left)!=null&&Be.trim())||(Le==null?void 0:Le.tab1_2_right)!=0&&!(Le!=null&&Le.tab1_2_right)&&!((Ne=Le==null?void 0:Le.tab1_2_right)!=null&&Ne.trim())||(Le==null?void 0:Le.tab1_3_left)!=0&&!(Le!=null&&Le.tab1_3_left)&&!((Fe=Le==null?void 0:Le.tab1_3_left)!=null&&Fe.trim())||(Le==null?void 0:Le.tab1_3_right)!=0&&!(Le!=null&&Le.tab1_3_right)&&!((ke=Le==null?void 0:Le.tab1_3_right)!=null&&ke.trim())){nt.ZP.warning("\u5DF2\u52FE\u9009\u7684\u5185\u5BB9\u9608\u503C\u4E3A\u5FC5\u586B");return}if((Le==null?void 0:Le.tab1_1_left)>(Le==null?void 0:Le.tab1_1_right)||(Le==null?void 0:Le.tab1_2_left)>(Le==null?void 0:Le.tab1_2_right)||(Le==null?void 0:Le.tab1_3_left)>(Le==null?void 0:Le.tab1_3_right)){nt.ZP.warning("\u5F00\u59CB\u9608\u503C\u4E0D\u80FD\u5927\u4E8E\u622A\u6B62\u9608\u503C");return}if((Le==null?void 0:Le.tab1_1_right)>=(Le==null?void 0:Le.tab1_2_left)||(Le==null?void 0:Le.tab1_2_right)>=(Le==null?void 0:Le.tab1_3_left)){nt.ZP.warning("\u638C\u63E1\u7387\u8303\u56F4\u4E0D\u80FD\u91CD\u5408");return}_e.push({role_type:"knowledge_grasp",role_sub_type:"weak_kp",min_value:Le==null?void 0:Le.tab1_1_left,max_value:Le==null?void 0:Le.tab1_1_right,status:1},{role_type:"knowledge_grasp",role_sub_type:"norm_kp",min_value:Le==null?void 0:Le.tab1_2_left,max_value:Le==null?void 0:Le.tab1_2_right,status:1},{role_type:"knowledge_grasp",role_sub_type:"good_kp",min_value:Le==null?void 0:Le.tab1_3_left,max_value:Le==null?void 0:Le.tab1_3_right,status:1})}else if(ee.type=="2"){if(Le!=null&&Le.tab2_1_left&&(Le==null?void 0:Le.tab2_1_right)!=0&&!(Le!=null&&Le.tab2_1_right)&&!((Re=Le==null?void 0:Le.tab2_1_right)!=null&&Re.trim())||Le!=null&&Le.tab2_3_left&&(Le==null?void 0:Le.tab2_3_right)!=0&&!(Le!=null&&Le.tab2_3_right)&&!((Oe=Le==null?void 0:Le.tab2_3_right)!=null&&Oe.trim())||Le!=null&&Le.tab2_5_left&&(Le==null?void 0:Le.tab2_5_right)!=0&&!(Le!=null&&Le.tab2_5_right)&&!((ze=Le==null?void 0:Le.tab2_5_right)!=null&&ze.trim())){nt.ZP.warning("\u5DF2\u52FE\u9009\u7684\u5185\u5BB9\u9608\u503C\u4E3A\u5FC5\u586B");return}_e.push({role_type:"action_abnormal",role_sub_type:"time_hw",min_value:Le==null?void 0:Le.tab2_1_right,max_value:"",status:Le!=null&&Le.tab2_1_left?1:0},{role_type:"action_abnormal",role_sub_type:"peek_hw",min_value:"",max_value:"",status:Le!=null&&Le.tab2_2_left?1:0},{role_type:"action_abnormal",role_sub_type:"copy_hw",min_value:Le==null?void 0:Le.tab2_3_right,max_value:"",status:Le!=null&&Le.tab2_3_left?1:0},{role_type:"action_abnormal",role_sub_type:"absent",min_value:"",max_value:"",status:Le!=null&&Le.tab2_4_left?1:0},{role_type:"action_abnormal",role_sub_type:"no_login",min_value:Le==null?void 0:Le.tab2_5_right,max_value:"",status:Le!=null&&Le.tab2_5_left?1:0})}const Et=yield(0,Nt.ZP)(`/api/courses/${x==null?void 0:x.pathId}/student_situations/update_setting.json`,{method:"post",body:{settings:_e}});(Et==null?void 0:Et.status)===0&&(nt.ZP.success("\u8BBE\u7F6E\u6210\u529F"),b({type:"classroomList/setActionTabs",payload:{key:""}}))})},Ir.createElement(Qt.default,{className:js.tabWrap,activeKey:ee.type,onChange:oe=>{ee.type=oe,te(IL({},ee)),ae(E)},items:[{label:"\u5B66\u4E60\u8FDB\u5EA6\u6EDE\u540E",key:"0"},{label:"\u77E5\u8BC6\u70B9\u638C\u63E1",key:"1"},{label:"\u884C\u4E3A\u5F02\u5E38",key:"2"}]}),Ir.createElement(it.default,{form:ne,labelCol:{span:4},wrapperCol:{span:20}},ee.type=="0"&&Ir.createElement("div",null,Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_1_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u5B66\u4E60\u8DEF\u5F84\u5B8C\u6210\u7387\u5C11\u4E8E"),Ir.createElement(it.default.Item,{name:"tab0_1_right"},Ir.createElement(id.Z,{suffix:"%",width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u5B66\u4E60\u8DEF\u5F84\u5B8C\u6210\u7387\u5C0F\u4E8E\u8BBE\u5B9A\u503C\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_2_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u4F5C\u4E1A\u622A\u6B62\u524D"),Ir.createElement(it.default.Item,{name:"tab0_2_right"},Ir.createElement(id.Z,{width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5C0F\u65F6\u672A\u63D0\u4EA4\u4F5C\u4E1A"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5230\u8FBE\u8BBE\u7F6E\u65F6\u95F4\u672A\u63D0\u4EA4\u4F5C\u4E1A\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_3_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u4F5C\u4E1A\u8FDB\u5EA6\u843D\u540E"),Ir.createElement(it.default.Item,{name:"tab0_3_right"},Ir.createElement(id.Z,{width:120,suffix:"%",size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5B66\u751F"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u73ED\u7EA7\u4E2D\u6307\u5B9A\u5B66\u751F\u4F5C\u4E1A\u63D0\u4EA4\u4F5C\u4E1A\u65F6\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_4_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u4F5C\u4E1A\u533F\u8BC4\u622A\u6B62\u524D"),Ir.createElement(it.default.Item,{name:"tab0_4_right"},Ir.createElement(id.Z,{width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5C0F\u65F6\u672A\u533F\u8BC4\u4F5C\u4E1A"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5230\u8FBE\u8BBE\u7F6E\u65F6\u95F4\u672A\u5B8C\u6210\u4F5C\u4E1A\u533F\u8BC4\u4EFB\u52A1\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_5_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u8DDD\u79BB\u8003\u8BD5\u7ED3\u675F\u524D"),Ir.createElement(it.default.Item,{name:"tab0_5_right"},Ir.createElement(id.Z,{width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5C0F\u65F6\u672A\u5F00\u59CB\u8003\u8BD5"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5230\u8FBE\u8BBE\u7F6E\u65F6\u95F4\u672A\u53C2\u52A0\u8003\u8BD5\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab0_6_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u8D44\u6E90\u5B66\u4E60\u8FDB\u5EA6\u843D\u540E"),Ir.createElement(it.default.Item,{name:"tab0_6_right"},Ir.createElement(id.Z,{width:120,suffix:"%",size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u672C\u73ED\u540C\u5B66"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u8BFE\u5802\u6559\u5B66\u8D44\u6E90\u5B66\u4E60\u8FDB\u5EA6\u843D\u540E\u540C\u5B66\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item,style:{marginBottom:0}},Ir.createElement(it.default.Item,{name:"tab0_7_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u89C6\u9891\u5B66\u4E60\u8FDB\u5EA6\u843D\u540E"),Ir.createElement(it.default.Item,{name:"tab0_7_right"},Ir.createElement(id.Z,{width:120,suffix:"%",size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u672C\u73ED\u540C\u5B66"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u8BFE\u5802\u89C6\u9891\u76F4\u64AD\u5B66\u4E60\u8FDB\u5EA6\u843D\u540E\u540C\u5B66\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09"))),ee.type=="1"&&Ir.createElement("div",null,Ir.createElement("div",{className:js.from_item},Ir.createElement("div",{className:js.from_item_title},"\u5355\u4E2A\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5")),Ir.createElement("div",{className:js.from_item},Ir.createElement("div",{className:js.from_item_title},"\u8584\u5F31\u77E5\u8BC6\u70B9\uFF1A\u638C\u63E1\u7387\u4E3A"),Ir.createElement(it.default.Item,{name:"tab1_1_left"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u81F3"),Ir.createElement(it.default.Item,{name:"tab1_1_right"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u7684\u77E5\u8BC6\u70B9")),Ir.createElement("div",{className:js.from_item},Ir.createElement("div",{className:js.from_item_title},"\u638C\u63E1\u4E00\u822C\u77E5\u8BC6\u70B9\uFF1A\u638C\u63E1\u7387\u4E3A"),Ir.createElement(it.default.Item,{name:"tab1_2_left"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u81F3"),Ir.createElement(it.default.Item,{name:"tab1_2_right"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u7684\u77E5\u8BC6\u70B9")),Ir.createElement("div",{className:js.from_item,style:{marginBottom:0}},Ir.createElement("div",{className:js.from_item_title},"\u638C\u63E1\u4F18\u79C0\u77E5\u8BC6\u70B9\uFF1A\u638C\u63E1\u7387\u4E3A"),Ir.createElement(it.default.Item,{name:"tab1_3_left"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u81F3"),Ir.createElement(it.default.Item,{name:"tab1_3_right"},Ir.createElement(id.Z,{width:120,size:"large",suffix:"%",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u7684\u77E5\u8BC6\u70B9"))),ee.type=="2"&&Ir.createElement("div",null,Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab2_1_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u8BFE\u5802\u5B9E\u9A8C/\u7F16\u7A0B\u4F5C\u4E1A\u7684\u5B8C\u6210\u65F6\u95F4\u5C0F\u4E8E"),Ir.createElement(it.default.Item,{name:"tab2_1_right"},Ir.createElement(id.Z,{width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5206\u949F"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u5B8C\u6210\u4F5C\u4E1A\u6240\u6D88\u8017\u7684\u65F6\u95F4\u5C0F\u4E8E\u8BBE\u5B9A\u503C\u65F6\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab2_2_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u8BFE\u5802\u5B9E\u9A8C\u67E5\u770B\u7B54\u6848\u540E\u5B8C\u6210\u4F5C\u4E1A"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u4F5C\u4E1A\u8BC4\u6D4B\u901A\u8FC7\u524D\u67E5\u770B\u4F5C\u4E1A\u7B54\u6848\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab2_3_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u4EE3\u7801/\u6587\u4EF6\u67E5\u91CD\u7387\u9AD8\u4E8E"),Ir.createElement(it.default.Item,{name:"tab2_3_right"},Ir.createElement(id.Z,{width:120,suffix:"%",size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u4F5C\u4E1A\u67E5\u91CD\u7387\u9AD8\u4E8E\u8BBE\u5B9A\u503C\u65F6\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item},Ir.createElement(it.default.Item,{name:"tab2_4_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement("div",{className:js.from_item_title},"\u672A\u5728\u89C4\u5B9A\u65F6\u95F4\u5185\u5B8C\u6210\u7B7E\u5230"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u672A\u5728\u89C4\u5B9A\u65F6\u95F4\u5185\u5B8C\u6210\u8BFE\u5802\u7B7E\u5230\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09")),Ir.createElement("div",{className:js.from_item,style:{marginBottom:0}},Ir.createElement(it.default.Item,{name:"tab2_5_left",valuePropName:"checked"},Ir.createElement(oo.default,null)),Ir.createElement(it.default.Item,{name:"tab2_5_right",style:{marginLeft:"8px"}},Ir.createElement(id.Z,{width:120,size:"large",min:0,max:100,precision:0})),Ir.createElement("div",{className:js.from_item_title},"\u5929\u672A\u8FDB\u5165\u7CFB\u7EDF\u8FDB\u884C\u5B66\u4E60"),Ir.createElement("div",{className:js.from_item_desc},"\uFF08\u5B66\u751F\u672A\u5728\u89C4\u5B9A\u65F6\u95F4\u5185\u8FDB\u5165\u7CFB\u7EDF\uFF0C\u5219\u53D1\u9001\u5B66\u4E60\u9884\u8B66\uFF09"))))))};var ple=(0,st.connect)(({user:b,classroomList:a})=>({user:b,classroomList:a}))(hle),mle={flex_box_center:"flex_box_center___lNU0f",flex_space_between:"flex_space_between___l4Gyp",flex_box_vertical_center:"flex_box_vertical_center___oo33K",flex_box_center_end:"flex_box_center_end___D3e4Y",flex_box_column:"flex_box_column___PxSlE",scoremodal:"scoremodal___ImWT7",tabWrap:"tabWrap___TNgAx",from_item:"from_item___u4jOc",from_item_title:"from_item_title___MTeWh",from_item_desc:"from_item_desc___UAHBy"},Nh=Me(59301),gle=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const vle=({dispatch:b,user:a,classroomList:y})=>{const x=(0,st.useParams)(),[E]=(0,st.useSearchParams)(),[z,ee]=(0,fe.useState)(1),[te,ne]=(0,fe.useState)(!1),[ie,ae]=(0,fe.useState)({});(0,fe.useEffect)(()=>{y.actionTabs.key=="\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5"?oe():ee(1)},[y.actionTabs]),(0,fe.useEffect)(()=>{y.actionTabs.key=="\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5"&&oe()},[z]);const oe=()=>gle(void 0,null,function*(){ne(!0);const de=yield(0,Nt.ZP)(`/api/courses/${x==null?void 0:x.pathId}/student_situations/knowledge_detail.json`,{method:"GET",params:{knowledge_name:y.actionTabs.params.info.knowledge_name,page:z,limit:10}});(de==null?void 0:de.status)==0&&ae(de==null?void 0:de.data),ne(!1)}),le=[{title:"\u59D3\u540D",dataIndex:"real_name",key:"real_name",ellipsis:!0,align:"center",render:(de,he)=>Nh.createElement("span",null,de||"--")},{title:"\u5B66\u53F7",dataIndex:"student_id",key:"student_id",ellipsis:!0,align:"center",render:de=>Nh.createElement("span",null,de||"--")},{title:"\u73ED\u7EA7",dataIndex:"course_group_name",key:"course_group_name",ellipsis:!0,align:"center",render:(de,he,ye)=>Nh.createElement("span",null,de||"--")},{title:"\u77E5\u8BC6\u70B9\u638C\u63E1\u7387",dataIndex:"rate",key:"rate",ellipsis:!0,align:"center",render:de=>Nh.createElement("span",null,de+"%")},{title:"\u64CD\u4F5C",key:"action",align:"center",width:120,render:(de,he)=>Nh.createElement("span",{style:{color:"#165DFF",cursor:"pointer"},onClick:()=>{(0,Zt.xg)(`/knowledgegraph/${x==null?void 0:x.pathId}?type=${E.get("type")}&tabs=7&uuid=${E.get("uuid")}&studentId=${he==null?void 0:he.user_id}&studentTab=1`)}},"\u67E5\u770B\u8BE6\u60C5")}].filter(de=>!!de);return Nh.createElement("div",null,Nh.createElement(rt.default,{title:"\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5",open:y.actionTabs.key=="\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5",width:900,centered:!0,footer:null,className:mle.scoremodal,onCancel:()=>{b({type:"classroomList/setActionTabs",payload:{key:""}})}},Nh.createElement(Mt.Z,{spinning:te},Nh.createElement(fd.default,{columns:le,pagination:!1,style:{marginTop:"10px"},dataSource:(ie==null?void 0:ie.list)||[]}),Nh.createElement(Ps.Z,{style:{marginTop:"10px",marginBottom:"20px"},showTotal:de=>Nh.createElement("span",{className:"mr10"},"\u5171",Nh.createElement("span",{className:"c-blue"}," ",de," "),"\u6761\u6570\u636E"),current:z||1,pageSize:10,showSizeChanger:!1,total:ie==null?void 0:ie.total_count,onChange:de=>{ee(de)}}))))};var Ale=(0,st.connect)(({user:b,classroomList:a})=>({user:b,classroomList:a}))(vle),IA={flex_box_center:"flex_box_center___mj3lT",flex_space_between:"flex_space_between___QbJkb",flex_box_vertical_center:"flex_box_vertical_center___jCjss",flex_box_center_end:"flex_box_center_end___HuOmw",flex_box_column:"flex_box_column___wbWfY",box_content:"box_content___LY0bC",box_item:"box_item___EJX3w",item_icon:"item_icon___JVtR9",item_right:"item_right____1FUg",item_title:"item_title___PtE6o",item_content:"item_content___xQ9UM"},yle=Object.defineProperty,NL=Object.getOwnPropertySymbols,xle=Object.prototype.hasOwnProperty,ble=Object.prototype.propertyIsEnumerable,LL=(b,a,y)=>a in b?yle(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Ele=(b,a)=>{for(var y in a||(a={}))xle.call(a,y)&&LL(b,y,a[y]);if(NL)for(var y of NL(a))ble.call(a,y)&&LL(b,y,a[y]);return b};const xhe=b=>React.createElement("svg",Ele({width:30,height:30,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u6D4B\u9A8C"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M23.37 27.442H5.543c-3.056 0-5.517-1.018-5.517-3.735V.023H23.37v27.42Z",fill:"#96D9FF"}),React.createElement("path",{d:"M25.832 29.904H8.005c-3.056 0-5.518-1.019-5.518-3.735V2.485h23.345v27.419Z",fill:"#50BFFF"}),React.createElement("path",{d:"M25.747 29.904H5.713v-5.348h22.75c2.123 2.292.34 5.348-2.716 5.348Z",fill:"#B1E2FF"}),React.createElement("path",{d:"M5.798 23.198c1.868 0 3.31 1.528 3.31 3.31 0 1.783-1.527 3.311-3.31 3.311-1.783 0-3.31-1.528-3.31-3.31 0-1.783 1.527-3.311 3.31-3.311Z",fill:"#50BFFF"}),React.createElement("path",{d:"m10.467 18.359 1.783-1.783-1.189-1.188L9.28 17.17l-1.783-1.783-1.104 1.273 1.783 1.783-1.783 1.783 1.189 1.188 1.782-1.783 1.783 1.783 1.189-1.188-1.868-1.868Zm-1.273-6.282a2.862 2.862 0 0 1-2.887-2.886 2.862 2.862 0 0 1 2.887-2.886A2.862 2.862 0 0 1 12.08 9.19a2.862 2.862 0 0 1-2.886 2.886Zm0-4.074c-.68 0-1.189.509-1.189 1.188 0 .68.51 1.188 1.189 1.188s1.188-.509 1.188-1.188c0-.68-.51-1.188-1.188-1.188Z",fill:"#FFF"}),React.createElement("path",{d:"M14.542 8.767h6.621a.85.85 0 0 1 .849.848.85.85 0 0 1-.849.85h-6.621a.85.85 0 0 1-.85-.85c0-.509.34-.848.85-.848Zm0 9.083h6.621a.85.85 0 0 1 .849.849.85.85 0 0 1-.849.848h-6.621a.85.85 0 0 1-.85-.848c0-.51.34-.85.85-.85Z",fill:"#D6F0FF"})));var wle="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMjMuMzcgMjcuNDQySDUuNTQzYy0zLjA1NiAwLTUuNTE3LTEuMDE4LTUuNTE3LTMuNzM1Vi4wMjNIMjMuMzd2MjcuNDJaIiBmaWxsPSIjOTZEOUZGIi8+PHBhdGggZD0iTTI1LjgzMiAyOS45MDRIOC4wMDVjLTMuMDU2IDAtNS41MTgtMS4wMTktNS41MTgtMy43MzVWMi40ODVoMjMuMzQ1djI3LjQxOVoiIGZpbGw9IiM1MEJGRkYiLz48cGF0aCBkPSJNMjUuNzQ3IDI5LjkwNEg1LjcxM3YtNS4zNDhoMjIuNzVjMi4xMjMgMi4yOTIuMzQgNS4zNDgtMi43MTYgNS4zNDhaIiBmaWxsPSIjQjFFMkZGIi8+PHBhdGggZD0iTTUuNzk4IDIzLjE5OGMxLjg2OCAwIDMuMzEgMS41MjggMy4zMSAzLjMxIDAgMS43ODMtMS41MjcgMy4zMTEtMy4zMSAzLjMxMS0xLjc4MyAwLTMuMzEtMS41MjgtMy4zMS0zLjMxIDAtMS43ODMgMS41MjctMy4zMTEgMy4zMS0zLjMxMVoiIGZpbGw9IiM1MEJGRkYiLz48cGF0aCBkPSJtMTAuNDY3IDE4LjM1OSAxLjc4My0xLjc4My0xLjE4OS0xLjE4OEw5LjI4IDE3LjE3bC0xLjc4My0xLjc4My0xLjEwNCAxLjI3MyAxLjc4MyAxLjc4My0xLjc4MyAxLjc4MyAxLjE4OSAxLjE4OCAxLjc4Mi0xLjc4MyAxLjc4MyAxLjc4MyAxLjE4OS0xLjE4OC0xLjg2OC0xLjg2OFptLTEuMjczLTYuMjgyYTIuODYyIDIuODYyIDAgMCAxLTIuODg3LTIuODg2IDIuODYyIDIuODYyIDAgMCAxIDIuODg3LTIuODg2QTIuODYyIDIuODYyIDAgMCAxIDEyLjA4IDkuMTlhMi44NjIgMi44NjIgMCAwIDEtMi44ODYgMi44ODZabTAtNC4wNzRjLS42OCAwLTEuMTg5LjUwOS0xLjE4OSAxLjE4OCAwIC42OC41MSAxLjE4OCAxLjE4OSAxLjE4OHMxLjE4OC0uNTA5IDEuMTg4LTEuMTg4YzAtLjY4LS41MS0xLjE4OC0xLjE4OC0xLjE4OFoiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNMTQuNTQyIDguNzY3aDYuNjIxYS44NS44NSAwIDAgMSAuODQ5Ljg0OC44NS44NSAwIDAgMS0uODQ5Ljg1aC02LjYyMWEuODUuODUgMCAwIDEtLjg1LS44NWMwLS41MDkuMzQtLjg0OC44NS0uODQ4Wm0wIDkuMDgzaDYuNjIxYS44NS44NSAwIDAgMSAuODQ5Ljg0OS44NS44NSAwIDAgMS0uODQ5Ljg0OGgtNi42MjFhLjg1Ljg1IDAgMCAxLS44NS0uODQ4YzAtLjUxLjM0LS44NS44NS0uODVaIiBmaWxsPSIjRDZGMEZGIi8+PC9nPjwvc3ZnPg==",Cle=Object.defineProperty,OL=Object.getOwnPropertySymbols,Ple=Object.prototype.hasOwnProperty,Ble=Object.prototype.propertyIsEnumerable,RL=(b,a,y)=>a in b?Cle(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Sle=(b,a)=>{for(var y in a||(a={}))Ple.call(a,y)&&RL(b,y,a[y]);if(OL)for(var y of OL(a))Ble.call(a,y)&&RL(b,y,a[y]);return b};const bhe=b=>React.createElement("svg",Sle({width:32,height:24,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u89C6\u9891"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M14.962 11.807 29.04 4.768a1.928 1.928 0 0 1 2.79 1.725v10.629a1.928 1.928 0 0 1-2.79 1.724l-14.078-7.039Z",fill:"#FE9025"}),React.createElement("path",{d:"M20.745 0a3.855 3.855 0 0 1 3.856 3.855V19.76a3.855 3.855 0 0 1-3.856 3.855H3.878A3.855 3.855 0 0 1 .023 19.76V3.855A3.855 3.855 0 0 1 3.878 0h16.867Zm-9.638 17.35H5.324a1.446 1.446 0 1 0 0 2.891h5.783a1.446 1.446 0 0 0 0-2.892Zm8.675-13.977a1.446 1.446 0 1 0 0 2.892 1.446 1.446 0 0 0 0-2.892Z",fill:"#605EF5"})));var Mle="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTQuOTYyIDExLjgwNyAyOS4wNCA0Ljc2OGExLjkyOCAxLjkyOCAwIDAgMSAyLjc5IDEuNzI1djEwLjYyOWExLjkyOCAxLjkyOCAwIDAgMS0yLjc5IDEuNzI0bC0xNC4wNzgtNy4wMzlaIiBmaWxsPSIjRkU5MDI1Ii8+PHBhdGggZD0iTTIwLjc0NSAwYTMuODU1IDMuODU1IDAgMCAxIDMuODU2IDMuODU1VjE5Ljc2YTMuODU1IDMuODU1IDAgMCAxLTMuODU2IDMuODU1SDMuODc4QTMuODU1IDMuODU1IDAgMCAxIC4wMjMgMTkuNzZWMy44NTVBMy44NTUgMy44NTUgMCAwIDEgMy44NzggMGgxNi44NjdabS05LjYzOCAxNy4zNUg1LjMyNGExLjQ0NiAxLjQ0NiAwIDEgMCAwIDIuODkxaDUuNzgzYTEuNDQ2IDEuNDQ2IDAgMCAwIDAtMi44OTJabTguNjc1LTEzLjk3N2ExLjQ0NiAxLjQ0NiAwIDEgMCAwIDIuODkyIDEuNDQ2IDEuNDQ2IDAgMCAwIDAtMi44OTJaIiBmaWxsPSIjNjA1RUY1Ii8+PC9nPjwvc3ZnPg==",Dle=Object.defineProperty,zL=Object.getOwnPropertySymbols,Tle=Object.prototype.hasOwnProperty,Ile=Object.prototype.propertyIsEnumerable,kL=(b,a,y)=>a in b?Dle(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,Fle=(b,a)=>{for(var y in a||(a={}))Tle.call(a,y)&&kL(b,y,a[y]);if(zL)for(var y of zL(a))Ile.call(a,y)&&kL(b,y,a[y]);return b};const Ehe=b=>React.createElement("svg",Fle({width:31,height:29,xmlns:"http://www.w3.org/2000/svg"},b),React.createElement("title",null,"\u5B9E\u8BAD"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{fill:"#9ABADB",d:"M20.042 27.139v-3.626l-5.823-1.195 1.208 4.82z"}),React.createElement("path",{fill:"#9ABADB",d:"M10.812 27.139h4.615v-4.821l-4.615 1.195z"}),React.createElement("path",{d:"M30.854 18.088 14.22 16.88l1.208 6.633h14.347a1.08 1.08 0 0 0 1.08-1.08v-4.345Z",fill:"#D1E8FF"}),React.createElement("path",{d:"M0 18.088v4.346c0 .596.484 1.08 1.08 1.08h14.347V16.88L0 18.088ZM22.344 26.239h-8.125l-.605.9.489.72a.411.411 0 0 0 .347.18h7.894a.411.411 0 0 0 .411-.425v-.964a.411.411 0 0 0-.411-.411Z",fill:"#D1E8FF"}),React.createElement("path",{d:"M8.55 26.239h6.427c.3 0 .45.15.45.45v.913c0 .3-.15.45-.45.45H8.55c-.3 0-.45-.15-.45-.45v-.913c0-.3.15-.45.45-.45Z",fill:"#D1E8FF"}),React.createElement("path",{d:"M13.614 0a1.286 1.286 0 0 0-1.285 1.144l1.915 7.714c0 .115-2.97.231-2.957.347l1.183 8.87h18.384V1.093c0-.599-.481-1.086-1.08-1.093h-16.16Z",fill:"#4F7CF7"}),React.createElement("path",{d:"M1.286 0h12.856c.71 0 1.285.576 1.285 1.286V16.79c0 .71-.575 1.285-1.285 1.285H0V1.298A1.286 1.286 0 0 1 1.286 0Z",fill:"#4F7CF7"}),React.createElement("path",{fill:"#F5F5FF",d:"M10.773 13.833 5.991 9.051l4.782-4.796 1.286 1.286-3.51 3.51 3.51 3.51zM20.081 13.833l-1.286-1.273 3.51-3.51-3.51-3.51 1.286-1.285 4.782 4.796zM13.424 14.467l2.23-11.212 1.777.354-2.229 11.21z"})));var Nle="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzEiIGhlaWdodD0iMjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjOUFCQURCIiBkPSJNMjAuMDQyIDI3LjEzOXYtMy42MjZsLTUuODIzLTEuMTk1IDEuMjA4IDQuODJ6Ii8+PHBhdGggZmlsbD0iIzlBQkFEQiIgZD0iTTEwLjgxMiAyNy4xMzloNC42MTV2LTQuODIxbC00LjYxNSAxLjE5NXoiLz48cGF0aCBkPSJNMzAuODU0IDE4LjA4OCAxNC4yMiAxNi44OGwxLjIwOCA2LjYzM2gxNC4zNDdhMS4wOCAxLjA4IDAgMCAwIDEuMDgtMS4wOHYtNC4zNDVaIiBmaWxsPSIjRDFFOEZGIi8+PHBhdGggZD0iTTAgMTguMDg4djQuMzQ2YzAgLjU5Ni40ODQgMS4wOCAxLjA4IDEuMDhoMTQuMzQ3VjE2Ljg4TDAgMTguMDg4Wk0yMi4zNDQgMjYuMjM5aC04LjEyNWwtLjYwNS45LjQ4OS43MmEuNDExLjQxMSAwIDAgMCAuMzQ3LjE4aDcuODk0YS40MTEuNDExIDAgMCAwIC40MTEtLjQyNXYtLjk2NGEuNDExLjQxMSAwIDAgMC0uNDExLS40MTFaIiBmaWxsPSIjRDFFOEZGIi8+PHBhdGggZD0iTTguNTUgMjYuMjM5aDYuNDI3Yy4zIDAgLjQ1LjE1LjQ1LjQ1di45MTNjMCAuMy0uMTUuNDUtLjQ1LjQ1SDguNTVjLS4zIDAtLjQ1LS4xNS0uNDUtLjQ1di0uOTEzYzAtLjMuMTUtLjQ1LjQ1LS40NVoiIGZpbGw9IiNEMUU4RkYiLz48cGF0aCBkPSJNMTMuNjE0IDBhMS4yODYgMS4yODYgMCAwIDAtMS4yODUgMS4xNDRsMS45MTUgNy43MTRjMCAuMTE1LTIuOTcuMjMxLTIuOTU3LjM0N2wxLjE4MyA4Ljg3aDE4LjM4NFYxLjA5M2MwLS41OTktLjQ4MS0xLjA4Ni0xLjA4LTEuMDkzaC0xNi4xNloiIGZpbGw9IiM0RjdDRjciLz48cGF0aCBkPSJNMS4yODYgMGgxMi44NTZjLjcxIDAgMS4yODUuNTc2IDEuMjg1IDEuMjg2VjE2Ljc5YzAgLjcxLS41NzUgMS4yODUtMS4yODUgMS4yODVIMFYxLjI5OEExLjI4NiAxLjI4NiAwIDAgMSAxLjI4NiAwWiIgZmlsbD0iIzRGN0NGNyIvPjxwYXRoIGZpbGw9IiNGNUY1RkYiIGQ9Ik0xMC43NzMgMTMuODMzIDUuOTkxIDkuMDUxbDQuNzgyLTQuNzk2IDEuMjg2IDEuMjg2LTMuNTEgMy41MSAzLjUxIDMuNTF6TTIwLjA4MSAxMy44MzNsLTEuMjg2LTEuMjczIDMuNTEtMy41MS0zLjUxLTMuNTEgMS4yODYtMS4yODUgNC43ODIgNC43OTZ6TTEzLjQyNCAxNC40NjdsMi4yMy0xMS4yMTIgMS43NzcuMzU0LTIuMjI5IDExLjIxeiIvPjwvZz48L3N2Zz4=",Sp=Me(59301),Lle=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Ole=({dispatch:b,user:a,classroomList:y})=>{const x=(0,st.useParams)(),[E,z]=(0,fe.useState)([]),[ee,te]=(0,fe.useState)(!1);(0,fe.useEffect)(()=>{y.actionTabs.key=="\u77E5\u8BC6\u70B9\u5B66\u4E60\u63A8\u8350"&&ne()},[y.actionTabs]);const ne=()=>Lle(void 0,null,function*(){var ie;te(!0);const ae=yield(0,Nt.ZP)(`/api/courses/${x==null?void 0:x.pathId}/student_situations/student_knowledge_detail.json`,{method:"GET",params:{knowledge_name:y.actionTabs.params.info.knowledge_name}});(ae==null?void 0:ae.status)==0&&z((ie=ae==null?void 0:ae.data)==null?void 0:ie.list),te(!1)});return Sp.createElement("div",null,Sp.createElement(rt.default,{title:"\u77E5\u8BC6\u70B9\u5B66\u4E60\u63A8\u8350",open:y.actionTabs.key=="\u77E5\u8BC6\u70B9\u5B66\u4E60\u63A8\u8350",width:840,centered:!0,footer:null,className:IA.scoremodal,onCancel:()=>{b({type:"classroomList/setActionTabs",payload:{key:""}})}},Sp.createElement(Mt.Z,{spinning:ee},Sp.createElement("div",{className:IA.box_content},E==null?void 0:E.map((ie,ae)=>Sp.createElement("div",{className:IA.box_item,key:ae,onClick:()=>{(0,Zt.xg)(ie==null?void 0:ie.url),b({type:"classroomList/setActionTabs",payload:{key:""}})}},Sp.createElement("div",{className:IA.item_icon},Sp.createElement("img",{src:(ie==null?void 0:ie.type)==1?Nle:(ie==null?void 0:ie.type)==2?Mle:wle})),Sp.createElement("div",{className:IA.item_right},Sp.createElement("div",{className:IA.item_title},ie==null?void 0:ie.name),Sp.createElement(pn.Z,{title:ie==null?void 0:ie.knowledge_name},Sp.createElement("div",{className:IA.item_content},"\u5BF9\u5E94\u77E5\u8BC6\u70B9\uFF1A",ie==null?void 0:ie.knowledge_name)))))))))};var Rle=(0,st.connect)(({user:b,classroomList:a})=>({user:b,classroomList:a}))(Ole),zle=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const kle=({pathsDetail:b,dispatch:a,user:y})=>{var x,E,z,ee,te,ne;const ie=(0,st.useParams)(),[ae,oe]=(0,fe.useState)(!1),[le]=(0,st.useSearchParams)(),[de,he]=(0,fe.useState)(0),[ye,Ae]=(0,fe.useState)({}),me=(0,Ks.bg)()&&(le.get("studentId")||!(0,Ks.GJ)());(0,fe.useEffect)(()=>{(0,Ks.bg)()&&le.get("studentTab")&&he(Number(le.get("studentTab")))},[(0,Ks.bg)()]);const Ce=()=>zle(void 0,null,function*(){var Ee;oe(!0);const Be=me?`/api/courses/${ie==null?void 0:ie.pathId}/student_situations/student_index.json`:`/api/courses/${ie==null?void 0:ie.pathId}/student_situations.json`,Ne=yield(0,Nt.ZP)(Be,{method:"get",params:me?{user_id:le.get("studentId")||((Ee=y==null?void 0:y.userInfo)==null?void 0:Ee.user_id)}:{}});(Ne==null?void 0:Ne.status)===0&&Ae(Ne==null?void 0:Ne.data),oe(!1)});return fe.createElement("div",{className:"px-40px-rem"},fe.createElement(Mt.Z,{spinning:ae},fe.createElement("div",{className:Qo.top_content},!me&&fe.createElement("div",{className:Qo.top_content_item},fe.createElement("img",{src:Me(64690),width:57,height:70}),fe.createElement("div",{className:Qo.top_content_item_right},fe.createElement("div",{className:Qo.top_content_item_right_title},"\u5B66\u60C5\u9884\u8B66\u7EDF\u8BA1"),fe.createElement("div",{className:Qo.top_content_item_right_value},"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.record_user_count),"\u4EBA",fe.createElement("span",{className:"ml20"}),"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.record_count),"\u6761"))),me&&fe.createElement("div",{className:Qo.top_content_user},fe.createElement("div",{className:Qo.user_img},fe.createElement("img",{src:`${(x=Gt.Z)==null?void 0:x.IMG_SERVER}/images/${(E=ye==null?void 0:ye.user)==null?void 0:E.avatar}`,width:80,height:80})),fe.createElement("div",{className:Qo.user_name},(z=ye==null?void 0:ye.user)==null?void 0:z.real_name),fe.createElement("div",{className:Qo.user_info},"\u5B66\u53F7\uFF1A",((ee=ye==null?void 0:ye.user)==null?void 0:ee.student_id)||"--"),fe.createElement("div",{className:Qo.user_info},"\u73ED\u7EA7\uFF1A",((te=ye==null?void 0:ye.user)==null?void 0:te.course_group_name)||"--")),fe.createElement("div",{className:Qo.top_content_line}),fe.createElement("div",{className:Qo.top_content_item},fe.createElement("img",{src:Me(89006),width:57,height:70}),fe.createElement("div",{className:Qo.top_content_item_right},fe.createElement("div",{className:Qo.top_content_item_right_title},"\u5B66\u4E60\u8FDB\u5EA6\u6EDE\u540E"),me?fe.createElement("div",{className:Qo.top_content_item_right_value},"\u5F85\u5904\u7406",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.study_progress_no_handle_count),"\u6761",fe.createElement("span",{className:"ml20"}),"\u5DF2\u5904\u7406",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.study_progress_handle_count),"\u6761"):fe.createElement("div",{className:Qo.top_content_item_right_value},"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.study_progress_user_count),"\u4EBA",fe.createElement("span",{className:"ml20"}),"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.study_progress_count),"\u6761"))),fe.createElement("div",{className:Qo.top_content_line}),fe.createElement("div",{className:Qo.top_content_item},fe.createElement("img",{src:Me(57581),width:57,height:70}),fe.createElement("div",{className:Qo.top_content_item_right},fe.createElement("div",{className:Qo.top_content_item_right_title},"\u77E5\u8BC6\u70B9\u8584\u5F31"),fe.createElement("div",{className:Qo.top_content_item_right_value},"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.week_kp_count),"\u4E2A"))),!me&&fe.createElement(fe.Fragment,null,fe.createElement("div",{className:Qo.top_content_line}),fe.createElement("div",{className:Qo.top_content_item},fe.createElement("img",{src:Me(40517),width:57,height:70}),fe.createElement("div",{className:Qo.top_content_item_right},fe.createElement("div",{className:Qo.top_content_item_right_title},"\u884C\u4E3A\u5F02\u5E38"),fe.createElement("div",{className:Qo.top_content_item_right_value},"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.action_abnormal_user_count),"\u4EBA",fe.createElement("span",{className:"ml20"}),"\u5171",fe.createElement("span",{style:{fontSize:"28px",color:"#82A8FF",margin:"0 5px"}},ye==null?void 0:ye.action_abnormal_count),"\u6761")))))),fe.createElement("div",{className:Qo.tabs_content},(ne=me?["\u5B66\u4E60\u8FDB\u5EA6\u6EDE\u540E\u9884\u8B66","\u77E5\u8BC6\u70B9\u8584\u5F31\u9884\u8B66"]:["\u5B66\u4E60\u8FDB\u5EA6\u6EDE\u540E\u9884\u8B66","\u77E5\u8BC6\u70B9\u8584\u5F31\u9884\u8B66","\u884C\u4E3A\u5F02\u5E38\u9884\u8B66"])==null?void 0:ne.map((Ee,Be)=>fe.createElement("div",{className:de==Be?Qo.tabs_content_item_active:Qo.tabs_content_item,onClick:()=>{he(Be)}},Ee)),!me&&fe.createElement("div",{className:Qo.setting_button,onClick:()=>{a({type:"classroomList/setActionTabs",payload:{key:"\u5B66\u60C5\u9884\u8B66\u89C4\u5219\u8BBE\u7F6E",params:{tabs:de}}})}},fe.createElement("i",{className:"iconfont icon-shezhi mr5"}),fe.createElement("span",null,"\u8BBE\u7F6E"))),de==0&&!me&&fe.createElement(boe,{setInfo:Ae}),de==0&&me&&fe.createElement(Yoe,{setInfo:Ae}),de==1&&fe.createElement(tle,{setInfo:Ae,openInfo:Ee=>{a({type:"classroomList/setActionTabs",payload:{key:"\u77E5\u8BC6\u70B9\u638C\u63E1\u60C5\u51B5",params:{info:Ee}}})},openKnowledge:Ee=>{a({type:"classroomList/setActionTabs",payload:{key:"\u77E5\u8BC6\u70B9\u5B66\u4E60\u63A8\u8350",params:{info:Ee}}})}}),de==2&&!me&&fe.createElement(ale,{setInfo:Ae}),fe.createElement(ple,null),fe.createElement(Ale,null),fe.createElement(Rle,null))};var Hle=(0,st.connect)(({pathsDetail:b,user:a})=>({pathsDetail:b,user:a}))(kle),is=Me(59301),Ule=Object.defineProperty,hC=Object.getOwnPropertySymbols,HL=Object.prototype.hasOwnProperty,UL=Object.prototype.propertyIsEnumerable,jL=(b,a,y)=>a in b?Ule(b,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):b[a]=y,jle=(b,a)=>{for(var y in a||(a={}))HL.call(a,y)&&jL(b,y,a[y]);if(hC)for(var y of hC(a))UL.call(a,y)&&jL(b,y,a[y]);return b},Vle=(b,a)=>{var y={};for(var x in b)HL.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&hC)for(var x of hC(b))a.indexOf(x)<0&&UL.call(b,x)&&(y[x]=b[x]);return y},VL=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});const Gle=b=>{var a=b,{pathsDetail:y,user:x,globalSetting:E,loading:z,dispatch:ee,activied:te,setactivied:ne}=a,ie=Vle(a,["pathsDetail","user","globalSetting","loading","dispatch","activied","setactivied"]),ae,oe,le,de,he,ye,Ae,me,Ce;const{detail:Ee,actionTabs:Be}=y,Ne=(0,st.useParams)(),[Fe]=(0,st.useSearchParams)(),[ke,Re]=(0,fe.useState)([]),[Oe,ze]=(0,fe.useState)(),[Le,_e]=(0,fe.useState)(),[Et]=it.default.useForm(),[yt,jt]=(0,fe.useState)(!1),[tn,cn]=(0,fe.useState)(!1),kt=(oe=(ae=Ee==null?void 0:Ee.route_nodes)==null?void 0:ae.find(rn=>rn==null?void 0:rn.is_choice))==null?void 0:oe.id;(0,fe.useEffect)(()=>{Fe.get("uuid")&&ze(Fe.get("uuid"))},[Fe.get("uuid")]);const pt=[{name:"\u8BFE\u7A0B\u4FE1\u606F",key:1,content:is.createElement(Wr,null),isshow:Fe.get("type")!=="classrooms"},{name:"\u8BFE\u7A0B\u56FE\u8C31",key:3,content:((de=(le=y==null?void 0:y.detail)==null?void 0:le.nodes)==null?void 0:de.length)<=1?is.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},is.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},((he=y==null?void 0:y.detail)==null?void 0:he.can_managed)&&is.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{cn(!0)}},"\u65B0\u5EFA\u56FE\u8C31"),((ye=y==null?void 0:y.detail)==null?void 0:ye.can_managed)&&Fe.get("type")!=="classrooms"&&is.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem flex item-center gap-4px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>VL(void 0,null,function*(){let rn=yield(0,Nt.ZP)("/api/knowledge/v2/sync.json",{method:"post",body:{subject_id:Ne==null?void 0:Ne.pathId}});rn.status===0&&nt.ZP.info(rn==null?void 0:rn.message)})},"\u751F\u6210\u56FE\u8C31",is.createElement(pn.Z,{title:is.createElement("span",{className:"c-black"},"\u6839\u636E\u65E7\u7248\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u6216\u8BFE\u7A0B\u7AE0\u8282\u53CA\u8D44\u6E90\u5185\u5BB9\u81EA\u52A8\u751F\u6210\u77E5\u8BC6\u56FE\u8C31"),color:"#fff"},is.createElement(xr.Z,{style:{color:"#fff",marginLeft:5,marginTop:0},rev:void 0})))),is.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}},"\u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u662F\u4EC0\u4E48\uFF1F"),is.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u662F\u4E00\u5F20\u667A\u80FD\u5316\u7684\u77E5\u8BC6\u5BFC\u822A\u5730\u56FE\uFF0C\u901A\u8FC7AI\u6280\u672F\u5C06\u96F6\u6563\u77E5\u8BC6\u70B9\u4E32\u8054\u6210\u903B\u8F91\u7F51\u7EDC\uFF0C\u6E05\u6670\u5C55\u73B0\u5B66\u79D1\u6838\u5FC3\u6982\u5FF5\u3001\u80FD\u529B\u5C42\u7EA7\u4E0E\u5173\u8054\u8DEF\u5F84\u3002\u5B83\u5982\u540C\u4E00\u4F4D\u201C\u8D85\u7EA7\u5BFC\u5E08\u201D\uFF0C\u4E3A\u4F60\u6307\u660E\u5B66\u4EC0\u4E48\u3001\u600E\u4E48\u5B66\u3001\u5B66\u5230\u54EA\u3002",is.createElement("img",{className:"absolute",src:Me(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),is.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},is.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},is.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),is.createElement("div",{className:"w-full flex flex-wrap justify-between",style:{background:`url(${Me(30019)}) center / auto 100% no-repeat`,height:"446rem",gap:"54rem 200rem"}},[{title:"\u5B66\u4E60\u8DEF\u5F84\u751F\u6210",order:1,desc:"\u5C06\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\uFF0C\u6839\u636E\u5173\u7CFB\uFF08\u5305\u542B\u3001\u524D/\u540E\u7EED\uFF09\u548C\u8282\u70B9\u6807\u7B7E\uFF08\u5982\uFF1A\u6587\u79D1/\u7406\u79D1\u3001\u57FA\u7840/\u8FDB\u9636/\u7A81\u7834\uFF09\u5FEB\u901F\u81EA\u52A8\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84\u3002"},{title:"\u80FD\u529B\u56FE\u8C31\u6784\u5EFA",order:2,desc:"\u5C06\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\uFF0C\u6309\u7167\u80FD\u529B\u7EF4\u5EA6\uFF0C\u6784\u5EFA\u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\uFF0C\u7528\u4E8E\u68C0\u9A8C\u5B66\u751F\u5BF9\u8BFE\u7A0B\u57F9\u517B\u80FD\u529B\u7684\u638C\u63E1\u3002"},{title:"\u8BFE\u5802\u5B66\u60C5\u5206\u6790",order:4,desc:"\u652F\u6301\u4E00\u952E\u5C06\u77E5\u8BC6\u56FE\u8C31\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802\uFF0C\u8BA9\u5B66\u751F\u5728\u6559\u5B66\u8BFE\u5802\u4E2D\u5B8C\u6210\u5B66\u4E60\u4EFB\u52A1\uFF0C\u5E76\u53EF\u4EE5\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u60C5\u5206\u6790\u548C\u5B66\u60C5\u9884\u8B66\u3002"},{title:"\u5B66\u4E60\u8D44\u6E90\u63A8\u8350",order:3,desc:"\u5229\u7528\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u5173\u7CFB\u548C\u6807\u7B7E\u5206\u7C7B\uFF0C\u57FA\u4E8E\u5B66\u751F\u5B66\u4E60\u53CA\u638C\u63E1\u5185\u5BB9\u4E3A\u5B66\u751F\u63A8\u8350\u8584\u5F31\u70B9\u3001\u63D0\u5347\u70B9\u3001\u7A81\u7834\u70B9\u8D44\u6E90\u5B66\u4E60\u3002"}].map((rn,Bn)=>is.createElement("div",{key:Bn,className:"py-10px-rem px-20px-rem flex flex-col gap-10px-rem rounded-8px-rem",style:{width:"234rem",height:"160rem",background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",order:rn==null?void 0:rn.order}},is.createElement("div",{className:"text-16px-rem"},Bn+1,". ",rn==null?void 0:rn.title),is.createElement("div",{style:{color:"rgba(255,255,255,0.8)"}},rn==null?void 0:rn.desc))))),is.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},is.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${Me(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u6CE8\u610F\u4E8B\u9879 "),is.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:is.createElement("div",{className:"flex flex-col gap-4px-rem"},is.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u7C7B\u578B"),is.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u4E3B\u8981\u5206\u4E3A\u4E24\u79CD\u7C7B\u578B\uFF1A",is.createElement("span",{style:{color:"#FFE698"}},"\u6807\u7B7E\u8282\u70B9\u548C\u8D44\u6E90\u8282\u70B9"),is.createElement("br",null),is.createElement("span",{className:"c-white"},"\u6807\u7B7E\u8282\u70B9\uFF1A"),"\u7528\u4E8E\u521B\u5EFA\u6587\u672C\u5185\u5BB9\uFF0C\u5982\u7AE0\u8282\u3001\u77E5\u8BC6\u70B9\u3002",is.createElement("br",null),is.createElement("span",{className:"c-white"},"\u8D44\u6E90\u8282\u70B9\uFF1A"),"\u7528\u4E8E\u521B\u5EFA\u8D44\u6E90\u5185\u5BB9\uFF0C\u53EF\u4EE5\u9009\u62E9\u5E73\u53F0\u8D44\u6E90\u3001\u672C\u5730\u4E0A\u4F20\u6587\u4EF6\u548C\u5916\u94FE\u3002",is.createElement("br",null)))},{desc:is.createElement("div",{className:"flex flex-col gap-4px-rem"},is.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u6807\u7B7E"),is.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u6807\u7B7E\u53EF\u4EE5\u7528\u6237\u81EA\u5B9A\u4E49\u6DFB\u52A0\uFF0C\u8282\u70B9\u6807\u7B7E\u4E3B\u8981\u7528\u4E8E\u7B5B\u9009\u8282\u70B9\uFF0C\u5982\u6587\u79D1/\u7406\u79D1/\u5DE5\u79D1\u3001\u7B80\u5355/\u8FDB\u9636/\u56F0\u96BE\u3002",is.createElement("br",null),is.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u56FE\u8C31\u65F6\uFF0C\u5C06\u6807\u7B7E\u540C\u6B65\u5EFA\u7ACB\uFF0C\u540E\u7EED\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u548C\u80FD\u529B\u56FE\u8C31\u65F6\u53EF\u4EE5\u4F7F\u7528\u3002")))},{desc:is.createElement("div",{className:"flex flex-col gap-4px-rem"},is.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u5173\u7CFB"),is.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u5173\u7CFB",is.createElement("span",{style:{color:"#FFE698"}},"\u6709\u5305\u542B/\u88AB\u5305\u542B\u3001\u524D\u5E8F/\u540E\u7EED\u3001\u5173\u8054\u3002"),is.createElement("br",null),is.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u56FE\u8C31\u65F6\uFF0C\u5C06\u5173\u7CFB\u540C\u6B65\u5EFA\u7ACB\uFF0C\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u65F6\uFF0C\u5C06\u6839\u636E\u524D\u5E8F/\u540E\u7EED\u5173\u7CFB\u751F\u6210\u5B66\u4E60\u8DEF\u5F84\u3002")))}].map((rn,Bn)=>is.createElement("div",{key:Bn,className:"py-22px-rem px-16px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},is.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(Bn+1).toString().padStart(2,"0")),is.createElement("div",{className:"flex-1 minW-0"},rn==null?void 0:rn.desc))))))):is.createElement(Cae,{settpacti:ze,tpacti:Oe}),isshow:!0},{name:"\u5B66\u4E60\u8DEF\u5F84",key:2,content:is.createElement(kh,{setxxljac:_e,xxljac:Le}),isshow:!0},{name:"\u4EA4\u6D41\u53CD\u9988",key:4,content:is.createElement(ul,null),isshow:Fe.get("type")!=="classrooms"},{name:"\u80FD\u529B\u56FE\u8C31",key:5,content:is.createElement(moe,null),isshow:!0},{name:"\u6570\u636E\u7EDF\u8BA1",key:6,content:is.createElement(goe.default,{learningpathId:kt,isCompontent:!0}),isshow:Fe.get("type")=="classrooms"&&kt&&(0,Ks.GJ)()},{name:"\u5B66\u60C5\u9884\u8B66",key:7,content:is.createElement(Hle,null),isshow:Fe.get("type")=="classrooms"}].filter(rn=>rn==null?void 0:rn.isshow);(0,fe.useEffect)(()=>{var rn,Bn;if((rn=y==null?void 0:y.detail)!=null&&rn.nodes){let hr=[...(Bn=y==null?void 0:y.detail)==null?void 0:Bn.nodes];Re(hr==null?void 0:hr.splice(1))}},[(Ae=y==null?void 0:y.detail)==null?void 0:Ae.nodes]),(0,fe.useEffect)(()=>So.Z.subscribe("create_a_knowledge_map",()=>{cn(!0)}),[]);const An=(rn={})=>{ee({type:"pathsDetail/getKnowledgeGraphs",payload:jle({graphable_type:Fe.get("type")==="classrooms"?"course":"subject",graphable_id:Ne.pathId},rn)})},Vt=rn=>VL(void 0,null,function*(){var Bn,hr,bt,on,dn,Qn,Un;const{nodeType:Kn,description:Nr,name:Xr,tags:Ht}=rn;jt(!0);const En=yield(0,Nt.ZP)("/api/knowledge/v2/add_node.json",{method:"POST",body:{label:"\u56FE\u8C31",subject_id:Ne==null?void 0:Ne.pathId,properties:{description:Nr,rootNodeUuid:(bt=(hr=(Bn=y==null?void 0:y.detail)==null?void 0:Bn.nodes)==null?void 0:hr[0])==null?void 0:bt.uuid,name:Xr,nodeType:Kn[0],tags:(Ht==null?void 0:Ht.join("\uFF0C"))||"",color:"1"},relationships:[{startNodeUuid:(Qn=(dn=(on=y==null?void 0:y.detail)==null?void 0:on.nodes)==null?void 0:dn[0])==null?void 0:Qn.uuid,type:"\u5305\u542B"}]}});(En==null?void 0:En.status)===0&&(cn(!1),ze((Un=En==null?void 0:En.data)==null?void 0:Un.uuid),ne(3),An({graphable_id:Ne==null?void 0:Ne.pathId})),jt(!1)});return is.createElement("div",{className:lu.content,style:{paddingTop:"20rem"}},is.createElement("div",{style:{padding:"0 40rem",position:"sticky",top:0,zIndex:99}},is.createElement(Nae,{activied:te,setactivied:ne,TabsData:pt,tplist:ke,settpacti:ze,tpacti:Oe,setxxljac:_e,xxljac:Le})),(Be==null?void 0:Be.key)=="\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802"&&is.createElement(df.NI,{onFinish:()=>{An()},type:(me=Be==null?void 0:Be.params)==null?void 0:me.type}),is.createElement(rt.default,{open:tn,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>cn(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{Et.resetFields()},confirmLoading:yt,onOk:()=>Et.submit(),title:"\u65B0\u589E\u77E5\u8BC6\u56FE\u8C31"},is.createElement("div",{className:lu.modal},is.createElement("div",{className:lu.mHead},"\u8282\u70B9\u5C5E\u6027"),is.createElement(it.default,{form:Et,scrollToFirstError:!0,layout:"horizontal",colon:!1,size:"large",labelCol:{flex:"110rem"},onFinish:Vt,className:lu.form},is.createElement(it.default.Item,{label:"\u56FE\u8C31\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8282\u70B9\u540D\u79F0"},{type:"string",max:60,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},is.createElement(ct.default,{maxLength:60,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),is.createElement(it.default.Item,{label:"\u7B80\u4ECB",name:"description",rules:[{type:"string",max:5e3,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},is.createElement(ct.default.TextArea,{maxLength:5e3,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),is.createElement(it.default.Item,{className:lu.mType,label:is.createElement("span",null,"\u56FE\u8C31\u7C7B\u578B ",is.createElement(pn.Z,{title:"\u5F53\u524D\u77E5\u8BC6\u56FE\u8C31\u7684\u7C7B\u578B\uFF0C\u5982\uFF1A\u5927\u7EB2\u56FE\u8C31\u3001\u80FD\u529B\u56FE\u8C31"},is.createElement(xr.Z,null))),name:"nodeType",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8282\u70B9\u7C7B\u578B"}]},is.createElement(ra,{subjectId:Ne==null?void 0:Ne.pathId,type:1}))))),is.createElement("div",{className:lu.content},(Ce=pt.find(rn=>rn.key===te))==null?void 0:Ce.content))};var Xle=(0,st.connect)(({pathsDetail:b,user:a,loading:y,globalSetting:x})=>({pathsDetail:b,user:a,globalSetting:x,loading:y.models.index}))(Gle),pC=Me(59301),GL=Object.getOwnPropertySymbols,Wle=Object.prototype.hasOwnProperty,Qle=Object.prototype.propertyIsEnumerable,Zle=(b,a)=>{var y={};for(var x in b)Wle.call(b,x)&&a.indexOf(x)<0&&(y[x]=b[x]);if(b!=null&&GL)for(var x of GL(b))a.indexOf(x)<0&&Qle.call(b,x)&&(y[x]=b[x]);return y},Yle=(b,a,y)=>new Promise((x,E)=>{var z=ne=>{try{te(y.next(ne))}catch(ie){E(ie)}},ee=ne=>{try{te(y.throw(ne))}catch(ie){E(ie)}},te=ne=>ne.done?x(ne.value):Promise.resolve(ne.value).then(z,ee);te((y=y.apply(b,a)).next())});function XL(b){const a=(E,z)=>{if(E.localName===z)return E;for(let ee=0,te=E;te=te.parentNode;ee++){if(te.localName===z)return te;if(te==document.documentElement)return!1}},y=b.target,x=a(y,"a");if(console.log([x],x==null?void 0:x.href,44),!(x!=null&&x.href)&&y.tagName.toUpperCase()==="IMG"){let E=y.src||y.getAttribute("src");E&&(E==null?void 0:E.indexOf("/images/avatars/User"))===-1&&(b.stopPropagation(),b.preventDefault(),So.Z.publish("preview-image",E))}}const Jle=b=>{var a=b,{pathsDetail:y,globalSetting:x,loading:E,dispatch:z}=a,ee=Zle(a,["pathsDetail","globalSetting","loading","dispatch"]);const[te]=(0,st.useSearchParams)(),ne=(0,st.useParams)(),ie=(0,fe.useRef)(),[ae,oe]=(0,fe.useState)((te==null?void 0:te.get("type"))!=="classrooms"?3:1);(0,fe.useEffect)(()=>{te.get("tabs")&&oe(parseInt(te.get("tabs"))||3)},[te.get("tabs")]),(0,fe.useEffect)(()=>{if(ie.current)return ie.current.addEventListener("mousedown",XL),()=>{var de;(de=ie.current)==null||de.removeEventListener("mousedown",XL)}},[ie.current]),(0,fe.useEffect)(()=>{ne.pathId&&le()},[ne.pathId]),(0,fe.useEffect)(()=>(z({type:"globalSetting/footerToggle",payload:!1}),()=>{z({type:"globalSetting/footerToggle",payload:!0})}),[]);const le=()=>Yle(void 0,null,function*(){const de=yield z({type:"pathsDetail/getKnowledgeGraphs",payload:{graphable_type:te.get("type")==="classrooms"?"course":"subject",graphable_id:ne.pathId}});te.get("type")!="classrooms"&&(de!=null&&de.id)&&te.get("token")&&(location.href=location.pathname)});return pC.createElement(Mt.Z,{spinning:!1},pC.createElement("section",{id:"knowledgegraphDetail",className:uc.bg,style:{background:te.get("type")!=="classrooms"?"#010A23":""}},pC.createElement(sd,null),pC.createElement(Xle,{activied:ae,setactivied:oe})))};var Kle=(0,st.connect)(({pathsDetail:b,loading:a,globalSetting:y})=>({pathsDetail:b,globalSetting:y,loading:a}))(Jle)},88887:function(Tt,zn,Me){"use strict";var fe=Me(59301),st=Object.defineProperty,rt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,at=(He,ct,Mt)=>ct in He?st(He,ct,{enumerable:!0,configurable:!0,writable:!0,value:Mt}):He[ct]=Mt,lt=(He,ct)=>{for(var Mt in ct||(ct={}))nt.call(ct,Mt)&&at(He,Mt,ct[Mt]);if(rt)for(var Mt of rt(ct))$e.call(ct,Mt)&&at(He,Mt,ct[Mt]);return He};const it=()=>`shadow-${Math.random().toString(36).slice(2,9)}`,vt=({percentage:He,startAngle:ct=270,strokeColor:Mt="#42BECD",trackColor:Nt="#e6e6e6",innerBackgroundColor:St="#fff",text:xt="",textColor:gt="#000",textSize:Ct="1rem",textPadding:Ft="28rem",outerDiameter:It,innerDiameter:Ot,maxTextLength:ln=6,onClick:jn,hoverEffect:Nn=!0,style:pn})=>{const[ir,Gt]=(0,fe.useState)(0),[Zt,Cn]=(0,fe.useState)(0),[Qt,sn]=(0,fe.useState)(!1),_t=_n=>{var xn,Yt;const Fn=parseFloat(_n),qr=parseFloat((Yt=(xn=document.documentElement)==null?void 0:xn.style)==null?void 0:Yt.fontSize);return Fn*qr},Zn=()=>{Gt(_t(It)),Cn(_t(Ot))};(0,fe.useEffect)(()=>(Zn(),window.addEventListener("resize",Zn),()=>window.removeEventListener("resize",Zn)),[It,Ot]);const Yn=ir/2,gn=Zt/2,kn=(ir-Zt)/2,Rr=Yn-kn,mt=2*Math.PI*Rr,qe=mt-He/100*mt,er=`rotate(${ct} ${Yn} ${Yn})`,pi=((_n,xn)=>xn&&_n.length>xn?_n.slice(0,xn-1)+"...":_n)(xt,ln),$t=()=>{Nn&&sn(!0)},Jt=()=>{sn(!1)},hn=_t("4rem");return fe.createElement("svg",{width:ir,height:ir,viewBox:`0 0 ${ir} ${ir}`,xmlns:"http://www.w3.org/2000/svg",onClick:jn,onMouseEnter:$t,onMouseLeave:Jt,style:lt({cursor:jn?"pointer":"default"},pn)},fe.createElement("circle",{cx:Yn,cy:Yn,r:gn,fill:St}),fe.createElement("circle",{cx:Yn,cy:Yn,r:Rr,fill:"none",stroke:Nt,strokeWidth:kn}),fe.createElement("circle",{cx:Yn,cy:Yn,r:Rr,fill:"none",stroke:Mt,strokeWidth:kn,strokeDasharray:mt,strokeDashoffset:qe,strokeLinecap:"round",transform:er}),Qt&&fe.createElement("circle",{cx:Yn,cy:Yn,r:Rr+kn/2,fill:"none",stroke:"#FA6400",strokeWidth:_t("4rem")}),xt&&fe.createElement("foreignObject",{x:Yn-gn,y:Yn-gn,width:Zt,height:Zt},fe.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",padding:Ft}},fe.createElement("b",{style:{color:gt,fontSize:Ct,textAlign:"center"},title:xt},pi))))};zn.Z=vt},22797:function(Tt,zn,Me){"use strict";Me.r(zn),Me.d(zn,{KNOWLEDGELEARNINGDETAIL:function(){return Fn},default:function(){return ts}});var fe=Me(59301),st=Me(76560),rt=Me.p+"static/nav.8f5feceb.png",nt=Me(74732),$e=Me(26358),at=Me(16033),lt=Me(82670),it=Me(16122),vt=Me(362),He=Me(61834),ct=Me(8451),Mt=Me(81535),Nt="data:image/png;base64,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",St=Me(87620),xt=Me(64813),gt=Me(87017),Ct=Me(40181),Ft=Me(48289),It=Me(25399),Ot=Me(6767),ln=Me(29787),jn=Me(54172),Nn=Me(60242),pn=Me(65767),ir=Me(22325),Gt=Me(42441),Zt=Me(76411),Cn=Me(56656),Qt=Me.n(Cn),sn=Me(71360),_t=Me(57884),Zn=Me(98072),Yn=Me(37034),gn=Me(90524),kn=Me(49661),Rr=Me(19471),mt=Me(33402),qe=Object.defineProperty,er=Object.defineProperties,yi=Object.getOwnPropertyDescriptors,pi=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Jt=Object.prototype.propertyIsEnumerable,hn=(We,Pe,we)=>Pe in We?qe(We,Pe,{enumerable:!0,configurable:!0,writable:!0,value:we}):We[Pe]=we,_n=(We,Pe)=>{for(var we in Pe||(Pe={}))$t.call(Pe,we)&&hn(We,we,Pe[we]);if(pi)for(var we of pi(Pe))Jt.call(Pe,we)&&hn(We,we,Pe[we]);return We},xn=(We,Pe)=>er(We,yi(Pe)),Yt=(We,Pe,we)=>new Promise((je,Ke)=>{var Te=Rn=>{try{Wn(we.next(Rn))}catch(hs){Ke(hs)}},fn=Rn=>{try{Wn(we.throw(Rn))}catch(hs){Ke(hs)}},Wn=Rn=>Rn.done?je(Rn.value):Promise.resolve(Rn.value).then(Te,fn);Wn((we=we.apply(We,Pe)).next())}),Fn=(We=>(We.KNOWLEDGE="1",We.RESOURCE="2",We.STUDENT="3",We))(Fn||{});const qr=({dispatch:We,pathsDetail:Pe,learningpathId:we,isCompontent:je})=>{var Ke,Te,fn,Wn,Rn,hs,Ji,Ni,Ra,ws,qo,pl,Xi,Cs,Pa;const{detail:Ki,actionTabs:ha}=Pe,[Hn,ri]=(0,fe.useState)((0,st.useParams)()),qa=new URLSearchParams(window.location.search),[no,sd]=(0,fe.useState)({}),[So,uc]=(0,fe.useState)("good"),[,lu,ol,Oi]=(0,Zn.U)(Yn.b,{subject_id:Hn==null?void 0:Hn.pathId,id:Hn==null?void 0:Hn.learningpathId}),[,cc,ll,Gu]=(0,Zn.U)(Yn.S$,{subject_id:Hn==null?void 0:Hn.pathId,id:Hn==null?void 0:Hn.learningpathId}),[Ba,Na]=(0,fe.useState)({page:1,limit:10,type:"1",keyword:""}),{pxToRoot:dc,rootFontSize:Cr}=(0,Rr.Z)(),Wr=(0,fe.useMemo)(()=>{var bn,Vn;const rs=((Vn=(bn=Oi==null?void 0:Oi.data)==null?void 0:bn.route_study_info)==null?void 0:Vn.study_grasp_hash)||[],za=rs==null?void 0:rs.reduce((Wa=0,Da)=>Wa+((Da==null?void 0:Da.value)||0),0),ca=["#37AD83","#0374EA","#F29533","#EE5D5D","#A4C8FC"],si=rs.map((Wa,Da)=>xn(_n({},Wa),{color:ca[Da]})),mo={title:[{text:"\u5404\u9636\u6BB5\u638C\u63E1\u7387\u5360\u6BD4",left:"center",top:"middle",textStyle:{color:"#A4C8FC",fontWeight:"normal",fontSize:dc(12)}}],tooltip:{appendToBody:!0,trigger:"item",position:"right",formatter:({color:Wa,value:Da,name:Vs,percent:io})=>`
\u638C\u63E1\u7387${Vs}
${Da}\u4EBA \u5360\u6BD4${io}%`},color:za==0?["#1F2A51"]:ca,series:{type:"pie",radius:["45%","80%"],label:{position:"inner",fontSize:dc(14),formatter:({percent:Wa})=>Wa==0?"":`${Wa}%`},labelLine:{show:!1},data:rs}};return{listData:si,option:mo}},[(Ke=Oi==null?void 0:Oi.data)==null?void 0:Ke.route_study_info,Cr]),xs=(0,fe.useMemo)(()=>{var bn,Vn,rs,za,ca,si,mo,Wa,Da,Vs;const io=[{value:((Vn=(bn=Oi==null?void 0:Oi.data)==null?void 0:bn.route_study_info)==null?void 0:Vn.complete_rate)||0,name:"\u5E73\u5747\u5B8C\u6210\u7387"},{value:((ca=(za=(rs=Oi==null?void 0:Oi.data)==null?void 0:rs.route_study_info)==null?void 0:za.personal_complete)==null?void 0:ca.complete_rate)||0,name:"\u6700\u9AD8\u5B8C\u6210\u7387"},{value:((mo=(si=Oi==null?void 0:Oi.data)==null?void 0:si.route_study_info)==null?void 0:mo.grasp_rate)||0,name:"\u5E73\u5747\u638C\u63E1\u7387"},{value:((Vs=(Da=(Wa=Oi==null?void 0:Oi.data)==null?void 0:Wa.route_study_info)==null?void 0:Da.personal_grasp)==null?void 0:Vs.grasp_rate)||0,name:"\u6700\u9AD8\u638C\u63E1\u7387"}],Hl=Kl=>{var xr,Ln,go,Mo;return(Kl=="\u6700\u9AD8\u5B8C\u6210\u7387"?(Ln=(xr=Oi==null?void 0:Oi.data)==null?void 0:xr.route_study_info)==null?void 0:Ln.personal_complete:(Mo=(go=Oi==null?void 0:Oi.data)==null?void 0:go.route_study_info)==null?void 0:Mo.personal_grasp)||[]};return{tooltip:{trigger:"item",formatter:({value:Kl,name:xr})=>{var Ln,go,Mo;return xr=="\u5E73\u5747\u5B8C\u6210\u7387"||xr=="\u5E73\u5747\u638C\u63E1\u7387"?`${xr}: ${Kl}%`:`
${xr}\u5B66\u751F\uFF1A
\u59D3\u540D\uFF1A${(Ln=Hl(xr))==null?void 0:Ln.real_name}
\u5B66\u53F7\uFF1A${(go=Hl(xr))==null?void 0:go.student_id}
\u73ED\u7EA7\uFF1A${(Mo=Hl(xr))==null?void 0:Mo.course_group_name}
`}},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{data:io.map(Kl=>Kl.name),axisLabel:{color:"#fff"},axisTick:{show:!1},axisLine:{show:!1}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#A4C8FC",formatter:"{value}%"},splitLine:{lineStyle:{color:"rgba(164,200,252,0.1)"}}},series:{type:"bar",data:io,barMaxWidth:"20%",itemStyle:{color:new Zt.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"#B2E0FF"},{offset:.5,color:"#7BC9FF"},{offset:1,color:"#0A2552"}])},label:{show:!0,position:"top",formatter:"{c}%",color:"#fff"}}}},[(Te=Oi==null?void 0:Oi.data)==null?void 0:Te.route_study_info]),Ps=(0,fe.useMemo)(()=>{var bn,Vn,rs,za,ca,si,mo,Wa,Da,Vs;return[{title:"\u5B66\u4E60\u603B\u4EBA\u6570",num:((Vn=(bn=Oi==null?void 0:Oi.data)==null?void 0:bn.basic_info)==null?void 0:Vn.study_count)||0,unit:"",img:Mt},{title:"\u672A\u5B66\u4E60\u4EBA\u6570",num:((za=(rs=Oi==null?void 0:Oi.data)==null?void 0:rs.basic_info)==null?void 0:za.no_study_count)||0,unit:"",img:St},{title:"\u672C\u5468\u5B66\u4E60\u4EBA\u6570",num:((si=(ca=Oi==null?void 0:Oi.data)==null?void 0:ca.basic_info)==null?void 0:si.week_study_count)||0,unit:"",img:xt},{title:"\u77E5\u8BC6\u70B9\u6570",num:((Wa=(mo=Oi==null?void 0:Oi.data)==null?void 0:mo.basic_info)==null?void 0:Wa.knowledge_count)||0,unit:"",img:gt},{title:"\u8D44\u6E90\u603B\u6570",num:((Vs=(Da=Oi==null?void 0:Oi.data)==null?void 0:Da.basic_info)==null?void 0:Vs.resource_count)||0,unit:"",img:Ct}]},[(fn=Oi==null?void 0:Oi.data)==null?void 0:fn.basic_info]),ur=(0,fe.useMemo)(()=>{var bn,Vn,rs,za,ca,si,mo,Wa,Da,Vs,io,Hl;const Kl=(rs=(Vn=(bn=Oi==null?void 0:Oi.data)==null?void 0:bn.resource_info)==null?void 0:Vn.resource_data)==null?void 0:rs.reduce((go=0,Mo)=>go+((Mo==null?void 0:Mo.num)||0),0),xr=(si=(ca=(za=Oi==null?void 0:Oi.data)==null?void 0:za.resource_info)==null?void 0:ca.publish_resource_data)==null?void 0:si.reduce((go=0,Mo)=>go+((Mo==null?void 0:Mo.num)||0),0),Ln=[{title:"\u5B9E\u8BAD\u6570",node_type:"\u5B9E\u8BAD",num:0,publishNum:0,unit:"",img:Me(31537),trailColor:"#202857",strokeColor:"#0676DB"},{title:"\u89C6\u9891\u6570",node_type:"\u89C6\u9891",num:0,publishNum:0,unit:"",img:Me(46058),trailColor:"#202857",strokeColor:"#26A27A"},{title:"\u8BFE\u4EF6\u6570",node_type:"\u8BFE\u4EF6",num:0,publishNum:0,unit:"",img:Me(71190),trailColor:"#202857",strokeColor:"#CDCB56"},{title:"\u8BD5\u5377\u6570",node_type:"\u8BD5\u5377",num:0,publishNum:0,unit:"",img:Me(51889),trailColor:"#202857",strokeColor:"#C2652F"},{title:"\u4F5C\u4E1A\u6570",node_type:"\u4F5C\u4E1A",num:0,publishNum:0,unit:"",img:Me(95754),trailColor:"#202857",strokeColor:"#5DC711"},{title:"\u5176\u4ED6\u7C7B\u578B",node_type:"\u5176\u4ED6\u7C7B\u578B",num:0,publishNum:0,unit:"",img:Me(9490),trailColor:"#202857",strokeColor:"#4903FE"}];return{resource_data:(Da=(Wa=(mo=Oi==null?void 0:Oi.data)==null?void 0:mo.resource_info)==null?void 0:Wa.resource_data)==null?void 0:Da.map(go=>xn(_n(_n({},(Ln==null?void 0:Ln.find(Mo=>(Mo==null?void 0:Mo.node_type)==(go==null?void 0:go.node_type)))||{}),go),{publishNum:((go==null?void 0:go.num)||0)/Kl*100})),publish_resource_data:(Hl=(io=(Vs=Oi==null?void 0:Oi.data)==null?void 0:Vs.resource_info)==null?void 0:io.publish_resource_data)==null?void 0:Hl.map(go=>xn(_n(_n({},(Ln==null?void 0:Ln.find(Mo=>(Mo==null?void 0:Mo.node_type)==(go==null?void 0:go.node_type)))||{}),go),{publishNum:((go==null?void 0:go.num)||0)/xr*100}))}},[(Wn=Oi==null?void 0:Oi.data)==null?void 0:Wn.resource_info]),Hr=[{title:"\u6392\u540D",dataIndex:"test1",width:55,render:(bn,Vn,rs)=>fe.createElement(fe.Fragment,null,rs==0||rs==1||rs==2?fe.createElement("img",{src:rs==0?lt:rs==1?it:vt,width:12,height:14,style:{width:"12rem"}}):rs+1)},{title:"\u77E5\u8BC6\u70B9\u540D\u79F0",ellipsis:!0,dataIndex:"name"},{title:"\u7ED1\u5B9A\u8D44\u6E90\u6570",ellipsis:!0,dataIndex:"resource_count"},{title:"\u5B66\u4E60\u4EBA\u6570",ellipsis:!0,dataIndex:"study_count"},{title:"\u5E73\u5747\u638C\u63E1\u7387",ellipsis:!0,dataIndex:"grasp_rate",render:bn=>`${bn}%`}],mi=[{title:"\u6392\u5E8F",width:"80rem",dataIndex:"test1",render:(bn,Vn,rs)=>rs+1},{title:"\u77E5\u8BC6\u70B9\u540D\u79F0",ellipsis:!0,dataIndex:"name"},{title:"\u5173\u8054\u8D44\u6E90\u6570",width:"120rem",ellipsis:!0,dataIndex:"resource_count"},{title:"\u5B9E\u8BAD",width:"120rem",ellipsis:!0,dataIndex:"shixun"},{title:"\u89C6\u9891",width:"120rem",ellipsis:!0,dataIndex:"video"},{title:"\u8BFE\u4EF6",width:"120rem",ellipsis:!0,dataIndex:"attachment"},{title:"\u8003\u8BD5",width:"120rem",ellipsis:!0,dataIndex:"examination_bank"},{title:"\u4F5C\u4E1A",width:"120rem",ellipsis:!0,dataIndex:"homework"},{title:"\u5E73\u5747\u5B8C\u6210\u7387",width:"120rem",ellipsis:!0,dataIndex:"complete_rate",render:bn=>`${bn}%`},{title:"\u5E73\u5747\u638C\u63E1\u7387",width:"120rem",ellipsis:!0,dataIndex:"grasp_rate",render:bn=>`${bn}%`},{title:"\u64CD\u4F5C",width:"120rem",ellipsis:!0,dataIndex:"test11",render:(bn,Vn)=>fe.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{qa.set("StatisticName",Vn==null?void 0:Vn.name),(0,kn.xg)(`/knowledgegraph/${Hn==null?void 0:Hn.pathId}/statistics/learningpath/${Hn==null?void 0:Hn.learningpathId}/detail/${Vn==null?void 0:Vn.id}?${qa}`)}},"\u67E5\u770B\u8BE6\u60C5")}],Ss=[{title:"\u6392\u5E8F",width:"80rem",dataIndex:"test1",render:(bn,Vn,rs)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?null:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",rs+1," "))},{title:"\u8D44\u6E90\u540D\u79F0",ellipsis:!0,dataIndex:"name",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u6240\u5C5E\u77E5\u8BC6\u70B9",width:"120rem",ellipsis:!0,dataIndex:"knowledge_name",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u8D44\u6E90\u7C7B\u578B",width:"120rem",ellipsis:!0,dataIndex:"node_type",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u5B8C\u6210\u7387",width:"120rem",ellipsis:!0,dataIndex:"complete_rate",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," %"))},{title:"\u638C\u63E1\u7387",width:"120rem",ellipsis:!0,dataIndex:"grasp_rate",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," %"))},{title:"\u8BC4\u6D4B\u6B21\u6570",width:"120rem",ellipsis:!0,dataIndex:"evaluate_count",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u89C2\u770B\u65F6\u957F",width:"120rem",ellipsis:!0,dataIndex:"watch_time",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u67E5\u770B\u6B21\u6570/\u4E0B\u8F7D\u6B21\u6570",width:"180rem",ellipsis:!0,dataIndex:"download_count",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u64CD\u4F5C",width:"100rem",ellipsis:!0,dataIndex:"test11",render:(bn,Vn)=>fe.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{qa.set("StatisticName",encodeURIComponent(Vn==null?void 0:Vn.name)),qa.set("knowledge_name",encodeURIComponent(Vn==null?void 0:Vn.knowledge_name)),(0,kn.xg)(`/knowledgegraph/${Hn==null?void 0:Hn.pathId}/statistics/learningpath/${Hn==null?void 0:Hn.learningpathId}/detail/${Vn==null?void 0:Vn.id}?${qa}`)}},"\u67E5\u770B\u8BE6\u60C5")}],ro=[{title:"\u6392\u5E8F",width:"80rem",dataIndex:"test1",render:(bn,Vn,rs)=>rs+1},{title:"\u59D3\u540D",ellipsis:!0,dataIndex:"name"},{title:"\u5B66\u53F7",ellipsis:!0,dataIndex:"student_id",render:bn=>bn||"--"},{title:"\u73ED\u7EA7",ellipsis:!0,dataIndex:"course_group_name"},{title:"\u77E5\u8BC6\u70B9\u638C\u63E1\u6570",ellipsis:!0,dataIndex:"knowledge_count"},{title:"\u5E73\u5747\u5B8C\u6210\u7387",ellipsis:!0,dataIndex:"complete_rate",render:bn=>`${bn}%`},{title:"\u5E73\u5747\u638C\u63E1\u7387",ellipsis:!0,dataIndex:"grasp_rate",render:bn=>`${bn}%`},{title:"\u64CD\u4F5C",width:"200rem",ellipsis:!0,dataIndex:"test11",render:(bn,Vn)=>fe.createElement("div",{className:"flex item-center gap-20px-rem"},fe.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{(0,kn.xg)(`/knowledgegraph/${Hn==null?void 0:Hn.pathId}/statistics/learningpath/${Hn==null?void 0:Hn.learningpathId}/detail/${Vn==null?void 0:Vn.user_id}?${qa}`)}},"\u67E5\u770B\u8BE6\u60C5"))}],Ns=[{title:"\u6392\u540D",width:"80rem",dataIndex:"test1",render:(bn,Vn,rs)=>fe.createElement(It.Z,{placement:"topLeft",title:!(Vn!=null&&Vn.is_publish)&&"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}},rs==0||rs==1||rs==2?fe.createElement("img",{src:rs==0?lt:rs==1?it:vt,width:12,height:14,style:{width:"12rem"}}):rs+1))},{title:"\u9636\u6BB5\u540D\u79F0",ellipsis:!0,dataIndex:"name",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u77E5\u8BC6\u70B9\u6570",width:"100rem",ellipsis:!0,dataIndex:"knowledge_count",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u8D44\u6E90\u6570",width:"100rem",ellipsis:!0,dataIndex:"resource_count",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn," "))},{title:"\u5E73\u5747\u638C\u63E1\u7387",width:"100rem",ellipsis:!0,dataIndex:"grasp_rate",render:(bn,Vn)=>fe.createElement(It.Z,{placement:"topLeft",title:Vn!=null&&Vn.is_publish?bn:"\u6682\u672A\u53D1\u5E03"},fe.createElement("span",{style:{color:Vn!=null&&Vn.is_publish?"":"#535A6E"}}," ",bn,"% "))}];return(0,fe.useEffect)(()=>{we&&ri(xn(_n({},Hn),{learningpathId:we}))},[we]),(0,fe.useEffect)(()=>{var bn;Hn!=null&&Hn.learningpathId&&sd(((bn=Ki==null?void 0:Ki.route_nodes)==null?void 0:bn.find(Vn=>(Vn==null?void 0:Vn.id)==(Hn==null?void 0:Hn.learningpathId)))||{})},[Hn,Ki==null?void 0:Ki.route_nodes]),(0,fe.useEffect)(()=>{Hn!=null&&Hn.learningpathId&&ol({subject_id:Hn==null?void 0:Hn.pathId,id:Hn==null?void 0:Hn.learningpathId})},[Hn==null?void 0:Hn.learningpathId]),(0,fe.useEffect)(()=>{var bn;(bn=Oi==null?void 0:Oi.data)!=null&&bn.is_updating&&Ot.ZP.warning("\u5B66\u4E60\u8DEF\u5F84\u7EDF\u8BA1\u6570\u636E\u6B63\u5728\u66F4\u65B0\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u9875\u9762")},[(Rn=Oi==null?void 0:Oi.data)==null?void 0:Rn.is_updating]),(0,fe.useEffect)(()=>{Hn!=null&&Hn.learningpathId&&ll(xn(_n({},Ba),{id:Hn==null?void 0:Hn.learningpathId}))},[Ba,Hn==null?void 0:Hn.learningpathId]),(0,fe.useEffect)(()=>{qa&&(qa.set("StatisticType",Ba==null?void 0:Ba.type),qa.set("tabs","2"))},[qa,Ba==null?void 0:Ba.type]),fe.createElement(mt.Z,null,fe.createElement(ln.Z,{spinning:lu},fe.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col pb-20px-rem",style:{background:"#030616"}},fe.createElement("div",{className:`sticky w-full px-56px-rem flex item-center gap-10px-rem ${je?"py-10px-rem":"pt-22px-rem pb-32px-rem"}`,style:{height:je?"auto":"90rem",top:je?"40rem":0,zIndex:1,background:`rgb(3, 6, 22) ${je?"":`url(${rt})`}`,backgroundRepeat:"no-repeat",backgroundSize:"100% 100%"}},fe.createElement("img",{src:nt,className:"current",style:{width:"66rem",height:"20rem"},onClick:()=>{st.history.push(`/knowledgegraph/${Hn.pathId}?${qa}`)}}),fe.createElement("div",{className:"flex item-center rounded-full text-14px-rem mr-auto",style:{background:"#123269",padding:"0 0 0 20rem",gap:"10rem"}},fe.createElement("div",{className:"c-grey-eee text-nowrap "},"\u5F53\u524D\u8DEF\u5F84"),fe.createElement(It.Z,{title:(no==null?void 0:no.name)||"",placement:"topLeft"},fe.createElement("div",{style:{width:"160rem"},className:"multi_ellipsis1"},(no==null?void 0:no.name)||"")),fe.createElement("div",{className:`current flex item-center justify-center text-nowrap ${pn.Z.ChangeBut}`,onClick:()=>{We({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"",type:"route",currentSelectData:no}}})}},fe.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),((hs=Oi==null?void 0:Oi.data)==null?void 0:hs.updated_at)&&fe.createElement(fe.Fragment,null,fe.createElement("img",{src:at,style:{width:"14rem"}}),fe.createElement("div",null,Qt()((Ji=Oi==null?void 0:Oi.data)==null?void 0:Ji.updated_at).format("YYYY-MM-DD HH:mm"))),fe.createElement("div",{className:`current flex item-center text-nowrap ${pn.Z.ChangeBut}`,onClick:()=>Yt(void 0,null,function*(){const bn=yield(0,Yn.D$)({subject_id:Hn==null?void 0:Hn.pathId,id:Hn==null?void 0:Hn.learningpathId});(bn==null?void 0:bn.status)==0&&Ot.ZP.success("\u6570\u636E\u66F4\u65B0\u4E2D\uFF0C\u5927\u698210 ~ 15\u5206\u949F\u4E4B\u540E\u5237\u65B0\u9875\u9762")})}," \u66F4\u65B0")),fe.createElement("div",{className:"flex gap-20px-rem px-40px-rem py-20px-rem",style:{background:`url(${Ft})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center"}},fe.createElement("div",{className:"flex flex-col gap-20px-rem",style:{flex:1.5}},fe.createElement("div",{className:`${pn.Z.DefaultDiv} p-20px-rem`},fe.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},fe.createElement("img",{src:$e,style:{width:"9rem",height:"17rem"}}),fe.createElement("div",null,"\u5404\u9636\u6BB5\u638C\u63E1\u7387\u5360\u6BD4")),fe.createElement("div",{className:"flex item-center"},fe.createElement(Gt.Z,{style:{width:"50%",height:"300rem",transform:"translateX(-10rem)"},option:(Wr==null?void 0:Wr.option)||{}}),fe.createElement("div",{className:pn.Z.masteryList},fe.createElement("div",{className:pn.Z.masteryHead},fe.createElement("div",null,"\u638C\u63E1\u7387"),fe.createElement("div",null,"\u4EBA\u6570"),fe.createElement("div",null,"\u5360\u6BD4")),(Ni=Wr==null?void 0:Wr.listData)==null?void 0:Ni.map((bn,Vn)=>fe.createElement("div",{className:pn.Z.masteryBody,key:Vn},fe.createElement("div",{className:"flex item-center"},fe.createElement("div",{className:pn.Z.dot,style:{backgroundColor:bn==null?void 0:bn.color}}),fe.createElement("span",{style:{color:"#D0E3FF"}},bn.name)),fe.createElement("div",null,bn.value),fe.createElement("div",null,bn.rate,"%")))))),fe.createElement("div",{className:`${pn.Z.DefaultDiv} p-20px-rem gap-16px-rem flex flex-col`,style:{flex:2.5,paddingTop:0}},fe.createElement("div",{className:"flex item-center"},[{name:"\u77E5\u8BC6\u70B9\u638C\u63E1\u4F18\u79C0\u699C",img:He,key:"good"},{name:"\u77E5\u8BC6\u70B9\u638C\u63E1\u5F85\u63D0\u5347\u699C",img:ct,key:"up"}].map(bn=>fe.createElement("div",{key:bn==null?void 0:bn.name,className:`flex-1 py-12px-rem flex item-center justify-center current text-16px-rem gap-6px-rem ${pn.Z.DefaultDivItem} ${So==(bn==null?void 0:bn.key)?pn.Z.DefaultDivItemActive:""}`,style:{height:"40rem"},onClick:()=>{uc(bn==null?void 0:bn.key)}},fe.createElement("img",{src:bn==null?void 0:bn.img,width:16,height:16,style:{width:"16rem"}}),bn==null?void 0:bn.name))),fe.createElement(jn.default,{className:`mt-16px-rem ${pn.Z.TableStyle} flex-1`,locale:{emptyText:fe.createElement(_t.Z,null)},columns:Hr,pagination:!1,dataSource:So=="good"?(Ra=Oi==null?void 0:Oi.data)==null?void 0:Ra.desc_knowledge_infos:(ws=Oi==null?void 0:Oi.data)==null?void 0:ws.asc_knowledge_infos}))),fe.createElement("div",{className:"flex-2 flex flex-col gap-20px-rem"},fe.createElement("div",{className:"flex-1 flex gap-30px-rem pt-40px-rem"},Ps==null?void 0:Ps.map((bn,Vn)=>fe.createElement("div",{key:Vn,className:`flex-1 pb-20px-rem flex flex-col gap-10px-rem item-center ${pn.Z.DefaultDiv}`},fe.createElement("img",{src:bn==null?void 0:bn.img,width:80,height:80,style:{width:"80rem",height:"80rem",marginTop:"-40rem"}}),fe.createElement("div",{className:"text-18px-rem blod",style:{color:"#72E8FF"}},bn==null?void 0:bn.num,bn==null?void 0:bn.unit),fe.createElement("div",{className:"",style:{color:"#A4C8FC"}},bn==null?void 0:bn.title)))),fe.createElement("div",{className:`flex-2 ${pn.Z.DefaultDiv} relative`},fe.createElement("div",{className:"absolute flex item-center justify-center",style:{color:"#C2E0F8",height:"25rem",width:"253rem",top:0,left:"50%",transform:"translateX(-50%)",background:`url(${Nt})`,backgroundRepeat:"no-repeat",backgroundSize:"100% 100%"}}," \u8DEF\u5F84\u5B66\u4E60\u60C5\u51B5 "),fe.createElement(Gt.Z,{key:Cr,className:"w-full h-full",option:xs})),fe.createElement("div",{className:`p-20px-rem ${pn.Z.DefaultDiv}`,style:{flex:3}},fe.createElement("div",{className:"text-16px-rem"},"\u9636\u6BB5\u5B66\u4E60\u60C5\u51B5"),fe.createElement(jn.default,{className:`mt-14px-rem ${pn.Z.TableStyle} flex-1`,locale:{emptyText:fe.createElement(_t.Z,null)},columns:Ns,pagination:!1,dataSource:((qo=Oi==null?void 0:Oi.data)==null?void 0:qo.stage_knowledge_infos)||[]}))),fe.createElement("div",{className:"flex flex-col gap-20px-rem",style:{flex:1.5}},fe.createElement("div",{className:`p-20px-rem ${pn.Z.DefaultDiv} flex gap-10px-rem`},fe.createElement("div",{className:"flex-1"},fe.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},fe.createElement("img",{src:$e,style:{width:"9rem",height:"17rem"}}),fe.createElement("div",null,"\u8D44\u6E90\u603B\u6570\u91CF")),fe.createElement("div",{className:"mt-40px-rem",style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:"25rem 10rem"}},(pl=ur==null?void 0:ur.resource_data)==null?void 0:pl.map((bn,Vn)=>fe.createElement("div",{key:Vn,className:"flex flex-col item-center",style:{height:"84rem",background:`url(${bn==null?void 0:bn.img}) 0% 0% / 100% 100% no-repeat`}},fe.createElement("div",{className:"text-18px-rem blod",style:{color:"#72E8FF"}},bn==null?void 0:bn.num,bn==null?void 0:bn.unit),fe.createElement("div",{className:"text-12px-rem",style:{color:"#D7EEFF"}},bn==null?void 0:bn.title))))),fe.createElement("div",{className:"flex-1"},fe.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},fe.createElement("img",{src:$e,style:{width:"9rem",height:"17rem"}}),fe.createElement("div",null,"\u5DF2\u53D1\u5E03\u8D44\u6E90\u6570")),fe.createElement("div",{className:"mt-30px-rem flex flex-col gap-12px-rem pl-20px-rem"},(Xi=ur==null?void 0:ur.publish_resource_data)==null?void 0:Xi.map((bn,Vn)=>fe.createElement("div",{key:Vn,className:"flex flex-col gap-6px-rem"},fe.createElement("div",{className:"w-full flex item-center justify-between text-12px-rem"},fe.createElement("div",{style:{color:"#D7EEFF"}},bn==null?void 0:bn.title),fe.createElement("div",null,bn==null?void 0:bn.num)),fe.createElement(Nn.Z,{className:`${pn.Z.ProgressStyle}`,style:{marginBottom:"0",marginLeft:"0",height:"6rem"},percent:bn==null?void 0:bn.publishNum,showInfo:!1,trailColor:bn==null?void 0:bn.trailColor,strokeColor:bn==null?void 0:bn.strokeColor})))))),fe.createElement("div",{className:`p-20px-rem ${pn.Z.DefaultDiv}`,style:{flex:2.5}},fe.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},fe.createElement("img",{src:$e,style:{width:"9rem",height:"17rem"}}),fe.createElement("div",null,"\u5B66\u751F\u638C\u63E1\u7387\u6392\u884C\u699C")),fe.createElement("div",{className:"flex flex-col mt-24px-rem gap-10px-rem"},(Pa=(Cs=Oi==null?void 0:Oi.data)==null?void 0:Cs.student_grasp_rank_lists)==null?void 0:Pa.map((bn,Vn)=>fe.createElement("div",{key:bn==null?void 0:bn.user_id,className:`flex item-center ${pn.Z.RankingDiv} px-20px-rem gap-20px-rem rounded-2px-rem`,style:{height:"46rem"}},Vn==0||Vn==2||Vn==1?fe.createElement("img",{src:Vn==0?Me(71463):Vn==1?Me(69035):Me(16065),width:34,height:34,style:{width:"34rem",height:"34rem"}}):fe.createElement("div",{className:"flex item-center justify-center",style:{width:"34rem",height:"34rem",background:`url(${Me(73099)}) 0% 0% / 100% 100% no-repeat`}},Vn+1),fe.createElement("div",{className:"flex flex-2 minW-0 item-center"},fe.createElement("img",{src:`${gn.Z.IMG_SERVER}/images/${bn==null?void 0:bn.avatar_url}`,width:30,height:30,className:"rounded-full",style:{width:"30rem",height:"30rem",border:"1rem solid #18D6FF"}}),fe.createElement(It.Z,{title:bn==null?void 0:bn.real_name},fe.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},bn==null?void 0:bn.real_name))),fe.createElement("div",{className:"flex-1 minW-0 flex item-center"},fe.createElement(It.Z,{title:"\u638C\u63E1\u7387"},fe.createElement("img",{src:Me(39633),width:14,height:14,style:{width:"14rem",height:"14rem"}})),fe.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},bn==null?void 0:bn.grasp_rate,"%")),fe.createElement("div",{className:"flex-1 minW-0 flex item-center"},fe.createElement(It.Z,{title:"\u5B8C\u6210\u7387"},fe.createElement("img",{src:Me(31434),width:14,height:14,style:{width:"14rem",height:"14rem"}})),fe.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},bn==null?void 0:bn.complete_rate,"%")))))))),fe.createElement("div",{className:`flex item-center ${pn.Z.NavBgTwo}`},[{title:"\u77E5\u8BC6\u70B9\u7EDF\u8BA1",key:"1"},{title:"\u8D44\u6E90\u5B66\u4E60\u7EDF\u8BA1\u8868",key:"2"},{title:"\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1\u8868",key:"3"}].map(bn=>fe.createElement("div",{key:bn==null?void 0:bn.key,className:`flex item-center justify-center text-16px-rem h-full current ${pn.Z.NavBgItem} ${(Ba==null?void 0:Ba.type)==(bn==null?void 0:bn.key)?pn.Z.NavBgTwoActive:""}`,onClick:()=>{Na(xn(_n({},Ba),{type:bn==null?void 0:bn.key,page:1,keyword:""}))}},bn==null?void 0:bn.title))),fe.createElement("div",{className:"px-40px-rem flex item-center justify-between mt-10px-rem"},fe.createElement("div",{className:"text-16px-rem"},"\u5217\u8868\u8BE6\u60C5"),fe.createElement(sn.t7,{className:pn.Z.InputStyle,style:{background:"#0A1634"},placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",value:Ba==null?void 0:Ba.keyword,onChange:bn=>{Na(xn(_n({},Ba),{keyword:bn,page:1}))}})),fe.createElement("div",{className:`${pn.Z.DefaultDiv} ml-40px-rem mr-40px-rem p-20px mt-10px-rem`,style:{background:`url(${Ft})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center"}},fe.createElement(jn.default,{className:`${pn.Z.TableStyle}`,loading:cc,locale:{emptyText:fe.createElement(_t.Z,null)},columns:(Ba==null?void 0:Ba.type)=="1"?mi:(Ba==null?void 0:Ba.type)=="2"?Ss:ro,dataSource:(Gu==null?void 0:Gu.data)||[],pagination:{total:(Gu==null?void 0:Gu.total_count)||0,onChange:(bn,Vn)=>{Na(xn(_n({},Ba),{page:bn,limit:Vn}))},current:Ba==null?void 0:Ba.page,pageSize:Ba==null?void 0:Ba.limit}})),(ha==null?void 0:ha.key)&&fe.createElement(ir.E_,{type:"route",isCustom:!0,open:(ha==null?void 0:ha.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",currentSeleteData:no,onFinish:bn=>{ri(xn(_n({},Hn),{learningpathId:bn==null?void 0:bn.selectId})),st.history.push(`/knowledgegraph/${Hn==null?void 0:Hn.pathId}/statistics/learningpath/${bn==null?void 0:bn.selectId}?${qa}`)}}))))};var ts=(0,st.connect)(({pathsDetail:We})=>({pathsDetail:We}))(qr)},22325:function(Tt,zn,Me){"use strict";Me.d(zn,{E_:function(){return Gt},DZ:function(){return Cn},NI:function(){return sn}});var fe=Me(62957),st=Me(6767),rt=Me(25399),nt=Me(62673),$e=Me(28284),at=Me(37568),lt=Me(82326),it=Me(47889),vt=Me(71411),He=Me(59301),ct=Me(76560),Mt={ItemDom:"ItemDom___gJ4Dc"},Nt=Me(98072),St=Me(37034),xt=Object.defineProperty,gt=Object.defineProperties,Ct=Object.getOwnPropertyDescriptors,Ft=Object.getOwnPropertySymbols,It=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,ln=(_t,Zn,Yn)=>Zn in _t?xt(_t,Zn,{enumerable:!0,configurable:!0,writable:!0,value:Yn}):_t[Zn]=Yn,jn=(_t,Zn)=>{for(var Yn in Zn||(Zn={}))It.call(Zn,Yn)&&ln(_t,Yn,Zn[Yn]);if(Ft)for(var Yn of Ft(Zn))Ot.call(Zn,Yn)&&ln(_t,Yn,Zn[Yn]);return _t},Nn=(_t,Zn)=>gt(_t,Ct(Zn)),pn=(_t,Zn,Yn)=>new Promise((gn,kn)=>{var Rr=er=>{try{qe(Yn.next(er))}catch(yi){kn(yi)}},mt=er=>{try{qe(Yn.throw(er))}catch(yi){kn(yi)}},qe=er=>er.done?gn(er.value):Promise.resolve(er.value).then(Rr,mt);qe((Yn=Yn.apply(_t,Zn)).next())});const ir=({dispatch:_t,pathsDetail:Zn,currentSeleteData:Yn,onFinish:gn,open:kn,title:Rr,type:mt,isCustom:qe})=>{var er;const yi=mt==="knowledge"?"uuid":"id",pi=(0,ct.useParams)(),{detail:$t}=Zn,[Jt,hn]=(0,He.useState)(Yn==null?void 0:Yn[yi]),[,_n,xn]=(0,Nt.U)(St.mE,{subject_id:pi==null?void 0:pi.pathId,type:mt}),Yt=mt==="goal"?$t==null?void 0:$t.ability_goals:mt==="knowledge"?(($t==null?void 0:$t.nodes)||[]).slice(1):$t==null?void 0:$t.route_nodes;return He.createElement(fe.default,{open:kn,width:1078,destroyOnClose:!0,closeIcon:Yn!=null&&Yn[yi]?"":null,centered:!0,maskClosable:!1,keyboard:!1,confirmLoading:_n,title:Rr,cancelButtonProps:{style:{display:Yn!=null&&Yn[yi]?"inline-block":"none"}},onCancel:()=>{Yn!=null&&Yn[yi]&&_t({type:"pathsDetail/save",payload:{actionTabs:{key:""}}})},onOk:()=>pn(void 0,null,function*(){var Fn;const qr=mt==="goal"?"\u80FD\u529B\u56FE\u8C31":mt==="knowledge"?"\u77E5\u8BC6\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84";if(!Jt){st.ZP.warning(`\u8BF7\u5148\u9009\u62E9${qr}`);return}let ts;qe||(ts=yield xn({type:mt,subject_id:pi==null?void 0:pi.pathId,id:Jt})),((ts==null?void 0:ts.status)==0||qe)&&((Fn=st.ZP)==null||Fn.success(`${qr}\u9009\u62E9\u6210\u529F\uFF01`),_t({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),gn==null||gn({selectId:Jt}))})},He.createElement("div",{className:"flex flex-col gap-16px-rem p-4px-rem",style:{overflow:"auto",maxHeight:"60vh"}},(er=Yt||[])==null?void 0:er.map(Fn=>{var qr;return He.createElement("div",{key:Fn==null?void 0:Fn[yi],className:`flex flex-col px-20px-rem py-14px-rem rounded-4px-rem ${(qr=Mt)==null?void 0:qr.ItemDom}`},He.createElement("div",{className:"flex item-center gap-10px-rem"},He.createElement(rt.Z,{title:Fn==null?void 0:Fn.name},He.createElement("div",{className:"text-500 text-16px-rem multi_ellipsis1 flex-1 minW-0",style:{color:"#232B40"}},Fn==null?void 0:Fn.name)),He.createElement(nt.default,{className:"ml-auto",checked:Jt===(Fn==null?void 0:Fn[yi]),onChange:ts=>{hn(ts.target.checked?Fn==null?void 0:Fn[yi]:null)}})),He.createElement("div",{className:"flex item-center gap-12px-rem text-14px-rem",style:{marginTop:"14rem"}},He.createElement("div",{className:"text-end w-64px-rem",style:{color:"#9096A3"}},"\u9002\u7528\u4EBA\u7FA4"),He.createElement("div",{style:{color:"#232B40"}},(Fn==null?void 0:Fn.applicable_people)||"--")),He.createElement("div",{className:"flex item-center gap-12px-rem text-14px-rem",style:{marginTop:"12rem"}},He.createElement("div",{className:"text-end w-64px-rem",style:{color:"#9096A3"}},"\u7B80\u4ECB"),He.createElement(rt.Z,{title:Fn==null?void 0:Fn.description,placement:"topLeft"},He.createElement("div",{className:"multi_ellipsis1 flex-1 minW-0",style:{color:"#232B40"}},(Fn==null?void 0:Fn.description)||"--"))))})))},Gt=(0,ct.connect)(({pathsDetail:_t})=>({pathsDetail:_t}))(ir),Zt=({pathsDetail:_t,dispatch:Zn,onFinish:Yn,currentSeleteData:gn={}})=>{const{actionTabs:kn,detail:Rr}=_t,mt=(0,ct.useParams)(),[qe]=$e.default.useForm(),[,er,yi]=(0,Nt.U)(St.wv,{subject_id:mt==null?void 0:mt.pathId}),[,pi,$t]=(0,Nt.U)(St.EG,{subject_id:mt==null?void 0:mt.pathId});return(0,He.useEffect)(()=>{(kn==null?void 0:kn.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"&&qe.setFieldsValue(jn({},gn))},[gn,kn]),He.createElement(fe.default,{open:(kn==null?void 0:kn.key)=="\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"||(kn==null?void 0:kn.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31",width:700,centered:!0,confirmLoading:er||pi,destroyOnClose:!0,title:kn==null?void 0:kn.key,onCancel:()=>{Zn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),qe.resetFields()},okText:(kn==null?void 0:kn.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?"\u786E\u5B9A\u4FEE\u6539":"\u786E\u8BA4\u65B0\u5EFA",onOk:()=>pn(void 0,null,function*(){qe.submit()})},He.createElement($e.default,{form:qe,preserve:!1,labelCol:{span:4},labelAlign:"right",size:"large",colon:!1,onFinish:Jt=>pn(void 0,null,function*(){const hn=yield((kn==null?void 0:kn.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?$t:yi)(Nn(jn({},Jt),{subject_id:mt==null?void 0:mt.pathId}));(hn==null?void 0:hn.status)==0&&(st.ZP.success((kn==null?void 0:kn.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?"\u4FEE\u6539\u6210\u529F":"\u521B\u5EFA\u6210\u529F"),qe.resetFields(),Zn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),Yn==null||Yn())})},He.createElement($e.default.Item,{name:"id",hidden:!0}),He.createElement($e.default.Item,{name:"name",label:"\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0"},{whitespace:!0,message:"\u8F93\u5165\u540D\u79F0\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},He.createElement(at.default,{placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0",maxLength:20,showCount:!0})),He.createElement($e.default.Item,{name:"knowledge_graph_route_id",label:"\u5173\u8054\u5B66\u4E60\u8DEF\u5F84",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84"}]},He.createElement(lt.default,{showSearch:!0,optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",options:(Rr==null?void 0:Rr.route_nodes)||[]})),He.createElement($e.default.Item,{name:"applicable_people",label:"\u9002\u7528\u4EBA\u7FA4"},He.createElement(at.default,{placeholder:"\u8BF7\u8F93\u5165\u9002\u7528\u4EBA\u7FA4",maxLength:50,showCount:!0})),He.createElement($e.default.Item,{name:"description",label:"\u7B80\u4ECB"},He.createElement(at.default.TextArea,{rows:4,placeholder:"\u8BF7\u8F93\u5165\u7B80\u4ECB",maxLength:200,showCount:!0}))))},Cn=(0,ct.connect)(({pathsDetail:_t})=>({pathsDetail:_t}))(Zt),Qt=({pathsDetail:_t,onFinish:Zn,dispatch:Yn,type:gn})=>{var kn,Rr,mt;const{actionTabs:qe,detail:er}=_t,yi=(0,ct.useParams)(),[pi]=$e.default.useForm(),$t=$e.default.useWatch("uuid",pi),Jt=$e.default.useWatch("send_route",pi),[hn,_n]=(0,He.useState)(!1),[xn,Yt]=(0,He.useState)(null),[,Fn,qr,ts]=(0,Nt.U)(St.O9,{type:gn,subject_id:yi==null?void 0:yi.pathId}),[,,We,Pe]=(0,Nt.U)(St.Ho,{subject_id:yi==null?void 0:yi.pathId}),[,we,je]=(0,Nt.U)(St.zc,{subject_id:yi==null?void 0:yi.pathId,type:gn}),[Ke,Te]=(0,He.useState)({}),fn=(...Wn)=>pn(void 0,[...Wn],function*(Rn=pi.getFieldsValue()){const hs=yield je(Nn(jn({},Rn),{repeat_names:ts==null?void 0:ts.repeat_names,is_cover:xn,subject_id:yi==null?void 0:yi.pathId,type:gn}));(hs==null?void 0:hs.status)==0&&(fe.default.confirm({title:"\u63D0\u793A",centered:!0,icon:null,width:500,okText:"\u7ACB\u5373\u524D\u5F80",cancelText:"\u7A0D\u540E\u518D\u8BF4",onOk(...Ji){var Ni,Ra;window.open((Ra=(Ni=Pe==null?void 0:Pe.data)==null?void 0:Ni.find(ws=>(ws==null?void 0:ws.id)===Rn.course_id))==null?void 0:Ra.first_category_url)},content:"\u53D1\u9001\u6210\u529F\uFF0C\u662F\u5426\u524D\u5F80\u6559\u5B66\u8BFE\u5802\u8FDB\u884C\u67E5\u770B\uFF1F"}),Zn==null||Zn(),Yn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),_n(!1),pi.resetFields())});return(0,He.useEffect)(()=>{var Wn;pi.setFieldsValue(jn({},(Wn=qe==null?void 0:qe.params)==null?void 0:Wn.data))},[qe]),(0,He.useEffect)(()=>{We({subject_id:yi==null?void 0:yi.pathId})},[]),(0,He.useEffect)(()=>{var Wn;$t&&Te(((Wn=er==null?void 0:er.nodes)==null?void 0:Wn.find(Rn=>(Rn==null?void 0:Rn.uuid)==$t))||{})},[$t]),He.createElement(He.Fragment,null,He.createElement(fe.default,{open:(qe==null?void 0:qe.key)=="\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",width:670,centered:!0,destroyOnClose:!0,confirmLoading:Fn||we,title:qe==null?void 0:qe.key,onCancel:()=>{Yn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),pi.resetFields()},okText:"\u786E\u8BA4\u53D1\u9001",onOk:()=>pn(void 0,null,function*(){pi.submit()})},He.createElement($e.default,{preserve:!1,form:pi,labelCol:{span:3},labelAlign:"right",size:"large",colon:!1,onValuesChange:Wn=>{"uuid"in Wn&&pi.setFieldsValue({ids:[]})},onFinish:Wn=>pn(void 0,null,function*(){console.log("allvalue",Wn);const Rn=yield qr(Nn(jn({},Wn),{name:Ke==null?void 0:Ke.name,subject_id:yi==null?void 0:yi.pathId}));if((Rn==null?void 0:Rn.status)==0&&(Rn!=null&&Rn.is_repeat)){_n(!0);return}yield fn(Wn)})},He.createElement($e.default.Item,{name:"course_id",label:"\u6559\u5B66\u8BFE\u5802",required:!1,rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6559\u5B66\u8BFE\u5802"}]},He.createElement(lt.default,{showSearch:!0,optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u6559\u5B66\u8BFE\u5802",options:(Pe==null?void 0:Pe.data)||[]})),gn=="knowledge"?He.createElement($e.default.Item,{name:"uuid",label:"\u77E5\u8BC6\u56FE\u8C31"},He.createElement(it.ZP.Group,{options:((Rr=((kn=er==null?void 0:er.nodes)==null?void 0:kn.length)>1?er==null?void 0:er.nodes.slice(1):[])==null?void 0:Rr.map(Wn=>({label:Wn==null?void 0:Wn.name,value:Wn==null?void 0:Wn.uuid})))||[]})):He.createElement($e.default.Item,{name:"ids",label:gn=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84",required:!1,rules:[{required:!0,message:`\u8BF7\u9009\u62E9${gn=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84"}`}]},He.createElement(nt.default.Group,{options:((mt=(gn=="goal"?er==null?void 0:er.ability_goals:er==null?void 0:er.route_nodes)||[])==null?void 0:mt.map(Wn=>({label:Wn==null?void 0:Wn.name,value:(Wn==null?void 0:Wn.id)||(Wn==null?void 0:Wn.uuid)})))||[]})),gn=="knowledge"?He.createElement(He.Fragment,null,He.createElement("div",{className:"flex pl-64px-rem"},He.createElement($e.default.Item,{name:"send_route",label:" ",valuePropName:"checked"},He.createElement(vt.Z,null)),He.createElement("div",{style:{lineHeight:"40px"}},"\u540C\u6B65\u53D1\u9001\uFF08\u5F00\u542F\u540E\uFF0C\u5C06\u56FE\u8C31\u4E2D\u5BF9\u5E94\u7684\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u5230\u6559\u5B66\u8BFE\u5802\u4E2D\uFF09")),He.createElement($e.default.Item,{name:"ids",label:" ",required:!1,rules:[{required:Jt,message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84"}]},He.createElement(lt.default,{showSearch:!0,mode:"multiple",optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",options:(Ke==null?void 0:Ke.routes)||[]}))):He.createElement("div",{className:"flex item-center gap-10px-rem",style:{color:"#FF8C29"}},He.createElement("span",{className:"iconfont icon-tishi7"}),gn=="goal"&&He.createElement("span",null,"\u53D1\u9001\u80FD\u529B\u56FE\u8C31\u81F3\u6559\u5B66\u8BFE\u5802\u65F6\uFF0C\u4F1A\u540C\u6B65\u5C06\u80FD\u529B\u56FE\u8C31\u4E2D\u5173\u8054\u7684\u5B66\u4E60\u8DEF\u5F84\u548C\u77E5\u8BC6\u56FE\u8C31\u540C\u6B65\u53D1\u9001\u5230\u8BFE\u5802"),gn=="route"&&He.createElement("span",null,"\u53D1\u9001\u5B66\u4E60\u8DEF\u5F84\u81F3\u6559\u5B66\u8BFE\u5802\u65F6\uFF0C\u4F1A\u540C\u6B65\u5C06\u77E5\u8BC6\u56FE\u8C31\u540C\u6B65\u53D1\u9001\u5230\u8BFE\u5802")))),He.createElement(fe.default,{open:hn,title:"\u56FE\u8C31\u540D\u79F0\u91CD\u590D",width:346,destroyOnClose:!0,centered:!0,confirmLoading:we,onCancel:()=>{_n(!1),Yt(null)},okButtonProps:{disabled:xn==null},onOk:()=>pn(void 0,null,function*(){yield fn()})},He.createElement("div",{className:"flex flex-col"},gn=="goal"?He.createElement("div",null,"\u6559\u5B66\u8BFE\u5802\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u56FE\u8C31\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u8986\u76D6?"):He.createElement("div",null,"\u6559\u5B66\u8BFE\u5802\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u56FE\u8C31\u6216\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u8986\u76D6"),He.createElement(it.ZP.Group,{className:"mt-14px-rem",value:xn,onChange:Wn=>{Yt(Wn.target.value)},options:[{label:"\u8986\u76D6",value:!0},{label:"\u4E0D\u8986\u76D6\uFF08\u6309\u7167\u65E5\u671F\u91CD\u547D\u540D\uFF09",value:!1}]}))))},sn=(0,ct.connect)(({pathsDetail:_t})=>({pathsDetail:_t}))(Qt)},19471:function(Tt,zn,Me){"use strict";var fe=Me(59301);const st=()=>{const nt=()=>window.innerWidth/1920,[$e,at]=(0,fe.useState)(nt()||1),lt=(0,fe.useRef)(),it=(0,fe.useRef)(),vt=()=>{it.current&&clearTimeout(it.current),it.current=setTimeout(()=>{lt.current=requestAnimationFrame(()=>{const ct=nt();at(ct)})},500)};return(0,fe.useEffect)(()=>(vt(),window.addEventListener("resize",vt),()=>{window.removeEventListener("resize",vt),it.current&&clearTimeout(it.current),lt.current&&cancelAnimationFrame(lt.current)}),[]),{rootFontSize:$e,pxToRoot:ct=>ct*$e}};zn.Z=st},23869:function(Tt,zn,Me){"use strict";Me.d(zn,{rX:function(){return jn},pW:function(){return Nn},gy:function(){return pn},xY:function(){return ln},O5:function(){return Ot},hs:function(){return gt},tJ:function(){return St},o1:function(){return xt},Rd:function(){return It}});var fe=Me(76560),st=Me(62957),rt=Me(37285),nt=Me(6767),$e=Me(34055),at=Me(49661),lt=Me(87169),it=Me(25510),vt="data:image/png;base64,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",He=Me.p+"static/newqrcode.a8740efb.png",ct=Me(32637),Mt=Me(59301),Nt=(ir,Gt,Zt)=>new Promise((Cn,Qt)=>{var sn=Yn=>{try{Zn(Zt.next(Yn))}catch(gn){Qt(gn)}},_t=Yn=>{try{Zn(Zt.throw(Yn))}catch(gn){Qt(gn)}},Zn=Yn=>Yn.done?Cn(Yn.value):Promise.resolve(Yn.value).then(sn,_t);Zn((Zt=Zt.apply(ir,Gt)).next())});const St=(ir,Gt=!1,Zt=!1,Cn="",Qt=!1)=>!!(xt(ir)&&Ct(ir,Gt,Zt,Cn,Qt)),xt=ir=>(0,$e.bg)()?!0:(ir({type:"user/showPopLogin",payload:{showPopLogin:!0,showClosable:!0}}),!1),gt=ir=>{var Gt,Zt,Cn;const{user:Qt}=(0,fe.getDvaApp)()._store.getState();(0,$e.bg)()&&!((Zt=(Gt=Qt==null?void 0:Qt.userInfo)==null?void 0:Gt.course)!=null&&Zt.course_public)&&!((Cn=Qt==null?void 0:Qt.userInfo)!=null&&Cn.profile_completed)&&ir({type:"user/showUpdateProfilePanel",payload:{showUpdateProfilePanel:!0,showClosable:!0,backurl:"/account/profile/edit",isCurrentPage:!0}})},Ct=(ir,Gt=!1,Zt=!0,Cn="",Qt=!1)=>{var sn;const{user:_t}=(0,fe.getDvaApp)()._store.getState();return(sn=_t.userInfo)!=null&&sn.profile_completed?!0:(Zt?ir({type:"user/showUpdateProfilePanel",payload:{showUpdateProfilePanel:!0,showClosable:!0,backurl:Cn,isCurrentPage:Qt}}):st.default.confirm({title:"\u63D0\u793A",width:530,centered:!0,content:"\u60A8\u9700\u8981\u53BB\u5B8C\u5584\u60A8\u7684\u4E2A\u4EBA\u8D44\u6599\uFF0C\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",okText:"\u7ACB\u5373\u5B8C\u5584",cancelText:"\u7A0D\u540E\u5B8C\u5584",onOk:()=>{(0,at.xg)("/account/profile/edit"),Ft()}}),!1)},Ft=()=>{st.default.success({title:"\u63D0\u793A",width:430,closable:!0,centered:!0,content:"\u5DF2\u5B8C\u5584\u4E2A\u4EBA\u8D44\u6599\uFF1F\u8BF7\u5237\u65B0\u9875\u9762",okText:"\u7ACB\u5373\u5237\u65B0",icon:null,onOk:()=>{location.reload()}})},It=()=>{st.default.warning({title:"\u63D0\u793A",icon:null,width:400,content:Mt.createElement("div",{style:{textAlign:"center"}},Mt.createElement("div",{style:{color:"#191919",fontSize:14,marginBottom:15,textAlign:"left"}},"\u8001\u5E08\u60A8\u597D\uFF0C\u60A8\u7684\u8BFE\u5802\u8BD5\u7528\u671F\u5DF2\u7ED3\u675F\uFF0C\u76F8\u5173\u529F\u80FD\u88AB\u9650\u5236\u3002 \u5982\u9700\u7EE7\u7EED\u4F7F\u7528\uFF0C\u8BF7\u5C3D\u5FEB\u5BF9\u63A5\u4EBA\u5DE5\u652F\u6301\uFF01"),Mt.createElement("img",{style:{border:"1px solid #D8E3E9",width:190,height:180},src:ct}),Mt.createElement("div",{style:{color:"#666666",fontSize:14,marginTop:15}},"\u6DFB\u52A0\u5BA2\u670D\u4EBA\u5458\u5FAE\u4FE1\uFF0C\u83B7\u5F97\u66F4\u591A\u652F\u6301"))})},Ot=()=>{var ir;const{user:Gt}=(0,fe.getDvaApp)()._store.getState();return(ir=Gt.userInfo)!=null&&ir.professional_certification?!0:(st.default.confirm({title:"\u63D0\u793A",centered:!0,content:Mt.createElement("div",{className:"tc"},"\u60A8\u9700\u8981\u53BB\u5B8C\u6210\u60A8\u7684\u804C\u4E1A\u8BA4\u8BC1\uFF0C\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD"),okText:"\u7ACB\u5373\u5B8C\u5584",cancelText:"\u7A0D\u540E\u5B8C\u5584",onOk:()=>{(0,at.xg)("/account/certification")}}),!1)},ln=()=>(0,$e.V9)()?!0:(st.default.warning({centered:!0,width:530,title:"\u63D0\u793A",content:Mt.createElement("div",{className:"tc",style:{marginLeft:-38}},Mt.createElement("p",null,"\u626B\u7801\u52A0\u5934\u6B4C\u52A9\u6559\uFF0C\u7533\u8BF7\u64CD\u4F5C\u6743\u9650"),Mt.createElement("img",{src:He,width:200})),okText:"\u6211\u77E5\u9053\u4E86",maskClosable:!0}),!1),jn=(ir,Gt)=>ir?!0:(st.default.confirm({centered:!0,zIndex:1e4,width:530,title:"\u63D0\u793A",content:Mt.createElement("div",null,Mt.createElement("p",null,Gt||"\u8BE5\u5B9E\u8DF5\u8D44\u6E90\u9700\u6388\u6743\u540E\u624D\u53EF\u4F7F\u7528\u3002 \u60A8\u53EF\u4EE5\u5728QQ\u670D\u52A1\u7FA4\u5411\u7BA1\u7406\u5458\u7533\u8BF7\uFF0C\u83B7\u5F97\u7EE7\u7EED\u64CD\u4F5C\u7684\u6743\u9650\u3002"),Mt.createElement("div",{style:{marginLeft:"110px"}},Mt.createElement("img",{src:vt,width:200}),Mt.createElement("div",{style:{marginLeft:"35px"}},"\u7FA4\u53F7\uFF1A","714336072"))),okText:"\u7ACB\u5373\u8054\u7CFB",cancelText:"\u53D6\u6D88",onOk:()=>{(0,at.xg)("https://qm.qq.com/cgi-bin/qm/qr?k=tIyDPXUtE0yEk-MOJxhH55lTUJS-nYAM&jump_from=webapi")}}),!1),Nn=ir=>{st.default.info({title:"\u8054\u7CFB\u5E73\u53F0\u8FD0\u8425",icon:null,width:615,centered:!0,content:Mt.createElement("div",null,Mt.createElement("div",null,Mt.createElement("p",{style:{color:"#191919",fontWeight:400,fontSize:14}},"\u201C\u4FDD\u5B58\u5B9E\u9A8C\u4E34\u65F6\u6570\u636E\u201D\u529F\u80FD\u4E3A\u4ED8\u8D39\u529F\u80FD\uFF0C\u8BF7\u8054\u7CFB\u5E73\u53F0\u8FD0\u8425\u8FDB\u884C\u5F00\u901A\u3002"),Mt.createElement(rt.Z,null),Mt.createElement("p",{style:{color:"#666666",fontSize:12}}," ",Mt.createElement("span",{style:{display:"inline-flex",width:14,height:14,borderRadius:2,background:"#F3F3F3",justifyContent:"center",color:"#666666",fontSize:12,lineHeight:"14px",marginRight:8}},"1")," \u56E0\u5E73\u53F0\u7684\u5B9E\u9A8C\u6570\u636E\u50A8\u5B58\u5BB9\u91CF\u548C\u6210\u672C\u6D88\u8017\u8F83\u5927\uFF0C\u5B9E\u8DF5\u9879\u76EE\u9ED8\u8BA4\u4FDD\u5B58\u5B9E\u9A8C\u73AF\u5883\u4E2D\u4E34\u65F6\u6570\u636E ",Mt.createElement("a",null,ir),"\u5929\u3002"),Mt.createElement("p",{style:{color:"#666666",fontSize:12}}," ",Mt.createElement("span",{style:{display:"inline-flex",width:14,height:14,borderRadius:2,background:"#F3F3F3",justifyContent:"center",color:"#666666",fontSize:12,lineHeight:"14px",marginRight:8}},"2"),"\u82E5\u60A8\u9700\u8981\u4E2A\u6027\u5316\u7684\u6570\u636E\u4FDD\u5B58\u5468\u671F\u670D\u52A1\uFF0C\u6211\u4EEC\u53EF\u4EE5\u63D0\u4F9B\u76F8\u5173\u6280\u672F\u652F\u6301\uFF0C\u5E76\u6839\u636E\u60A8\u7684\u9700\u6C42\u6536\u53D6\u5B9A\u5236\u8D39\u7528\u3002")),Mt.createElement("div",{style:{textAlign:"center",marginTop:30}},Mt.createElement("img",{style:{border:"4px solid #0152d9",borderRadius:"4px"},src:it,alt:"\u4E8C\u7EF4\u7801",width:160})))})},pn=(ir,Gt="")=>{const{shixunsDetail:{detail:Zt}}=(0,fe.getDvaApp)()._store.getState();if((Zt==null?void 0:Zt.public)===2||(Zt==null?void 0:Zt.public)===1||(Zt==null?void 0:Zt.shixun_status)===3){let Cn="";return(Zt==null?void 0:Zt.public)===2&&(Cn="\u5DF2\u516C\u5F00"),(Zt==null?void 0:Zt.public)===1&&(Cn="\u5F85\u5BA1\u6838"),(Zt==null?void 0:Zt.shixun_status)===3&&(Cn="\u5DF2\u5173\u95ED"),st.default.info({centered:!0,icon:Mt.createElement(lt.Z,{style:{color:"#faad14"}}),width:460,title:"\u63D0\u793A",content:Mt.createElement("div",{className:"tc",style:{marginLeft:-38}},Mt.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",paddingLeft:38,margin:"12px 0"}},Mt.createElement("span",null,"\u8BE5\u5B9E\u8DF5\u9879\u76EE\u7684\u72B6\u6001\u4E3A",Cn,"\uFF0C",Gt,"\u3002"),Mt.createElement("p",null,"\u5982\u6709\u9700\u8981\uFF0C\u8BF7\u8054\u7CFB\u5E73\u53F0\u7BA1\u7406\u5458\u8FDB\u884C\u6280\u672F\u652F\u6301\u3002")),Mt.createElement("img",{style:{border:"4px solid #0152d9",borderRadius:"4px"},src:it,alt:"\u4E8C\u7EF4\u7801",width:160})),okText:"\u6211\u77E5\u9053\u4E86"}),!0}return(Zt==null?void 0:Zt.shixun_status)===2?(st.default.confirm({centered:!0,icon:Mt.createElement(lt.Z,null),title:"\u63D0\u793A",content:Mt.createElement("div",null,Mt.createElement("span",null,"\u8BE5\u5B9E\u8DF5\u9879\u76EE\u5DF2\u53D1\u5E03\uFF0C",Gt,"\u3002"),Mt.createElement("br",null),Mt.createElement("span",null,"\u5982\u6709\u9700\u8981\uFF0C\u60A8\u53EF\u4EE5\u64A4\u9500\u53D1\u5E03\u540E\uFF0C\u518D\u8FDB\u884C\u64CD\u4F5C\u3002")),okText:"\u64A4\u9500\u53D1\u5E03",cancelText:"\u53D6\u6D88",onOk:()=>{st.default.confirm({width:440,centered:!0,icon:Mt.createElement(lt.Z,{style:{color:"#faad14"}}),title:"\u63D0\u793A",content:"\u64A4\u9500\u53D1\u5E03\u540E\uFF0C\u5B66\u5458\u5C06\u65E0\u6CD5\u8FDB\u884C\u7EC3\u4E60\u3002\u662F\u5426\u786E\u8BA4\u64A4\u9500\u53D1\u5E03\uFF1F",okText:"\u786E\u5B9A\u64A4\u9500\u53D1\u5E03",cancelText:"\u53D6\u6D88",onOk:()=>Nt(void 0,null,function*(){(yield ir({type:"shixunsDetail/cancelRelease",payload:{id:Zt==null?void 0:Zt.identifier}})).status!==401&&(nt.ZP.success("\u64A4\u9500\u53D1\u5E03\u6210\u529F\u3002\u5B9E\u8BAD\u56DE\u5230\u672A\u53D1\u5E03\u7684\u72B6\u6001\u3002"),ir({type:"shixunsDetail/getShixunsDetail",payload:{id:Zt==null?void 0:Zt.identifier}}),ir({type:"practiceSetting/getCommonData",payload:{id:Zt==null?void 0:Zt.identifier}}))})})}}),!0):!1}},99498:function(Tt,zn,Me){(function(fe){fe(Me(89780))})(function(fe){fe.defineOption("placeholder","",function(it,vt,He){var ct=He&&He!=fe.Init;if(vt&&!ct)it.on("blur",$e),it.on("change",at),it.on("swapDoc",at),fe.on(it.getInputField(),"compositionupdate",it.state.placeholderCompose=function(){nt(it)}),at(it);else if(!vt&&ct){it.off("blur",$e),it.off("change",at),it.off("swapDoc",at),fe.off(it.getInputField(),"compositionupdate",it.state.placeholderCompose),st(it);var Mt=it.getWrapperElement();Mt.className=Mt.className.replace(" CodeMirror-empty","")}vt&&!it.hasFocus()&&$e(it)});function st(it){it.state.placeholder&&(it.state.placeholder.parentNode.removeChild(it.state.placeholder),it.state.placeholder=null)}function rt(it){st(it);var vt=it.state.placeholder=document.createElement("pre");vt.style.cssText="height: 0; overflow: visible",vt.style.direction=it.getOption("direction"),vt.className="CodeMirror-placeholder CodeMirror-line-like";var He=it.getOption("placeholder");typeof He=="string"&&(He=document.createTextNode(He)),vt.appendChild(He),it.display.lineSpace.insertBefore(vt,it.display.lineSpace.firstChild)}function nt(it){setTimeout(function(){var vt=!1,He=it.getInputField();He.nodeName=="TEXTAREA"?vt=!He.value:it.lineCount()==1&&(vt=!/[^\u200b]/.test(He.querySelector(".CodeMirror-line").textContent)),vt?rt(it):st(it)},20)}function $e(it){lt(it)&&rt(it)}function at(it){var vt=it.getWrapperElement(),He=lt(it);vt.className=vt.className.replace(" CodeMirror-empty","")+(He?" CodeMirror-empty":""),He?rt(it):st(it)}function lt(it){return it.lineCount()===1&&it.getLine(0)===""}})},25717:function(Tt,zn,Me){(function(fe){fe(Me(89780))})(function(fe){var st={pairs:`()[]{}''""`,closeBefore:`)]}'":;>`,triples:"",explode:"[]{}"},rt=fe.Pos;fe.defineOption("autoCloseBrackets",!1,function(xt,gt,Ct){Ct&&Ct!=fe.Init&&(xt.removeKeyMap($e),xt.state.closeBrackets=null),gt&&(at(nt(gt,"pairs")),xt.state.closeBrackets=gt,xt.addKeyMap($e))});function nt(xt,gt){return gt=="pairs"&&typeof xt=="string"?xt:typeof xt=="object"&&xt[gt]!=null?xt[gt]:st[gt]}var $e={Backspace:vt,Enter:He};function at(xt){for(var gt=0;gt=0;It--){var ln=Ft[It].head;xt.replaceRange("",rt(ln.line,ln.ch-1),rt(ln.line,ln.ch+1),"+delete")}}function He(xt){var gt=it(xt),Ct=gt&&nt(gt,"explode");if(!Ct||xt.getOption("disableInput"))return fe.Pass;for(var Ft=xt.listSelections(),It=0;It0;return{anchor:new rt(xt.anchor.line,xt.anchor.ch+(gt?-1:1)),head:new rt(xt.head.line,xt.head.ch+(gt?1:-1))}}function Mt(xt,gt){var Ct=it(xt);if(!Ct||xt.getOption("disableInput"))return fe.Pass;var Ft=nt(Ct,"pairs"),It=Ft.indexOf(gt);if(It==-1)return fe.Pass;for(var Ot=nt(Ct,"closeBefore"),ln=nt(Ct,"triples"),jn=Ft.charAt(It+1)==gt,Nn=xt.listSelections(),pn=It%2==0,ir,Gt=0;Gt=0&&xt.getRange(Cn,rt(Cn.line,Cn.ch+3))==gt+gt+gt?Qt="skipThree":Qt="skip";else if(jn&&Cn.ch>1&&ln.indexOf(gt)>=0&&xt.getRange(rt(Cn.line,Cn.ch-2),Cn)==gt+gt){if(Cn.ch>2&&/\bstring/.test(xt.getTokenTypeAt(rt(Cn.line,Cn.ch-2))))return fe.Pass;Qt="addFour"}else if(jn){var _t=Cn.ch==0?" ":xt.getRange(rt(Cn.line,Cn.ch-1),Cn);if(!fe.isWordChar(sn)&&_t!=gt&&!fe.isWordChar(_t))Qt="both";else return fe.Pass}else if(pn&&(sn.length===0||/\s/.test(sn)||Ot.indexOf(sn)>-1))Qt="both";else return fe.Pass;if(!ir)ir=Qt;else if(ir!=Qt)return fe.Pass}var Zn=It%2?Ft.charAt(It-1):gt,Yn=It%2?gt:Ft.charAt(It+1);xt.operation(function(){if(ir=="skip")xt.execCommand("goCharRight");else if(ir=="skipThree")for(var gn=0;gn<3;gn++)xt.execCommand("goCharRight");else if(ir=="surround"){for(var kn=xt.getSelections(),gn=0;gn'"]=function(Nt){return nt(Nt)}),vt.addKeyMap(Mt)}});var st=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],rt=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];function nt(vt){if(vt.getOption("disableInput"))return fe.Pass;for(var He=vt.listSelections(),ct=[],Mt=vt.getOption("autoCloseTags"),Nt=0;NtSt.ch&&(It=It.slice(0,It.length-xt.end+St.ch));var Nn=It.toLowerCase();if(!It||xt.type=="string"&&(xt.end!=St.ch||!/[\"\']/.test(xt.string.charAt(xt.string.length-1))||xt.string.length==1)||xt.type=="tag"&&Ft.close||xt.string.indexOf("/")==St.ch-xt.start-1||ln&<(ln,Nn)>-1||it(vt,gt.mode.xmlCurrentContext&>.mode.xmlCurrentContext(Ct)||[],It,St,!0))return fe.Pass;var pn=typeof Mt=="object"&&Mt.emptyTags;if(pn&<(pn,It)>-1){ct[Nt]={text:"/>",newPos:fe.Pos(St.line,St.ch+2)};continue}var ir=jn&<(jn,Nn)>-1;ct[Nt]={indent:ir,text:">"+(ir?` `:"")+"",newPos:ir?fe.Pos(St.line+1,0):fe.Pos(St.line,St.ch+1)}}for(var Gt=typeof Mt=="object"&&Mt.dontIndentOnAutoClose,Nt=He.length-1;Nt>=0;Nt--){var Zt=ct[Nt];vt.replaceRange(Zt.text,He[Nt].head,He[Nt].anchor,"+insert");var Cn=vt.listSelections().slice(0);Cn[Nt]={head:Zt.newPos,anchor:Zt.newPos},vt.setSelections(Cn),!Gt&&Zt.indent&&(vt.indentLine(Zt.newPos.line,null,!0),vt.indentLine(Zt.newPos.line+1,null,!0))}}function $e(vt,He){for(var ct=vt.listSelections(),Mt=[],Nt=He?"/":""&&(ln+=">"),Mt[gt]=ln}if(vt.replaceSelections(Mt),ct=vt.listSelections(),!xt)for(var gt=0;gt=0&&He[Ct]==ct;Ct--)++gt;Mt=xt.to;for(var Ct=1;Ct=Ct.max))return Ct.ch=0,Ct.text=Ct.cm.getLine(++Ct.line),!0}function He(Ct){if(!(Ct.line<=Ct.min))return Ct.text=Ct.cm.getLine(--Ct.line),Ct.ch=Ct.text.length,!0}function ct(Ct){for(;;){var Ft=Ct.text.indexOf(">",Ct.ch);if(Ft==-1){if(vt(Ct))continue;return}if(!it(Ct,Ft+1)){Ct.ch=Ft+1;continue}var It=Ct.text.lastIndexOf("/",Ft),Ot=It>-1&&!/\S/.test(Ct.text.slice(It+1,Ft));return Ct.ch=Ft+1,Ot?"selfClose":"regular"}}function Mt(Ct){for(;;){var Ft=Ct.ch?Ct.text.lastIndexOf("<",Ct.ch-1):-1;if(Ft==-1){if(He(Ct))continue;return}if(!it(Ct,Ft+1)){Ct.ch=Ft;continue}at.lastIndex=Ft,Ct.ch=Ft;var It=at.exec(Ct.text);if(It&&It.index==Ft)return It}}function Nt(Ct){for(;;){at.lastIndex=Ct.ch;var Ft=at.exec(Ct.text);if(!Ft){if(vt(Ct))continue;return}if(!it(Ct,Ft.index+1)){Ct.ch=Ft.index+1;continue}return Ct.ch=Ft.index+Ft[0].length,Ft}}function St(Ct){for(;;){var Ft=Ct.ch?Ct.text.lastIndexOf(">",Ct.ch-1):-1;if(Ft==-1){if(He(Ct))continue;return}if(!it(Ct,Ft+1)){Ct.ch=Ft;continue}var It=Ct.text.lastIndexOf("/",Ft),Ot=It>-1&&!/\S/.test(Ct.text.slice(It+1,Ft));return Ct.ch=Ft+1,Ot?"selfClose":"regular"}}function xt(Ct,Ft){for(var It=[];;){var Ot=Nt(Ct),ln,jn=Ct.line,Nn=Ct.ch-(Ot?Ot[0].length:0);if(!Ot||!(ln=ct(Ct)))return;if(ln!="selfClose")if(Ot[1]){for(var pn=It.length-1;pn>=0;--pn)if(It[pn]==Ot[2]){It.length=pn;break}if(pn<0&&(!Ft||Ft==Ot[2]))return{tag:Ot[2],from:st(jn,Nn),to:st(Ct.line,Ct.ch)}}else It.push(Ot[2])}}function gt(Ct,Ft){for(var It=[];;){var Ot=St(Ct);if(!Ot)return;if(Ot=="selfClose"){Mt(Ct);continue}var ln=Ct.line,jn=Ct.ch,Nn=Mt(Ct);if(!Nn)return;if(Nn[1])It.push(Nn[2]);else{for(var pn=It.length-1;pn>=0;--pn)if(It[pn]==Nn[2]){It.length=pn;break}if(pn<0&&(!Ft||Ft==Nn[2]))return{tag:Nn[2],from:st(Ct.line,Ct.ch),to:st(ln,jn)}}}}fe.registerHelper("fold","xml",function(Ct,Ft){for(var It=new lt(Ct,Ft.line,0);;){var Ot=Nt(It);if(!Ot||It.line!=Ft.line)return;var ln=ct(It);if(!ln)return;if(!Ot[1]&&ln!="selfClose"){var jn=st(It.line,It.ch),Nn=xt(It,Ot[2]);return Nn&&rt(Nn.from,jn)>0?{from:jn,to:Nn.from}:null}}}),fe.findMatchingTag=function(Ct,Ft,It){var Ot=new lt(Ct,Ft.line,Ft.ch,It);if(!(Ot.text.indexOf(">")==-1&&Ot.text.indexOf("<")==-1)){var ln=ct(Ot),jn=ln&&st(Ot.line,Ot.ch),Nn=ln&&Mt(Ot);if(!(!ln||!Nn||rt(Ot,Ft)>0)){var pn={from:st(Ot.line,Ot.ch),to:jn,tag:Nn[2]};return ln=="selfClose"?{open:pn,close:null,at:"open"}:Nn[1]?{open:gt(Ot,Nn[2]),close:pn,at:"close"}:(Ot=new lt(Ct,jn.line,jn.ch,It),{open:pn,close:xt(Ot,Nn[2]),at:"open"})}}},fe.findEnclosingTag=function(Ct,Ft,It,Ot){for(var ln=new lt(Ct,Ft.line,Ft.ch,It);;){var jn=gt(ln,Ot);if(!jn)break;var Nn=new lt(Ct,Ft.line,Ft.ch,It),pn=xt(Nn,jn.tag);if(pn)return{open:jn,close:pn}}},fe.scanForClosingTag=function(Ct,Ft,It,Ot){var ln=new lt(Ct,Ft.line,Ft.ch,Ot?{from:0,to:Ot}:null);return xt(ln,It)}})},89780:function(Tt){(function(zn,Me){Tt.exports=Me()})(this,function(){"use strict";var zn=navigator.userAgent,Me=navigator.platform,fe=/gecko\/\d/i.test(zn),st=/MSIE \d/.test(zn),rt=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zn),nt=/Edge\/(\d+)/.exec(zn),$e=st||rt||nt,at=$e&&(st?document.documentMode||6:+(nt||rt)[1]),lt=!nt&&/WebKit\//.test(zn),it=lt&&/Qt\/\d+\.\d+/.test(zn),vt=!nt&&/Chrome\//.test(zn),He=/Opera\//.test(zn),ct=/Apple Computer/.test(navigator.vendor),Mt=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(zn),Nt=/PhantomJS/.test(zn),St=!nt&&/AppleWebKit/.test(zn)&&/Mobile\/\w+/.test(zn),xt=/Android/.test(zn),gt=St||xt||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(zn),Ct=St||/Mac/.test(Me),Ft=/\bCrOS\b/.test(zn),It=/win/i.test(Me),Ot=He&&zn.match(/Version\/(\d*\.\d*)/);Ot&&(Ot=Number(Ot[1])),Ot&&Ot>=15&&(He=!1,lt=!0);var ln=Ct&&(it||He&&(Ot==null||Ot<12.11)),jn=fe||$e&&at>=9;function Nn(re){return new RegExp("(^|\\s)"+re+"(?:$|\\s)\\s*")}var pn=function(re,se){var ce=re.className,ue=Nn(se).exec(ce);if(ue){var pe=ce.slice(ue.index+ue[0].length);re.className=ce.slice(0,ue.index)+(pe?ue[1]+pe:"")}};function ir(re){for(var se=re.childNodes.length;se>0;--se)re.removeChild(re.firstChild);return re}function Gt(re,se){return ir(re).appendChild(se)}function Zt(re,se,ce,ue){var pe=document.createElement(re);if(ce&&(pe.className=ce),ue&&(pe.style.cssText=ue),typeof se=="string")pe.appendChild(document.createTextNode(se));else if(se)for(var be=0;be=se)return Ie+(se-be);Ie+=Ue-be,Ie+=ce-Ie%ce,be=Ue+1}}var qe=function(){this.id=null,this.f=null,this.time=0,this.handler=kn(this.onTimeout,this)};qe.prototype.onTimeout=function(re){re.id=0,re.time<=+new Date?re.f():setTimeout(re.handler,re.time-+new Date)},qe.prototype.set=function(re,se){this.f=se;var ce=+new Date+re;(!this.id||ce=se)return ue+Math.min(Ie,se-pe);if(pe+=be-ue,pe+=ce-pe%ce,ue=be+1,pe>=se)return ue}}var xn=[""];function Yt(re){for(;xn.length<=re;)xn.push(Fn(xn)+" ");return xn[re]}function Fn(re){return re[re.length-1]}function qr(re,se){for(var ce=[],ue=0;ue"\x80"&&(re.toUpperCase()!=re.toLowerCase()||we.test(re))}function Ke(re,se){return se?se.source.indexOf("\\w")>-1&&je(re)?!0:se.test(re):je(re)}function Te(re){for(var se in re)if(re.hasOwnProperty(se)&&re[se])return!1;return!0}var fn=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Wn(re){return re.charCodeAt(0)>=768&&fn.test(re)}function Rn(re,se,ce){for(;(ce<0?se>0:sece?-1:1;;){if(se==ce)return se;var pe=(se+ce)/2,be=ue<0?Math.ceil(pe):Math.floor(pe);if(be==se)return re(be)?se:ce;re(be)?ce=be:se=be+ue}}function Ji(re,se,ce,ue){if(!re)return ue(se,ce,"ltr",0);for(var pe=!1,be=0;bese||se==ce&&Ie.to==se)&&(ue(Math.max(Ie.from,se),Math.min(Ie.to,ce),Ie.level==1?"rtl":"ltr",be),pe=!0)}pe||ue(se,ce,"ltr")}var Ni=null;function Ra(re,se,ce){var ue;Ni=null;for(var pe=0;pese)return pe;be.to==se&&(be.from!=be.to&&ce=="before"?ue=pe:Ni=pe),be.from==se&&(be.from!=be.to&&ce!="before"?ue=pe:Ni=pe)}return ue!=null?ue:Ni}var ws=function(){var re="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",se="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function ce(Ze){return Ze<=247?re.charAt(Ze):1424<=Ze&&Ze<=1524?"R":1536<=Ze&&Ze<=1785?se.charAt(Ze-1536):1774<=Ze&&Ze<=2220?"r":8192<=Ze&&Ze<=8203?"w":Ze==8204?"b":"L"}var ue=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,pe=/[stwN]/,be=/[LRr]/,Ie=/[Lb1n]/,Ue=/[1n]/;function Xe(Ze,wt,Rt){this.level=Ze,this.from=wt,this.to=Rt}return function(Ze,wt){var Rt=wt=="ltr"?"L":"R";if(Ze.length==0||wt=="ltr"&&!ue.test(Ze))return!1;for(var vn=Ze.length,nn=[],sr=0;sr-1&&(ue[se]=pe.slice(0,be).concat(pe.slice(be+1)))}}}function Ki(re,se){var ce=Cs(re,se);if(ce.length)for(var ue=Array.prototype.slice.call(arguments,2),pe=0;pe0}function qa(re){re.prototype.on=function(se,ce){Xi(this,se,ce)},re.prototype.off=function(se,ce){Pa(this,se,ce)}}function no(re){re.preventDefault?re.preventDefault():re.returnValue=!1}function sd(re){re.stopPropagation?re.stopPropagation():re.cancelBubble=!0}function So(re){return re.defaultPrevented!=null?re.defaultPrevented:re.returnValue==!1}function uc(re){no(re),sd(re)}function lu(re){return re.target||re.srcElement}function ol(re){var se=re.which;return se==null&&(re.button&1?se=1:re.button&2?se=3:re.button&4&&(se=2)),Ct&&re.ctrlKey&&se==1&&(se=3),se}var Oi=function(){if($e&&at<9)return!1;var re=Zt("div");return"draggable"in re||"dragDrop"in re}(),cc;function ll(re){if(cc==null){var se=Zt("span","\u200B");Gt(re,Zt("span",[se,document.createTextNode("x")])),re.firstChild.offsetHeight!=0&&(cc=se.offsetWidth<=1&&se.offsetHeight>2&&!($e&&at<8))}var ce=cc?Zt("span","\u200B"):Zt("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return ce.setAttribute("cm-text",""),ce}var Gu;function Ba(re){if(Gu!=null)return Gu;var se=Gt(re,document.createTextNode("A\u062EA")),ce=Qt(se,0,1).getBoundingClientRect(),ue=Qt(se,1,2).getBoundingClientRect();return ir(re),!ce||ce.left==ce.right?!1:Gu=ue.right-ce.right<3}var Na=` b`.split(/\n/).length!=3?function(re){for(var se=0,ce=[],ue=re.length;se<=ue;){var pe=re.indexOf(` `,se);pe==-1&&(pe=re.length);var be=re.slice(se,re.charAt(pe-1)=="\r"?pe-1:pe),Ie=be.indexOf("\r");Ie!=-1?(ce.push(be.slice(0,Ie)),se+=Ie+1):(ce.push(be),se=pe+1)}return ce}:function(re){return re.split(/\r\n?|\n/)},dc=window.getSelection?function(re){try{return re.selectionStart!=re.selectionEnd}catch(se){return!1}}:function(re){var se;try{se=re.ownerDocument.selection.createRange()}catch(ce){}return!se||se.parentElement()!=re?!1:se.compareEndPoints("StartToEnd",se)!=0},Cr=function(){var re=Zt("div");return"oncopy"in re?!0:(re.setAttribute("oncopy","return;"),typeof re.oncopy=="function")}(),Wr=null;function xs(re){if(Wr!=null)return Wr;var se=Gt(re,Zt("span","x")),ce=se.getBoundingClientRect(),ue=Qt(se,0,1).getBoundingClientRect();return Wr=Math.abs(ce.left-ue.left)>1}var Ps={},ur={};function Hr(re,se){arguments.length>2&&(se.dependencies=Array.prototype.slice.call(arguments,2)),Ps[re]=se}function mi(re,se){ur[re]=se}function Ss(re){if(typeof re=="string"&&ur.hasOwnProperty(re))re=ur[re];else if(re&&typeof re.name=="string"&&ur.hasOwnProperty(re.name)){var se=ur[re.name];typeof se=="string"&&(se={name:se}),re=Pe(se,re),re.name=se.name}else{if(typeof re=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(re))return Ss("application/xml");if(typeof re=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(re))return Ss("application/json")}return typeof re=="string"?{name:re}:re||{name:"null"}}function ro(re,se){se=Ss(se);var ce=Ps[se.name];if(!ce)return ro(re,"text/plain");var ue=ce(re,se);if(Ns.hasOwnProperty(se.name)){var pe=Ns[se.name];for(var be in pe)pe.hasOwnProperty(be)&&(ue.hasOwnProperty(be)&&(ue["_"+be]=ue[be]),ue[be]=pe[be])}if(ue.name=se.name,se.helperType&&(ue.helperType=se.helperType),se.modeProps)for(var Ie in se.modeProps)ue[Ie]=se.modeProps[Ie];return ue}var Ns={};function bn(re,se){var ce=Ns.hasOwnProperty(re)?Ns[re]:Ns[re]={};Rr(se,ce)}function Vn(re,se){if(se===!0)return se;if(re.copyState)return re.copyState(se);var ce={};for(var ue in se){var pe=se[ue];pe instanceof Array&&(pe=pe.concat([])),ce[ue]=pe}return ce}function rs(re,se){for(var ce;re.innerMode&&(ce=re.innerMode(se),!(!ce||ce.mode==re));)se=ce.state,re=ce.mode;return ce||{mode:re,state:se}}function za(re,se,ce){return re.startState?re.startState(se,ce):!0}var ca=function(re,se,ce){this.pos=this.start=0,this.string=re,this.tabSize=se||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=ce};ca.prototype.eol=function(){return this.pos>=this.string.length},ca.prototype.sol=function(){return this.pos==this.lineStart},ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ca.prototype.next=function(){if(this.posse},ca.prototype.eatSpace=function(){for(var re=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>re},ca.prototype.skipToEnd=function(){this.pos=this.string.length},ca.prototype.skipTo=function(re){var se=this.string.indexOf(re,this.pos);if(se>-1)return this.pos=se,!0},ca.prototype.backUp=function(re){this.pos-=re},ca.prototype.column=function(){return this.lastColumnPos0?null:(be&&se!==!1&&(this.pos+=be[0].length),be)}},ca.prototype.current=function(){return this.string.slice(this.start,this.pos)},ca.prototype.hideFirstChars=function(re,se){this.lineStart+=re;try{return se()}finally{this.lineStart-=re}},ca.prototype.lookAhead=function(re){var se=this.lineOracle;return se&&se.lookAhead(re)},ca.prototype.baseToken=function(){var re=this.lineOracle;return re&&re.baseToken(this.pos)};function si(re,se){if(se-=re.first,se<0||se>=re.size)throw new Error("There is no line "+(se+re.first)+" in the document.");for(var ce=re;!ce.lines;)for(var ue=0;;++ue){var pe=ce.children[ue],be=pe.chunkSize();if(se=re.first&&sece?xr(ce,si(re,ce).text.length):Rh(se,si(re,se.line).text.length)}function Rh(re,se){var ce=re.ch;return ce==null||ce>se?xr(re.line,se):ce<0?xr(re.line,0):re}function ad(re,se){for(var ce=[],ue=0;uethis.maxLookAhead&&(this.maxLookAhead=re),se},Do.prototype.baseToken=function(re){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=re;)this.baseTokenPos+=2;var se=this.baseTokens[this.baseTokenPos+1];return{type:se&&se.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-re}},Do.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Do.fromSaved=function(re,se,ce){return se instanceof fc?new Do(re,Vn(re.mode,se.state),ce,se.lookAhead):new Do(re,Vn(re.mode,se),ce)},Do.prototype.save=function(re){var se=re!==!1?Vn(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new fc(se,this.maxLookAhead):se};function Ho(re,se,ce,ue){var pe=[re.state.modeGen],be={};ho(re,se.text,re.doc.mode,ce,function(Ze,wt){return pe.push(Ze,wt)},be,ue);for(var Ie=ce.state,Ue=function(Ze){ce.baseTokens=pe;var wt=re.state.overlays[Ze],Rt=1,vn=0;ce.state=!0,ho(re,se.text,wt.mode,ce,function(nn,sr){for(var Sr=Rt;vnnn&&pe.splice(Rt,1,nn,pe[Rt+1],On),Rt+=2,vn=Math.min(nn,On)}if(sr)if(wt.opaque)pe.splice(Sr,Rt-Sr,nn,"overlay "+sr),Rt=Sr+2;else for(;Srre.options.maxHighlightLength&&Vn(re.doc.mode,ue.state),be=Ho(re,se,ue);pe&&(ue.state=pe),se.stateAfter=ue.save(!pe),se.styles=be.styles,be.classes?se.styleClasses=be.classes:se.styleClasses&&(se.styleClasses=null),ce===re.doc.highlightFrontier&&(re.doc.modeFrontier=Math.max(re.doc.modeFrontier,++re.doc.highlightFrontier))}return se.styles}function ul(re,se,ce){var ue=re.doc,pe=re.display;if(!ue.mode.startState)return new Do(ue,!0,se);var be=Dc(re,se,ce),Ie=be>ue.first&&si(ue,be-1).stateAfter,Ue=Ie?Do.fromSaved(ue,Ie,be):new Do(ue,za(ue.mode),be);return ue.iter(be,se,function(Xe){pa(re,Xe.text,Ue);var Ze=Ue.line;Xe.stateAfter=Ze==se-1||Ze%5==0||Ze>=pe.viewFrom&&Zese.start)return be}throw new Error("Mode "+re.name+" failed to advance stream.")}var Mc=function(re,se,ce){this.start=re.start,this.end=re.pos,this.string=re.current(),this.type=se||null,this.state=ce};function Wc(re,se,ce,ue){var pe=re.doc,be=pe.mode,Ie;se=nr(pe,se);var Ue=si(pe,se.line),Xe=ul(re,se.line,ce),Ze=new ca(Ue.text,re.options.tabSize,Xe),wt;for(ue&&(wt=[]);(ue||Ze.posre.options.maxHighlightLength?(Ue=!1,Ie&&pa(re,se,ue,wt.pos),wt.pos=se.length,Rt=null):Rt=Td(ql(ce,wt,ue.state,vn),be),vn){var nn=vn[0].name;nn&&(Rt="m-"+(Rt?nn+" "+Rt:nn))}if(!Ue||Ze!=Rt){for(;XeIe;--Ue){if(Ue<=be.first)return be.first;var Xe=si(be,Ue-1),Ze=Xe.stateAfter;if(Ze&&(!ce||Ue+(Ze instanceof fc?Ze.lookAhead:0)<=be.modeFrontier))return Ue;var wt=mt(Xe.text,null,re.options.tabSize);(pe==null||ue>wt)&&(pe=Ue-1,ue=wt)}return pe}function xl(re,se){if(re.modeFrontier=Math.min(re.modeFrontier,se),!(re.highlightFrontierce;ue--){var pe=si(re,ue).stateAfter;if(pe&&(!(pe instanceof fc)||ue+pe.lookAhead=se:be.to>se);(ue||(ue=[])).push(new Tl(Ie,be.from,Xe?null:be.to))}}return ue}function Wu(re,se,ce){var ue;if(re)for(var pe=0;pe=se:be.to>se);if(Ue||be.from==se&&Ie.type=="bookmark"&&(!ce||be.marker.insertLeft)){var Xe=be.from==null||(Ie.inclusiveLeft?be.from<=se:be.from0&&Ue)for(var ki=0;ki0)){var wt=[Xe,1],Rt=Ln(Ze.from,Ue.from),vn=Ln(Ze.to,Ue.to);(Rt<0||!Ie.inclusiveLeft&&!Rt)&&wt.push({from:Ze.from,to:Ue.from}),(vn>0||!Ie.inclusiveRight&&!vn)&&wt.push({from:Ue.to,to:Ze.to}),pe.splice.apply(pe,wt),Xe+=wt.length-3}}return pe}function uu(re){var se=re.markedSpans;if(se){for(var ce=0;cese)&&(!ue||od(ue,be.marker)<0)&&(ue=be.marker)}return ue}function af(re,se,ce,ue,pe){var be=si(re,se),Ie=bl&&be.markedSpans;if(Ie)for(var Ue=0;Ue=0&&Rt<=0||wt<=0&&Rt>=0)&&(wt<=0&&(Xe.marker.inclusiveRight&&pe.inclusiveLeft?Ln(Ze.to,ce)>=0:Ln(Ze.to,ce)>0)||wt>=0&&(Xe.marker.inclusiveRight&&pe.inclusiveLeft?Ln(Ze.from,ue)<=0:Ln(Ze.from,ue)<0)))return!0}}}function Qu(re){for(var se;se=Ip(re);)re=se.find(-1,!0).line;return re}function cu(re){for(var se;se=Bu(re);)re=se.find(1,!0).line;return re}function Ri(re){for(var se,ce;se=Bu(re);)re=se.find(1,!0).line,(ce||(ce=[])).push(re);return ce}function Se(re,se){var ce=si(re,se),ue=Qu(ce);return ce==ue?se:Vs(ue)}function tt(re,se){if(se>re.lastLine())return se;var ce=si(re,se),ue;if(!Ye(re,ce))return se;for(;ue=Bu(ce);)ce=ue.find(1,!0).line;return Vs(ce)+1}function Ye(re,se){var ce=bl&&se.markedSpans;if(ce){for(var ue=void 0,pe=0;pese.maxLineLength&&(se.maxLineLength=pe,se.maxLine=ue)})}var qt=function(re,se,ce){this.text=re,Tp(this,se),this.height=ce?ce(this):1};qt.prototype.lineNo=function(){return Vs(this)},qa(qt);function Gn(re,se,ce,ue){re.text=se,re.stateAfter&&(re.stateAfter=null),re.styles&&(re.styles=null),re.order!=null&&(re.order=null),uu(re),Tp(re,ce);var pe=ue?ue(re):1;pe!=re.height&&Da(re,pe)}function rr(re){re.parent=null,uu(re)}var un={},dr={};function Pr(re,se){if(!re||/^\s*$/.test(re))return null;var ce=se.addModeClass?dr:un;return ce[re]||(ce[re]=re.replace(/\S+/g,"cm-$&"))}function fr(re,se){var ce=Cn("span",null,null,lt?"padding-right: .1px":null),ue={pre:Cn("pre",[ce],"CodeMirror-line"),content:ce,col:0,pos:0,cm:re,trailingSpace:!1,splitSpaces:re.getOption("lineWrapping")};se.measure={};for(var pe=0;pe<=(se.rest?se.rest.length:0);pe++){var be=pe?se.rest[pe-1]:se.line,Ie=void 0;ue.pos=0,ue.addToken=br,Ba(re.display.measure)&&(Ie=qo(be,re.doc.direction))&&(ue.addToken=Jn(ue.addToken,Ie)),ue.map=[];var Ue=se!=re.display.externalMeasured&&Vs(be);Mr(be,ue,_a(re,be,Ue)),be.styleClasses&&(be.styleClasses.bgClass&&(ue.bgClass=Yn(be.styleClasses.bgClass,ue.bgClass||"")),be.styleClasses.textClass&&(ue.textClass=Yn(be.styleClasses.textClass,ue.textClass||""))),ue.map.length==0&&ue.map.push(0,0,ue.content.appendChild(ll(re.display.measure))),pe==0?(se.measure.map=ue.map,se.measure.cache={}):((se.measure.maps||(se.measure.maps=[])).push(ue.map),(se.measure.caches||(se.measure.caches=[])).push({}))}if(lt){var Xe=ue.content.lastChild;(/\bcm-tab\b/.test(Xe.className)||Xe.querySelector&&Xe.querySelector(".cm-tab"))&&(ue.content.className="cm-tab-wrap-hack")}return Ki(re,"renderLine",re,se.line,ue.pre),ue.pre.className&&(ue.textClass=Yn(ue.pre.className,ue.textClass||"")),ue}function mr(re){var se=Zt("span","\u2022","cm-invalidchar");return se.title="\\u"+re.charCodeAt(0).toString(16),se.setAttribute("aria-label",se.title),se}function br(re,se,ce,ue,pe,be,Ie){if(se){var Ue=re.splitSpaces?wr(se,re.trailingSpace):se,Xe=re.cm.state.specialChars,Ze=!1,wt;if(!Xe.test(se))re.col+=se.length,wt=document.createTextNode(Ue),re.map.push(re.pos,re.pos+se.length,wt),$e&&at<9&&(Ze=!0),re.pos+=se.length;else{wt=document.createDocumentFragment();for(var Rt=0;;){Xe.lastIndex=Rt;var vn=Xe.exec(se),nn=vn?vn.index-Rt:se.length-Rt;if(nn){var sr=document.createTextNode(Ue.slice(Rt,Rt+nn));$e&&at<9?wt.appendChild(Zt("span",[sr])):wt.appendChild(sr),re.map.push(re.pos,re.pos+nn,sr),re.col+=nn,re.pos+=nn}if(!vn)break;Rt+=nn+1;var Sr=void 0;if(vn[0]==" "){var On=re.cm.options.tabSize,oi=On-re.col%On;Sr=wt.appendChild(Zt("span",Yt(oi),"cm-tab")),Sr.setAttribute("role","presentation"),Sr.setAttribute("cm-text"," "),re.col+=oi}else vn[0]=="\r"||vn[0]==` `?(Sr=wt.appendChild(Zt("span",vn[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Sr.setAttribute("cm-text",vn[0]),re.col+=1):(Sr=re.cm.options.specialCharPlaceholder(vn[0]),Sr.setAttribute("cm-text",vn[0]),$e&&at<9?wt.appendChild(Zt("span",[Sr])):wt.appendChild(Sr),re.col+=1);re.map.push(re.pos,re.pos+1,Sr),re.pos++}}if(re.trailingSpace=Ue.charCodeAt(se.length-1)==32,ce||ue||pe||Ze||be||Ie){var fi=ce||"";ue&&(fi+=ue),pe&&(fi+=pe);var ii=Zt("span",[wt],fi,be);if(Ie)for(var ki in Ie)Ie.hasOwnProperty(ki)&&ki!="style"&&ki!="class"&&ii.setAttribute(ki,Ie[ki]);return re.content.appendChild(ii)}re.content.appendChild(wt)}}function wr(re,se){if(re.length>1&&!/ /.test(re))return re;for(var ce=se,ue="",pe=0;peZe&&Rt.from<=Ze));vn++);if(Rt.to>=wt)return re(ce,ue,pe,be,Ie,Ue,Xe);re(ce,ue.slice(0,Rt.to-Ze),pe,be,null,Ue,Xe),be=null,ue=ue.slice(Rt.to-Ze),Ze=Rt.to}}}function Fr(re,se,ce,ue){var pe=!ue&&ce.widgetNode;pe&&re.map.push(re.pos,re.pos+se,pe),!ue&&re.cm.display.input.needsContentAttribute&&(pe||(pe=re.content.appendChild(document.createElement("span"))),pe.setAttribute("cm-marker",ce.id)),pe&&(re.cm.display.input.setUneditable(pe),re.content.appendChild(pe)),re.pos+=se,re.trailingSpace=!1}function Mr(re,se,ce){var ue=re.markedSpans,pe=re.text,be=0;if(!ue){for(var Ie=1;IeXe||ba.collapsed&&As.to==Xe&&As.from==Xe)){if(As.to!=null&&As.to!=Xe&&nn>As.to&&(nn=As.to,Sr=""),ba.className&&(sr+=" "+ba.className),ba.css&&(vn=(vn?vn+";":"")+ba.css),ba.startStyle&&As.from==Xe&&(On+=" "+ba.startStyle),ba.endStyle&&As.to==nn&&(ki||(ki=[])).push(ba.endStyle,As.to),ba.title&&((fi||(fi={})).title=ba.title),ba.attributes)for(var wo in ba.attributes)(fi||(fi={}))[wo]=ba.attributes[wo];ba.collapsed&&(!oi||od(oi.marker,ba)<0)&&(oi=As)}else As.from>Xe&&nn>As.from&&(nn=As.from)}if(ki)for(var Gl=0;Gl=Ue)break;for(var wc=Math.min(Ue,nn);;){if(wt){var $u=Xe+wt.length;if(!oi){var Al=$u>wc?wt.slice(0,wc-Xe):wt;se.addToken(se,Al,Rt?Rt+sr:sr,On,Xe+Al.length==nn?Sr:"",vn,fi)}if($u>=wc){wt=wt.slice(wc-Xe),Xe=wc;break}Xe=$u,On=""}wt=pe.slice(be,be=ce[Ze++]),Rt=Pr(ce[Ze++],se.cm.options)}}}function Dr(re,se,ce){this.line=se,this.rest=Ri(se),this.size=this.rest?Vs(Fn(this.rest))-ce+1:1,this.node=this.text=null,this.hidden=Ye(re,se)}function _r(re,se,ce){for(var ue=[],pe,be=se;be2&&be.push((Xe.bottom+Ze.top)/2-ce.top)}}be.push(ce.bottom-ce.top)}}function va(re,se,ce){if(re.line==se)return{map:re.measure.map,cache:re.measure.cache};for(var ue=0;uece)return{map:re.measure.maps[pe],cache:re.measure.caches[pe],before:!0}}function Ua(re,se){se=Qu(se);var ce=Vs(se),ue=re.display.externalMeasured=new Dr(re.doc,se,ce);ue.lineN=ce;var pe=ue.built=fr(re,ue);return ue.text=pe.pre,Gt(re.display.lineMeasure,pe.pre),ue}function ea(re,se,ce,ue){return Ta(re,Rs(re,se),ce,ue)}function xa(re,se){if(se>=re.display.viewFrom&&se=ce.lineN&&sese)&&(be=Xe-Ue,pe=be-1,se>=Xe&&(Ie="right")),pe!=null){if(ue=re[Ze+2],Ue==Xe&&ce==(ue.insertLeft?"left":"right")&&(Ie=ce),ce=="left"&&pe==0)for(;Ze&&re[Ze-2]==re[Ze-3]&&re[Ze-1].insertLeft;)ue=re[(Ze-=3)+2],Ie="left";if(ce=="right"&&pe==Xe-Ue)for(;Ze=0&&(ce=re[pe]).left==ce.right;pe--);return ce}function vo(re,se,ce,ue){var pe=Ia(se.map,ce,ue),be=pe.node,Ie=pe.start,Ue=pe.end,Xe=pe.collapse,Ze;if(be.nodeType==3){for(var wt=0;wt<4;wt++){for(;Ie&&Wn(se.line.text.charAt(pe.coverStart+Ie));)--Ie;for(;pe.coverStart+Ue0&&(Xe=ue="right");var Rt;re.options.lineWrapping&&(Rt=be.getClientRects()).length>1?Ze=Rt[ue=="right"?Rt.length-1:0]:Ze=be.getBoundingClientRect()}if($e&&at<9&&!Ie&&(!Ze||!Ze.left&&!Ze.right)){var vn=be.parentNode.getClientRects()[0];vn?Ze={left:vn.left,right:vn.left+hu(re.display),top:vn.top,bottom:vn.bottom}:Ze=La}for(var nn=Ze.top-se.rect.top,sr=Ze.bottom-se.rect.top,Sr=(nn+sr)/2,On=se.view.measure.heights,oi=0;oi=ue.text.length?(Xe=ue.text.length,Ze="before"):Xe<=0&&(Xe=0,Ze="after"),!Ue)return Ie(Ze=="before"?Xe-1:Xe,Ze=="before");function wt(sr,Sr,On){var oi=Ue[Sr],fi=oi.level==1;return Ie(On?sr-1:sr,fi!=On)}var Rt=Ra(Ue,Xe,Ze),vn=Ni,nn=wt(Xe,Rt,Ze=="before");return vn!=null&&(nn.other=wt(Xe,vn,Ze!="before")),nn}function Mi(re,se){var ce=0;se=nr(re.doc,se),re.options.lineWrapping||(ce=hu(re.display)*se.ch);var ue=si(re.doc,se.line),pe=ht(ue)+Gs(re.display);return{left:ce,right:ce,top:pe,bottom:pe+ue.height}}function fa(re,se,ce,ue,pe){var be=xr(re,se,ce);return be.xRel=pe,ue&&(be.outside=ue),be}function gi(re,se,ce){var ue=re.doc;if(ce+=re.display.viewOffset,ce<0)return fa(ue.first,0,null,-1,-1);var pe=io(ue,ce),be=ue.first+ue.size-1;if(pe>be)return fa(ue.first+ue.size-1,si(ue,be).text.length,null,1,1);se<0&&(se=0);for(var Ie=si(ue,pe);;){var Ue=cl(re,Ie,pe,se,ce),Xe=Fp(Ie,Ue.ch+(Ue.xRel>0||Ue.outside>0?1:0));if(!Xe)return Ue;var Ze=Xe.find(1);if(Ze.line==pe)return Ze;Ie=si(ue,pe=Ze.line)}}function Zi(re,se,ce,ue){ue-=Ha(se);var pe=se.text.length,be=hs(function(Ie){return Ta(re,ce,Ie-1).bottom<=ue},pe,0);return pe=hs(function(Ie){return Ta(re,ce,Ie).top>ue},be,pe),{begin:be,end:pe}}function Eo(re,se,ce,ue){ce||(ce=Rs(re,se));var pe=Yo(re,se,Ta(re,ce,ue),"line").top;return Zi(re,se,ce,pe)}function uo(re,se,ce,ue){return re.bottom<=ce?!1:re.top>ce?!0:(ue?re.left:re.right)>se}function cl(re,se,ce,ue,pe){pe-=ht(se);var be=Rs(re,se),Ie=Ha(se),Ue=0,Xe=se.text.length,Ze=!0,wt=qo(se,re.doc.direction);if(wt){var Rt=(re.options.lineWrapping?fu:hc)(re,se,ce,be,wt,ue,pe);Ze=Rt.level!=1,Ue=Ze?Rt.from:Rt.to-1,Xe=Ze?Rt.to:Rt.from-1}var vn=null,nn=null,sr=hs(function(Hs){var As=Ta(re,be,Hs);return As.top+=Ie,As.bottom+=Ie,uo(As,ue,pe,!1)?(As.top<=pe&&As.left<=ue&&(vn=Hs,nn=As),!0):!1},Ue,Xe),Sr,On,oi=!1;if(nn){var fi=ue-nn.left=ki.bottom?1:0}return sr=Rn(se.text,sr,1),fa(ce,sr,On,oi,ue-Sr)}function hc(re,se,ce,ue,pe,be,Ie){var Ue=hs(function(Rt){var vn=pe[Rt],nn=vn.level!=1;return uo(Qi(re,xr(ce,nn?vn.to:vn.from,nn?"before":"after"),"line",se,ue),be,Ie,!0)},0,pe.length-1),Xe=pe[Ue];if(Ue>0){var Ze=Xe.level!=1,wt=Qi(re,xr(ce,Ze?Xe.from:Xe.to,Ze?"after":"before"),"line",se,ue);uo(wt,be,Ie,!0)&&wt.top>Ie&&(Xe=pe[Ue-1])}return Xe}function fu(re,se,ce,ue,pe,be,Ie){var Ue=Zi(re,se,ue,Ie),Xe=Ue.begin,Ze=Ue.end;/\s/.test(se.text.charAt(Ze-1))&&Ze--;for(var wt=null,Rt=null,vn=0;vn=Ze||nn.to<=Xe)){var sr=nn.level!=1,Sr=Ta(re,ue,sr?Math.min(Ze,nn.to)-1:Math.max(Xe,nn.from)).right,On=SrOn)&&(wt=nn,Rt=On)}}return wt||(wt=pe[pe.length-1]),wt.fromZe&&(wt={from:wt.from,to:Ze,level:wt.level}),wt}var Fl;function Jo(re){if(re.cachedTextHeight!=null)return re.cachedTextHeight;if(Fl==null){Fl=Zt("pre",null,"CodeMirror-line-like");for(var se=0;se<49;++se)Fl.appendChild(document.createTextNode("x")),Fl.appendChild(Zt("br"));Fl.appendChild(document.createTextNode("x"))}Gt(re.measure,Fl);var ce=Fl.offsetHeight/50;return ce>3&&(re.cachedTextHeight=ce),ir(re.measure),ce||1}function hu(re){if(re.cachedCharWidth!=null)return re.cachedCharWidth;var se=Zt("span","xxxxxxxxxx"),ce=Zt("pre",[se],"CodeMirror-line-like");Gt(re.measure,ce);var ue=se.getBoundingClientRect(),pe=(ue.right-ue.left)/10;return pe>2&&(re.cachedCharWidth=pe),pe||10}function _l(re){for(var se=re.display,ce={},ue={},pe=se.gutters.clientLeft,be=se.gutters.firstChild,Ie=0;be;be=be.nextSibling,++Ie){var Ue=re.display.gutterSpecs[Ie].className;ce[Ue]=be.offsetLeft+be.clientLeft+pe,ue[Ue]=be.clientWidth}return{fixedPos:Ic(se),gutterTotalWidth:se.gutters.offsetWidth,gutterLeft:ce,gutterWidth:ue,wrapperWidth:se.wrapper.clientWidth}}function Ic(re){return re.scroller.getBoundingClientRect().left-re.sizer.getBoundingClientRect().left}function of(re){var se=Jo(re.display),ce=re.options.lineWrapping,ue=ce&&Math.max(5,re.display.scroller.clientWidth/hu(re.display)-3);return function(pe){if(Ye(re.doc,pe))return 0;var be=0;if(pe.widgets)for(var Ie=0;Ie0&&(Ze=si(re.doc,Xe.line).text).length==Xe.ch){var wt=mt(Ze,Ze.length,re.options.tabSize)-Ze.length;Xe=xr(Xe.line,Math.max(0,Math.round((be-Ms(re.display).left)/hu(re.display))-wt))}return Xe}function $l(re,se){if(se>=re.display.viewTo||(se-=re.display.viewFrom,se<0))return null;for(var ce=re.display.view,ue=0;uese)&&(pe.updateLineNumbers=se),re.curOp.viewChanged=!0,se>=pe.viewTo)bl&&Se(re.doc,se)pe.viewFrom?Fc(re):(pe.viewFrom+=ue,pe.viewTo+=ue);else if(se<=pe.viewFrom&&ce>=pe.viewTo)Fc(re);else if(se<=pe.viewFrom){var be=lf(re,ce,ce+ue,1);be?(pe.view=pe.view.slice(be.index),pe.viewFrom=be.lineN,pe.viewTo+=ue):Fc(re)}else if(ce>=pe.viewTo){var Ie=lf(re,se,se,-1);Ie?(pe.view=pe.view.slice(0,Ie.index),pe.viewTo=Ie.lineN):Fc(re)}else{var Ue=lf(re,se,se,-1),Xe=lf(re,ce,ce+ue,1);Ue&&Xe?(pe.view=pe.view.slice(0,Ue.index).concat(_r(re,Ue.lineN,Xe.lineN)).concat(pe.view.slice(Xe.index)),pe.viewTo+=ue):Fc(re)}var Ze=pe.externalMeasured;Ze&&(ce=pe.lineN&&se=ue.viewTo)){var be=ue.view[$l(re,se)];if(be.node!=null){var Ie=be.changes||(be.changes=[]);er(Ie,ce)==-1&&Ie.push(ce)}}}function Fc(re){re.display.viewFrom=re.display.viewTo=re.doc.first,re.display.view=[],re.display.viewOffset=0}function lf(re,se,ce,ue){var pe=$l(re,se),be,Ie=re.display.view;if(!bl||ce==re.doc.first+re.doc.size)return{index:pe,lineN:ce};for(var Ue=re.display.viewFrom,Xe=0;Xe0){if(pe==Ie.length-1)return null;be=Ue+Ie[pe].size-se,pe++}else be=Ue-se;se+=be,ce+=be}for(;Se(re.doc,ce)!=ce;){if(pe==(ue<0?0:Ie.length-1))return null;ce+=ue*Ie[pe-(ue<0?1:0)].size,pe+=ue}return{index:pe,lineN:ce}}function xm(re,se,ce){var ue=re.display,pe=ue.view;pe.length==0||se>=ue.viewTo||ce<=ue.viewFrom?(ue.view=_r(re,se,ce),ue.viewFrom=se):(ue.viewFrom>se?ue.view=_r(re,se,ue.viewFrom).concat(ue.view):ue.viewFromce&&(ue.view=ue.view.slice(0,$l(re,ce)))),ue.viewTo=ce}function Np(re){for(var se=re.display.view,ce=0,ue=0;ue=re.display.viewTo||Ue.to().line0?se.blinker=setInterval(function(){re.hasFocus()||ld(re),se.cursorDiv.style.visibility=(ce=!ce)?"":"hidden"},re.options.cursorBlinkRate):re.options.cursorBlinkRate<0&&(se.cursorDiv.style.visibility="hidden")}}function Op(re){re.state.focused||(re.display.input.focus(),zh(re))}function Rp(re){re.state.delayingBlurEvent=!0,setTimeout(function(){re.state.delayingBlurEvent&&(re.state.delayingBlurEvent=!1,ld(re))},100)}function zh(re,se){re.state.delayingBlurEvent&&(re.state.delayingBlurEvent=!1),re.options.readOnly!="nocursor"&&(re.state.focused||(Ki(re,"focus",re,se),re.state.focused=!0,Zn(re.display.wrapper,"CodeMirror-focused"),!re.curOp&&re.display.selForContextMenu!=re.doc.sel&&(re.display.input.reset(),lt&&setTimeout(function(){return re.display.input.reset(!0)},20)),re.display.input.receivedFocus()),Yu(re))}function ld(re,se){re.state.delayingBlurEvent||(re.state.focused&&(Ki(re,"blur",re,se),re.state.focused=!1,pn(re.display.wrapper,"CodeMirror-focused")),clearInterval(re.display.blinker),setTimeout(function(){re.state.focused||(re.display.shift=!1)},150))}function _f(re){for(var se=re.display,ce=se.lineDiv.offsetTop,ue=0;ue.005||wt<-.005)&&(Da(pe.line,Ie),Nd(pe.line),pe.rest))for(var Rt=0;Rtre.display.sizerWidth){var vn=Math.ceil(Ue/hu(re.display));vn>re.display.maxLineLength&&(re.display.maxLineLength=vn,re.display.maxLine=pe.line,re.display.maxLineChanged=!0)}}}}function Nd(re){if(re.widgets)for(var se=0;se=Ie&&(be=io(se,ht(si(se,Xe))-re.wrapper.clientHeight),Ie=Xe)}return{from:be,to:Math.max(Ie,be+1)}}function Ld(re,se){if(!ha(re,"scrollCursorIntoView")){var ce=re.display,ue=ce.sizer.getBoundingClientRect(),pe=null;if(se.top+ue.top<0?pe=!0:se.bottom+ue.top>(window.innerHeight||document.documentElement.clientHeight)&&(pe=!1),pe!=null&&!Nt){var be=Zt("div","\u200B",null,`position: absolute; top: `+(se.top-ce.viewOffset-Gs(re.display))+`px; height: `+(se.bottom-se.top+Ds(re)+ce.barHeight)+`px; left: `+se.left+"px; width: "+Math.max(2,se.right-se.left)+"px;");re.display.lineSpace.appendChild(be),be.scrollIntoView(pe),re.display.lineSpace.removeChild(be)}}}function uf(re,se,ce,ue){ue==null&&(ue=0);var pe;!re.options.lineWrapping&&se==ce&&(se=se.ch?xr(se.line,se.sticky=="before"?se.ch-1:se.ch,"after"):se,ce=se.sticky=="before"?xr(se.line,se.ch+1,"before"):se);for(var be=0;be<5;be++){var Ie=!1,Ue=Qi(re,se),Xe=!ce||ce==se?Ue:Qi(re,ce);pe={left:Math.min(Ue.left,Xe.left),top:Math.min(Ue.top,Xe.top)-ue,right:Math.max(Ue.left,Xe.left),bottom:Math.max(Ue.bottom,Xe.bottom)+ue};var Ze=cf(re,pe),wt=re.doc.scrollTop,Rt=re.doc.scrollLeft;if(Ze.scrollTop!=null&&(cd(re,Ze.scrollTop),Math.abs(re.doc.scrollTop-wt)>1&&(Ie=!0)),Ze.scrollLeft!=null&&(Mu(re,Ze.scrollLeft),Math.abs(re.doc.scrollLeft-Rt)>1&&(Ie=!0)),!Ie)break}return pe}function zp(re,se){var ce=cf(re,se);ce.scrollTop!=null&&cd(re,ce.scrollTop),ce.scrollLeft!=null&&Mu(re,ce.scrollLeft)}function cf(re,se){var ce=re.display,ue=Jo(re.display);se.top<0&&(se.top=0);var pe=re.curOp&&re.curOp.scrollTop!=null?re.curOp.scrollTop:ce.scroller.scrollTop,be=da(re),Ie={};se.bottom-se.top>be&&(se.bottom=se.top+be);var Ue=re.doc.height+Tr(ce),Xe=se.topUe-ue;if(se.toppe+be){var wt=Math.min(se.top,(Ze?Ue:se.bottom)-be);wt!=pe&&(Ie.scrollTop=wt)}var Rt=re.options.fixedGutter?0:ce.gutters.offsetWidth,vn=re.curOp&&re.curOp.scrollLeft!=null?re.curOp.scrollLeft:ce.scroller.scrollLeft-Rt,nn=na(re)-ce.gutters.offsetWidth,sr=se.right-se.left>nn;return sr&&(se.right=se.left+nn),se.left<10?Ie.scrollLeft=0:se.leftnn+vn-3&&(Ie.scrollLeft=se.right+(sr?0:10)-nn),Ie}function df(re,se){se!=null&&(Od(re),re.curOp.scrollTop=(re.curOp.scrollTop==null?re.doc.scrollTop:re.curOp.scrollTop)+se)}function $n(re){Od(re);var se=re.getCursor();re.curOp.scrollToPos={from:se,to:se,margin:re.options.cursorScrollMargin}}function ff(re,se,ce){(se!=null||ce!=null)&&Od(re),se!=null&&(re.curOp.scrollLeft=se),ce!=null&&(re.curOp.scrollTop=ce)}function bm(re,se){Od(re),re.curOp.scrollToPos=se}function Od(re){var se=re.curOp.scrollToPos;if(se){re.curOp.scrollToPos=null;var ce=Mi(re,se.from),ue=Mi(re,se.to);ud(re,ce,ue,se.margin)}}function ud(re,se,ce,ue){var pe=cf(re,{left:Math.min(se.left,ce.left),top:Math.min(se.top,ce.top)-ue,right:Math.max(se.right,ce.right),bottom:Math.max(se.bottom,ce.bottom)+ue});ff(re,pe.scrollLeft,pe.scrollTop)}function cd(re,se){Math.abs(re.doc.scrollTop-se)<2||(fe||xv(re,{top:se}),Qc(re,se,!0),fe&&xv(re),fl(re,100))}function Qc(re,se,ce){se=Math.max(0,Math.min(re.display.scroller.scrollHeight-re.display.scroller.clientHeight,se)),!(re.display.scroller.scrollTop==se&&!ce)&&(re.doc.scrollTop=se,re.display.scrollbars.setScrollTop(se),re.display.scroller.scrollTop!=se&&(re.display.scroller.scrollTop=se))}function Mu(re,se,ce,ue){se=Math.max(0,Math.min(se,re.display.scroller.scrollWidth-re.display.scroller.clientWidth)),!((ce?se==re.doc.scrollLeft:Math.abs(re.doc.scrollLeft-se)<2)&&!ue)&&(re.doc.scrollLeft=se,Cg(re),re.display.scroller.scrollLeft!=se&&(re.display.scroller.scrollLeft=se),re.display.scrollbars.setScrollLeft(se))}function Nc(re){var se=re.display,ce=se.gutters.offsetWidth,ue=Math.round(re.doc.height+Tr(re.display));return{clientHeight:se.scroller.clientHeight,viewHeight:se.wrapper.clientHeight,scrollWidth:se.scroller.scrollWidth,clientWidth:se.scroller.clientWidth,viewWidth:se.wrapper.clientWidth,barLeft:re.options.fixedGutter?ce:0,docHeight:ue,scrollHeight:ue+Ds(re)+se.barHeight,nativeBarWidth:se.nativeBarWidth,gutterWidth:ce}}var Ju=function(re,se,ce){this.cm=ce;var ue=this.vert=Zt("div",[Zt("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),pe=this.horiz=Zt("div",[Zt("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");ue.tabIndex=pe.tabIndex=-1,re(ue),re(pe),Xi(ue,"scroll",function(){ue.clientHeight&&se(ue.scrollTop,"vertical")}),Xi(pe,"scroll",function(){pe.clientWidth&&se(pe.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,$e&&at<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Ju.prototype.update=function(re){var se=re.scrollWidth>re.clientWidth+1,ce=re.scrollHeight>re.clientHeight+1,ue=re.nativeBarWidth;if(ce){this.vert.style.display="block",this.vert.style.bottom=se?ue+"px":"0";var pe=re.viewHeight-(se?ue:0);this.vert.firstChild.style.height=Math.max(0,re.scrollHeight-re.clientHeight+pe)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(se){this.horiz.style.display="block",this.horiz.style.right=ce?ue+"px":"0",this.horiz.style.left=re.barLeft+"px";var be=re.viewWidth-re.barLeft-(ce?ue:0);this.horiz.firstChild.style.width=Math.max(0,re.scrollWidth-re.clientWidth+be)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&re.clientHeight>0&&(ue==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:ce?ue:0,bottom:se?ue:0}},Ju.prototype.setScrollLeft=function(re){this.horiz.scrollLeft!=re&&(this.horiz.scrollLeft=re),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Ju.prototype.setScrollTop=function(re){this.vert.scrollTop!=re&&(this.vert.scrollTop=re),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Ju.prototype.zeroWidthHack=function(){var re=Ct&&!Mt?"12px":"18px";this.horiz.style.height=this.vert.style.width=re,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new qe,this.disableVert=new qe},Ju.prototype.enableZeroWidthBar=function(re,se,ce){re.style.pointerEvents="auto";function ue(){var pe=re.getBoundingClientRect(),be=ce=="vert"?document.elementFromPoint(pe.right-1,(pe.top+pe.bottom)/2):document.elementFromPoint((pe.right+pe.left)/2,pe.bottom-1);be!=re?re.style.pointerEvents="none":se.set(1e3,ue)}se.set(1e3,ue)},Ju.prototype.clear=function(){var re=this.horiz.parentNode;re.removeChild(this.horiz),re.removeChild(this.vert)};var Ku=function(){};Ku.prototype.update=function(){return{bottom:0,right:0}},Ku.prototype.setScrollLeft=function(){},Ku.prototype.setScrollTop=function(){},Ku.prototype.clear=function(){};function dd(re,se){se||(se=Nc(re));var ce=re.display.barWidth,ue=re.display.barHeight;kp(re,se);for(var pe=0;pe<4&&ce!=re.display.barWidth||ue!=re.display.barHeight;pe++)ce!=re.display.barWidth&&re.options.lineWrapping&&_f(re),kp(re,Nc(re)),ce=re.display.barWidth,ue=re.display.barHeight}function kp(re,se){var ce=re.display,ue=ce.scrollbars.update(se);ce.sizer.style.paddingRight=(ce.barWidth=ue.right)+"px",ce.sizer.style.paddingBottom=(ce.barHeight=ue.bottom)+"px",ce.heightForcer.style.borderBottom=ue.bottom+"px solid transparent",ue.right&&ue.bottom?(ce.scrollbarFiller.style.display="block",ce.scrollbarFiller.style.height=ue.bottom+"px",ce.scrollbarFiller.style.width=ue.right+"px"):ce.scrollbarFiller.style.display="",ue.bottom&&re.options.coverGutterNextToScrollbar&&re.options.fixedGutter?(ce.gutterFiller.style.display="block",ce.gutterFiller.style.height=ue.bottom+"px",ce.gutterFiller.style.width=se.gutterWidth+"px"):ce.gutterFiller.style.display=""}var kh={native:Ju,null:Ku};function Du(re){re.display.scrollbars&&(re.display.scrollbars.clear(),re.display.scrollbars.addClass&&pn(re.display.wrapper,re.display.scrollbars.addClass)),re.display.scrollbars=new kh[re.options.scrollbarStyle](function(se){re.display.wrapper.insertBefore(se,re.display.scrollbarFiller),Xi(se,"mousedown",function(){re.state.focused&&setTimeout(function(){return re.display.input.focus()},0)}),se.setAttribute("cm-not-content","true")},function(se,ce){ce=="horizontal"?Mu(re,se):cd(re,se)},re),re.display.scrollbars.addClass&&Zn(re.display.wrapper,re.display.scrollbars.addClass)}var Ti=0;function zs(re){re.curOp={cm:re,viewChanged:!1,startHeight:re.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ti},Ur(re.curOp)}function dl(re){var se=re.curOp;se&&vi(se,function(ce){for(var ue=0;ue=ce.viewTo)||ce.maxLineChanged&&se.options.lineWrapping,re.update=re.mustUpdate&&new Lc(se,re.mustUpdate&&{top:re.scrollTop,ensure:re.scrollToPos},re.forceUpdate)}function Eg(re){re.updatedDisplay=re.mustUpdate&&Av(re.cm,re.update)}function vv(re){var se=re.cm,ce=se.display;re.updatedDisplay&&_f(se),re.barMeasure=Nc(se),ce.maxLineChanged&&!se.options.lineWrapping&&(re.adjustWidthTo=ea(se,ce.maxLine,ce.maxLine.text.length).left+3,se.display.sizerWidth=re.adjustWidthTo,re.barMeasure.scrollWidth=Math.max(ce.scroller.clientWidth,ce.sizer.offsetLeft+re.adjustWidthTo+Ds(se)+se.display.barWidth),re.maxScrollLeft=Math.max(0,ce.sizer.offsetLeft+re.adjustWidthTo-na(se))),(re.updatedDisplay||re.selectionChanged)&&(re.preparedSelection=ce.input.prepareSelection())}function Em(re){var se=re.cm;re.adjustWidthTo!=null&&(se.display.sizer.style.minWidth=re.adjustWidthTo+"px",re.maxScrollLeft=re.display.viewTo)){var ce=+new Date+re.options.workTime,ue=ul(re,se.highlightFrontier),pe=[];se.iter(ue.line,Math.min(se.first+se.size,re.display.viewTo+500),function(be){if(ue.line>=re.display.viewFrom){var Ie=be.styles,Ue=be.text.length>re.options.maxHighlightLength?Vn(se.mode,ue.state):null,Xe=Ho(re,be,ue,!0);Ue&&(ue.state=Ue),be.styles=Xe.styles;var Ze=be.styleClasses,wt=Xe.classes;wt?be.styleClasses=wt:Ze&&(be.styleClasses=null);for(var Rt=!Ie||Ie.length!=be.styles.length||Ze!=wt&&(!Ze||!wt||Ze.bgClass!=wt.bgClass||Ze.textClass!=wt.textClass),vn=0;!Rt&&vnce)return fl(re,re.options.workDelay),!0}),se.highlightFrontier=ue.line,se.modeFrontier=Math.max(se.modeFrontier,ue.line),pe.length&&ra(re,function(){for(var be=0;be=ce.viewFrom&&se.visible.to<=ce.viewTo&&(ce.updateLineNumbers==null||ce.updateLineNumbers>=ce.viewTo)&&ce.renderedView==ce.view&&Np(re)==0)return!1;NA(re)&&(Fc(re),se.dims=_l(re));var pe=ue.first+ue.size,be=Math.max(se.visible.from-re.options.viewportMargin,ue.first),Ie=Math.min(pe,se.visible.to+re.options.viewportMargin);ce.viewFromIe&&ce.viewTo-Ie<20&&(Ie=Math.min(pe,ce.viewTo)),bl&&(be=Se(re.doc,be),Ie=tt(re.doc,Ie));var Ue=be!=ce.viewFrom||Ie!=ce.viewTo||ce.lastWrapHeight!=se.wrapperHeight||ce.lastWrapWidth!=se.wrapperWidth;xm(re,be,Ie),ce.viewOffset=ht(si(re.doc,ce.viewFrom)),re.display.mover.style.top=ce.viewOffset+"px";var Xe=Np(re);if(!Ue&&Xe==0&&!se.force&&ce.renderedView==ce.view&&(ce.updateLineNumbers==null||ce.updateLineNumbers>=ce.viewTo))return!1;var Ze=Ey(re);return Xe>4&&(ce.lineDiv.style.display="none"),Cy(re,ce.updateLineNumbers,se.dims),Xe>4&&(ce.lineDiv.style.display=""),ce.renderedView=ce.view,wy(Ze),ir(ce.cursorDiv),ir(ce.selectionDiv),ce.gutters.style.height=ce.sizer.style.minHeight=0,Ue&&(ce.lastWrapHeight=se.wrapperHeight,ce.lastWrapWidth=se.wrapperWidth,fl(re,400)),ce.updateLineNumbers=null,!0}function yv(re,se){for(var ce=se.viewport,ue=!0;;ue=!1){if(!ue||!re.options.lineWrapping||se.oldDisplayWidth==na(re)){if(ce&&ce.top!=null&&(ce={top:Math.min(re.doc.height+Tr(re.display)-da(re),ce.top)}),se.visible=gc(re.display,re.doc,ce),se.visible.from>=re.display.viewFrom&&se.visible.to<=re.display.viewTo)break}else ue&&(se.visible=gc(re.display,re.doc,ce));if(!Av(re,se))break;_f(re);var pe=Nc(re);Fd(re),dd(re,pe),Cm(re,pe),se.force=!1}se.signal(re,"update",re),(re.display.viewFrom!=re.display.reportedViewFrom||re.display.viewTo!=re.display.reportedViewTo)&&(se.signal(re,"viewportChange",re,re.display.viewFrom,re.display.viewTo),re.display.reportedViewFrom=re.display.viewFrom,re.display.reportedViewTo=re.display.viewTo)}function xv(re,se){var ce=new Lc(re,se);if(Av(re,ce)){_f(re),yv(re,ce);var ue=Nc(re);Fd(re),dd(re,ue),Cm(re,ue),ce.finish()}}function Cy(re,se,ce){var ue=re.display,pe=re.options.lineNumbers,be=ue.lineDiv,Ie=be.firstChild;function Ue(sr){var Sr=sr.nextSibling;return lt&&Ct&&re.display.currentWheelTarget==sr?sr.style.display="none":sr.parentNode.removeChild(sr),Sr}for(var Xe=ue.view,Ze=ue.viewFrom,wt=0;wt-1&&(nn=!1),Ai(re,Rt,Ze,ce)),nn&&(ir(Rt.lineNumber),Rt.lineNumber.appendChild(document.createTextNode(Kl(re.options,Ze)))),Ie=Rt.node.nextSibling}Ze+=Rt.size}for(;Ie;)Ie=Ue(Ie)}function wg(re){var se=re.gutters.offsetWidth;re.sizer.style.marginLeft=se+"px"}function Cm(re,se){re.display.sizer.style.minHeight=se.docHeight+"px",re.display.heightForcer.style.top=se.docHeight+"px",re.display.gutters.style.height=se.docHeight+re.display.barHeight+Ds(re)+"px"}function Cg(re){var se=re.display,ce=se.view;if(!(!se.alignWidgets&&(!se.gutters.firstChild||!re.options.fixedGutter))){for(var ue=Ic(se)-se.scroller.scrollLeft+re.doc.scrollLeft,pe=se.gutters.offsetWidth,be=ue+"px",Ie=0;IeIe.clientWidth,Xe=Ie.scrollHeight>Ie.clientHeight;if(ue&&Ue||pe&&Xe){if(pe&&Ct&<){e:for(var Ze=se.target,wt=be.view;Ze!=Ie;Ze=Ze.parentNode)for(var Rt=0;Rt=0&&Ln(re,ue.to())<=0)return ce}return-1};var $a=function(re,se){this.anchor=re,this.head=se};$a.prototype.from=function(){return Dd(this.anchor,this.head)},$a.prototype.to=function(){return ps(this.anchor,this.head)},$a.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function hd(re,se,ce){var ue=re&&re.options.selectionsMayTouch,pe=se[ce];se.sort(function(vn,nn){return Ln(vn.from(),nn.from())}),ce=er(se,pe);for(var be=1;be0:Xe>=0){var Ze=Dd(Ue.from(),Ie.from()),wt=ps(Ue.to(),Ie.to()),Rt=Ue.empty()?Ie.from()==Ie.head:Ue.from()==Ue.head;be<=ce&&--ce,se.splice(--be,2,new $a(Rt?wt:Ze,Rt?Ze:wt))}}return new Ac(se,ce)}function eh(re,se){return new Ac([new $a(re,se||re)],0)}function hf(re){return re.text?xr(re.from.line+re.text.length-1,Fn(re.text).length+(re.text.length==1?re.from.ch:0)):re.to}function Mg(re,se){if(Ln(re,se.from)<0)return re;if(Ln(re,se.to)<=0)return hf(se);var ce=re.line+se.text.length-(se.to.line-se.from.line)-1,ue=re.ch;return re.line==se.to.line&&(ue+=hf(se).ch-se.to.ch),xr(ce,ue)}function Rd(re,se){for(var ce=[],ue=0;ue1&&re.remove(Ue.line+1,sr-1),re.insert(Ue.line+1,oi)}ai(re,"change",re,se)}function th(re,se,ce){function ue(pe,be,Ie){if(pe.linked)for(var Ue=0;Ue1&&!re.done[re.done.length-2].ranges)return re.done.pop(),Fn(re.done)}function Ng(re,se,ce,ue){var pe=re.history;pe.undone.length=0;var be=+new Date,Ie,Ue;if((pe.lastOp==ue||pe.lastOrigin==se.origin&&se.origin&&(se.origin.charAt(0)=="+"&&pe.lastModTime>be-(re.cm?re.cm.options.historyEventDelay:500)||se.origin.charAt(0)=="*"))&&(Ie=Fg(pe,pe.lastOp==ue)))Ue=Fn(Ie.changes),Ln(se.from,se.to)==0&&Ln(se.from,Ue.to)==0?Ue.to=hf(se):Ie.changes.push(Ig(re,se));else{var Xe=Fn(pe.done);for((!Xe||!Xe.ranges)&&pd(re.sel,pe.done),Ie={changes:[Ig(re,se)],generation:pe.generation},pe.done.push(Ie);pe.done.length>pe.undoDepth;)pe.done.shift(),pe.done[0].ranges||pe.done.shift()}pe.done.push(ce),pe.generation=++pe.maxGeneration,pe.lastModTime=pe.lastSelTime=be,pe.lastOp=pe.lastSelOp=ue,pe.lastOrigin=pe.lastSelOrigin=se.origin,Ue||Ki(re,"historyAdded")}function Pv(re,se,ce,ue){var pe=se.charAt(0);return pe=="*"||pe=="+"&&ce.ranges.length==ue.ranges.length&&ce.somethingSelected()==ue.somethingSelected()&&new Date-re.history.lastSelTime<=(re.cm?re.cm.options.historyEventDelay:500)}function UA(re,se,ce,ue){var pe=re.history,be=ue&&ue.origin;ce==pe.lastSelOp||be&&pe.lastSelOrigin==be&&(pe.lastModTime==pe.lastSelTime&&pe.lastOrigin==be||Pv(re,be,Fn(pe.done),se))?pe.done[pe.done.length-1]=se:pd(se,pe.done),pe.lastSelTime=+new Date,pe.lastSelOrigin=be,pe.lastSelOp=ce,ue&&ue.clearRedo!==!1&&HA(pe.undone)}function pd(re,se){var ce=Fn(se);ce&&ce.ranges&&ce.equals(re)||se.push(re)}function eu(re,se,ce,ue){var pe=se["spans_"+re.id],be=0;re.iter(Math.max(re.first,ce),Math.min(re.first+re.size,ue),function(Ie){Ie.markedSpans&&((pe||(pe=se["spans_"+re.id]={}))[be]=Ie.markedSpans),++be})}function pf(re){if(!re)return null;for(var se,ce=0;ce-1&&(Fn(Ue)[Rt]=Ze[Rt],delete Ze[Rt])}}return ue}function VA(re,se,ce,ue){if(ue){var pe=re.anchor;if(ce){var be=Ln(se,pe)<0;be!=Ln(ce,pe)<0?(pe=se,se=ce):be!=Ln(se,ce)<0&&(se=ce)}return new $a(pe,se)}else return new $a(ce||se,se)}function Lg(re,se,ce,ue,pe){pe==null&&(pe=re.cm&&(re.cm.display.shift||re.extend)),eo(re,new Ac([VA(re.sel.primary(),se,ce,pe)],0),ue)}function mf(re,se,ce){for(var ue=[],pe=re.cm&&(re.cm.display.shift||re.extend),be=0;be=se.ch:Ue.to>se.ch))){if(pe&&(Ki(Xe,"beforeCursorEnter"),Xe.explicitlyCleared))if(be.markedSpans){--Ie;continue}else break;if(!Xe.atomic)continue;if(ce){var Rt=Xe.find(ue<0?1:-1),vn=void 0;if((ue<0?wt:Ze)&&(Rt=pu(re,Rt,-ue,Rt&&Rt.line==se.line?be:null)),Rt&&Rt.line==se.line&&(vn=Ln(Rt,ce))&&(ue<0?vn<0:vn>0))return Oc(re,Rt,se,ue,pe)}var nn=Xe.find(ue<0?-1:1);return(ue<0?Ze:wt)&&(nn=pu(re,nn,ue,nn.line==se.line?be:null)),nn?Oc(re,nn,se,ue,pe):null}}return se}function zd(re,se,ce,ue,pe){var be=ue||1,Ie=Oc(re,se,ce,be,pe)||!pe&&Oc(re,se,ce,be,!0)||Oc(re,se,ce,-be,pe)||!pe&&Oc(re,se,ce,-be,!0);return Ie||(re.cantEdit=!0,xr(re.first,0))}function pu(re,se,ce,ue){return ce<0&&se.ch==0?se.line>re.first?nr(re,xr(se.line-1)):null:ce>0&&se.ch==(ue||si(re,se.line)).text.length?se.line=0;--pe)Bv(re,{from:ue[pe].from,to:ue[pe].to,text:pe?[""]:se.text,origin:se.origin});else Bv(re,se)}}function Bv(re,se){if(!(se.text.length==1&&se.text[0]==""&&Ln(se.from,se.to)==0)){var ce=Rd(re,se);Ng(re,se,ce,re.cm?re.cm.curOp.id:NaN),gf(re,se,ce,Pu(re,se));var ue=[];th(re,function(pe,be){!be&&er(ue,pe.history)==-1&&(Mm(pe.history,se),ue.push(pe.history)),gf(pe,se,null,Pu(pe,se))})}}function Yc(re,se,ce){var ue=re.cm&&re.cm.state.suppressEdits;if(!(ue&&!ce)){for(var pe=re.history,be,Ie=re.sel,Ue=se=="undo"?pe.done:pe.undone,Xe=se=="undo"?pe.undone:pe.done,Ze=0;Ze=0;--nn){var sr=vn(nn);if(sr)return sr.v}}}}function Og(re,se){if(se!=0&&(re.first+=se,re.sel=new Ac(qr(re.sel.ranges,function(pe){return new $a(xr(pe.anchor.line+se,pe.anchor.ch),xr(pe.head.line+se,pe.head.ch))}),re.sel.primIndex),re.cm)){_o(re.cm,re.first,re.first-se,se);for(var ce=re.cm.display,ue=ce.viewFrom;uere.lastLine())){if(se.from.linebe&&(se={from:se.from,to:xr(be,si(re,be).text.length),text:[se.text[0]],origin:se.origin}),se.removed=mo(re,se.from,se.to),ce||(ce=Rd(re,se)),re.cm?Vh(re.cm,se,ue):Hp(re,se,ue),El(re,ce,$t),re.cantEdit&&zd(re,xr(re.firstLine(),0))&&(re.cantEdit=!1)}}function Vh(re,se,ce){var ue=re.doc,pe=re.display,be=se.from,Ie=se.to,Ue=!1,Xe=be.line;re.options.lineWrapping||(Xe=Vs(Qu(si(ue,be.line))),ue.iter(Xe,Ie.line+1,function(nn){if(nn==pe.maxLine)return Ue=!0,!0})),ue.sel.contains(se.from,se.to)>-1&&Hn(re),Hp(ue,se,ce,of(re)),re.options.lineWrapping||(ue.iter(Xe,be.line+se.text.length,function(nn){var sr=Wt(nn);sr>pe.maxLineLength&&(pe.maxLine=nn,pe.maxLineLength=sr,pe.maxLineChanged=!0,Ue=!1)}),Ue&&(re.curOp.updateMaxLine=!0)),xl(ue,be.line),fl(re,400);var Ze=se.text.length-(Ie.line-be.line)-1;se.full?_o(re):be.line==Ie.line&&se.text.length==1&&!Ev(re.doc,se)?Zu(re,be.line,"text"):_o(re,be.line,Ie.line+1,Ze);var wt=ri(re,"changes"),Rt=ri(re,"change");if(Rt||wt){var vn={from:be,to:Ie,text:se.text,removed:se.removed,origin:se.origin};Rt&&ai(re,"change",re,vn),wt&&(re.curOp.changeObjs||(re.curOp.changeObjs=[])).push(vn)}re.display.selForContextMenu=null}function kd(re,se,ce,ue,pe){var be;ue||(ue=ce),Ln(ue,ce)<0&&(be=[ue,ce],ce=be[0],ue=be[1]),typeof se=="string"&&(se=re.splitLines(se)),ih(re,{from:ce,to:ue,text:se,origin:pe})}function Up(re,se,ce,ue){ce1||!(this.children[0]instanceof Xh))){var Ue=[];this.collapse(Ue),this.children=[new Xh(Ue)],this.children[0].parent=this}},collapse:function(re){for(var se=0;se50){for(var Ie=pe.lines.length%25+25,Ue=Ie;Ue10);re.parent.maybeSpill()}},iterN:function(re,se,ce){for(var ue=0;uere.display.maxLineLength&&(re.display.maxLine=Ze,re.display.maxLineLength=wt,re.display.maxLineChanged=!0)}ue!=null&&re&&this.collapsed&&_o(re,ue,pe+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,re&&jh(re.doc)),re&&ai(re,"markerCleared",re,this,ue,pe),se&&dl(re),this.parent&&this.parent.clear()}},Jc.prototype.find=function(re,se){re==null&&this.type=="bookmark"&&(re=1);for(var ce,ue,pe=0;pe0||Ie==0&&be.clearWhenEmpty!==!1)return be;if(be.replacedWith&&(be.collapsed=!0,be.widgetNode=Cn("span",[be.replacedWith],"CodeMirror-widget"),ue.handleMouseEvents||be.widgetNode.setAttribute("cm-ignore-events","true"),ue.insertLeft&&(be.widgetNode.insertLeft=!0)),be.collapsed){if(af(re,se.line,se,ce,be)||se.line!=ce.line&&af(re,ce.line,se,ce,be))throw new Error("Inserting collapsed marker partially overlapping an existing one");Xu()}be.addToHistory&&Ng(re,{from:se,to:ce,origin:"markText"},re.sel,NaN);var Ue=se.line,Xe=re.cm,Ze;if(re.iter(Ue,ce.line+1,function(Rt){Xe&&be.collapsed&&!Xe.options.lineWrapping&&Qu(Rt)==Xe.display.maxLine&&(Ze=!0),be.collapsed&&Ue!=se.line&&Da(Rt,0),Uo(Rt,new Tl(be,Ue==se.line?se.ch:null,Ue==ce.line?ce.ch:null)),++Ue}),be.collapsed&&re.iter(se.line,ce.line+1,function(Rt){Ye(re,Rt)&&Da(Rt,0)}),be.clearOnEnter&&Xi(be,"beforeCursorEnter",function(){return be.clear()}),be.readOnly&&(Zf(),(re.history.done.length||re.history.undone.length)&&re.clearHistory()),be.collapsed&&(be.id=++XA,be.atomic=!0),Xe){if(Ze&&(Xe.curOp.updateMaxLine=!0),be.collapsed)_o(Xe,se.line,ce.line+1);else if(be.className||be.startStyle||be.endStyle||be.css||be.attributes||be.title)for(var wt=se.line;wt<=ce.line;wt++)Zu(Xe,wt,"text");be.atomic&&jh(Xe.doc),ai(Xe,"markerAdded",Xe,be)}return be}var Af=function(re,se){this.markers=re,this.primary=se;for(var ce=0;ce=0;Xe--)ih(this,ue[Xe]);Ue?co(this,Ue):this.cm&&$n(this.cm)}),undo:ya(function(){Yc(this,"undo")}),redo:ya(function(){Yc(this,"redo")}),undoSelection:ya(function(){Yc(this,"undo",!0)}),redoSelection:ya(function(){Yc(this,"redo",!0)}),setExtending:function(re){this.extend=re},getExtending:function(){return this.extend},historySize:function(){for(var re=this.history,se=0,ce=0,ue=0;ue=re.ch)&&se.push(pe.marker.parent||pe.marker)}return se},findMarks:function(re,se,ce){re=nr(this,re),se=nr(this,se);var ue=[],pe=re.line;return this.iter(re.line,se.line+1,function(be){var Ie=be.markedSpans;if(Ie)for(var Ue=0;Ue=Xe.to||Xe.from==null&&pe!=re.line||Xe.from!=null&&pe==se.line&&Xe.from>=se.ch)&&(!ce||ce(Xe.marker))&&ue.push(Xe.marker.parent||Xe.marker)}++pe}),ue},getAllMarks:function(){var re=[];return this.iter(function(se){var ce=se.markedSpans;if(ce)for(var ue=0;uere)return se=re,!0;re-=be,++ce}),nr(this,xr(ce,se))},indexFromPos:function(re){re=nr(this,re);var se=re.ch;if(re.linese&&(se=re.from),re.to!=null&&re.to-1){se.state.draggingText(re),setTimeout(function(){return se.display.input.focus()},20);return}try{var wt=re.dataTransfer.getData("Text");if(wt){var Rt;if(se.state.draggingText&&!se.state.draggingText.copy&&(Rt=se.listSelections()),El(se.doc,eh(ce,ce)),Rt)for(var vn=0;vn=0;Ue--)kd(re.doc,"",ue[Ue].from,ue[Ue].to,"+delete");$n(re)})}function JA(re,se,ce){var ue=Rn(re.text,se+ce,ce);return ue<0||ue>re.text.length?null:ue}function mu(re,se,ce){var ue=JA(re,se.ch,ce);return ue==null?null:new xr(se.line,ue,ce<0?"after":"before")}function KA(re,se,ce,ue,pe){if(re){se.doc.direction=="rtl"&&(pe=-pe);var be=qo(ce,se.doc.direction);if(be){var Ie=pe<0?Fn(be):be[0],Ue=pe<0==(Ie.level==1),Xe=Ue?"after":"before",Ze;if(Ie.level>0||se.doc.direction=="rtl"){var wt=Rs(se,ce);Ze=pe<0?ce.text.length-1:0;var Rt=Ta(se,wt,Ze).top;Ze=hs(function(vn){return Ta(se,wt,vn).top==Rt},pe<0==(Ie.level==1)?Ie.from:Ie.to-1,Ze),Xe=="before"&&(Ze=JA(ce,Ze,1))}else Ze=pe<0?Ie.to:Ie.from;return new xr(ue,Ze,Xe)}}return new xr(ue,pe<0?ce.text.length:0,pe<0?"before":"after")}function Io(re,se,ce,ue){var pe=qo(se,re.doc.direction);if(!pe)return mu(se,ce,ue);ce.ch>=se.text.length?(ce.ch=se.text.length,ce.sticky="before"):ce.ch<=0&&(ce.ch=0,ce.sticky="after");var be=Ra(pe,ce.ch,ce.sticky),Ie=pe[be];if(re.doc.direction=="ltr"&&Ie.level%2==0&&(ue>0?Ie.to>ce.ch:Ie.from=Ie.from&&vn>=wt.begin)){var nn=Rt?"before":"after";return new xr(ce.line,vn,nn)}}var sr=function(oi,fi,ii){for(var ki=function(wo,Gl){return Gl?new xr(ce.line,Ue(wo,1),"before"):new xr(ce.line,wo,"after")};oi>=0&&oi0==(Hs.level!=1),ba=As?ii.begin:Ue(ii.end,-1);if(Hs.from<=ba&&ba0?wt.end:Ue(wt.begin,-1);return On!=null&&!(ue>0&&On==se.text.length)&&(Sr=sr(ue>0?0:pe.length-1,ue,Ze(On)),Sr)?Sr:null}var gd={selectAll:Sm,singleSelection:function(re){return re.setSelection(re.getCursor("anchor"),re.getCursor("head"),$t)},killLine:function(re){return Ef(re,function(se){if(se.empty()){var ce=si(re.doc,se.head.line).text.length;return se.head.ch==ce&&se.head.line0)pe=new xr(pe.line,pe.ch+1),re.replaceRange(be.charAt(pe.ch-1)+be.charAt(pe.ch-2),xr(pe.line,pe.ch-2),pe,"+transpose");else if(pe.line>re.doc.first){var Ie=si(re.doc,pe.line-1).text;Ie&&(pe=new xr(pe.line,1),re.replaceRange(be.charAt(0)+re.doc.lineSeparator()+Ie.charAt(Ie.length-1),xr(pe.line-1,Ie.length-1),pe,"+transpose"))}}ce.push(new $a(pe,pe))}re.setSelections(ce)})},newlineAndIndent:function(re){return ra(re,function(){for(var se=re.listSelections(),ce=se.length-1;ce>=0;ce--)re.replaceRange(re.doc.lineSeparator(),se[ce].anchor,se[ce].head,"+input");se=re.listSelections();for(var ue=0;uere&&Ln(se,this.pos)==0&&ce==this.button};var yo,gu;function Rc(re,se){var ce=+new Date;return gu&&gu.compare(ce,re,se)?(yo=gu=null,"triple"):yo&&yo.compare(ce,re,se)?(gu=new Jh(ce,re,se),yo=null,"double"):(yo=new Jh(ce,re,se),gu=null,"single")}function Kh(re){var se=this,ce=se.display;if(!(ha(se,re)||ce.activeTouch&&ce.input.supportsTouch())){if(ce.input.ensurePolled(),ce.shift=re.shiftKey,Is(ce,re)){lt||(ce.scroller.draggable=!1,setTimeout(function(){return ce.scroller.draggable=!0},100));return}if(!vd(se,re)){var ue=Su(se,re),pe=ol(re),be=ue?Rc(ue,pe):"single";window.focus(),pe==1&&se.state.selectingText&&se.state.selectingText(re),!(ue&&Ud(se,pe,ue,be,re))&&(pe==1?ue?Vp(se,ue,be,re):lu(re)==ce.scroller&&no(re):pe==2?(ue&&Lg(se.doc,ue),setTimeout(function(){return ce.input.focus()},20)):pe==3&&(jn?se.display.input.onContextMenu(re):Rp(se)))}}}function Ud(re,se,ce,ue,pe){var be="Click";return ue=="double"?be="Double"+be:ue=="triple"&&(be="Triple"+be),be=(se==1?"Left":se==2?"Middle":"Right")+be,qu(re,Nu(be,pe),pe,function(Ie){if(typeof Ie=="string"&&(Ie=gd[Ie]),!Ie)return!1;var Ue=!1;try{re.isReadOnly()&&(re.state.suppressEdits=!0),Ue=Ie(re,ce)!=pi}finally{re.state.suppressEdits=!1}return Ue})}function jd(re,se,ce){var ue=re.getOption("configureMouse"),pe=ue?ue(re,se,ce):{};if(pe.unit==null){var be=Ft?ce.shiftKey&&ce.metaKey:ce.altKey;pe.unit=be?"rectangle":se=="single"?"char":se=="double"?"word":"line"}return(pe.extend==null||re.doc.extend)&&(pe.extend=re.doc.extend||ce.shiftKey),pe.addNew==null&&(pe.addNew=Ct?ce.metaKey:ce.ctrlKey),pe.moveOnDrag==null&&(pe.moveOnDrag=!(Ct?ce.altKey:ce.ctrlKey)),pe}function Vp(re,se,ce,ue){$e?setTimeout(kn(Op,re),0):re.curOp.focus=_t();var pe=jd(re,ce,ue),be=re.doc.sel,Ie;re.options.dragDrop&&Oi&&!re.isReadOnly()&&ce=="single"&&(Ie=be.contains(se))>-1&&(Ln((Ie=be.ranges[Ie]).from(),se)<0||se.xRel>0)&&(Ln(Ie.to(),se)>0||se.xRel<0)?My(re,ue,se,pe):_h(re,ue,se,pe)}function My(re,se,ce,ue){var pe=re.display,be=!1,Ie=ns(re,function(Ze){lt&&(pe.scroller.draggable=!1),re.state.draggingText=!1,Pa(pe.wrapper.ownerDocument,"mouseup",Ie),Pa(pe.wrapper.ownerDocument,"mousemove",Ue),Pa(pe.scroller,"dragstart",Xe),Pa(pe.scroller,"drop",Ie),be||(no(Ze),ue.addNew||Lg(re.doc,ce,null,null,ue.extend),lt&&!ct||$e&&at==9?setTimeout(function(){pe.wrapper.ownerDocument.body.focus({preventScroll:!0}),pe.input.focus()},20):pe.input.focus())}),Ue=function(Ze){be=be||Math.abs(se.clientX-Ze.clientX)+Math.abs(se.clientY-Ze.clientY)>=10},Xe=function(){return be=!0};lt&&(pe.scroller.draggable=!0),re.state.draggingText=Ie,Ie.copy=!ue.moveOnDrag,pe.scroller.dragDrop&&pe.scroller.dragDrop(),Xi(pe.wrapper.ownerDocument,"mouseup",Ie),Xi(pe.wrapper.ownerDocument,"mousemove",Ue),Xi(pe.scroller,"dragstart",Xe),Xi(pe.scroller,"drop",Ie),Rp(re),setTimeout(function(){return pe.input.focus()},20)}function qh(re,se,ce){if(ce=="char")return new $a(se,se);if(ce=="word")return re.findWordAt(se);if(ce=="line")return new $a(xr(se.line,0),nr(re.doc,xr(se.line+1,0)));var ue=ce(re,se);return new $a(ue.from,ue.to)}function _h(re,se,ce,ue){var pe=re.display,be=re.doc;no(se);var Ie,Ue,Xe=be.sel,Ze=Xe.ranges;if(ue.addNew&&!ue.extend?(Ue=be.sel.contains(ce),Ue>-1?Ie=Ze[Ue]:Ie=new $a(ce,ce)):(Ie=be.sel.primary(),Ue=be.sel.primIndex),ue.unit=="rectangle")ue.addNew||(Ie=new $a(ce,ce)),ce=Su(re,se,!0,!0),Ue=-1;else{var wt=qh(re,ce,ue.unit);ue.extend?Ie=VA(Ie,wt.anchor,wt.head,ue.extend):Ie=wt}ue.addNew?Ue==-1?(Ue=Ze.length,eo(be,hd(re,Ze.concat([Ie]),Ue),{scroll:!1,origin:"*mouse"})):Ze.length>1&&Ze[Ue].empty()&&ue.unit=="char"&&!ue.extend?(eo(be,hd(re,Ze.slice(0,Ue).concat(Ze.slice(Ue+1)),0),{scroll:!1,origin:"*mouse"}),Xe=be.sel):nh(be,Ue,Ie,Jt):(Ue=0,eo(be,new Ac([Ie],0),Jt),Xe=be.sel);var Rt=ce;function vn(ii){if(Ln(Rt,ii)!=0)if(Rt=ii,ue.unit=="rectangle"){for(var ki=[],Hs=re.options.tabSize,As=mt(si(be,ce.line).text,ce.ch,Hs),ba=mt(si(be,ii.line).text,ii.ch,Hs),wo=Math.min(As,ba),Gl=Math.max(As,ba),$o=Math.min(ce.line,ii.line),wc=Math.min(re.lastLine(),Math.max(ce.line,ii.line));$o<=wc;$o++){var $u=si(be,$o).text,Al=_n($u,wo,Hs);wo==Gl?ki.push(new $a(xr($o,Al),xr($o,Al))):$u.length>Al&&ki.push(new $a(xr($o,Al),xr($o,_n($u,Gl,Hs))))}ki.length||ki.push(new $a(ce,ce)),eo(be,hd(re,Xe.ranges.slice(0,Ue).concat(ki),Ue),{origin:"*mouse",scroll:!1}),re.scrollIntoView(ii)}else{var ec=Ie,nu=qh(re,ii,ue.unit),el=ec.anchor,tl;Ln(nu.anchor,el)>0?(tl=nu.head,el=Dd(ec.from(),nu.anchor)):(tl=nu.anchor,el=ps(ec.to(),nu.head));var Go=Xe.ranges.slice(0);Go[Ue]=Kc(re,new $a(nr(be,el),tl)),eo(be,hd(re,Go,Ue),Jt)}}var nn=pe.wrapper.getBoundingClientRect(),sr=0;function Sr(ii){var ki=++sr,Hs=Su(re,ii,!0,ue.unit=="rectangle");if(Hs)if(Ln(Hs,Rt)!=0){re.curOp.focus=_t(),vn(Hs);var As=gc(pe,be);(Hs.line>=As.to||Hs.linenn.bottom?20:0;ba&&setTimeout(ns(re,function(){sr==ki&&(pe.scroller.scrollTop+=ba,Sr(ii))}),50)}}function On(ii){re.state.selectingText=!1,sr=1/0,ii&&(no(ii),pe.input.focus()),Pa(pe.wrapper.ownerDocument,"mousemove",oi),Pa(pe.wrapper.ownerDocument,"mouseup",fi),be.history.lastSelOrigin=null}var oi=ns(re,function(ii){ii.buttons===0||!ol(ii)?On(ii):Sr(ii)}),fi=ns(re,On);re.state.selectingText=fi,Xi(pe.wrapper.ownerDocument,"mousemove",oi),Xi(pe.wrapper.ownerDocument,"mouseup",fi)}function Kc(re,se){var ce=se.anchor,ue=se.head,pe=si(re.doc,ce.line);if(Ln(ce,ue)==0&&ce.sticky==ue.sticky)return se;var be=qo(pe);if(!be)return se;var Ie=Ra(be,ce.ch,ce.sticky),Ue=be[Ie];if(Ue.from!=ce.ch&&Ue.to!=ce.ch)return se;var Xe=Ie+(Ue.from==ce.ch==(Ue.level!=1)?0:1);if(Xe==0||Xe==be.length)return se;var Ze;if(ue.line!=ce.line)Ze=(ue.line-ce.line)*(re.doc.direction=="ltr"?1:-1)>0;else{var wt=Ra(be,ue.ch,ue.sticky),Rt=wt-Ie||(ue.ch-ce.ch)*(Ue.level==1?-1:1);wt==Xe-1||wt==Xe?Ze=Rt<0:Ze=Rt>0}var vn=be[Xe+(Ze?-1:0)],nn=Ze==(vn.level==1),sr=nn?vn.from:vn.to,Sr=nn?"after":"before";return ce.ch==sr&&ce.sticky==Sr?se:new $a(new xr(ce.line,sr,Sr),ue)}function wf(re,se,ce,ue){var pe,be;if(se.touches)pe=se.touches[0].clientX,be=se.touches[0].clientY;else try{pe=se.clientX,be=se.clientY}catch(vn){return!1}if(pe>=Math.floor(re.display.gutters.getBoundingClientRect().right))return!1;ue&&no(se);var Ie=re.display,Ue=Ie.lineDiv.getBoundingClientRect();if(be>Ue.bottom||!ri(re,ce))return So(se);be-=Ue.top-Ie.viewOffset;for(var Xe=0;Xe=pe){var wt=io(re.doc,be),Rt=re.display.gutterSpecs[Xe];return Ki(re,ce,re,wt,Rt.className,se),So(se)}}}function vd(re,se){return wf(re,se,"gutterClick",!0)}function Gp(re,se){Is(re.display,se)||Rm(re,se)||ha(re,se,"contextmenu")||jn||re.display.input.onContextMenu(se)}function Rm(re,se){return ri(re,"gutterContextMenu")?wf(re,se,"gutterContextMenu",!1):!1}function zm(re){re.display.wrapper.className=re.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+re.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Xs(re)}var Vd={toString:function(){return"CodeMirror.Init"}},oh={},Cf={};function Xp(re){var se=re.optionHandlers;function ce(ue,pe,be,Ie){re.defaults[ue]=pe,be&&(se[ue]=Ie?function(Ue,Xe,Ze){Ze!=Vd&&be(Ue,Xe,Ze)}:be)}re.defineOption=ce,re.Init=Vd,ce("value","",function(ue,pe){return ue.setValue(pe)},!0),ce("mode",null,function(ue,pe){ue.doc.modeOption=pe,Pm(ue)},!0),ce("indentUnit",2,Pm,!0),ce("indentWithTabs",!1),ce("smartIndent",!0),ce("tabSize",4,function(ue){Dg(ue),Xs(ue),_o(ue)},!0),ce("lineSeparator",null,function(ue,pe){if(ue.doc.lineSep=pe,!!pe){var be=[],Ie=ue.doc.first;ue.doc.iter(function(Xe){for(var Ze=0;;){var wt=Xe.text.indexOf(pe,Ze);if(wt==-1)break;Ze=wt+pe.length,be.push(xr(Ie,wt))}Ie++});for(var Ue=be.length-1;Ue>=0;Ue--)kd(ue.doc,pe,be[Ue],xr(be[Ue].line,be[Ue].ch+pe.length))}}),ce("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(ue,pe,be){ue.state.specialChars=new RegExp(pe.source+(pe.test(" ")?"":"| "),"g"),be!=Vd&&ue.refresh()}),ce("specialCharPlaceholder",mr,function(ue){return ue.refresh()},!0),ce("electricChars",!0),ce("inputStyle",gt?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),ce("spellcheck",!1,function(ue,pe){return ue.getInputField().spellcheck=pe},!0),ce("autocorrect",!1,function(ue,pe){return ue.getInputField().autocorrect=pe},!0),ce("autocapitalize",!1,function(ue,pe){return ue.getInputField().autocapitalize=pe},!0),ce("rtlMoveVisually",!It),ce("wholeLineUpdateBefore",!0),ce("theme","default",function(ue){zm(ue),$f(ue)},!0),ce("keyMap","default",function(ue,pe,be){var Ie=fo(pe),Ue=be!=Vd&&fo(be);Ue&&Ue.detach&&Ue.detach(ue,Ie),Ie.attach&&Ie.attach(ue,Ue||null)}),ce("extraKeys",null),ce("configureMouse",null),ce("lineWrapping",!1,$h,!0),ce("gutters",[],function(ue,pe){ue.display.gutterSpecs=bv(pe,ue.options.lineNumbers),$f(ue)},!0),ce("fixedGutter",!0,function(ue,pe){ue.display.gutters.style.left=pe?Ic(ue.display)+"px":"0",ue.refresh()},!0),ce("coverGutterNextToScrollbar",!1,function(ue){return dd(ue)},!0),ce("scrollbarStyle","native",function(ue){Du(ue),dd(ue),ue.display.scrollbars.setScrollTop(ue.doc.scrollTop),ue.display.scrollbars.setScrollLeft(ue.doc.scrollLeft)},!0),ce("lineNumbers",!1,function(ue,pe){ue.display.gutterSpecs=bv(ue.options.gutters,pe),$f(ue)},!0),ce("firstLineNumber",1,$f,!0),ce("lineNumberFormatter",function(ue){return ue},$f,!0),ce("showCursorWhenSelecting",!1,Fd,!0),ce("resetSelectionOnContextMenu",!0),ce("lineWiseCopyCut",!0),ce("pasteLinesPerSelection",!0),ce("selectionsMayTouch",!1),ce("readOnly",!1,function(ue,pe){pe=="nocursor"&&(ld(ue),ue.display.input.blur()),ue.display.input.readOnlyChanged(pe)}),ce("screenReaderLabel",null,function(ue,pe){pe=pe===""?null:pe,ue.display.input.screenReaderLabelChanged(pe)}),ce("disableInput",!1,function(ue,pe){pe||ue.display.input.reset()},!0),ce("dragDrop",!0,Wp),ce("allowDropFileTypes",null),ce("cursorBlinkRate",530),ce("cursorScrollMargin",0),ce("cursorHeight",1,Fd,!0),ce("singleCursorHeightPerLine",!0,Fd,!0),ce("workTime",100),ce("workDelay",100),ce("flattenSpans",!0,Dg,!0),ce("addModeClass",!1,Dg,!0),ce("pollInterval",100),ce("undoDepth",200,function(ue,pe){return ue.doc.history.undoDepth=pe}),ce("historyEventDelay",1250),ce("viewportMargin",10,function(ue){return ue.refresh()},!0),ce("maxHighlightLength",1e4,Dg,!0),ce("moveInputWithCursor",!0,function(ue,pe){pe||ue.display.input.resetPosition()}),ce("tabindex",null,function(ue,pe){return ue.display.input.getField().tabIndex=pe||""}),ce("autofocus",null),ce("direction","ltr",function(ue,pe){return ue.doc.setDirection(pe)},!0),ce("phrases",null)}function Wp(re,se,ce){var ue=ce&&ce!=Vd;if(!se!=!ue){var pe=re.display.dragFunctions,be=se?Xi:Pa;be(re.display.scroller,"dragstart",pe.start),be(re.display.scroller,"dragenter",pe.enter),be(re.display.scroller,"dragover",pe.over),be(re.display.scroller,"dragleave",pe.leave),be(re.display.scroller,"drop",pe.drop)}}function $h(re){re.options.lineWrapping?(Zn(re.display.wrapper,"CodeMirror-wrap"),re.display.sizer.style.minWidth="",re.display.sizerWidth=null):(pn(re.display.wrapper,"CodeMirror-wrap"),Kt(re)),pc(re),_o(re),Xs(re),setTimeout(function(){return dd(re)},100)}function po(re,se){var ce=this;if(!(this instanceof po))return new po(re,se);this.options=se=se?Rr(se):{},Rr(oh,se,!1);var ue=se.value;typeof ue=="string"?ue=new jl(ue,se.mode,null,se.lineSeparator,se.direction):se.mode&&(ue.modeOption=se.mode),this.doc=ue;var pe=new po.inputStyles[se.inputStyle](this),be=this.display=new LA(re,ue,pe,se);be.wrapper.CodeMirror=this,zm(this),se.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Du(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new qe,keySeq:null,specialChars:null},se.autofocus&&!gt&&be.input.focus(),$e&&at<11&&setTimeout(function(){return ce.display.input.reset(!0)},20),ep(this),By(),zs(this),this.curOp.forceUpdate=!0,wv(this,ue),se.autofocus&&!gt||this.hasFocus()?setTimeout(function(){ce.hasFocus()&&!ce.state.focused&&zh(ce)},20):ld(this);for(var Ie in Cf)Cf.hasOwnProperty(Ie)&&Cf[Ie](this,se[Ie],Vd);NA(this),se.finishInit&&se.finishInit(this);for(var Ue=0;Ue20*20}Xi(se.scroller,"touchstart",function(Xe){if(!ha(re,Xe)&&!be(Xe)&&!vd(re,Xe)){se.input.ensurePolled(),clearTimeout(ce);var Ze=+new Date;se.activeTouch={start:Ze,moved:!1,prev:Ze-ue.end<=300?ue:null},Xe.touches.length==1&&(se.activeTouch.left=Xe.touches[0].pageX,se.activeTouch.top=Xe.touches[0].pageY)}}),Xi(se.scroller,"touchmove",function(){se.activeTouch&&(se.activeTouch.moved=!0)}),Xi(se.scroller,"touchend",function(Xe){var Ze=se.activeTouch;if(Ze&&!Is(se,Xe)&&Ze.left!=null&&!Ze.moved&&new Date-Ze.start<300){var wt=re.coordsChar(se.activeTouch,"page"),Rt;!Ze.prev||Ie(Ze,Ze.prev)?Rt=new $a(wt,wt):!Ze.prev.prev||Ie(Ze,Ze.prev.prev)?Rt=re.findWordAt(wt):Rt=new $a(xr(wt.line,0),nr(re.doc,xr(wt.line+1,0))),re.setSelection(Rt.anchor,Rt.head),re.focus(),no(Xe)}pe()}),Xi(se.scroller,"touchcancel",pe),Xi(se.scroller,"scroll",function(){se.scroller.clientHeight&&(cd(re,se.scroller.scrollTop),Mu(re,se.scroller.scrollLeft,!0),Ki(re,"scroll",re))}),Xi(se.scroller,"mousewheel",function(Xe){return Sg(re,Xe)}),Xi(se.scroller,"DOMMouseScroll",function(Xe){return Sg(re,Xe)}),Xi(se.wrapper,"scroll",function(){return se.wrapper.scrollTop=se.wrapper.scrollLeft=0}),se.dragFunctions={enter:function(Xe){ha(re,Xe)||uc(Xe)},over:function(Xe){ha(re,Xe)||(QA(re,Xe),uc(Xe))},start:function(Xe){return bc(re,Xe)},drop:ns(re,WA),leave:function(Xe){ha(re,Xe)||Nm(re)}};var Ue=se.input.getField();Xi(Ue,"keyup",function(Xe){return Ec.call(re,Xe)}),Xi(Ue,"keydown",ns(re,Om)),Xi(Ue,"keypress",ns(re,jp)),Xi(Ue,"focus",function(Xe){return zh(re,Xe)}),Xi(Ue,"blur",function(Xe){return ld(re,Xe)})}var lh=[];po.defineInitHook=function(re){return lh.push(re)};function Ad(re,se,ce,ue){var pe=re.doc,be;ce==null&&(ce="add"),ce=="smart"&&(pe.mode.indent?be=ul(re,se).state:ce="prev");var Ie=re.options.tabSize,Ue=si(pe,se),Xe=mt(Ue.text,null,Ie);Ue.stateAfter&&(Ue.stateAfter=null);var Ze=Ue.text.match(/^\s*/)[0],wt;if(!ue&&!/\S/.test(Ue.text))wt=0,ce="not";else if(ce=="smart"&&(wt=pe.mode.indent(be,Ue.text.slice(Ze.length),Ue.text),wt==pi||wt>150)){if(!ue)return;ce="prev"}ce=="prev"?se>pe.first?wt=mt(si(pe,se-1).text,null,Ie):wt=0:ce=="add"?wt=Xe+re.options.indentUnit:ce=="subtract"?wt=Xe-re.options.indentUnit:typeof ce=="number"&&(wt=Xe+ce),wt=Math.max(0,wt);var Rt="",vn=0;if(re.options.indentWithTabs)for(var nn=Math.floor(wt/Ie);nn;--nn)vn+=Ie,Rt+=" ";if(vnIe,Xe=Na(se),Ze=null;if(Ue&&ue.ranges.length>1)if(_u&&_u.text.join(` `)==se){if(ue.ranges.length%_u.text.length==0){Ze=[];for(var wt=0;wt<_u.text.length;wt++)Ze.push(be.splitLines(_u.text[wt]))}}else Xe.length==ue.ranges.length&&re.options.pasteLinesPerSelection&&(Ze=qr(Xe,function(oi){return[oi]}));for(var Rt=re.curOp.updateInput,vn=ue.ranges.length-1;vn>=0;vn--){var nn=ue.ranges[vn],sr=nn.from(),Sr=nn.to();nn.empty()&&(ce&&ce>0?sr=xr(sr.line,sr.ch-ce):re.state.overwrite&&!Ue?Sr=xr(Sr.line,Math.min(si(be,Sr.line).text.length,Sr.ch+Fn(Xe).length)):Ue&&_u&&_u.lineWise&&_u.text.join(` `)==Xe.join(` `)&&(sr=Sr=xr(sr.line,0)));var On={from:sr,to:Sr,text:Ze?Ze[vn%Ze.length]:Xe,origin:pe||(Ue?"paste":re.state.cutIncoming>Ie?"cut":"+input")};ih(re.doc,On),ai(re,"inputRead",re,On)}se&&!Ue&&np(re,se),$n(re),re.curOp.updateInput<2&&(re.curOp.updateInput=Rt),re.curOp.typing=!0,re.state.pasteIncoming=re.state.cutIncoming=-1}function tp(re,se){var ce=re.clipboardData&&re.clipboardData.getData("Text");if(ce)return re.preventDefault(),!se.isReadOnly()&&!se.options.disableInput&&ra(se,function(){return uh(se,ce,0,null,"paste")}),!0}function np(re,se){if(!(!re.options.electricChars||!re.options.smartIndent))for(var ce=re.doc.sel,ue=ce.ranges.length-1;ue>=0;ue--){var pe=ce.ranges[ue];if(!(pe.head.ch>100||ue&&ce.ranges[ue-1].head.line==pe.head.line)){var be=re.getModeAt(pe.head),Ie=!1;if(be.electricChars){for(var Ue=0;Ue-1){Ie=Ad(re,pe.head.line,"smart");break}}else be.electricInput&&be.electricInput.test(si(re.doc,pe.head.line).text.slice(0,pe.head.ch))&&(Ie=Ad(re,pe.head.line,"smart"));Ie&&ai(re,"electricInput",re,pe.head.line)}}}function rp(re){for(var se=[],ce=[],ue=0;uebe&&(Ad(this,Ue.head.line,ue,!0),be=Ue.head.line,Ie==this.doc.sel.primIndex&&$n(this));else{var Xe=Ue.from(),Ze=Ue.to(),wt=Math.max(be,Xe.line);be=Math.min(this.lastLine(),Ze.line-(Ze.ch?0:1))+1;for(var Rt=wt;Rt0&&nh(this.doc,Ie,new $a(Xe,vn[Ie].to()),$t)}}}),getTokenAt:function(ue,pe){return Wc(this,ue,pe)},getLineTokens:function(ue,pe){return Wc(this,xr(ue),pe,!0)},getTokenTypeAt:function(ue){ue=nr(this.doc,ue);var pe=_a(this,si(this.doc,ue.line)),be=0,Ie=(pe.length-1)/2,Ue=ue.ch,Xe;if(Ue==0)Xe=pe[2];else for(;;){var Ze=be+Ie>>1;if((Ze?pe[Ze*2-1]:0)>=Ue)Ie=Ze;else if(pe[Ze*2+1]Xe&&(ue=Xe,Ie=!0),Ue=si(this.doc,ue)}else Ue=ue;return Yo(this,Ue,{top:0,left:0},pe||"page",be||Ie).top+(Ie?this.doc.height-ht(Ue):0)},defaultTextHeight:function(){return Jo(this.display)},defaultCharWidth:function(){return hu(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(ue,pe,be,Ie,Ue){var Xe=this.display;ue=Qi(this,nr(this.doc,ue));var Ze=ue.bottom,wt=ue.left;if(pe.style.position="absolute",pe.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(pe),Xe.sizer.appendChild(pe),Ie=="over")Ze=ue.top;else if(Ie=="above"||Ie=="near"){var Rt=Math.max(Xe.wrapper.clientHeight,this.doc.height),vn=Math.max(Xe.sizer.clientWidth,Xe.lineSpace.clientWidth);(Ie=="above"||ue.bottom+pe.offsetHeight>Rt)&&ue.top>pe.offsetHeight?Ze=ue.top-pe.offsetHeight:ue.bottom+pe.offsetHeight<=Rt&&(Ze=ue.bottom),wt+pe.offsetWidth>vn&&(wt=vn-pe.offsetWidth)}pe.style.top=Ze+"px",pe.style.left=pe.style.right="",Ue=="right"?(wt=Xe.sizer.clientWidth-pe.offsetWidth,pe.style.right="0px"):(Ue=="left"?wt=0:Ue=="middle"&&(wt=(Xe.sizer.clientWidth-pe.offsetWidth)/2),pe.style.left=wt+"px"),be&&zp(this,{left:wt,top:Ze,right:wt+pe.offsetWidth,bottom:Ze+pe.offsetHeight})},triggerOnKeyDown:ks(Om),triggerOnKeyPress:ks(jp),triggerOnKeyUp:Ec,triggerOnMouseDown:ks(Kh),execCommand:function(ue){if(gd.hasOwnProperty(ue))return gd[ue].call(null,this)},triggerElectric:ks(function(ue){np(this,ue)}),findPosH:function(ue,pe,be,Ie){var Ue=1;pe<0&&(Ue=-1,pe=-pe);for(var Xe=nr(this.doc,ue),Ze=0;Ze0&&wt(be.charAt(Ie-1));)--Ie;for(;Ue.5||this.options.lineWrapping)&&pc(this),Ki(this,"refresh",this)}),swapDoc:ks(function(ue){var pe=this.doc;return pe.cm=null,this.state.selectingText&&this.state.selectingText(),wv(this,ue),Xs(this),this.display.input.reset(),ff(this,ue.scrollLeft,ue.scrollTop),this.curOp.forceScroll=!0,ai(this,"swapDoc",this,pe),pe}),phrase:function(ue){var pe=this.options.phrases;return pe&&Object.prototype.hasOwnProperty.call(pe,ue)?pe[ue]:ue},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},qa(re),re.registerHelper=function(ue,pe,be){ce.hasOwnProperty(ue)||(ce[ue]=re[ue]={_global:[]}),ce[ue][pe]=be},re.registerGlobalHelper=function(ue,pe,be,Ie){re.registerHelper(ue,pe,Ie),ce[ue]._global.push({pred:be,val:Ie})}}function Qp(re,se,ce,ue,pe){var be=se,Ie=ce,Ue=si(re,se.line),Xe=pe&&re.direction=="rtl"?-ce:ce;function Ze(){var fi=se.line+Xe;return fi=re.first+re.size?!1:(se=new xr(fi,se.ch,se.sticky),Ue=si(re,fi))}function wt(fi){var ii;if(ue=="codepoint"){var ki=Ue.text.charCodeAt(se.ch+(ue>0?0:-1));isNaN(ki)?ii=null:ii=new xr(se.line,Math.max(0,Math.min(Ue.text.length,se.ch+ce*(ki>=55296&&ki<56320?2:1))),-ce)}else pe?ii=Io(re.cm,Ue,se,ce):ii=mu(Ue,se,ce);if(ii==null)if(!fi&&Ze())se=KA(pe,re.cm,Ue,se.line,Xe);else return!1;else se=ii;return!0}if(ue=="char"||ue=="codepoint")wt();else if(ue=="column")wt(!0);else if(ue=="word"||ue=="group")for(var Rt=null,vn=ue=="group",nn=re.cm&&re.cm.getHelper(se,"wordChars"),sr=!0;!(ce<0&&!wt(!sr));sr=!1){var Sr=Ue.text.charAt(se.ch)||` `,On=Ke(Sr,nn)?"w":vn&&Sr==` `?"n":!vn||/\s/.test(Sr)?null:"p";if(vn&&!sr&&!On&&(On="s"),Rt&&Rt!=On){ce<0&&(ce=1,wt(),se.sticky="after");break}if(On&&(Rt=On),ce>0&&!wt(!sr))break}var oi=zd(re,se,be,Ie,!0);return go(be,oi)&&(oi.hitSide=!0),oi}function op(re,se,ce,ue){var pe=re.doc,be=se.left,Ie;if(ue=="page"){var Ue=Math.min(re.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),Xe=Math.max(Ue-.5*Jo(re.display),3);Ie=(ce>0?se.bottom:se.top)+ce*Xe}else ue=="line"&&(Ie=ce>0?se.bottom+3:se.top-3);for(var Ze;Ze=gi(re,be,Ie),!!Ze.outside;){if(ce<0?Ie<=0:Ie>=pe.height){Ze.hitSide=!0;break}Ie+=ce*5}return Ze}var Qa=function(re){this.cm=re,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new qe,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qa.prototype.init=function(re){var se=this,ce=this,ue=ce.cm,pe=ce.div=re.lineDiv;ip(pe,ue.options.spellcheck,ue.options.autocorrect,ue.options.autocapitalize);function be(Ue){for(var Xe=Ue.target;Xe;Xe=Xe.parentNode){if(Xe==pe)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(Xe.className))break}return!1}Xi(pe,"paste",function(Ue){!be(Ue)||ha(ue,Ue)||tp(Ue,ue)||at<=11&&setTimeout(ns(ue,function(){return se.updateFromDOM()}),20)}),Xi(pe,"compositionstart",function(Ue){se.composing={data:Ue.data,done:!1}}),Xi(pe,"compositionupdate",function(Ue){se.composing||(se.composing={data:Ue.data,done:!1})}),Xi(pe,"compositionend",function(Ue){se.composing&&(Ue.data!=se.composing.data&&se.readFromDOMSoon(),se.composing.done=!0)}),Xi(pe,"touchstart",function(){return ce.forceCompositionEnd()}),Xi(pe,"input",function(){se.composing||se.readFromDOMSoon()});function Ie(Ue){if(!(!be(Ue)||ha(ue,Ue))){if(ue.somethingSelected())yd({lineWise:!1,text:ue.getSelections()}),Ue.type=="cut"&&ue.replaceSelection("",null,"cut");else if(ue.options.lineWiseCopyCut){var Xe=rp(ue);yd({lineWise:!0,text:Xe.text}),Ue.type=="cut"&&ue.operation(function(){ue.setSelections(Xe.ranges,0,$t),ue.replaceSelection("",null,"cut")})}else return;if(Ue.clipboardData){Ue.clipboardData.clearData();var Ze=_u.text.join(` `);if(Ue.clipboardData.setData("Text",Ze),Ue.clipboardData.getData("Text")==Ze){Ue.preventDefault();return}}var wt=sp(),Rt=wt.firstChild;ue.display.lineSpace.insertBefore(wt,ue.display.lineSpace.firstChild),Rt.value=_u.text.join(` `);var vn=document.activeElement;gn(Rt),setTimeout(function(){ue.display.lineSpace.removeChild(wt),vn.focus(),vn==pe&&ce.showPrimarySelection()},50)}}Xi(pe,"copy",Ie),Xi(pe,"cut",Ie)},Qa.prototype.screenReaderLabelChanged=function(re){re?this.div.setAttribute("aria-label",re):this.div.removeAttribute("aria-label")},Qa.prototype.prepareSelection=function(){var re=Lp(this.cm,!1);return re.focus=document.activeElement==this.div,re},Qa.prototype.showSelection=function(re,se){!re||!this.cm.display.view.length||((re.focus||se)&&this.showPrimarySelection(),this.showMultipleSelections(re))},Qa.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Qa.prototype.showPrimarySelection=function(){var re=this.getSelection(),se=this.cm,ce=se.doc.sel.primary(),ue=ce.from(),pe=ce.to();if(se.display.viewTo==se.display.viewFrom||ue.line>=se.display.viewTo||pe.line=se.display.viewFrom&&Zp(se,ue)||{node:Ue[0].measure.map[2],offset:0},Ze=pe.linere.firstLine()&&(ue=xr(ue.line-1,si(re.doc,ue.line-1).length)),pe.ch==si(re.doc,pe.line).text.length&&pe.linese.viewTo-1)return!1;var be,Ie,Ue;ue.line==se.viewFrom||(be=$l(re,ue.line))==0?(Ie=Vs(se.view[0].line),Ue=se.view[0].node):(Ie=Vs(se.view[be].line),Ue=se.view[be-1].node.nextSibling);var Xe=$l(re,pe.line),Ze,wt;if(Xe==se.view.length-1?(Ze=se.viewTo-1,wt=se.lineDiv.lastChild):(Ze=Vs(se.view[Xe+1].line)-1,wt=se.view[Xe+1].node.previousSibling),!Ue)return!1;for(var Rt=re.doc.splitLines(Dy(re,Ue,wt,Ie,Ze)),vn=mo(re.doc,xr(Ie,0),xr(Ze,si(re.doc,Ze).text.length));Rt.length>1&&vn.length>1;)if(Fn(Rt)==Fn(vn))Rt.pop(),vn.pop(),Ze--;else if(Rt[0]==vn[0])Rt.shift(),vn.shift(),Ie++;else break;for(var nn=0,sr=0,Sr=Rt[0],On=vn[0],oi=Math.min(Sr.length,On.length);nnue.ch&&fi.charCodeAt(fi.length-sr-1)==ii.charCodeAt(ii.length-sr-1);)nn--,sr++;Rt[Rt.length-1]=fi.slice(0,fi.length-sr).replace(/^\u200b+/,""),Rt[0]=Rt[0].slice(nn).replace(/\u200b+$/,"");var Hs=xr(Ie,nn),As=xr(Ze,vn.length?Fn(vn).length-sr:0);if(Rt.length>1||Rt[0]||Ln(Hs,As))return kd(re.doc,Rt,Hs,As,"+input"),!0},Qa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qa.prototype.reset=function(){this.forceCompositionEnd()},Qa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qa.prototype.readFromDOMSoon=function(){var re=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(re.readDOMTimeout=null,re.composing)if(re.composing.done)re.composing=null;else return;re.updateFromDOM()},80))},Qa.prototype.updateFromDOM=function(){var re=this;(this.cm.isReadOnly()||!this.pollContent())&&ra(this.cm,function(){return _o(re.cm)})},Qa.prototype.setUneditable=function(re){re.contentEditable="false"},Qa.prototype.onKeyPress=function(re){re.charCode==0||this.composing||(re.preventDefault(),this.cm.isReadOnly()||ns(this.cm,uh)(this.cm,String.fromCharCode(re.charCode==null?re.keyCode:re.charCode),0))},Qa.prototype.readOnlyChanged=function(re){this.div.contentEditable=String(re!="nocursor")},Qa.prototype.onContextMenu=function(){},Qa.prototype.resetPosition=function(){},Qa.prototype.needsContentAttribute=!0;function Zp(re,se){var ce=xa(re,se.line);if(!ce||ce.hidden)return null;var ue=si(re.doc,se.line),pe=va(ce,ue,se.line),be=qo(ue,re.doc.direction),Ie="left";if(be){var Ue=Ra(be,se.ch);Ie=Ue%2?"right":"left"}var Xe=Ia(pe.map,se.ch,Ie);return Xe.offset=Xe.collapse=="right"?Xe.end:Xe.start,Xe}function lp(re){for(var se=re;se;se=se.parentNode)if(/CodeMirror-gutter-wrapper/.test(se.className))return!0;return!1}function xd(re,se){return se&&(re.bad=!0),re}function Dy(re,se,ce,ue,pe){var be="",Ie=!1,Ue=re.doc.lineSeparator(),Xe=!1;function Ze(nn){return function(sr){return sr.id==nn}}function wt(){Ie&&(be+=Ue,Xe&&(be+=Ue),Ie=Xe=!1)}function Rt(nn){nn&&(wt(),be+=nn)}function vn(nn){if(nn.nodeType==1){var sr=nn.getAttribute("cm-text");if(sr){Rt(sr);return}var Sr=nn.getAttribute("cm-marker"),On;if(Sr){var oi=re.findMarks(xr(ue,0),xr(pe+1,0),Ze(+Sr));oi.length&&(On=oi[0].find(0))&&Rt(mo(re.doc,On.from,On.to).join(Ue));return}if(nn.getAttribute("contenteditable")=="false")return;var fi=/^(pre|div|p|li|table|br)$/i.test(nn.nodeName);if(!/^br$/i.test(nn.nodeName)&&nn.textContent.length==0)return;fi&&wt();for(var ii=0;ii=9&&se.hasSelection&&(se.hasSelection=null),ce.poll()}),Xi(pe,"paste",function(Ie){ha(ue,Ie)||tp(Ie,ue)||(ue.state.pasteIncoming=+new Date,ce.fastPoll())});function be(Ie){if(!ha(ue,Ie)){if(ue.somethingSelected())yd({lineWise:!1,text:ue.getSelections()});else if(ue.options.lineWiseCopyCut){var Ue=rp(ue);yd({lineWise:!0,text:Ue.text}),Ie.type=="cut"?ue.setSelections(Ue.ranges,null,$t):(ce.prevInput="",pe.value=Ue.text.join(` `),gn(pe))}else return;Ie.type=="cut"&&(ue.state.cutIncoming=+new Date)}}Xi(pe,"cut",be),Xi(pe,"copy",be),Xi(re.scroller,"paste",function(Ie){if(!(Is(re,Ie)||ha(ue,Ie))){if(!pe.dispatchEvent){ue.state.pasteIncoming=+new Date,ce.focus();return}var Ue=new Event("paste");Ue.clipboardData=Ie.clipboardData,pe.dispatchEvent(Ue)}}),Xi(re.lineSpace,"selectstart",function(Ie){Is(re,Ie)||no(Ie)}),Xi(pe,"compositionstart",function(){var Ie=ue.getCursor("from");ce.composing&&ce.composing.range.clear(),ce.composing={start:Ie,range:ue.markText(Ie,ue.getCursor("to"),{className:"CodeMirror-composing"})}}),Xi(pe,"compositionend",function(){ce.composing&&(ce.poll(),ce.composing.range.clear(),ce.composing=null)})},Ko.prototype.createField=function(re){this.wrapper=sp(),this.textarea=this.wrapper.firstChild},Ko.prototype.screenReaderLabelChanged=function(re){re?this.textarea.setAttribute("aria-label",re):this.textarea.removeAttribute("aria-label")},Ko.prototype.prepareSelection=function(){var re=this.cm,se=re.display,ce=re.doc,ue=Lp(re);if(re.options.moveInputWithCursor){var pe=Qi(re,ce.sel.primary().head,"div"),be=se.wrapper.getBoundingClientRect(),Ie=se.lineDiv.getBoundingClientRect();ue.teTop=Math.max(0,Math.min(se.wrapper.clientHeight-10,pe.top+Ie.top-be.top)),ue.teLeft=Math.max(0,Math.min(se.wrapper.clientWidth-10,pe.left+Ie.left-be.left))}return ue},Ko.prototype.showSelection=function(re){var se=this.cm,ce=se.display;Gt(ce.cursorDiv,re.cursors),Gt(ce.selectionDiv,re.selection),re.teTop!=null&&(this.wrapper.style.top=re.teTop+"px",this.wrapper.style.left=re.teLeft+"px")},Ko.prototype.reset=function(re){if(!(this.contextMenuPending||this.composing)){var se=this.cm;if(se.somethingSelected()){this.prevInput="";var ce=se.getSelection();this.textarea.value=ce,se.state.focused&&gn(this.textarea),$e&&at>=9&&(this.hasSelection=ce)}else re||(this.prevInput=this.textarea.value="",$e&&at>=9&&(this.hasSelection=null))}},Ko.prototype.getField=function(){return this.textarea},Ko.prototype.supportsTouch=function(){return!1},Ko.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!gt||_t()!=this.textarea))try{this.textarea.focus()}catch(re){}},Ko.prototype.blur=function(){this.textarea.blur()},Ko.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ko.prototype.receivedFocus=function(){this.slowPoll()},Ko.prototype.slowPoll=function(){var re=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){re.poll(),re.cm.state.focused&&re.slowPoll()})},Ko.prototype.fastPoll=function(){var re=!1,se=this;se.pollingFast=!0;function ce(){var ue=se.poll();!ue&&!re?(re=!0,se.polling.set(60,ce)):(se.pollingFast=!1,se.slowPoll())}se.polling.set(20,ce)},Ko.prototype.poll=function(){var re=this,se=this.cm,ce=this.textarea,ue=this.prevInput;if(this.contextMenuPending||!se.state.focused||dc(ce)&&!ue&&!this.composing||se.isReadOnly()||se.options.disableInput||se.state.keySeq)return!1;var pe=ce.value;if(pe==ue&&!se.somethingSelected())return!1;if($e&&at>=9&&this.hasSelection===pe||Ct&&/[\uf700-\uf7ff]/.test(pe))return se.display.input.reset(),!1;if(se.doc.sel==se.display.selForContextMenu){var be=pe.charCodeAt(0);if(be==8203&&!ue&&(ue="\u200B"),be==8666)return this.reset(),this.cm.execCommand("undo")}for(var Ie=0,Ue=Math.min(ue.length,pe.length);Ie1e3||pe.indexOf(` `)>-1?ce.value=re.prevInput="":re.prevInput=pe,re.composing&&(re.composing.range.clear(),re.composing.range=se.markText(re.composing.start,se.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Ko.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ko.prototype.onKeyPress=function(){$e&&at>=9&&(this.hasSelection=null),this.fastPoll()},Ko.prototype.onContextMenu=function(re){var se=this,ce=se.cm,ue=ce.display,pe=se.textarea;se.contextMenuPending&&se.contextMenuPending();var be=Su(ce,re),Ie=ue.scroller.scrollTop;if(!be||He)return;var Ue=ce.options.resetSelectionOnContextMenu;Ue&&ce.doc.sel.contains(be)==-1&&ns(ce,eo)(ce.doc,eh(be),$t);var Xe=pe.style.cssText,Ze=se.wrapper.style.cssText,wt=se.wrapper.offsetParent.getBoundingClientRect();se.wrapper.style.cssText="position: static",pe.style.cssText=`position: absolute; width: 30px; height: 30px; top: `+(re.clientY-wt.top-5)+"px; left: "+(re.clientX-wt.left-5)+`px; z-index: 1000; background: `+($e?"rgba(255, 255, 255, .05)":"transparent")+`; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var Rt;lt&&(Rt=window.scrollY),ue.input.focus(),lt&&window.scrollTo(null,Rt),ue.input.reset(),ce.somethingSelected()||(pe.value=se.prevInput=" "),se.contextMenuPending=nn,ue.selForContextMenu=ce.doc.sel,clearTimeout(ue.detectingSelectAll);function vn(){if(pe.selectionStart!=null){var Sr=ce.somethingSelected(),On="\u200B"+(Sr?pe.value:"");pe.value="\u21DA",pe.value=On,se.prevInput=Sr?"":"\u200B",pe.selectionStart=1,pe.selectionEnd=On.length,ue.selForContextMenu=ce.doc.sel}}function nn(){if(se.contextMenuPending==nn&&(se.contextMenuPending=!1,se.wrapper.style.cssText=Ze,pe.style.cssText=Xe,$e&&at<9&&ue.scrollbars.setScrollTop(ue.scroller.scrollTop=Ie),pe.selectionStart!=null)){(!$e||$e&&at<9)&&vn();var Sr=0,On=function(){ue.selForContextMenu==ce.doc.sel&&pe.selectionStart==0&&pe.selectionEnd>0&&se.prevInput=="\u200B"?ns(ce,Sm)(ce):Sr++<10?ue.detectingSelectAll=setTimeout(On,500):(ue.selForContextMenu=null,ue.input.reset())};ue.detectingSelectAll=setTimeout(On,200)}}if($e&&at>=9&&vn(),jn){uc(re);var sr=function(){Pa(window,"mouseup",sr),setTimeout(nn,20)};Xi(window,"mouseup",sr)}else setTimeout(nn,50)},Ko.prototype.readOnlyChanged=function(re){re||this.reset(),this.textarea.disabled=re=="nocursor",this.textarea.readOnly=!!re},Ko.prototype.setUneditable=function(){},Ko.prototype.needsContentAttribute=!1;function km(re,se){if(se=se?Rr(se):{},se.value=re.value,!se.tabindex&&re.tabIndex&&(se.tabindex=re.tabIndex),!se.placeholder&&re.placeholder&&(se.placeholder=re.placeholder),se.autofocus==null){var ce=_t();se.autofocus=ce==re||re.getAttribute("autofocus")!=null&&ce==document.body}function ue(){re.value=Ue.getValue()}var pe;if(re.form&&(Xi(re.form,"submit",ue),!se.leaveSubmitMethodAlone)){var be=re.form;pe=be.submit;try{var Ie=be.submit=function(){ue(),be.submit=pe,be.submit(),be.submit=Ie}}catch(Xe){}}se.finishInit=function(Xe){Xe.save=ue,Xe.getTextArea=function(){return re},Xe.toTextArea=function(){Xe.toTextArea=isNaN,ue(),re.parentNode.removeChild(Xe.getWrapperElement()),re.style.display="",re.form&&(Pa(re.form,"submit",ue),!se.leaveSubmitMethodAlone&&typeof re.form.submit=="function"&&(re.form.submit=pe))}},re.style.display="none";var Ue=po(function(Xe){return re.parentNode.insertBefore(Xe,re.nextSibling)},se);return Ue}function Vg(re){re.off=Pa,re.on=Xi,re.wheelEventPixels=RA,re.Doc=jl,re.splitLines=Na,re.countColumn=mt,re.findColumn=_n,re.isWordChar=je,re.Pass=pi,re.signal=Ki,re.Line=qt,re.changeEnd=hf,re.scrollbarModel=kh,re.Pos=xr,re.cmpPos=Ln,re.modes=Ps,re.mimeModes=ur,re.resolveMode=Ss,re.getMode=ro,re.modeExtensions=Ns,re.extendMode=bn,re.copyState=Vn,re.startState=za,re.innerMode=rs,re.commands=gd,re.keyMap=gl,re.keyName=bf,re.isModifierKey=Hd,re.lookupKey=Fu,re.normalizeKeyMap=ah,re.StringStream=ca,re.SharedTextMarker=Af,re.TextMarker=Jc,re.LineWidget=Dm,re.e_preventDefault=no,re.e_stopPropagation=sd,re.e_stop=uc,re.addClass=Zn,re.contains=sn,re.rmClass=pn,re.keyNames=xf}Xp(po),ap(po);var ch="iter insert remove copy getEditor constructor".split(" ");for(var bd in jl.prototype)jl.prototype.hasOwnProperty(bd)&&er(ch,bd)<0&&(po.prototype[bd]=function(re){return function(){return re.apply(this.doc,arguments)}}(jl.prototype[bd]));return qa(jl),po.inputStyles={textarea:Ko,contenteditable:Qa},po.defineMode=function(re){!po.defaults.mode&&re!="null"&&(po.defaults.mode=re),Hr.apply(this,arguments)},po.defineMIME=mi,po.defineMode("null",function(){return{token:function(re){return re.skipToEnd()}}}),po.defineMIME("text/plain","null"),po.defineExtension=function(re,se){po.prototype[re]=se},po.defineDocExtension=function(re,se){jl.prototype[re]=se},po.fromTextArea=km,Vg(po),po.version="5.58.2",po})},25419:function(Tt,zn,Me){(function(fe){fe(Me(89780),Me(15525),Me(98101))})(function(fe){"use strict";fe.defineMode("markdown",function(st,rt){var nt=fe.getMode(st,"text/html"),$e=nt.name=="null";function at(mt){if(fe.findModeByName){var qe=fe.findModeByName(mt);qe&&(mt=qe.mime||qe.mimes[0])}var er=fe.getMode(st,mt);return er.name=="null"?null:er}rt.highlightFormatting===void 0&&(rt.highlightFormatting=!1),rt.maxBlockquoteDepth===void 0&&(rt.maxBlockquoteDepth=0),rt.taskLists===void 0&&(rt.taskLists=!1),rt.strikethrough===void 0&&(rt.strikethrough=!1),rt.emoji===void 0&&(rt.emoji=!1),rt.fencedCodeBlockHighlighting===void 0&&(rt.fencedCodeBlockHighlighting=!0),rt.fencedCodeBlockDefaultMode===void 0&&(rt.fencedCodeBlockDefaultMode="text/plain"),rt.xml===void 0&&(rt.xml=!0),rt.tokenTypeOverrides===void 0&&(rt.tokenTypeOverrides={});var lt={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var it in lt)lt.hasOwnProperty(it)&&rt.tokenTypeOverrides[it]&&(lt[it]=rt.tokenTypeOverrides[it]);var vt=/^([*\-_])(?:\s*\1){2,}\s*$/,He=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,ct=/^\[(x| )\](?=\s)/i,Mt=rt.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,Nt=/^ {0,3}(?:\={1,}|-{2,})\s*$/,St=/^[^#!\[\]*_\\<>` "'(~:]+/,xt=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,gt=/^\s*\[[^\]]+?\]:.*$/,Ct=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,Ft=" ";function It(mt,qe,er){return qe.f=qe.inline=er,er(mt,qe)}function Ot(mt,qe,er){return qe.f=qe.block=er,er(mt,qe)}function ln(mt){return!mt||!/\S/.test(mt.string)}function jn(mt){if(mt.linkTitle=!1,mt.linkHref=!1,mt.linkText=!1,mt.em=!1,mt.strong=!1,mt.strikethrough=!1,mt.quote=0,mt.indentedCode=!1,mt.f==pn){var qe=$e;if(!qe){var er=fe.innerMode(nt,mt.htmlState);qe=er.mode.name=="xml"&&er.state.tagStart===null&&!er.state.context&&er.state.tokenize.isInText}qe&&(mt.f=Cn,mt.block=Nn,mt.htmlState=null)}return mt.trailingSpace=0,mt.trailingSpaceNewLine=!1,mt.prevLine=mt.thisLine,mt.thisLine={stream:null},null}function Nn(mt,qe){var er=mt.column()===qe.indentation,yi=ln(qe.prevLine.stream),pi=qe.indentedCode,$t=qe.prevLine.hr,Jt=qe.list!==!1,hn=(qe.listStack[qe.listStack.length-1]||0)+3;qe.indentedCode=!1;var _n=qe.indentation;if(qe.indentationDiff===null&&(qe.indentationDiff=qe.indentation,Jt)){for(qe.list=null;_n=4&&(pi||qe.prevLine.fencedCodeEnd||qe.prevLine.header||yi))return mt.skipToEnd(),qe.indentedCode=!0,lt.code;if(mt.eatSpace())return null;if(er&&qe.indentation<=hn&&(Fn=mt.match(Mt))&&Fn[1].length<=6)return qe.quote=0,qe.header=Fn[1].length,qe.thisLine.header=!0,rt.highlightFormatting&&(qe.formatting="header"),qe.f=qe.inline,Gt(qe);if(qe.indentation<=hn&&mt.eat(">"))return qe.quote=er?1:qe.quote+1,rt.highlightFormatting&&(qe.formatting="quote"),mt.eatSpace(),Gt(qe);if(!Yt&&!qe.setext&&er&&qe.indentation<=hn&&(Fn=mt.match(He))){var qr=Fn[1]?"ol":"ul";return qe.indentation=_n+mt.current().length,qe.list=!0,qe.quote=0,qe.listStack.push(qe.indentation),qe.em=!1,qe.strong=!1,qe.code=!1,qe.strikethrough=!1,rt.taskLists&&mt.match(ct,!1)&&(qe.taskList=!0),qe.f=qe.inline,rt.highlightFormatting&&(qe.formatting=["list","list-"+qr]),Gt(qe)}else{if(er&&qe.indentation<=hn&&(Fn=mt.match(xt,!0)))return qe.quote=0,qe.fencedEndRE=new RegExp(Fn[1]+"+ *$"),qe.localMode=rt.fencedCodeBlockHighlighting&&at(Fn[2]||rt.fencedCodeBlockDefaultMode),qe.localMode&&(qe.localState=fe.startState(qe.localMode)),qe.f=qe.block=ir,rt.highlightFormatting&&(qe.formatting="code-block"),qe.code=-1,Gt(qe);if(qe.setext||(!xn||!Jt)&&!qe.quote&&qe.list===!1&&!qe.code&&!Yt&&!gt.test(mt.string)&&(Fn=mt.lookAhead(1))&&(Fn=Fn.match(Nt)))return qe.setext?(qe.header=qe.setext,qe.setext=0,mt.skipToEnd(),rt.highlightFormatting&&(qe.formatting="header")):(qe.header=Fn[0].charAt(0)=="="?1:2,qe.setext=qe.header),qe.thisLine.header=!0,qe.f=qe.inline,Gt(qe);if(Yt)return mt.skipToEnd(),qe.hr=!0,qe.thisLine.hr=!0,lt.hr;if(mt.peek()==="[")return It(mt,qe,Yn)}return It(mt,qe,qe.inline)}function pn(mt,qe){var er=nt.token(mt,qe.htmlState);if(!$e){var yi=fe.innerMode(nt,qe.htmlState);(yi.mode.name=="xml"&&yi.state.tagStart===null&&!yi.state.context&&yi.state.tokenize.isInText||qe.md_inside&&mt.current().indexOf(">")>-1)&&(qe.f=Cn,qe.block=Nn,qe.htmlState=null)}return er}function ir(mt,qe){var er=qe.listStack[qe.listStack.length-1]||0,yi=qe.indentation=mt.quote?qe.push(lt.formatting+"-"+mt.formatting[er]+"-"+mt.quote):qe.push("error"))}if(mt.taskOpen)return qe.push("meta"),qe.length?qe.join(" "):null;if(mt.taskClosed)return qe.push("property"),qe.length?qe.join(" "):null;if(mt.linkHref?qe.push(lt.linkHref,"url"):(mt.strong&&qe.push(lt.strong),mt.em&&qe.push(lt.em),mt.strikethrough&&qe.push(lt.strikethrough),mt.emoji&&qe.push(lt.emoji),mt.linkText&&qe.push(lt.linkText),mt.code&&qe.push(lt.code),mt.image&&qe.push(lt.image),mt.imageAltText&&qe.push(lt.imageAltText,"link"),mt.imageMarker&&qe.push(lt.imageMarker)),mt.header&&qe.push(lt.header,lt.header+"-"+mt.header),mt.quote&&(qe.push(lt.quote),!rt.maxBlockquoteDepth||rt.maxBlockquoteDepth>=mt.quote?qe.push(lt.quote+"-"+mt.quote):qe.push(lt.quote+"-"+rt.maxBlockquoteDepth)),mt.list!==!1){var yi=(mt.listStack.length-1)%3;yi?yi===1?qe.push(lt.list2):qe.push(lt.list3):qe.push(lt.list1)}return mt.trailingSpaceNewLine?qe.push("trailing-space-new-line"):mt.trailingSpace&&qe.push("trailing-space-"+(mt.trailingSpace%2?"a":"b")),qe.length?qe.join(" "):null}function Zt(mt,qe){if(mt.match(St,!0))return Gt(qe)}function Cn(mt,qe){var er=qe.text(mt,qe);if(typeof er!="undefined")return er;if(qe.list)return qe.list=null,Gt(qe);if(qe.taskList){var yi=mt.match(ct,!0)[1]===" ";return yi?qe.taskOpen=!0:qe.taskClosed=!0,rt.highlightFormatting&&(qe.formatting="task"),qe.taskList=!1,Gt(qe)}if(qe.taskOpen=!1,qe.taskClosed=!1,qe.header&&mt.match(/^#+$/,!0))return rt.highlightFormatting&&(qe.formatting="header"),Gt(qe);var pi=mt.next();if(qe.linkTitle){qe.linkTitle=!1;var $t=pi;pi==="("&&($t=")"),$t=($t+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1");var Jt="^\\s*(?:[^"+$t+"\\\\]+|\\\\\\\\|\\\\.)"+$t;if(mt.match(new RegExp(Jt),!0))return lt.linkHref}if(pi==="`"){var hn=qe.formatting;rt.highlightFormatting&&(qe.formatting="code"),mt.eatWhile("`");var _n=mt.current().length;if(qe.code==0&&(!qe.quote||_n==1))return qe.code=_n,Gt(qe);if(_n==qe.code){var xn=Gt(qe);return qe.code=0,xn}else return qe.formatting=hn,Gt(qe)}else if(qe.code)return Gt(qe);if(pi==="\\"&&(mt.next(),rt.highlightFormatting)){var Yt=Gt(qe),Fn=lt.formatting+"-escape";return Yt?Yt+" "+Fn:Fn}if(pi==="!"&&mt.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return qe.imageMarker=!0,qe.image=!0,rt.highlightFormatting&&(qe.formatting="image"),Gt(qe);if(pi==="["&&qe.imageMarker&&mt.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return qe.imageMarker=!1,qe.imageAltText=!0,rt.highlightFormatting&&(qe.formatting="image"),Gt(qe);if(pi==="]"&&qe.imageAltText){rt.highlightFormatting&&(qe.formatting="image");var Yt=Gt(qe);return qe.imageAltText=!1,qe.image=!1,qe.inline=qe.f=sn,Yt}if(pi==="["&&!qe.image)return qe.linkText&&mt.match(/^.*?\]/)||(qe.linkText=!0,rt.highlightFormatting&&(qe.formatting="link")),Gt(qe);if(pi==="]"&&qe.linkText){rt.highlightFormatting&&(qe.formatting="link");var Yt=Gt(qe);return qe.linkText=!1,qe.inline=qe.f=mt.match(/\(.*?\)| ?\[.*?\]/,!1)?sn:Cn,Yt}if(pi==="<"&&mt.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){qe.f=qe.inline=Qt,rt.highlightFormatting&&(qe.formatting="link");var Yt=Gt(qe);return Yt?Yt+=" ":Yt="",Yt+lt.linkInline}if(pi==="<"&&mt.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){qe.f=qe.inline=Qt,rt.highlightFormatting&&(qe.formatting="link");var Yt=Gt(qe);return Yt?Yt+=" ":Yt="",Yt+lt.linkEmail}if(rt.xml&&pi==="<"&&mt.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var qr=mt.string.indexOf(">",mt.pos);if(qr!=-1){var ts=mt.string.substring(mt.start,qr);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(ts)&&(qe.md_inside=!0)}return mt.backUp(1),qe.htmlState=fe.startState(nt),Ot(mt,qe,pn)}if(rt.xml&&pi==="<"&&mt.match(/^\/\w*?>/))return qe.md_inside=!1,"tag";if(pi==="*"||pi==="_"){for(var We=1,Pe=mt.pos==1?" ":mt.string.charAt(mt.pos-2);We<3&&mt.eat(pi);)We++;var we=mt.peek()||" ",je=!/\s/.test(we)&&(!Ct.test(we)||/\s/.test(Pe)||Ct.test(Pe)),Ke=!/\s/.test(Pe)&&(!Ct.test(Pe)||/\s/.test(we)||Ct.test(we)),Te=null,fn=null;if(We%2&&(!qe.em&&je&&(pi==="*"||!Ke||Ct.test(Pe))?Te=!0:qe.em==pi&&Ke&&(pi==="*"||!je||Ct.test(we))&&(Te=!1)),We>1&&(!qe.strong&&je&&(pi==="*"||!Ke||Ct.test(Pe))?fn=!0:qe.strong==pi&&Ke&&(pi==="*"||!je||Ct.test(we))&&(fn=!1)),fn!=null||Te!=null){rt.highlightFormatting&&(qe.formatting=Te==null?"strong":fn==null?"em":"strong em"),Te===!0&&(qe.em=pi),fn===!0&&(qe.strong=pi);var xn=Gt(qe);return Te===!1&&(qe.em=!1),fn===!1&&(qe.strong=!1),xn}}else if(pi===" "&&(mt.eat("*")||mt.eat("_"))){if(mt.peek()===" ")return Gt(qe);mt.backUp(1)}if(rt.strikethrough){if(pi==="~"&&mt.eatWhile(pi)){if(qe.strikethrough){rt.highlightFormatting&&(qe.formatting="strikethrough");var xn=Gt(qe);return qe.strikethrough=!1,xn}else if(mt.match(/^[^\s]/,!1))return qe.strikethrough=!0,rt.highlightFormatting&&(qe.formatting="strikethrough"),Gt(qe)}else if(pi===" "&&mt.match(/^~~/,!0)){if(mt.peek()===" ")return Gt(qe);mt.backUp(2)}}if(rt.emoji&&pi===":"&&mt.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){qe.emoji=!0,rt.highlightFormatting&&(qe.formatting="emoji");var Wn=Gt(qe);return qe.emoji=!1,Wn}return pi===" "&&(mt.match(/^ +$/,!1)?qe.trailingSpace++:qe.trailingSpace&&(qe.trailingSpaceNewLine=!0)),Gt(qe)}function Qt(mt,qe){var er=mt.next();if(er===">"){qe.f=qe.inline=Cn,rt.highlightFormatting&&(qe.formatting="link");var yi=Gt(qe);return yi?yi+=" ":yi="",yi+lt.linkInline}return mt.match(/^[^>]+/,!0),lt.linkInline}function sn(mt,qe){if(mt.eatSpace())return null;var er=mt.next();return er==="("||er==="["?(qe.f=qe.inline=Zn(er==="("?")":"]"),rt.highlightFormatting&&(qe.formatting="link-string"),qe.linkHref=!0,Gt(qe)):"error"}var _t={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function Zn(mt){return function(qe,er){var yi=qe.next();if(yi===mt){er.f=er.inline=Cn,rt.highlightFormatting&&(er.formatting="link-string");var pi=Gt(er);return er.linkHref=!1,pi}return qe.match(_t[mt]),er.linkHref=!0,Gt(er)}}function Yn(mt,qe){return mt.match(/^([^\]\\]|\\.)*\]:/,!1)?(qe.f=gn,mt.next(),rt.highlightFormatting&&(qe.formatting="link"),qe.linkText=!0,Gt(qe)):It(mt,qe,Cn)}function gn(mt,qe){if(mt.match(/^\]:/,!0)){qe.f=qe.inline=kn,rt.highlightFormatting&&(qe.formatting="link");var er=Gt(qe);return qe.linkText=!1,er}return mt.match(/^([^\]\\]|\\.)+/,!0),lt.linkText}function kn(mt,qe){return mt.eatSpace()?null:(mt.match(/^[^\s]+/,!0),mt.peek()===void 0?qe.linkTitle=!0:mt.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),qe.f=qe.inline=Cn,lt.linkHref+" url")}var Rr={startState:function(){return{f:Nn,prevLine:{stream:null},thisLine:{stream:null},block:Nn,htmlState:null,indentation:0,inline:Cn,text:Zt,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(mt){return{f:mt.f,prevLine:mt.prevLine,thisLine:mt.thisLine,block:mt.block,htmlState:mt.htmlState&&fe.copyState(nt,mt.htmlState),indentation:mt.indentation,localMode:mt.localMode,localState:mt.localMode?fe.copyState(mt.localMode,mt.localState):null,inline:mt.inline,text:mt.text,formatting:!1,linkText:mt.linkText,linkTitle:mt.linkTitle,linkHref:mt.linkHref,code:mt.code,em:mt.em,strong:mt.strong,strikethrough:mt.strikethrough,emoji:mt.emoji,header:mt.header,setext:mt.setext,hr:mt.hr,taskList:mt.taskList,list:mt.list,listStack:mt.listStack.slice(0),quote:mt.quote,indentedCode:mt.indentedCode,trailingSpace:mt.trailingSpace,trailingSpaceNewLine:mt.trailingSpaceNewLine,md_inside:mt.md_inside,fencedEndRE:mt.fencedEndRE}},token:function(mt,qe){if(qe.formatting=!1,mt!=qe.thisLine.stream){if(qe.header=0,qe.hr=!1,mt.match(/^\s*$/,!0))return jn(qe),null;if(qe.prevLine=qe.thisLine,qe.thisLine={stream:mt},qe.taskList=!1,qe.trailingSpace=0,qe.trailingSpaceNewLine=!1,!qe.localState&&(qe.f=qe.block,qe.f!=pn)){var er=mt.match(/^\s*/,!0)[0].replace(/\t/g,Ft).length;if(qe.indentation=er,qe.indentationDiff=null,er>0)return null}}return qe.f(mt,qe)},innerMode:function(mt){return mt.block==pn?{state:mt.htmlState,mode:nt}:mt.localState?{state:mt.localState,mode:mt.localMode}:{state:mt,mode:Rr}},indent:function(mt,qe,er){return mt.block==pn&&nt.indent?nt.indent(mt.htmlState,qe,er):mt.localState&&mt.localMode.indent?mt.localMode.indent(mt.localState,qe,er):fe.Pass},blankLine:jn,getType:Gt,blockCommentStart:"",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return Rr},"xml"),fe.defineMIME("text/markdown","markdown"),fe.defineMIME("text/x-markdown","markdown")})},98101:function(Tt,zn,Me){(function(fe){fe(Me(89780))})(function(fe){"use strict";fe.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var st=0;st-1&&nt.substring(lt+1,nt.length);if(it)return fe.findModeByExtension(it)},fe.findModeByName=function(nt){nt=nt.toLowerCase();for(var $e=0;$e0?St.cmdState[St.cmdState.length-1]:null}function at(St){var xt=St.cmdState.pop();xt&&xt.closeBracket()}function lt(St){for(var xt=St.cmdState,gt=xt.length-1;gt>=0;gt--){var Ct=xt[gt];if(Ct.name!="DEFAULT")return Ct}return{styleIdentifier:function(){return null}}}function it(St,xt,gt){return function(){this.name=St,this.bracketNo=0,this.style=xt,this.styles=gt,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var vt={};vt.importmodule=it("importmodule","tag",["string","builtin"]),vt.documentclass=it("documentclass","tag",["","atom"]),vt.usepackage=it("usepackage","tag",["atom"]),vt.begin=it("begin","tag",["atom"]),vt.end=it("end","tag",["atom"]),vt.label=it("label","tag",["atom"]),vt.ref=it("ref","tag",["atom"]),vt.eqref=it("eqref","tag",["atom"]),vt.cite=it("cite","tag",["atom"]),vt.bibitem=it("bibitem","tag",["atom"]),vt.Bibitem=it("Bibitem","tag",["atom"]),vt.RBibitem=it("RBibitem","tag",["atom"]),vt.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function He(St,xt){St.f=xt}function ct(St,xt){var gt;if(St.match(/^\\[a-zA-Z@]+/)){var Ct=St.current().slice(1);return gt=vt.hasOwnProperty(Ct)?vt[Ct]:vt.DEFAULT,gt=new gt,nt(xt,gt),He(xt,Nt),gt.style}if(St.match(/^\\[$&%#{}_]/)||St.match(/^\\[,;!\/\\]/))return"tag";if(St.match("\\["))return He(xt,function(It,Ot){return Mt(It,Ot,"\\]")}),"keyword";if(St.match("\\("))return He(xt,function(It,Ot){return Mt(It,Ot,"\\)")}),"keyword";if(St.match("$$"))return He(xt,function(It,Ot){return Mt(It,Ot,"$$")}),"keyword";if(St.match("$"))return He(xt,function(It,Ot){return Mt(It,Ot,"$")}),"keyword";var Ft=St.next();if(Ft=="%")return St.skipToEnd(),"comment";if(Ft=="}"||Ft=="]"){if(gt=$e(xt),gt)gt.closeBracket(Ft),He(xt,Nt);else return"error";return"bracket"}else return Ft=="{"||Ft=="["?(gt=vt.DEFAULT,gt=new gt,nt(xt,gt),"bracket"):/\d/.test(Ft)?(St.eatWhile(/[\w.%]/),"atom"):(St.eatWhile(/[\w\-_]/),gt=lt(xt),gt.name=="begin"&&(gt.argument=St.current()),gt.styleIdentifier())}function Mt(St,xt,gt){if(St.eatSpace())return null;if(gt&&St.match(gt))return He(xt,ct),"keyword";if(St.match(/^\\[a-zA-Z@]+/))return"tag";if(St.match(/^[a-zA-Z]+/))return"variable-2";if(St.match(/^\\[$&%#{}_]/)||St.match(/^\\[,;!\/]/)||St.match(/^[\^_&]/))return"tag";if(St.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(St.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var Ct=St.next();return Ct=="{"||Ct=="}"||Ct=="["||Ct=="]"||Ct=="("||Ct==")"?"bracket":Ct=="%"?(St.skipToEnd(),"comment"):"error"}function Nt(St,xt){var gt=St.peek(),Ct;return gt=="{"||gt=="["?(Ct=$e(xt),Ct.openBracket(gt),St.eat(gt),He(xt,ct),"bracket"):/[ \t\r]/.test(gt)?(St.eat(gt),null):(He(xt,ct),at(xt),ct(St,xt))}return{startState:function(){var St=rt.inMathMode?function(xt,gt){return Mt(xt,gt)}:ct;return{cmdState:[],f:St}},copyState:function(St){return{cmdState:St.cmdState.slice(),f:St.f}},token:function(St,xt){return xt.f(St,xt)},blankLine:function(St){St.f=ct,St.cmdState.length=0},lineComment:"%"}}),fe.defineMIME("text/x-stex","stex"),fe.defineMIME("text/x-latex","stex")})},15525:function(Tt,zn,Me){(function(fe){fe(Me(89780))})(function(fe){"use strict";var st={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},rt={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};fe.defineMode("xml",function(nt,$e){var at=nt.indentUnit,lt={},it=$e.htmlMode?st:rt;for(var vt in it)lt[vt]=it[vt];for(var vt in $e)lt[vt]=$e[vt];var He,ct;function Mt(Qt,sn){function _t(gn){return sn.tokenize=gn,gn(Qt,sn)}var Zn=Qt.next();if(Zn=="<")return Qt.eat("!")?Qt.eat("[")?Qt.match("CDATA[")?_t(xt("atom","]]>")):null:Qt.match("--")?_t(xt("comment","-->")):Qt.match("DOCTYPE",!0,!0)?(Qt.eatWhile(/[\w\._\-]/),_t(gt(1))):null:Qt.eat("?")?(Qt.eatWhile(/[\w\._\-]/),sn.tokenize=xt("meta","?>"),"meta"):(He=Qt.eat("/")?"closeTag":"openTag",sn.tokenize=Nt,"tag bracket");if(Zn=="&"){var Yn;return Qt.eat("#")?Qt.eat("x")?Yn=Qt.eatWhile(/[a-fA-F\d]/)&&Qt.eat(";"):Yn=Qt.eatWhile(/[\d]/)&&Qt.eat(";"):Yn=Qt.eatWhile(/[\w\.\-:]/)&&Qt.eat(";"),Yn?"atom":"error"}else return Qt.eatWhile(/[^&<]/),null}Mt.isInText=!0;function Nt(Qt,sn){var _t=Qt.next();if(_t==">"||_t=="/"&&Qt.eat(">"))return sn.tokenize=Mt,He=_t==">"?"endTag":"selfcloseTag","tag bracket";if(_t=="=")return He="equals",null;if(_t=="<"){sn.tokenize=Mt,sn.state=Ot,sn.tagName=sn.tagStart=null;var Zn=sn.tokenize(Qt,sn);return Zn?Zn+" tag error":"tag error"}else return/[\'\"]/.test(_t)?(sn.tokenize=St(_t),sn.stringStartCol=Qt.column(),sn.tokenize(Qt,sn)):(Qt.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function St(Qt){var sn=function(_t,Zn){for(;!_t.eol();)if(_t.next()==Qt){Zn.tokenize=Nt;break}return"string"};return sn.isInAttribute=!0,sn}function xt(Qt,sn){return function(_t,Zn){for(;!_t.eol();){if(_t.match(sn)){Zn.tokenize=Mt;break}_t.next()}return Qt}}function gt(Qt){return function(sn,_t){for(var Zn;(Zn=sn.next())!=null;){if(Zn=="<")return _t.tokenize=gt(Qt+1),_t.tokenize(sn,_t);if(Zn==">")if(Qt==1){_t.tokenize=Mt;break}else return _t.tokenize=gt(Qt-1),_t.tokenize(sn,_t)}return"meta"}}function Ct(Qt,sn,_t){this.prev=Qt.context,this.tagName=sn,this.indent=Qt.indented,this.startOfLine=_t,(lt.doNotIndent.hasOwnProperty(sn)||Qt.context&&Qt.context.noIndent)&&(this.noIndent=!0)}function Ft(Qt){Qt.context&&(Qt.context=Qt.context.prev)}function It(Qt,sn){for(var _t;;){if(!Qt.context||(_t=Qt.context.tagName,!lt.contextGrabbers.hasOwnProperty(_t)||!lt.contextGrabbers[_t].hasOwnProperty(sn)))return;Ft(Qt)}}function Ot(Qt,sn,_t){return Qt=="openTag"?(_t.tagStart=sn.column(),ln):Qt=="closeTag"?jn:Ot}function ln(Qt,sn,_t){return Qt=="word"?(_t.tagName=sn.current(),ct="tag",ir):lt.allowMissingTagName&&Qt=="endTag"?(ct="tag bracket",ir(Qt,sn,_t)):(ct="error",ln)}function jn(Qt,sn,_t){if(Qt=="word"){var Zn=sn.current();return _t.context&&_t.context.tagName!=Zn&<.implicitlyClosed.hasOwnProperty(_t.context.tagName)&&Ft(_t),_t.context&&_t.context.tagName==Zn||lt.matchClosing===!1?(ct="tag",Nn):(ct="tag error",pn)}else return lt.allowMissingTagName&&Qt=="endTag"?(ct="tag bracket",Nn(Qt,sn,_t)):(ct="error",pn)}function Nn(Qt,sn,_t){return Qt!="endTag"?(ct="error",Nn):(Ft(_t),Ot)}function pn(Qt,sn,_t){return ct="error",Nn(Qt,sn,_t)}function ir(Qt,sn,_t){if(Qt=="word")return ct="attribute",Gt;if(Qt=="endTag"||Qt=="selfcloseTag"){var Zn=_t.tagName,Yn=_t.tagStart;return _t.tagName=_t.tagStart=null,Qt=="selfcloseTag"||lt.autoSelfClosers.hasOwnProperty(Zn)?It(_t,Zn):(It(_t,Zn),_t.context=new Ct(_t,Zn,Yn==_t.indented)),Ot}return ct="error",ir}function Gt(Qt,sn,_t){return Qt=="equals"?Zt:(lt.allowMissing||(ct="error"),ir(Qt,sn,_t))}function Zt(Qt,sn,_t){return Qt=="string"?Cn:Qt=="word"&<.allowUnquoted?(ct="string",ir):(ct="error",ir(Qt,sn,_t))}function Cn(Qt,sn,_t){return Qt=="string"?Cn:ir(Qt,sn,_t)}return{startState:function(Qt){var sn={tokenize:Mt,state:Ot,indented:Qt||0,tagName:null,tagStart:null,context:null};return Qt!=null&&(sn.baseIndent=Qt),sn},token:function(Qt,sn){if(!sn.tagName&&Qt.sol()&&(sn.indented=Qt.indentation()),Qt.eatSpace())return null;He=null;var _t=sn.tokenize(Qt,sn);return(_t||He)&&_t!="comment"&&(ct=null,sn.state=sn.state(He||_t,Qt,sn),ct&&(_t=ct=="error"?_t+" error":ct)),_t},indent:function(Qt,sn,_t){var Zn=Qt.context;if(Qt.tokenize.isInAttribute)return Qt.tagStart==Qt.indented?Qt.stringStartCol+1:Qt.indented+at;if(Zn&&Zn.noIndent)return fe.Pass;if(Qt.tokenize!=Nt&&Qt.tokenize!=Mt)return _t?_t.match(/^(\s*)/)[0].length:0;if(Qt.tagName)return lt.multilineTagIndentPastTag!==!1?Qt.tagStart+Qt.tagName.length+2:Qt.tagStart+at*(lt.multilineTagIndentFactor||1);if(lt.alignCDATA&&/$/,blockCommentStart:"",configuration:lt.htmlMode?"html":"xml",helperType:lt.htmlMode?"html":"xml",skipAttribute:function(Qt){Qt.state==Zt&&(Qt.state=ir)},xmlCurrentTag:function(Qt){return Qt.tagName?{name:Qt.tagName,close:Qt.type=="closeTag"}:null},xmlCurrentContext:function(Qt){for(var sn=[],_t=Qt.context;_t;_t=_t.prev)_t.tagName&&sn.push(_t.tagName);return sn.reverse()}}}),fe.defineMIME("text/xml","xml"),fe.defineMIME("application/xml","xml"),fe.mimeModes.hasOwnProperty("text/html")||fe.defineMIME("text/html",{name:"xml",htmlMode:!0})})},2859:function(Tt,zn,Me){"use strict";Me.d(zn,{hP:function(){return ts}});var fe=function(We,Pe){return(fe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(we,je){we.__proto__=je}||function(we,je){for(var Ke in je)Object.prototype.hasOwnProperty.call(je,Ke)&&(we[Ke]=je[Ke])})(We,Pe)};function st(We,Pe){function we(){this.constructor=We}fe(We,Pe),We.prototype=Pe===null?Object.create(Pe):(we.prototype=Pe.prototype,new we)}function rt(We,Pe,we,je){return new(we||(we=Promise))(function(Ke,Te){function fn(hs){try{Rn(je.next(hs))}catch(Ji){Te(Ji)}}function Wn(hs){try{Rn(je.throw(hs))}catch(Ji){Te(Ji)}}function Rn(hs){var Ji;hs.done?Ke(hs.value):(Ji=hs.value,Ji instanceof we?Ji:new we(function(Ni){Ni(Ji)})).then(fn,Wn)}Rn((je=je.apply(We,Pe||[])).next())})}function nt(We,Pe){var we,je,Ke,Te,fn={label:0,sent:function(){if(1&Ke[0])throw Ke[1];return Ke[1]},trys:[],ops:[]};return Te={next:Wn(0),throw:Wn(1),return:Wn(2)},typeof Symbol=="function"&&(Te[Symbol.iterator]=function(){return this}),Te;function Wn(Rn){return function(hs){return function(Ji){if(we)throw new TypeError("Generator is already executing.");for(;fn;)try{if(we=1,je&&(Ke=2&Ji[0]?je.return:Ji[0]?je.throw||((Ke=je.return)&&Ke.call(je),0):je.next)&&!(Ke=Ke.call(je,Ji[1])).done)return Ke;switch(je=0,Ke&&(Ji=[2&Ji[0],Ke.value]),Ji[0]){case 0:case 1:Ke=Ji;break;case 4:return fn.label++,{value:Ji[1],done:!1};case 5:fn.label++,je=Ji[1],Ji=[0];continue;case 7:Ji=fn.ops.pop(),fn.trys.pop();continue;default:if(Ke=fn.trys,!((Ke=Ke.length>0&&Ke[Ke.length-1])||Ji[0]!==6&&Ji[0]!==2)){fn=0;continue}if(Ji[0]===3&&(!Ke||Ji[1]>Ke[0]&&Ji[1]',"select"),this.addActionButton(je,'',"delete"),this.uiStyleSettings.clearButtonVisible&&this.addActionButton(je,'',"clear"),this.uiStyleSettings.undoButtonVisible&&this.addActionButton(je,'',"undo"),this.uiStyleSettings.redoButtonVisible&&this.addActionButton(je,'',"redo"),this.uiStyleSettings.zoomButtonVisible&&this.addActionButton(je,'',"zoom"),this.uiStyleSettings.zoomButtonVisible&&this.uiStyleSettings.zoomOutButtonVisible&&this.addActionButton(je,'',"zoom-out"),this.uiStyleSettings.notesButtonVisible&&this.addActionButton(je,'',"notes"),this.markerButtonBlock=document.createElement("div"),this.markerButtonBlock.className=this.toolbarBlockStyleClass.name,this.markerButtonBlock.style.flexGrow="2",this.markerButtonBlock.style.textAlign="center",this.uiContainer.appendChild(this.markerButtonBlock),this.markerButtonOverflowBlock=document.createElement("div"),this.markerButtonOverflowBlock.className=this.toolbarOverflowBlockStyleClass.name+" "+(this.uiStyleSettings.toolbarOverflowBlockStyleColorsClassName?this.uiStyleSettings.toolbarOverflowBlockStyleColorsClassName:this.toolbarOverflowBlockStyleColorsClass.name),this.markerButtonOverflowBlock.style.display="none",this.uiContainer.appendChild(this.markerButtonOverflowBlock),this.markerItems&&(this.markerItems.forEach(function(Te){var fn=document.createElement("div");fn.className=""+we.toolbarButtonStyleClass.name,fn.setAttribute("data-type-name",Te.typeName),fn.innerHTML=Te.icon,fn.addEventListener("click",function(){we.markerToolbarButtonClicked(fn,Te)}),we.buttons.push(fn),we.markerButtons.push(fn)}),this.overflowButton=document.createElement("div"),this.overflowButton.className=this.toolbarButtonStyleClass.name+" "+(this.uiStyleSettings.toolbarButtonStyleColorsClassName?this.uiStyleSettings.toolbarButtonStyleColorsClassName:this.toolbarButtonStyleColorsClass.name),this.overflowButton.innerHTML='',this.overflowButton.addEventListener("click",this.overflowButtonClicked),this.markerButtonBlock.appendChild(this.overflowButton));var Ke=document.createElement("div");Ke.className=this.toolbarBlockStyleClass.name,Ke.style.whiteSpace="nowrap",Ke.style.display=this.uiStyleSettings.resultButtonBlockVisible!==!1?"":"none",this.uiContainer.appendChild(Ke),this.addActionButton(Ke,'',"render"),this.addActionButton(Ke,'',"close"),this.markerjsContainer.appendChild(this.uiContainer),this.setSelectMode(),this.setCurrentMarker(),this.adjustLayout()},We.prototype.addButtonClickListener=function(Pe){this.buttonClickListeners.push(Pe)},We.prototype.removeButtonClickListener=function(Pe){this.buttonClickListeners.indexOf(Pe)>-1&&this.buttonClickListeners.splice(this.buttonClickListeners.indexOf(Pe),1)},We.prototype.setSelectMode=function(){this.resetButtonStyles(),this.setActiveButton(this.buttons[0])},We.prototype.adjustLayout=function(){if(this.markerButtons&&this.markerButtons.length>0){var Pe=Math.floor(this.markerButtonBlock.clientWidth/this.uiStyleSettings.toolbarHeight)-1;this.markerButtonBlock.innerHTML="",this.markerButtonOverflowBlock.innerHTML="";for(var we=0;we0&&this.buttonClickListeners.forEach(function(je){return je("marker",we)}),this.markerButtonOverflowBlock.style.display="none"},We.prototype.actionToolbarButtonClicked=function(Pe,we){this.buttonClickListeners&&this.buttonClickListeners.length>0&&this.buttonClickListeners.forEach(function(je){return je("action",we)}),this.markerButtonOverflowBlock.style.display="none",this.setActiveButton(this.buttons[0])},We.prototype.setActiveButton=function(Pe){this.resetButtonStyles(),Pe.className=Pe.className.replace(this.uiStyleSettings.toolbarButtonStyleColorsClassName?this.uiStyleSettings.toolbarButtonStyleColorsClassName:this.toolbarButtonStyleColorsClass.name,"").trim(),Pe.className+=" "+(this.uiStyleSettings.toolbarActiveButtonStyleColorsClassName?this.uiStyleSettings.toolbarActiveButtonStyleColorsClassName:this.toolbarActiveButtonStyleColorsClass.name)},We.prototype.setActiveMarkerButton=function(Pe){var we=this.markerButtons.find(function(je){return je.getAttribute("data-type-name")===Pe});we&&this.setActiveButton(we)},We.prototype.setCurrentMarker=function(Pe){var we=this;this.currentMarker=Pe,this.buttons.filter(function(je){return/delete|notes/.test(je.getAttribute("data-action"))}).forEach(function(je){we.currentMarker===void 0?(je.style.fillOpacity="0.4",je.style.pointerEvents="none"):(je.style.fillOpacity="1",je.style.pointerEvents="all")})},We}(),St=function(){function We(Pe,we,je,Ke){this.panels=[],this.panelButtons=[],this.markerjsContainer=Pe,this.displayMode=we,this.uiStyleSettings=je,this.styles=Ke,this.panelButtonClick=this.panelButtonClick.bind(this),this.addStyles()}return We.prototype.addStyles=function(){var Pe;this.toolboxStyleClass=this.styles.addClass(new Mt("toolbox",` width: 100%; flex-shrink: 0; display: flex; flex-direction: column; font-family: sans-serif; `+(this.displayMode==="popup"?"height:"+2.5*this.uiStyleSettings.toolbarHeight+"px;":"")+` box-sizing: content-box; `+(this.displayMode==="popup"?"background-color: "+this.uiStyleSettings.canvasBackgroundColor+";":"")+` `+(this.displayMode==="inline"?"border-bottom-left-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+` `+(this.displayMode==="inline"?"border-bottom-right-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+` overflow: hidden; `)),this.toolboxStyleColorsClass=this.styles.addClass(new Mt("toolbox_colors",` color: `+this.uiStyleSettings.toolboxColor+`; `));var we=this.uiStyleSettings.toolbarHeight/4;this.toolboxButtonRowStyleClass=this.styles.addClass(new Mt("toolbox-button-row",` display: flex; cursor: default; box-sizing: content-box; `)),this.toolboxButtonRowStyleColorsClass=this.styles.addClass(new Mt("toolbox-button-row_colors",` background-color: `+this.uiStyleSettings.toolbarBackgroundColor+`; `)),this.toolboxPanelRowStyleClass=this.styles.addClass(new Mt("toolbox-panel-row",` display: flex; `+(this.displayMode==="inline"?"position: absolute;":"")+` `+(this.displayMode==="inline"?"bottom: "+this.uiStyleSettings.toolbarHeight+"px;":"")+` cursor: default; height: `+1.5*this.uiStyleSettings.toolbarHeight+`px; `+(this.displayMode==="inline"?"width: 100%;":"")+` box-sizing: content-box; `)),this.toolboxPanelRowStyleColorsClass=this.styles.addClass(new Mt("toolbox-panel-row_colors",` background-color: `+((Pe=this.uiStyleSettings.toolboxBackgroundColor)!==null&&Pe!==void 0?Pe:this.uiStyleSettings.toolbarBackgroundHoverColor)+`; `)),this.toolboxButtonStyleClass=this.styles.addClass(new Mt("toolbox_button",` display: inline-block; width: `+(this.uiStyleSettings.toolbarHeight-2*we)+`px; height: `+(this.uiStyleSettings.toolbarHeight-2*we)+`px; padding: `+we+`px; box-sizing: content-box; `)),this.toolboxButtonStyleColorsClass=this.styles.addClass(new Mt("toolbox-button_colors",` fill: `+this.uiStyleSettings.toolbarColor+`; `)),this.toolboxActiveButtonStyleColorsClass=this.styles.addClass(new Mt("toolbox-active-button_colors",` background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+`; fill: `+this.uiStyleSettings.toolbarColor+`; `)),this.styles.addRule(new ct("."+this.toolboxButtonStyleColorsClass.name+":hover",` background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+` `)),this.styles.addRule(new ct("."+this.toolboxButtonStyleClass.name+" svg",` height: `+this.uiStyleSettings.toolbarHeight/2+`px; `))},We.prototype.show=function(Pe){var we;this.uiContainer=document.createElement("div"),this.uiContainer.style.visibility=Pe,this.uiContainer.className=this.toolboxStyleClass.name+" "+((we=this.uiStyleSettings.toolboxStyleColorsClassName)!==null&&we!==void 0?we:this.toolboxStyleColorsClass.name),this.markerjsContainer.appendChild(this.uiContainer)},We.prototype.setPanelButtons=function(Pe){var we,je,Ke=this;this.panels=Pe,this.uiContainer!==void 0&&(this.uiContainer.innerHTML="",this.panelRow=document.createElement("div"),this.panelRow.className=this.toolboxPanelRowStyleClass.name+" "+((we=this.uiStyleSettings.toolboxPanelRowStyleColorsClassName)!==null&&we!==void 0?we:this.toolboxPanelRowStyleColorsClass.name),this.uiContainer.appendChild(this.panelRow),this.buttonRow=document.createElement("div"),this.buttonRow.className=this.toolboxButtonRowStyleClass.name+" "+((je=this.uiStyleSettings.toolboxButtonRowStyleColorsClassName)!==null&&je!==void 0?je:this.toolboxButtonRowStyleColorsClass.name)+" ",this.uiContainer.appendChild(this.buttonRow),this.panelButtons.splice(0),this.panels.forEach(function(Te){var fn;Te.uiStyleSettings=Ke.uiStyleSettings;var Wn=document.createElement("div");Wn.className=Ke.toolboxButtonStyleClass.name+" "+((fn=Ke.uiStyleSettings.toolboxButtonStyleColorsClassName)!==null&&fn!==void 0?fn:Ke.toolboxButtonStyleColorsClass.name),Wn.innerHTML=Te.icon,Wn.title=Te.title,Wn.addEventListener("click",function(){Ke.panelButtonClick(Te)}),Ke.panelButtons.push(Wn),Ke.buttonRow.appendChild(Wn)}),this.displayMode==="inline"?this.panelRow.style.display="none":this.panelRow.style.visibility="hidden")},We.prototype.panelButtonClick=function(Pe){var we=this,je=-1;if(Pe!==this.activePanel){je=this.panels.indexOf(Pe),this.panelRow.innerHTML="";var Ke=Pe.getUi();Ke.style.margin=this.uiStyleSettings.toolbarHeight/4+"px",this.panelRow.appendChild(Ke),this.panelRow.style.display="flex",this.panelRow.style.visibility="visible",this.panelRow.className=this.panelRow.className.replace(this.styles.fadeOutAnimationClassName,""),this.panelRow.className+=" "+this.styles.fadeInAnimationClassName,this.activePanel=Pe}else this.activePanel=void 0,this.panelRow.className=this.panelRow.className.replace(this.styles.fadeInAnimationClassName,""),this.panelRow.className+=" "+this.styles.fadeOutAnimationClassName,setTimeout(function(){we.displayMode==="inline"?we.panelRow.style.display="none":we.panelRow.style.visibility="hidden"},200);this.panelButtons.forEach(function(Te,fn){var Wn,Rn;Te.className=we.toolboxButtonStyleClass.name+" "+(fn===je?""+((Wn=we.uiStyleSettings.toolboxActiveButtonStyleColorsClassName)!==null&&Wn!==void 0?Wn:we.toolboxActiveButtonStyleColorsClass.name):""+((Rn=we.uiStyleSettings.toolboxButtonStyleColorsClassName)!==null&&Rn!==void 0?Rn:we.toolboxButtonStyleColorsClass.name))})},We}(),xt=function(We,Pe){this.title=We,this.icon=Pe},gt=function(We){function Pe(we,je,Ke,Te){var fn=We.call(this,we,Te||'')||this;return fn.colors=[],fn.addTransparent=!1,fn.colorBoxes=[],fn.colors=je,fn.currentColor=Ke,fn.setCurrentColor=fn.setCurrentColor.bind(fn),fn.getColorBox=fn.getColorBox.bind(fn),fn}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");return je.style.overflow="hidden",je.style.whiteSpace="nowrap",this.colors.forEach(function(Ke){var Te=we.getColorBox(Ke);je.appendChild(Te),we.colorBoxes.push(Te)}),je},Pe.prototype.getColorBox=function(we){var je=this,Ke=this.uiStyleSettings.toolbarHeight/4,Te=this.uiStyleSettings.toolbarHeight-Ke,fn=document.createElement("div");fn.style.display="inline-block",fn.style.boxSizing="content-box",fn.style.width=Te-2+"px",fn.style.height=Te-2+"px",fn.style.padding="1px",fn.style.marginRight="2px",fn.style.marginBottom="2px",fn.style.borderWidth="2px",fn.style.borderStyle="solid",fn.style.borderRadius=(Te+2)/2+"px",fn.style.borderColor=we===this.currentColor?this.uiStyleSettings.toolboxAccentColor:"transparent",fn.addEventListener("click",function(){je.setCurrentColor(we,fn)});var Wn=document.createElement("div");return Wn.style.display="inline-block",Wn.style.width=Te-2+"px",Wn.style.height=Te-2+"px",Wn.style.backgroundColor=we,Wn.style.borderRadius=Te/2+"px",we==="transparent"&&(Wn.style.fill=this.uiStyleSettings.toolboxAccentColor,Wn.innerHTML=` `),fn.appendChild(Wn),fn},Pe.prototype.setCurrentColor=function(we,je){var Ke=this;this.currentColor=we,this.colorBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onColorChanged&&this.onColorChanged(we)},Pe}(xt),Ct=function(){function We(Pe,we,je){this._state="new",this._isSelected=!1,this._container=Pe,this._overlayContainer=we,this.globalSettings=je,this.stateChanged=this.stateChanged.bind(this),this.colorChanged=this.colorChanged.bind(this),this.fillColorChanged=this.fillColorChanged.bind(this)}return Object.defineProperty(We.prototype,"typeName",{get:function(){return Object.getPrototypeOf(this).constructor.typeName},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"container",{get:function(){return this._container},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"overlayContainer",{get:function(){return this._overlayContainer},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"state",{get:function(){return this._state},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"toolboxPanels",{get:function(){return[]},enumerable:!1,configurable:!0}),We.prototype.ownsTarget=function(Pe){return!1},Object.defineProperty(We.prototype,"isSelected",{get:function(){return this._isSelected},enumerable:!1,configurable:!0}),We.prototype.select=function(){this.container.style.cursor="move",this._isSelected=!0,this.manipulationStartState=this.getState()},We.prototype.deselect=function(){this.container.style.cursor="default",this._isSelected=!1,this.stateChanged()},We.prototype.pointerDown=function(Pe,we){},We.prototype.dblClick=function(Pe,we){},We.prototype.manipulate=function(Pe){},We.prototype.pointerUp=function(Pe){this.stateChanged()},We.prototype.dispose=function(){},We.prototype.addMarkerVisualToContainer=function(Pe){this.container.childNodes.length>0?this.container.insertBefore(Pe,this.container.childNodes[0]):this.container.appendChild(Pe)},We.prototype.getState=function(){return{typeName:We.typeName,state:this.state,notes:this.notes}},We.prototype.restoreState=function(Pe){this._state=Pe.state,this.notes=Pe.notes},We.prototype.scale=function(Pe,we){},We.prototype.colorChanged=function(Pe){this.onColorChanged&&this.onColorChanged(Pe),this.stateChanged()},We.prototype.fillColorChanged=function(Pe){this.onFillColorChanged&&this.onFillColorChanged(Pe),this.stateChanged()},We.prototype.stateChanged=function(){if(this.onStateChanged&&this.state!=="creating"&&this.state!=="new"){var Pe=this.getState();this.manipulationStartState!==void 0&&(this.manipulationStartState.state="select"),Pe.state="select",JSON.stringify(this.manipulationStartState)!=JSON.stringify(Pe)&&this.onStateChanged(this)}},We.typeName="MarkerBase",We}(),Ft=function(){function We(){this.findGripByVisual=this.findGripByVisual.bind(this)}return We.prototype.findGripByVisual=function(Pe){return this.topLeft.ownsTarget(Pe)?this.topLeft:this.topCenter.ownsTarget(Pe)?this.topCenter:this.topRight.ownsTarget(Pe)?this.topRight:this.centerLeft.ownsTarget(Pe)?this.centerLeft:this.centerRight.ownsTarget(Pe)?this.centerRight:this.bottomLeft.ownsTarget(Pe)?this.bottomLeft:this.bottomCenter.ownsTarget(Pe)?this.bottomCenter:this.bottomRight.ownsTarget(Pe)?this.bottomRight:void 0},We}(),It=function(){function We(){this.GRIP_SIZE=10,this.visual=at.createGroup(),this.visual.appendChild(at.createCircle(1.5*this.GRIP_SIZE,[["fill","transparent"]])),this.visual.appendChild(at.createCircle(this.GRIP_SIZE,[["fill","#cccccc"],["fill-opacity","0.7"],["stroke","#333333"],["stroke-width","2"],["stroke-opacity","0.7"]]))}return We.prototype.ownsTarget=function(Pe){return Pe===this.visual||Pe===this.visual.childNodes[0]||Pe===this.visual.childNodes[1]},We}(),Ot=function(){function We(){}return We.toITransformMatrix=function(Pe){return{a:Pe.a,b:Pe.b,c:Pe.c,d:Pe.d,e:Pe.e,f:Pe.f}},We.toSVGMatrix=function(Pe,we){return Pe.a=we.a,Pe.b=we.b,Pe.c=we.c,Pe.d=we.d,Pe.e=we.e,Pe.f=we.f,Pe},We}(),ln=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.left=0,Te.top=0,Te.width=0,Te.height=0,Te.defaultSize={x:50,y:20},Te.offsetX=0,Te.offsetY=0,Te.rotationAngle=0,Te.CB_DISTANCE=10,Te._suppressMarkerCreateEvent=!1,Te.container.transform.baseVal.appendItem(at.createTransform()),Te.setupControlBox(),Te}return st(Pe,We),Object.defineProperty(Pe.prototype,"centerX",{get:function(){return this.left+this.width/2},enumerable:!1,configurable:!0}),Object.defineProperty(Pe.prototype,"centerY",{get:function(){return this.top+this.height/2},enumerable:!1,configurable:!0}),Object.defineProperty(Pe.prototype,"visual",{get:function(){return this._visual},set:function(we){this._visual=we;var je=at.createTransform();this._visual.transform.baseVal.appendItem(je)},enumerable:!1,configurable:!0}),Pe.prototype.ownsTarget=function(we){return!!We.prototype.ownsTarget.call(this,we)||!!(this.controlGrips.findGripByVisual(we)!==void 0||this.rotatorGrip!==void 0&&this.rotatorGrip.ownsTarget(we))},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.state==="new"&&(this.left=we.x,this.top=we.y),this.manipulationStartLeft=this.left,this.manipulationStartTop=this.top,this.manipulationStartWidth=this.width,this.manipulationStartHeight=this.height;var Ke=this.unrotatePoint(we);if(this.manipulationStartX=Ke.x,this.manipulationStartY=Ke.y,this.offsetX=Ke.x-this.left,this.offsetY=Ke.y-this.top,this.state!=="new")if(this.select(),this.activeGrip=this.controlGrips.findGripByVisual(je),this.activeGrip!==void 0)this._state="resize";else if(this.rotatorGrip!==void 0&&this.rotatorGrip.ownsTarget(je)){this.activeGrip=this.rotatorGrip;var Te=this.rotatePoint({x:this.centerX,y:this.centerY});this.left=Te.x-this.width/2,this.top=Te.y-this.height/2,this.moveVisual({x:this.left,y:this.top});var fn=this.container.transform.baseVal.getItem(0);fn.setRotate(this.rotationAngle,this.centerX,this.centerY),this.container.transform.baseVal.replaceItem(fn,0),this.adjustControlBox(),this._state="rotate"}else this._state="move"},Pe.prototype.pointerUp=function(we){var je=this.state;We.prototype.pointerUp.call(this,we),this.state==="creating"&&this.width<10&&this.height<10?(this.width=this.defaultSize.x,this.height=this.defaultSize.y):this.manipulate(we),this._state="select",je==="creating"&&this.onMarkerCreated&&this._suppressMarkerCreateEvent===!1&&this.onMarkerCreated(this)},Pe.prototype.moveVisual=function(we){this.visual.style.transform="translate("+we.x+"px, "+we.y+"px)"},Pe.prototype.manipulate=function(we){var je=this.unrotatePoint(we);this.state==="creating"?this.resize(we):this.state==="move"?(this.left=this.manipulationStartLeft+(je.x-this.manipulationStartLeft)-this.offsetX,this.top=this.manipulationStartTop+(je.y-this.manipulationStartTop)-this.offsetY,this.moveVisual({x:this.left,y:this.top}),this.adjustControlBox()):this.state==="resize"?this.resize(je):this.state==="rotate"&&this.rotate(we)},Pe.prototype.resize=function(we){var je=this.manipulationStartLeft,Ke=this.manipulationStartWidth,Te=this.manipulationStartTop,fn=this.manipulationStartHeight;switch(this.activeGrip){case this.controlGrips.bottomLeft:case this.controlGrips.centerLeft:case this.controlGrips.topLeft:je=this.manipulationStartLeft+we.x-this.manipulationStartX,Ke=this.manipulationStartWidth+this.manipulationStartLeft-je;break;case this.controlGrips.bottomRight:case this.controlGrips.centerRight:case this.controlGrips.topRight:case void 0:Ke=this.manipulationStartWidth+we.x-this.manipulationStartX}switch(this.activeGrip){case this.controlGrips.topCenter:case this.controlGrips.topLeft:case this.controlGrips.topRight:Te=this.manipulationStartTop+we.y-this.manipulationStartY,fn=this.manipulationStartHeight+this.manipulationStartTop-Te;break;case this.controlGrips.bottomCenter:case this.controlGrips.bottomLeft:case this.controlGrips.bottomRight:case void 0:fn=this.manipulationStartHeight+we.y-this.manipulationStartY}Ke>=0?(this.left=je,this.width=Ke):(this.left=je+Ke,this.width=-Ke),fn>=0?(this.top=Te,this.height=fn):(this.top=Te+fn,this.height=-fn),this.setSize()},Pe.prototype.setSize=function(){this.moveVisual({x:this.left,y:this.top}),this.adjustControlBox()},Pe.prototype.rotate=function(we){if(Math.abs(we.x-this.centerX)>.1){var je=Math.sign(we.x-this.centerX);this.rotationAngle=180*Math.atan((we.y-this.centerY)/(we.x-this.centerX))/Math.PI+90*je,this.applyRotation()}},Pe.prototype.applyRotation=function(){var we=this.container.transform.baseVal.getItem(0);we.setRotate(this.rotationAngle,this.centerX,this.centerY),this.container.transform.baseVal.replaceItem(we,0)},Pe.prototype.rotatePoint=function(we){if(this.rotationAngle===0)return we;var je=this.container.getCTM(),Ke=at.createPoint(we.x,we.y);return{x:(Ke=Ke.matrixTransform(je)).x,y:Ke.y}},Pe.prototype.unrotatePoint=function(we){if(this.rotationAngle===0)return we;var je=this.container.getCTM();je=je.inverse();var Ke=at.createPoint(we.x,we.y);return{x:(Ke=Ke.matrixTransform(je)).x,y:Ke.y}},Pe.prototype.select=function(){We.prototype.select.call(this),this.adjustControlBox(),this.controlBox.style.display=""},Pe.prototype.deselect=function(){We.prototype.deselect.call(this),this.controlBox.style.display="none"},Pe.prototype.setupControlBox=function(){this.controlBox=at.createGroup();var we=at.createTransform();we.setTranslate(-this.CB_DISTANCE/2,-this.CB_DISTANCE/2),this.controlBox.transform.baseVal.appendItem(we),this.container.appendChild(this.controlBox),this.controlRect=at.createRect(this.width+this.CB_DISTANCE,this.height+this.CB_DISTANCE,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"],["fill","transparent"],["pointer-events","none"]]),this.controlBox.appendChild(this.controlRect),this.globalSettings.disableRotation!==!0&&(this.rotatorGripLine=at.createLine((this.width+2*this.CB_DISTANCE)/2,this.top-this.CB_DISTANCE,(this.width+2*this.CB_DISTANCE)/2,this.top-3*this.CB_DISTANCE,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.controlBox.appendChild(this.rotatorGripLine)),this.controlGrips=new Ft,this.addControlGrips(),this.controlBox.style.display="none"},Pe.prototype.adjustControlBox=function(){var we=this.controlBox.transform.baseVal.getItem(0);we.setTranslate(this.left-this.CB_DISTANCE/2,this.top-this.CB_DISTANCE/2),this.controlBox.transform.baseVal.replaceItem(we,0),this.controlRect.setAttribute("width",(this.width+this.CB_DISTANCE).toString()),this.controlRect.setAttribute("height",(this.height+this.CB_DISTANCE).toString()),this.rotatorGripLine!==void 0&&(this.rotatorGripLine.setAttribute("x1",((this.width+this.CB_DISTANCE)/2).toString()),this.rotatorGripLine.setAttribute("y1",(-this.CB_DISTANCE/2).toString()),this.rotatorGripLine.setAttribute("x2",((this.width+this.CB_DISTANCE)/2).toString()),this.rotatorGripLine.setAttribute("y2",(3*-this.CB_DISTANCE).toString())),this.positionGrips()},Pe.prototype.addControlGrips=function(){this.controlGrips.topLeft=this.createGrip(),this.controlGrips.topCenter=this.createGrip(),this.controlGrips.topRight=this.createGrip(),this.controlGrips.centerLeft=this.createGrip(),this.controlGrips.centerRight=this.createGrip(),this.controlGrips.bottomLeft=this.createGrip(),this.controlGrips.bottomCenter=this.createGrip(),this.controlGrips.bottomRight=this.createGrip(),this.globalSettings.disableRotation!==!0&&(this.rotatorGrip=this.createGrip()),this.positionGrips()},Pe.prototype.createGrip=function(){var we=new It;return we.visual.transform.baseVal.appendItem(at.createTransform()),this.controlBox.appendChild(we.visual),we},Pe.prototype.positionGrips=function(){var we=this.controlGrips.topLeft.GRIP_SIZE,je=-we/2,Ke=je,Te=(this.width+this.CB_DISTANCE)/2-we/2,fn=(this.height+this.CB_DISTANCE)/2-we/2,Wn=this.height+this.CB_DISTANCE-we/2,Rn=this.width+this.CB_DISTANCE-we/2;this.positionGrip(this.controlGrips.topLeft.visual,je,Ke),this.positionGrip(this.controlGrips.topCenter.visual,Te,Ke),this.positionGrip(this.controlGrips.topRight.visual,Rn,Ke),this.positionGrip(this.controlGrips.centerLeft.visual,je,fn),this.positionGrip(this.controlGrips.centerRight.visual,Rn,fn),this.positionGrip(this.controlGrips.bottomLeft.visual,je,Wn),this.positionGrip(this.controlGrips.bottomCenter.visual,Te,Wn),this.positionGrip(this.controlGrips.bottomRight.visual,Rn,Wn),this.rotatorGrip!==void 0&&this.positionGrip(this.rotatorGrip.visual,Te,Ke-3*this.CB_DISTANCE)},Pe.prototype.positionGrip=function(we,je,Ke){var Te=we.transform.baseVal.getItem(0);Te.setTranslate(je,Ke),we.transform.baseVal.replaceItem(Te,0)},Pe.prototype.hideControlBox=function(){this.controlBox.style.display="none"},Pe.prototype.showControlBox=function(){this.controlBox.style.display=""},Pe.prototype.getState=function(){return Object.assign({left:this.left,top:this.top,width:this.width,height:this.height,rotationAngle:this.rotationAngle,visualTransformMatrix:Ot.toITransformMatrix(this.visual.transform.baseVal.getItem(0).matrix),containerTransformMatrix:Ot.toITransformMatrix(this.container.transform.baseVal.getItem(0).matrix)},We.prototype.getState.call(this))},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we);var je=we;this.left=je.left,this.top=je.top,this.width=je.width,this.height=je.height,this.rotationAngle=je.rotationAngle,this.visual.transform.baseVal.getItem(0).setMatrix(Ot.toSVGMatrix(this.visual.transform.baseVal.getItem(0).matrix,je.visualTransformMatrix)),this.container.transform.baseVal.getItem(0).setMatrix(Ot.toSVGMatrix(this.container.transform.baseVal.getItem(0).matrix,je.containerTransformMatrix))},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je);var Ke=this.rotatePoint({x:this.left,y:this.top}),Te=this.unrotatePoint({x:Ke.x*we,y:Ke.y*je});this.left=Te.x,this.top=Te.y,this.width=this.width*we,this.height=this.height*je,this.adjustControlBox()},Pe}(Ct),jn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.fillColor="transparent",Te.strokeColor="transparent",Te.strokeWidth=0,Te.strokeDasharray="",Te.opacity=1,Te.setStrokeColor=Te.setStrokeColor.bind(Te),Te.setFillColor=Te.setFillColor.bind(Te),Te.setStrokeWidth=Te.setStrokeWidth.bind(Te),Te.setStrokeDasharray=Te.setStrokeDasharray.bind(Te),Te.createVisual=Te.createVisual.bind(Te),Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.visual)},Pe.prototype.createVisual=function(){this.visual=at.createRect(1,1,[["fill",this.fillColor],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["stroke-dasharray",this.strokeDasharray],["opacity",this.opacity.toString()]]),this.addMarkerVisualToContainer(this.visual)},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.state==="new"&&(this.createVisual(),this.moveVisual(we),this._state="creating")},Pe.prototype.manipulate=function(we){We.prototype.manipulate.call(this,we)},Pe.prototype.resize=function(we){We.prototype.resize.call(this,we),this.setSize()},Pe.prototype.setSize=function(){We.prototype.setSize.call(this),at.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]])},Pe.prototype.pointerUp=function(we){We.prototype.pointerUp.call(this,we),this.setSize()},Pe.prototype.setStrokeColor=function(we){this.strokeColor=we,this.visual&&at.setAttributes(this.visual,[["stroke",this.strokeColor]]),this.colorChanged(we),this.stateChanged()},Pe.prototype.setFillColor=function(we){this.fillColor=we,this.visual&&at.setAttributes(this.visual,[["fill",this.fillColor]]),this.stateChanged()},Pe.prototype.setStrokeWidth=function(we){this.strokeWidth=we,this.visual&&at.setAttributes(this.visual,[["stroke-width",this.strokeWidth.toString()]]),this.stateChanged()},Pe.prototype.setStrokeDasharray=function(we){this.strokeDasharray=we,this.visual&&at.setAttributes(this.visual,[["stroke-dasharray",this.strokeDasharray]]),this.stateChanged()},Pe.prototype.getState=function(){return Object.assign({fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,opacity:this.opacity},We.prototype.getState.call(this))},Pe.prototype.restoreState=function(we){var je=we;this.fillColor=je.fillColor,this.strokeColor=je.strokeColor,this.strokeWidth=je.strokeWidth,this.strokeDasharray=je.strokeDasharray,this.opacity=je.opacity,this.createVisual(),We.prototype.restoreState.call(this,we),this.setSize()},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je),this.setSize()},Pe.title="Rectangle marker",Pe}(ln),Nn=function(We){function Pe(we,je,Ke,Te){var fn=We.call(this,we,Te||'')||this;return fn.widths=[],fn.widthBoxes=[],fn.widths=je,fn.currentWidth=Ke,fn.setCurrentWidth=fn.setCurrentWidth.bind(fn),fn}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");return je.style.display="flex",je.style.overflow="hidden",je.style.flexGrow="2",this.widths.forEach(function(Ke){var Te=document.createElement("div");Te.style.display="flex",Te.style.flexGrow="2",Te.style.alignItems="center",Te.style.justifyContent="space-between",Te.style.padding="5px",Te.style.borderWidth="2px",Te.style.borderStyle="solid",Te.style.borderColor=Ke===we.currentWidth?we.uiStyleSettings.toolboxAccentColor:"transparent",Te.addEventListener("click",function(){we.setCurrentWidth(Ke,Te)}),je.appendChild(Te);var fn=document.createElement("div");fn.innerText=Ke.toString(),fn.style.marginRight="5px",Te.appendChild(fn);var Wn=document.createElement("div");Wn.style.minHeight="20px",Wn.style.flexGrow="2",Wn.style.display="flex",Wn.style.alignItems="center";var Rn=document.createElement("hr");Rn.style.minWidth="20px",Rn.style.border="0px",Rn.style.borderTop=Ke+"px solid "+we.uiStyleSettings.toolboxColor,Rn.style.flexGrow="2",Wn.appendChild(Rn),Te.appendChild(Wn),we.widthBoxes.push(Te)}),je},Pe.prototype.setCurrentWidth=function(we,je){var Ke=this;this.currentWidth=we,this.widthBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onWidthChanged&&this.onWidthChanged(this.currentWidth)},Pe}(xt),pn=function(We){function Pe(we,je,Ke,Te){var fn=We.call(this,we,Te||'')||this;return fn.styles=[],fn.styleBoxes=[],fn.styles=je,fn.currentStyle=Ke,fn.setCurrentStyle=fn.setCurrentStyle.bind(fn),fn}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");return je.style.display="flex",je.style.overflow="hidden",je.style.flexGrow="2",this.styles.forEach(function(Ke){var Te=document.createElement("div");Te.style.display="flex",Te.style.alignItems="center",Te.style.justifyContent="space-between",Te.style.padding="5px",Te.style.borderWidth="2px",Te.style.borderStyle="solid",Te.style.overflow="hidden",Te.style.maxWidth=100/we.styles.length-5+"%",Te.style.borderColor=Ke===we.currentStyle?we.uiStyleSettings.toolboxAccentColor:"transparent",Te.addEventListener("click",function(){we.setCurrentStyle(Ke,Te)}),je.appendChild(Te);var fn=document.createElement("div");fn.style.minHeight="20px",fn.style.flexGrow="2",fn.style.overflow="hidden";var Wn=` `;fn.innerHTML=Wn,Te.appendChild(fn),we.styleBoxes.push(Te)}),je},Pe.prototype.setCurrentStyle=function(we,je){var Ke=this;this.currentStyle=we,this.styleBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onStyleChanged&&this.onStyleChanged(this.currentStyle)},Pe}(xt),ir=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.strokeColor=Ke.defaultColor,Te.strokeWidth=Ke.defaultStrokeWidth,Te.strokeDasharray=Ke.defaultStrokeDasharray,Te.strokePanel=new gt("Line color",Ke.defaultColorSet,Ke.defaultColor),Te.strokePanel.onColorChanged=Te.setStrokeColor,Te.strokeWidthPanel=new Nn("Line width",Ke.defaultStrokeWidths,Ke.defaultStrokeWidth),Te.strokeWidthPanel.onWidthChanged=Te.setStrokeWidth,Te.strokeStylePanel=new pn("Line style",Ke.defaultStrokeDasharrays,Ke.defaultStrokeDasharray),Te.strokeStylePanel.onStyleChanged=Te.setStrokeDasharray,Te}return st(Pe,We),Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=We.prototype.getState.call(this);return we.typeName=Pe.typeName,we},Pe.typeName="FrameMarker",Pe.title="Frame marker",Pe.icon='',Pe}(jn),Gt=function(){this.defaultColorSet=["#EF4444","#10B981","#2563EB","#FFFF00","#7C3AED","#F472B6","#000000","#FFFFFF"],this.defaultColor=this.defaultColorSet[0],this.defaultFillColor=this.defaultColorSet[0],this.defaultStrokeColor=this.defaultColorSet[7],this.defaultHighlightColor=this.defaultColorSet[3],this.defaultStrokeWidth=3,this.defaultStrokeDasharray="",this.defaultHighlightOpacity=.5,this.defaultFontFamily="Helvetica, Arial, sans-serif",this.defaultStrokeWidths=[1,2,3,5,10],this.defaultStrokeDasharrays=["","3","12 3","9 6 3 6"],this.defaultOpacitySteps=[.1,.25,.5,.75,1],this.displayMode="inline",this.defaultFontFamilies=['Times, "Times New Roman", serif',"Helvetica, Arial, sans-serif",'Courier, "Courier New", monospace',"cursive","fantasy"],this.popupMargin=30,this.newFreehandMarkerOnPointerUp=!1,this.defaultColorsFollowCurrentColors=!1,this.freehandPixelRatio=1,this.disableRotation=!1,this.defaultCaptionFontSize="1rem",this.defaultCaptionText="Text"},Zt=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.x1=0,Te.y1=0,Te.x2=0,Te.y2=0,Te.defaultLength=50,Te.manipulationStartX=0,Te.manipulationStartY=0,Te.manipulationStartX1=0,Te.manipulationStartY1=0,Te.manipulationStartX2=0,Te.manipulationStartY2=0,Te.setupControlBox(),Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!!We.prototype.ownsTarget.call(this,we)||!(!this.grip1.ownsTarget(we)&&!this.grip2.ownsTarget(we))},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.manipulationStartX=we.x,this.manipulationStartY=we.y,this.state==="new"&&(this.x1=we.x,this.y1=we.y,this.x2=we.x,this.y2=we.y),this.manipulationStartX1=this.x1,this.manipulationStartY1=this.y1,this.manipulationStartX2=this.x2,this.manipulationStartY2=this.y2,this.state!=="new"&&(this.select(),this.grip1.ownsTarget(je)?this.activeGrip=this.grip1:this.grip2.ownsTarget(je)?this.activeGrip=this.grip2:this.activeGrip=void 0,this.activeGrip?this._state="resize":this._state="move")},Pe.prototype.pointerUp=function(we){var je=this.state;We.prototype.pointerUp.call(this,we),this.state==="creating"&&Math.abs(this.x1-this.x2)<10&&Math.abs(this.y1-this.y2)<10?(this.x2=this.x1+this.defaultLength,this.adjustVisual(),this.adjustControlBox()):this.manipulate(we),this._state="select",je==="creating"&&this.onMarkerCreated&&this.onMarkerCreated(this)},Pe.prototype.adjustVisual=function(){},Pe.prototype.manipulate=function(we){this.state==="creating"?this.resize(we):this.state==="move"?(this.x1=this.manipulationStartX1+we.x-this.manipulationStartX,this.y1=this.manipulationStartY1+we.y-this.manipulationStartY,this.x2=this.manipulationStartX2+we.x-this.manipulationStartX,this.y2=this.manipulationStartY2+we.y-this.manipulationStartY,this.adjustVisual(),this.adjustControlBox()):this.state==="resize"&&this.resize(we)},Pe.prototype.resize=function(we){switch(this.activeGrip){case this.grip1:this.x1=we.x,this.y1=we.y;break;case this.grip2:case void 0:this.x2=we.x,this.y2=we.y}this.adjustVisual(),this.adjustControlBox()},Pe.prototype.select=function(){We.prototype.select.call(this),this.adjustControlBox(),this.controlBox.style.display=""},Pe.prototype.deselect=function(){We.prototype.deselect.call(this),this.controlBox.style.display="none"},Pe.prototype.setupControlBox=function(){this.controlBox=at.createGroup(),this.container.appendChild(this.controlBox),this.addControlGrips(),this.controlBox.style.display="none"},Pe.prototype.adjustControlBox=function(){this.positionGrips()},Pe.prototype.addControlGrips=function(){this.grip1=this.createGrip(),this.grip2=this.createGrip(),this.positionGrips()},Pe.prototype.createGrip=function(){var we=new It;return we.visual.transform.baseVal.appendItem(at.createTransform()),this.controlBox.appendChild(we.visual),we},Pe.prototype.positionGrips=function(){var we=this.grip1.GRIP_SIZE;this.positionGrip(this.grip1.visual,this.x1-we/2,this.y1-we/2),this.positionGrip(this.grip2.visual,this.x2-we/2,this.y2-we/2)},Pe.prototype.positionGrip=function(we,je,Ke){var Te=we.transform.baseVal.getItem(0);Te.setTranslate(je,Ke),we.transform.baseVal.replaceItem(Te,0)},Pe.prototype.getState=function(){return Object.assign({x1:this.x1,y1:this.y1,x2:this.x2,y2:this.y2},We.prototype.getState.call(this))},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we);var je=we;this.x1=je.x1,this.y1=je.y1,this.x2=je.x2,this.y2=je.y2},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je),this.x1=this.x1*we,this.y1=this.y1*je,this.x2=this.x2*we,this.y2=this.y2*je,this.adjustVisual(),this.adjustControlBox()},Pe}(Ct),Cn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.strokeColor="transparent",Te.strokeWidth=0,Te.strokeDasharray="",Te.setStrokeColor=Te.setStrokeColor.bind(Te),Te.setStrokeWidth=Te.setStrokeWidth.bind(Te),Te.setStrokeDasharray=Te.setStrokeDasharray.bind(Te),Te.strokeColor=Ke.defaultColor,Te.strokeWidth=Ke.defaultStrokeWidth,Te.strokeDasharray=Ke.defaultStrokeDasharray,Te.strokePanel=new gt("Line color",Ke.defaultColorSet,Ke.defaultColor),Te.strokePanel.onColorChanged=Te.setStrokeColor,Te.strokeWidthPanel=new Nn("Line width",Ke.defaultStrokeWidths,Ke.defaultStrokeWidth),Te.strokeWidthPanel.onWidthChanged=Te.setStrokeWidth,Te.strokeStylePanel=new pn("Line style",Ke.defaultStrokeDasharrays,Ke.defaultStrokeDasharray),Te.strokeStylePanel.onStyleChanged=Te.setStrokeDasharray,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.visual&&we!==this.selectorLine&&we!==this.visibleLine)},Pe.prototype.createVisual=function(){this.visual=at.createGroup(),this.selectorLine=at.createLine(this.x1,this.y1,this.x2,this.y2,[["stroke","transparent"],["stroke-width",(this.strokeWidth+10).toString()]]),this.visibleLine=at.createLine(this.x1,this.y1,this.x2,this.y2,[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),this.visual.appendChild(this.selectorLine),this.visual.appendChild(this.visibleLine),this.addMarkerVisualToContainer(this.visual)},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.state==="new"&&(this.createVisual(),this.adjustVisual(),this._state="creating")},Pe.prototype.adjustVisual=function(){this.selectorLine&&this.visibleLine&&(this.selectorLine.setAttribute("x1",this.x1.toString()),this.selectorLine.setAttribute("y1",this.y1.toString()),this.selectorLine.setAttribute("x2",this.x2.toString()),this.selectorLine.setAttribute("y2",this.y2.toString()),this.visibleLine.setAttribute("x1",this.x1.toString()),this.visibleLine.setAttribute("y1",this.y1.toString()),this.visibleLine.setAttribute("x2",this.x2.toString()),this.visibleLine.setAttribute("y2",this.y2.toString()),at.setAttributes(this.visibleLine,[["stroke",this.strokeColor]]),at.setAttributes(this.visibleLine,[["stroke-width",this.strokeWidth.toString()]]),at.setAttributes(this.visibleLine,[["stroke-dasharray",this.strokeDasharray.toString()]]))},Pe.prototype.setStrokeColor=function(we){this.strokeColor=we,this.adjustVisual(),this.colorChanged(we)},Pe.prototype.setStrokeWidth=function(we){this.strokeWidth=we,this.adjustVisual()},Pe.prototype.setStrokeDasharray=function(we){this.strokeDasharray=we,this.adjustVisual(),this.stateChanged()},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray},We.prototype.getState.call(this));return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we);var je=we;this.strokeColor=je.strokeColor,this.strokeWidth=je.strokeWidth,this.strokeDasharray=je.strokeDasharray,this.createVisual(),this.adjustVisual()},Pe.typeName="LineMarker",Pe.title="Line marker",Pe.icon='',Pe}(Zt),Qt=function(We){function Pe(we,je,Ke,Te){var fn=We.call(this,we,Te||'')||this;return fn.fonts=[],fn.fontBoxes=[],fn.fonts=je,fn.currentFont=Ke,fn.setCurrentFont=fn.setCurrentFont.bind(fn),fn}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");return je.style.overflow="hidden",je.style.flexGrow="2",this.fonts.forEach(function(Ke){var Te=document.createElement("div");Te.style.display="inline-block",Te.style.alignItems="center",Te.style.justifyContent="space-between",Te.style.padding="5px",Te.style.borderWidth="2px",Te.style.borderStyle="solid",Te.style.overflow="hidden",Te.style.maxWidth=100/we.fonts.length-5+"%",Te.style.borderColor=Ke===we.currentFont?we.uiStyleSettings.toolboxAccentColor:"transparent",Te.addEventListener("click",function(){we.setCurrentFont(Ke,Te)}),je.appendChild(Te);var fn=document.createElement("div");fn.style.display="flex",fn.style.minHeight="20px",fn.style.flexGrow="2",fn.style.fontFamily=Ke,fn.style.overflow="hidden";var Wn=document.createElement("div");Wn.style.whiteSpace="nowrap",Wn.style.overflow="hidden",Wn.style.textOverflow="ellipsis",Wn.innerHTML="The quick brown fox jumps over the lazy dog",fn.appendChild(Wn),Te.appendChild(fn),we.fontBoxes.push(Te)}),je},Pe.prototype.setCurrentFont=function(we,je){var Ke=this;this.currentFont=we,this.fontBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onFontChanged&&this.onFontChanged(this.currentFont)},Pe}(xt),sn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.color="transparent",Te.padding=5,Te.DEFAULT_TEXT="\u8BF7\u8F93\u5165\u6587\u672C",Te.text=Te.DEFAULT_TEXT,Te.isMoved=!1,Te.color=Ke.defaultColor,Te.fontFamily=Ke.defaultFontFamily,Te.defaultSize={x:100,y:30},Te.setColor=Te.setColor.bind(Te),Te.setFont=Te.setFont.bind(Te),Te.renderText=Te.renderText.bind(Te),Te.sizeText=Te.sizeText.bind(Te),Te.textEditDivClicked=Te.textEditDivClicked.bind(Te),Te.showTextEditor=Te.showTextEditor.bind(Te),Te.setSize=Te.setSize.bind(Te),Te.positionTextEditor=Te.positionTextEditor.bind(Te),Te.colorPanel=new gt("Color",Ke.defaultColorSet,Ke.defaultColor),Te.colorPanel.onColorChanged=Te.setColor,Te.fontFamilyPanel=new Qt("Font",Ke.defaultFontFamilies,Ke.defaultFontFamily),Te.fontFamilyPanel.onFontChanged=Te.setFont,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){if(We.prototype.ownsTarget.call(this,we)||we===this.visual||we===this.textElement||we===this.bgRectangle)return!0;var je=!1;return this.textElement.childNodes.forEach(function(Ke){Ke===we&&(je=!0)}),je},Pe.prototype.createVisual=function(){this.visual=at.createGroup(),this.bgRectangle=at.createRect(1,1,[["fill","transparent"]]),this.visual.appendChild(this.bgRectangle),this.textElement=at.createText([["fill",this.color],["font-family",this.fontFamily],["font-size","16px"],["x","0"],["y","0"]]),this.textElement.transform.baseVal.appendItem(at.createTransform()),this.textElement.transform.baseVal.appendItem(at.createTransform()),this.visual.appendChild(this.textElement),this.addMarkerVisualToContainer(this.visual),this.renderText()},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.isMoved=!1,this.pointerDownPoint=we,this.pointerDownTimestamp=Date.now(),this.state==="new"&&(this.createVisual(),this.moveVisual(we),this._state="creating")},Pe.prototype.renderText=function(){var we=this;if(this.textElement){for(;this.textElement.lastChild;)this.textElement.removeChild(this.textElement.lastChild);this.text.split(/\r\n|[\n\v\f\r\x85\u2028\u2029]/).forEach(function(je){we.textElement.appendChild(at.createTSpan(je.trim()===""?" ":je.trim(),[["x","0"],["dy","1.2em"]]))}),setTimeout(this.sizeText,10)}},Pe.prototype.getTextScale=function(){var we=this.textElement.getBBox(),je=1;if(we.width>0&&we.height>0){var Ke=(1*this.width-this.width*this.padding*2/100)/we.width,Te=(1*this.height-this.height*this.padding*2/100)/we.height;je=Math.min(Ke,Te)}return je},Pe.prototype.getTextPosition=function(we){var je=this.textElement.getBBox(),Ke=0,Te=0;return je.width>0&&je.height>0&&(Ke=(this.width-je.width*we)/2,Te=this.height/2-je.height*we/2),{x:Ke,y:Te}},Pe.prototype.sizeText=function(){var we=this.textElement.getBBox(),je=this.getTextScale(),Ke=this.getTextPosition(je);Ke.y-=we.y*je,navigator.userAgent.indexOf("Edge/")>-1?this.textElement.style.transform="translate("+Ke.x+"px, "+Ke.y+"px) scale("+je+", "+je+")":(this.textElement.transform.baseVal.getItem(0).setTranslate(Ke.x,Ke.y),this.textElement.transform.baseVal.getItem(1).setScale(je,je))},Pe.prototype.manipulate=function(we){We.prototype.manipulate.call(this,we),this.pointerDownPoint!==void 0&&(this.isMoved=Math.abs(we.x-this.pointerDownPoint.x)>5||Math.abs(we.y-this.pointerDownPoint.y)>5)},Pe.prototype.resize=function(we){We.prototype.resize.call(this,we),this.isMoved=!0,this.setSize(),this.sizeText()},Pe.prototype.setSize=function(){We.prototype.setSize.call(this),this.visual&&this.bgRectangle&&(at.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]]),at.setAttributes(this.bgRectangle,[["width",this.width.toString()],["height",this.height.toString()]]))},Pe.prototype.pointerUp=function(we){var je=this.state;je==="creating"&&(this._suppressMarkerCreateEvent=!0),We.prototype.pointerUp.call(this,we),this.setSize(),(je==="creating"||!this.isMoved&&Date.now()-this.pointerDownTimestamp>500)&&this.showTextEditor(),this.pointerDownPoint=void 0},Pe.prototype.showTextEditor=function(){var we=this;this._state="edit",this.overlayContainer.innerHTML="",this.textEditDiv=document.createElement("div"),this.textEditDiv.style.flexGrow="2",this.textEditDiv.style.alignItems="center",this.textEditDiv.style.justifyContent="center",this.textEditDiv.style.pointerEvents="auto",this.textEditDiv.style.overflow="hidden",this.textEditor=document.createElement("div"),this.textEditor.style.position="absolute",this.textEditor.style.fontFamily=this.fontFamily,this.textEditor.style.lineHeight="1em",this.textEditor.innerText=this.text,this.textEditor.contentEditable="true",this.textEditor.style.color=this.color,this.textEditor.style.whiteSpace="pre",this.positionTextEditor(),this.textEditor.addEventListener("pointerup",function(je){je.stopPropagation()}),this.textEditor.addEventListener("input",function(){for(var je=Number.parseFloat(we.textEditor.style.fontSize);we.textEditor.clientWidth>=Number.parseInt(we.textEditor.style.maxWidth)&&je>.9;)je-=.1,we.textEditor.style.fontSize=Math.max(je,.9)+"em"}),this.textEditor.addEventListener("keyup",function(je){je.cancelBubble=!0}),this.textEditor.addEventListener("paste",function(je){if(je.clipboardData){var Ke=je.clipboardData.getData("text"),Te=window.getSelection();if(!Te.rangeCount)return!1;Te.deleteFromDocument(),Te.getRangeAt(0).insertNode(document.createTextNode(Ke)),je.preventDefault()}}),this.textEditDiv.addEventListener("pointerup",function(){we.textEditDivClicked(we.textEditor.innerText)}),this.textEditDiv.appendChild(this.textEditor),this.overlayContainer.appendChild(this.textEditDiv),this.hideVisual(),this.textEditor.focus(),document.execCommand("selectAll")},Pe.prototype.positionTextEditor=function(){if(this.state==="edit")if(this.textEditor===void 0)this.showTextEditor();else{this.textElement.style.display="";var we=this.getTextScale(),je=this.rotatePoint({x:this.left+this.width/2,y:this.top+this.height/2}),Ke=this.textElement.getBBox(),Te={x:Ke.width*we,y:Ke.height*we};je.x-=Te.x/2,je.y-=Te.y/2,this.textEditor.style.top=je.y+"px",this.textEditor.style.left=je.x+"px",this.textEditor.style.maxWidth=this.overlayContainer.offsetWidth-je.x+"px",this.textEditor.style.fontSize=Math.max(16*we,12)+"px",this.textElement.style.display="none"}},Pe.prototype.textEditDivClicked=function(we){this.text=we.trim(),this.overlayContainer.innerHTML="",this.renderText(),this.showVisual(),this._suppressMarkerCreateEvent&&(this._suppressMarkerCreateEvent=!1,this.onMarkerCreated&&this.onMarkerCreated(this)),this.stateChanged()},Pe.prototype.select=function(){We.prototype.select.call(this),this.state==="edit"&&this.textEditDivClicked(this.textEditor.innerText)},Pe.prototype.deselect=function(){this.state==="edit"&&this.textEditDivClicked(this.textEditor.innerText),We.prototype.deselect.call(this)},Pe.prototype.dblClick=function(we,je){We.prototype.dblClick.call(this,we,je),this.showTextEditor()},Pe.prototype.setColor=function(we){this.textElement&&at.setAttributes(this.textElement,[["fill",we]]),this.color=we,this.textEditor&&(this.textEditor.style.color=this.color),this.colorChanged(we)},Pe.prototype.setFont=function(we){this.textElement&&at.setAttributes(this.textElement,[["font-family",we]]),this.fontFamily=we,this.textEditor&&(this.textEditor.style.fontFamily=this.fontFamily),this.renderText(),this.stateChanged()},Pe.prototype.hideVisual=function(){this.textElement.style.display="none",this.hideControlBox()},Pe.prototype.showVisual=function(){this.state==="edit"&&(this._state="select"),this.textElement.style.display="",this.showControlBox()},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.colorPanel,this.fontFamilyPanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({color:this.color,fontFamily:this.fontFamily,padding:this.padding,text:this.text},We.prototype.getState.call(this));return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){var je=we;this.color=je.color,this.fontFamily=je.fontFamily,this.padding=je.padding,this.text=je.text,this.createVisual(),We.prototype.restoreState.call(this,we),this.setSize()},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je),this.setSize(),this.sizeText(),this.positionTextEditor()},Pe.typeName="TextMarker",Pe.title="Text marker",Pe.icon='',Pe}(ln),_t=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.color="transparent",Te.lineWidth=3,Te.drawing=!1,Te.pixelRatio=1,Te.color=Ke.defaultColor,Te.lineWidth=Ke.defaultStrokeWidth,Te.pixelRatio=Ke.freehandPixelRatio,Te.setColor=Te.setColor.bind(Te),Te.addCanvas=Te.addCanvas.bind(Te),Te.finishCreation=Te.finishCreation.bind(Te),Te.setLineWidth=Te.setLineWidth.bind(Te),Te.colorPanel=new gt("Color",Ke.defaultColorSet,Ke.defaultColor),Te.colorPanel.onColorChanged=Te.setColor,Te.lineWidthPanel=new Nn("Line width",Ke.defaultStrokeWidths,Ke.defaultStrokeWidth),Te.lineWidthPanel.onWidthChanged=Te.setLineWidth,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.visual&&we!==this.drawingImage)},Pe.prototype.createVisual=function(){this.visual=at.createGroup(),this.drawingImage=at.createImage(),this.visual.appendChild(this.drawingImage);var we=at.createTransform();this.visual.transform.baseVal.appendItem(we),this.addMarkerVisualToContainer(this.visual)},Pe.prototype.pointerDown=function(we,je){this.state==="new"&&(this.addCanvas(),this.createVisual(),this._state="creating"),this.state==="creating"?(this.canvasContext.strokeStyle=this.color,this.canvasContext.lineWidth=this.lineWidth,this.canvasContext.beginPath(),this.canvasContext.moveTo(we.x,we.y),this.drawing=!0):We.prototype.pointerDown.call(this,we,je)},Pe.prototype.manipulate=function(we){this.state==="creating"?this.drawing&&(this.canvasContext.lineTo(we.x,we.y),this.canvasContext.stroke()):We.prototype.manipulate.call(this,we)},Pe.prototype.resize=function(we){We.prototype.resize.call(this,we),at.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]]),at.setAttributes(this.drawingImage,[["width",this.width.toString()],["height",this.height.toString()]])},Pe.prototype.pointerUp=function(we){this._state==="creating"?this.drawing&&(this.canvasContext.closePath(),this.drawing=!1,this.globalSettings.newFreehandMarkerOnPointerUp&&this.finishCreation()):We.prototype.pointerUp.call(this,we)},Pe.prototype.addCanvas=function(){this.overlayContainer.innerHTML="",this.canvasElement=document.createElement("canvas"),this.canvasElement.width=this.overlayContainer.clientWidth*this.pixelRatio,this.canvasElement.height=this.overlayContainer.clientHeight*this.pixelRatio,this.canvasContext=this.canvasElement.getContext("2d"),this.canvasContext.scale(this.pixelRatio,this.pixelRatio),this.overlayContainer.appendChild(this.canvasElement)},Pe.prototype.select=function(){this.state==="creating"&&this.finishCreation(),We.prototype.select.call(this)},Pe.prototype.deselect=function(){this.state==="creating"&&this.finishCreation(),We.prototype.deselect.call(this)},Pe.prototype.finishCreation=function(){for(var we=this.canvasContext.getImageData(0,0,this.canvasElement.width,this.canvasElement.height),je=[this.canvasElement.width+1,this.canvasElement.height+1,-1,-1],Ke=je[0],Te=je[1],fn=je[2],Wn=je[3],Rn=!1,hs=0;hs0&&(Rn=!0,hsWn&&(Wn=hs),Ji>fn&&(fn=Ji));if(Rn){this.left=Ke/this.pixelRatio,this.top=Te/this.pixelRatio,this.width=(fn-Ke)/this.pixelRatio,this.height=(Wn-Te)/this.pixelRatio;var Ni=document.createElement("canvas");Ni.width=fn-Ke,Ni.height=Wn-Te,Ni.getContext("2d").putImageData(this.canvasContext.getImageData(Ke,Te,fn-Ke,Wn-Te),0,0),this.drawingImgUrl=Ni.toDataURL("image/png"),this.setDrawingImage(),this._state="select",this.onMarkerCreated&&this.onMarkerCreated(this)}this.overlayContainer.innerHTML=""},Pe.prototype.setDrawingImage=function(){at.setAttributes(this.drawingImage,[["width",this.width.toString()],["height",this.height.toString()]]),at.setAttributes(this.drawingImage,[["href",this.drawingImgUrl]]),this.moveVisual({x:this.left,y:this.top})},Pe.prototype.setColor=function(we){this.color=we,this.colorChanged(we)},Pe.prototype.setLineWidth=function(we){this.lineWidth=we},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return this.state==="new"||this.state==="creating"?[this.colorPanel,this.lineWidthPanel]:[]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({drawingImgUrl:this.drawingImgUrl},We.prototype.getState.call(this));return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){this.createVisual(),We.prototype.restoreState.call(this,we),this.drawingImgUrl=we.drawingImgUrl,this.setDrawingImage()},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je),this.setDrawingImage()},Pe.typeName="FreehandMarker",Pe.title="Freehand marker",Pe.icon='',Pe}(ln),Zn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,Ke||'')||this;return Te.typeBoxes=[],Te.currentType=je,Te.setCurrentType=Te.setCurrentType.bind(Te),Te}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");je.style.display="flex",je.style.overflow="hidden",je.style.flexGrow="2";for(var Ke=function(Wn){var Rn="both";switch(Wn){case 0:Rn="both";break;case 1:Rn="start";break;case 2:Rn="end";break;case 3:Rn="none"}var hs=document.createElement("div");if(hs.style.display="flex",hs.style.flexGrow="2",hs.style.alignItems="center",hs.style.justifyContent="space-between",hs.style.padding="5px",hs.style.borderWidth="2px",hs.style.borderStyle="solid",hs.style.borderColor=Rn===Te.currentType?Te.uiStyleSettings.toolboxAccentColor:"transparent",hs.addEventListener("click",function(){we.setCurrentType(Rn,hs)}),je.appendChild(hs),Rn==="both"||Rn==="start"){var Ji=document.createElement("div");Ji.style.display="flex",Ji.style.alignItems="center",Ji.style.minHeight="20px",Ji.innerHTML=` `,Ji.style.marginLeft="5px",hs.appendChild(Ji)}var Ni=document.createElement("div");Ni.style.display="flex",Ni.style.alignItems="center",Ni.style.minHeight="20px",Ni.style.flexGrow="2";var Ra=document.createElement("hr");if(Ra.style.minWidth="20px",Ra.style.border="0px",Ra.style.borderTop="3px solid "+(Te.uiStyleSettings!==void 0?Te.uiStyleSettings.toolboxColor:"#eeeeee"),Ra.style.flexGrow="2",Ni.appendChild(Ra),hs.appendChild(Ni),Rn==="both"||Rn==="end"){var ws=document.createElement("div");ws.style.display="flex",ws.style.alignItems="center",ws.style.minHeight="20px",ws.innerHTML=` `,ws.style.marginRight="5px",hs.appendChild(ws)}Te.typeBoxes.push(hs)},Te=this,fn=0;fn<4;fn++)Ke(fn);return je},Pe.prototype.setCurrentType=function(we,je){var Ke=this;this.currentType=we,this.typeBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings!==void 0?Ke.uiStyleSettings.toolboxAccentColor:"#3080c3":"transparent"}),this.onArrowTypeChanged&&this.onArrowTypeChanged(this.currentType)},Pe}(xt),Yn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.arrowType="end",Te.arrowBaseHeight=10,Te.arrowBaseWidth=10,Te.getArrowPoints=Te.getArrowPoints.bind(Te),Te.setArrowType=Te.setArrowType.bind(Te),Te.arrowTypePanel=new Zn("Arrow type","end"),Te.arrowTypePanel.onArrowTypeChanged=Te.setArrowType,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.arrow1&&we!==this.arrow2)},Pe.prototype.getArrowPoints=function(we,je){var Ke=this.arrowBaseWidth+2*this.strokeWidth,Te=this.arrowBaseHeight+2*this.strokeWidth;return we-Ke/2+","+(je+Te/2)+" "+we+","+(je-Te/2)+" "+(we+Ke/2)+","+(je+Te/2)},Pe.prototype.createTips=function(){this.arrow1=at.createPolygon(this.getArrowPoints(this.x1,this.y1),[["fill",this.strokeColor]]),this.arrow1.transform.baseVal.appendItem(at.createTransform()),this.visual.appendChild(this.arrow1),this.arrow2=at.createPolygon(this.getArrowPoints(this.x2,this.y2),[["fill",this.strokeColor]]),this.arrow2.transform.baseVal.appendItem(at.createTransform()),this.visual.appendChild(this.arrow2)},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.state==="creating"&&this.createTips()},Pe.prototype.adjustVisual=function(){if(We.prototype.adjustVisual.call(this),this.arrow1&&this.arrow2){this.arrow1.style.display=this.arrowType==="both"||this.arrowType==="start"?"":"none",this.arrow2.style.display=this.arrowType==="both"||this.arrowType==="end"?"":"none",at.setAttributes(this.arrow1,[["points",this.getArrowPoints(this.x1,this.y1)],["fill",this.strokeColor]]),at.setAttributes(this.arrow2,[["points",this.getArrowPoints(this.x2,this.y2)],["fill",this.strokeColor]]);var we=0;Math.abs(this.x1-this.x2)>.1&&(we=180*Math.atan((this.y2-this.y1)/(this.x2-this.x1))/Math.PI+90*Math.sign(this.x1-this.x2));var je=this.arrow1.transform.baseVal.getItem(0);je.setRotate(we,this.x1,this.y1),this.arrow1.transform.baseVal.replaceItem(je,0);var Ke=this.arrow2.transform.baseVal.getItem(0);Ke.setRotate(we+180,this.x2,this.y2),this.arrow2.transform.baseVal.replaceItem(Ke,0)}},Pe.prototype.setArrowType=function(we){this.arrowType=we,this.adjustVisual(),this.stateChanged()},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel,this.arrowTypePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({arrowType:this.arrowType},We.prototype.getState.call(this));return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we);var je=we;this.arrowType=je.arrowType,this.createTips(),this.adjustVisual()},Pe.typeName="ArrowMarker",Pe.title="Arrow marker",Pe.icon='',Pe}(Cn),gn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.fillColor=Ke.defaultFillColor,Te.strokeWidth=0,Te.fillPanel=new gt("Color",Ke.defaultColorSet,Ke.defaultFillColor),Te.fillPanel.onColorChanged=Te.setFillColor,Te}return st(Pe,We),Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.fillPanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=We.prototype.getState.call(this);return we.typeName=Pe.typeName,we},Pe.typeName="CoverMarker",Pe.title="Cover marker",Pe.icon='',Pe}(jn),kn=function(We){function Pe(we,je,Ke,Te){var fn=We.call(this,we,Te||'')||this;return fn.opacities=[],fn.opacityBoxes=[],fn.opacities=je,fn.currentOpacity=Ke,fn.setCurrentOpacity=fn.setCurrentOpacity.bind(fn),fn}return st(Pe,We),Pe.prototype.getUi=function(){var we=this,je=document.createElement("div");return je.style.display="flex",je.style.overflow="hidden",je.style.flexGrow="2",je.style.justifyContent="space-between",this.opacities.forEach(function(Ke){var Te=document.createElement("div");Te.style.display="flex",Te.style.alignItems="center",Te.style.justifyContent="center",Te.style.padding="5px",Te.style.borderWidth="2px",Te.style.borderStyle="solid",Te.style.borderColor=Ke===we.currentOpacity?we.uiStyleSettings.toolboxAccentColor:"transparent",Te.addEventListener("click",function(){we.setCurrentOpacity(Ke,Te)}),je.appendChild(Te);var fn=document.createElement("div");fn.innerText=100*Ke+"%",Te.appendChild(fn),we.opacityBoxes.push(Te)}),je},Pe.prototype.setCurrentOpacity=function(we,je){var Ke=this;this.currentOpacity=we,this.opacityBoxes.forEach(function(Te){Te.style.borderColor=Te===je?Ke.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onOpacityChanged&&this.onOpacityChanged(this.currentOpacity)},Pe}(xt),Rr=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.setOpacity=Te.setOpacity.bind(Te),Te.fillColor=Ke.defaultHighlightColor,Te.strokeWidth=0,Te.opacity=Ke.defaultHighlightOpacity,Te.fillPanel=new gt("Color",Ke.defaultColorSet,Te.fillColor),Te.fillPanel.onColorChanged=Te.setFillColor,Te.opacityPanel=new kn("Opacity",Ke.defaultOpacitySteps,Te.opacity),Te.opacityPanel.onOpacityChanged=Te.setOpacity,Te}return st(Pe,We),Pe.prototype.setOpacity=function(we){this.opacity=we,this.visual&&at.setAttributes(this.visual,[["opacity",this.opacity.toString()]]),this.stateChanged()},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.fillPanel,this.opacityPanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=We.prototype.getState.call(this);return we.typeName=Pe.typeName,we},Pe.typeName="HighlightMarker",Pe.title="Highlight marker",Pe.icon='',Pe}(gn),mt='',qe='',er=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.bgColor="transparent",Te.tipPosition={x:0,y:0},Te.tipBase1Position={x:0,y:0},Te.tipBase2Position={x:0,y:0},Te.tipMoving=!1,Te.color=Ke.defaultStrokeColor,Te.bgColor=Ke.defaultFillColor,Te.fontFamily=Ke.defaultFontFamily,Te.defaultSize={x:100,y:30},Te.setBgColor=Te.setBgColor.bind(Te),Te.getTipPoints=Te.getTipPoints.bind(Te),Te.positionTip=Te.positionTip.bind(Te),Te.setTipPoints=Te.setTipPoints.bind(Te),Te.colorPanel=new gt("Text color",Ke.defaultColorSet,Te.color,mt),Te.colorPanel.onColorChanged=Te.setColor,Te.bgColorPanel=new gt("Fill color",Ke.defaultColorSet,Te.bgColor,qe),Te.bgColorPanel.onColorChanged=Te.setBgColor,Te.fontFamilyPanel=new Qt("Font",Ke.defaultFontFamilies,Ke.defaultFontFamily),Te.fontFamilyPanel.onFontChanged=Te.setFont,Te.tipGrip=new It,Te.tipGrip.visual.transform.baseVal.appendItem(at.createTransform()),Te.controlBox.appendChild(Te.tipGrip.visual),Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return We.prototype.ownsTarget.call(this,we)||this.tipGrip.ownsTarget(we)||this.tip===we},Pe.prototype.createTip=function(){at.setAttributes(this.bgRectangle,[["fill",this.bgColor],["rx","10px"]]),this.tip=at.createPolygon(this.getTipPoints(),[["fill",this.bgColor]]),this.visual.appendChild(this.tip)},Pe.prototype.pointerDown=function(we,je){this.state==="new"&&We.prototype.pointerDown.call(this,we,je),this.state==="creating"?this.createTip():this.tipGrip.ownsTarget(je)?(this.manipulationStartLeft=this.left,this.manipulationStartTop=this.top,this.tipMoving=!0):We.prototype.pointerDown.call(this,we,je)},Pe.prototype.pointerUp=function(we){if(this.tipMoving)this.tipMoving=!1,this.isMoved=!0,We.prototype.pointerUp.call(this,we);else{var je=this.state==="creating";We.prototype.pointerUp.call(this,we),this.setTipPoints(je),this.positionTip()}},Pe.prototype.manipulate=function(we){if(this.tipMoving){var je=this.unrotatePoint(we);this.tipPosition={x:je.x-this.manipulationStartLeft,y:je.y-this.manipulationStartTop},this.positionTip()}else We.prototype.manipulate.call(this,we)},Pe.prototype.setBgColor=function(we){this.bgRectangle&&this.tip&&(at.setAttributes(this.bgRectangle,[["fill",we]]),at.setAttributes(this.tip,[["fill",we]])),this.bgColor=we,this.fillColorChanged(we)},Pe.prototype.getTipPoints=function(){return this.setTipPoints(this.state==="creating"),this.tipBase1Position.x+","+this.tipBase1Position.y+" "+this.tipBase2Position.x+","+this.tipBase2Position.y+" "+this.tipPosition.x+","+this.tipPosition.y},Pe.prototype.setTipPoints=function(we){we===void 0&&(we=!1);var je=Math.min(this.height/2,15),Ke=this.height/5;we&&(this.tipPosition={x:je+Ke/2,y:this.height+20});var Te=Math.atan(this.height/2/(this.width/2));this.tipPosition.x=this.width/2&&this.tipPosition.y=this.width/2&&this.tipPosition.y>=this.height/2?Te.1)){var we=180*Math.atan((this.y2-this.y1)/(this.x2-this.x1))/Math.PI+90*Math.sign(this.x1-this.x2),je=this.tip1.transform.baseVal.getItem(0);je.setRotate(we,this.x1,this.y1),this.tip1.transform.baseVal.replaceItem(je,0);var Ke=this.tip2.transform.baseVal.getItem(0);Ke.setRotate(we+180,this.x2,this.y2),this.tip2.transform.baseVal.replaceItem(Ke,0)}},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=We.prototype.getState.call(this);return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we),this.createTips(),this.adjustVisual()},Pe.typeName="MeasurementMarker",Pe.title="Measurement marker",Pe.icon='',Pe}(Cn),$t=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.strokePanel.colors=Ke.defaultColorSet,Te.fillColor="transparent",Te}return st(Pe,We),Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=We.prototype.getState.call(this);return we.typeName=Pe.typeName,we},Pe.typeName="EllipseFrameMarker",Pe.title="Ellipse frame marker",Pe.icon='',Pe}(yi),Jt=function(){function We(){this.undoStack=[],this.redoStack=[]}return Object.defineProperty(We.prototype,"isUndoPossible",{get:function(){return this.undoStack.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"isRedoPossible",{get:function(){return this.redoStack.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"undoStepCount",{get:function(){return this.undoStack.length},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"redoStepCount",{get:function(){return this.redoStack.length},enumerable:!1,configurable:!0}),We.prototype.addUndoStep=function(Pe){this.undoStack.length!==0&&JSON.stringify(this.undoStack[this.undoStack.length-1])===JSON.stringify(Pe)||(this.undoStack.push(Pe),JSON.stringify(this.lastRedoStep)!==JSON.stringify(Pe)&&this.redoStack.splice(0,this.redoStack.length))},We.prototype.replaceLastUndoStep=function(Pe){this.undoStack.length>0&&(this.undoStack[this.undoStack.length-1]=Pe)},We.prototype.getLastUndoStep=function(){return this.undoStack.length>0?this.undoStack[this.undoStack.length-1]:void 0},We.prototype.undo=function(){if(this.undoStack.length>1){var Pe=this.undoStack.pop();return Pe!==void 0&&this.redoStack.push(Pe),this.undoStack.length>0?this.undoStack[this.undoStack.length-1]:void 0}},We.prototype.redo=function(){return this.lastRedoStep=this.redoStack.pop(),this.lastRedoStep},We}(),hn=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.strokeColor="transparent",Te.strokeWidth=0,Te.strokeDasharray="",Te.curveX=0,Te.curveY=0,Te.manipulationStartCurveX=0,Te.manipulationStartCurveY=0,Te.setStrokeColor=Te.setStrokeColor.bind(Te),Te.setStrokeWidth=Te.setStrokeWidth.bind(Te),Te.setStrokeDasharray=Te.setStrokeDasharray.bind(Te),Te.positionGrips=Te.positionGrips.bind(Te),Te.addControlGrips=Te.addControlGrips.bind(Te),Te.adjustVisual=Te.adjustVisual.bind(Te),Te.setupControlBox=Te.setupControlBox.bind(Te),Te.resize=Te.resize.bind(Te),Te.strokeColor=Ke.defaultColor,Te.strokeWidth=Ke.defaultStrokeWidth,Te.strokeDasharray=Ke.defaultStrokeDasharray,Te.strokePanel=new gt("Line color",Ke.defaultColorSet,Ke.defaultColor),Te.strokePanel.onColorChanged=Te.setStrokeColor,Te.strokeWidthPanel=new Nn("Line width",Ke.defaultStrokeWidths,Ke.defaultStrokeWidth),Te.strokeWidthPanel.onWidthChanged=Te.setStrokeWidth,Te.strokeStylePanel=new pn("Line style",Ke.defaultStrokeDasharrays,Ke.defaultStrokeDasharray),Te.strokeStylePanel.onStyleChanged=Te.setStrokeDasharray,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.visual&&we!==this.selectorCurve&&we!==this.visibleCurve&&!this.curveGrip.ownsTarget(we))},Pe.prototype.getPathD=function(){return"M "+this.x1+" "+this.y1+" Q "+this.curveX+" "+this.curveY+", "+this.x2+" "+this.y2},Pe.prototype.createVisual=function(){this.visual=at.createGroup(),this.selectorCurve=at.createPath(this.getPathD(),[["stroke","transparent"],["stroke-width",(this.strokeWidth+10).toString()],["fill","transparent"]]),this.visibleCurve=at.createPath(this.getPathD(),[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["fill","transparent"]]),this.visual.appendChild(this.selectorCurve),this.visual.appendChild(this.visibleCurve),this.addMarkerVisualToContainer(this.visual)},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.manipulationStartCurveX=this.curveX,this.manipulationStartCurveY=this.curveY,this.state==="new"&&(this.curveX=we.x,this.curveY=we.y),this.state==="new"?(this.createVisual(),this.adjustVisual(),this._state="creating"):this.curveGrip.ownsTarget(je)&&(this.activeGrip=this.curveGrip,this._state="resize")},Pe.prototype.adjustVisual=function(){this.selectorCurve&&this.visibleCurve&&(this.selectorCurve.setAttribute("d",this.getPathD()),this.visibleCurve.setAttribute("d",this.getPathD()),at.setAttributes(this.visibleCurve,[["stroke",this.strokeColor]]),at.setAttributes(this.visibleCurve,[["stroke-width",this.strokeWidth.toString()]]),at.setAttributes(this.visibleCurve,[["stroke-dasharray",this.strokeDasharray.toString()]]))},Pe.prototype.setupControlBox=function(){We.prototype.setupControlBox.call(this),this.curveControlLine1=at.createLine(this.x1,this.y1,this.curveX,this.curveY,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.curveControlLine2=at.createLine(this.x2,this.y2,this.curveX,this.curveY,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.controlBox.insertBefore(this.curveControlLine1,this.controlBox.firstChild),this.controlBox.insertBefore(this.curveControlLine2,this.controlBox.firstChild)},Pe.prototype.addControlGrips=function(){this.curveGrip=this.createGrip(),this.curveX=0,this.curveY=0,We.prototype.addControlGrips.call(this)},Pe.prototype.positionGrips=function(){We.prototype.positionGrips.call(this);var we=this.curveGrip.GRIP_SIZE;this.positionGrip(this.curveGrip.visual,this.curveX-we/2,this.curveY-we/2),this.curveControlLine1&&this.curveControlLine2&&(this.curveControlLine1.setAttribute("x1",this.x1.toString()),this.curveControlLine1.setAttribute("y1",this.y1.toString()),this.curveControlLine1.setAttribute("x2",this.curveX.toString()),this.curveControlLine1.setAttribute("y2",this.curveY.toString()),this.curveControlLine2.setAttribute("x1",this.x2.toString()),this.curveControlLine2.setAttribute("y1",this.y2.toString()),this.curveControlLine2.setAttribute("x2",this.curveX.toString()),this.curveControlLine2.setAttribute("y2",this.curveY.toString()))},Pe.prototype.manipulate=function(we){this.state==="move"&&(this.curveX=this.manipulationStartCurveX+we.x-this.manipulationStartX,this.curveY=this.manipulationStartCurveY+we.y-this.manipulationStartY),We.prototype.manipulate.call(this,we)},Pe.prototype.resize=function(we){this.activeGrip===this.curveGrip&&(this.curveX=we.x,this.curveY=we.y),We.prototype.resize.call(this,we),this.state==="creating"&&(this.curveX=this.x1+(this.x2-this.x1)/2,this.curveY=this.y1+(this.y2-this.y1)/2)},Pe.prototype.setStrokeColor=function(we){this.strokeColor=we,this.adjustVisual(),this.colorChanged(we)},Pe.prototype.setStrokeWidth=function(we){this.strokeWidth=we,this.adjustVisual()},Pe.prototype.setStrokeDasharray=function(we){this.strokeDasharray=we,this.adjustVisual()},Pe.prototype.scale=function(we,je){this.curveX=this.curveX*we,this.curveY=this.curveY*je,We.prototype.scale.call(this,we,je)},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,curveX:this.curveX,curveY:this.curveY},We.prototype.getState.call(this));return we.typeName=Pe.typeName,we},Pe.prototype.restoreState=function(we){We.prototype.restoreState.call(this,we);var je=we;this.strokeColor=je.strokeColor,this.strokeWidth=je.strokeWidth,this.strokeDasharray=je.strokeDasharray,this.curveX=je.curveX,this.curveY=je.curveY,this.createVisual(),this.adjustVisual()},Pe.typeName="CurveMarker",Pe.title="Curve marker",Pe.icon='',Pe}(Zt),_n=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,je,Ke)||this;return Te.fillColor="transparent",Te.strokeColor="transparent",Te.strokeWidth=0,Te.strokeDasharray="",Te.textColor="transparent",Te.fontSize="1rem",Te.isMoved=!1,Te.captionText="Caption",Te.PADDING=5,Te.captionBoxWidth=0,Te.captionBoxHeight=0,Te.strokeColor=Ke.defaultColor,Te.strokeWidth=Ke.defaultStrokeWidth,Te.strokeDasharray=Ke.defaultStrokeDasharray,Te.fillColor=Ke.defaultFillColor,Te.textColor=Ke.defaultStrokeColor,Te.fontFamily=Ke.defaultFontFamily,Te.fontSize=Ke.defaultCaptionFontSize,Te.captionText=Ke.defaultCaptionText,Te.setStrokeColor=Te.setStrokeColor.bind(Te),Te.setFillColor=Te.setFillColor.bind(Te),Te.setStrokeWidth=Te.setStrokeWidth.bind(Te),Te.setStrokeDasharray=Te.setStrokeDasharray.bind(Te),Te.createVisual=Te.createVisual.bind(Te),Te.sizeCaption=Te.sizeCaption.bind(Te),Te.setCaptionText=Te.setCaptionText.bind(Te),Te.showTextEditor=Te.showTextEditor.bind(Te),Te.positionTextEditor=Te.positionTextEditor.bind(Te),Te.finishTextEditing=Te.finishTextEditing.bind(Te),Te.setFont=Te.setFont.bind(Te),Te.setTextColor=Te.setTextColor.bind(Te),Te.strokePanel=new gt("Line color",$e(Ke.defaultColorSet,["transparent"]),Te.strokeColor),Te.strokePanel.onColorChanged=Te.setStrokeColor,Te.fillPanel=new gt("Fill color",$e(Ke.defaultColorSet,["transparent"]),Te.fillColor,qe),Te.fillPanel.onColorChanged=Te.setFillColor,Te.strokeWidthPanel=new Nn("Line width",Ke.defaultStrokeWidths,Ke.defaultStrokeWidth),Te.strokeWidthPanel.onWidthChanged=Te.setStrokeWidth,Te.strokeStylePanel=new pn("Line style",Ke.defaultStrokeDasharrays,Ke.defaultStrokeDasharray),Te.strokeStylePanel.onStyleChanged=Te.setStrokeDasharray,Te.fontFamilyPanel=new Qt("Font",Ke.defaultFontFamilies,Ke.defaultFontFamily),Te.fontFamilyPanel.onFontChanged=Te.setFont,Te.textColorPanel=new gt("Text color",Ke.defaultColorSet,Te.textColor,mt),Te.textColorPanel.onColorChanged=Te.setTextColor,Te}return st(Pe,We),Pe.prototype.ownsTarget=function(we){return!(!We.prototype.ownsTarget.call(this,we)&&we!==this.visual&&we!==this.frame&&we!==this.captionBg&&we!==this.captionElement)},Pe.prototype.createVisual=function(){this.visual=at.createGroup(),this.addMarkerVisualToContainer(this.visual),this.captionBg=at.createRect(1,1,[["fill",this.fillColor]]),this.visual.appendChild(this.captionBg),this.captionElement=at.createText([["fill",this.textColor],["font-family",this.fontFamily]]),this.captionElement.style.fontSize=this.fontSize,this.captionElement.style.textAnchor="start",this.captionElement.style.dominantBaseline="text-before-edge",this.captionElement.textContent=this.captionText,this.visual.appendChild(this.captionElement),this.frame=at.createRect(this.width,this.height,[["fill","transparent"],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["stroke-dasharray",this.strokeDasharray]]),this.visual.appendChild(this.frame),this.sizeCaption()},Pe.prototype.setCaptionText=function(we){this.captionText=we,this.captionElement.textContent=this.captionText,this.sizeCaption()},Pe.prototype.pointerDown=function(we,je){We.prototype.pointerDown.call(this,we,je),this.isMoved=!1,this.pointerDownPoint=we,this.pointerDownTimestamp=Date.now(),this.state==="new"&&(this.createVisual(),this.moveVisual(we),this._state="creating")},Pe.prototype.manipulate=function(we){We.prototype.manipulate.call(this,we),this.pointerDownPoint!==void 0&&(this.isMoved=Math.abs(we.x-this.pointerDownPoint.x)>5||Math.abs(we.y-this.pointerDownPoint.y)>5)},Pe.prototype.resize=function(we){We.prototype.resize.call(this,we),this.setSize()},Pe.prototype.sizeCaption=function(){var we=this.captionElement.getBBox();this.captionText.trim()!==""?(this.captionBoxWidth=we.width+2*this.PADDING,this.captionBoxHeight=we.height+2*this.PADDING):(this.captionBoxWidth=0,this.captionBoxHeight=0),at.setAttributes(this.captionBg,[["width",this.captionBoxWidth.toString()],["height",this.captionBoxHeight.toString()],["clip-path","path('M0,0 H"+this.width+" V"+this.height+" H"+-this.width+" Z')"]]),at.setAttributes(this.captionElement,[["x",this.PADDING.toString()],["y",this.PADDING.toString()],["clip-path","path('M0,0 H"+(this.width-this.PADDING)+" V"+this.height+" H"+(-this.width-this.PADDING)+" Z')"]])},Pe.prototype.showTextEditor=function(){var we=this;this._state="edit",this.overlayContainer.innerHTML="",this.textEditDiv=document.createElement("div"),this.textEditDiv.style.flexGrow="2",this.textEditDiv.style.alignItems="center",this.textEditDiv.style.justifyContent="center",this.textEditDiv.style.pointerEvents="auto",this.textEditDiv.style.overflow="hidden",this.textEditBox=document.createElement("input"),this.textEditBox.style.position="absolute",this.textEditBox.style.width=this.width+"px",this.captionBoxHeight>0&&(this.textEditBox.style.height=this.captionBoxHeight+"px"),this.textEditBox.style.fontSize=this.fontSize,this.textEditBox.style.fontFamily=this.fontFamily,this.textEditBox.style.backgroundColor=this.fillColor,this.textEditBox.style.color=this.textColor,this.textEditBox.style.borderWidth="0",this.textEditBox.setAttribute("value",this.captionText),this.textEditBox.select(),this.textEditDiv.appendChild(this.textEditBox),this.overlayContainer.appendChild(this.textEditDiv),this.textEditBox.addEventListener("pointerup",function(je){je.stopPropagation()}),this.textEditBox.addEventListener("keypress",function(je){je.key==="Enter"&&we.finishTextEditing(we.textEditBox.value)}),this.textEditBox.addEventListener("keyup",function(je){je.cancelBubble=!0}),this.textEditBox.addEventListener("blur",function(){we.finishTextEditing(we.textEditBox.value)}),this.textEditDiv.addEventListener("pointerup",function(){we.finishTextEditing(we.textEditBox.value)}),this.positionTextEditor(),this.textEditBox.focus()},Pe.prototype.positionTextEditor=function(){this.state==="edit"&&(this.textEditBox===void 0?this.showTextEditor():(this.textEditBox.style.left=this.left+"px",this.textEditBox.style.top=this.top+"px",this.textEditBox.style.transform="rotate("+this.rotationAngle+"deg)",this.textEditBox.style.transformOrigin=this.width/2+"px "+this.height/2+"px"))},Pe.prototype.finishTextEditing=function(we){this.setCaptionText(we.trim()),this.overlayContainer.innerHTML="",this.stateChanged()},Pe.prototype.setFont=function(we){this.captionElement&&at.setAttributes(this.captionElement,[["font-family",we]]),this.fontFamily=we,this.textEditBox&&(this.textEditBox.style.fontFamily=this.fontFamily),this.sizeCaption(),this.stateChanged()},Pe.prototype.setTextColor=function(we){this.captionElement&&at.setAttributes(this.captionElement,[["fill",we]]),this.textColor=we,this.textEditBox&&(this.textEditBox.style.color=this.textColor),this.stateChanged()},Pe.prototype.setSize=function(){We.prototype.setSize.call(this),at.setAttributes(this.frame,[["width",this.width.toString()],["height",this.height.toString()]]),this.sizeCaption()},Pe.prototype.pointerUp=function(we){We.prototype.pointerUp.call(this,we),this.setSize(),!this.isMoved&&Date.now()-this.pointerDownTimestamp>500&&this.showTextEditor(),this.pointerDownPoint=void 0},Pe.prototype.dblClick=function(we,je){We.prototype.dblClick.call(this,we,je),this.showTextEditor()},Pe.prototype.setStrokeColor=function(we){this.strokeColor=we,this.frame&&at.setAttributes(this.frame,[["stroke",this.strokeColor]]),this.colorChanged(we),this.stateChanged()},Pe.prototype.setFillColor=function(we){this.fillColor=we,this.captionBg&&at.setAttributes(this.captionBg,[["fill",this.fillColor]]),this.fillColorChanged(we),this.stateChanged()},Pe.prototype.setStrokeWidth=function(we){this.strokeWidth=we,this.frame&&at.setAttributes(this.frame,[["stroke-width",this.strokeWidth.toString()]]),this.stateChanged()},Pe.prototype.setStrokeDasharray=function(we){this.strokeDasharray=we,this.frame&&at.setAttributes(this.frame,[["stroke-dasharray",this.strokeDasharray]]),this.stateChanged()},Object.defineProperty(Pe.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.fillPanel,this.strokeWidthPanel,this.strokeStylePanel,this.fontFamilyPanel,this.textColorPanel]},enumerable:!1,configurable:!0}),Pe.prototype.getState=function(){var we=Object.assign({fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,opacity:1,textColor:this.textColor,fontFamily:this.fontFamily,fontSize:this.fontSize,captionText:this.captionText},We.prototype.getState.call(this));return we.typeName=this.typeName,we},Pe.prototype.restoreState=function(we){var je=we;this.fillColor=je.fillColor,this.strokeColor=je.strokeColor,this.strokeWidth=je.strokeWidth,this.strokeDasharray=je.strokeDasharray,this.textColor=je.textColor,this.fontFamily=je.fontFamily,this.captionText=je.captionText,this.fontSize=je.fontSize,this.createVisual(),We.prototype.restoreState.call(this,we),this.setSize()},Pe.prototype.scale=function(we,je){We.prototype.scale.call(this,we,je),this.setSize()},Pe.typeName="CaptionFrameMarker",Pe.title="Caption frame marker",Pe.icon='',Pe}(ln),xn=function(){function We(Pe,we){we===void 0&&(we=!1),this.cancelable=!1,this._defaultPrevented=!1,this.markerArea=Pe,this.cancelable=we}return Object.defineProperty(We.prototype,"defaultPrevented",{get:function(){return this._defaultPrevented},enumerable:!1,configurable:!0}),We.prototype.preventDefault=function(){this._defaultPrevented=!0},We}(),Yt=function(We){function Pe(we,je,Ke){var Te=We.call(this,we,!1)||this;return Te.dataUrl=je,Te.state=Ke,Te}return st(Pe,We),Pe}(xn),Fn=function(We){function Pe(we,je,Ke){Ke===void 0&&(Ke=!1);var Te=We.call(this,we,Ke)||this;return Te.marker=je,Te}return st(Pe,We),Pe}(xn),qr=function(){function We(){this.render=[],this.beforeclose=[],this.close=[],this.show=[],this.restorestate=[],this.statechange=[],this.markerselect=[],this.markerdeselect=[],this.markercreating=[],this.markercreate=[],this.markerbeforedelete=[],this.markerdelete=[],this.markerchange=[],this.focus=[],this.blur=[]}return We.prototype.addEventListener=function(Pe,we){this[Pe].push(we)},We.prototype.removeEventListener=function(Pe,we){var je=this[Pe].indexOf(we);je>-1&&this[Pe].splice(je,1)},We}(),ts=function(){function We(Pe){this.touchPoints=0,this._availableMarkerTypes=this.DEFAULT_MARKER_TYPES,this.mode="select",this.markers=[],this.isDragging=!1,this.renderEventListeners=[],this.closeEventListeners=[],this.settings=new Gt,this._isOpen=!1,this.undoRedoManager=new Jt,this.renderAtNaturalSize=!1,this.renderImageType="image/png",this.renderMarkersOnly=!1,this.zoomSteps=[1,1.5,2,4],this._zoomLevel=1,this._isResizing=!1,this.prevPanPoint={x:0,y:0},this.eventListeners=new qr,this._silentRenderMode=!1,this._isFocused=!1,this._instanceNo=We.instanceCounter++,this.styles=new He(this.instanceNo),this.uiStyleSettings=this.styles.settings,this.target=Pe,this.targetRoot=document.body,this.width=Pe.clientWidth,this.height=Pe.clientHeight,this.styles.removeStyleSheet(),this.open=this.open.bind(this),this.setTopLeft=this.setTopLeft.bind(this),this.toolbarButtonClicked=this.toolbarButtonClicked.bind(this),this.createNewMarker=this.createNewMarker.bind(this),this.addNewMarker=this.addNewMarker.bind(this),this.markerCreated=this.markerCreated.bind(this),this.setCurrentMarker=this.setCurrentMarker.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOut=this.onPointerOut.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.overrideOverflow=this.overrideOverflow.bind(this),this.restoreOverflow=this.restoreOverflow.bind(this),this.close=this.close.bind(this),this.closeUI=this.closeUI.bind(this),this.addCloseEventListener=this.addCloseEventListener.bind(this),this.removeCloseEventListener=this.removeCloseEventListener.bind(this),this.addRenderEventListener=this.addRenderEventListener.bind(this),this.removeRenderEventListener=this.removeRenderEventListener.bind(this),this.clientToLocalCoordinates=this.clientToLocalCoordinates.bind(this),this.onWindowResize=this.onWindowResize.bind(this),this.deleteSelectedMarker=this.deleteSelectedMarker.bind(this),this.setWindowHeight=this.setWindowHeight.bind(this),this.removeMarker=this.removeMarker.bind(this),this.colorChanged=this.colorChanged.bind(this),this.fillColorChanged=this.fillColorChanged.bind(this),this.onPopupTargetResize=this.onPopupTargetResize.bind(this),this.showNotesEditor=this.showNotesEditor.bind(this),this.hideNotesEditor=this.hideNotesEditor.bind(this),this.stepZoom=this.stepZoom.bind(this),this.focus=this.focus.bind(this),this.blur=this.blur.bind(this),this.markerStateChanged=this.markerStateChanged.bind(this),this.switchToSelectMode=this.switchToSelectMode.bind(this),this.addDefs=this.addDefs.bind(this),this.addDefsToImage=this.addDefsToImage.bind(this)}return Object.defineProperty(We.prototype,"ALL_MARKER_TYPES",{get:function(){return[ir,_t,Yn,sn,$t,yi,Rr,er,pi,gn,Cn,hn,_n]},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"DEFAULT_MARKER_TYPES",{get:function(){return[ir,_t,Yn,sn,yi,Rr,er]},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"BASIC_MARKER_TYPES",{get:function(){return[ir,_t,Yn,sn,Rr]},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"availableMarkerTypes",{get:function(){return this._availableMarkerTypes},set:function(Pe){var we=this;this._availableMarkerTypes.splice(0),Pe.forEach(function(je){if(typeof je=="string"){var Ke=we.ALL_MARKER_TYPES.find(function(Te){return Te.typeName===je});Ke!==void 0&&we._availableMarkerTypes.push(Ke)}else we._availableMarkerTypes.push(je)})},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"currentMarker",{get:function(){return this._currentMarker},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"isOpen",{get:function(){return this._isOpen},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"isUndoPossible",{get:function(){return!(!this.undoRedoManager||!this.undoRedoManager.isUndoPossible)},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"isRedoPossible",{get:function(){return!(!this.undoRedoManager||!this.undoRedoManager.isRedoPossible)},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"zoomLevel",{get:function(){return this._zoomLevel},set:function(Pe){this._zoomLevel=Pe,this.editorCanvas&&this.contentDiv&&(this.editorCanvas.style.transform="scale("+this._zoomLevel+")",this.contentDiv.scrollTo({left:(this.editorCanvas.clientWidth*this._zoomLevel-this.contentDiv.clientWidth)/2,top:(this.editorCanvas.clientHeight*this._zoomLevel-this.contentDiv.clientHeight)/2}))},enumerable:!1,configurable:!0}),Object.defineProperty(We.prototype,"instanceNo",{get:function(){return this._instanceNo},enumerable:!1,configurable:!0}),We.prototype.open=function(){this.setupResizeObserver(),this.setEditingTarget(),this.setTopLeft(),this.initMarkerCanvas(),this.initOverlay(),this.attachEvents(),this.settings.displayMode==="popup"&&this.onPopupTargetResize(),lt.isLicensed||this.addLogo(),this._isOpen=!0,this._isFocused=!0},We.prototype.show=function(){var Pe=this;this.styles.styleSheetRoot===void 0&&vt.styleSheetRoot!==void 0&&(this.styles.styleSheetRoot=vt.styleSheetRoot),this.setWindowHeight(),this.showUI(),this.open(),this.eventListeners.show.forEach(function(we){return we(new xn(Pe))})},We.prototype.render=function(){return rt(this,void 0,void 0,function(){var Pe;return nt(this,function(we){switch(we.label){case 0:return this.setCurrentMarker(),(Pe=new it).naturalSize=this.renderAtNaturalSize,Pe.imageType=this.renderImageType,Pe.imageQuality=this.renderImageQuality,Pe.markersOnly=this.renderMarkersOnly,Pe.width=this.renderWidth,Pe.height=this.renderHeight,[4,Pe.rasterize(this.target instanceof HTMLImageElement?this.target:null,this.markerImage,this.renderTarget)];case 1:return we.sent(),[4,Pe.rasterize(this.target instanceof HTMLImageElement?this.target:null,this.markerImage,this.renderTarget)];case 2:return[2,we.sent()]}})})},We.prototype.close=function(Pe){var we=this;if(Pe===void 0&&(Pe=!1),this.isOpen){var je=!1;Pe||this.eventListeners.beforeclose.forEach(function(Ke){var Te=new xn(we,!0);Ke(Te),Te.defaultPrevented&&(je=!0)}),je||(this.coverDiv&&this.closeUI(),this.targetObserver&&(this.targetObserver.unobserve(this.target),this.targetObserver.unobserve(this.editorCanvas)),this.settings.displayMode==="popup"&&window.removeEventListener("resize",this.setWindowHeight),this.eventListeners.close.forEach(function(Ke){return Ke(new xn(we))}),this.detachEvents(),this._isOpen=!1)}},We.prototype.addMarkersToToolbar=function(){for(var Pe,we=[],je=0;jethis.editorCanvas.clientHeight?this.editorCanvas.clientHeight*Pe:this.editorCanvas.clientWidth,je=we',Pe.title="Powered by marker.js",Pe.style.display="grid",Pe.style.alignItems="center",Pe.style.justifyItems="center",Pe.style.padding="3px",Pe.style.width="20px",Pe.style.height="20px",this.logoUI.appendChild(Pe),this.editorCanvas.appendChild(this.logoUI),this.logoUI.style.position="absolute",this.logoUI.style.pointerEvents="all",this.positionLogo()},We.prototype.positionLogo=function(){this.logoUI&&(this.uiStyleSettings.logoPosition!=="right"?this.logoUI.style.left=this.markerImageHolder.offsetLeft+10+"px":this.logoUI.style.left=this.markerImageHolder.offsetLeft+this.markerImageHolder.offsetWidth-this.logoUI.clientWidth-10+"px",this.logoUI.style.top=this.markerImageHolder.offsetTop+this.markerImageHolder.offsetHeight-this.logoUI.clientHeight-10+"px")},We.prototype.overrideOverflow=function(){this.scrollXState=window.scrollX,this.scrollYState=window.scrollY,this.bodyOverflowState=document.body.style.overflow,window.scroll({top:0,left:0}),document.body.style.overflow="hidden"},We.prototype.restoreOverflow=function(){document.body.style.overflow=this.bodyOverflowState,window.scroll({top:this.scrollYState,left:this.scrollXState})},We.prototype.showUI=function(){switch(this.settings.displayMode==="popup"&&this.overrideOverflow(),this.coverDiv=document.createElement("div"),this.coverDiv.style.visibility=this._silentRenderMode?"hidden":"visible",this.coverDiv.className=this.styles.classNamePrefixBase+" "+this.styles.classNamePrefix,this.coverDiv.style.fontSize="16px",this.coverDiv.style.userSelect="none",this.settings.displayMode){case"inline":this.coverDiv.style.position="absolute";var Pe=this.settings.uiOffsetTop!==void 0?this.target.offsetTop+this.settings.uiOffsetTop:this.target.offsetTop>this.styles.settings.toolbarHeight?this.target.offsetTop-this.styles.settings.toolbarHeight:0;this.coverDiv.style.top=Pe+"px",this.coverDiv.style.left=this.target.offsetLeft.toString()+"px",this.coverDiv.style.width=this.target.offsetWidth.toString()+"px",this.coverDiv.style.zIndex=this.uiStyleSettings.zIndex!==void 0?this.uiStyleSettings.zIndex:"5";break;case"popup":this.coverDiv.style.position="absolute",this.coverDiv.style.top="0px",this.coverDiv.style.left="0px",this.coverDiv.style.width="100vw",this.coverDiv.style.height=window.innerHeight+"px",this.coverDiv.style.backgroundColor="rgba(0, 0, 0, 0.75)",this.coverDiv.style.zIndex=this.uiStyleSettings.zIndex!==void 0?this.uiStyleSettings.zIndex:"1000",this.coverDiv.style.display="flex"}this.targetRoot.appendChild(this.coverDiv),this.uiDiv=document.createElement("div"),this.uiDiv.style.display="flex",this.uiDiv.style.flexDirection="column",this.uiDiv.style.flexGrow="2",this.uiDiv.style.margin=this.settings.displayMode==="popup"?this.settings.popupMargin+"px":"0px",this.uiDiv.style.border="0px",this.coverDiv.appendChild(this.uiDiv),this.toolbar=new Nt(this.uiDiv,this.settings.displayMode,this._availableMarkerTypes,this.uiStyleSettings,this.styles),this.toolbar.addButtonClickListener(this.toolbarButtonClicked),this.toolbar.show(this._silentRenderMode||this.uiStyleSettings.hideToolbar?"hidden":"visible"),this.contentDiv=document.createElement("div"),this.contentDiv.style.display="flex",this.contentDiv.style.flexDirection="row",this.contentDiv.style.flexGrow="2",this.contentDiv.style.flexShrink="1",this.settings.displayMode==="popup"&&(this.contentDiv.style.backgroundColor=this.uiStyleSettings.canvasBackgroundColor,this.contentDiv.style.maxHeight=this.windowHeight-2*this.settings.popupMargin-3.5*this.uiStyleSettings.toolbarHeight+"px",this.contentDiv.style.maxWidth="calc(100vw - "+2*this.settings.popupMargin+"px)"),this.contentDiv.style.overflow="auto",this.uiDiv.appendChild(this.contentDiv),this.editorCanvas=document.createElement("div"),this.editorCanvas.style.flexGrow="2",this.editorCanvas.style.flexShrink="1",this.editorCanvas.style.position="relative",this.editorCanvas.style.overflow="hidden",this.editorCanvas.style.display="flex",this.settings.displayMode==="popup"&&(this.editorCanvas.style.alignItems="center",this.editorCanvas.style.justifyContent="center"),this.editorCanvas.style.pointerEvents="none",this.editorCanvas.style.transformOrigin="left top",this.editorCanvas.style.transform="scale("+this.zoomLevel+")",this.contentDiv.appendChild(this.editorCanvas),this.editingTarget=this.target instanceof HTMLImageElement?document.createElement("img"):document.createElement("canvas"),this.settings.uiOffsetTop===void 0&&this.target.offsetTop-1&&this.markers.splice(this.markers.indexOf(Pe),1),Pe.dispose()},We.prototype.switchToSelectMode=function(){this.mode="select",this.hideNotesEditor(),this._currentMarker!==void 0&&(this._currentMarker.state!=="new"?this._currentMarker.select():(this.removeMarker(this._currentMarker),this.setCurrentMarker(),this.markerImage.style.cursor="default"),this.addUndoStep())},We.prototype.toolbarButtonClicked=function(Pe,we){if(Pe==="marker"&&we!==void 0)this.createNewMarker(we);else if(Pe==="action")switch(we){case"select":this.switchToSelectMode(),this.switchToSelectMode();break;case"delete":this.deleteSelectedMarker();break;case"clear":this.clear();break;case"undo":this.undo();break;case"redo":this.redo();break;case"zoom":this.stepZoom();break;case"zoom-out":this.zoomLevel=1;break;case"notes":this.notesArea===void 0?(this.switchToSelectMode(),this.zoomLevel=1,this.showNotesEditor()):this.switchToSelectMode();break;case"close":this.close();break;case"render":this.switchToSelectMode(),this.startRenderAndClose()}},We.prototype.deleteSelectedMarker=function(){var Pe=this;if(this._currentMarker!==void 0){var we=!1;if(this.eventListeners.markerbeforedelete.forEach(function(Ke){var Te=new Fn(Pe,Pe._currentMarker,!0);Ke(Te),Te.defaultPrevented&&(we=!0)}),!we){var je=this._currentMarker;this._currentMarker.dispose(),this.markerImage.removeChild(this._currentMarker.container),this.markers.splice(this.markers.indexOf(this._currentMarker),1),this.setCurrentMarker(),this.addUndoStep(),this.eventListeners.markerdelete.forEach(function(Ke){return Ke(new Fn(Pe,je))})}}},We.prototype.clear=function(){var Pe=this,we=!1;if(this.markers.length>0&&(this.eventListeners.markerbeforedelete.forEach(function(fn){var Wn=new Fn(Pe,void 0,!0);fn(Wn),Wn.defaultPrevented&&(we=!0)}),!we)){this.setCurrentMarker();for(var je=function(fn){var Wn=Ke.markers[fn];Ke.setCurrentMarker(Ke.markers[fn]),Ke._currentMarker.dispose(),Ke.markerImage.removeChild(Ke._currentMarker.container),Ke.markers.splice(Ke.markers.indexOf(Ke._currentMarker),1),Ke.eventListeners.markerdelete.forEach(function(Rn){return Rn(new Fn(Pe,Wn))})},Ke=this,Te=this.markers.length-1;Te>=0;Te--)je(Te);this.addUndoStep()}},Object.defineProperty(We.prototype,"isNotesAreaOpen",{get:function(){return this.notesArea!==void 0},enumerable:!1,configurable:!0}),We.prototype.showNotesEditor=function(){var Pe;this._currentMarker!==void 0&&(this.overlayContainer.innerHTML="",this.notesArea=document.createElement("textarea"),this.notesArea.className=this.uiStyleSettings.notesAreaStyleClassName,this.notesArea.style.pointerEvents="auto",this.notesArea.style.alignSelf="stretch",this.notesArea.style.width="100%",this.notesArea.style.margin=this.uiStyleSettings.toolbarHeight/4+"px",this.notesArea.value=(Pe=this._currentMarker.notes)!==null&&Pe!==void 0?Pe:"",this.overlayContainer.appendChild(this.notesArea))},We.prototype.hideNotesEditor=function(){this.isNotesAreaOpen&&(this._currentMarker!==void 0&&(this._currentMarker.notes=this.notesArea.value.trim()!==""?this.notesArea.value:void 0),this.overlayContainer.removeChild(this.notesArea),this.notesArea=void 0)},We.prototype.selectLastMarker=function(){this.markers.length>0?this.setCurrentMarker(this.markers[this.markers.length-1]):this.setCurrentMarker()},We.prototype.addUndoStep=function(){var Pe=this;if(this._currentMarker===void 0||this._currentMarker.state!=="edit"){var we=this.getState(),je=this.undoRedoManager.getLastUndoStep();if(!je||je.width===we.width&&je.height===we.height){var Ke=this.undoRedoManager.undoStepCount;this.undoRedoManager.addUndoStep(we),Ke1&&this.panTo({x:Pe.clientX,y:Pe.clientY}))},We.prototype.onPointerUp=function(Pe){this.touchPoints>0&&this.touchPoints--,this.touchPoints===0&&this.isDragging&&this._currentMarker!==void 0&&this._currentMarker.pointerUp(this.clientToLocalCoordinates(Pe.clientX,Pe.clientY)),this.isDragging=!1,this.addUndoStep()},We.prototype.onPointerOut=function(){this.touchPoints>0&&this.touchPoints--},We.prototype.onKeyUp=function(Pe){this._currentMarker===void 0||this.notesArea!==void 0||Pe.key!=="Delete"&&Pe.key!=="Backspace"||this.deleteSelectedMarker()},We.prototype.clientToLocalCoordinates=function(Pe,we){var je=this.markerImage.getBoundingClientRect();return{x:(Pe-je.left)/this.zoomLevel,y:(we-je.top)/this.zoomLevel}},We.prototype.onWindowResize=function(){this.positionUI()},We.prototype.positionUI=function(){switch(this.setTopLeft(),this.settings.displayMode){case"inline":var Pe=this.target.getClientRects().item(0).y>this.styles.settings.toolbarHeight?this.target.offsetTop-this.styles.settings.toolbarHeight:0;this.coverDiv.style.top=Pe+"px",this.coverDiv.style.left=this.target.offsetLeft.toString()+"px";break;case"popup":this.coverDiv.style.top="0px",this.coverDiv.style.left="0px",this.coverDiv.style.width="100vw",this.coverDiv.style.height=this.windowHeight+"px",this.contentDiv.style.maxHeight=this.windowHeight-2*this.settings.popupMargin-3.5*this.styles.settings.toolbarHeight+"px"}this.positionMarkerImage(),this.positionLogo()},We.prototype.addLicenseKey=function(Pe){lt.addKey(Pe)},We.prototype.addEventListener=function(Pe,we){this.eventListeners.addEventListener(Pe,we)},We.prototype.removeEventListener=function(Pe,we){this.eventListeners.removeEventListener(Pe,we)},We.prototype.renderState=function(Pe){this._silentRenderMode=!0,this.settings.displayMode="inline",this.isOpen||this.show(),this.restoreState(Pe),this.startRenderAndClose(),this._silentRenderMode=!1},Object.defineProperty(We.prototype,"isFocused",{get:function(){return this._isFocused},enumerable:!1,configurable:!0}),We.prototype.focus=function(){var Pe=this;this._isFocused||(this.attachWindowEvents(),this._isFocused=!0,this._previousCurrentMarker!==void 0&&this.setCurrentMarker(this._previousCurrentMarker),this.eventListeners.focus.forEach(function(we){return we(new xn(Pe))}))},We.prototype.blur=function(){var Pe=this;this._isFocused&&(this.detachWindowEvents(),this._isFocused=!1,this._previousCurrentMarker=this._currentMarker,this.setCurrentMarker(),this.eventListeners.blur.forEach(function(we){return we(new xn(Pe))}))},We.instanceCounter=0,We}()},26248:function(Tt){Tt.exports=function(st){Me(st);var rt=zn(st);return st.on=rt.on,st.off=rt.off,st.fire=rt.fire,st};function zn(fe){var st=Object.create(null);return{on:function(rt,nt,$e){if(typeof nt!="function")throw new Error("callback is expected to be a function");var at=st[rt];return at||(at=st[rt]=[]),at.push({callback:nt,ctx:$e}),fe},off:function(rt,nt){var $e=typeof rt=="undefined";if($e)return st=Object.create(null),fe;if(st[rt]){var at=typeof nt!="function";if(at)delete st[rt];else for(var lt=st[rt],it=0;it1&&($e=Array.prototype.splice.call(arguments,1));for(var at=0;at19?Yn:Zn;$e&&typeof $e.nodeMass=="function"&&(it=$e.nodeMass);var vt=new Map,He={},ct=0,Mt=lt.settings.springTransform||rt;Nn(),Ot();var Nt=!1,St={step:function(){if(ct===0)return xt(!0),!0;var gn=lt.step();St.lastMove=gn,St.fire("step");var kn=gn/ct,Rr=kn<=.01;return xt(Rr),Rr},getNodePosition:function(gn){return _t(gn).pos},setNodePosition:function(gn){var kn=_t(gn);kn.setPosition.apply(kn,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(gn){var kn=He[gn];if(kn)return{from:kn.from.pos,to:kn.to.pos}},getGraphRect:function(){return lt.getBBox()},forEachBody:gt,pinNode:function(gn,kn){var Rr=_t(gn.id);Rr.isPinned=!!kn},isNodePinned:function(gn){return _t(gn.id).isPinned},dispose:function(){nt.off("changed",jn),St.fire("disposed")},getBody:It,getSpring:Ft,getForceVectorLength:Ct,simulator:lt,graph:nt,lastMove:0};return fe(St),St;function xt(gn){Nt!==gn&&(Nt=gn,ln(gn))}function gt(gn){vt.forEach(gn)}function Ct(){var gn=0,kn=0;return gt(function(Rr){gn+=Math.abs(Rr.force.x),kn+=Math.abs(Rr.force.y)}),Math.sqrt(gn*gn+kn*kn)}function Ft(gn,kn){var Rr;if(kn===void 0)typeof gn!="object"?Rr=gn:Rr=gn.id;else{var mt=nt.hasLink(gn,kn);if(!mt)return;Rr=mt.id}return He[Rr]}function It(gn){return vt.get(gn)}function Ot(){nt.on("changed",jn)}function ln(gn){St.fire("stable",gn)}function jn(gn){for(var kn=0;kn max_{var}) max_{var} = bodyPos.{var};",{indent:6})} } ${$e("boundingBox.min_{var} = min_{var};",{indent:4})} ${$e("boundingBox.max_{var} = max_{var};",{indent:4})} } function resetBoundingBox() { ${$e("boundingBox.min_{var} = boundingBox.max_{var} = 0;",{indent:4})} } `}},53623:function(Tt,zn,Me){const fe=Me(98786);Tt.exports=st,Tt.exports.generateCreateBodyFunctionBody=rt,Tt.exports.getVectorCode=$e,Tt.exports.getBodyCode=nt;function st(at,lt){let it=rt(at,lt),{Body:vt}=new Function(it)();return vt}function rt(at,lt){return` ${$e(at,lt)} ${nt(at,lt)} return {Body: Body, Vector: Vector}; `}function nt(at){let lt=fe(at),it=lt("{var}",{join:", "});return` function Body(${it}) { this.isPinned = false; this.pos = new Vector(${it}); this.force = new Vector(); this.velocity = new Vector(); this.mass = 1; this.springCount = 0; this.springLength = 0; } Body.prototype.reset = function() { this.force.reset(); this.springCount = 0; this.springLength = 0; } Body.prototype.setPosition = function (${it}) { ${lt("this.pos.{var} = {var} || 0;",{indent:2})} };`}function $e(at,lt){let it=fe(at),vt="";return lt&&(vt=`${it(` var v{var}; Object.defineProperty(this, '{var}', { set: function(v) { if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}'); v{var} = v; }, get: function() { return v{var}; } });`)}`),`function Vector(${it("{var}",{join:", "})}) { ${vt} if (typeof arguments[0] === 'object') { // could be another vector let v = arguments[0]; ${it('if (!Number.isFinite(v.{var})) throw new Error("Expected value is not a finite number at Vector constructor ({var})");',{indent:4})} ${it("this.{var} = v.{var};",{indent:4})} } else { ${it('this.{var} = typeof {var} === "number" ? {var} : 0;',{indent:4})} } } Vector.prototype.reset = function () { ${it("this.{var} = ",{join:""})}0; };`}},48812:function(Tt,zn,Me){const fe=Me(98786);Tt.exports=st,Tt.exports.generateCreateDragForceFunctionBody=rt;function st(nt){let $e=rt(nt);return new Function("options",$e)}function rt(nt){return` if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number'); return { update: function(body) { ${fe(nt)("body.force.{var} -= options.dragCoefficient * body.velocity.{var};",{indent:6})} } }; `}},7584:function(Tt,zn,Me){const fe=Me(98786);Tt.exports=st,Tt.exports.generateCreateSpringForceFunctionBody=rt;function st(nt){let $e=rt(nt);return new Function("options","random",$e)}function rt(nt){let $e=fe(nt);return` if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number'); if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number'); return { /** * Updates forces acting on a spring */ update: function (spring) { var body1 = spring.from; var body2 = spring.to; var length = spring.length < 0 ? options.springLength : spring.length; ${$e("var d{var} = body2.pos.{var} - body1.pos.{var};",{indent:6})} var r = Math.sqrt(${$e("d{var} * d{var}",{join:" + "})}); if (r === 0) { ${$e("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:8})} r = Math.sqrt(${$e("d{var} * d{var}",{join:" + "})}); } var d = r - length; var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r; ${$e("body1.force.{var} += coefficient * d{var}",{indent:6})}; body1.springCount += 1; body1.springLength += r; ${$e("body2.force.{var} -= coefficient * d{var}",{indent:6})}; body2.springCount += 1; body2.springLength += r; } }; `}},26302:function(Tt,zn,Me){const fe=Me(98786);Tt.exports=st,Tt.exports.generateIntegratorFunctionBody=rt;function st(nt){let $e=rt(nt);return new Function("bodies","timeStep","adaptiveTimeStepWeight",$e)}function rt(nt){let $e=fe(nt);return` var length = bodies.length; if (length === 0) return 0; ${$e("var d{var} = 0, t{var} = 0;",{indent:2})} for (var i = 0; i < length; ++i) { var body = bodies[i]; if (body.isPinned) continue; if (adaptiveTimeStepWeight && body.springCount) { timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount); } var coeff = timeStep / body.mass; ${$e("body.velocity.{var} += coeff * body.force.{var};",{indent:4})} ${$e("var v{var} = body.velocity.{var};",{indent:4})} var v = Math.sqrt(${$e("v{var} * v{var}",{join:" + "})}); if (v > 1) { // We normalize it so that we move within timeStep range. // for the case when v <= 1 - we let velocity to fade out. ${$e("body.velocity.{var} = v{var} / v;",{indent:6})} } ${$e("d{var} = timeStep * body.velocity.{var};",{indent:4})} ${$e("body.pos.{var} += d{var};",{indent:4})} ${$e("t{var} += Math.abs(d{var});",{indent:4})} } return (${$e("t{var} * t{var}",{join:" + "})})/length; `}},24454:function(Tt,zn,Me){const fe=Me(98786),st=Me(59321);Tt.exports=rt,Tt.exports.generateQuadTreeFunctionBody=nt,Tt.exports.getInsertStackCode=vt,Tt.exports.getQuadNodeCode=it,Tt.exports.isSamePosition=$e,Tt.exports.getChildBodyCode=lt,Tt.exports.setChildBodyCode=at;function rt(He){let ct=nt(He);return new Function(ct)()}function nt(He){let ct=fe(He),Mt=Math.pow(2,He);return` ${vt()} ${it(He)} ${$e(He)} ${lt(He)} ${at(He)} function createQuadTree(options, random) { options = options || {}; options.gravity = typeof options.gravity === 'number' ? options.gravity : -1; options.theta = typeof options.theta === 'number' ? options.theta : 0.8; var gravity = options.gravity; var updateQueue = []; var insertStack = new InsertStack(); var theta = options.theta; var nodesCache = []; var currentInCache = 0; var root = newNode(); return { insertBodies: insertBodies, /** * Gets root node if it is present */ getRoot: function() { return root; }, updateBodyForce: update, options: function(newOptions) { if (newOptions) { if (typeof newOptions.gravity === 'number') { gravity = newOptions.gravity; } if (typeof newOptions.theta === 'number') { theta = newOptions.theta; } return this; } return { gravity: gravity, theta: theta }; } }; function newNode() { // To avoid pressure on GC we reuse nodes. var node = nodesCache[currentInCache]; if (node) { ${gt(" node.")} node.body = null; node.mass = ${ct("node.mass_{var} = ",{join:""})}0; ${ct("node.min_{var} = node.max_{var} = ",{join:""})}0; } else { node = new QuadNode(); nodesCache[currentInCache] = node; } ++currentInCache; return node; } function update(sourceBody) { var queue = updateQueue; var v; ${ct("var d{var};",{indent:4})} var r; ${ct("var f{var} = 0;",{indent:4})} var queueLength = 1; var shiftIdx = 0; var pushIdx = 1; queue[0] = root; while (queueLength) { var node = queue[shiftIdx]; var body = node.body; queueLength -= 1; shiftIdx += 1; var differentBody = (body !== sourceBody); if (body && differentBody) { // If the current node is a leaf node (and it is not source body), // calculate the force exerted by the current node on body, and add this // amount to body's net force. ${ct("d{var} = body.pos.{var} - sourceBody.pos.{var};",{indent:8})} r = Math.sqrt(${ct("d{var} * d{var}",{join:" + "})}); if (r === 0) { // Poor man's protection against zero distance. ${ct("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})} r = Math.sqrt(${ct("d{var} * d{var}",{join:" + "})}); } // This is standard gravitation force calculation but we divide // by r^3 to save two operations when normalizing force vector. v = gravity * body.mass * sourceBody.mass / (r * r * r); ${ct("f{var} += v * d{var};",{indent:8})} } else if (differentBody) { // Otherwise, calculate the ratio s / r, where s is the width of the region // represented by the internal node, and r is the distance between the body // and the node's center-of-mass ${ct("d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};",{indent:8})} r = Math.sqrt(${ct("d{var} * d{var}",{join:" + "})}); if (r === 0) { // Sorry about code duplication. I don't want to create many functions // right away. Just want to see performance first. ${ct("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})} r = Math.sqrt(${ct("d{var} * d{var}",{join:" + "})}); } // If s / r < \u03B8, treat this internal node as a single body, and calculate the // force it exerts on sourceBody, and add this amount to sourceBody's net force. if ((node.max_${st(0)} - node.min_${st(0)}) / r < theta) { // in the if statement above we consider node's width only // because the region was made into square during tree creation. // Thus there is no difference between using width or height. v = gravity * node.mass * sourceBody.mass / (r * r * r); ${ct("f{var} += v * d{var};",{indent:10})} } else { // Otherwise, run the procedure recursively on each of the current node's children. // I intentionally unfolded this loop, to save several CPU cycles. ${xt()} } } } ${ct("sourceBody.force.{var} += f{var};",{indent:4})} } function insertBodies(bodies) { ${ct("var {var}min = Number.MAX_VALUE;",{indent:4})} ${ct("var {var}max = Number.MIN_VALUE;",{indent:4})} var i = bodies.length; // To reduce quad tree depth we are looking for exact bounding box of all particles. while (i--) { var pos = bodies[i].pos; ${ct("if (pos.{var} < {var}min) {var}min = pos.{var};",{indent:6})} ${ct("if (pos.{var} > {var}max) {var}max = pos.{var};",{indent:6})} } // Makes the bounds square. var maxSideLength = -Infinity; ${ct("if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;",{indent:4})} currentInCache = 0; root = newNode(); ${ct("root.min_{var} = {var}min;",{indent:4})} ${ct("root.max_{var} = {var}min + maxSideLength;",{indent:4})} i = bodies.length - 1; if (i >= 0) { root.body = bodies[i]; } while (i--) { insert(bodies[i], root); } } function insert(newBody) { insertStack.reset(); insertStack.push(root, newBody); while (!insertStack.isEmpty()) { var stackItem = insertStack.pop(); var node = stackItem.node; var body = stackItem.body; if (!node.body) { // This is internal node. Update the total mass of the node and center-of-mass. ${ct("var {var} = body.pos.{var};",{indent:8})} node.mass += body.mass; ${ct("node.mass_{var} += body.mass * {var};",{indent:8})} // Recursively insert the body in the appropriate quadrant. // But first find the appropriate quadrant. var quadIdx = 0; // Assume we are in the 0's quad. ${ct("var min_{var} = node.min_{var};",{indent:8})} ${ct("var max_{var} = (min_{var} + node.max_{var}) / 2;",{indent:8})} ${St(8)} var child = getChild(node, quadIdx); if (!child) { // The node is internal but this quadrant is not taken. Add // subnode to it. child = newNode(); ${ct("child.min_{var} = min_{var};",{indent:10})} ${ct("child.max_{var} = max_{var};",{indent:10})} child.body = body; setChild(node, quadIdx, child); } else { // continue searching in this quadrant. insertStack.push(child, body); } } else { // We are trying to add to the leaf node. // We have to convert current leaf into internal node // and continue adding two nodes. var oldBody = node.body; node.body = null; // internal nodes do not cary bodies if (isSamePosition(oldBody.pos, body.pos)) { // Prevent infinite subdivision by bumping one node // anywhere in this quadrant var retriesCount = 3; do { var offset = random.nextDouble(); ${ct("var d{var} = (node.max_{var} - node.min_{var}) * offset;",{indent:12})} ${ct("oldBody.pos.{var} = node.min_{var} + d{var};",{indent:12})} retriesCount -= 1; // Make sure we don't bump it out of the box. If we do, next iteration should fix it } while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos)); if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) { // This is very bad, we ran out of precision. // if we do not return from the method we'll get into // infinite loop here. So we sacrifice correctness of layout, and keep the app running // Next layout iteration should get larger bounding box in the first step and fix this return; } } // Next iteration should subdivide node further. insertStack.push(node, oldBody); insertStack.push(node, body); } } } } return createQuadTree; `;function St(Ct){let Ft=[],It=Array(Ct+1).join(" ");for(let Ot=0;Ot max_${st(Ot)}) {`),Ft.push(It+` quadIdx = quadIdx + ${Math.pow(2,Ot)};`),Ft.push(It+` min_${st(Ot)} = max_${st(Ot)};`),Ft.push(It+` max_${st(Ot)} = node.max_${st(Ot)};`),Ft.push(It+"}");return Ft.join(` `)}function xt(){let Ct=Array(11).join(" "),Ft=[];for(let It=0;It 0) { return this.stack[--this.popIdx]; } }, reset: function () { this.popIdx = 0; } }; function InsertStackElement(node, body) { this.node = node; // QuadTree node this.body = body; // physical body which needs to be inserted to node } `}},59321:function(Tt){Tt.exports=function(Me){return Me===0?"x":Me===1?"y":Me===2?"z":"c"+(Me+1)}},72879:function(Tt,zn,Me){Tt.exports=it;var fe=Me(53623),st=Me(24454),rt=Me(41085),nt=Me(48812),$e=Me(7584),at=Me(26302),lt={};function it(ct){var Mt=Me(75877),Nt=Me(35764),St=Me(26248);if(ct){if(ct.springCoeff!==void 0)throw new Error("springCoeff was renamed to springCoefficient");if(ct.dragCoeff!==void 0)throw new Error("dragCoeff was renamed to dragCoefficient")}ct=Nt(ct,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1});var xt=lt[ct.dimensions];if(!xt){var gt=ct.dimensions;xt={Body:fe(gt,ct.debug),createQuadTree:st(gt),createBounds:rt(gt),createDragForce:nt(gt),createSpringForce:$e(gt),integrate:at(gt)},lt[gt]=xt}var Ct=xt.Body,Ft=xt.createQuadTree,It=xt.createBounds,Ot=xt.createDragForce,ln=xt.createSpringForce,jn=xt.integrate,Nn=$t=>new Ct($t),pn=Me(40232).random(42),ir=[],Gt=[],Zt=Ft(ct,pn),Cn=It(ir,ct,pn),Qt=ln(ct,pn),sn=Ot(ct),_t=0,Zn=[],Yn=new Map,gn=0;mt("nbody",yi),mt("spring",pi);var kn={bodies:ir,quadTree:Zt,springs:Gt,settings:ct,addForce:mt,removeForce:qe,getForces:er,step:function(){for(var $t=0;$t=0?_n:-1);return Gt.push(xn),xn},getTotalMovement:function(){return _t},removeSpring:function($t){if($t){var Jt=Gt.indexOf($t);if(Jt>-1)return Gt.splice(Jt,1),!0}},getBestNewBodyPosition:function($t){return Cn.getBestNewPosition($t)},getBBox:Rr,getBoundingBox:Rr,invalidateBBox:function(){console.warn("invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call")},gravity:function($t){return $t!==void 0?(ct.gravity=$t,Zt.options({gravity:$t}),this):ct.gravity},theta:function($t){return $t!==void 0?(ct.theta=$t,Zt.options({theta:$t}),this):ct.theta},random:pn};return vt(ct,kn),St(kn),kn;function Rr(){return Cn.update(),Cn.box}function mt($t,Jt){if(Yn.has($t))throw new Error("Force "+$t+" is already added");Yn.set($t,Jt),Zn.push(Jt)}function qe($t){var Jt=Zn.indexOf(Yn.get($t));Jt<0||(Zn.splice(Jt,1),Yn.delete($t))}function er(){return Yn}function yi(){if(ir.length!==0){Zt.insertBodies(ir);for(var $t=ir.length;$t--;){var Jt=ir[$t];Jt.isPinned||(Jt.reset(),Zt.updateBodyForce(Jt),sn.update(Jt))}}}function pi(){for(var $t=Gt.length;$t--;)Qt.update(Gt[$t])}}function vt(ct,Mt){for(var Nt in ct)He(ct,Mt,Nt)}function He(ct,Mt,Nt){if(ct.hasOwnProperty(Nt)&&typeof Mt[Nt]!="function"){var St=Number.isFinite(ct[Nt]);St?Mt[Nt]=function(xt){if(xt!==void 0){if(!Number.isFinite(xt))throw new Error("Value of "+Nt+" should be a valid number.");return ct[Nt]=xt,Mt}return ct[Nt]}:Mt[Nt]=function(xt){return xt!==void 0?(ct[Nt]=xt,Mt):ct[Nt]}}}},75877:function(Tt){Tt.exports=zn;function zn(Me,fe,st,rt){this.from=Me,this.to=fe,this.length=st,this.coefficient=rt}},45174:function(Tt,zn,Me){Tt.exports=st;var fe=Me(26248);function st(lt){if(lt=lt||{},"uniqueLinkId"in lt&&(console.warn("ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\nUse `multigraph` option instead\n",` `,`Note: there is also change in default behavior: From now on each graph is considered to be not a multigraph by default (each edge is unique).`),lt.multigraph=lt.uniqueLinkId),lt.multigraph===void 0&&(lt.multigraph=!1),typeof Map!="function")throw new Error("ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph");var it=new Map,vt=new Map,He={},ct=0,Mt=lt.multigraph?Zt:Gt,Nt=[],St=er,xt=er,gt=er,Ct=er,Ft={version:20,addNode:jn,addLink:ir,removeLink:_t,removeNode:pn,getNode:Nn,getNodeCount:Cn,getLinkCount:Qt,getEdgeCount:Qt,getLinksCount:Qt,getNodesCount:Cn,getLinks:sn,forEachNode:$t,forEachLinkedNode:Rr,forEachLink:kn,beginUpdate:gt,endUpdate:Ct,clear:gn,hasLink:Yn,hasNode:Nn,getLink:Yn};return fe(Ft),It(),Ft;function It(){var Jt=Ft.on;Ft.on=hn;function hn(){return Ft.beginUpdate=gt=yi,Ft.endUpdate=Ct=pi,St=Ot,xt=ln,Ft.on=Jt,Jt.apply(Ft,arguments)}}function Ot(Jt,hn){Nt.push({link:Jt,changeType:hn})}function ln(Jt,hn){Nt.push({node:Jt,changeType:hn})}function jn(Jt,hn){if(Jt===void 0)throw new Error("Invalid node identifier");gt();var _n=Nn(Jt);return _n?(_n.data=hn,xt(_n,"update")):(_n=new rt(Jt,hn),xt(_n,"add")),it.set(Jt,_n),Ct(),_n}function Nn(Jt){return it.get(Jt)}function pn(Jt){var hn=Nn(Jt);if(!hn)return!1;gt();var _n=hn.links;return _n&&(_n.forEach(Zn),hn.links=null),it.delete(Jt),xt(hn,"remove"),Ct(),!0}function ir(Jt,hn,_n){gt();var xn=Nn(Jt)||jn(Jt),Yt=Nn(hn)||jn(hn),Fn=Mt(Jt,hn,_n),qr=vt.has(Fn.id);return vt.set(Fn.id,Fn),nt(xn,Fn),Jt!==hn&&nt(Yt,Fn),St(Fn,qr?"update":"add"),Ct(),Fn}function Gt(Jt,hn,_n){var xn=at(Jt,hn),Yt=vt.get(xn);return Yt?(Yt.data=_n,Yt):new $e(Jt,hn,_n,xn)}function Zt(Jt,hn,_n){var xn=at(Jt,hn),Yt=He.hasOwnProperty(xn);if(Yt||Yn(Jt,hn)){Yt||(He[xn]=0);var Fn="@"+ ++He[xn];xn=at(Jt+Fn,hn+Fn)}return new $e(Jt,hn,_n,xn)}function Cn(){return it.size}function Qt(){return vt.size}function sn(Jt){var hn=Nn(Jt);return hn?hn.links:null}function _t(Jt,hn){return hn!==void 0&&(Jt=Yn(Jt,hn)),Zn(Jt)}function Zn(Jt){if(!Jt||!vt.get(Jt.id))return!1;gt(),vt.delete(Jt.id);var hn=Nn(Jt.fromId),_n=Nn(Jt.toId);return hn&&hn.links.delete(Jt),_n&&_n.links.delete(Jt),St(Jt,"remove"),Ct(),!0}function Yn(Jt,hn){if(!(Jt===void 0||hn===void 0))return vt.get(at(Jt,hn))}function gn(){gt(),$t(function(Jt){pn(Jt.id)}),Ct()}function kn(Jt){if(typeof Jt=="function")for(var hn=vt.values(),_n=hn.next();!_n.done;){if(Jt(_n.value))return!0;_n=hn.next()}}function Rr(Jt,hn,_n){var xn=Nn(Jt);if(xn&&xn.links&&typeof hn=="function")return _n?qe(xn.links,Jt,hn):mt(xn.links,Jt,hn)}function mt(Jt,hn,_n){for(var xn,Yt=Jt.values(),Fn=Yt.next();!Fn.done;){var qr=Fn.value,ts=qr.fromId===hn?qr.toId:qr.fromId;if(xn=_n(it.get(ts),qr),xn)return!0;Fn=Yt.next()}}function qe(Jt,hn,_n){for(var xn,Yt=Jt.values(),Fn=Yt.next();!Fn.done;){var qr=Fn.value;if(qr.fromId===hn&&(xn=_n(it.get(qr.toId),qr),xn))return!0;Fn=Yt.next()}}function er(){}function yi(){ct+=1}function pi(){ct-=1,ct===0&&Nt.length>0&&(Ft.fire("changed",Nt),Nt.length=0)}function $t(Jt){if(typeof Jt!="function")throw new Error("Function is expected to iterate over graph nodes. You passed "+Jt);for(var hn=it.values(),_n=hn.next();!_n.done;){if(Jt(_n.value))return!0;_n=hn.next()}}}function rt(lt,it){this.id=lt,this.links=null,this.data=it}function nt(lt,it){lt.links?lt.links.add(it):lt.links=new Set([it])}function $e(lt,it,vt,He){this.fromId=lt,this.toId=it,this.data=vt,this.id=He}function at(lt,it){return lt.toString()+"\u{1F449} "+it.toString()}},35764:function(Tt){Tt.exports=zn;function zn(Me,fe){var st;if(Me||(Me={}),fe){for(st in fe)if(fe.hasOwnProperty(st)){var rt=Me.hasOwnProperty(st),nt=typeof fe[st],$e=!rt||typeof Me[st]!==nt;$e?Me[st]=fe[st]:nt==="object"&&(Me[st]=zn(Me[st],fe[st]))}}return Me}},40232:function(Tt){Tt.exports=zn,Tt.exports.random=zn,Tt.exports.randomIterator=at;function zn(lt){var it=typeof lt=="number"?lt:+new Date;return new Me(it)}function Me(lt){this.seed=lt}Me.prototype.next=$e,Me.prototype.nextDouble=nt,Me.prototype.uniform=nt,Me.prototype.gaussian=fe,Me.prototype.random=nt;function fe(){var lt,it,vt;do it=this.nextDouble()*2-1,vt=this.nextDouble()*2-1,lt=it*it+vt*vt;while(lt>=1||lt===0);return it*Math.sqrt(-2*Math.log(lt)/lt)}Me.prototype.levy=st;function st(){var lt=1.5,it=Math.pow(rt(1+lt)*Math.sin(Math.PI*lt/2)/(rt((1+lt)/2)*lt*Math.pow(2,(lt-1)/2)),1/lt);return this.gaussian()*it/Math.pow(Math.abs(this.gaussian()),1/lt)}function rt(lt){return Math.sqrt(2*Math.PI/lt)*Math.pow(1/Math.E*(lt+1/(12*lt-1/(10*lt))),lt)}function nt(){var lt=this.seed;return lt=lt+2127912214+(lt<<12)&4294967295,lt=(lt^3345072700^lt>>>19)&4294967295,lt=lt+374761393+(lt<<5)&4294967295,lt=(lt+3550635116^lt<<9)&4294967295,lt=lt+4251993797+(lt<<3)&4294967295,lt=(lt^3042594569^lt>>>16)&4294967295,this.seed=lt,(lt&268435455)/268435456}function $e(lt){return Math.floor(this.nextDouble()*lt)}function at(lt,it){var vt=it||zn();if(typeof vt.next!="function")throw new Error("customRandom does not match expected API: next() function is missing");return{forEach:ct,shuffle:He};function He(){var Mt,Nt,St;for(Mt=lt.length-1;Mt>0;--Mt)Nt=vt.next(Mt+1),St=lt[Nt],lt[Nt]=lt[Mt],lt[Mt]=St;return lt}function ct(Mt){var Nt,St,xt;for(Nt=lt.length-1;Nt>0;--Nt)St=vt.next(Nt+1),xt=lt[St],lt[St]=lt[Nt],lt[Nt]=xt,Mt(xt);lt.length&&Mt(lt[0])}}},48365:function(Tt,zn,Me){"use strict";var fe=Me(56656),st=Me.n(fe),rt=Me(27112),nt=Me.n(rt),$e=Me(54449),at=Me.n($e),lt=Me(53501),it=Me.n(lt),vt=Me(36867),He=Me.n(vt),ct=Me(71912),Mt=Me.n(ct),Nt=Me(48228),St=Me.n(Nt);st().extend(St()),st().extend(Mt()),st().extend(nt()),st().extend(at()),st().extend(it()),st().extend(He()),st().extend(function(It,Ot){var ln=Ot.prototype,jn=ln.format;ln.format=function(pn){var ir=(pn||"").replace("Wo","wo");return jn.bind(this)(ir)}});var xt={bn_BD:"bn-bd",by_BY:"be",en_GB:"en-gb",en_US:"en",fr_BE:"fr",fr_CA:"fr-ca",hy_AM:"hy-am",kmr_IQ:"ku",nl_BE:"nl-be",pt_BR:"pt-br",zh_CN:"zh-cn",zh_HK:"zh-hk",zh_TW:"zh-tw"},gt=function(Ot){var ln=xt[Ot];return ln||Ot.split("_")[0]},Ct=function(){},Ft={getNow:function(){var Ot=st()();return typeof Ot.tz=="function"?Ot.tz():Ot},getFixedDate:function(Ot){return st()(Ot,["YYYY-M-DD","YYYY-MM-DD"])},getEndDate:function(Ot){return Ot.endOf("month")},getWeekDay:function(Ot){var ln=Ot.locale("en");return ln.weekday()+ln.localeData().firstDayOfWeek()},getYear:function(Ot){return Ot.year()},getMonth:function(Ot){return Ot.month()},getDate:function(Ot){return Ot.date()},getHour:function(Ot){return Ot.hour()},getMinute:function(Ot){return Ot.minute()},getSecond:function(Ot){return Ot.second()},getMillisecond:function(Ot){return Ot.millisecond()},addYear:function(Ot,ln){return Ot.add(ln,"year")},addMonth:function(Ot,ln){return Ot.add(ln,"month")},addDate:function(Ot,ln){return Ot.add(ln,"day")},setYear:function(Ot,ln){return Ot.year(ln)},setMonth:function(Ot,ln){return Ot.month(ln)},setDate:function(Ot,ln){return Ot.date(ln)},setHour:function(Ot,ln){return Ot.hour(ln)},setMinute:function(Ot,ln){return Ot.minute(ln)},setSecond:function(Ot,ln){return Ot.second(ln)},setMillisecond:function(Ot,ln){return Ot.millisecond(ln)},isAfter:function(Ot,ln){return Ot.isAfter(ln)},isValidate:function(Ot){return Ot.isValid()},locale:{getWeekFirstDay:function(Ot){return st()().locale(gt(Ot)).localeData().firstDayOfWeek()},getWeekFirstDate:function(Ot,ln){return ln.locale(gt(Ot)).weekday(0)},getWeek:function(Ot,ln){return ln.locale(gt(Ot)).week()},getShortWeekDays:function(Ot){return st()().locale(gt(Ot)).localeData().weekdaysMin()},getShortMonths:function(Ot){return st()().locale(gt(Ot)).localeData().monthsShort()},format:function(Ot,ln,jn){return ln.locale(gt(Ot)).format(jn)},parse:function(Ot,ln,jn){for(var Nn=gt(Ot),pn=0;pn2&&arguments[2]!==void 0?arguments[2]:"0",ut=String(Se);ut.length2&&arguments[2]!==void 0?arguments[2]:[],ut=He.useState([!1,!1]),ht=(0,nt.Z)(ut,2),Wt=ht[0],Kt=ht[1],qt=function(un,dr){Kt(function(Pr){return Nn(Pr,dr,un)})},Gn=He.useMemo(function(){return Wt.map(function(rr,un){if(rr)return!0;var dr=Se[un];return dr?!!(!Ye[un]&&!dr||dr&&tt(dr,{activeIndex:un})):!1})},[Se,Wt,tt,Ye]);return[Gn,qt]}function sn(Se,tt,Ye,ut,ht){var Wt="",Kt=[];return Se&&Kt.push(ht?"hh":"HH"),tt&&Kt.push("mm"),Ye&&Kt.push("ss"),Wt=Kt.join(":"),ut&&(Wt+=".SSS"),ht&&(Wt+=" A"),Wt}function _t(Se,tt,Ye,ut,ht,Wt){var Kt=Se.fieldDateTimeFormat,qt=Se.fieldDateFormat,Gn=Se.fieldTimeFormat,rr=Se.fieldMonthFormat,un=Se.fieldYearFormat,dr=Se.fieldWeekFormat,Pr=Se.fieldQuarterFormat,fr=Se.yearFormat,mr=Se.cellYearFormat,br=Se.cellQuarterFormat,wr=Se.dayFormat,Jn=Se.cellDateFormat,Fr=sn(tt,Ye,ut,ht,Wt);return(0,rt.Z)((0,rt.Z)({},Se),{},{fieldDateTimeFormat:Kt||"YYYY-MM-DD ".concat(Fr),fieldDateFormat:qt||"YYYY-MM-DD",fieldTimeFormat:Gn||Fr,fieldMonthFormat:rr||"YYYY-MM",fieldYearFormat:un||"YYYY",fieldWeekFormat:dr||"gggg-wo",fieldQuarterFormat:Pr||"YYYY-[Q]Q",yearFormat:fr||"YYYY",cellYearFormat:mr||"YYYY",cellQuarterFormat:br||"[Q]Q",cellDateFormat:Jn||wr||"D"})}function Zn(Se,tt){var Ye=tt.showHour,ut=tt.showMinute,ht=tt.showSecond,Wt=tt.showMillisecond,Kt=tt.use12Hours;return He.useMemo(function(){return _t(Se,Ye,ut,ht,Wt,Kt)},[Se,Ye,ut,ht,Wt,Kt])}var Yn=Me(34666);function gn(Se,tt,Ye){return Ye!=null?Ye:tt.some(function(ut){return Se.includes(ut)})}var kn=["showNow","showHour","showMinute","showSecond","showMillisecond","use12Hours","hourStep","minuteStep","secondStep","millisecondStep","hideDisabledOptions","defaultValue","disabledHours","disabledMinutes","disabledSeconds","disabledMilliseconds","disabledTime","changeOnScroll","defaultOpenValue"];function Rr(Se){var tt=pn(Se,kn),Ye=Se.format,ut=Se.picker,ht=null;return Ye&&(ht=Ye,Array.isArray(ht)&&(ht=ht[0]),ht=(0,Yn.Z)(ht)==="object"?ht.format:ht),ut==="time"&&(tt.format=ht),[tt,ht]}function mt(Se){return Se&&typeof Se=="string"}function qe(Se,tt,Ye,ut){return[Se,tt,Ye,ut].some(function(ht){return ht!==void 0})}function er(Se,tt,Ye,ut,ht){var Wt=tt,Kt=Ye,qt=ut;if(!Se&&!Wt&&!Kt&&!qt&&!ht)Wt=!0,Kt=!0,qt=!0;else if(Se){var Gn,rr,un,dr=[Wt,Kt,qt].some(function(mr){return mr===!1}),Pr=[Wt,Kt,qt].some(function(mr){return mr===!0}),fr=dr?!0:!Pr;Wt=(Gn=Wt)!==null&&Gn!==void 0?Gn:fr,Kt=(rr=Kt)!==null&&rr!==void 0?rr:fr,qt=(un=qt)!==null&&un!==void 0?un:fr}return[Wt,Kt,qt,ht]}function yi(Se){var tt=Se.showTime,Ye=Rr(Se),ut=(0,nt.Z)(Ye,2),ht=ut[0],Wt=ut[1],Kt=tt&&(0,Yn.Z)(tt)==="object"?tt:{},qt=(0,rt.Z)((0,rt.Z)({defaultOpenValue:Kt.defaultOpenValue||Kt.defaultValue},ht),Kt),Gn=qt.showMillisecond,rr=qt.showHour,un=qt.showMinute,dr=qt.showSecond,Pr=qe(rr,un,dr,Gn),fr=er(Pr,rr,un,dr,Gn),mr=(0,nt.Z)(fr,3);return rr=mr[0],un=mr[1],dr=mr[2],[qt,(0,rt.Z)((0,rt.Z)({},qt),{},{showHour:rr,showMinute:un,showSecond:dr,showMillisecond:Gn}),qt.format,Wt]}function pi(Se,tt,Ye,ut,ht){var Wt=Se==="time";if(Se==="datetime"||Wt){for(var Kt=ut,qt=ir(Se,ht,null),Gn=qt,rr=[tt,Ye],un=0;un1&&(Kt=tt.addDate(Kt,-7)),Kt}function Wn(Se,tt){var Ye=tt.generateConfig,ut=tt.locale,ht=tt.format;return Se?typeof ht=="function"?ht(Se):Ye.locale.format(ut.locale,Se,ht):""}function Rn(Se,tt,Ye){var ut=tt,ht=["getHour","getMinute","getSecond","getMillisecond"],Wt=["setHour","setMinute","setSecond","setMillisecond"];return Wt.forEach(function(Kt,qt){Ye?ut=Se[Kt](ut,Se[ht[qt]](Ye)):ut=Se[Kt](ut,0)}),ut}function hs(Se,tt,Ye,ut,ht){var Wt=(0,$e.zX)(function(Kt,qt){return!!(Ye&&Ye(Kt,qt)||ut&&Se.isAfter(ut,Kt)&&!je(Se,tt,ut,Kt,qt.type)||ht&&Se.isAfter(Kt,ht)&&!je(Se,tt,ht,Kt,qt.type))});return Wt}function Ji(Se,tt,Ye){return He.useMemo(function(){var ut=ir(Se,tt,Ye),ht=jn(ut),Wt=ht[0],Kt=(0,Yn.Z)(Wt)==="object"&&Wt.type==="mask"?Wt.format:null;return[ht.map(function(qt){return typeof qt=="string"||typeof qt=="function"?qt:qt.format}),Kt]},[Se,tt,Ye])}function Ni(Se,tt,Ye){return typeof Se[0]=="function"||Ye?!0:tt}function Ra(Se,tt,Ye,ut){var ht=(0,$e.zX)(function(Wt,Kt){var qt=(0,rt.Z)({type:tt},Kt);if(delete qt.activeIndex,!Se.isValidate(Wt)||Ye&&Ye(Wt,qt))return!0;if((tt==="date"||tt==="time")&&ut){var Gn,rr=Kt&&Kt.activeIndex===1?"end":"start",un=((Gn=ut.disabledTime)===null||Gn===void 0?void 0:Gn.call(ut,Wt,rr,{from:qt.from}))||{},dr=un.disabledHours,Pr=un.disabledMinutes,fr=un.disabledSeconds,mr=un.disabledMilliseconds,br=ut.disabledHours,wr=ut.disabledMinutes,Jn=ut.disabledSeconds,Fr=dr||br,Mr=Pr||wr,Dr=fr||Jn,_r=Se.getHour(Wt),Lr=Se.getMinute(Wt),Ur=Se.getSecond(Wt),wi=Se.getMillisecond(Wt);if(Fr&&Fr().includes(_r)||Mr&&Mr(_r).includes(Lr)||Dr&&Dr(_r,Lr).includes(Ur)||mr&&mr(_r,Lr,Ur).includes(wi))return!0}return!1});return ht}function ws(Se){var tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Ye=He.useMemo(function(){var ut=Se&&jn(Se);return tt&&ut&&(ut[1]=ut[1]||ut[0]),ut},[Se,tt]);return Ye}function qo(Se,tt){var Ye=Se.generateConfig,ut=Se.locale,ht=Se.picker,Wt=ht===void 0?"date":ht,Kt=Se.prefixCls,qt=Kt===void 0?"rc-picker":Kt,Gn=Se.styles,rr=Gn===void 0?{}:Gn,un=Se.classNames,dr=un===void 0?{}:un,Pr=Se.order,fr=Pr===void 0?!0:Pr,mr=Se.components,br=mr===void 0?{}:mr,wr=Se.inputRender,Jn=Se.allowClear,Fr=Se.clearIcon,Mr=Se.needConfirm,Dr=Se.multiple,_r=Se.format,Lr=Se.inputReadOnly,Ur=Se.disabledDate,wi=Se.minDate,vi=Se.maxDate,Si=Se.showTime,ai=Se.value,cs=Se.defaultValue,Ai=Se.pickerValue,Ci=Se.defaultPickerValue,Yr=ws(ai),Wi=ws(cs),os=ws(Ai),Ls=ws(Ci),Os=Wt==="date"&&Si?"datetime":Wt,Ts=Os==="time"||Os==="datetime",zi=Ts||Dr,ei=Mr!=null?Mr:Ts,bi=yi(Se),Di=(0,nt.Z)(bi,4),Vi=Di[0],Is=Di[1],Gs=Di[2],Tr=Di[3],Ms=Zn(ut,Is),Ds=He.useMemo(function(){return pi(Os,Gs,Tr,Vi,Ms)},[Os,Gs,Tr,Vi,Ms]),na=He.useMemo(function(){return(0,rt.Z)((0,rt.Z)({},Se),{},{prefixCls:qt,locale:Ms,picker:Wt,styles:rr,classNames:dr,order:fr,components:(0,rt.Z)({input:wr},br),clearIcon:$t(qt,Jn,Fr),showTime:Ds,value:Yr,defaultValue:Wi,pickerValue:os,defaultPickerValue:Ls},tt==null?void 0:tt())},[Se]),da=Ji(Os,Ms,_r),ka=(0,nt.Z)(da,2),va=ka[0],Ua=ka[1],ea=Ni(va,Lr,Dr),xa=hs(Ye,ut,Ur,wi,vi),Rs=Ra(Ye,Wt,xa,Ds),Ta=He.useMemo(function(){return(0,rt.Z)((0,rt.Z)({},na),{},{needConfirm:ei,inputReadOnly:ea,disabledDate:xa})},[na,ei,ea,xa]);return[Ta,Os,zi,va,Ua,Rs]}var pl=Me(16089);function Xi(Se,tt,Ye){var ut=(0,$e.C8)(tt,{value:Se}),ht=(0,nt.Z)(ut,2),Wt=ht[0],Kt=ht[1],qt=He.useRef(Se),Gn=He.useRef(),rr=function(){pl.Z.cancel(Gn.current)},un=(0,$e.zX)(function(){Kt(qt.current),Ye&&Wt!==qt.current&&Ye(qt.current)}),dr=(0,$e.zX)(function(Pr,fr){rr(),qt.current=Pr,Pr||fr?un():Gn.current=(0,pl.Z)(un)});return He.useEffect(function(){return rr},[]),[Wt,dr]}function Cs(Se,tt){var Ye=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],ut=arguments.length>3?arguments[3]:void 0,ht=Ye.every(function(un){return un})?!1:Se,Wt=Xi(ht,tt||!1,ut),Kt=(0,nt.Z)(Wt,2),qt=Kt[0],Gn=Kt[1];function rr(un){var dr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(!dr.inherit||qt)&&Gn(un,dr.force)}return[qt,rr]}function Pa(Se){var tt=He.useRef();return He.useImperativeHandle(Se,function(){var Ye;return{nativeElement:(Ye=tt.current)===null||Ye===void 0?void 0:Ye.nativeElement,focus:function(ht){var Wt;(Wt=tt.current)===null||Wt===void 0||Wt.focus(ht)},blur:function(){var ht;(ht=tt.current)===null||ht===void 0||ht.blur()}}}),tt}function Ki(Se,tt){return He.useMemo(function(){return Se||(tt?((0,vt.ZP)(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.entries(tt).map(function(Ye){var ut=(0,nt.Z)(Ye,2),ht=ut[0],Wt=ut[1];return{label:ht,value:Wt}})):[])},[Se,tt])}function ha(Se,tt){var Ye=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,ut=He.useRef(tt);ut.current=tt,(0,at.o)(function(){if(Se)ut.current(Se);else{var ht=(0,pl.Z)(function(){ut.current(Se)},Ye);return function(){pl.Z.cancel(ht)}}},[Se])}function Hn(Se){var tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Ye=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,ut=He.useState(0),ht=(0,nt.Z)(ut,2),Wt=ht[0],Kt=ht[1],qt=He.useState(!1),Gn=(0,nt.Z)(qt,2),rr=Gn[0],un=Gn[1],dr=He.useRef([]),Pr=He.useRef(null),fr=He.useRef(null),mr=function(Dr){Pr.current=Dr},br=function(Dr){return Pr.current===Dr},wr=function(Dr){un(Dr)},Jn=function(Dr){return Dr&&(fr.current=Dr),fr.current},Fr=function(Dr){var _r=dr.current,Lr=new Set(_r.filter(function(wi){return Dr[wi]||tt[wi]})),Ur=_r[_r.length-1]===0?1:0;return Lr.size>=2||Se[Ur]?null:Ur};return ha(rr||Ye,function(){rr||(dr.current=[],mr(null))}),He.useEffect(function(){rr&&dr.current.push(Wt)},[rr,Wt]),[rr,wr,Jn,Wt,Kt,Fr,dr.current,mr,br]}function ri(Se,tt,Ye,ut,ht,Wt){var Kt=Ye[Ye.length-1],qt=function(rr,un){var dr=(0,nt.Z)(Se,2),Pr=dr[0],fr=dr[1],mr=(0,rt.Z)((0,rt.Z)({},un),{},{from:Gt(Se,Ye)});return Kt===1&&tt[0]&&Pr&&!je(ut,ht,Pr,rr,mr.type)&&ut.isAfter(Pr,rr)||Kt===0&&tt[1]&&fr&&!je(ut,ht,fr,rr,mr.type)&&ut.isAfter(rr,fr)?!0:Wt==null?void 0:Wt(rr,mr)};return qt}function qa(Se,tt,Ye,ut){switch(tt){case"date":case"week":return Se.addMonth(Ye,ut);case"month":case"quarter":return Se.addYear(Ye,ut);case"year":return Se.addYear(Ye,ut*10);case"decade":return Se.addYear(Ye,ut*100);default:return Ye}}var no=[];function sd(Se,tt,Ye,ut,ht,Wt,Kt,qt){var Gn=arguments.length>8&&arguments[8]!==void 0?arguments[8]:no,rr=arguments.length>9&&arguments[9]!==void 0?arguments[9]:no,un=arguments.length>10&&arguments[10]!==void 0?arguments[10]:no,dr=arguments.length>11?arguments[11]:void 0,Pr=arguments.length>12?arguments[12]:void 0,fr=arguments.length>13?arguments[13]:void 0,mr=Kt==="time",br=Wt||0,wr=function(os){var Ls=Se.getNow();return mr&&(Ls=Rn(Se,Ls)),Gn[os]||Ye[os]||Ls},Jn=(0,nt.Z)(rr,2),Fr=Jn[0],Mr=Jn[1],Dr=(0,$e.C8)(function(){return wr(0)},{value:Fr}),_r=(0,nt.Z)(Dr,2),Lr=_r[0],Ur=_r[1],wi=(0,$e.C8)(function(){return wr(1)},{value:Mr}),vi=(0,nt.Z)(wi,2),Si=vi[0],ai=vi[1],cs=He.useMemo(function(){var Wi=[Lr,Si][br];return mr?Wi:Rn(Se,Wi,un[br])},[mr,Lr,Si,br,Se,un]),Ai=function(os){var Ls=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"panel",Os=[Ur,ai][br];Os(os);var Ts=[Lr,Si];Ts[br]=os,dr&&(!je(Se,tt,Lr,Ts[0],Kt)||!je(Se,tt,Si,Ts[1],Kt))&&dr(Ts,{source:Ls,range:br===1?"end":"start",mode:ut})},Ci=function(os,Ls){if(qt){var Os={date:"month",week:"month",month:"year",quarter:"year"},Ts=Os[Kt];if(Ts&&!je(Se,tt,os,Ls,Ts))return qa(Se,Kt,Ls,-1);if(Kt==="year"&&os){var zi=Math.floor(Se.getYear(os)/10),ei=Math.floor(Se.getYear(Ls)/10);if(zi!==ei)return qa(Se,Kt,Ls,-1)}}return Ls},Yr=He.useRef(null);return(0,at.Z)(function(){if(ht&&!Gn[br]){var Wi=mr?null:Se.getNow();if(Yr.current!==null&&Yr.current!==br?Wi=[Lr,Si][br^1]:Ye[br]?Wi=br===0?Ye[0]:Ci(Ye[0],Ye[1]):Ye[br^1]&&(Wi=Ye[br^1]),Wi){Pr&&Se.isAfter(Pr,Wi)&&(Wi=Pr);var os=qt?qa(Se,Kt,Wi,1):Wi;fr&&Se.isAfter(os,fr)&&(Wi=qt?qa(Se,Kt,fr,-1):fr),Ai(Wi,"reset")}}},[ht,br,Ye[br]]),He.useEffect(function(){ht?Yr.current=br:Yr.current=null},[ht,br]),(0,at.Z)(function(){ht&&Gn&&Gn[br]&&Ai(Gn[br],"reset")},[ht,br]),[cs,Ai]}function So(Se,tt){var Ye=He.useRef(Se),ut=He.useState({}),ht=(0,nt.Z)(ut,2),Wt=ht[1],Kt=function(rr){return rr&&tt!==void 0?tt:Ye.current},qt=function(rr){Ye.current=rr,Wt({})};return[Kt,qt,Kt(!0)]}var uc=[];function lu(Se,tt,Ye){var ut=function(Kt){return Kt.map(function(qt){return Wn(qt,{generateConfig:Se,locale:tt,format:Ye[0]})})},ht=function(Kt,qt){for(var Gn=Math.max(Kt.length,qt.length),rr=-1,un=0;un2&&arguments[2]!==void 0?arguments[2]:1,ut=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,ht=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],Wt=arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,Kt=[],qt=Ye>=1?Ye|0:1,Gn=Se;Gn<=tt;Gn+=qt){var rr=ht.includes(Gn);(!rr||!ut)&&Kt.push({label:ln(Gn,Wt),value:Gn,disabled:rr})}return Kt}function Wr(Se){var tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ye=arguments.length>2?arguments[2]:void 0,ut=tt||{},ht=ut.use12Hours,Wt=ut.hourStep,Kt=Wt===void 0?1:Wt,qt=ut.minuteStep,Gn=qt===void 0?1:qt,rr=ut.secondStep,un=rr===void 0?1:rr,dr=ut.millisecondStep,Pr=dr===void 0?100:dr,fr=ut.hideDisabledOptions,mr=ut.disabledTime,br=ut.disabledHours,wr=ut.disabledMinutes,Jn=ut.disabledSeconds,Fr=He.useMemo(function(){return Ye||Se.getNow()},[Ye,Se]);if(0)var Mr,Dr,_r;var Lr=He.useCallback(function(zi){var ei=(mr==null?void 0:mr(zi))||{};return[ei.disabledHours||br||dc,ei.disabledMinutes||wr||dc,ei.disabledSeconds||Jn||dc,ei.disabledMilliseconds||dc]},[mr,br,wr,Jn]),Ur=He.useMemo(function(){return Lr(Fr)},[Fr,Lr]),wi=(0,nt.Z)(Ur,4),vi=wi[0],Si=wi[1],ai=wi[2],cs=wi[3],Ai=He.useCallback(function(zi,ei,bi,Di){var Vi=Cr(0,23,Kt,fr,zi()),Is=ht?Vi.map(function(Ds){return(0,rt.Z)((0,rt.Z)({},Ds),{},{label:ln(Ds.value%12||12,2)})}):Vi,Gs=function(na){return Cr(0,59,Gn,fr,ei(na))},Tr=function(na,da){return Cr(0,59,un,fr,bi(na,da))},Ms=function(na,da,ka){return Cr(0,999,Pr,fr,Di(na,da,ka),3)};return[Is,Gs,Tr,Ms]},[fr,Kt,ht,Pr,Gn,un]),Ci=He.useMemo(function(){return Ai(vi,Si,ai,cs)},[Ai,vi,Si,ai,cs]),Yr=(0,nt.Z)(Ci,4),Wi=Yr[0],os=Yr[1],Ls=Yr[2],Os=Yr[3],Ts=function(ei,bi){var Di=function(){return Wi},Vi=os,Is=Ls,Gs=Os;if(bi){var Tr=Lr(bi),Ms=(0,nt.Z)(Tr,4),Ds=Ms[0],na=Ms[1],da=Ms[2],ka=Ms[3],va=Ai(Ds,na,da,ka),Ua=(0,nt.Z)(va,4),ea=Ua[0],xa=Ua[1],Rs=Ua[2],Ta=Ua[3];Di=function(){return ea},Vi=xa,Is=Rs,Gs=Ta}var La=Na(ei,Di,Vi,Is,Gs,Se);return La};return[Ts,Wi,os,Ls,Os]}function xs(Se){var tt=Se.mode,Ye=Se.internalMode,ut=Se.renderExtraFooter,ht=Se.showNow,Wt=Se.showTime,Kt=Se.onSubmit,qt=Se.onNow,Gn=Se.invalid,rr=Se.needConfirm,un=Se.generateConfig,dr=Se.disabledDate,Pr=He.useContext(Ct),fr=Pr.prefixCls,mr=Pr.locale,br=Pr.button,wr=br===void 0?"button":br,Jn=un.getNow(),Fr=Wr(un,Wt,Jn),Mr=(0,nt.Z)(Fr,1),Dr=Mr[0],_r=ut==null?void 0:ut(tt),Lr=dr(Jn,{type:tt}),Ur=function(){if(!Lr){var Ci=Dr(Jn);qt(Ci)}},wi="".concat(fr,"-now"),vi="".concat(wi,"-btn"),Si=ht&&He.createElement("li",{className:wi},He.createElement("a",{className:St()(vi,Lr&&"".concat(vi,"-disabled")),"aria-disabled":Lr,onClick:Ur},Ye==="date"?mr.today:mr.now)),ai=rr&&He.createElement("li",{className:"".concat(fr,"-ok")},He.createElement(wr,{disabled:Gn,onClick:Kt},mr.ok)),cs=(Si||ai)&&He.createElement("ul",{className:"".concat(fr,"-ranges")},Si,ai);return!_r&&!cs?null:He.createElement("div",{className:"".concat(fr,"-footer")},_r&&He.createElement("div",{className:"".concat(fr,"-footer-extra")},_r),cs)}function Ps(Se,tt,Ye){function ut(ht,Wt){var Kt=ht.findIndex(function(Gn){return je(Se,tt,Gn,Wt,Ye)});if(Kt===-1)return[].concat((0,st.Z)(ht),[Wt]);var qt=(0,st.Z)(ht);return qt.splice(Kt,1),qt}return ut}var ur=He.createContext(null);function Hr(){return He.useContext(ur)}function mi(Se,tt){var Ye=Se.prefixCls,ut=Se.generateConfig,ht=Se.locale,Wt=Se.disabledDate,Kt=Se.minDate,qt=Se.maxDate,Gn=Se.cellRender,rr=Se.hoverValue,un=Se.hoverRangeValue,dr=Se.onHover,Pr=Se.values,fr=Se.pickerValue,mr=Se.onSelect,br=Se.prevIcon,wr=Se.nextIcon,Jn=Se.superPrevIcon,Fr=Se.superNextIcon,Mr=ut.getNow(),Dr={now:Mr,values:Pr,pickerValue:fr,prefixCls:Ye,disabledDate:Wt,minDate:Kt,maxDate:qt,cellRender:Gn,hoverValue:rr,hoverRangeValue:un,onHover:dr,locale:ht,generateConfig:ut,onSelect:mr,panelType:tt,prevIcon:br,nextIcon:wr,superPrevIcon:Jn,superNextIcon:Fr};return[Dr,Mr]}var Ss=He.createContext({});function ro(Se){for(var tt=Se.rowNum,Ye=Se.colNum,ut=Se.baseDate,ht=Se.getCellDate,Wt=Se.prefixColumn,Kt=Se.rowClassName,qt=Se.titleFormat,Gn=Se.getCellText,rr=Se.getCellClassName,un=Se.headerCells,dr=Se.cellSelection,Pr=dr===void 0?!0:dr,fr=Se.disabledDate,mr=Hr(),br=mr.prefixCls,wr=mr.panelType,Jn=mr.now,Fr=mr.disabledDate,Mr=mr.cellRender,Dr=mr.onHover,_r=mr.hoverValue,Lr=mr.hoverRangeValue,Ur=mr.generateConfig,wi=mr.values,vi=mr.locale,Si=mr.onSelect,ai=fr||Fr,cs="".concat(br,"-cell"),Ai=He.useContext(Ss),Ci=Ai.onCellDblClick,Yr=function(bi){return wi.some(function(Di){return Di&&je(Ur,vi,bi,Di,wr)})},Wi=[],os=0;os1&&arguments[1]!==void 0?arguments[1]:!1;Sa(Mi),wr==null||wr(Mi),fa&&vo(Mi)},To=function(Mi,fa){Ms(Mi),fa&&lo(fa),vo(fa,Mi)},Ks=function(Mi){if(Rs(Mi),lo(Mi),Tr!==Dr){var fa=["decade","year"],gi=[].concat(fa,["month"]),Zi={quarter:[].concat(fa,["quarter"]),week:[].concat((0,st.Z)(gi),["week"]),date:[].concat((0,st.Z)(gi),["date"])},Eo=Zi[Dr]||gi,uo=Eo.indexOf(Tr),cl=Eo[uo+1];cl&&To(cl,Mi)}},Xs=He.useMemo(function(){var Qi,Mi;if(Array.isArray(Ur)){var fa=(0,nt.Z)(Ur,2);Qi=fa[0],Mi=fa[1]}else Qi=Ur;return!Qi&&!Mi?null:(Qi=Qi||Mi,Mi=Mi||Qi,ht.isAfter(Qi,Mi)?[Mi,Qi]:[Qi,Mi])},[Ur,ht]),ja=Cn(wi,vi,Si),Ma=cs[Ds]||Dd[Ds]||rs,Ha=He.useContext(Ss),Yo=He.useMemo(function(){return(0,rt.Z)((0,rt.Z)({},Ha),{},{hideHeader:Ai})},[Ha,Ai]),ta="".concat(Ci,"-panel"),du=pn(Se,["showWeek","prevIcon","nextIcon","superPrevIcon","superNextIcon","disabledDate","minDate","maxDate","onHover"]);return He.createElement(Ss.Provider,{value:Yo},He.createElement("div",{ref:Yr,tabIndex:Gn,className:St()(ta,(0,ct.Z)({},"".concat(ta,"-rtl"),Wt==="rtl"))},He.createElement(Ma,(0,fe.Z)({},du,{showTime:Di,prefixCls:Ci,locale:ei,generateConfig:ht,onModeChange:To,pickerValue:Ia,onPickerValueChange:function(Mi){lo(Mi,!0)},value:ea[0],onSelect:Ks,values:ea,cellRender:ja,hoverRangeValue:Xs,hoverValue:Lr}))))}var nr=He.memo(He.forwardRef(Wf)),Rh=nr;function ad(Se){var tt=Se.picker,Ye=Se.multiplePanel,ut=Se.pickerValue,ht=Se.onPickerValueChange,Wt=Se.needConfirm,Kt=Se.onSubmit,qt=Se.range,Gn=Se.hoverValue,rr=He.useContext(Ct),un=rr.prefixCls,dr=rr.generateConfig,Pr=He.useCallback(function(Fr,Mr){return qa(dr,tt,Fr,Mr)},[dr,tt]),fr=He.useMemo(function(){return Pr(ut,1)},[ut,Pr]),mr=function(Mr){ht(Pr(Mr,-1))},br={onCellDblClick:function(){Wt&&Kt()}},wr=tt==="time",Jn=(0,rt.Z)((0,rt.Z)({},Se),{},{hoverValue:null,hoverRangeValue:null,hideHeader:wr});return qt?Jn.hoverRangeValue=Gn:Jn.hoverValue=Gn,Ye?He.createElement("div",{className:"".concat(un,"-panels")},He.createElement(Ss.Provider,{value:(0,rt.Z)((0,rt.Z)({},br),{},{hideNext:!0})},He.createElement(Rh,Jn)),He.createElement(Ss.Provider,{value:(0,rt.Z)((0,rt.Z)({},br),{},{hidePrev:!0})},He.createElement(Rh,(0,fe.Z)({},Jn,{pickerValue:fr,onPickerValueChange:mr})))):He.createElement(Ss.Provider,{value:(0,rt.Z)({},br)},He.createElement(Rh,Jn))}function fc(Se){return typeof Se=="function"?Se():Se}function Do(Se){var tt=Se.prefixCls,Ye=Se.presets,ut=Se.onClick,ht=Se.onHover;return Ye.length?He.createElement("div",{className:"".concat(tt,"-presets")},He.createElement("ul",null,Ye.map(function(Wt,Kt){var qt=Wt.label,Gn=Wt.value;return He.createElement("li",{key:Kt,onClick:function(){ut(fc(Gn))},onMouseEnter:function(){ht(fc(Gn))},onMouseLeave:function(){ht(null)}},qt)}))):null}function Ho(Se){var tt=Se.panelRender,Ye=Se.internalMode,ut=Se.picker,ht=Se.showNow,Wt=Se.range,Kt=Se.multiple,qt=Se.activeInfo,Gn=qt===void 0?[0,0,0]:qt,rr=Se.presets,un=Se.onPresetHover,dr=Se.onPresetSubmit,Pr=Se.onFocus,fr=Se.onBlur,mr=Se.onPanelMouseDown,br=Se.direction,wr=Se.value,Jn=Se.onSelect,Fr=Se.isInvalid,Mr=Se.defaultOpenValue,Dr=Se.onOk,_r=Se.onSubmit,Lr=He.useContext(Ct),Ur=Lr.prefixCls,wi="".concat(Ur,"-panel"),vi=br==="rtl",Si=He.useRef(null),ai=He.useRef(null),cs=He.useState(0),Ai=(0,nt.Z)(cs,2),Ci=Ai[0],Yr=Ai[1],Wi=He.useState(0),os=(0,nt.Z)(Wi,2),Ls=os[0],Os=os[1],Ts=He.useState(0),zi=(0,nt.Z)(Ts,2),ei=zi[0],bi=zi[1],Di=function(Ks){Ks.width&&Yr(Ks.width)},Vi=(0,nt.Z)(Gn,3),Is=Vi[0],Gs=Vi[1],Tr=Vi[2],Ms=He.useState(0),Ds=(0,nt.Z)(Ms,2),na=Ds[0],da=Ds[1];He.useEffect(function(){da(10)},[Is]),He.useEffect(function(){if(Wt&&ai.current){var To,Ks=((To=Si.current)===null||To===void 0?void 0:To.offsetWidth)||0,Xs=ai.current.getBoundingClientRect();if(!Xs.height||Xs.right<0){da(function(Yo){return Math.max(0,Yo-1)});return}var ja=(vi?Gs-Ks:Is)-Xs.left;if(bi(ja),Ci&&Ci=qt&&Ye<=Gn)return Wt;var rr=Math.min(Math.abs(Ye-qt),Math.abs(Ye-Gn));rr0?Ic:of));var _o=$l+Jo,Zu=of-Ic+1;return String(Ic+(Zu+_o-Ic)%Zu)};switch(fa){case"Backspace":case"Delete":gi="",Zi=uo;break;case"ArrowLeft":gi="",cl(-1);break;case"ArrowRight":gi="",cl(1);break;case"ArrowUp":gi="",Zi=hc(1);break;case"ArrowDown":gi="",Zi=hc(-1);break;default:isNaN(Number(fa))||(gi=ei+fa,Zi=gi);break}if(gi!==null&&(bi(gi),gi.length>=Eo&&(cl(1),bi(""))),Zi!==null){var fu=da.slice(0,Rs)+ln(Zi,Eo)+da.slice(Ta);Ia(fu.slice(0,Kt.length))}na({})},ta=He.useRef();(0,at.Z)(function(){if(!(!Ci||!Kt||lo.current)){if(!Ua.match(da)){Ia(Kt);return}return va.current.setSelectionRange(Rs,Ta),ta.current=(0,pl.Z)(function(){va.current.setSelectionRange(Rs,Ta)}),function(){pl.Z.cancel(ta.current)}}},[Ua,Kt,Ci,da,Is,Rs,Ta,Ds,Ia]);var du=Kt?{onFocus:Xs,onBlur:Ma,onKeyDown:Yo,onMouseDown:To,onMouseUp:Ks,onPaste:vo}:{};return He.createElement("div",{ref:ka,className:St()(ai,(0,ct.Z)((0,ct.Z)({},"".concat(ai,"-active"),Ye&&ht),"".concat(ai,"-placeholder"),un))},He.createElement(Si,(0,fe.Z)({ref:va,"aria-invalid":wr,autoComplete:"off"},Fr,{onKeyDown:Ha,onBlur:ja},du,{value:da,onChange:Sa})),He.createElement(Wc,{type:"suffix",icon:Wt}),Jn)}),oo=Tl,Yf=["id","prefix","clearIcon","suffixIcon","separator","activeIndex","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","value","onChange","onSubmit","onInputChange","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onActiveInfo","placement","onMouseDown","required","aria-required","autoFocus","tabIndex"],Uo=["index"];function sf(Se,tt){var Ye=Se.id,ut=Se.prefix,ht=Se.clearIcon,Wt=Se.suffixIcon,Kt=Se.separator,qt=Kt===void 0?"~":Kt,Gn=Se.activeIndex,rr=Se.activeHelp,un=Se.allHelp,dr=Se.focused,Pr=Se.onFocus,fr=Se.onBlur,mr=Se.onKeyDown,br=Se.locale,wr=Se.generateConfig,Jn=Se.placeholder,Fr=Se.className,Mr=Se.style,Dr=Se.onClick,_r=Se.onClear,Lr=Se.value,Ur=Se.onChange,wi=Se.onSubmit,vi=Se.onInputChange,Si=Se.format,ai=Se.maskFormat,cs=Se.preserveInvalidOnBlur,Ai=Se.onInvalid,Ci=Se.disabled,Yr=Se.invalid,Wi=Se.inputReadOnly,os=Se.direction,Ls=Se.onOpenChange,Os=Se.onActiveInfo,Ts=Se.placement,zi=Se.onMouseDown,ei=Se.required,bi=Se["aria-required"],Di=Se.autoFocus,Vi=Se.tabIndex,Is=(0,_a.Z)(Se,Yf),Gs=os==="rtl",Tr=He.useContext(Ct),Ms=Tr.prefixCls,Ds=He.useMemo(function(){if(typeof Ye=="string")return[Ye];var ja=Ye||{};return[ja.start,ja.end]},[Ye]),na=He.useRef(),da=He.useRef(),ka=He.useRef(),va=function(Ma){var Ha;return(Ha=[da,ka][Ma])===null||Ha===void 0?void 0:Ha.current};He.useImperativeHandle(tt,function(){return{nativeElement:na.current,focus:function(Ma){if((0,Yn.Z)(Ma)==="object"){var Ha,Yo=Ma||{},ta=Yo.index,du=ta===void 0?0:ta,Qi=(0,_a.Z)(Yo,Uo);(Ha=va(du))===null||Ha===void 0||Ha.focus(Qi)}else{var Mi;(Mi=va(Ma!=null?Ma:0))===null||Mi===void 0||Mi.focus()}},blur:function(){var Ma,Ha;(Ma=va(0))===null||Ma===void 0||Ma.blur(),(Ha=va(1))===null||Ha===void 0||Ha.blur()}}});var Ua=ml(Is),ea=He.useMemo(function(){return Array.isArray(Jn)?Jn:[Jn,Jn]},[Jn]),xa=ul((0,rt.Z)((0,rt.Z)({},Se),{},{id:Ds,placeholder:ea})),Rs=(0,nt.Z)(xa,1),Ta=Rs[0],La=He.useState({position:"absolute",width:0}),Ia=(0,nt.Z)(La,2),Sa=Ia[0],vo=Ia[1],lo=(0,$e.zX)(function(){var ja=va(Gn);if(ja){var Ma=ja.nativeElement.getBoundingClientRect(),Ha=na.current.getBoundingClientRect(),Yo=Ma.left-Ha.left;vo(function(ta){return(0,rt.Z)((0,rt.Z)({},ta),{},{width:Ma.width,left:Yo})}),Os([Ma.left,Ma.right,Ha.width])}});He.useEffect(function(){lo()},[Gn]);var To=ht&&(Lr[0]&&!Ci[0]||Lr[1]&&!Ci[1]),Ks=Di&&!Ci[0],Xs=Di&&!Ks&&!Ci[1];return He.createElement(Ba.Z,{onResize:lo},He.createElement("div",(0,fe.Z)({},Ua,{className:St()(Ms,"".concat(Ms,"-range"),(0,ct.Z)((0,ct.Z)((0,ct.Z)((0,ct.Z)({},"".concat(Ms,"-focused"),dr),"".concat(Ms,"-disabled"),Ci.every(function(ja){return ja})),"".concat(Ms,"-invalid"),Yr.some(function(ja){return ja})),"".concat(Ms,"-rtl"),Gs),Fr),style:Mr,ref:na,onClick:Dr,onMouseDown:function(Ma){var Ha=Ma.target;Ha!==da.current.inputElement&&Ha!==ka.current.inputElement&&Ma.preventDefault(),zi==null||zi(Ma)}}),ut&&He.createElement("div",{className:"".concat(Ms,"-prefix")},ut),He.createElement(oo,(0,fe.Z)({ref:da},Ta(0),{autoFocus:Ks,tabIndex:Vi,"date-range":"start"})),He.createElement("div",{className:"".concat(Ms,"-range-separator")},qt),He.createElement(oo,(0,fe.Z)({ref:ka},Ta(1),{autoFocus:Xs,tabIndex:Vi,"date-range":"end"})),He.createElement("div",{className:"".concat(Ms,"-active-bar"),style:Sa}),He.createElement(Wc,{type:"suffix",icon:Wt}),To&&He.createElement(Td,{icon:ht,onClear:_r})))}var Wu=He.forwardRef(sf),Pu=Wu;function Jf(Se,tt){var Ye=Se!=null?Se:tt;return Array.isArray(Ye)?Ye:[Ye,Ye]}function Ja(Se){return Se===1?"end":"start"}function uu(Se,tt){var Ye=qo(Se,function(){var ra=Se.disabled,ns=Se.allowEmpty,ks=Jf(ra,!1),ya=Jf(ns,!1);return{disabled:ks,allowEmpty:ya}}),ut=(0,nt.Z)(Ye,6),ht=ut[0],Wt=ut[1],Kt=ut[2],qt=ut[3],Gn=ut[4],rr=ut[5],un=ht.prefixCls,dr=ht.styles,Pr=ht.classNames,fr=ht.defaultValue,mr=ht.value,br=ht.needConfirm,wr=ht.onKeyDown,Jn=ht.disabled,Fr=ht.allowEmpty,Mr=ht.disabledDate,Dr=ht.minDate,_r=ht.maxDate,Lr=ht.defaultOpen,Ur=ht.open,wi=ht.onOpenChange,vi=ht.locale,Si=ht.generateConfig,ai=ht.picker,cs=ht.showNow,Ai=ht.showToday,Ci=ht.showTime,Yr=ht.mode,Wi=ht.onPanelChange,os=ht.onCalendarChange,Ls=ht.onOk,Os=ht.defaultPickerValue,Ts=ht.pickerValue,zi=ht.onPickerValueChange,ei=ht.inputReadOnly,bi=ht.suffixIcon,Di=ht.onFocus,Vi=ht.onBlur,Is=ht.presets,Gs=ht.ranges,Tr=ht.components,Ms=ht.cellRender,Ds=ht.dateRender,na=ht.monthCellRender,da=ht.onClick,ka=Pa(tt),va=Cs(Ur,Lr,Jn,wi),Ua=(0,nt.Z)(va,2),ea=Ua[0],xa=Ua[1],Rs=function(ns,ks){(Jn.some(function(ya){return!ya})||!ns)&&xa(ns,ks)},Ta=cc(Si,vi,qt,!0,!1,fr,mr,os,Ls),La=(0,nt.Z)(Ta,5),Ia=La[0],Sa=La[1],vo=La[2],lo=La[3],To=La[4],Ks=vo(),Xs=Hn(Jn,Fr,ea),ja=(0,nt.Z)(Xs,9),Ma=ja[0],Ha=ja[1],Yo=ja[2],ta=ja[3],du=ja[4],Qi=ja[5],Mi=ja[6],fa=ja[7],gi=ja[8],Zi=function(ns,ks){Ha(!0),Di==null||Di(ns,{range:Ja(ks!=null?ks:ta)})},Eo=function(ns,ks){Ha(!1),Vi==null||Vi(ns,{range:Ja(ks!=null?ks:ta)})},uo=He.useMemo(function(){if(!Ci)return null;var ra=Ci.disabledTime,ns=ra?function(ks){var ya=Ja(ta),fl=Gt(Ks,Mi,ta);return ra(ks,ya,{from:fl})}:void 0;return(0,rt.Z)((0,rt.Z)({},Ci),{},{disabledTime:ns})},[Ci,ta,Ks,Mi]),cl=(0,$e.C8)([ai,ai],{value:Yr}),hc=(0,nt.Z)(cl,2),fu=hc[0],Fl=hc[1],Jo=fu[ta]||ai,hu=Jo==="date"&&uo?"datetime":Jo,_l=hu===ai&&hu!=="time",Ic=Gu(ai,Jo,cs,Ai,!0),of=ll(ht,Ia,Sa,vo,lo,Jn,qt,Ma,ea,rr),pc=(0,nt.Z)(of,2),Su=pc[0],$l=pc[1],_o=ri(Ks,Jn,Mi,Si,vi,Mr),Zu=Qt(Ks,rr,Fr),Fc=(0,nt.Z)(Zu,2),lf=Fc[0],xm=Fc[1],Np=sd(Si,vi,Ks,fu,ea,ta,Wt,_l,Os,Ts,uo==null?void 0:uo.defaultOpenValue,zi,Dr,_r),Fd=(0,nt.Z)(Np,2),Lp=Fd[0],Kf=Fd[1],mc=(0,$e.zX)(function(ra,ns,ks){var ya=Nn(fu,ta,ns);if((ya[0]!==fu[0]||ya[1]!==fu[1])&&Fl(ya),Wi&&ks!==!1){var fl=(0,st.Z)(Ks);ra&&(fl[ta]=ra),Wi(fl,ya)}}),qf=function(ns,ks){return Nn(Ks,ks,ns)},Yu=function(ns,ks){var ya=Ks;ns&&(ya=qf(ns,ta)),fa(ta);var fl=Qi(ya);lo(ya),Su(ta,fl===null),fl===null?Rs(!1,{force:!0}):ks||ka.current.focus({index:fl})},Op=function(ns){var ks,ya=ns.target.getRootNode();if(!ka.current.nativeElement.contains((ks=ya.activeElement)!==null&&ks!==void 0?ks:document.activeElement)){var fl=Jn.findIndex(function(fd){return!fd});fl>=0&&ka.current.focus({index:fl})}Rs(!0),da==null||da(ns)},Rp=function(){$l(null),Rs(!1,{force:!0})},zh=He.useState(null),ld=(0,nt.Z)(zh,2),_f=ld[0],Nd=ld[1],gc=He.useState(null),Ld=(0,nt.Z)(gc,2),uf=Ld[0],zp=Ld[1],cf=He.useMemo(function(){return uf||Ks},[Ks,uf]);He.useEffect(function(){ea||zp(null)},[ea]);var df=He.useState([0,0,0]),$n=(0,nt.Z)(df,2),ff=$n[0],bm=$n[1],Od=Ki(Is,Gs),ud=function(ns){zp(ns),Nd("preset")},cd=function(ns){var ks=$l(ns);ks&&Rs(!1,{force:!0})},Qc=function(ns){Yu(ns)},Mu=function(ns){zp(ns?qf(ns,ta):null),Nd("cell")},Nc=function(ns){Rs(!0),Zi(ns)},Ju=function(){Yo("panel")},Ku=function(ns){var ks=Nn(Ks,ta,ns);lo(ks),!br&&!Kt&&Wt===hu&&Yu(ns)},dd=function(){Rs(!1)},kp=Cn(Ms,Ds,na,Ja(ta)),kh=Ks[ta]||null,Du=(0,$e.zX)(function(ra){return rr(ra,{activeIndex:ta})}),Ti=He.useMemo(function(){var ra=(0,it.Z)(ht,!1),ns=(0,lt.Z)(ht,[].concat((0,st.Z)(Object.keys(ra)),["onChange","onCalendarChange","style","className","onPanelChange","disabledTime"]));return ns},[ht]),zs=He.createElement(Ho,(0,fe.Z)({},Ti,{showNow:Ic,showTime:uo,range:!0,multiplePanel:_l,activeInfo:ff,disabledDate:_o,onFocus:Nc,onBlur:Eo,onPanelMouseDown:Ju,picker:ai,mode:Jo,internalMode:hu,onPanelChange:mc,format:Gn,value:kh,isInvalid:Du,onChange:null,onSelect:Ku,pickerValue:Lp,defaultOpenValue:jn(Ci==null?void 0:Ci.defaultOpenValue)[ta],onPickerValueChange:Kf,hoverValue:cf,onHover:Mu,needConfirm:br,onSubmit:Yu,onOk:To,presets:Od,onPresetHover:ud,onPresetSubmit:cd,onNow:Qc,cellRender:kp})),dl=function(ns,ks){var ya=qf(ns,ks);lo(ya)},Zc=function(){Yo("input")},Hh=function(ns,ks){var ya=Mi.length,fl=Mi[ya-1];if(ya&&fl!==ks&&br&&!Fr[fl]&&!gi(fl)&&Ks[fl]){ka.current.focus({index:fl});return}Yo("input"),Rs(!0,{inherit:!0}),ta!==ks&&ea&&!br&&Kt&&Yu(null,!0),du(ks),Zi(ns,ks)},Eg=function(ns,ks){if(Rs(!1),!br&&Yo()==="input"){var ya=Qi(Ks);Su(ta,ya===null)}Eo(ns,ks)},vv=function(ns,ks){ns.key==="Tab"&&Yu(null,!0),wr==null||wr(ns,ks)},Em=He.useMemo(function(){return{prefixCls:un,locale:vi,generateConfig:Si,button:Tr.button,input:Tr.input}},[un,vi,Si,Tr.button,Tr.input]);if((0,at.Z)(function(){ea&&ta!==void 0&&mc(null,ai,!1)},[ea,ta,ai]),(0,at.Z)(function(){var ra=Yo();!ea&&ra==="input"&&(Rs(!1),Yu(null,!0)),!ea&&Kt&&!br&&ra==="panel"&&(Rs(!0),Yu())},[ea]),0)var by;return He.createElement(Ct.Provider,{value:Em},He.createElement(Ot,(0,fe.Z)({},Zt(ht),{popupElement:zs,popupStyle:dr.popup,popupClassName:Pr.popup,visible:ea,onClose:dd,range:!0}),He.createElement(Pu,(0,fe.Z)({},ht,{ref:ka,suffixIcon:bi,activeIndex:Ma||ea?ta:null,activeHelp:!!uf,allHelp:!!uf&&_f==="preset",focused:Ma,onFocus:Hh,onBlur:Eg,onKeyDown:vv,onSubmit:Yu,value:cf,maskFormat:Gn,onChange:dl,onInputChange:Zc,format:qt,inputReadOnly:ei,disabled:Jn,open:ea,onOpenChange:Rs,onClick:Op,onClear:Rp,invalid:lf,onInvalid:xm,onActiveInfo:bm}))))}var Tp=He.forwardRef(uu),Il=Tp,Tc=Me(11780);function od(Se){var tt=Se.prefixCls,Ye=Se.value,ut=Se.onRemove,ht=Se.removeIcon,Wt=ht===void 0?"\xD7":ht,Kt=Se.formatDate,qt=Se.disabled,Gn=Se.maxTagCount,rr=Se.placeholder,un="".concat(tt,"-selector"),dr="".concat(tt,"-selection"),Pr="".concat(dr,"-overflow");function fr(wr,Jn){return He.createElement("span",{className:St()("".concat(dr,"-item")),title:typeof wr=="string"?wr:null},He.createElement("span",{className:"".concat(dr,"-item-content")},wr),!qt&&Jn&&He.createElement("span",{onMouseDown:function(Mr){Mr.preventDefault()},onClick:Jn,className:"".concat(dr,"-item-remove")},Wt))}function mr(wr){var Jn=Kt(wr),Fr=function(Dr){Dr&&Dr.stopPropagation(),ut(wr)};return fr(Jn,Fr)}function br(wr){var Jn="+ ".concat(wr.length," ...");return fr(Jn)}return He.createElement("div",{className:un},He.createElement(Tc.Z,{prefixCls:Pr,data:Ye,renderItem:mr,renderRest:br,itemKey:function(Jn){return Kt(Jn)},maxCount:Gn}),!Ye.length&&He.createElement("span",{className:"".concat(tt,"-selection-placeholder")},rr))}var Id=["id","open","prefix","clearIcon","suffixIcon","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","internalPicker","value","onChange","onSubmit","onInputChange","multiple","maxTagCount","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onMouseDown","required","aria-required","autoFocus","tabIndex","removeIcon"];function Ip(Se,tt){var Ye=Se.id,ut=Se.open,ht=Se.prefix,Wt=Se.clearIcon,Kt=Se.suffixIcon,qt=Se.activeHelp,Gn=Se.allHelp,rr=Se.focused,un=Se.onFocus,dr=Se.onBlur,Pr=Se.onKeyDown,fr=Se.locale,mr=Se.generateConfig,br=Se.placeholder,wr=Se.className,Jn=Se.style,Fr=Se.onClick,Mr=Se.onClear,Dr=Se.internalPicker,_r=Se.value,Lr=Se.onChange,Ur=Se.onSubmit,wi=Se.onInputChange,vi=Se.multiple,Si=Se.maxTagCount,ai=Se.format,cs=Se.maskFormat,Ai=Se.preserveInvalidOnBlur,Ci=Se.onInvalid,Yr=Se.disabled,Wi=Se.invalid,os=Se.inputReadOnly,Ls=Se.direction,Os=Se.onOpenChange,Ts=Se.onMouseDown,zi=Se.required,ei=Se["aria-required"],bi=Se.autoFocus,Di=Se.tabIndex,Vi=Se.removeIcon,Is=(0,_a.Z)(Se,Id),Gs=Ls==="rtl",Tr=He.useContext(Ct),Ms=Tr.prefixCls,Ds=He.useRef(),na=He.useRef();He.useImperativeHandle(tt,function(){return{nativeElement:Ds.current,focus:function(Sa){var vo;(vo=na.current)===null||vo===void 0||vo.focus(Sa)},blur:function(){var Sa;(Sa=na.current)===null||Sa===void 0||Sa.blur()}}});var da=ml(Is),ka=function(Sa){Lr([Sa])},va=function(Sa){var vo=_r.filter(function(lo){return lo&&!je(mr,fr,lo,Sa,Dr)});Lr(vo),ut||Ur()},Ua=ul((0,rt.Z)((0,rt.Z)({},Se),{},{onChange:ka}),function(Ia){var Sa=Ia.valueTexts;return{value:Sa[0]||"",active:rr}}),ea=(0,nt.Z)(Ua,2),xa=ea[0],Rs=ea[1],Ta=!!(Wt&&_r.length&&!Yr),La=vi?He.createElement(He.Fragment,null,He.createElement(od,{prefixCls:Ms,value:_r,onRemove:va,formatDate:Rs,maxTagCount:Si,disabled:Yr,removeIcon:Vi,placeholder:br}),He.createElement("input",{className:"".concat(Ms,"-multiple-input"),value:_r.map(Rs).join(","),ref:na,readOnly:!0,autoFocus:bi,tabIndex:Di}),He.createElement(Wc,{type:"suffix",icon:Kt}),Ta&&He.createElement(Td,{icon:Wt,onClear:Mr})):He.createElement(oo,(0,fe.Z)({ref:na},xa(),{autoFocus:bi,tabIndex:Di,suffixIcon:Kt,clearIcon:Ta&&He.createElement(Td,{icon:Wt,onClear:Mr}),showActiveCls:!1}));return He.createElement("div",(0,fe.Z)({},da,{className:St()(Ms,(0,ct.Z)((0,ct.Z)((0,ct.Z)((0,ct.Z)((0,ct.Z)({},"".concat(Ms,"-multiple"),vi),"".concat(Ms,"-focused"),rr),"".concat(Ms,"-disabled"),Yr),"".concat(Ms,"-invalid"),Wi),"".concat(Ms,"-rtl"),Gs),wr),style:Jn,ref:Ds,onClick:Fr,onMouseDown:function(Sa){var vo,lo=Sa.target;lo!==((vo=na.current)===null||vo===void 0?void 0:vo.inputElement)&&Sa.preventDefault(),Ts==null||Ts(Sa)}}),ht&&He.createElement("div",{className:"".concat(Ms,"-prefix")},ht),La)}var Bu=He.forwardRef(Ip),Fp=Bu;function af(Se,tt){var Ye=qo(Se),ut=(0,nt.Z)(Ye,6),ht=ut[0],Wt=ut[1],Kt=ut[2],qt=ut[3],Gn=ut[4],rr=ut[5],un=ht,dr=un.prefixCls,Pr=un.styles,fr=un.classNames,mr=un.order,br=un.defaultValue,wr=un.value,Jn=un.needConfirm,Fr=un.onChange,Mr=un.onKeyDown,Dr=un.disabled,_r=un.disabledDate,Lr=un.minDate,Ur=un.maxDate,wi=un.defaultOpen,vi=un.open,Si=un.onOpenChange,ai=un.locale,cs=un.generateConfig,Ai=un.picker,Ci=un.showNow,Yr=un.showToday,Wi=un.showTime,os=un.mode,Ls=un.onPanelChange,Os=un.onCalendarChange,Ts=un.onOk,zi=un.multiple,ei=un.defaultPickerValue,bi=un.pickerValue,Di=un.onPickerValueChange,Vi=un.inputReadOnly,Is=un.suffixIcon,Gs=un.removeIcon,Tr=un.onFocus,Ms=un.onBlur,Ds=un.presets,na=un.components,da=un.cellRender,ka=un.dateRender,va=un.monthCellRender,Ua=un.onClick,ea=Pa(tt);function xa(Ti){return Ti===null?null:zi?Ti:Ti[0]}var Rs=Ps(cs,ai,Wt),Ta=Cs(vi,wi,[Dr],Si),La=(0,nt.Z)(Ta,2),Ia=La[0],Sa=La[1],vo=function(zs,dl,Zc){if(Os){var Hh=(0,rt.Z)({},Zc);delete Hh.range,Os(xa(zs),xa(dl),Hh)}},lo=function(zs){Ts==null||Ts(xa(zs))},To=cc(cs,ai,qt,!1,mr,br,wr,vo,lo),Ks=(0,nt.Z)(To,5),Xs=Ks[0],ja=Ks[1],Ma=Ks[2],Ha=Ks[3],Yo=Ks[4],ta=Ma(),du=Hn([Dr]),Qi=(0,nt.Z)(du,4),Mi=Qi[0],fa=Qi[1],gi=Qi[2],Zi=Qi[3],Eo=function(zs){fa(!0),Tr==null||Tr(zs,{})},uo=function(zs){fa(!1),Ms==null||Ms(zs,{})},cl=(0,$e.C8)(Ai,{value:os}),hc=(0,nt.Z)(cl,2),fu=hc[0],Fl=hc[1],Jo=fu==="date"&&Wi?"datetime":fu,hu=Gu(Ai,fu,Ci,Yr),_l=Fr&&function(Ti,zs){Fr(xa(Ti),xa(zs))},Ic=ll((0,rt.Z)((0,rt.Z)({},ht),{},{onChange:_l}),Xs,ja,Ma,Ha,[],qt,Mi,Ia,rr),of=(0,nt.Z)(Ic,2),pc=of[1],Su=Qt(ta,rr),$l=(0,nt.Z)(Su,2),_o=$l[0],Zu=$l[1],Fc=He.useMemo(function(){return _o.some(function(Ti){return Ti})},[_o]),lf=function(zs,dl){if(Di){var Zc=(0,rt.Z)((0,rt.Z)({},dl),{},{mode:dl.mode[0]});delete Zc.range,Di(zs[0],Zc)}},xm=sd(cs,ai,ta,[fu],Ia,Zi,Wt,!1,ei,bi,jn(Wi==null?void 0:Wi.defaultOpenValue),lf,Lr,Ur),Np=(0,nt.Z)(xm,2),Fd=Np[0],Lp=Np[1],Kf=(0,$e.zX)(function(Ti,zs,dl){if(Fl(zs),Ls&&dl!==!1){var Zc=Ti||ta[ta.length-1];Ls(Zc,zs)}}),mc=function(){pc(Ma()),Sa(!1,{force:!0})},qf=function(zs){!Dr&&!ea.current.nativeElement.contains(document.activeElement)&&ea.current.focus(),Sa(!0),Ua==null||Ua(zs)},Yu=function(){pc(null),Sa(!1,{force:!0})},Op=He.useState(null),Rp=(0,nt.Z)(Op,2),zh=Rp[0],ld=Rp[1],_f=He.useState(null),Nd=(0,nt.Z)(_f,2),gc=Nd[0],Ld=Nd[1],uf=He.useMemo(function(){var Ti=[gc].concat((0,st.Z)(ta)).filter(function(zs){return zs});return zi?Ti:Ti.slice(0,1)},[ta,gc,zi]),zp=He.useMemo(function(){return!zi&&gc?[gc]:ta.filter(function(Ti){return Ti})},[ta,gc,zi]);He.useEffect(function(){Ia||Ld(null)},[Ia]);var cf=Ki(Ds),df=function(zs){Ld(zs),ld("preset")},$n=function(zs){var dl=zi?Rs(Ma(),zs):[zs],Zc=pc(dl);Zc&&!zi&&Sa(!1,{force:!0})},ff=function(zs){$n(zs)},bm=function(zs){Ld(zs),ld("cell")},Od=function(zs){Sa(!0),Eo(zs)},ud=function(zs){if(gi("panel"),!(zi&&Jo!==Ai)){var dl=zi?Rs(Ma(),zs):[zs];Ha(dl),!Jn&&!Kt&&Wt===Jo&&mc()}},cd=function(){Sa(!1)},Qc=Cn(da,ka,va),Mu=He.useMemo(function(){var Ti=(0,it.Z)(ht,!1),zs=(0,lt.Z)(ht,[].concat((0,st.Z)(Object.keys(Ti)),["onChange","onCalendarChange","style","className","onPanelChange"]));return(0,rt.Z)((0,rt.Z)({},zs),{},{multiple:ht.multiple})},[ht]),Nc=He.createElement(Ho,(0,fe.Z)({},Mu,{showNow:hu,showTime:Wi,disabledDate:_r,onFocus:Od,onBlur:uo,picker:Ai,mode:fu,internalMode:Jo,onPanelChange:Kf,format:Gn,value:ta,isInvalid:rr,onChange:null,onSelect:ud,pickerValue:Fd,defaultOpenValue:Wi==null?void 0:Wi.defaultOpenValue,onPickerValueChange:Lp,hoverValue:uf,onHover:bm,needConfirm:Jn,onSubmit:mc,onOk:Yo,presets:cf,onPresetHover:df,onPresetSubmit:$n,onNow:ff,cellRender:Qc})),Ju=function(zs){Ha(zs)},Ku=function(){gi("input")},dd=function(zs){gi("input"),Sa(!0,{inherit:!0}),Eo(zs)},kp=function(zs){Sa(!1),uo(zs)},kh=function(zs,dl){zs.key==="Tab"&&mc(),Mr==null||Mr(zs,dl)},Du=He.useMemo(function(){return{prefixCls:dr,locale:ai,generateConfig:cs,button:na.button,input:na.input}},[dr,ai,cs,na.button,na.input]);return(0,at.Z)(function(){Ia&&Zi!==void 0&&Kf(null,Ai,!1)},[Ia,Zi,Ai]),(0,at.Z)(function(){var Ti=gi();!Ia&&Ti==="input"&&(Sa(!1),mc()),!Ia&&Kt&&!Jn&&Ti==="panel"&&mc()},[Ia]),He.createElement(Ct.Provider,{value:Du},He.createElement(Ot,(0,fe.Z)({},Zt(ht),{popupElement:Nc,popupStyle:Pr.popup,popupClassName:fr.popup,visible:Ia,onClose:cd}),He.createElement(Fp,(0,fe.Z)({},ht,{ref:ea,suffixIcon:Is,removeIcon:Gs,activeHelp:!!gc,allHelp:!!gc&&zh==="preset",focused:Mi,onFocus:dd,onBlur:kp,onKeyDown:kh,onSubmit:mc,value:zp,maskFormat:Gn,onChange:Ju,onInputChange:Ku,internalPicker:Wt,format:qt,inputReadOnly:Vi,disabled:Dr,open:Ia,onOpenChange:Sa,onClick:qf,onClear:Yu,invalid:Fc,onInvalid:function(zs){Zu(zs,0)}}))))}var Qu=He.forwardRef(af),cu=Qu,Ri=cu},63158:function(Tt,zn,Me){"use strict";var fe=Me(32855),st=Me(74430),rt=Me(11913),nt=Me(43079),$e=Me(59301),at=Me(92310),lt=Me.n(at),it=Me(18929),vt=Me(10228),He=["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"],ct=$e.forwardRef(function(Mt,Nt){var St,xt=Mt.prefixCls,gt=xt===void 0?"rc-switch":xt,Ct=Mt.className,Ft=Mt.checked,It=Mt.defaultChecked,Ot=Mt.disabled,ln=Mt.loadingIcon,jn=Mt.checkedChildren,Nn=Mt.unCheckedChildren,pn=Mt.onClick,ir=Mt.onChange,Gt=Mt.onKeyDown,Zt=(0,nt.Z)(Mt,He),Cn=(0,it.Z)(!1,{value:Ft,defaultValue:It}),Qt=(0,rt.Z)(Cn,2),sn=Qt[0],_t=Qt[1];function Zn(Rr,mt){var qe=sn;return Ot||(qe=Rr,_t(qe),ir==null||ir(qe,mt)),qe}function Yn(Rr){Rr.which===vt.Z.LEFT?Zn(!1,Rr):Rr.which===vt.Z.RIGHT&&Zn(!0,Rr),Gt==null||Gt(Rr)}function gn(Rr){var mt=Zn(!sn,Rr);pn==null||pn(mt,Rr)}var kn=lt()(gt,Ct,(St={},(0,st.Z)(St,"".concat(gt,"-checked"),sn),(0,st.Z)(St,"".concat(gt,"-disabled"),Ot),St));return $e.createElement("button",(0,fe.Z)({},Zt,{type:"button",role:"switch","aria-checked":sn,disabled:Ot,className:kn,ref:Nt,onKeyDown:Yn,onClick:gn}),ln,$e.createElement("span",{className:"".concat(gt,"-inner")},$e.createElement("span",{className:"".concat(gt,"-inner-checked")},jn),$e.createElement("span",{className:"".concat(gt,"-inner-unchecked")},Nn)))});ct.displayName="Switch",zn.Z=ct},22061:function(Tt,zn,Me){"use strict";Me.d(zn,{Z5:function(){return Vd},_l:function(){return ec},bK:function(){return Nl}});var fe=Me(59301),st=Me(97755),rt=Me(32855),nt=Me(59781),$e=fe.createContext(null),at=null;function lt(ge){ge()}var it=lt,vt=function(ve){return it=ve},He=function(){return it};function ct(){var ge=He(),ve=null,xe=null;return{clear:function(){ve=null,xe=null},notify:function(){ge(function(){for(var Ve=ve;Ve;)Ve.callback(),Ve=Ve.next})},get:function(){for(var Ve=[],Ge=ve;Ge;)Ve.push(Ge),Ge=Ge.next;return Ve},subscribe:function(Ve){var Ge=!0,Qe=xe={callback:Ve,next:null,prev:xe};return Qe.prev?Qe.prev.next=Qe:ve=Qe,function(){!Ge||ve===null||(Ge=!1,Qe.next?Qe.next.prev=Qe.prev:xe=Qe.prev,Qe.prev?Qe.prev.next=Qe.next:ve=Qe.next)}}}}var Mt={notify:function(){},get:function(){return[]}};function Nt(ge,ve){var xe,De=Mt;function Ve(Bt){return At(),De.subscribe(Bt)}function Ge(){De.notify()}function Qe(){Lt.onStateChange&&Lt.onStateChange()}function Je(){return!!xe}function At(){xe||(xe=ve?ve.addNestedSub(Qe):ge.subscribe(Qe),De=ct())}function zt(){xe&&(xe(),xe=void 0,De.clear(),De=Mt)}var Lt={addNestedSub:Ve,notifyNestedSubs:Ge,handleChangeWrapper:Qe,isSubscribed:Je,trySubscribe:At,tryUnsubscribe:zt,getListeners:function(){return De}};return Lt}var St=typeof window!="undefined"&&typeof window.document!="undefined"&&typeof window.document.createElement!="undefined"?fe.useLayoutEffect:fe.useEffect;function xt(ge){var ve=ge.store,xe=ge.context,De=ge.children,Ve=(0,fe.useMemo)(function(){var Je=Nt(ve);return{store:ve,subscription:Je}},[ve]),Ge=(0,fe.useMemo)(function(){return ve.getState()},[ve]);St(function(){var Je=Ve.subscription;return Je.onStateChange=Je.notifyNestedSubs,Je.trySubscribe(),Ge!==ve.getState()&&Je.notifyNestedSubs(),function(){Je.tryUnsubscribe(),Je.onStateChange=null}},[Ve,Ge]);var Qe=xe||$e;return fe.createElement(Qe.Provider,{value:Ve},De)}var gt=xt,Ct=Me(12687),Ft=Me(94266),It=Me.n(Ft),Ot=Me(53410),ln=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],jn=["reactReduxForwardedRef"],Nn=[],pn=[null,null],ir=function(ve){try{return JSON.stringify(ve)}catch(xe){return String(ve)}};function Gt(ge,ve){var xe=ge[1];return[ve.payload,xe+1]}function Zt(ge,ve,xe){St(function(){return ge.apply(void 0,ve)},xe)}function Cn(ge,ve,xe,De,Ve,Ge,Qe){ge.current=De,ve.current=Ve,xe.current=!1,Ge.current&&(Ge.current=null,Qe())}function Qt(ge,ve,xe,De,Ve,Ge,Qe,Je,At,zt){if(ge){var Lt=!1,Bt=null,Dt=function(){if(!Lt){var jr=ve.getState(),Qr,$r;try{Qr=De(jr,Ve.current)}catch(li){$r=li,Bt=li}$r||(Bt=null),Qr===Ge.current?Qe.current||At():(Ge.current=Qr,Je.current=Qr,Qe.current=!0,zt({type:"STORE_UPDATED",payload:{error:$r}}))}};xe.onStateChange=Dt,xe.trySubscribe(),Dt();var Ut=function(){if(Lt=!0,xe.tryUnsubscribe(),xe.onStateChange=null,Bt)throw Bt};return Ut}}var sn=function(){return[null,0]};function _t(ge,ve){ve===void 0&&(ve={});var xe=ve,De=xe.getDisplayName,Ve=De===void 0?function(qs){return"ConnectAdvanced("+qs+")"}:De,Ge=xe.methodName,Qe=Ge===void 0?"connectAdvanced":Ge,Je=xe.renderCountProp,At=Je===void 0?void 0:Je,zt=xe.shouldHandleStateChanges,Lt=zt===void 0?!0:zt,Bt=xe.storeKey,Dt=Bt===void 0?"store":Bt,Ut=xe.withRef,Sn=Ut===void 0?!1:Ut,jr=xe.forwardRef,Qr=jr===void 0?!1:jr,$r=xe.context,li=$r===void 0?$e:$r,ci=(0,Ct.Z)(xe,ln);if(0)var _i;var ia=li;return function(sa){var Yi=sa.displayName||sa.name||"Component",Va=Ve(Yi),wl=(0,rt.Z)({},ci,{getDisplayName:Ve,methodName:Qe,renderCountProp:At,shouldHandleStateChanges:Lt,storeKey:Dt,displayName:Va,wrappedComponentName:Yi,WrappedComponent:sa}),Lu=ci.pure;function Xl(tc){return ge(tc.dispatch,wl)}var dh=Lu?fe.useMemo:function(tc){return tc()};function Bf(tc){var Yp=(0,fe.useMemo)(function(){var Ou=tc.reactReduxForwardedRef,Fy=(0,Ct.Z)(tc,jn);return[tc.context,Ou,Fy]},[tc]),hh=Yp[0],Dv=Yp[1],Hm=Yp[2],Jp=(0,fe.useMemo)(function(){return hh&&hh.Consumer&&(0,Ot.isContextConsumer)(fe.createElement(hh.Consumer,null))?hh:ia},[hh,ia]),ph=(0,fe.useContext)(Jp),Um=!!tc.store&&!!tc.store.getState&&!!tc.store.dispatch,_A=!!ph&&!!ph.store,mh=Um?tc.store:ph.store,Au=(0,fe.useMemo)(function(){return Xl(mh)},[mh]),Ea=(0,fe.useMemo)(function(){if(!Lt)return pn;var Ou=Nt(mh,Um?null:ph.subscription),Fy=Ou.notifyNestedSubs.bind(Ou);return[Ou,Fy]},[mh,Um,ph]),gh=Ea[0],tr=Ea[1],Ll=(0,fe.useMemo)(function(){return Um?ph:(0,rt.Z)({},ph,{subscription:gh})},[Um,ph,gh]),ot=(0,fe.useReducer)(Gt,Nn,sn),Iy=ot[0],Tv=Iy[0],Aa=ot[1];if(Tv&&Tv.error)throw Tv.error;var $A=(0,fe.useRef)(),Iv=(0,fe.useRef)(Hm),e0=(0,fe.useRef)(),jm=(0,fe.useRef)(!1),Vm=dh(function(){return e0.current&&Hm===Iv.current?e0.current:Au(mh.getState(),Hm)},[mh,Tv,Hm]);Zt(Cn,[Iv,$A,jm,Hm,Vm,e0,tr]),Zt(Qt,[Lt,mh,gh,Au,Iv,$A,jm,e0,tr,Aa],[mh,gh,Au]);var t0=(0,fe.useMemo)(function(){return fe.createElement(sa,(0,rt.Z)({},Vm,{ref:Dv}))},[Dv,sa,Vm]),eE=(0,fe.useMemo)(function(){return Lt?fe.createElement(Jp.Provider,{value:Ll},t0):t0},[Jp,t0,Ll]);return eE}var Ed=Lu?fe.memo(Bf):Bf;if(Ed.WrappedComponent=sa,Ed.displayName=Bf.displayName=Va,Qr){var fh=fe.forwardRef(function(Yp,hh){return fe.createElement(Ed,(0,rt.Z)({},Yp,{reactReduxForwardedRef:hh}))});return fh.displayName=Va,fh.WrappedComponent=sa,It()(fh,sa)}return It()(Ed,sa)}}function Zn(ge,ve){return ge===ve?ge!==0||ve!==0||1/ge===1/ve:ge!==ge&&ve!==ve}function Yn(ge,ve){if(Zn(ge,ve))return!0;if(typeof ge!="object"||ge===null||typeof ve!="object"||ve===null)return!1;var xe=Object.keys(ge),De=Object.keys(ve);if(xe.length!==De.length)return!1;for(var Ve=0;Ve=0;De--){var Ve=ve[De](ge);if(Ve)return Ve}return function(Ge,Qe){throw new Error("Invalid value of type "+typeof ge+" for "+xe+" argument when connecting component "+Qe.wrappedComponentName+".")}}function Te(ge,ve){return ge===ve}function fn(ge){var ve=ge===void 0?{}:ge,xe=ve.connectHOC,De=xe===void 0?_t:xe,Ve=ve.mapStateToPropsFactories,Ge=Ve===void 0?hn:Ve,Qe=ve.mapDispatchToPropsFactories,Je=Qe===void 0?pi:Qe,At=ve.mergePropsFactories,zt=At===void 0?qr:At,Lt=ve.selectorFactory,Bt=Lt===void 0?we:Lt;return function(Ut,Sn,jr,Qr){Qr===void 0&&(Qr={});var $r=Qr,li=$r.pure,ci=li===void 0?!0:li,_i=$r.areStatesEqual,ia=_i===void 0?Te:_i,qs=$r.areOwnPropsEqual,sa=qs===void 0?Yn:qs,Yi=$r.areStatePropsEqual,Va=Yi===void 0?Yn:Yi,wl=$r.areMergedPropsEqual,Lu=wl===void 0?Yn:wl,Xl=(0,Ct.Z)($r,je),dh=Ke(Ut,Ge,"mapStateToProps"),Bf=Ke(Sn,Je,"mapDispatchToProps"),Ed=Ke(jr,zt,"mergeProps");return De(Bt,(0,rt.Z)({methodName:"connect",getDisplayName:function(tc){return"Connect("+tc+")"},shouldHandleStateChanges:!!Ut,initMapStateToProps:dh,initMapDispatchToProps:Bf,initMergeProps:Ed,pure:ci,areStatesEqual:ia,areOwnPropsEqual:sa,areStatePropsEqual:Va,areMergedPropsEqual:Lu},Xl))}}var Wn=fn();function Rn(){var ge=useContext(ReactReduxContext);return ge}function hs(ge){ge===void 0&&(ge=ReactReduxContext);var ve=ge===ReactReduxContext?useDefaultReduxContext:function(){return useContext(ge)};return function(){var De=ve(),Ve=De.store;return Ve}}var Ji=null;function Ni(ge){ge===void 0&&(ge=ReactReduxContext);var ve=ge===ReactReduxContext?useDefaultStore:createStoreHook(ge);return function(){var De=ve();return De.dispatch}}var Ra=null,ws=function(ve,xe){return ve===xe};function qo(ge,ve,xe,De){var Ve=useReducer(function(Sn){return Sn+1},0),Ge=Ve[1],Qe=useMemo(function(){return createSubscription(xe,De)},[xe,De]),Je=useRef(),At=useRef(),zt=useRef(),Lt=useRef(),Bt=xe.getState(),Dt;try{if(ge!==At.current||Bt!==zt.current||Je.current){var Ut=ge(Bt);Lt.current===void 0||!ve(Ut,Lt.current)?Dt=Ut:Dt=Lt.current}else Dt=Lt.current}catch(Sn){throw Je.current&&(Sn.message+=` The error may be correlated with this previous error: `+Je.current.stack+` `),Sn}return useIsomorphicLayoutEffect(function(){At.current=ge,zt.current=Bt,Lt.current=Dt,Je.current=void 0}),useIsomorphicLayoutEffect(function(){function Sn(){try{var jr=xe.getState();if(jr===zt.current)return;var Qr=At.current(jr);if(ve(Qr,Lt.current))return;Lt.current=Qr,zt.current=jr}catch($r){Je.current=$r}Ge()}return Qe.onStateChange=Sn,Qe.trySubscribe(),Sn(),function(){return Qe.tryUnsubscribe()}},[xe,Qe]),Dt}function pl(ge){ge===void 0&&(ge=ReactReduxContext);var ve=ge===ReactReduxContext?useDefaultReduxContext:function(){return useContext(ge)};return function(De,Ve){Ve===void 0&&(Ve=ws);var Ge=ve(),Qe=Ge.store,Je=Ge.subscription,At=qo(De,Ve,Qe,Je);return useDebugValue(At),At}}var Xi=null,Cs=Me(4676);vt(Cs.unstable_batchedUpdates);function Pa(ge,ve){if(ge.length!==ve.length)return!1;for(var xe=0;xe");return De.callbacks},De.setCallbacks=function(Je){De.callbacks=Je},De}var xe=ve.prototype;return xe.componentDidMount=function(){this.unbind=io(window,[{eventName:"error",fn:this.onWindowError}])},xe.componentWillUnmount=function(){this.unbind()},xe.componentDidCatch=function(Ve){if(Ve instanceof xr){this.setState({});return}throw Ve},xe.render=function(){return this.props.children(this.setCallbacks)},ve}(fe.Component),Mo=` Press space bar to start a drag. When dragging you can use the arrow keys to move the item around and escape to cancel. Some screen readers may require you to be in focus mode or to use your pass through key `,ps=function(ve){return ve+1},Dd=function(ve){return` You have lifted an item in position `+ps(ve.source.index)+` `},Wf=function(ve,xe){var De=ve.droppableId===xe.droppableId,Ve=ps(ve.index),Ge=ps(xe.index);return De?` You have moved the item from position `+Ve+` to position `+Ge+` `:` You have moved the item from position `+Ve+` in list `+ve.droppableId+` to list `+xe.droppableId+` in position `+Ge+` `},nr=function(ve,xe,De){var Ve=xe.droppableId===De.droppableId;return Ve?` The item `+ve+` has been combined with `+De.draggableId:` The item `+ve+` in list `+xe.droppableId+` has been combined with `+De.draggableId+` in list `+De.droppableId+` `},Rh=function(ve){var xe=ve.destination;if(xe)return Wf(ve.source,xe);var De=ve.combine;return De?nr(ve.draggableId,ve.source,De):"You are over an area that cannot be dropped on"},ad=function(ve){return` The item has returned to its starting position of `+ps(ve.index)+` `},fc=function(ve){if(ve.reason==="CANCEL")return` Movement cancelled. `+ad(ve.source)+` `;var xe=ve.destination,De=ve.combine;return xe?` You have dropped the item. `+Wf(ve.source,xe)+` `:De?` You have dropped the item. `+nr(ve.draggableId,ve.source,De)+` `:` The item has been dropped while not over a drop area. `+ad(ve.source)+` `},Do={dragHandleUsageInstructions:Mo,onDragStart:Dd,onDragUpdate:Rh,onDragEnd:fc},Ho={x:0,y:0},_a=function(ve,xe){return{x:ve.x+xe.x,y:ve.y+xe.y}},ul=function(ve,xe){return{x:ve.x-xe.x,y:ve.y-xe.y}},pa=function(ve,xe){return ve.x===xe.x&&ve.y===xe.y},ml=function(ve){return{x:ve.x!==0?-ve.x:0,y:ve.y!==0?-ve.y:0}},ql=function(ve,xe,De){var Ve;return De===void 0&&(De=0),Ve={},Ve[ve]=xe,Ve[ve==="x"?"y":"x"]=De,Ve},Mc=function(ve,xe){return Math.sqrt(Math.pow(xe.x-ve.x,2)+Math.pow(xe.y-ve.y,2))},Wc=function(ve,xe){return Math.min.apply(Math,xe.map(function(De){return Mc(ve,De)}))},Td=function(ve){return function(xe){return{x:ve(xe.x),y:ve(xe.y)}}},ho=function(ge,ve){var xe=So({top:Math.max(ve.top,ge.top),right:Math.min(ve.right,ge.right),bottom:Math.min(ve.bottom,ge.bottom),left:Math.max(ve.left,ge.left)});return xe.width<=0||xe.height<=0?null:xe},Dc=function(ve,xe){return{top:ve.top+xe.y,left:ve.left+xe.x,bottom:ve.bottom+xe.y,right:ve.right+xe.x}},xl=function(ve){return[{x:ve.left,y:ve.top},{x:ve.right,y:ve.top},{x:ve.left,y:ve.bottom},{x:ve.right,y:ve.bottom}]},Qf={top:0,right:0,bottom:0,left:0},bl=function(ve,xe){return xe?Dc(ve,xe.scroll.diff.displacement):ve},Zf=function(ve,xe,De){if(De&&De.increasedBy){var Ve;return(0,rt.Z)({},ve,(Ve={},Ve[xe.end]=ve[xe.end]+De.increasedBy[xe.line],Ve))}return ve},Xu=function(ve,xe){return xe&&xe.shouldClipSubject?ho(xe.pageMarginBox,ve):So(ve)},Tl=function(ge){var ve=ge.page,xe=ge.withPlaceholder,De=ge.axis,Ve=ge.frame,Ge=bl(ve.marginBox,Ve),Qe=Zf(Ge,De,xe),Je=Xu(Qe,Ve);return{page:ve,withPlaceholder:xe,active:Je}},oo=function(ge,ve){ge.frame||Ln(!1);var xe=ge.frame,De=ul(ve,xe.scroll.initial),Ve=ml(De),Ge=(0,rt.Z)({},xe,{scroll:{initial:xe.scroll.initial,current:ve,diff:{value:De,displacement:Ve},max:xe.scroll.max}}),Qe=Tl({page:ge.subject.page,withPlaceholder:ge.subject.withPlaceholder,axis:ge.axis,frame:Ge}),Je=(0,rt.Z)({},ge,{frame:Ge,subject:Qe});return Je};function Yf(ge){return Number.isInteger?Number.isInteger(ge):typeof ge=="number"&&isFinite(ge)&&Math.floor(ge)===ge}function Uo(ge){return Object.values?Object.values(ge):Object.keys(ge).map(function(ve){return ge[ve]})}function sf(ge,ve){if(ge.findIndex)return ge.findIndex(ve);for(var xe=0;xege.bottom,zt=De.leftge.right,Lt=At&&zt;if(Lt)return!0;var Bt=At&&Qe||zt&&Ge;return Bt}},Se=function(ge){var ve=cu(ge.top,ge.bottom),xe=cu(ge.left,ge.right);return function(De){var Ve=ve(De.top)&&ve(De.bottom)&&xe(De.left)&&xe(De.right);return Ve}},tt={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Ye={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},ut=function(ge){return function(ve){var xe=cu(ve.top,ve.bottom),De=cu(ve.left,ve.right);return function(Ve){return ge===tt?xe(Ve.top)&&xe(Ve.bottom):De(Ve.left)&&De(Ve.right)}}},ht=function(ve,xe){var De=xe.frame?xe.frame.scroll.diff.displacement:Ho;return Dc(ve,De)},Wt=function(ve,xe,De){return xe.subject.active?De(xe.subject.active)(ve):!1},Kt=function(ve,xe,De){return De(xe)(ve)},qt=function(ve){var xe=ve.target,De=ve.destination,Ve=ve.viewport,Ge=ve.withDroppableDisplacement,Qe=ve.isVisibleThroughFrameFn,Je=Ge?ht(xe,De):xe;return Wt(Je,De,Qe)&&Kt(Je,Ve,Qe)},Gn=function(ve){return qt((0,rt.Z)({},ve,{isVisibleThroughFrameFn:Ri}))},rr=function(ve){return qt((0,rt.Z)({},ve,{isVisibleThroughFrameFn:Se}))},un=function(ve){return qt((0,rt.Z)({},ve,{isVisibleThroughFrameFn:ut(ve.destination.axis)}))},dr=function(ve,xe,De){if(typeof De=="boolean")return De;if(!xe)return!0;var Ve=xe.invisible,Ge=xe.visible;if(Ve[ve])return!1;var Qe=Ge[ve];return Qe?Qe.shouldAnimate:!0};function Pr(ge,ve){var xe=ge.page.marginBox,De={top:ve.point.y,right:0,bottom:0,left:ve.point.x};return So(uc(xe,De))}function fr(ge){var ve=ge.afterDragging,xe=ge.destination,De=ge.displacedBy,Ve=ge.viewport,Ge=ge.forceShouldAnimate,Qe=ge.last;return ve.reduce(function(At,zt){var Lt=Pr(zt,De),Bt=zt.descriptor.id;At.all.push(Bt);var Dt=Gn({target:Lt,destination:xe,viewport:Ve,withDroppableDisplacement:!0});if(!Dt)return At.invisible[zt.descriptor.id]=!0,At;var Ut=dr(Bt,Qe,Ge),Sn={draggableId:Bt,shouldAnimate:Ut};return At.visible[Bt]=Sn,At},{all:[],visible:{},invisible:{}})}function mr(ge,ve){if(!ge.length)return 0;var xe=ge[ge.length-1].descriptor.index;return ve.inHomeList?xe:xe+1}function br(ge){var ve=ge.insideDestination,xe=ge.inHomeList,De=ge.displacedBy,Ve=ge.destination,Ge=mr(ve,{inHomeList:xe});return{displaced:af,displacedBy:De,at:{type:"REORDER",destination:{droppableId:Ve.descriptor.id,index:Ge}}}}function wr(ge){var ve=ge.draggable,xe=ge.insideDestination,De=ge.destination,Ve=ge.viewport,Ge=ge.displacedBy,Qe=ge.last,Je=ge.index,At=ge.forceShouldAnimate,zt=Bu(ve,De);if(Je==null)return br({insideDestination:xe,inHomeList:zt,displacedBy:Ge,destination:De});var Lt=Wu(xe,function(jr){return jr.descriptor.index===Je});if(!Lt)return br({insideDestination:xe,inHomeList:zt,displacedBy:Ge,destination:De});var Bt=Id(ve,xe),Dt=xe.indexOf(Lt),Ut=Bt.slice(Dt),Sn=fr({afterDragging:Ut,destination:De,displacedBy:Ge,last:Qe,viewport:Ve.frame,forceShouldAnimate:At});return{displaced:Sn,displacedBy:Ge,at:{type:"REORDER",destination:{droppableId:De.descriptor.id,index:Je}}}}function Jn(ge,ve){return!!ve.effected[ge]}var Fr=function(ge){var ve=ge.isMovingForward,xe=ge.destination,De=ge.draggables,Ve=ge.combine,Ge=ge.afterCritical;if(!xe.isCombineEnabled)return null;var Qe=Ve.draggableId,Je=De[Qe],At=Je.descriptor.index,zt=Jn(Qe,Ge);return zt?ve?At:At-1:ve?At+1:At},Mr=function(ge){var ve=ge.isMovingForward,xe=ge.isInHomeList,De=ge.insideDestination,Ve=ge.location;if(!De.length)return null;var Ge=Ve.index,Qe=ve?Ge+1:Ge-1,Je=De[0].descriptor.index,At=De[De.length-1].descriptor.index,zt=xe?At:At+1;return Qezt?null:Qe},Dr=function(ge){var ve=ge.isMovingForward,xe=ge.isInHomeList,De=ge.draggable,Ve=ge.draggables,Ge=ge.destination,Qe=ge.insideDestination,Je=ge.previousImpact,At=ge.viewport,zt=ge.afterCritical,Lt=Je.at;if(Lt||Ln(!1),Lt.type==="REORDER"){var Bt=Mr({isMovingForward:ve,isInHomeList:xe,location:Lt.destination,insideDestination:Qe});return Bt==null?null:wr({draggable:De,insideDestination:Qe,destination:Ge,viewport:At,last:Je.displaced,displacedBy:Je.displacedBy,index:Bt})}var Dt=Fr({isMovingForward:ve,destination:Ge,displaced:Je.displaced,draggables:Ve,combine:Lt.combine,afterCritical:zt});return Dt==null?null:wr({draggable:De,insideDestination:Qe,destination:Ge,viewport:At,last:Je.displaced,displacedBy:Je.displacedBy,index:Dt})},_r=function(ge){var ve=ge.displaced,xe=ge.afterCritical,De=ge.combineWith,Ve=ge.displacedBy,Ge=!!(ve.visible[De]||ve.invisible[De]);return Jn(De,xe)?Ge?Ho:ml(Ve.point):Ge?Ve.point:Ho},Lr=function(ge){var ve=ge.afterCritical,xe=ge.impact,De=ge.draggables,Ve=od(xe);Ve||Ln(!1);var Ge=Ve.draggableId,Qe=De[Ge].page.borderBox.center,Je=_r({displaced:xe.displaced,afterCritical:ve,combineWith:Ge,displacedBy:xe.displacedBy});return _a(Qe,Je)},Ur=function(ve,xe){return xe.margin[ve.start]+xe.borderBox[ve.size]/2},wi=function(ve,xe){return xe.margin[ve.end]+xe.borderBox[ve.size]/2},vi=function(ve,xe,De){return xe[ve.crossAxisStart]+De.margin[ve.crossAxisStart]+De.borderBox[ve.crossAxisSize]/2},Si=function(ve){var xe=ve.axis,De=ve.moveRelativeTo,Ve=ve.isMoving;return ql(xe.line,De.marginBox[xe.end]+Ur(xe,Ve),vi(xe,De.marginBox,Ve))},ai=function(ve){var xe=ve.axis,De=ve.moveRelativeTo,Ve=ve.isMoving;return ql(xe.line,De.marginBox[xe.start]-wi(xe,Ve),vi(xe,De.marginBox,Ve))},cs=function(ve){var xe=ve.axis,De=ve.moveInto,Ve=ve.isMoving;return ql(xe.line,De.contentBox[xe.start]+Ur(xe,Ve),vi(xe,De.contentBox,Ve))},Ai=function(ge){var ve=ge.impact,xe=ge.draggable,De=ge.draggables,Ve=ge.droppable,Ge=ge.afterCritical,Qe=Il(Ve.descriptor.id,De),Je=xe.page,At=Ve.axis;if(!Qe.length)return cs({axis:At,moveInto:Ve.page,isMoving:Je});var zt=ve.displaced,Lt=ve.displacedBy,Bt=zt.all[0];if(Bt){var Dt=De[Bt];if(Jn(Bt,Ge))return ai({axis:At,moveRelativeTo:Dt.page,isMoving:Je});var Ut=Ba(Dt.page,Lt.point);return ai({axis:At,moveRelativeTo:Ut,isMoving:Je})}var Sn=Qe[Qe.length-1];if(Sn.descriptor.id===xe.descriptor.id)return Je.borderBox.center;if(Jn(Sn.descriptor.id,Ge)){var jr=Ba(Sn.page,ml(Ge.displacedBy.point));return Si({axis:At,moveRelativeTo:jr,isMoving:Je})}return Si({axis:At,moveRelativeTo:Sn.page,isMoving:Je})},Ci=function(ge,ve){var xe=ge.frame;return xe?_a(ve,xe.scroll.diff.displacement):ve},Yr=function(ve){var xe=ve.impact,De=ve.draggable,Ve=ve.droppable,Ge=ve.draggables,Qe=ve.afterCritical,Je=De.page.borderBox.center,At=xe.at;return!Ve||!At?Je:At.type==="REORDER"?Ai({impact:xe,draggable:De,draggables:Ge,droppable:Ve,afterCritical:Qe}):Lr({impact:xe,draggables:Ge,afterCritical:Qe})},Wi=function(ge){var ve=Yr(ge),xe=ge.droppable,De=xe?Ci(xe,ve):ve;return De},os=function(ge,ve){var xe=ul(ve,ge.scroll.initial),De=ml(xe),Ve=So({top:ve.y,bottom:ve.y+ge.frame.height,left:ve.x,right:ve.x+ge.frame.width}),Ge={frame:Ve,scroll:{initial:ge.scroll.initial,max:ge.scroll.max,current:ve,diff:{value:xe,displacement:De}}};return Ge};function Ls(ge,ve){return ge.map(function(xe){return ve[xe]})}function Os(ge,ve){for(var xe=0;xe1?Lt.sort(function(Bt,Dt){return Vi(Bt)[Je.start]-Vi(Dt)[Je.start]})[0]:zt.sort(function(Bt,Dt){var Ut=Wc(xe,xl(Vi(Bt))),Sn=Wc(xe,xl(Vi(Dt)));return Ut!==Sn?Ut-Sn:Vi(Bt)[Je.start]-Vi(Dt)[Je.start]})[0]},Gs=function(ve,xe){var De=ve.page.borderBox.center;return Jn(ve.descriptor.id,xe)?ul(De,xe.displacedBy.point):De},Tr=function(ve,xe){var De=ve.page.borderBox;return Jn(ve.descriptor.id,xe)?Dc(De,ml(xe.displacedBy.point)):De},Ms=function(ge){var ve=ge.pageBorderBoxCenter,xe=ge.viewport,De=ge.destination,Ve=ge.insideDestination,Ge=ge.afterCritical,Qe=Ve.filter(function(Je){return rr({target:Tr(Je,Ge),destination:De,viewport:xe.frame,withDroppableDisplacement:!0})}).sort(function(Je,At){var zt=Mc(ve,Ci(De,Gs(Je,Ge))),Lt=Mc(ve,Ci(De,Gs(At,Ge)));return ztve.left&&ge.topve.top}function vo(ge){var ve=ge.pageBorderBox,xe=ge.draggable,De=ge.candidates,Ve=xe.page.borderBox.center,Ge=De.map(function(Qe){var Je=Qe.axis,At=ql(Qe.axis.line,ve.center[Je.line],Qe.page.borderBox.center[Je.crossAxisLine]);return{id:Qe.descriptor.id,distance:Mc(Ve,At)}}).sort(function(Qe,Je){return Je.distance-Qe.distance});return Ge[0]?Ge[0].id:null}function lo(ge){var ve=ge.pageBorderBox,xe=ge.draggable,De=ge.droppables,Ve=uu(De).filter(function(Ge){if(!Ge.isEnabled)return!1;var Qe=Ge.subject.active;if(!Qe||!Sa(ve,Qe))return!1;if(Ia(Qe)(ve.center))return!0;var Je=Ge.axis,At=Qe.center[Je.crossAxisLine],zt=ve[Je.crossAxisStart],Lt=ve[Je.crossAxisEnd],Bt=cu(Qe[Je.crossAxisStart],Qe[Je.crossAxisEnd]),Dt=Bt(zt),Ut=Bt(Lt);return!Dt&&!Ut?!0:Dt?ztAt});return Ve.length?Ve.length===1?Ve[0].descriptor.id:vo({pageBorderBox:ve,draggable:xe,candidates:Ve}):null}var To=function(ve,xe){return So(Dc(ve,xe))},Ks=function(ge,ve){var xe=ge.frame;return xe?To(ve,xe.scroll.diff.value):ve};function Xs(ge){var ve=ge.displaced,xe=ge.id;return!!(ve.visible[xe]||ve.invisible[xe])}function ja(ge){var ve=ge.draggable,xe=ge.closest,De=ge.inHomeList;return xe?De&&xe.descriptor.index>ve.descriptor.index?xe.descriptor.index-1:xe.descriptor.index:null}var Ma=function(ge){var ve=ge.pageBorderBoxWithDroppableScroll,xe=ge.draggable,De=ge.destination,Ve=ge.insideDestination,Ge=ge.last,Qe=ge.viewport,Je=ge.afterCritical,At=De.axis,zt=Ds(De.axis,xe.displaceBy),Lt=zt.value,Bt=ve[At.start],Dt=ve[At.end],Ut=Id(xe,Ve),Sn=Wu(Ut,function(Qr){var $r=Qr.descriptor.id,li=Qr.page.borderBox.center[At.line],ci=Jn($r,Je),_i=Xs({displaced:Ge,id:$r});return ci?_i?Dt<=li:Bt$r[Je.start]+ci&&Bt<$r[Je.end]-ci:Lt>$r[Je.start]-zt+ci&&Lt<$r[Je.end]-zt-ci:ia?Bt>$r[Je.start]+zt+ci&&Bt<$r[Je.end]+zt-ci:Lt>$r[Je.start]+ci&&Lt<$r[Je.end]-ci});if(!Ut)return null;var Sn={displacedBy:At,displaced:De.displaced,at:{type:"COMBINE",combine:{draggableId:Ut.descriptor.id,droppableId:Ve.descriptor.id}}};return Sn},ta=function(ge){var ve=ge.pageOffset,xe=ge.draggable,De=ge.draggables,Ve=ge.droppables,Ge=ge.previousImpact,Qe=ge.viewport,Je=ge.afterCritical,At=To(xe.page.borderBox,ve),zt=lo({pageBorderBox:At,draggable:xe,droppables:Ve});if(!zt)return Qu;var Lt=Ve[zt],Bt=Il(Lt.descriptor.id,De),Dt=Ks(Lt,At);return Yo({pageBorderBoxWithDroppableScroll:Dt,draggable:xe,previousImpact:Ge,destination:Lt,insideDestination:Bt,afterCritical:Je})||Ma({pageBorderBoxWithDroppableScroll:Dt,draggable:xe,destination:Lt,insideDestination:Bt,last:Ge.displaced,viewport:Qe,afterCritical:Je})},du=function(ge,ve){var xe;return(0,rt.Z)({},ge,(xe={},xe[ve.descriptor.id]=ve,xe))},Qi=function(ve){var xe=ve.previousImpact,De=ve.impact,Ve=ve.droppables,Ge=xa(xe),Qe=xa(De);if(!Ge||Ge===Qe)return Ve;var Je=Ve[Ge];if(!Je.subject.withPlaceholder)return Ve;var At=va(Je);return du(Ve,At)},Mi=function(ge){var ve=ge.draggable,xe=ge.draggables,De=ge.droppables,Ve=ge.previousImpact,Ge=ge.impact,Qe=Qi({previousImpact:Ve,impact:Ge,droppables:De}),Je=xa(Ge);if(!Je)return Qe;var At=De[Je];if(Bu(ve,At)||At.subject.withPlaceholder)return Qe;var zt=ka(At,ve,xe);return du(Qe,zt)},fa=function(ge){var ve=ge.state,xe=ge.clientSelection,De=ge.dimensions,Ve=ge.viewport,Ge=ge.impact,Qe=ge.scrollJumpRequest,Je=Ve||ve.viewport,At=De||ve.dimensions,zt=xe||ve.current.client.selection,Lt=ul(zt,ve.initial.client.selection),Bt={offset:Lt,selection:zt,borderBoxCenter:_a(ve.initial.client.borderBoxCenter,Lt)},Dt={selection:_a(Bt.selection,Je.scroll.current),borderBoxCenter:_a(Bt.borderBoxCenter,Je.scroll.current),offset:_a(Bt.offset,Je.scroll.diff.value)},Ut={client:Bt,page:Dt};if(ve.phase==="COLLECTING")return(0,rt.Z)({phase:"COLLECTING"},ve,{dimensions:At,viewport:Je,current:Ut});var Sn=At.draggables[ve.critical.draggable.id],jr=Ge||ta({pageOffset:Dt.offset,draggable:Sn,draggables:At.draggables,droppables:At.droppables,previousImpact:ve.impact,viewport:Je,afterCritical:ve.afterCritical}),Qr=Mi({draggable:Sn,impact:jr,previousImpact:ve.impact,draggables:At.draggables,droppables:At.droppables}),$r=(0,rt.Z)({},ve,{current:Ut,dimensions:{draggables:At.draggables,droppables:Qr},impact:jr,viewport:Je,scrollJumpRequest:Qe||null,forceShouldAnimate:Qe?!1:null});return $r};function gi(ge,ve){return ge.map(function(xe){return ve[xe]})}var Zi=function(ge){var ve=ge.impact,xe=ge.viewport,De=ge.draggables,Ve=ge.destination,Ge=ge.forceShouldAnimate,Qe=ve.displaced,Je=gi(Qe.all,De),At=fr({afterDragging:Je,destination:Ve,displacedBy:ve.displacedBy,viewport:xe.frame,forceShouldAnimate:Ge,last:Qe});return(0,rt.Z)({},ve,{displaced:At})},Eo=function(ge){var ve=ge.impact,xe=ge.draggable,De=ge.droppable,Ve=ge.draggables,Ge=ge.viewport,Qe=ge.afterCritical,Je=Wi({impact:ve,draggable:xe,draggables:Ve,droppable:De,afterCritical:Qe});return ei({pageBorderBoxCenter:Je,draggable:xe,viewport:Ge})},uo=function(ge){var ve=ge.state,xe=ge.dimensions,De=ge.viewport;ve.movementMode!=="SNAP"&&Ln(!1);var Ve=ve.impact,Ge=De||ve.viewport,Qe=xe||ve.dimensions,Je=Qe.draggables,At=Qe.droppables,zt=Je[ve.critical.draggable.id],Lt=xa(Ve);Lt||Ln(!1);var Bt=At[Lt],Dt=Zi({impact:Ve,viewport:Ge,destination:Bt,draggables:Je}),Ut=Eo({impact:Dt,draggable:zt,droppable:Bt,draggables:Je,viewport:Ge,afterCritical:ve.afterCritical});return fa({impact:Dt,clientSelection:Ut,state:ve,dimensions:Qe,viewport:Ge})},cl=function(ge){return{index:ge.index,droppableId:ge.droppableId}},hc=function(ge){var ve=ge.draggable,xe=ge.home,De=ge.draggables,Ve=ge.viewport,Ge=Ds(xe.axis,ve.displaceBy),Qe=Il(xe.descriptor.id,De),Je=Qe.indexOf(ve);Je===-1&&Ln(!1);var At=Qe.slice(Je+1),zt=At.reduce(function(Ut,Sn){return Ut[Sn.descriptor.id]=!0,Ut},{}),Lt={inVirtualList:xe.descriptor.mode==="virtual",displacedBy:Ge,effected:zt},Bt=fr({afterDragging:At,destination:xe,displacedBy:Ge,last:null,viewport:Ve.frame,forceShouldAnimate:!1}),Dt={displaced:Bt,displacedBy:Ge,at:{type:"REORDER",destination:cl(ve.descriptor)}};return{impact:Dt,afterCritical:Lt}},fu=function(ge,ve){return{draggables:ge.draggables,droppables:du(ge.droppables,ve)}},Fl=function(ve){},Jo=function(ve){},hu=function(ge){var ve=ge.draggable,xe=ge.offset,De=ge.initialWindowScroll,Ve=Ba(ve.client,xe),Ge=Na(Ve,De),Qe=(0,rt.Z)({},ve,{placeholder:(0,rt.Z)({},ve.placeholder,{client:Ve}),client:Ve,page:Ge});return Qe},_l=function(ge){var ve=ge.frame;return ve||Ln(!1),ve},Ic=function(ge){var ve=ge.additions,xe=ge.updatedDroppables,De=ge.viewport,Ve=De.scroll.diff.value;return ve.map(function(Ge){var Qe=Ge.descriptor.droppableId,Je=xe[Qe],At=_l(Je),zt=At.scroll.diff.value,Lt=_a(Ve,zt),Bt=hu({draggable:Ge,offset:Lt,initialWindowScroll:De.scroll.initial});return Bt})},of=function(ge){var ve=ge.state,xe=ge.published;Fl();var De=xe.modified.map(function(ci){var _i=ve.dimensions.droppables[ci.droppableId],ia=oo(_i,ci.scroll);return ia}),Ve=(0,rt.Z)({},ve.dimensions.droppables,{},Jf(De)),Ge=Ja(Ic({additions:xe.additions,updatedDroppables:Ve,viewport:ve.viewport})),Qe=(0,rt.Z)({},ve.dimensions.draggables,{},Ge);xe.removals.forEach(function(ci){delete Qe[ci]});var Je={droppables:Ve,draggables:Qe},At=xa(ve.impact),zt=At?Je.droppables[At]:null,Lt=Je.draggables[ve.critical.draggable.id],Bt=Je.droppables[ve.critical.droppable.id],Dt=hc({draggable:Lt,home:Bt,draggables:Qe,viewport:ve.viewport}),Ut=Dt.impact,Sn=Dt.afterCritical,jr=zt&&zt.isCombineEnabled?ve.impact:Ut,Qr=ta({pageOffset:ve.current.page.offset,draggable:Je.draggables[ve.critical.draggable.id],draggables:Je.draggables,droppables:Je.droppables,previousImpact:jr,viewport:ve.viewport,afterCritical:Sn});Jo();var $r=(0,rt.Z)({phase:"DRAGGING"},ve,{phase:"DRAGGING",impact:Qr,onLiftImpact:Ut,dimensions:Je,afterCritical:Sn,forceShouldAnimate:!1});if(ve.phase==="COLLECTING")return $r;var li=(0,rt.Z)({phase:"DROP_PENDING"},$r,{phase:"DROP_PENDING",reason:ve.reason,isWaiting:!1});return li},pc=function(ve){return ve.movementMode==="SNAP"},Su=function(ve,xe,De){var Ve=fu(ve.dimensions,xe);return!pc(ve)||De?fa({state:ve,dimensions:Ve}):uo({state:ve,dimensions:Ve})};function $l(ge){return ge.isDragging&&ge.movementMode==="SNAP"?(0,rt.Z)({phase:"DRAGGING"},ge,{scrollJumpRequest:null}):ge}var _o={phase:"IDLE",completed:null,shouldFlush:!1},Zu=function(ge,ve){if(ge===void 0&&(ge=_o),ve.type==="FLUSH")return(0,rt.Z)({},_o,{shouldFlush:!0});if(ve.type==="INITIAL_PUBLISH"){ge.phase!=="IDLE"&&Ln(!1);var xe=ve.payload,De=xe.critical,Ve=xe.clientSelection,Ge=xe.viewport,Qe=xe.dimensions,Je=xe.movementMode,At=Qe.draggables[De.draggable.id],zt=Qe.droppables[De.droppable.id],Lt={selection:Ve,borderBoxCenter:At.client.borderBox.center,offset:Ho},Bt={client:Lt,page:{selection:_a(Lt.selection,Ge.scroll.initial),borderBoxCenter:_a(Lt.selection,Ge.scroll.initial),offset:_a(Lt.selection,Ge.scroll.diff.value)}},Dt=uu(Qe.droppables).every(function(Ll){return!Ll.isFixedOnPage}),Ut=hc({draggable:At,home:zt,draggables:Qe.draggables,viewport:Ge}),Sn=Ut.impact,jr=Ut.afterCritical,Qr={phase:"DRAGGING",isDragging:!0,critical:De,movementMode:Je,dimensions:Qe,initial:Bt,current:Bt,isWindowScrollAllowed:Dt,impact:Sn,afterCritical:jr,onLiftImpact:Sn,viewport:Ge,scrollJumpRequest:null,forceShouldAnimate:null};return Qr}if(ve.type==="COLLECTION_STARTING"){if(ge.phase==="COLLECTING"||ge.phase==="DROP_PENDING")return ge;ge.phase!=="DRAGGING"&&Ln(!1);var $r=(0,rt.Z)({phase:"COLLECTING"},ge,{phase:"COLLECTING"});return $r}if(ve.type==="PUBLISH_WHILE_DRAGGING")return ge.phase==="COLLECTING"||ge.phase==="DROP_PENDING"||Ln(!1),of({state:ge,published:ve.payload});if(ve.type==="MOVE"){if(ge.phase==="DROP_PENDING")return ge;La(ge)||Ln(!1);var li=ve.payload.client;return pa(li,ge.current.client.selection)?ge:fa({state:ge,clientSelection:li,impact:pc(ge)?ge.impact:null})}if(ve.type==="UPDATE_DROPPABLE_SCROLL"){if(ge.phase==="DROP_PENDING"||ge.phase==="COLLECTING")return $l(ge);La(ge)||Ln(!1);var ci=ve.payload,_i=ci.id,ia=ci.newScroll,qs=ge.dimensions.droppables[_i];if(!qs)return ge;var sa=oo(qs,ia);return Su(ge,sa,!1)}if(ve.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(ge.phase==="DROP_PENDING")return ge;La(ge)||Ln(!1);var Yi=ve.payload,Va=Yi.id,wl=Yi.isEnabled,Lu=ge.dimensions.droppables[Va];Lu||Ln(!1),Lu.isEnabled===wl&&Ln(!1);var Xl=(0,rt.Z)({},Lu,{isEnabled:wl});return Su(ge,Xl,!0)}if(ve.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(ge.phase==="DROP_PENDING")return ge;La(ge)||Ln(!1);var dh=ve.payload,Bf=dh.id,Ed=dh.isCombineEnabled,fh=ge.dimensions.droppables[Bf];fh||Ln(!1),fh.isCombineEnabled===Ed&&Ln(!1);var tc=(0,rt.Z)({},fh,{isCombineEnabled:Ed});return Su(ge,tc,!0)}if(ve.type==="MOVE_BY_WINDOW_SCROLL"){if(ge.phase==="DROP_PENDING"||ge.phase==="DROP_ANIMATING")return ge;La(ge)||Ln(!1),ge.isWindowScrollAllowed||Ln(!1);var Yp=ve.payload.newScroll;if(pa(ge.viewport.scroll.current,Yp))return $l(ge);var hh=os(ge.viewport,Yp);return pc(ge)?uo({state:ge,viewport:hh}):fa({state:ge,viewport:hh})}if(ve.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!La(ge))return ge;var Dv=ve.payload.maxScroll;if(pa(Dv,ge.viewport.scroll.max))return ge;var Hm=(0,rt.Z)({},ge.viewport,{scroll:(0,rt.Z)({},ge.viewport.scroll,{max:Dv})});return(0,rt.Z)({phase:"DRAGGING"},ge,{viewport:Hm})}if(ve.type==="MOVE_UP"||ve.type==="MOVE_DOWN"||ve.type==="MOVE_LEFT"||ve.type==="MOVE_RIGHT"){if(ge.phase==="COLLECTING"||ge.phase==="DROP_PENDING")return ge;ge.phase!=="DRAGGING"&&Ln(!1);var Jp=Ta({state:ge,type:ve.type});return Jp?fa({state:ge,impact:Jp.impact,clientSelection:Jp.clientSelection,scrollJumpRequest:Jp.scrollJumpRequest}):ge}if(ve.type==="DROP_PENDING"){var ph=ve.payload.reason;ge.phase!=="COLLECTING"&&Ln(!1);var Um=(0,rt.Z)({phase:"DROP_PENDING"},ge,{phase:"DROP_PENDING",isWaiting:!0,reason:ph});return Um}if(ve.type==="DROP_ANIMATE"){var _A=ve.payload,mh=_A.completed,Au=_A.dropDuration,Ea=_A.newHomeClientOffset;ge.phase==="DRAGGING"||ge.phase==="DROP_PENDING"||Ln(!1);var gh={phase:"DROP_ANIMATING",completed:mh,dropDuration:Au,newHomeClientOffset:Ea,dimensions:ge.dimensions};return gh}if(ve.type==="DROP_COMPLETE"){var tr=ve.payload.completed;return{phase:"IDLE",completed:tr,shouldFlush:!1}}return ge},Fc=function(ve){return{type:"BEFORE_INITIAL_CAPTURE",payload:ve}},lf=function(ve){return{type:"LIFT",payload:ve}},xm=function(ve){return{type:"INITIAL_PUBLISH",payload:ve}},Np=function(ve){return{type:"PUBLISH_WHILE_DRAGGING",payload:ve}},Fd=function(){return{type:"COLLECTION_STARTING",payload:null}},Lp=function(ve){return{type:"UPDATE_DROPPABLE_SCROLL",payload:ve}},Kf=function(ve){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:ve}},mc=function(ve){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:ve}},qf=function(ve){return{type:"MOVE",payload:ve}},Yu=function(ve){return{type:"MOVE_BY_WINDOW_SCROLL",payload:ve}},Op=function(ve){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:ve}},Rp=function(){return{type:"MOVE_UP",payload:null}},zh=function(){return{type:"MOVE_DOWN",payload:null}},ld=function(){return{type:"MOVE_RIGHT",payload:null}},_f=function(){return{type:"MOVE_LEFT",payload:null}},Nd=function(){return{type:"FLUSH",payload:null}},gc=function(ve){return{type:"DROP_ANIMATE",payload:ve}},Ld=function(ve){return{type:"DROP_COMPLETE",payload:ve}},uf=function(ve){return{type:"DROP",payload:ve}},zp=function(ve){return{type:"DROP_PENDING",payload:ve}},cf=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};function df(ge){if(!(ge.length<=1)){for(var ve=ge.map(function(Je){return Je.descriptor.index}),xe={},De=1;De=kh)return dd;var Ge=Ve/kh,Qe=Ku+kp*Ge,Je=De==="CANCEL"?Qe*Du:Qe;return Number(Je.toFixed(2))},zs=function(ge){var ve=ge.impact,xe=ge.draggable,De=ge.dimensions,Ve=ge.viewport,Ge=ge.afterCritical,Qe=De.draggables,Je=De.droppables,At=xa(ve),zt=At?Je[At]:null,Lt=Je[xe.descriptor.droppableId],Bt=Eo({impact:ve,draggable:xe,draggables:Qe,afterCritical:Ge,droppable:zt||Lt,viewport:Ve}),Dt=ul(Bt,xe.client.borderBox.center);return Dt},dl=function(ge){var ve=ge.draggables,xe=ge.reason,De=ge.lastImpact,Ve=ge.home,Ge=ge.viewport,Qe=ge.onLiftImpact;if(!De.at||xe!=="DROP"){var Je=Zi({draggables:ve,impact:Qe,destination:Ve,viewport:Ge,forceShouldAnimate:!0});return{impact:Je,didDropInsideDroppable:!1}}if(De.at.type==="REORDER")return{impact:De,didDropInsideDroppable:!0};var At=(0,rt.Z)({},De,{displaced:af});return{impact:At,didDropInsideDroppable:!0}},Zc=function(ge){var ve=ge.getState,xe=ge.dispatch;return function(De){return function(Ve){if(Ve.type!=="DROP"){De(Ve);return}var Ge=ve(),Qe=Ve.payload.reason;if(Ge.phase==="COLLECTING"){xe(zp({reason:Qe}));return}if(Ge.phase!=="IDLE"){var Je=Ge.phase==="DROP_PENDING"&&Ge.isWaiting;Je&&Ln(!1),Ge.phase==="DRAGGING"||Ge.phase==="DROP_PENDING"||Ln(!1);var At=Ge.critical,zt=Ge.dimensions,Lt=zt.draggables[Ge.critical.draggable.id],Bt=dl({reason:Qe,lastImpact:Ge.impact,afterCritical:Ge.afterCritical,onLiftImpact:Ge.onLiftImpact,home:Ge.dimensions.droppables[Ge.critical.droppable.id],viewport:Ge.viewport,draggables:Ge.dimensions.draggables}),Dt=Bt.impact,Ut=Bt.didDropInsideDroppable,Sn=Ut?Tc(Dt):null,jr=Ut?od(Dt):null,Qr={index:At.draggable.index,droppableId:At.droppable.id},$r={draggableId:Lt.descriptor.id,type:Lt.descriptor.type,source:Qr,reason:Qe,mode:Ge.movementMode,destination:Sn,combine:jr},li=zs({impact:Dt,draggable:Lt,dimensions:zt,viewport:Ge.viewport,afterCritical:Ge.afterCritical}),ci={critical:Ge.critical,afterCritical:Ge.afterCritical,result:$r,impact:Dt},_i=!pa(Ge.current.client.offset,li)||!!$r.combine;if(!_i){xe(Ld({completed:ci}));return}var ia=Ti({current:Ge.current.client.offset,destination:li,reason:Qe}),qs={newHomeClientOffset:li,dropDuration:ia,completed:ci};xe(gc(qs))}}}},Hh=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function Eg(ge){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(xe){xe.target!==window&&xe.target!==window.document||ge()}}}function vv(ge){var ve=ge.onWindowScroll;function xe(){ve(Hh())}var De=Ss(xe),Ve=Eg(De),Ge=Da;function Qe(){return Ge!==Da}function Je(){Qe()&&Ln(!1),Ge=io(window,[Ve])}function At(){Qe()||Ln(!1),De.cancel(),Ge(),Ge=Da}return{start:Je,stop:At,isActive:Qe}}var Em=function(ve){return ve.type==="DROP_COMPLETE"||ve.type==="DROP_ANIMATE"||ve.type==="FLUSH"},by=function(ge){var ve=vv({onWindowScroll:function(De){ge.dispatch(Yu({newScroll:De}))}});return function(xe){return function(De){!ve.isActive()&&De.type==="INITIAL_PUBLISH"&&ve.start(),ve.isActive()&&Em(De)&&ve.stop(),xe(De)}}},ra=function(ge){var ve=!1,xe=!1,De=setTimeout(function(){xe=!0}),Ve=function(Qe){ve||xe||(ve=!0,ge(Qe),clearTimeout(De))};return Ve.wasCalled=function(){return ve},Ve},ns=function(){var ge=[],ve=function(Ge){var Qe=sf(ge,function(zt){return zt.timerId===Ge});Qe===-1&&Ln(!1);var Je=ge.splice(Qe,1),At=Je[0];At.callback()},xe=function(Ge){var Qe=setTimeout(function(){return ve(Qe)}),Je={timerId:Qe,callback:Ge};ge.push(Je)},De=function(){if(ge.length){var Ge=[].concat(ge);ge.length=0,Ge.forEach(function(Qe){clearTimeout(Qe.timerId),Qe.callback()})}};return{add:xe,flush:De}},ks=function(ve,xe){return ve==null&&xe==null?!0:ve==null||xe==null?!1:ve.droppableId===xe.droppableId&&ve.index===xe.index},ya=function(ve,xe){return ve==null&&xe==null?!0:ve==null||xe==null?!1:ve.draggableId===xe.draggableId&&ve.droppableId===xe.droppableId},fl=function(ve,xe){if(ve===xe)return!0;var De=ve.draggable.id===xe.draggable.id&&ve.draggable.droppableId===xe.draggable.droppableId&&ve.draggable.type===xe.draggable.type&&ve.draggable.index===xe.draggable.index,Ve=ve.droppable.id===xe.droppable.id&&ve.droppable.type===xe.droppable.type;return De&&Ve},fd=function(ve,xe){Fl(),xe(),Jo()},Lc=function(ve,xe){return{draggableId:ve.draggable.id,type:ve.droppable.type,source:{droppableId:ve.droppable.id,index:ve.draggable.index},mode:xe}},wm=function(ve,xe,De,Ve){if(!ve){De(Ve(xe));return}var Ge=ra(De),Qe={announce:Ge};ve(xe,Qe),Ge.wasCalled()||De(Ve(xe))},Ey=function(ge,ve){var xe=ns(),De=null,Ve=function(Dt,Ut){De&&Ln(!1),fd("onBeforeCapture",function(){var Sn=ge().onBeforeCapture;if(Sn){var jr={draggableId:Dt,mode:Ut};Sn(jr)}})},Ge=function(Dt,Ut){De&&Ln(!1),fd("onBeforeDragStart",function(){var Sn=ge().onBeforeDragStart;Sn&&Sn(Lc(Dt,Ut))})},Qe=function(Dt,Ut){De&&Ln(!1);var Sn=Lc(Dt,Ut);De={mode:Ut,lastCritical:Dt,lastLocation:Sn.source,lastCombine:null},xe.add(function(){fd("onDragStart",function(){return wm(ge().onDragStart,Sn,ve,Do.onDragStart)})})},Je=function(Dt,Ut){var Sn=Tc(Ut),jr=od(Ut);De||Ln(!1);var Qr=!fl(Dt,De.lastCritical);Qr&&(De.lastCritical=Dt);var $r=!ks(De.lastLocation,Sn);$r&&(De.lastLocation=Sn);var li=!ya(De.lastCombine,jr);if(li&&(De.lastCombine=jr),!(!Qr&&!$r&&!li)){var ci=(0,rt.Z)({},Lc(Dt,De.mode),{combine:jr,destination:Sn});xe.add(function(){fd("onDragUpdate",function(){return wm(ge().onDragUpdate,ci,ve,Do.onDragUpdate)})})}},At=function(){De||Ln(!1),xe.flush()},zt=function(Dt){De||Ln(!1),De=null,fd("onDragEnd",function(){return wm(ge().onDragEnd,Dt,ve,Do.onDragEnd)})},Lt=function(){if(De){var Dt=(0,rt.Z)({},Lc(De.lastCritical,De.mode),{combine:null,destination:null,reason:"CANCEL"});zt(Dt)}};return{beforeCapture:Ve,beforeStart:Ge,start:Qe,update:Je,flush:At,drop:zt,abort:Lt}},wy=function(ge,ve){var xe=Ey(ge,ve);return function(De){return function(Ve){return function(Ge){if(Ge.type==="BEFORE_INITIAL_CAPTURE"){xe.beforeCapture(Ge.payload.draggableId,Ge.payload.movementMode);return}if(Ge.type==="INITIAL_PUBLISH"){var Qe=Ge.payload.critical;xe.beforeStart(Qe,Ge.payload.movementMode),Ve(Ge),xe.start(Qe,Ge.payload.movementMode);return}if(Ge.type==="DROP_COMPLETE"){var Je=Ge.payload.completed.result;xe.flush(),Ve(Ge),xe.drop(Je);return}if(Ve(Ge),Ge.type==="FLUSH"){xe.abort();return}var At=De.getState();At.phase==="DRAGGING"&&xe.update(At.critical,At.impact)}}}},Av=function(ge){return function(ve){return function(xe){if(xe.type!=="DROP_ANIMATION_FINISHED"){ve(xe);return}var De=ge.getState();De.phase!=="DROP_ANIMATING"&&Ln(!1),ge.dispatch(Ld({completed:De.completed}))}}},yv=function(ge){var ve=null,xe=null;function De(){xe&&(cancelAnimationFrame(xe),xe=null),ve&&(ve(),ve=null)}return function(Ve){return function(Ge){if((Ge.type==="FLUSH"||Ge.type==="DROP_COMPLETE"||Ge.type==="DROP_ANIMATION_FINISHED")&&De(),Ve(Ge),Ge.type==="DROP_ANIMATE"){var Qe={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){var At=ge.getState();At.phase==="DROP_ANIMATING"&&ge.dispatch(cf())}};xe=requestAnimationFrame(function(){xe=null,ve=io(window,[Qe])})}}}},xv=function(ge){return function(){return function(ve){return function(xe){(xe.type==="DROP_COMPLETE"||xe.type==="FLUSH"||xe.type==="DROP_ANIMATE")&&ge.stopPublishing(),ve(xe)}}}},Cy=function(ge){var ve=!1;return function(){return function(xe){return function(De){if(De.type==="INITIAL_PUBLISH"){ve=!0,ge.tryRecordFocus(De.payload.critical.draggable.id),xe(De),ge.tryRestoreFocusRecorded();return}if(xe(De),!!ve){if(De.type==="FLUSH"){ve=!1,ge.tryRestoreFocusRecorded();return}if(De.type==="DROP_COMPLETE"){ve=!1;var Ve=De.payload.completed.result;Ve.combine&&ge.tryShiftRecord(Ve.draggableId,Ve.combine.draggableId),ge.tryRestoreFocusRecorded()}}}}}},wg=function(ve){return ve.type==="DROP_COMPLETE"||ve.type==="DROP_ANIMATE"||ve.type==="FLUSH"},Cm=function(ge){return function(ve){return function(xe){return function(De){if(wg(De)){ge.stop(),xe(De);return}if(De.type==="INITIAL_PUBLISH"){xe(De);var Ve=ve.getState();Ve.phase!=="DRAGGING"&&Ln(!1),ge.start(Ve);return}xe(De),ge.scroll(ve.getState())}}}},Cg=function(ge){return function(ve){return function(xe){if(ve(xe),xe.type==="PUBLISH_WHILE_DRAGGING"){var De=ge.getState();De.phase==="DROP_PENDING"&&(De.isWaiting||ge.dispatch(uf({reason:De.reason})))}}}},NA=nt.qC,bv=function(ge){var ve=ge.dimensionMarshal,xe=ge.focusMarshal,De=ge.styleMarshal,Ve=ge.getResponders,Ge=ge.announce,Qe=ge.autoScroller;return(0,nt.MT)(Zu,NA((0,nt.md)(bm(De),xv(ve),ff(ve),Zc,Av,yv,Cg,Cm(Qe),by,Cy(xe),wy(Ve,Ge))))},Pg=function(){return{additions:{},removals:{},modified:{}}};function $f(ge){var ve=ge.registry,xe=ge.callbacks,De=Pg(),Ve=null,Ge=function(){Ve||(xe.collectionStarting(),Ve=requestAnimationFrame(function(){Ve=null,Fl();var Lt=De,Bt=Lt.additions,Dt=Lt.removals,Ut=Lt.modified,Sn=Object.keys(Bt).map(function($r){return ve.draggable.getById($r).getDimension(Ho)}).sort(function($r,li){return $r.descriptor.index-li.descriptor.index}),jr=Object.keys(Ut).map(function($r){var li=ve.droppable.getById($r),ci=li.callbacks.getScrollWhileDragging();return{droppableId:$r,scroll:ci}}),Qr={additions:Sn,removals:Object.keys(Dt),modified:jr};De=Pg(),Jo(),xe.publish(Qr)}))},Qe=function(Lt){var Bt=Lt.descriptor.id;De.additions[Bt]=Lt,De.modified[Lt.descriptor.droppableId]=!0,De.removals[Bt]&&delete De.removals[Bt],Ge()},Je=function(Lt){var Bt=Lt.descriptor;De.removals[Bt.id]=!0,De.modified[Bt.droppableId]=!0,De.additions[Bt.id]&&delete De.additions[Bt.id],Ge()},At=function(){Ve&&(cancelAnimationFrame(Ve),Ve=null,De=Pg())};return{add:Qe,remove:Je,stop:At}}var LA=function(ge){var ve=ge.scrollHeight,xe=ge.scrollWidth,De=ge.height,Ve=ge.width,Ge=ul({x:xe,y:ve},{x:Ve,y:De}),Qe={x:Math.max(0,Ge.x),y:Math.max(0,Ge.y)};return Qe},Bg=function(){var ge=document.documentElement;return ge||Ln(!1),ge},vc=function(){var ge=Bg(),ve=LA({scrollHeight:ge.scrollHeight,scrollWidth:ge.scrollWidth,width:ge.clientWidth,height:ge.clientHeight});return ve},OA=function(){var ge=Hh(),ve=vc(),xe=ge.y,De=ge.x,Ve=Bg(),Ge=Ve.clientWidth,Qe=Ve.clientHeight,Je=De+Ge,At=xe+Qe,zt=So({top:xe,left:De,right:Je,bottom:At}),Lt={frame:zt,scroll:{initial:ge,current:ge,max:ve,diff:{value:Ho,displacement:Ho}}};return Lt},RA=function(ge){var ve=ge.critical,xe=ge.scrollOptions,De=ge.registry;Fl();var Ve=OA(),Ge=Ve.scroll.current,Qe=ve.droppable,Je=De.droppable.getAllByType(Qe.type).map(function(Bt){return Bt.callbacks.getDimensionAndWatchScroll(Ge,xe)}),At=De.draggable.getAllByType(ve.draggable.type).map(function(Bt){return Bt.getDimension(Ge)}),zt={draggables:Ja(At),droppables:Jf(Je)};Jo();var Lt={dimensions:zt,critical:ve,viewport:Ve};return Lt};function Sg(ge,ve,xe){if(xe.descriptor.id===ve.id||xe.descriptor.type!==ve.type)return!1;var De=ge.droppable.getById(xe.descriptor.droppableId);return De.descriptor.mode==="virtual"}var Ac=function(ge,ve){var xe=null,De=$f({callbacks:{publish:ve.publishWhileDragging,collectionStarting:ve.collectionStarting},registry:ge}),Ve=function(Ut,Sn){ge.droppable.exists(Ut)||Ln(!1),xe&&ve.updateDroppableIsEnabled({id:Ut,isEnabled:Sn})},Ge=function(Ut,Sn){xe&&(ge.droppable.exists(Ut)||Ln(!1),ve.updateDroppableIsCombineEnabled({id:Ut,isCombineEnabled:Sn}))},Qe=function(Ut,Sn){xe&&(ge.droppable.exists(Ut)||Ln(!1),ve.updateDroppableScroll({id:Ut,newScroll:Sn}))},Je=function(Ut,Sn){xe&&ge.droppable.getById(Ut).callbacks.scroll(Sn)},At=function(){if(xe){De.stop();var Ut=xe.critical.droppable;ge.droppable.getAllByType(Ut.type).forEach(function(Sn){return Sn.callbacks.dragStopped()}),xe.unsubscribe(),xe=null}},zt=function(Ut){xe||Ln(!1);var Sn=xe.critical.draggable;Ut.type==="ADDITION"&&Sg(ge,Sn,Ut.value)&&De.add(Ut.value),Ut.type==="REMOVAL"&&Sg(ge,Sn,Ut.value)&&De.remove(Ut.value)},Lt=function(Ut){xe&&Ln(!1);var Sn=ge.draggable.getById(Ut.draggableId),jr=ge.droppable.getById(Sn.descriptor.droppableId),Qr={draggable:Sn.descriptor,droppable:jr.descriptor},$r=ge.subscribe(zt);return xe={critical:Qr,unsubscribe:$r},RA({critical:Qr,registry:ge,scrollOptions:Ut.scrollOptions})},Bt={updateDroppableIsEnabled:Ve,updateDroppableIsCombineEnabled:Ge,scrollDroppable:Je,updateDroppableScroll:Qe,startPublishing:Lt,stopPublishing:At};return Bt},$a=function(ge,ve){return ge.phase==="IDLE"?!0:ge.phase!=="DROP_ANIMATING"||ge.completed.result.draggableId===ve?!1:ge.completed.result.reason==="DROP"},hd=function(ge){window.scrollBy(ge.x,ge.y)},eh=Hr(function(ge){return uu(ge).filter(function(ve){return!(!ve.isEnabled||!ve.frame)})}),hf=function(ve,xe){var De=Wu(eh(xe),function(Ve){return Ve.frame||Ln(!1),Ia(Ve.frame.pageMarginBox)(ve)});return De},Mg=function(ge){var ve=ge.center,xe=ge.destination,De=ge.droppables;if(xe){var Ve=De[xe];return Ve.frame?Ve:null}var Ge=hf(ve,De);return Ge},Rd={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:function(ve){return Math.pow(ve,2)},durationDampening:{stopDampeningAt:1200,accelerateAt:360}},zA=function(ge,ve){var xe=ge[ve.size]*Rd.startFromPercentage,De=ge[ve.size]*Rd.maxScrollAtPercentage,Ve={startScrollingFrom:xe,maxScrollValueAt:De};return Ve},kA=function(ge){var ve=ge.startOfRange,xe=ge.endOfRange,De=ge.current,Ve=xe-ve;if(Ve===0)return 0;var Ge=De-ve,Qe=Ge/Ve;return Qe},Pm=1,Dg=function(ge,ve){if(ge>ve.startScrollingFrom)return 0;if(ge<=ve.maxScrollValueAt)return Rd.maxPixelScroll;if(ge===ve.startScrollingFrom)return Pm;var xe=kA({startOfRange:ve.maxScrollValueAt,endOfRange:ve.startScrollingFrom,current:ge}),De=1-xe,Ve=Rd.maxPixelScroll*Rd.ease(De);return Math.ceil(Ve)},Ev=Rd.durationDampening.accelerateAt,Hp=Rd.durationDampening.stopDampeningAt,th=function(ge,ve){var xe=ve,De=Hp,Ve=Date.now(),Ge=Ve-xe;if(Ge>=Hp)return ge;if(Geve.height,Ge=xe.width>ve.width;return!Ge&&!Ve?De:Ge&&Ve?null:{x:Ge?0:De.x,y:Ve?0:De.y}},Tg=Td(function(ge){return ge===0?0:ge}),Ig=function(ge){var ve=ge.dragStartTime,xe=ge.container,De=ge.subject,Ve=ge.center,Ge=ge.shouldUseTimeDampening,Qe={top:Ve.y-xe.top,right:xe.right-Ve.x,bottom:xe.bottom-Ve.y,left:Ve.x-xe.left},Je=Cv({container:xe,distanceToEdges:Qe,dragStartTime:ve,axis:tt,shouldUseTimeDampening:Ge}),At=Cv({container:xe,distanceToEdges:Qe,dragStartTime:ve,axis:Ye,shouldUseTimeDampening:Ge}),zt=Tg({x:At,y:Je});if(pa(zt,Ho))return null;var Lt=Py({container:xe,subject:De,proposedScroll:zt});return Lt?pa(Lt,Ho)?null:Lt:null},HA=Td(function(ge){return ge===0?0:ge>0?1:-1}),Fg=function(){var ge=function(xe,De){return xe<0?xe:xe>De?xe-De:0};return function(ve){var xe=ve.current,De=ve.max,Ve=ve.change,Ge=_a(xe,Ve),Qe={x:ge(Ge.x,De.x),y:ge(Ge.y,De.y)};return pa(Qe,Ho)?null:Qe}}(),Ng=function(ve){var xe=ve.max,De=ve.current,Ve=ve.change,Ge={x:Math.max(De.x,xe.x),y:Math.max(De.y,xe.y)},Qe=HA(Ve),Je=Fg({max:Ge,current:De,change:Qe});return!Je||Qe.x!==0&&Je.x===0||Qe.y!==0&&Je.y===0},Pv=function(ve,xe){return Ng({current:ve.scroll.current,max:ve.scroll.max,change:xe})},UA=function(ve,xe){if(!Pv(ve,xe))return null;var De=ve.scroll.max,Ve=ve.scroll.current;return Fg({current:Ve,max:De,change:xe})},pd=function(ve,xe){var De=ve.frame;return De?Ng({current:De.scroll.current,max:De.scroll.max,change:xe}):!1},eu=function(ve,xe){var De=ve.frame;return!De||!pd(ve,xe)?null:Fg({current:De.scroll.current,max:De.scroll.max,change:xe})},pf=function(ge){var ve=ge.viewport,xe=ge.subject,De=ge.center,Ve=ge.dragStartTime,Ge=ge.shouldUseTimeDampening,Qe=Ig({dragStartTime:Ve,container:ve.frame,subject:xe,center:De,shouldUseTimeDampening:Ge});return Qe&&Pv(ve,Qe)?Qe:null},jA=function(ge){var ve=ge.droppable,xe=ge.subject,De=ge.center,Ve=ge.dragStartTime,Ge=ge.shouldUseTimeDampening,Qe=ve.frame;if(!Qe)return null;var Je=Ig({dragStartTime:Ve,container:Qe.pageMarginBox,subject:xe,center:De,shouldUseTimeDampening:Ge});return Je&&pd(ve,Je)?Je:null},Bm=function(ge){var ve=ge.state,xe=ge.dragStartTime,De=ge.shouldUseTimeDampening,Ve=ge.scrollWindow,Ge=ge.scrollDroppable,Qe=ve.current.page.borderBoxCenter,Je=ve.dimensions.draggables[ve.critical.draggable.id],At=Je.page.marginBox;if(ve.isWindowScrollAllowed){var zt=ve.viewport,Lt=pf({dragStartTime:xe,viewport:zt,subject:At,center:Qe,shouldUseTimeDampening:De});if(Lt){Ve(Lt);return}}var Bt=Mg({center:Qe,destination:xa(ve.impact),droppables:ve.dimensions.droppables});if(Bt){var Dt=jA({dragStartTime:xe,droppable:Bt,subject:At,center:Qe,shouldUseTimeDampening:De});Dt&&Ge(Bt.descriptor.id,Dt)}},Uh=function(ge){var ve=ge.scrollWindow,xe=ge.scrollDroppable,De=Ss(ve),Ve=Ss(xe),Ge=null,Qe=function(Lt){Ge||Ln(!1);var Bt=Ge,Dt=Bt.shouldUseTimeDampening,Ut=Bt.dragStartTime;Bm({state:Lt,scrollWindow:De,scrollDroppable:Ve,dragStartTime:Ut,shouldUseTimeDampening:Dt})},Je=function(Lt){Fl(),Ge&&Ln(!1);var Bt=Date.now(),Dt=!1,Ut=function(){Dt=!0};Bm({state:Lt,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:Ut,scrollDroppable:Ut}),Ge={dragStartTime:Bt,shouldUseTimeDampening:Dt},Jo(),Dt&&Qe(Lt)},At=function(){Ge&&(De.cancel(),Ve.cancel(),Ge=null)};return{start:Je,stop:At,scroll:Qe}},VA=function(ge){var ve=ge.move,xe=ge.scrollDroppable,De=ge.scrollWindow,Ve=function(zt,Lt){var Bt=_a(zt.current.client.selection,Lt);ve({client:Bt})},Ge=function(zt,Lt){if(!pd(zt,Lt))return Lt;var Bt=eu(zt,Lt);if(!Bt)return xe(zt.descriptor.id,Lt),null;var Dt=ul(Lt,Bt);xe(zt.descriptor.id,Dt);var Ut=ul(Lt,Dt);return Ut},Qe=function(zt,Lt,Bt){if(!zt||!Pv(Lt,Bt))return Bt;var Dt=UA(Lt,Bt);if(!Dt)return De(Bt),null;var Ut=ul(Bt,Dt);De(Ut);var Sn=ul(Bt,Ut);return Sn},Je=function(zt){var Lt=zt.scrollJumpRequest;if(Lt){var Bt=xa(zt.impact);Bt||Ln(!1);var Dt=Ge(zt.dimensions.droppables[Bt],Lt);if(Dt){var Ut=zt.viewport,Sn=Qe(zt.isWindowScrollAllowed,Ut,Dt);Sn&&Ve(zt,Sn)}}};return Je},Lg=function(ge){var ve=ge.scrollDroppable,xe=ge.scrollWindow,De=ge.move,Ve=Uh({scrollWindow:xe,scrollDroppable:ve}),Ge=VA({move:De,scrollWindow:xe,scrollDroppable:ve}),Qe=function(zt){if(zt.phase==="DRAGGING"){if(zt.movementMode==="FLUID"){Ve.scroll(zt);return}zt.scrollJumpRequest&&Ge(zt)}},Je={scroll:Qe,start:Ve.start,stop:Ve.stop};return Je},mf="data-rbd",nh=function(){var ge=mf+"-drag-handle";return{base:ge,draggableId:ge+"-draggable-id",contextId:ge+"-context-id"}}(),Tu=function(){var ge=mf+"-draggable";return{base:ge,contextId:ge+"-context-id",id:ge+"-id"}}(),yc=function(){var ge=mf+"-droppable";return{base:ge,contextId:ge+"-context-id",id:ge+"-id"}}(),co={contextId:mf+"-scroll-container-context-id"},eo=function(ve){return function(xe){return"["+xe+'="'+ve+'"]'}},El=function(ve,xe){return ve.map(function(De){var Ve=De.styles[xe];return Ve?De.selector+" { "+Ve+" }":""}).join(" ")},xc="pointer-events: none;",jh=function(ge){var ve=eo(ge),xe=function(){var Je=` cursor: -webkit-grab; cursor: grab; `;return{selector:ve(nh.contextId),styles:{always:` -webkit-touch-callout: none; -webkit-tap-highlight-color: rgba(0,0,0,0); touch-action: manipulation; `,resting:Je,dragging:xc,dropAnimating:Je}}}(),De=function(){var Je=` transition: `+Mu.outOfTheWay+`; `;return{selector:ve(Tu.contextId),styles:{dragging:Je,dropAnimating:Je,userCancel:Je}}}(),Ve={selector:ve(yc.contextId),styles:{always:"overflow-anchor: none;"}},Ge={selector:"body",styles:{dragging:` cursor: grabbing; cursor: -webkit-grabbing; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; overflow-anchor: none; `}},Qe=[De,xe,Ve,Ge];return{always:El(Qe,"always"),resting:El(Qe,"resting"),dragging:El(Qe,"dragging"),dropAnimating:El(Qe,"dropAnimating"),userCancel:El(Qe,"userCancel")}},Ul=typeof window!="undefined"&&typeof window.document!="undefined"&&typeof window.document.createElement!="undefined"?fe.useLayoutEffect:fe.useEffect,Oc=function(){var ve=document.querySelector("head");return ve||Ln(!1),ve},zd=function(ve){var xe=document.createElement("style");return ve&&xe.setAttribute("nonce",ve),xe.type="text/css",xe};function pu(ge,ve){var xe=Hn(function(){return jh(ge)},[ge]),De=(0,fe.useRef)(null),Ve=(0,fe.useRef)(null),Ge=ri(Hr(function(Bt){var Dt=Ve.current;Dt||Ln(!1),Dt.textContent=Bt}),[]),Qe=ri(function(Bt){var Dt=De.current;Dt||Ln(!1),Dt.textContent=Bt},[]);Ul(function(){!De.current&&!Ve.current||Ln(!1);var Bt=zd(ve),Dt=zd(ve);return De.current=Bt,Ve.current=Dt,Bt.setAttribute(mf+"-always",ge),Dt.setAttribute(mf+"-dynamic",ge),Oc().appendChild(Bt),Oc().appendChild(Dt),Qe(xe.always),Ge(xe.resting),function(){var Ut=function(jr){var Qr=jr.current;Qr||Ln(!1),Oc().removeChild(Qr),jr.current=null};Ut(De),Ut(Ve)}},[ve,Qe,Ge,xe.always,xe.resting,ge]);var Je=ri(function(){return Ge(xe.dragging)},[Ge,xe.dragging]),At=ri(function(Bt){if(Bt==="DROP"){Ge(xe.dropAnimating);return}Ge(xe.userCancel)},[Ge,xe.dropAnimating,xe.userCancel]),zt=ri(function(){Ve.current&&Ge(xe.resting)},[Ge,xe.resting]),Lt=Hn(function(){return{dragging:Je,dropping:At,resting:zt}},[Je,At,zt]);return Lt}var Sm=function(ge){return ge&&ge.ownerDocument?ge.ownerDocument.defaultView:window};function rh(ge){return ge instanceof Sm(ge).HTMLElement}function ih(ge,ve){var xe="["+nh.contextId+'="'+ge+'"]',De=Pu(document.querySelectorAll(xe));if(!De.length)return null;var Ve=Wu(De,function(Ge){return Ge.getAttribute(nh.draggableId)===ve});return!Ve||!rh(Ve)?null:Ve}function Bv(ge){var ve=(0,fe.useRef)({}),xe=(0,fe.useRef)(null),De=(0,fe.useRef)(null),Ve=(0,fe.useRef)(!1),Ge=ri(function(Dt,Ut){var Sn={id:Dt,focus:Ut};return ve.current[Dt]=Sn,function(){var Qr=ve.current,$r=Qr[Dt];$r!==Sn&&delete Qr[Dt]}},[]),Qe=ri(function(Dt){var Ut=ih(ge,Dt);Ut&&Ut!==document.activeElement&&Ut.focus()},[ge]),Je=ri(function(Dt,Ut){xe.current===Dt&&(xe.current=Ut)},[]),At=ri(function(){De.current||Ve.current&&(De.current=requestAnimationFrame(function(){De.current=null;var Dt=xe.current;Dt&&Qe(Dt)}))},[Qe]),zt=ri(function(Dt){xe.current=null;var Ut=document.activeElement;Ut&&Ut.getAttribute(nh.draggableId)===Dt&&(xe.current=Dt)},[]);Ul(function(){return Ve.current=!0,function(){Ve.current=!1;var Dt=De.current;Dt&&cancelAnimationFrame(Dt)}},[]);var Lt=Hn(function(){return{register:Ge,tryRecordFocus:zt,tryRestoreFocusRecorded:At,tryShiftRecord:Je}},[Ge,zt,At,Je]);return Lt}function Yc(){var ge={draggables:{},droppables:{}},ve=[];function xe(Bt){return ve.push(Bt),function(){var Ut=ve.indexOf(Bt);Ut!==-1&&ve.splice(Ut,1)}}function De(Bt){ve.length&&ve.forEach(function(Dt){return Dt(Bt)})}function Ve(Bt){return ge.draggables[Bt]||null}function Ge(Bt){var Dt=Ve(Bt);return Dt||Ln(!1),Dt}var Qe={register:function(Dt){ge.draggables[Dt.descriptor.id]=Dt,De({type:"ADDITION",value:Dt})},update:function(Dt,Ut){var Sn=ge.draggables[Ut.descriptor.id];Sn&&Sn.uniqueId===Dt.uniqueId&&(delete ge.draggables[Ut.descriptor.id],ge.draggables[Dt.descriptor.id]=Dt)},unregister:function(Dt){var Ut=Dt.descriptor.id,Sn=Ve(Ut);Sn&&Dt.uniqueId===Sn.uniqueId&&(delete ge.draggables[Ut],De({type:"REMOVAL",value:Dt}))},getById:Ge,findById:Ve,exists:function(Dt){return!!Ve(Dt)},getAllByType:function(Dt){return Uo(ge.draggables).filter(function(Ut){return Ut.descriptor.type===Dt})}};function Je(Bt){return ge.droppables[Bt]||null}function At(Bt){var Dt=Je(Bt);return Dt||Ln(!1),Dt}var zt={register:function(Dt){ge.droppables[Dt.descriptor.id]=Dt},unregister:function(Dt){var Ut=Je(Dt.descriptor.id);Ut&&Dt.uniqueId===Ut.uniqueId&&delete ge.droppables[Dt.descriptor.id]},getById:At,findById:Je,exists:function(Dt){return!!Je(Dt)},getAllByType:function(Dt){return Uo(ge.droppables).filter(function(Ut){return Ut.descriptor.type===Dt})}};function Lt(){ge.draggables={},ge.droppables={},ve.length=0}return{draggable:Qe,droppable:zt,subscribe:xe,clean:Lt}}function Og(){var ge=Hn(Yc,[]);return(0,fe.useEffect)(function(){return function(){requestAnimationFrame(ge.clean)}},[ge]),ge}var gf=fe.createContext(null),Vh=function(){var ge=document.body;return ge||Ln(!1),ge},kd={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},Up=function(ve){return"rbd-announcement-"+ve};function Rg(ge){var ve=Hn(function(){return Up(ge)},[ge]),xe=(0,fe.useRef)(null);(0,fe.useEffect)(function(){var Ge=document.createElement("div");return xe.current=Ge,Ge.id=ve,Ge.setAttribute("aria-live","assertive"),Ge.setAttribute("aria-atomic","true"),(0,rt.Z)(Ge.style,kd),Vh().appendChild(Ge),function(){setTimeout(function(){var At=Vh();At.contains(Ge)&&At.removeChild(Ge),Ge===xe.current&&(xe.current=null)})}},[ve]);var De=ri(function(Ve){var Ge=xe.current;if(Ge){Ge.textContent=Ve;return}},[]);return De}var Mm=0,Gh={separator:"::"};function Xh(){Mm=0}function vf(ge,ve){return ve===void 0&&(ve=Gh),Hn(function(){return""+ge+ve.separator+Mm++},[ve.separator,ge])}function Dm(ge){var ve=ge.contextId,xe=ge.uniqueId;return"rbd-hidden-text-"+ve+"-"+xe}function GA(ge){var ve=ge.contextId,xe=ge.text,De=vf("hidden-text",{separator:"-"}),Ve=Hn(function(){return Dm({contextId:ve,uniqueId:De})},[De,ve]);return(0,fe.useEffect)(function(){var Qe=document.createElement("div");return Qe.id=Ve,Qe.textContent=xe,Qe.style.display="none",Vh().appendChild(Qe),function(){var At=Vh();At.contains(Qe)&&At.removeChild(Qe)}},[Ve,xe]),Ve}var zg=fe.createContext(null),XA={react:"^16.8.5","react-dom":"^16.8.5"},Jc=/(\d+)\.(\d+)\.(\d+)/,md=function(ve){var xe=Jc.exec(ve);xe==null&&Ln(!1);var De=Number(xe[1]),Ve=Number(xe[2]),Ge=Number(xe[3]);return{major:De,minor:Ve,patch:Ge,raw:ve}},Af=function(ve,xe){return xe.major>ve.major?!0:xe.majorve.minor?!0:xe.minor=ve.patch},sh=function(ge,ve){var xe=md(ge),De=md(ve);Af(xe,De)},Tm=` We expect a html5 doctype: This is to ensure consistent browser layout and measurement More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md `,Im=function(ge){var ve=ge.doctype;ve&&(ve.name.toLowerCase(),ve.publicId)};function kg(ge){}function yf(ge,ve){}function jl(){yf(function(){sh(XA.react,fe.version),Im(document)},[])}function Fm(ge){var ve=(0,fe.useRef)(ge);return(0,fe.useEffect)(function(){ve.current=ge}),ve}function WA(){var ge=null;function ve(){return!!ge}function xe(Qe){return Qe===ge}function De(Qe){ge&&Ln(!1);var Je={abandon:Qe};return ge=Je,Je}function Ve(){ge||Ln(!1),ge=null}function Ge(){ge&&(ge.abandon(),Ve())}return{isClaimed:ve,isActive:xe,claim:De,release:Ve,tryAbandon:Ge}}var bc=9,QA=13,Nm=27,Hg=32,Sv=33,By=34,ZA=35,YA=36,xf=37,Lm=38,Wh=39,Iu=40,gl,Qh=(gl={},gl[QA]=!0,gl[bc]=!0,gl),ah=function(ge){Qh[ge.keyCode]&&ge.preventDefault()},Fu=function(){var ge="visibilitychange";if(typeof document=="undefined")return ge;var ve=[ge,"ms"+ge,"webkit"+ge,"moz"+ge,"o"+ge],xe=Wu(ve,function(De){return"on"+De in document});return xe||ge}(),Hd=0,Nu=5;function bf(ge,ve){return Math.abs(ve.x-ge.x)>=Nu||Math.abs(ve.y-ge.y)>=Nu}var fo={type:"IDLE"};function Ef(ge){var ve=ge.cancel,xe=ge.completed,De=ge.getPhase,Ve=ge.setPhase;return[{eventName:"mousemove",fn:function(Qe){var Je=Qe.button,At=Qe.clientX,zt=Qe.clientY;if(Je===Hd){var Lt={x:At,y:zt},Bt=De();if(Bt.type==="DRAGGING"){Qe.preventDefault(),Bt.actions.move(Lt);return}Bt.type!=="PENDING"&&Ln(!1);var Dt=Bt.point;if(bf(Dt,Lt)){Qe.preventDefault();var Ut=Bt.actions.fluidLift(Lt);Ve({type:"DRAGGING",actions:Ut})}}}},{eventName:"mouseup",fn:function(Qe){var Je=De();if(Je.type!=="DRAGGING"){ve();return}Qe.preventDefault(),Je.actions.drop({shouldBlockNextClick:!0}),xe()}},{eventName:"mousedown",fn:function(Qe){De().type==="DRAGGING"&&Qe.preventDefault(),ve()}},{eventName:"keydown",fn:function(Qe){var Je=De();if(Je.type==="PENDING"){ve();return}if(Qe.keyCode===Nm){Qe.preventDefault(),ve();return}ah(Qe)}},{eventName:"resize",fn:ve},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){De().type==="PENDING"&&ve()}},{eventName:"webkitmouseforcedown",fn:function(Qe){var Je=De();if(Je.type==="IDLE"&&Ln(!1),Je.actions.shouldRespectForcePress()){ve();return}Qe.preventDefault()}},{eventName:Fu,fn:ve}]}function JA(ge){var ve=(0,fe.useRef)(fo),xe=(0,fe.useRef)(Da),De=Hn(function(){return{eventName:"mousedown",fn:function(Bt){if(!Bt.defaultPrevented&&Bt.button===Hd&&!(Bt.ctrlKey||Bt.metaKey||Bt.shiftKey||Bt.altKey)){var Dt=ge.findClosestDraggableId(Bt);if(Dt){var Ut=ge.tryGetLock(Dt,Qe,{sourceEvent:Bt});if(Ut){Bt.preventDefault();var Sn={x:Bt.clientX,y:Bt.clientY};xe.current(),zt(Ut,Sn)}}}}}},[ge]),Ve=Hn(function(){return{eventName:"webkitmouseforcewillbegin",fn:function(Bt){if(!Bt.defaultPrevented){var Dt=ge.findClosestDraggableId(Bt);if(Dt){var Ut=ge.findOptionsForDraggable(Dt);Ut&&(Ut.shouldRespectForcePress||ge.canGetLock(Dt)&&Bt.preventDefault())}}}}},[ge]),Ge=ri(function(){var Bt={passive:!1,capture:!0};xe.current=io(window,[Ve,De],Bt)},[Ve,De]),Qe=ri(function(){var Lt=ve.current;Lt.type!=="IDLE"&&(ve.current=fo,xe.current(),Ge())},[Ge]),Je=ri(function(){var Lt=ve.current;Qe(),Lt.type==="DRAGGING"&&Lt.actions.cancel({shouldBlockNextClick:!0}),Lt.type==="PENDING"&&Lt.actions.abort()},[Qe]),At=ri(function(){var Bt={capture:!0,passive:!1},Dt=Ef({cancel:Je,completed:Qe,getPhase:function(){return ve.current},setPhase:function(Sn){ve.current=Sn}});xe.current=io(window,Dt,Bt)},[Je,Qe]),zt=ri(function(Bt,Dt){ve.current.type!=="IDLE"&&Ln(!1),ve.current={type:"PENDING",point:Dt,actions:Bt},At()},[At]);Ul(function(){return Ge(),function(){xe.current()}},[Ge])}var mu;function KA(){}var Io=(mu={},mu[By]=!0,mu[Sv]=!0,mu[YA]=!0,mu[ZA]=!0,mu);function gd(ge,ve){function xe(){ve(),ge.cancel()}function De(){ve(),ge.drop()}return[{eventName:"keydown",fn:function(Ge){if(Ge.keyCode===Nm){Ge.preventDefault(),xe();return}if(Ge.keyCode===Hg){Ge.preventDefault(),De();return}if(Ge.keyCode===Iu){Ge.preventDefault(),ge.moveDown();return}if(Ge.keyCode===Lm){Ge.preventDefault(),ge.moveUp();return}if(Ge.keyCode===Wh){Ge.preventDefault(),ge.moveRight();return}if(Ge.keyCode===xf){Ge.preventDefault(),ge.moveLeft();return}if(Io[Ge.keyCode]){Ge.preventDefault();return}ah(Ge)}},{eventName:"mousedown",fn:xe},{eventName:"mouseup",fn:xe},{eventName:"click",fn:xe},{eventName:"touchstart",fn:xe},{eventName:"resize",fn:xe},{eventName:"wheel",fn:xe,options:{passive:!0}},{eventName:Fu,fn:xe}]}function Sy(ge){var ve=(0,fe.useRef)(KA),xe=Hn(function(){return{eventName:"keydown",fn:function(Ge){if(Ge.defaultPrevented||Ge.keyCode!==Hg)return;var Qe=ge.findClosestDraggableId(Ge);if(!Qe)return;var Je=ge.tryGetLock(Qe,Lt,{sourceEvent:Ge});if(!Je)return;Ge.preventDefault();var At=!0,zt=Je.snapLift();ve.current();function Lt(){At||Ln(!1),At=!1,ve.current(),De()}ve.current=io(window,gd(zt,Lt),{capture:!0,passive:!1})}}},[ge]),De=ri(function(){var Ge={passive:!1,capture:!0};ve.current=io(window,[xe],Ge)},[xe]);Ul(function(){return De(),function(){ve.current()}},[De])}var tu={type:"IDLE"},qA=120,jo=.15;function Zh(ge){var ve=ge.cancel,xe=ge.getPhase;return[{eventName:"orientationchange",fn:ve},{eventName:"resize",fn:ve},{eventName:"contextmenu",fn:function(Ve){Ve.preventDefault()}},{eventName:"keydown",fn:function(Ve){if(xe().type!=="DRAGGING"){ve();return}Ve.keyCode===Nm&&Ve.preventDefault(),ve()}},{eventName:Fu,fn:ve}]}function Yh(ge){var ve=ge.cancel,xe=ge.completed,De=ge.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(Ge){var Qe=De();if(Qe.type!=="DRAGGING"){ve();return}Qe.hasMoved=!0;var Je=Ge.touches[0],At=Je.clientX,zt=Je.clientY,Lt={x:At,y:zt};Ge.preventDefault(),Qe.actions.move(Lt)}},{eventName:"touchend",fn:function(Ge){var Qe=De();if(Qe.type!=="DRAGGING"){ve();return}Ge.preventDefault(),Qe.actions.drop({shouldBlockNextClick:!0}),xe()}},{eventName:"touchcancel",fn:function(Ge){if(De().type!=="DRAGGING"){ve();return}Ge.preventDefault(),ve()}},{eventName:"touchforcechange",fn:function(Ge){var Qe=De();Qe.type==="IDLE"&&Ln(!1);var Je=Ge.touches[0];if(Je){var At=Je.force>=jo;if(At){var zt=Qe.actions.shouldRespectForcePress();if(Qe.type==="PENDING"){zt&&ve();return}if(zt){if(Qe.hasMoved){Ge.preventDefault();return}ve();return}Ge.preventDefault()}}}},{eventName:Fu,fn:ve}]}function qu(ge){var ve=(0,fe.useRef)(tu),xe=(0,fe.useRef)(Da),De=ri(function(){return ve.current},[]),Ve=ri(function(Ut){ve.current=Ut},[]),Ge=Hn(function(){return{eventName:"touchstart",fn:function(Ut){if(!Ut.defaultPrevented){var Sn=ge.findClosestDraggableId(Ut);if(Sn){var jr=ge.tryGetLock(Sn,Je,{sourceEvent:Ut});if(jr){var Qr=Ut.touches[0],$r=Qr.clientX,li=Qr.clientY,ci={x:$r,y:li};xe.current(),Bt(jr,ci)}}}}}},[ge]),Qe=ri(function(){var Ut={capture:!0,passive:!1};xe.current=io(window,[Ge],Ut)},[Ge]),Je=ri(function(){var Dt=ve.current;Dt.type!=="IDLE"&&(Dt.type==="PENDING"&&clearTimeout(Dt.longPressTimerId),Ve(tu),xe.current(),Qe())},[Qe,Ve]),At=ri(function(){var Dt=ve.current;Je(),Dt.type==="DRAGGING"&&Dt.actions.cancel({shouldBlockNextClick:!0}),Dt.type==="PENDING"&&Dt.actions.abort()},[Je]),zt=ri(function(){var Ut={capture:!0,passive:!1},Sn={cancel:At,completed:Je,getPhase:De},jr=io(window,Yh(Sn),Ut),Qr=io(window,Zh(Sn),Ut);xe.current=function(){jr(),Qr()}},[At,De,Je]),Lt=ri(function(){var Ut=De();Ut.type!=="PENDING"&&Ln(!1);var Sn=Ut.actions.fluidLift(Ut.point);Ve({type:"DRAGGING",actions:Sn,hasMoved:!1})},[De,Ve]),Bt=ri(function(Ut,Sn){De().type!=="IDLE"&&Ln(!1);var jr=setTimeout(Lt,qA);Ve({type:"PENDING",point:Sn,actions:Ut,longPressTimerId:jr}),zt()},[zt,De,Ve,Lt]);Ul(function(){return Qe(),function(){xe.current();var Sn=De();Sn.type==="PENDING"&&(clearTimeout(Sn.longPressTimerId),Ve(tu))}},[De,Qe,Ve]),Ul(function(){var Ut=io(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}]);return Ut},[])}function Vl(ge){}var Ao={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function Vo(ge,ve){if(ve==null)return!1;var xe=!!Ao[ve.tagName.toLowerCase()];if(xe)return!0;var De=ve.getAttribute("contenteditable");return De==="true"||De===""?!0:ve===ge?!1:Vo(ge,ve.parentElement)}function vl(ge,ve){var xe=ve.target;return rh(xe)?Vo(ge,xe):!1}var Om=function(ge){return So(ge.getBoundingClientRect()).center};function Ug(ge){return ge instanceof Sm(ge).Element}var Ec=function(){var ge="matches";if(typeof document=="undefined")return ge;var ve=[ge,"msMatchesSelector","webkitMatchesSelector"],xe=Wu(ve,function(De){return De in Element.prototype});return xe||ge}();function jp(ge,ve){return ge==null?null:ge[Ec](ve)?ge:jp(ge.parentElement,ve)}function Mv(ge,ve){return ge.closest?ge.closest(ve):jp(ge,ve)}function Jh(ge){return"["+nh.contextId+'="'+ge+'"]'}function yo(ge,ve){var xe=ve.target;if(!Ug(xe))return null;var De=Jh(ge),Ve=Mv(xe,De);return!Ve||!rh(Ve)?null:Ve}function gu(ge,ve){var xe=yo(ge,ve);return xe?xe.getAttribute(nh.draggableId):null}function Rc(ge,ve){var xe="["+Tu.contextId+'="'+ge+'"]',De=Pu(document.querySelectorAll(xe)),Ve=Wu(De,function(Ge){return Ge.getAttribute(Tu.id)===ve});return!Ve||!rh(Ve)?null:Ve}function Kh(ge){ge.preventDefault()}function Ud(ge){var ve=ge.expected,xe=ge.phase,De=ge.isLockActive,Ve=ge.shouldWarn;return!(!De()||ve!==xe)}function jd(ge){var ve=ge.lockAPI,xe=ge.store,De=ge.registry,Ve=ge.draggableId;if(ve.isClaimed())return!1;var Ge=De.draggable.findById(Ve);return!(!Ge||!Ge.options.isEnabled||!$a(xe.getState(),Ve))}function Vp(ge){var ve=ge.lockAPI,xe=ge.contextId,De=ge.store,Ve=ge.registry,Ge=ge.draggableId,Qe=ge.forceSensorStop,Je=ge.sourceEvent,At=jd({lockAPI:ve,store:De,registry:Ve,draggableId:Ge});if(!At)return null;var zt=Ve.draggable.getById(Ge),Lt=Rc(xe,zt.descriptor.id);if(!Lt||Je&&!zt.options.canDragInteractiveElements&&vl(Lt,Je))return null;var Bt=ve.claim(Qe||Da),Dt="PRE_DRAG";function Ut(){return zt.options.shouldRespectForcePress}function Sn(){return ve.isActive(Bt)}function jr(qs,sa){Ud({expected:qs,phase:Dt,isLockActive:Sn,shouldWarn:!0})&&De.dispatch(sa())}var Qr=jr.bind(null,"DRAGGING");function $r(qs){function sa(){ve.release(),Dt="COMPLETED"}Dt!=="PRE_DRAG"&&(sa(),Dt!=="PRE_DRAG"&&Ln(!1)),De.dispatch(lf(qs.liftActionArgs)),Dt="DRAGGING";function Yi(Va,wl){if(wl===void 0&&(wl={shouldBlockNextClick:!1}),qs.cleanup(),wl.shouldBlockNextClick){var Lu=io(window,[{eventName:"click",fn:Kh,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(Lu)}sa(),De.dispatch(uf({reason:Va}))}return(0,rt.Z)({isActive:function(){return Ud({expected:"DRAGGING",phase:Dt,isLockActive:Sn,shouldWarn:!1})},shouldRespectForcePress:Ut,drop:function(wl){return Yi("DROP",wl)},cancel:function(wl){return Yi("CANCEL",wl)}},qs.actions)}function li(qs){var sa=Ss(function(Va){Qr(function(){return qf({client:Va})})}),Yi=$r({liftActionArgs:{id:Ge,clientSelection:qs,movementMode:"FLUID"},cleanup:function(){return sa.cancel()},actions:{move:sa}});return(0,rt.Z)({},Yi,{move:sa})}function ci(){var qs={moveUp:function(){return Qr(Rp)},moveRight:function(){return Qr(ld)},moveDown:function(){return Qr(zh)},moveLeft:function(){return Qr(_f)}};return $r({liftActionArgs:{id:Ge,clientSelection:Om(Lt),movementMode:"SNAP"},cleanup:Da,actions:qs})}function _i(){var qs=Ud({expected:"PRE_DRAG",phase:Dt,isLockActive:Sn,shouldWarn:!0});qs&&ve.release()}var ia={isActive:function(){return Ud({expected:"PRE_DRAG",phase:Dt,isLockActive:Sn,shouldWarn:!1})},shouldRespectForcePress:Ut,fluidLift:li,snapLift:ci,abort:_i};return ia}var My=[JA,Sy,qu];function qh(ge){var ve=ge.contextId,xe=ge.store,De=ge.registry,Ve=ge.customSensors,Ge=ge.enableDefaultSensors,Qe=[].concat(Ge?My:[],Ve||[]),Je=(0,fe.useState)(function(){return WA()})[0],At=ri(function(li,ci){li.isDragging&&!ci.isDragging&&Je.tryAbandon()},[Je]);Ul(function(){var li=xe.getState(),ci=xe.subscribe(function(){var _i=xe.getState();At(li,_i),li=_i});return ci},[Je,xe,At]),Ul(function(){return Je.tryAbandon},[Je.tryAbandon]);var zt=ri(function($r){return jd({lockAPI:Je,registry:De,store:xe,draggableId:$r})},[Je,De,xe]),Lt=ri(function($r,li,ci){return Vp({lockAPI:Je,registry:De,contextId:ve,store:xe,draggableId:$r,forceSensorStop:li,sourceEvent:ci&&ci.sourceEvent?ci.sourceEvent:null})},[ve,Je,De,xe]),Bt=ri(function($r){return gu(ve,$r)},[ve]),Dt=ri(function($r){var li=De.draggable.findById($r);return li?li.options:null},[De.draggable]),Ut=ri(function(){Je.isClaimed()&&(Je.tryAbandon(),xe.getState().phase!=="IDLE"&&xe.dispatch(Nd()))},[Je,xe]),Sn=ri(Je.isClaimed,[Je]),jr=Hn(function(){return{canGetLock:zt,tryGetLock:Lt,findClosestDraggableId:Bt,findOptionsForDraggable:Dt,tryReleaseLock:Ut,isLockClaimed:Sn}},[zt,Lt,Bt,Dt,Ut,Sn]);Vl(Qe);for(var Qr=0;Qr