UNPKG

@determaer/cmkd

Version:

Cognitive Maps of Knowledge Diagnosis (CMKD) interactive builder

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