mz-wow-talent-tree 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compDist/app.js +4 -7
- package/compDist/app.js.gz +0 -0
- package/compDist/app.umd.cjs +1 -1
- package/package.json +1 -1
package/compDist/app.js
CHANGED
|
@@ -39312,7 +39312,7 @@ function LN(i = {}) {
|
|
|
39312
39312
|
const {
|
|
39313
39313
|
specId: s = 72,
|
|
39314
39314
|
level: t = 80,
|
|
39315
|
-
talents: r = "
|
|
39315
|
+
talents: r = "",
|
|
39316
39316
|
exclude: p = [],
|
|
39317
39317
|
strokeWidth: u = 2,
|
|
39318
39318
|
mini: v = !1,
|
|
@@ -39333,7 +39333,7 @@ function LN(i = {}) {
|
|
|
39333
39333
|
return window.addEventListener("resize", E), () => {
|
|
39334
39334
|
window.removeEventListener("resize", E);
|
|
39335
39335
|
};
|
|
39336
|
-
}, [C]), /* @__PURE__ */ bn.jsx("div", { className: "flex items-center w-full h-full text-white
|
|
39336
|
+
}, [C]), /* @__PURE__ */ bn.jsx("div", { className: "flex items-center w-full h-full text-white", children: /* @__PURE__ */ bn.jsx(
|
|
39337
39337
|
k5,
|
|
39338
39338
|
{
|
|
39339
39339
|
specId: s,
|
|
@@ -39355,7 +39355,6 @@ function LN(i = {}) {
|
|
|
39355
39355
|
) });
|
|
39356
39356
|
}
|
|
39357
39357
|
function oM(i, s = {}) {
|
|
39358
|
-
s.urlParams || (s.urlParams = new URLSearchParams(window.location.search));
|
|
39359
39358
|
let t;
|
|
39360
39359
|
if (typeof i == "string") {
|
|
39361
39360
|
if (t = document.querySelector(i), !t)
|
|
@@ -39364,10 +39363,8 @@ function oM(i, s = {}) {
|
|
|
39364
39363
|
t = i;
|
|
39365
39364
|
else
|
|
39366
39365
|
throw new Error("Container must be a string selector or an HTMLElement");
|
|
39367
|
-
|
|
39368
|
-
|
|
39369
|
-
t
|
|
39370
|
-
), {
|
|
39366
|
+
const r = t.clientWidth;
|
|
39367
|
+
return s.width || (s.width = r), rv.render(Hi.createElement(LN, s), t), {
|
|
39371
39368
|
destroy: () => {
|
|
39372
39369
|
rv.unmountComponentAtNode(t);
|
|
39373
39370
|
}
|
package/compDist/app.js.gz
CHANGED
|
Binary file
|
package/compDist/app.umd.cjs
CHANGED
|
@@ -469,4 +469,4 @@ html body {
|
|
|
469
469
|
30% 100%,
|
|
470
470
|
0% 70%,
|
|
471
471
|
0% 30%
|
|
472
|
-
)`;if(p)S=null,Y=s;else if(i.type==="single"){const E=i.entries[0];E.type==="passive"&&(Y=s),X=i.maxRanks,S=Rn.jsx(el,{onClick:()=>_(E),children:Rn.jsx(op,{node:i,entry:E,specId:x,size:s})})}else if(i.type==="choice"){b=!0;let E;const A=s-t+1;if(i.chosenEntryId){const N=Ae.find(i.entries,{id:i.chosenEntryId});E=Rn.jsx(el,{style:{width:A,height:A},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})})}else E=Ae.map(i.entries,(N,F)=>Rn.jsx(el,{style:{overflow:"hidden",width:A/2,height:A,borderRight:`${t}px solid gray`,marginLeft:F},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!0})},N.id));S=Rn.jsx(Bm,{align:"center",justify:"center",style:{WebkitClipPath:D,position:"relative"},children:E})}else if(i.type==="subtree"){Y=s;let E;const A=s-t+1;if(i.chosenEntryId){const N=Ae.find(i.entries,{id:i.chosenEntryId});E=Rn.jsx(el,{style:{width:A,height:A},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})})}else E=Ae.map(i.entries,(N,F)=>Rn.jsx(el,{style:{overflow:"hidden",width:A/2,height:A,borderRight:`${t}px solid gray`,marginLeft:F},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})},N.id));S=Rn.jsx(Bm,{align:"center",justify:"center",style:{borderRadius:A,position:"relative"},children:E})}else console.warn("unknown node type",i.type);return r==="locked"?S=Rn.jsx("div",{style:{filter:"brightness(0.3) grayscale(1)"},children:S}):(r==="unavailable"||r==="exclude")&&(S=Rn.jsx("div",{style:{filter:"grayscale(2)"},children:S})),r==="available"&&(C="dotted"),i.freeNode&&(X=0),Rn.jsxs("div",{style:{position:"relative"},onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),children:[Rn.jsx("div",{style:{border:`${t}px ${C} ${Mc[r]}`,backgroundColor:Mc[r],lineHeight:1,borderRadius:Y,overflow:"hidden",height:s+2,width:s+2,WebkitClipPath:b?D:null},className:"relative bg-themeYellow",onContextMenu:k,children:S}),Rn.jsx(yo,{condition:(u&&!i.freeNode&&i.type!=="subtree"||X>1)&&!p,then:()=>Rn.jsxs("div",{style:{position:"absolute",right:-4,bottom:-4,background:"#000",fontFamily:"Tahoma",fontSize:s*.35,paddingLeft:2,paddingRight:2,pointerEvents:"none"},children:[i.rank||0,"/",X]})}),Rn.jsx(yo,{condition:r==="exclude",then:()=>Rn.jsx(Gm,{name:"close",size:1.5*s,color:Mc[r],style:{pointerEvents:"none",position:"absolute",right:"50%",top:"50%",transform:"translate(50%, -50%)"}})}),Rn.jsx(yo,{condition:Ae.includes(["choice","subtree"],i.type),then:()=>{const E=s/2;return Rn.jsxs(Rn.Fragment,{children:[Rn.jsx(Gm,{name:"triangleRight",size:E,color:Mc[r],style:{position:"absolute",right:-E+3,top:"50%",transform:"translate(0%, -50%)"}}),Rn.jsx(Gm,{name:"triangleLeft",size:E,color:Mc[r],style:{position:"absolute",left:-E+3,top:"50%",transform:"translate(0%, -50%)"}})]})}}),Rn.jsx(yo,{condition:!v&&I&&Ae.includes(["choice","subtree"],i.type),then:()=>{const E=Ae.round(s*1.2),A=30,N=E*2+A+2*t;return Rn.jsx(Bm,{justify:"space-between",align:"center",style:{position:"absolute",width:N,height:1.4*E,top:-E-1,padding:5,left:-(N/4)-A/4,backgroundColor:"#434343ee",zIndex:20,borderRadius:10},children:Ae.map(i.entries,F=>Rn.jsx(el,{style:{width:E+2*t,height:E+2*t,border:F.id===i.chosenEntryId?`${t}px ${C} ${Mc[r]}`:""},onClick:()=>_(F),children:Rn.jsx(op,{node:i,entry:F,specId:x,size:E})},F.id))})}})]})}py.propTypes={node:pn.shape({type:pn.string,entries:pn.array,maxRanks:pn.number,freeNode:pn.bool,rank:pn.number,chosenEntryId:pn.number}).isRequired,size:pn.number.isRequired,borderSize:pn.number,state:pn.string,mini:pn.bool,showRanks:pn.bool,disableHover:pn.bool,specId:pn.number,onClick:pn.func,onContextMenu:pn.func},py.defaultProps={borderSize:2,state:"unavailable",mini:!1,showRanks:!1,disableHover:!1,specId:null,onClick:()=>{},onContextMenu:()=>{}};function kI(i,s){const t=Ae.join(Ae.map(i,({entryId:r,rank:p})=>Ae.join([r,p],":")),"/");return xo.parse(t,s)}function cy({specId:i,level:s,width:t=500,talents:r="",exclude:p=[],strokeWidth:u=2,mini:v=!1,showRanks:x=!0,showCopy:_=!0,hideExport:k=!1,allowExclude:I=!1,readOnly:w=!1,hideFooter:S=!1,hideHeader:X=!1,name:Y=null,onChange:C=null}){if(document.addEventListener("contextmenu",fn=>{fn.preventDefault()}),Ae.isString(r)&&r.length===7)return null;const[b,D]=Hi.useState([]),[E,A]=Hi.useState([]),[N,F]=Hi.useState(!1);r&&(i=xo.parse(r,i).specId);const M=xo.getTreeBySpecId(i),V=.52,Q=.02,ee=v?1:u,xe=!v&&s>70,{classNodes:Ie,specNodes:Te,subTreeNodes:Ee,heroNodes:se}=xo.getDisplayAdjustedNodes(i,xe),_e=Ae.concat(Ie,Te,Ee,se);if(Hi.useEffect(()=>{if(r){const fn=xo.parse(r,i);i=fn.specId,fn&&(D(Ae.map(fn.entries,yn=>({nodeId:yn.entry.nodeId,entryId:yn.entry.id,rank:yn.rank}))),A(I?p:[]),F(fn.unknownEntries.length>0))}},[r,I]),_e.length===0)return null;const ae=(fn,yn)=>{w||C&&C(kI(fn,i),yn)},ie=xo.getBounds(_e),oe=xo.getBounds(Ie),ye=xo.getBounds(Te),ne=xo.getBounds(se),ue=t/ie.numColumns;let Ye=Ae.round(ue*V);v&&(Ye*=.7);const K=t-Ye,pe=K*Q,re=(K-2*pe)/ie.xRange,H=ie.yRange*re+Ye+2*pe;function W([fn,yn]){return[(fn-ie.xMin)*re+pe,(yn-ie.yMin)*re+pe]}const[te]=W([oe.xMin+oe.xRange/2,0]),[ke]=W([ye.xMin+ye.xRange/2,0]),[Pe]=W([ne.xMin+ne.xRange/2,0]),le=te+Ye/2,je=ke+Ye/2,Oe=Pe+Ye/2,cn=xo.getPointsForLevel(s),Bn={class:0,spec:0},zn=Ae.keyBy(_e,"id"),En=Ae.map(Ae.filter(b,fn=>{var yn;return((yn=zn[fn.nodeId])==null?void 0:yn.type)==="subtree"}),fn=>{const yn=zn[fn.nodeId],gi=Ae.find(yn.entries,{id:fn.entryId});return{...fn,node:yn,entry:gi}}),Un=Ae.first(Ae.map(En,"entry.traitSubTreeId")),Si=Ae.first(Ae.filter(Ae.map(Ee,fn=>Ae.find(fn.entries,{traitSubTreeId:Un})))),qn=["class","spec","subtree","hero"];return Ae.each([Ie,Te,Ee,se],(fn,yn)=>{const gi=qn[yn],Gn=Ae.keyBy(fn,"id"),xi=Ae.filter(b,ve=>{var Ve;return gi==="hero"?((Ve=zn[ve.nodeId])==null?void 0:Ve.subTreeId)===Un:Gn[ve.nodeId]}),Yi=Ae.sumBy(xi,"rank");Bn[gi]=Yi;const ki=Yi<cn[gi]&&!w&&!v?"available":"unavailable";Ae.each(fn,ve=>{const Ve=Ae.find(b,{nodeId:ve.id});ve.rank=0,ve.entryNode&&(ve.state=ki),ve.reqPoints&&ve.reqPoints>Yi?ve.state="locked":ve.freeNode&&(ve.state="selected",ve.rank=ve.maxRanks),Ve&&(ve.state="selected",ve.rank=Ve.rank||1,ve.entries.length>1&&(ve.chosenEntryId=Ve.entryId)),Ae.includes(E,ve.id)&&(ve.state="exclude"),ve.subTreeId&&Un!==ve.subTreeId&&(ve.state="hidden"),Ae.each(ve.next,Ze=>{ve.state==="selected"&&ve.rank===ve.maxRanks&&(Gn[Ze].state=ki)})})}),Rn.jsxs(el,{style:{width:t},children:[Rn.jsx(yo,{condition:!v&&!X,then:()=>{var fn,yn;return Rn.jsxs(el,{style:{position:"relative",width:t,height:30},children:[Rn.jsx("div",{style:{position:"absolute",left:le,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[(fn=wT(M.className))==null?void 0:fn.name,": ",Bn.class," /"," ",cn.class]})}),Rn.jsx(yo,{condition:Si,then:()=>Rn.jsx("div",{style:{position:"absolute",left:Oe,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[PT(Si.name),": ",Bn.hero," /"," ",cn.hero]})})}),Rn.jsx("div",{style:{position:"absolute",left:je,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[(yn=ST(M.className,M.specName))==null?void 0:yn.specializationname,":"," ",Bn.spec," / ",cn.spec]})})]})}}),Rn.jsx(el,{style:{position:"relative",width:t,height:H},onContextMenu:fn=>{fn.preventDefault()},children:Ae.map([Ie,Te,Ee,se],(fn,yn)=>{const gi=qn[yn],Gn=Ae.keyBy(fn,"id"),xi=Bn[gi]<cn[gi],Yi=zq(fn);return Rn.jsxs(Hi.Fragment,{children:[Ae.map(fn,hn=>{const[ki,ve]=W([hn.posX,hn.posY]),Ve=Ae.find(b,{nodeId:hn.id});if(hn.state==="hidden")return null;const Ze=fe=>{if(!w&&!v&&!hn.freeNode){if(I&&hn.state==="exclude"){const qe=Ae.without(p,hn.id);A(qe),ae(b,qe)}else if(Ae.includes(["choice","subtree"],hn.type)&&hn.state==="selected"&&hn.chosenEntryId!==fe.id){const qe=[...Ae.reject(b,{nodeId:hn.id}),{nodeId:hn.id,rank:hn.rank,entryId:fe.id}];D(qe),ae(qe,p)}else if(xi&&(hn.state==="available"||hn.state==="selected")&&(!Ve||Ve.rank<hn.maxRanks)){const qe=[...Ae.reject(b,{nodeId:hn.id}),{nodeId:hn.id,rank:hn.rank+1,entryId:fe.id}];D(qe),ae(qe,p)}}},me=()=>{if(console.log("onContextMenu:"),!w&&!v&&!hn.freeNode){if(I&&hn.rank===0){const fe=[...E,hn.id];A(fe),ae(b,fe)}else if(hn.rank>0){hn.rank-=1;let fe=!0;Ae.each(hn.next,Ce=>{const Ke=Gn[Ce];if(Ke.rank>0){if(Ke.prev.length===1)return fe=!1,!1;let gn=!1;if(Ae.each(Ke.prev,jn=>{const kn=Gn[jn];kn.id!==hn.id&&kn.rank===kn.maxRanks&&(gn=!0)}),!gn)return fe=!1,!1}return!0});const qe=_I(fn);if(Ae.filter(qe,{valid:!1}).length>0&&(fe=!1),hn.rank+=1,fe){let Ce=Ae.reject(b,{nodeId:hn.id});hn.rank-1>0&&Ce.push({nodeId:hn.id,rank:hn.rank-1,entryId:hn.entries[0].id});const Ke=Ae.filter(Ae.map(Ce,kn=>({...kn,node:Gn[kn.nodeId]})),"node"),gn=_I(Ae.map(Ke,"node")),jn=Ae.filter(gn,{valid:!1});if(jn.length>0){const kn=new Set(Ae.map(jn,"reqPoints"));Ce=Ae.reject(Ce,ai=>{const ni=Gn[ai.nodeId];return ni?kn.has(ni.reqPoints):!1})}D(Ce),ae(Ce,p)}}}};return Rn.jsx("div",{id:`node-${hn.id}`,style:{position:"absolute",top:ve,left:ki,height:Ye+2,zIndex:6},children:Rn.jsx(py,{node:hn,size:gi==="subtree"?2*Ye:Ye,borderSize:ee,state:hn.state,mini:v,showRanks:x,disableHover:w,specId:i,onClick:Ze,onContextMenu:me})},hn.id)}),Rn.jsx("svg",{style:{position:"absolute",zIndex:5,width:"100%",height:"100%",left:0,top:0},children:Ae.map(Yi,([hn,ki])=>{const[ve,Ve]=W([hn.posX,hn.posY]),[Ze,me]=W([ki.posX,ki.posY]),fe=1+Ye/2;let qe="unavailable";return ki.state==="locked"?qe="locked":hn.state==="selected"&&hn.rank===hn.maxRanks&&(ki.state==="selected"||xi)&&(qe="selected"),Rn.jsx("line",{stroke:Mc[qe],strokeWidth:ee,strokeOpacity:.6,x1:ve+fe,y1:Ve+fe,x2:Ze+fe,y2:me+fe},`line-${i}-${gi}-${hn.id}-${ki.id}`)})})]},gi)})}),Rn.jsx(yo,{condition:Y,then:()=>Rn.jsx("h5",{className:"text-center",children:Y})}),Rn.jsx(yo,{condition:!v&&!k&&!I&&_,then:()=>Rn.jsx(Bm,{justify:"center",children:Rn.jsx(Y4,{tiny:!0,value:xo.stringify(kI(b,i))})})}),Rn.jsx(yo,{condition:v&&!S,then:()=>{const fn=xo.parse(r,i),yn=Ae.reject(fn==null?void 0:fn.entries,{entry:{type:"passive"}}),gi=[{name:"hero",size:22,nodes:Ae.union(Ae.filter(fn==null?void 0:fn.entries,{entry:{type:"subtree"}}),Ae.filter(fn==null?void 0:fn.entries,({entry:Gn})=>Gn.tree==="hero"&&Ae.includes(fn.activeSubtrees,Gn.node.subTreeId)&&Gn.node.type==="choice"))},{name:"spec",size:16,nodes:Ae.filter(yn,{entry:{tree:"spec"}})},{name:"class",size:16,nodes:Ae.filter(yn,{entry:{tree:"class"}})}];return Ae.map(gi,({nodes:Gn,size:xi,name:Yi})=>Rn.jsx(Bm,{wrap:!0,mt:1,justify:"center",children:Ae.map(Gn,hn=>Rn.jsx(el,{style:{height:xi,marginTop:2,marginRight:5},children:Rn.jsx(op,{node:hn,entry:hn.entry,specId:i,size:xi})},hn.entry.id))},Yi))}}),Rn.jsx(yo,{condition:N,then:()=>Rn.jsx("div",{className:"text-center text-orange-400",children:"过期或无效的天赋字符串,请使用最新版本的天赋"})})]})}cy.propTypes={specId:pn.number.isRequired,level:pn.number.isRequired,width:pn.number,talents:pn.oneOfType([pn.string,pn.object]),exclude:pn.array,strokeWidth:pn.number,mini:pn.bool,showRanks:pn.bool,hideExport:pn.bool,hideHeader:pn.bool,allowExclude:pn.bool,hideFooter:pn.bool,readOnly:pn.bool,name:pn.string,onChange:pn.func},cy.defaultProps={width:500,talents:"",exclude:[],strokeWidth:2,mini:!1,showRanks:!0,hideExport:!1,allowExclude:!1,readOnly:!1,hideFooter:!1,hideHeader:!1,name:null,onChange:null};function Uq(i={}){const{specId:s=72,level:t=80,talents:r="CgEArbixk/ZKwTdpZGVHeylmLAAAAAAAAAQjhxsMmhxyYmZWYmZGzghZW2mZMzMbYmZGDzMzywgZMAAAIMwGssY0YGQmFYsAA",exclude:p=[],strokeWidth:u=2,mini:v=!1,showRanks:x=!0,hideExport:_=!1,allowExclude:k=!1,readOnly:I=!0,hideFooter:w=!1,hideHeader:S=!1,name:X=null,showCopy:Y=!0,width:C}=i,[b,D]=Z.useState(C||window.innerWidth);return Z.useEffect(()=>{const E=()=>{D(C||window.innerWidth)};return window.addEventListener("resize",E),()=>{window.removeEventListener("resize",E)}},[C]),Rn.jsx("div",{className:"flex items-center w-full h-full text-white bg-themeWowBg",children:Rn.jsx(cy,{specId:s,level:t,talents:r,width:b,readOnly:I,showRanks:x,allowExclude:k,hideExport:_,strokeWidth:u,mini:v,hideFooter:w,hideHeader:S,name:X,exclude:p,showCopy:Y})})}function Vq(i,s={}){s.urlParams||(s.urlParams=new URLSearchParams(window.location.search));let t;if(typeof i=="string"){if(t=document.querySelector(i),!t)throw new Error(`Container element not found: ${i}`)}else if(i instanceof HTMLElement)t=i;else throw new Error("Container must be a string selector or an HTMLElement");return N9.render(Hi.createElement(Uq,s),t),{destroy:()=>{N9.unmountComponentAtNode(t)}}}Jo.create=Vq,Object.defineProperty(Jo,Symbol.toStringTag,{value:"Module"})});
|
|
472
|
+
)`;if(p)S=null,Y=s;else if(i.type==="single"){const E=i.entries[0];E.type==="passive"&&(Y=s),X=i.maxRanks,S=Rn.jsx(el,{onClick:()=>_(E),children:Rn.jsx(op,{node:i,entry:E,specId:x,size:s})})}else if(i.type==="choice"){b=!0;let E;const A=s-t+1;if(i.chosenEntryId){const N=Ae.find(i.entries,{id:i.chosenEntryId});E=Rn.jsx(el,{style:{width:A,height:A},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})})}else E=Ae.map(i.entries,(N,F)=>Rn.jsx(el,{style:{overflow:"hidden",width:A/2,height:A,borderRight:`${t}px solid gray`,marginLeft:F},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!0})},N.id));S=Rn.jsx(Bm,{align:"center",justify:"center",style:{WebkitClipPath:D,position:"relative"},children:E})}else if(i.type==="subtree"){Y=s;let E;const A=s-t+1;if(i.chosenEntryId){const N=Ae.find(i.entries,{id:i.chosenEntryId});E=Rn.jsx(el,{style:{width:A,height:A},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})})}else E=Ae.map(i.entries,(N,F)=>Rn.jsx(el,{style:{overflow:"hidden",width:A/2,height:A,borderRight:`${t}px solid gray`,marginLeft:F},children:Rn.jsx(op,{node:i,entry:N,specId:x,size:A,noTooltip:!v})},N.id));S=Rn.jsx(Bm,{align:"center",justify:"center",style:{borderRadius:A,position:"relative"},children:E})}else console.warn("unknown node type",i.type);return r==="locked"?S=Rn.jsx("div",{style:{filter:"brightness(0.3) grayscale(1)"},children:S}):(r==="unavailable"||r==="exclude")&&(S=Rn.jsx("div",{style:{filter:"grayscale(2)"},children:S})),r==="available"&&(C="dotted"),i.freeNode&&(X=0),Rn.jsxs("div",{style:{position:"relative"},onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),children:[Rn.jsx("div",{style:{border:`${t}px ${C} ${Mc[r]}`,backgroundColor:Mc[r],lineHeight:1,borderRadius:Y,overflow:"hidden",height:s+2,width:s+2,WebkitClipPath:b?D:null},className:"relative bg-themeYellow",onContextMenu:k,children:S}),Rn.jsx(yo,{condition:(u&&!i.freeNode&&i.type!=="subtree"||X>1)&&!p,then:()=>Rn.jsxs("div",{style:{position:"absolute",right:-4,bottom:-4,background:"#000",fontFamily:"Tahoma",fontSize:s*.35,paddingLeft:2,paddingRight:2,pointerEvents:"none"},children:[i.rank||0,"/",X]})}),Rn.jsx(yo,{condition:r==="exclude",then:()=>Rn.jsx(Gm,{name:"close",size:1.5*s,color:Mc[r],style:{pointerEvents:"none",position:"absolute",right:"50%",top:"50%",transform:"translate(50%, -50%)"}})}),Rn.jsx(yo,{condition:Ae.includes(["choice","subtree"],i.type),then:()=>{const E=s/2;return Rn.jsxs(Rn.Fragment,{children:[Rn.jsx(Gm,{name:"triangleRight",size:E,color:Mc[r],style:{position:"absolute",right:-E+3,top:"50%",transform:"translate(0%, -50%)"}}),Rn.jsx(Gm,{name:"triangleLeft",size:E,color:Mc[r],style:{position:"absolute",left:-E+3,top:"50%",transform:"translate(0%, -50%)"}})]})}}),Rn.jsx(yo,{condition:!v&&I&&Ae.includes(["choice","subtree"],i.type),then:()=>{const E=Ae.round(s*1.2),A=30,N=E*2+A+2*t;return Rn.jsx(Bm,{justify:"space-between",align:"center",style:{position:"absolute",width:N,height:1.4*E,top:-E-1,padding:5,left:-(N/4)-A/4,backgroundColor:"#434343ee",zIndex:20,borderRadius:10},children:Ae.map(i.entries,F=>Rn.jsx(el,{style:{width:E+2*t,height:E+2*t,border:F.id===i.chosenEntryId?`${t}px ${C} ${Mc[r]}`:""},onClick:()=>_(F),children:Rn.jsx(op,{node:i,entry:F,specId:x,size:E})},F.id))})}})]})}py.propTypes={node:pn.shape({type:pn.string,entries:pn.array,maxRanks:pn.number,freeNode:pn.bool,rank:pn.number,chosenEntryId:pn.number}).isRequired,size:pn.number.isRequired,borderSize:pn.number,state:pn.string,mini:pn.bool,showRanks:pn.bool,disableHover:pn.bool,specId:pn.number,onClick:pn.func,onContextMenu:pn.func},py.defaultProps={borderSize:2,state:"unavailable",mini:!1,showRanks:!1,disableHover:!1,specId:null,onClick:()=>{},onContextMenu:()=>{}};function kI(i,s){const t=Ae.join(Ae.map(i,({entryId:r,rank:p})=>Ae.join([r,p],":")),"/");return xo.parse(t,s)}function cy({specId:i,level:s,width:t=500,talents:r="",exclude:p=[],strokeWidth:u=2,mini:v=!1,showRanks:x=!0,showCopy:_=!0,hideExport:k=!1,allowExclude:I=!1,readOnly:w=!1,hideFooter:S=!1,hideHeader:X=!1,name:Y=null,onChange:C=null}){if(document.addEventListener("contextmenu",fn=>{fn.preventDefault()}),Ae.isString(r)&&r.length===7)return null;const[b,D]=Hi.useState([]),[E,A]=Hi.useState([]),[N,F]=Hi.useState(!1);r&&(i=xo.parse(r,i).specId);const M=xo.getTreeBySpecId(i),V=.52,Q=.02,ee=v?1:u,xe=!v&&s>70,{classNodes:Ie,specNodes:Te,subTreeNodes:Ee,heroNodes:se}=xo.getDisplayAdjustedNodes(i,xe),_e=Ae.concat(Ie,Te,Ee,se);if(Hi.useEffect(()=>{if(r){const fn=xo.parse(r,i);i=fn.specId,fn&&(D(Ae.map(fn.entries,yn=>({nodeId:yn.entry.nodeId,entryId:yn.entry.id,rank:yn.rank}))),A(I?p:[]),F(fn.unknownEntries.length>0))}},[r,I]),_e.length===0)return null;const ae=(fn,yn)=>{w||C&&C(kI(fn,i),yn)},ie=xo.getBounds(_e),oe=xo.getBounds(Ie),ye=xo.getBounds(Te),ne=xo.getBounds(se),ue=t/ie.numColumns;let Ye=Ae.round(ue*V);v&&(Ye*=.7);const K=t-Ye,pe=K*Q,re=(K-2*pe)/ie.xRange,H=ie.yRange*re+Ye+2*pe;function W([fn,yn]){return[(fn-ie.xMin)*re+pe,(yn-ie.yMin)*re+pe]}const[te]=W([oe.xMin+oe.xRange/2,0]),[ke]=W([ye.xMin+ye.xRange/2,0]),[Pe]=W([ne.xMin+ne.xRange/2,0]),le=te+Ye/2,je=ke+Ye/2,Oe=Pe+Ye/2,cn=xo.getPointsForLevel(s),Bn={class:0,spec:0},zn=Ae.keyBy(_e,"id"),En=Ae.map(Ae.filter(b,fn=>{var yn;return((yn=zn[fn.nodeId])==null?void 0:yn.type)==="subtree"}),fn=>{const yn=zn[fn.nodeId],gi=Ae.find(yn.entries,{id:fn.entryId});return{...fn,node:yn,entry:gi}}),Un=Ae.first(Ae.map(En,"entry.traitSubTreeId")),Si=Ae.first(Ae.filter(Ae.map(Ee,fn=>Ae.find(fn.entries,{traitSubTreeId:Un})))),qn=["class","spec","subtree","hero"];return Ae.each([Ie,Te,Ee,se],(fn,yn)=>{const gi=qn[yn],Gn=Ae.keyBy(fn,"id"),xi=Ae.filter(b,ve=>{var Ve;return gi==="hero"?((Ve=zn[ve.nodeId])==null?void 0:Ve.subTreeId)===Un:Gn[ve.nodeId]}),Yi=Ae.sumBy(xi,"rank");Bn[gi]=Yi;const ki=Yi<cn[gi]&&!w&&!v?"available":"unavailable";Ae.each(fn,ve=>{const Ve=Ae.find(b,{nodeId:ve.id});ve.rank=0,ve.entryNode&&(ve.state=ki),ve.reqPoints&&ve.reqPoints>Yi?ve.state="locked":ve.freeNode&&(ve.state="selected",ve.rank=ve.maxRanks),Ve&&(ve.state="selected",ve.rank=Ve.rank||1,ve.entries.length>1&&(ve.chosenEntryId=Ve.entryId)),Ae.includes(E,ve.id)&&(ve.state="exclude"),ve.subTreeId&&Un!==ve.subTreeId&&(ve.state="hidden"),Ae.each(ve.next,Ze=>{ve.state==="selected"&&ve.rank===ve.maxRanks&&(Gn[Ze].state=ki)})})}),Rn.jsxs(el,{style:{width:t},children:[Rn.jsx(yo,{condition:!v&&!X,then:()=>{var fn,yn;return Rn.jsxs(el,{style:{position:"relative",width:t,height:30},children:[Rn.jsx("div",{style:{position:"absolute",left:le,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[(fn=wT(M.className))==null?void 0:fn.name,": ",Bn.class," /"," ",cn.class]})}),Rn.jsx(yo,{condition:Si,then:()=>Rn.jsx("div",{style:{position:"absolute",left:Oe,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[PT(Si.name),": ",Bn.hero," /"," ",cn.hero]})})}),Rn.jsx("div",{style:{position:"absolute",left:je,transform:"translateX(-50%)",whiteSpace:"nowrap"},children:Rn.jsxs(s4,{bold:!0,children:[(yn=ST(M.className,M.specName))==null?void 0:yn.specializationname,":"," ",Bn.spec," / ",cn.spec]})})]})}}),Rn.jsx(el,{style:{position:"relative",width:t,height:H},onContextMenu:fn=>{fn.preventDefault()},children:Ae.map([Ie,Te,Ee,se],(fn,yn)=>{const gi=qn[yn],Gn=Ae.keyBy(fn,"id"),xi=Bn[gi]<cn[gi],Yi=zq(fn);return Rn.jsxs(Hi.Fragment,{children:[Ae.map(fn,hn=>{const[ki,ve]=W([hn.posX,hn.posY]),Ve=Ae.find(b,{nodeId:hn.id});if(hn.state==="hidden")return null;const Ze=fe=>{if(!w&&!v&&!hn.freeNode){if(I&&hn.state==="exclude"){const qe=Ae.without(p,hn.id);A(qe),ae(b,qe)}else if(Ae.includes(["choice","subtree"],hn.type)&&hn.state==="selected"&&hn.chosenEntryId!==fe.id){const qe=[...Ae.reject(b,{nodeId:hn.id}),{nodeId:hn.id,rank:hn.rank,entryId:fe.id}];D(qe),ae(qe,p)}else if(xi&&(hn.state==="available"||hn.state==="selected")&&(!Ve||Ve.rank<hn.maxRanks)){const qe=[...Ae.reject(b,{nodeId:hn.id}),{nodeId:hn.id,rank:hn.rank+1,entryId:fe.id}];D(qe),ae(qe,p)}}},me=()=>{if(console.log("onContextMenu:"),!w&&!v&&!hn.freeNode){if(I&&hn.rank===0){const fe=[...E,hn.id];A(fe),ae(b,fe)}else if(hn.rank>0){hn.rank-=1;let fe=!0;Ae.each(hn.next,Ce=>{const Ke=Gn[Ce];if(Ke.rank>0){if(Ke.prev.length===1)return fe=!1,!1;let gn=!1;if(Ae.each(Ke.prev,jn=>{const kn=Gn[jn];kn.id!==hn.id&&kn.rank===kn.maxRanks&&(gn=!0)}),!gn)return fe=!1,!1}return!0});const qe=_I(fn);if(Ae.filter(qe,{valid:!1}).length>0&&(fe=!1),hn.rank+=1,fe){let Ce=Ae.reject(b,{nodeId:hn.id});hn.rank-1>0&&Ce.push({nodeId:hn.id,rank:hn.rank-1,entryId:hn.entries[0].id});const Ke=Ae.filter(Ae.map(Ce,kn=>({...kn,node:Gn[kn.nodeId]})),"node"),gn=_I(Ae.map(Ke,"node")),jn=Ae.filter(gn,{valid:!1});if(jn.length>0){const kn=new Set(Ae.map(jn,"reqPoints"));Ce=Ae.reject(Ce,ai=>{const ni=Gn[ai.nodeId];return ni?kn.has(ni.reqPoints):!1})}D(Ce),ae(Ce,p)}}}};return Rn.jsx("div",{id:`node-${hn.id}`,style:{position:"absolute",top:ve,left:ki,height:Ye+2,zIndex:6},children:Rn.jsx(py,{node:hn,size:gi==="subtree"?2*Ye:Ye,borderSize:ee,state:hn.state,mini:v,showRanks:x,disableHover:w,specId:i,onClick:Ze,onContextMenu:me})},hn.id)}),Rn.jsx("svg",{style:{position:"absolute",zIndex:5,width:"100%",height:"100%",left:0,top:0},children:Ae.map(Yi,([hn,ki])=>{const[ve,Ve]=W([hn.posX,hn.posY]),[Ze,me]=W([ki.posX,ki.posY]),fe=1+Ye/2;let qe="unavailable";return ki.state==="locked"?qe="locked":hn.state==="selected"&&hn.rank===hn.maxRanks&&(ki.state==="selected"||xi)&&(qe="selected"),Rn.jsx("line",{stroke:Mc[qe],strokeWidth:ee,strokeOpacity:.6,x1:ve+fe,y1:Ve+fe,x2:Ze+fe,y2:me+fe},`line-${i}-${gi}-${hn.id}-${ki.id}`)})})]},gi)})}),Rn.jsx(yo,{condition:Y,then:()=>Rn.jsx("h5",{className:"text-center",children:Y})}),Rn.jsx(yo,{condition:!v&&!k&&!I&&_,then:()=>Rn.jsx(Bm,{justify:"center",children:Rn.jsx(Y4,{tiny:!0,value:xo.stringify(kI(b,i))})})}),Rn.jsx(yo,{condition:v&&!S,then:()=>{const fn=xo.parse(r,i),yn=Ae.reject(fn==null?void 0:fn.entries,{entry:{type:"passive"}}),gi=[{name:"hero",size:22,nodes:Ae.union(Ae.filter(fn==null?void 0:fn.entries,{entry:{type:"subtree"}}),Ae.filter(fn==null?void 0:fn.entries,({entry:Gn})=>Gn.tree==="hero"&&Ae.includes(fn.activeSubtrees,Gn.node.subTreeId)&&Gn.node.type==="choice"))},{name:"spec",size:16,nodes:Ae.filter(yn,{entry:{tree:"spec"}})},{name:"class",size:16,nodes:Ae.filter(yn,{entry:{tree:"class"}})}];return Ae.map(gi,({nodes:Gn,size:xi,name:Yi})=>Rn.jsx(Bm,{wrap:!0,mt:1,justify:"center",children:Ae.map(Gn,hn=>Rn.jsx(el,{style:{height:xi,marginTop:2,marginRight:5},children:Rn.jsx(op,{node:hn,entry:hn.entry,specId:i,size:xi})},hn.entry.id))},Yi))}}),Rn.jsx(yo,{condition:N,then:()=>Rn.jsx("div",{className:"text-center text-orange-400",children:"过期或无效的天赋字符串,请使用最新版本的天赋"})})]})}cy.propTypes={specId:pn.number.isRequired,level:pn.number.isRequired,width:pn.number,talents:pn.oneOfType([pn.string,pn.object]),exclude:pn.array,strokeWidth:pn.number,mini:pn.bool,showRanks:pn.bool,hideExport:pn.bool,hideHeader:pn.bool,allowExclude:pn.bool,hideFooter:pn.bool,readOnly:pn.bool,name:pn.string,onChange:pn.func},cy.defaultProps={width:500,talents:"",exclude:[],strokeWidth:2,mini:!1,showRanks:!0,hideExport:!1,allowExclude:!1,readOnly:!1,hideFooter:!1,hideHeader:!1,name:null,onChange:null};function Uq(i={}){const{specId:s=72,level:t=80,talents:r="",exclude:p=[],strokeWidth:u=2,mini:v=!1,showRanks:x=!0,hideExport:_=!1,allowExclude:k=!1,readOnly:I=!0,hideFooter:w=!1,hideHeader:S=!1,name:X=null,showCopy:Y=!0,width:C}=i,[b,D]=Z.useState(C||window.innerWidth);return Z.useEffect(()=>{const E=()=>{D(C||window.innerWidth)};return window.addEventListener("resize",E),()=>{window.removeEventListener("resize",E)}},[C]),Rn.jsx("div",{className:"flex items-center w-full h-full text-white",children:Rn.jsx(cy,{specId:s,level:t,talents:r,width:b,readOnly:I,showRanks:x,allowExclude:k,hideExport:_,strokeWidth:u,mini:v,hideFooter:w,hideHeader:S,name:X,exclude:p,showCopy:Y})})}function Vq(i,s={}){let t;if(typeof i=="string"){if(t=document.querySelector(i),!t)throw new Error(`Container element not found: ${i}`)}else if(i instanceof HTMLElement)t=i;else throw new Error("Container must be a string selector or an HTMLElement");const r=t.clientWidth;return s.width||(s.width=r),N9.render(Hi.createElement(Uq,s),t),{destroy:()=>{N9.unmountComponentAtNode(t)}}}Jo.create=Vq,Object.defineProperty(Jo,Symbol.toStringTag,{value:"Module"})});
|