UNPKG

@determaer/cmkd

Version:

Cognitive Maps of Knowledge Diagnosis (CMKD) interactive builder

2 lines (1 loc) 30.1 kB
(function(V,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(V=typeof globalThis<"u"?globalThis:V||self,e(V.vuessages={},V.Vue))})(this,(function(V,e){"use strict";const de=e.ref(800),fe=e.ref(0),be=e.ref(0),G=e.ref(0),N=e.ref(0),H=5,me=e.computed(()=>N.value*H),$=e.ref({outerRadius:0,innerRadius:0,labelRadius:0,additionalLabelRadius:0,linesBtwElementsRadius:0,mergingPortsRadius:0,sectorNameRadius:0,angles:[],dividerAngles:[]}),ke=e.ref(1),pe=e.computed(()=>N.value<=10?1:N.value>10&&N.value<20?.9:N.value>=20&&N.value<30?.8:N.value>=30&&N.value<40?.75:N.value>=40&&N.value<50?.7:N.value>=50?.65:1),he=e.ref(),ge=e.ref(),Le=e.ref(!0),ye=e.ref(!0),we=e.ref(!1),xe=e.ref(!1),je=e.ref(!1),Ce=e.ref(),ve=e.ref(),q=e.ref([]),Q=e.ref([]),_=e.ref([]),ee=e.ref([]),I=()=>{function a(){q.value=[],Q.value=[],_.value=[],ee.value=[],N.value=0,G.value=0,$.value={outerRadius:0,innerRadius:0,labelRadius:0,additionalLabelRadius:0,linesBtwElementsRadius:0,mergingPortsRadius:0,sectorNameRadius:0,angles:[],dividerAngles:[]},console.log(q.value,$.value)}return{width:de,x:fe,y:be,circleDivider:H,circleNum:G,discNum:N,pointNum:me,params:$,scaleMultiplier:ke,sizeMultiplier:pe,position:he,showSupportRect:ge,showAdditionalInCircle:Le,defaultRect:ye,showScore:we,showLight:xe,showSectorName:je,oneLevel:Ce,showImportant:ve,labels:q,labelsZero:Q,sectors:_,lines:ee,resetParams:a}},Me=e.ref(-1e3),Be=e.ref(-1e3),le=e.ref({isClicked:!1,objLabelIn:null,objLabelOut:null}),te=e.ref({isClicked:!1,objLabel:null,prevLabels:null,nextLabels:null}),ae=e.ref({isClicked:!1,sector:null}),Re=e.ref({type:"",objLabel:null,prevLabels:[],nextLabels:[]}),E=()=>({clickLayerX:Me,clickLayerY:Be,clickedLine:le,clickedElement:te,clickedSector:ae,clickedInfo:Re,resetClicked:()=>{le.value={isClicked:!1,objLabelIn:null,objLabelOut:null},te.value={isClicked:!1,objLabel:null,prevLabels:null,nextLabels:null},ae.value={isClicked:!1,sector:null}}}),w=(a,l,u,t)=>{var n=t/180*Math.PI,f=a+u*Math.cos(n),s=l-u*Math.sin(n);return[f,s]},Ne={__name:"DrawSupportLabel",props:{angles:Object,objLabel:Object},setup(a){const l=I(),u=E(),t=a,[n,f]=w(l.x.value,l.y.value,l.params.value.labelRadius,t.angles.labelAngle),[s,o]=w(l.x.value,l.y.value,l.params.value.additionalLabelRadius,t.angles.labelAngle),[c,h]=w(l.x.value,l.y.value,l.params.value.additionalLabelRadius+2.5,t.angles.labelAngle+.6),[x,i]=w(l.x.value,l.y.value,l.params.value.additionalLabelRadius+5,t.angles.labelAngle+1.2),g=e.ref(1),b=()=>{g.value=1,u.clickedInfo.value={type:"supportLabel",object:t.objLabel}},L=()=>{g.value=1.5},m=()=>{g.value=1},d=e.computed(()=>t.objLabel.num>2||t.objLabel.num>1&&!t.objLabel.isBase&&!l.showAdditionalInCircle.value),B=e.computed(()=>t.objLabel.num>3||t.objLabel.num>2&&!t.objLabel.isBase&&!l.showAdditionalInCircle.value),r=e.computed(()=>l.sizeMultiplier.value*g.value*l.scaleMultiplier.value);return(y,C)=>{const S=e.resolveComponent("v-line"),v=e.resolveComponent("v-rect"),R=e.resolveComponent("v-text");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(S,{points:[e.unref(n),e.unref(f),e.unref(s),e.unref(o)],stroke:"black"},null,8,["points"]),B.value?(e.openBlock(),e.createBlock(v,{key:0,x:e.unref(x),y:e.unref(i),width:36*r.value,height:36*r.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*r.value,y:18*r.value},rotation:-a.angles.labelAngle,onClick:b,onMouseOver:L,onMouseOut:m},null,8,["x","y","width","height","strokeWidth","offset","rotation"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createBlock(v,{key:1,x:e.unref(c),y:e.unref(h),width:36*r.value,height:36*r.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*r.value,y:18*r.value},rotation:-a.angles.labelAngle,onClick:b,onMouseOver:L,onMouseOut:m},null,8,["x","y","width","height","strokeWidth","offset","rotation"])):e.createCommentVNode("",!0),e.createVNode(v,{x:e.unref(s),y:e.unref(o),width:36*r.value,height:36*r.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*r.value,y:18*r.value},rotation:-a.angles.labelAngle,onClick:b,onMouseOver:L,onMouseOut:m},null,8,["x","y","width","height","strokeWidth","offset","rotation"]),e.createVNode(R,{x:e.unref(s),y:e.unref(o),text:a.objLabel.typeText,offset:{x:13*r.value,y:10*r.value},fontFamily:"Times New Roman",fontSize:22*r.value,fontStyle:a.objLabel.fontStyle,onClick:b,onMouseOver:L,onMouseOut:m},null,8,["x","y","text","offset","fontSize","fontStyle"]),e.createVNode(R,{x:e.unref(s),y:e.unref(o),text:a.objLabel.numText,offset:{x:1*r.value,y:2*r.value},fontFamily:"'Times New Roman'",fontSize:16*r.value,fontStyle:a.objLabel.fontStyle,onClick:b,onMouseOver:L,onMouseOut:m},null,8,["x","y","text","offset","fontSize","fontStyle"])],64)}}},T={__name:"DrawLabels",props:{objLabel:Object,shadowed:Boolean},setup(a){const l=I(),u=E(),t=a,n=l.params.value.angles.find(D=>D.labelId===t.objLabel.index),f=e.ref(1),[s,o]=w(l.x.value,l.y.value,l.params.value.labelRadius,n.labelAngle),[c,h]=w(l.x.value,l.y.value,l.params.value.innerRadius,n.inAngle),[x,i]=w(l.x.value,l.y.value,l.params.value.innerRadius,n.outAngle),[g,b]=w(l.x.value,l.y.value,l.params.value.mergingPortsRadius,n.outAngle),[L,m]=w(l.x.value,l.y.value,l.params.value.mergingPortsRadius,n.inAngle),[d,B]=w(l.x.value,l.y.value,l.params.value.innerRadius-1,n.inAngle),[r,y]=w(l.x.value,l.y.value,l.params.value.labelRadius+2.5,n.labelAngle+.6),[C,S]=w(l.x.value,l.y.value,l.params.value.labelRadius+5,n.labelAngle+1.2),v=()=>{f.value=1;let D=[],P=[];l.labelsZero.value.map(W=>{W.connections.length!==0&&W.connections.map(X=>{t.objLabel.id===X&&D.push(W)})}),t.objLabel.connections.map(W=>{let X=l.labelsZero.value.find(Y=>Y.id===W);X&&P.push(X)}),u.resetClicked(),e.nextTick(()=>{u.clickedElement.value={isClicked:!0,objLabel:t.objLabel,prevLabels:P,nextLabels:D},u.clickedInfo.value={type:"label",object:t.objLabel,prevLabels:P,nextLabels:D},console.log(u.clickedInfo.value)})},R=()=>{f.value=1.5},O=()=>{f.value=1},A=e.computed(()=>{if(l.showScore.value){if(t.objLabel.index>l.position.value)return"yellow";if(t.objLabel.grey)return"lightgrey";if(t.objLabel.score>0)return"green";if(t.objLabel.score<0)return"red"}return"white"}),J=e.computed(()=>!!(l.showSupportRect.value&&(t.objLabel.num>1||!t.objLabel.isBase&&!l.showAdditionalInCircle.value))),z=e.computed(()=>{if(t.objLabel.type==="roundrect"&&!l.defaultRect.value)return 7}),p=e.computed(()=>l.sizeMultiplier.value*f.value*l.scaleMultiplier.value);e.computed(()=>t.objLabel.learnt?"white":A.value);const M=e.computed(()=>!!((t.objLabel.type==="rect"||t.objLabel.type==="roundrect"||l.defaultRect.value)&&(l.showAdditionalInCircle.value||t.objLabel.isBase))),F=e.computed(()=>!!(t.objLabel.type==="circle"&&!l.defaultRect.value&&(l.showAdditionalInCircle.value||t.objLabel.isBase))),se=e.computed(()=>t.objLabel.num>1&&!l.showSupportRect.value&&!l.showScore.value),ie=e.computed(()=>t.objLabel.num>2&&!l.showSupportRect.value&&!l.showScore.value),ce=e.computed(()=>!!(l.showAdditionalInCircle.value||t.objLabel.isBase));return(D,P)=>{const W=e.resolveComponent("v-line"),X=e.resolveComponent("v-arrow"),Y=e.resolveComponent("v-rect"),Z=e.resolveComponent("v-circle"),ue=e.resolveComponent("v-text");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(W,{points:[e.unref(c),e.unref(h),e.unref(L),e.unref(m),e.unref(s),e.unref(o),e.unref(g),e.unref(b),e.unref(x),e.unref(i)],stroke:"black",strokeWidth:2*e.unref(l).scaleMultiplier.value,lineJoin:"round"},null,8,["points","strokeWidth"]),e.createVNode(X,{points:[e.unref(d),e.unref(B),e.unref(c),e.unref(h)],stroke:"black",fill:"black",pointerWidth:10*e.unref(l).sizeMultiplier.value*e.unref(l).scaleMultiplier.value,pointerLength:10*e.unref(l).scaleMultiplier.value},null,8,["points","pointerWidth","pointerLength"]),J.value?(e.openBlock(),e.createBlock(Ne,{key:0,angles:e.unref(n),objLabel:a.objLabel},null,8,["angles","objLabel"])):e.createCommentVNode("",!0),ie.value&&M.value?(e.openBlock(),e.createBlock(Y,{key:1,x:e.unref(C),y:e.unref(S),width:36*p.value,height:36*p.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*p.value,y:18*p.value},rotation:-e.unref(n).labelAngle,cornerRadius:z.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","width","height","strokeWidth","offset","rotation","cornerRadius"])):e.createCommentVNode("",!0),se.value&&M.value?(e.openBlock(),e.createBlock(Y,{key:2,x:e.unref(r),y:e.unref(y),width:36*p.value,height:36*p.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*p.value,y:18*p.value},rotation:-e.unref(n).labelAngle,cornerRadius:z.value,onСlick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","width","height","strokeWidth","offset","rotation","cornerRadius"])):e.createCommentVNode("",!0),M.value?(e.openBlock(),e.createBlock(Y,{key:3,x:e.unref(s),y:e.unref(o),width:36*p.value,height:36*p.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*p.value,y:18*p.value},rotation:-e.unref(n).labelAngle,cornerRadius:z.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","width","height","strokeWidth","offset","rotation","cornerRadius"])):e.createCommentVNode("",!0),e.unref(l).showScore.value&&M.value?(e.openBlock(),e.createBlock(Y,{key:4,x:e.unref(s),y:e.unref(o),width:36*p.value,height:36*p.value,opacity:A.value==="lightgrey"||a.shadowed||A.value=="yellow"?1:Math.abs(a.objLabel.score),fill:a.shadowed?"white":A.value,stroke:a.shadowed?A.value:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*p.value,y:18*p.value},rotation:-e.unref(n).labelAngle,cornerRadius:z.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","width","height","opacity","fill","stroke","strokeWidth","offset","rotation","cornerRadius"])):e.createCommentVNode("",!0),F.value&&ie.value?(e.openBlock(),e.createBlock(Z,{key:5,x:e.unref(C),y:e.unref(S),radius:20*p.value,fill:"white",stroke:'"black"',strokeWidth:1*e.unref(l).scaleMultiplier.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","radius","strokeWidth"])):e.createCommentVNode("",!0),F.value&&se.value?(e.openBlock(),e.createBlock(Z,{key:6,x:e.unref(r),y:e.unref(y),radius:20*p.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","radius","strokeWidth"])):e.createCommentVNode("",!0),F.value?(e.openBlock(),e.createBlock(Z,{key:7,x:e.unref(s),y:e.unref(o),radius:20*p.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","radius","strokeWidth"])):e.createCommentVNode("",!0),e.unref(l).showScore.value&&F.value?(e.openBlock(),e.createBlock(Z,{key:8,x:e.unref(s),y:e.unref(o),radius:20*p.value,fill:a.shadowed?"white":A.value,stroke:a.shadowed?A.value:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,opacity:A.value==="lightgrey"||a.shadowed||A.value=="yellow"?1:Math.abs(a.objLabel.score),onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","radius","fill","stroke","strokeWidth","opacity"])):e.createCommentVNode("",!0),ce.value?(e.openBlock(),e.createBlock(ue,{key:9,x:e.unref(s),y:e.unref(o),text:a.objLabel.typeText,offset:{x:14*p.value,y:10*p.value},fontFamily:"Times New Roman",fontSize:a.objLabel.typeText.length===1?22*p.value:15*p.value,fontStyle:a.objLabel.fontStyle,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","text","offset","fontSize","fontStyle"])):e.createCommentVNode("",!0),ce.value?(e.openBlock(),e.createBlock(ue,{key:10,x:e.unref(s),y:e.unref(o),text:a.objLabel.numText,offset:{x:3*p.value,y:4*p.value},fontFamily:"Times New Roman",fontSize:16*p.value,fontStyle:a.objLabel.fontStyle,onClick:v,onMouseOver:R,onMouseOut:O},null,8,["x","y","text","offset","fontSize","fontStyle"])):e.createCommentVNode("",!0)],64)}}},K={__name:"DrawLineBtwElements",props:{objLabelOut:Object,objLabelIn:Object},setup(a){const l=I(),u=E(),t=a,n=e.ref(1),f=e.ref(),s=e.computed(()=>{if((t.objLabelIn.prop!==0||t.objLabelOut.prop!==0)&&!l.oneLevel.value)return[5,2]}),o=e.computed(()=>l.showImportant.value&&(t.objLabelOut.score<0||t.objLabelIn.score<0&&t.objLabelOut.isBase)?"red":"black"),c=e.computed(()=>!(l.position.value&&t.objLabelIn.index>l.position.value));e.onMounted(()=>{let g=0;l.discNum.value>=50&&(g=1);let b,L,m,d,B,r;t.objLabelIn.prop!==0||t.objLabelOut.prop!==0?(r=l.params.value.innerRadius,B=l.params.value.linesBtwElementsRadius,m=l.params.value.angles.find(M=>M.labelId===t.objLabelOut.index).inAngle,d=l.params.value.angles.find(M=>M.labelId===t.objLabelIn.index).outAngle):(B=l.params.value.innerRadius,r=l.params.value.linesBtwElementsRadius,m=l.params.value.angles.find(M=>M.labelId===t.objLabelOut.index).outAngle,d=l.params.value.angles.find(M=>M.labelId===t.objLabelIn.index).inAngle);let y=Math.abs(m-d);m>=300&&(m=m-360),d>=300&&(d=d-360);let C;if(y<180){let M=(180-y)/10;y=y/250,C=10*M*l.scaleMultiplier.value+50*g*l.scaleMultiplier.value,b=m+y,L=d-y}if(y>=180){let M=(180-Math.abs(y-360))/10;y=y/250,C=10*M*l.scaleMultiplier.value+50*g*l.scaleMultiplier.value,b=m-y,L=d+y}const[S,v]=w(l.x.value,l.y.value,C,b),[R,O]=w(l.x.value,l.y.value,C,L),[A,J]=w(l.x.value,l.y.value,B,m),[z,p]=w(l.x.value,l.y.value,r,d);f.value=[A,J,S,v,R,O,z,p]});const h=()=>{n.value=1,u.resetClicked(),e.nextTick(()=>{u.clickedLine.value={isClicked:!0,objLabelIn:t.objLabelIn,objLabelOut:t.objLabelOut},u.clickedInfo.value={type:"line",object:{objLabelIn:t.objLabelIn,objLabelOut:t.objLabelOut}}})},x=()=>{n.value=3},i=()=>{n.value=1};return(g,b)=>{const L=e.resolveComponent("v-line");return c.value?(e.openBlock(),e.createBlock(L,{key:0,bezier:!0,points:f.value,stroke:o.value,strokeWidth:2.2*n.value*e.unref(l).scaleMultiplier.value,dash:s.value,onClick:h,onMouseOver:x,onMouseOut:i},null,8,["points","stroke","strokeWidth","dash"])):e.createCommentVNode("",!0)}}},oe={__name:"DrawSector",props:{sector:Object,bgColor:String,shadowed:Boolean,opacity:Number},setup(a){const l=I(),u=E(),t=a,n=e.ref(t.bgColor),f=e.ref(1);let s=t.sector.sEnd-t.sector.sStart,o=0;t.sector.sEnd-s/2>90&&t.sector.sEnd-s/2<270&&(o=1);const c=()=>{u.clickedInfo.value={type:"sector",object:t.sector},u.clickedSector.value={isClicked:!0,sector:t.sector}};let h=0;l.showSupportRect.value&&(h=50);const[x,i]=w(l.x.value,l.y.value,l.params.value.labelRadius+50*t.sector.sLevel*l.scaleMultiplier.value,90+(t.sector.sEnd-s/2)),[g,b]=w(l.x.value,l.y.value,l.params.value.sectorNameRadius+h,90+(t.sector.sEnd-s/2));let L="white";t.sector.object&&(t.sector.object.score>0&&(L="green"),t.sector.object.score<0&&(L="red"));const m=e.computed(()=>!!(t.sector.object&&t.sector.object.isLabel)),d=e.computed(()=>l.sizeMultiplier.value*f.value*l.scaleMultiplier.value);return(B,r)=>{const y=e.resolveComponent("v-arc"),C=e.resolveComponent("v-text"),S=e.resolveComponent("v-rect");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(y,{x:e.unref(l).x.value,y:e.unref(l).y.value,angle:360-e.unref(s),rotation:-90-a.sector.sStart,outerRadius:e.unref(l).params.value.outerRadius+50*a.sector.sLevel*e.unref(l).scaleMultiplier.value,innerRadius:e.unref(l).params.value.innerRadius+50*a.sector.sLevel*e.unref(l).scaleMultiplier.value,fill:n.value,stroke:"black",opacity:a.opacity,clockwise:!0,strokeWidth:2*e.unref(l).scaleMultiplier.value,onClick:c,onMouseOver:r[0]||(r[0]=()=>{n.value="gray"}),onMouseOut:r[1]||(r[1]=()=>{n.value=a.bgColor})},null,8,["x","y","angle","rotation","outerRadius","innerRadius","fill","opacity","strokeWidth"]),e.unref(l).showSectorName.value?(e.openBlock(),e.createBlock(C,{key:0,x:e.unref(g),y:e.unref(b),text:a.sector.shortname,offset:{x:20*d.value,y:10*d.value},fontFamily:"Times New Roman",fontSize:22*d.value,rotation:-(a.sector.sEnd-e.unref(s)/2)-180*e.unref(o),onClick:c,onMouseOver:r[2]||(r[2]=()=>{n.value="gray"}),onMouseOut:r[3]||(r[3]=()=>{n.value=a.bgColor})},null,8,["x","y","text","offset","fontSize","rotation"])):e.createCommentVNode("",!0),m.value&&a.sector.object.level!=0?(e.openBlock(),e.createBlock(S,{key:1,x:e.unref(x),y:e.unref(i),width:36*d.value,height:36*d.value,fill:"white",stroke:"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*d.value,y:18*d.value},rotation:-(a.sector.sEnd-e.unref(s)/2),onClick:c,onMouseOver:r[4]||(r[4]=()=>{f.value=1.5}),onMouseOut:r[5]||(r[5]=()=>{f.value=1})},null,8,["x","y","width","height","strokeWidth","offset","rotation"])):e.createCommentVNode("",!0),m.value&&e.unref(l).showScore.value&&a.sector.object.level!=0?(e.openBlock(),e.createBlock(S,{key:2,x:e.unref(x),y:e.unref(i),width:36*d.value,height:36*d.value,opacity:Math.abs(a.sector.object.score),fill:a.shadowed?"white":e.unref(L),stroke:a.shadowed?e.unref(L):"black",strokeWidth:1*e.unref(l).scaleMultiplier.value,offset:{x:18*d.value,y:18*d.value},rotation:-(a.sector.sEnd-e.unref(s)/2),onClick:c,onMouseOver:r[6]||(r[6]=()=>{f.value=1.5}),onMouseOut:r[7]||(r[7]=()=>{f.value=1})},null,8,["x","y","width","height","opacity","fill","stroke","strokeWidth","offset","rotation"])):e.createCommentVNode("",!0),m.value&&a.sector.object.level!=0?(e.openBlock(),e.createBlock(C,{key:3,x:e.unref(x),y:e.unref(i),text:a.sector.object.typeText,offset:{x:13*d.value,y:10*d.value},fontFamily:"Times New Roman",fontSize:22*d.value,fontStyle:a.sector.object.fontStyle,onClick:c,onMouseOver:r[8]||(r[8]=()=>{f.value=1.5}),onMouseOut:r[9]||(r[9]=()=>{f.value=1})},null,8,["x","y","text","offset","fontSize","fontStyle"])):e.createCommentVNode("",!0),m.value&&a.sector.object.level!=0?(e.openBlock(),e.createBlock(C,{key:4,x:e.unref(x),y:e.unref(i),text:a.sector.object.numText,offset:{x:1*d.value,y:2*d.value},fontFamily:"Times New Roman",fontSize:16*d.value,fontStyle:a.sector.object.fontStyle,onClick:c,onMouseOver:r[10]||(r[10]=()=>{f.value=1.5}),onMouseOut:r[11]||(r[11]=()=>{f.value=1})},null,8,["x","y","text","offset","fontSize","fontStyle"])):e.createCommentVNode("",!0),!m.value&&a.sector.object.level!=0?(e.openBlock(),e.createBlock(C,{key:5,x:e.unref(x),y:e.unref(i),text:a.sector.object.typeText+a.sector.object.numText,offset:{x:20*d.value,y:10*d.value},fontFamily:"Times New Roman",fontSize:22*d.value,rotation:-(a.sector.sEnd-e.unref(s)/2)-180*e.unref(o),fontStyle:a.sector.object.fontStyle,onClick:c,onMouseOver:r[12]||(r[12]=()=>{n.value="gray"}),onMouseOut:r[13]||(r[13]=()=>{n.value=a.bgColor})},null,8,["x","y","text","offset","fontSize","rotation","fontStyle"])):e.createCommentVNode("",!0)],64)}}},ne={__name:"DrawAngledLine",props:{startRadius:Number,endRadius:Number,angle:Number,color:String,width:Number},setup(a){const l=I(),u=a,[t,n]=w(l.x.value,l.y.value,u.startRadius,u.angle),[f,s]=w(l.x.value,l.y.value,u.endRadius,u.angle);return(o,c)=>{const h=e.resolveComponent("v-line");return e.openBlock(),e.createBlock(h,{points:[e.unref(t),e.unref(n),e.unref(f),e.unref(s)],stroke:a.color,strokeWidth:a.width},null,8,["points","stroke","strokeWidth"])}}},Se={__name:"TypeDivider",props:{startRadius:Number,endRadius:Number,angle:Number},setup(a){const l=I();return(u,t)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(ne,{startRadius:a.startRadius,endRadius:a.endRadius,angle:a.angle,color:"black",width:5*e.unref(l).scaleMultiplier.value},null,8,["startRadius","endRadius","angle","width"]),e.createVNode(ne,{startRadius:a.startRadius-2,endRadius:a.endRadius+2,angle:a.angle,color:"white",width:2*e.unref(l).scaleMultiplier.value},null,8,["startRadius","endRadius","angle","width"])],64))}},Oe={__name:"DrawBase",props:{bgColor:String,bgColor2:String},setup(a){const l=I();return(u,t)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).sectors.value,n=>(e.openBlock(),e.createBlock(oe,{sector:n,bgColor:n.sLevel%2===0?a.bgColor:a.bgColor2},null,8,["sector","bgColor"]))),256)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).params.value.dividerAngles,n=>(e.openBlock(),e.createBlock(Se,{startRadius:e.unref(l).params.value.innerRadius,endRadius:e.unref(l).params.value.outerRadius+50*e.unref(l).circleNum.value*e.unref(l).scaleMultiplier.value,angle:n},null,8,["startRadius","endRadius","angle"]))),256))],64))}},Ie={__name:"DrawClickedElement",setup(a){const l=E(),u=[],t=[];return u.push({label:l.clickedElement.value.objLabel,shadowed:!0}),l.clickedElement.value.nextLabels.map(n=>{u.push({label:n,shadowed:!1}),t.push({objLabelIn:l.clickedElement.value.objLabel,objLabelOut:n})}),l.clickedElement.value.prevLabels.map(n=>{u.push({label:n,shadowed:!1}),t.push({objLabelIn:n,objLabelOut:l.clickedElement.value.objLabel})}),(n,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(t,s=>e.createVNode(K,{objLabelIn:s.objLabelIn,objLabelOut:s.objLabelOut},null,8,["objLabelIn","objLabelOut"])),64)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,s=>e.createVNode(T,{objLabel:s.label,shadowed:s.shadowed},null,8,["objLabel","shadowed"])),64))],64))}},Ae={__name:"DrawClickedLine",setup(a){const l=E();return(u,t)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(T,{objLabel:e.unref(l).clickedLine.value.objLabelIn},null,8,["objLabel"]),e.createVNode(T,{objLabel:e.unref(l).clickedLine.value.objLabelOut},null,8,["objLabel"]),e.createVNode(K,{objLabelIn:e.unref(l).clickedLine.value.objLabelIn,objLabelOut:e.unref(l).clickedLine.value.objLabelOut},null,8,["objLabelIn","objLabelOut"])],64))}},Ee={__name:"DrawClickedSector",setup(a){const l=E();return(u,t)=>(e.openBlock(),e.createBlock(oe,{sector:e.unref(l).clickedSector.value.sector,bgColor:"gray",opacity:.5},null,8,["sector"]))}},Ve={__name:"DrawArrows",setup(a){const l=I(),u=e.ref([]),t=e.ref([]);return l.labelsZero.value.map((n,f)=>{if(n.arrowIn){let s=l.params.value.angles.find(b=>b.labelId===n.index),o=s.arrowAngle-1,c=s.arrowAngle,[h,x]=w(l.x.value,l.y.value,l.params.value.labelRadius,o),[i,g]=w(l.x.value,l.y.value,l.params.value.labelRadius,c);(l.showAdditionalInCircle.value||n.isBase)&&u.value.push({startX:h,startY:x,endX:i,endY:g})}if(n.arrowOut){let s=l.params.value.angles.find(c=>c.labelId===n.index).labelAngle,o=l.params.value.angles.find(c=>c.labelId===l.labelsZero.value[f+1].index).labelAngle;t.value.push({angle:s-o,rotation:-s})}}),(n,f)=>{const s=e.resolveComponent("v-arrow"),o=e.resolveComponent("v-arc");return e.openBlock(),e.createElementBlock(e.Fragment,null,[t.value.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(u.value,c=>(e.openBlock(),e.createBlock(s,{points:[c.startX,c.startY,c.endX,c.endY],stroke:"black",fill:"black",pointerWidth:7*e.unref(l).sizeMultiplier.value*e.unref(l).scaleMultiplier.value,pointerLength:7*e.unref(l).scaleMultiplier.value},null,8,["points","pointerWidth","pointerLength"]))),256)):e.createCommentVNode("",!0),t.value.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.value,c=>(e.openBlock(),e.createBlock(o,{x:e.unref(l).x.value,y:e.unref(l).y.value,stroke:"black",angle:c.angle,innerRadius:e.unref(l).params.value.labelRadius,outerRadius:e.unref(l).params.value.labelRadius,clockwise:!0,rotation:c.rotation,strokeWidth:2*e.unref(l).scaleMultiplier.value},null,8,["x","y","angle","innerRadius","outerRadius","rotation","strokeWidth"]))),256)):e.createCommentVNode("",!0)],64)}}},k=I(),U=()=>{const a=[],l=[],u=[],t=[],n=[],f=[];for(let o=1;o<=k.discNum.value*2;o=o+2)a.push(o*(360/(k.discNum.value*2))+90);for(let o=1;o<k.pointNum.value;o=o+k.circleDivider){let c=(o+1)*(360/k.pointNum.value)+90,h=(o+2)*(360/k.pointNum.value)+90,x=c-2*k.sizeMultiplier.value;t.push(x),l.push(h),u.push(c)}for(let o=0;o<k.discNum.value;o=o+1)f.push({labelId:k.labelsZero.value[o].index,inAngle:l[o],outAngle:u[o],labelAngle:a[o],arrowAngle:t[o]});n.push(90);for(let o=0;o<k.discNum.value-1;o=o+1)k.labelsZero.value[o].prop!==k.labelsZero.value[o+1].prop&&n.push(a[o]+(a[o+1]-a[o])/2);const s=k.discNum.value<50?0:50;k.params.value={outerRadius:(250+s)*k.scaleMultiplier.value,innerRadius:(200+s)*k.scaleMultiplier.value,labelRadius:(225+s)*k.scaleMultiplier.value,additionalLabelRadius:(285+s)*k.scaleMultiplier.value,linesBtwElementsRadius:(190+s)*k.scaleMultiplier.value,mergingPortsRadius:(212+s)*k.scaleMultiplier.value,sectorNameRadius:(265+s)*k.scaleMultiplier.value,dividerAngles:n,angles:f};for(let o=k.circleNum.value;o>=0;o=o-1){const c=[],h=[];let x=0;if(c.push(0),k.params.value.angles.length>0)if(o==0){let i,g;k.params.value.angles.length>0&&k.labelsZero.value.map(b=>{var L,m,d;if(b.secStart&&(i=b.index),b.secEnd){let B=b.index;if(B!=k.labels.value.length-1){let r=(L=k.params.value.angles.find(S=>S.labelId===B+1))==null?void 0:L.labelAngle,y=(m=k.params.value.angles.find(S=>S.labelId===B))==null?void 0:m.labelAngle,C=y+(r-y)/2;c.push(C-90)}g=b.index,h.push({sStartLID:i,sEndLID:g,upperID:(d=b.object)==null?void 0:d.parent_id,sLevel:0,shortname:b.sectorName,object:b}),i=null}}),c.push(360)}else k.labels.value.map(i=>{var g;if(i.level==o&&i.secLength){let b=x+360*(i.secLength/k.discNum.value);b==360&&(b=359.99),c.push(b),x=b,h.push({sStartLID:i.index,sEndLID:i.index,sLevel:o,object:i,upperID:(g=i.object)==null?void 0:g.parent_id})}});if(h.length>0)for(let i=0;i<c.length-1;i=i+1)k.sectors.value.push({sStart:c[i],sEnd:c[i+1],sStartLID:h[i].sStartLID,sEndLID:h[i].sEndLID,sLevel:h[i].sLevel,object:h[i].object,shortname:h[i].shortname?h[i].shortname:null})}},j=I(),re=()=>{let a=0,l=0,u=[];for(let t=0;t<j.labels.value.length;t=t+1)j.labels.value[t].level>l&&(l=j.labels.value[t].level),j.labels.value[t].level==0&&(a=a+1,u.push(j.labels.value[t]));j.circleNum.value=l,j.oneLevel.value=j.circleNum.value==0,j.oneLevel.value&&(j.showSectorName.value=!0),j.discNum.value=a,j.labelsZero.value=u,j.labelsZero.value.map((t,n)=>{t.connections.length!==0&&t.connections.map(f=>{const s=j.labels.value.find(o=>o.id==f);if(s&&(j.showLight&&s.score<0||t.score<0&&t.isBase==!0||!j.showLight||j.oneLevel&&t.drawAnyCase)){const o=j.labelsZero.value.find(c=>c.id===f);o&&j.lines.value.push({objLabelOut:j.labelsZero.value[n],objLabelIn:o})}})})},We=e.defineComponent({__name:"CMKD",props:{width:{type:Number,default:800},drawingMode:{type:String,default:"default"},labels:{type:Array,required:!0},position:{type:Number,default:9999},showSupportRect:{type:Boolean,default:!1},showImportant:{type:Boolean,default:!1},forceResetClicked:{type:Boolean,default:!1}},emits:["clicked","unclicked"],setup(a,{expose:l,emit:u}){const t=I(),{clickedElement:n,clickedInfo:f,clickedLine:s,clickedSector:o,clickLayerX:c,clickLayerY:h,resetClicked:x}=E(),i=a;l({downloadURI:L});const g=u,b=e.ref();e.watch(()=>i.forceResetClicked,()=>{i.forceResetClicked&&x()}),e.watch(()=>i.labels,()=>{t.resetParams(),t.labels.value=i.labels,re(),U()},{immediate:!0,deep:!0}),e.watch(()=>i.width,()=>{t.width.value=i.width,t.scaleMultiplier.value=t.width.value/800,t.x.value=i.width/2,t.y.value=i.width/2},{immediate:!0}),e.watch(()=>i,()=>{t.position.value=i.position,t.showImportant.value=i.showImportant,t.showSupportRect.value=i.showSupportRect},{immediate:!0,deep:!0}),e.watch(()=>{i.drawingMode},()=>{i.drawingMode=="default"&&(t.showAdditionalInCircle.value=!0,t.showScore.value=!1,t.defaultRect.value=!1,t.showLight.value=!1),i.drawingMode=="score"&&(t.showAdditionalInCircle.value=!1,t.showScore.value=!0,t.defaultRect.value=!1,t.showLight.value=!1),i.drawingMode=="light"&&(t.showAdditionalInCircle.value=!1,t.showScore.value=!0,t.defaultRect.value=!1,t.showLight.value=!0)},{immediate:!0}),e.watch(()=>{t.scaleMultiplier,t.sizeMultiplier},()=>{U()},{immediate:!0}),e.watch(()=>f.value,()=>{g("clicked",f.value)}),e.onBeforeMount(()=>{re(),U(),console.log(t)});function L(){var m=document.createElement("a");m.download="stage.png",m.href=e.unref(b).getStage().toDataURL({pixelRatio:10}),document.body.appendChild(m),m.click(),document.body.removeChild(m)}return(m,d)=>{const B=e.resolveComponent("v-rect"),r=e.resolveComponent("v-layer"),y=e.resolveComponent("v-stage");return e.unref(t).params.value.angles.length>0?(e.openBlock(),e.createBlock(y,{key:0,width:e.unref(t).width.value,height:e.unref(t).width.value,ref_key:"stageRef",ref:b},{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(B,{fill:"white",x:e.unref(t).x.value-e.unref(t).width.value,y:e.unref(t).y.value-e.unref(t).width.value,width:e.unref(t).width.value*e.unref(t).scaleMultiplier.value*3,height:e.unref(t).width.value*e.unref(t).scaleMultiplier.value*3},null,8,["x","y","width","height"]),e.createVNode(Oe,{bgColor:"#dad0f1",bgColor2:"#e8e8e8"}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).lines.value,C=>(e.openBlock(),e.createBlock(K,{objLabelOut:C.objLabelOut,objLabelIn:C.objLabelIn},null,8,["objLabelOut","objLabelIn"]))),256)),e.createVNode(Ve),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).labelsZero.value,C=>(e.openBlock(),e.createBlock(T,{objLabel:C},null,8,["objLabel"]))),256))]),_:1}),e.unref(n).isClicked||e.unref(s).isClicked||e.unref(o).isClicked?(e.openBlock(),e.createBlock(r,{key:0},{default:e.withCtx(()=>[e.createVNode(B,{fill:"white",x:e.unref(c),y:e.unref(h),width:e.unref(t).width.value*e.unref(t).scaleMultiplier.value*3,height:e.unref(t).width.value*e.unref(t).scaleMultiplier.value*3,onClick:d[0]||(d[0]=()=>{e.unref(x)(),g("unclicked")}),opacity:.6},null,8,["x","y","width","height"]),e.unref(n).isClicked?(e.openBlock(),e.createBlock(Ie,{key:0})):e.createCommentVNode("",!0),e.unref(s).isClicked?(e.openBlock(),e.createBlock(Ae,{key:1})):e.createCommentVNode("",!0),e.unref(o).isClicked?(e.openBlock(),e.createBlock(Ee,{key:2,bgColor:"gray"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)]),_:1},8,["width","height"])):e.createCommentVNode("",!0)}}});V.CMKD=We,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})}));