UNPKG

@zklogic/draw.io

Version:

Draw.IO - Graph Editor integration in Angular-cli

1 lines 53.2 kB
function mxGraphMlCodec(){this.cachedRefObj={}}mxGraphMlCodec.prototype.refRegexp=/^\{y\:GraphMLReference\s+(\d+)\}$/,mxGraphMlCodec.prototype.staticRegexp=/^\{x\:Static\s+(.+)\.(.+)\}$/,mxGraphMlCodec.prototype.decode=function(e,t,o){try{var r=mxUtils.parseXml(e),a=this.getDirectChildNamedElements(r.documentElement,mxGraphMlConstants.GRAPH);this.initializeKeys(r.documentElement);for(var l='<?xml version="1.0" encoding="UTF-8"?><mxfile>',s=0;s<a.length;s++){var n=a[s],i=this.createMxGraph(),m=i.getModel();m.beginUpdate();try{for(this.nodesMap={},this.edges=[],this.importGraph(n,i,i.getDefaultParent()),s=0;s<this.edges.length;s++)for(var p=this.edges[s],d=p.edges,h=p.parent,c=p.dx,y=p.dy,g=0;g<d.length;g++)this.importEdge(d[g],i,h,c,y)}catch(e){throw console.log(e),e}finally{m.endUpdate()}m.beginUpdate();try{var f=i.getModel().cells;for(var x in i.view.translate,f){var b=f[x];if(b.edge&&b.getChildCount()>0)for(s=0;s<b.getChildCount();s++){var w=b.children[s].geometry;if(w.adjustIt){var u=i.view.getState(b),_=u.absolutePoints,C=_[0],k=_[_.length-1],v=w.x,E=w.y,S=(c=k.x-C.x,y=k.y-C.y,C.x+v*c),G=C.y+v*y,M=Math.sqrt(c*c+y*y);S-=E*(y/=M),G+=E*(c/=M);var A=i.view.getRelativePoint(u,S,G);w.x=A.x,w.y=A.y}}}}catch(e){throw console.log(e),e}finally{m.endUpdate()}l+=this.processPage(i,s+1)}l+="</mxfile>",t&&t(l)}catch(e){o&&o(e)}},mxGraphMlCodec.prototype.initializeKeys=function(e){var t,o=this.getDirectChildNamedElements(e,mxGraphMlConstants.KEY);this.nodesKeys={},this.edgesKeys={},this.portsKeys={},this.sharedData={},this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY]={},this.nodesKeys[mxGraphMlConstants.USER_TAGS]={},this.nodesKeys[mxGraphMlConstants.NODE_STYLE]={},this.nodesKeys[mxGraphMlConstants.NODE_LABELS]={},this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS]={},this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY]={},this.edgesKeys[mxGraphMlConstants.EDGE_STYLE]={},this.edgesKeys[mxGraphMlConstants.EDGE_LABELS]={},this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER]={},this.portsKeys[mxGraphMlConstants.PORT_STYLE]={},this.portsKeys[mxGraphMlConstants.PORT_VIEW_STATE]={};for(var r=0;r<o.length;r++){var a=this.dataElem2Obj(o[r]),l=a[mxGraphMlConstants.ID],s=a[mxGraphMlConstants.KEY_FOR],n=a[mxGraphMlConstants.KEY_NAME],i=a[mxGraphMlConstants.KEY_YTYPE];switch(n==mxGraphMlConstants.SHARED_DATA&&(t=l),n=n||i,s){case mxGraphMlConstants.NODE:this.nodesKeys[n]={key:l,keyObj:a};break;case mxGraphMlConstants.EDGE:this.edgesKeys[n]={key:l,keyObj:a};break;case mxGraphMlConstants.PORT:this.portsKeys[n]={key:l,keyObj:a};break;case mxGraphMlConstants.ALL:var m={key:l,keyObj:a};this.nodesKeys[n]=m,this.edgesKeys[n]=m,this.portsKeys[n]=m}}var p=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA);for(r=0;r<p.length;r++)if(p[r].getAttribute(mxGraphMlConstants.KEY)==t)for(var d=this.getDirectChildNamedElements(p[r],mxGraphMlConstants.Y_SHARED_DATA),h=0;h<d.length;h++)for(var c=this.getDirectChildElements(d[h]),y=0;y<c.length;y++){var g=c[y].getAttribute(mxGraphMlConstants.X_KEY);this.sharedData[g]=c[y]}else{var f=this.getDirectChildNamedElements(p[r],mxGraphMlConstants.Y_RESOURCES);for(h=0;h<f.length;h++)for(c=this.getDirectChildElements(f[h]),y=0;y<c.length;y++)g=c[y].getAttribute(mxGraphMlConstants.ID),this.sharedData[g]=c[y]}},mxGraphMlCodec.prototype.parseAttributes=function(e,t){var o=e.attributes;if(o)for(var r=0;r<o.length;r++){var a=o[r].nodeValue,l=this.refRegexp.exec(a),s=this.staticRegexp.exec(a);if(l){var n=l[1],i=this.cachedRefObj[n];i||((i={})[this.sharedData[n].nodeName]=this.dataElem2Obj(this.sharedData[n]),this.cachedRefObj[n]=i),t[o[r].nodeName]=i}else s?(t[o[r].nodeName]={},t[o[r].nodeName][s[1]]=s[2]):t[o[r].nodeName]=a}},mxGraphMlCodec.prototype.dataElem2Obj=function(e){var t=this.getDirectFirstChildNamedElements(e,mxGraphMlConstants.GRAPHML_REFERENCE)||e.getAttribute(mxGraphMlConstants.REFID),o=null,r=e,a={};if(t){var l="string"==typeof t?t:t.getAttribute(mxGraphMlConstants.RESOURCE_KEY),s=this.cachedRefObj[l];if(s)return this.parseAttributes(e,s),s;e=this.sharedData[l],o=l}this.parseAttributes(e,a);for(var n=0;n<e.childNodes.length;n++){var i=e.childNodes[n];if(1==i.nodeType){var m=i.nodeName;if(m==mxGraphMlConstants.X_LIST){for(var p=[],d=this.getDirectChildElements(i),h=0;h<d.length;h++)m=d[h].nodeName,p.push(this.dataElem2Obj(d[h]));a[m]=p}else if(m==mxGraphMlConstants.X_STATIC){var c=i.getAttribute(mxGraphMlConstants.MEMBER),y=c.lastIndexOf(".");a[c.substr(0,y)]=c.substr(y+1)}else(y=m.lastIndexOf("."))>0&&(m=m.substr(y+1)),null!=a[m]?(a[m]instanceof Array||(a[m]=[a[m]]),a[m].push(this.dataElem2Obj(i))):a[m]=this.dataElem2Obj(i)}else 3!=i.nodeType&&4!=i.nodeType||!i.textContent.trim()||(a["#text"]=i.textContent)}if(o){var g={};return this.parseAttributes(r,g),g[this.sharedData[o].nodeName]=a,this.cachedRefObj[o]=g,g}return a},mxGraphMlCodec.prototype.mapArray=function(e,t,o){for(var r={},a=0;a<e.length;a++)e[a].name&&(r[e[a].name]=e[a].value||e[a]);this.mapObject(r,t,o)},mxGraphMlCodec.prototype.mapObject=function(e,t,o){if(t.defaults)for(var r in t.defaults)o[r]=t.defaults[r];for(var r in t){for(var a=r.split("."),l=e,s=0;s<a.length&&l;s++)l=l[a[s]];if(null==l&&e&&(l=e[r]),null!=l){var n=t[r];if("string"==typeof l)if("string"==typeof n)o[n]=l.toLowerCase();else if("object"==typeof n){var i=l.toLowerCase();switch(n.mod){case"color":0==l.indexOf("#")&&9==l.length?i="#"+l.substr(3)+l.substr(1,2):"TRANSPARENT"==l&&(i="none");break;case"shape":i=mxGraphMlShapesMap[l.toLowerCase()];break;case"bpmnOutline":i=mxGraphMlShapesMap.bpmnOutline[l.toLowerCase()];break;case"bpmnSymbol":i=mxGraphMlShapesMap.bpmnSymbol[l.toLowerCase()];break;case"bool":i="true"==l?"1":"0";break;case"scale":try{i=parseFloat(l)*n.scale}catch(e){}break;case"arrow":i=mxGraphMlArrowsMap[l]}null!=i&&(o[n.key]=i)}else n(l,o);else l instanceof Array?this.mapArray(l,n,o):null!=l.name&&null!=l.value?this.mapArray([l],n,o):this.mapObject(l,n,o)}}},mxGraphMlCodec.prototype.createMxGraph=function(){return new mxGraph},mxGraphMlCodec.prototype.importGraph=function(e,t,o){for(var r=this.getDirectChildNamedElements(e,mxGraphMlConstants.NODE),a=o,l=0,s=0;a&&a.geometry;)l+=a.geometry.x,s+=a.geometry.y,a=a.parent;for(var n=0;n<r.length;n++)this.importNode(r[n],t,o,l,s);this.edges.push({edges:this.getDirectChildNamedElements(e,mxGraphMlConstants.EDGE),parent:o,dx:l,dy:s})},mxGraphMlCodec.prototype.importPort=function(e,t){for(var o=e.getAttribute(mxGraphMlConstants.PORT_NAME),r={},a=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),l=0;l<a.length;l++){var s=a[l],n=(s.getAttribute(mxGraphMlConstants.KEY),this.dataElem2Obj(s));n.key==this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER].key&&this.mapObject(n,{"y:FreeNodePortLocationModelParameter.Ratio":function(e,t){var o=e.split(",");t.pos={x:o[0],y:o[1]}}},r)}t[o]=r},mxGraphMlCodec.prototype.styleMap2Str=function(e){var t="",o="";for(var r in e)o+=t+r+"="+e[r],t=";";return o},mxGraphMlCodec.prototype.importNode=function(e,t,o,r,a){var l=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),s=e.getAttribute(mxGraphMlConstants.ID),n=new mxCell;n.vertex=!0,n.geometry=new mxGeometry(0,0,30,30),t.addCell(n,o);for(var i={graphMlID:s},m=null,p=null,d=null,h=null,c=null,y=0;y<l.length;y++){var g=l[y],f=this.dataElem2Obj(g);if(f.key)if(f.key==this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY].key)this.addNodeGeo(n,f,r,a);else if(f.key==this.nodesKeys[mxGraphMlConstants.USER_TAGS].key)d=f;else if(f.key==this.nodesKeys[mxGraphMlConstants.NODE_STYLE].key)m=f,f["yjs:StringTemplateNodeStyle"]?p=f["yjs:StringTemplateNodeStyle"]["#text"]:this.addNodeStyle(n,f,i);else if(f.key==this.nodesKeys[mxGraphMlConstants.NODE_LABELS].key)h=f;else if(f.key==this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS].key){var x=null,b=null;for(var b in f)if("key"!=b&&"#text"!=b){if("y:ProxyAutoBoundsNode"==b){var w=f[b]["y:Realizers"];if(w)for(var u in w)if("active"!=u&&"#text"!=u){x=w[u][w.active],(f={})[u]=x;break}}else x=f[b];break}x&&(x[mxGraphMlConstants.GEOMETRY]&&this.addNodeGeo(n,x[mxGraphMlConstants.GEOMETRY],r,a),x[mxGraphMlConstants.NODE_LABEL]&&(h=x[mxGraphMlConstants.NODE_LABEL])),m=f,this.addNodeStyle(n,f,i)}}var _=this.getDirectChildNamedElements(e,mxGraphMlConstants.PORT),C={};for(y=0;y<_.length;y++)this.importPort(_[y],C);p&&this.handleTemplates(p,d,n,i),this.handleFixedRatio(n,i),this.handleCompoundShape(n,i,m,c),0==i.strokeWidth&&(i.strokeColor="none"),n.style=this.styleMap2Str(i);var k=this.getDirectChildNamedElements(e,mxGraphMlConstants.GRAPH);for(y=0;y<k.length;y++)this.importGraph(k[y],t,n,C);h&&(c=this.addLabels(n,h,i,t)),this.nodesMap[s]={node:n,ports:C}},mxGraphMlCodec.prototype.addNodeStyle=function(e,t,o){var r=function(e,t){if("line"!=e){t.dashed=1;var o=null;switch(e){case"DashDot":o="3 1 1 1";break;case"Dot":o="1 1";break;case"DashDotDot":o="3 1 1 1 1 1";break;case"Dash":o="3 1";break;case"dotted":o="1 3";break;case"dashed":o="5 2";break;default:o=e.replace(/0/g,"1")}o&&(o.indexOf(" ")<0&&(o=o+" "+o),t.dashPattern=o)}},a={shape:{key:"shape",mod:"shape"},"y:Shape.type":{key:"shape",mod:"shape"},configuration:{key:"shape",mod:"shape"},type:{key:"shape",mod:"shape"},assetName:{key:"shape",mod:"shape"},activityType:{key:"shape",mod:"shape"},fill:{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"y:Fill":{color:{key:"fillColor",mod:"color"},transparent:function(e,t){"true"==e&&(t.fillColor="none")}},"y:BorderStyle":{color:{key:"strokeColor",mod:"color"},width:"strokeWidth",hasColor:function(e,t){"false"==e&&(t.strokeColor="none")},type:r},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:r,"dashStyle.yjs:DashStyle.dashes":r,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"}},l=mxUtils.clone(a);l.defaults={fillColor:"#CCCCCC",strokeColor:"#6881B3"};var s=mxUtils.clone(a);s.defaults={shape:"ext;rounded=1",fillColor:"#FFFFFF",strokeColor:"#000090"};var n=mxUtils.clone(a);n.defaults={shape:"rhombus;fillColor=#FFFFFF;strokeColor=#FFCD28"};var i=mxUtils.clone(a);i.defaults={shape:"hexagon",strokeColor:"#007000"};var m=mxUtils.clone(a);m.defaults={shape:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=general",outline:"standard"},m.characteristic={key:"outline",mod:"bpmnOutline"};var p=mxUtils.clone(a);p.defaults={shape:"js:bpmnDataObject"};var d=mxUtils.clone(a);d.defaults={shape:"datastore"};var h=mxUtils.clone(a);h.defaults={shape:"swimlane;swimlaneLine=0;startSize=20;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1"};var c=mxUtils.clone(a);c.defaults={shape:"js:BpmnChoreography"};var y=mxUtils.clone(a);y.defaults={rounded:"1",glass:"1",strokeColor:"#FFFFFF"},y.inset="strokeWidth",y.radius="arcSize",y.drawShadow={key:"shadow",mod:"bool"},y.color={key:"fillColor",mod:"color",addGradient:"north"},y["color.yjs:Color.value"]=y.color;var g=mxUtils.clone(a);g.defaults={rounded:"1",arcSize:10,glass:"1",shadow:"1",strokeColor:"none"},g.drawShadow={key:"shadow",mod:"bool"};var f=mxUtils.clone(a);f.defaults={shape:"swimlane",startSize:20,strokeWidth:4,spacingLeft:10},f.isCollapsible={key:"collapsible",mod:"bool"},f.borderColor={key:"strokeColor",mod:"color"},f.folderFrontColor={key:"fillColor",mod:"color"};var x=mxUtils.clone(a);x.defaults={shape:"swimlane",startSize:20,spacingLeft:10},x["yjs:PanelNodeStyle"]={color:{key:"swimlaneFillColor",mod:"color"},"color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},labelInsetsColor:{key:"fillColor",mod:"color"},"labelInsetsColor.yjs:Color.value":{key:"fillColor",mod:"color"}};var b=mxUtils.clone(a);b.defaults={shape:"js:table"};var w=mxUtils.clone(a);w.defaults={shape:"image"},w.image=function(e,t){t.image=e};var u=mxUtils.clone(a);u.defaults={shape:"image"},u["y:SVGModel.y:SVGContent.y:Resource.#text"]=function(e,t){t.image="data:image/svg+xml,"+(window.btoa?btoa(e):Base64.encode(e))};var _=mxUtils.clone(a);_.defaults={shape:"swimlane",startSize:20},_["y:Shape.type"]=function(e,t){"roundrectangle"==e&&(t.rounded=1,t.arcSize=5)};var C=mxUtils.clone(a);C.defaults={shape:"js:table2"};var k=mxUtils.clone(a);k.defaults={gradientDirection:"east"},k["y:Fill"].color2={key:"gradientColor",mod:"color"},k["y:StyleProperties.y:Property"]={"com.yworks.bpmn.characteristic":{key:"outline",mod:"bpmnOutline"},"com.yworks.bpmn.icon.fill":{key:"gradientColor",mod:"color"},"com.yworks.bpmn.icon.fill2":{key:"fillColor",mod:"color"},"com.yworks.bpmn.type":{key:"symbol",mod:"bpmnSymbol"},"y.view.ShadowNodePainter.SHADOW_PAINTING":{key:"shadow",mod:"bool"},doubleBorder:{key:"double",mod:"bool"},"com.yworks.sbgn.style.radius":{key:"arcSize",mod:"scale",scale:2},"com.yworks.sbgn.style.inverse":{key:"flipV",mod:"bool"}},this.mapObject(t,{"yjs:ShapeNodeStyle":a,"demostyle:FlowchartNodeStyle":a,"demostyle:AssetNodeStyle":l,"bpmn:ActivityNodeStyle":s,"bpmn:GatewayNodeStyle":n,"bpmn:ConversationNodeStyle":i,"bpmn:EventNodeStyle":m,"bpmn:DataObjectNodeStyle":p,"bpmn:DataStoreNodeStyle":d,"bpmn:GroupNodeStyle":h,"bpmn:ChoreographyNodeStyle":c,"yjs:BevelNodeStyle":y,"yjs:ShinyPlateNodeStyle":g,"demostyle:DemoGroupStyle":f,"yjs:CollapsibleNodeStyleDecorator":x,"bpmn:PoolNodeStyle":b,"yjs:TableNodeStyle":b,"demotablestyle:DemoTableStyle":b,"yjs:ImageNodeStyle":w,"y:ShapeNode":a,"y:GenericNode":k,"y:GenericGroupNode":k,"y:TableNode":C,"y:SVGNode":u,"y:GroupNode":_},o)},mxGraphMlCodec.prototype.handleTemplates=function(e,t,o,r){if(e){for(var a=o.geometry.width,l=o.geometry.height,s='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+a+" "+l+'"><g>',n=null,i=[],m=/\{TemplateBinding\s+([^}]+)\}/g;null!=(n=m.exec(e));){var p="";switch(n[1]){case"width":p=a;break;case"height":p=l}i.push({match:n[0],repl:p})}if(t&&t["y:Json"])for(var d=JSON.parse(t["y:Json"]["#text"]),h=/\{Binding\s+([^}]+)\}/g;null!=(n=h.exec(e));){var c=n[1].split(",");if(b=d[c[0]]){if(c.length>1&&c[1].indexOf("Converter=")){var y=mxGraphMlConverters[c[1].substr(11)];if(y){var g=[b];c[2]&&g.push(c[2].substr(11)),b=y.apply(null,g)}}i.push({match:n[0],repl:mxUtils.htmlEntities(b)})}}for(var f=0;f<i.length;f++)e=e.replace(i[f].match,i[f].repl);i=[];for(var x=/\<text.+data-content="([^"]+).+\<\/text\>/g;null!=(n=x.exec(e));){var b=n[0].substr(0,n[0].length-7)+n[1]+"</text>";i.push({match:n[0],repl:b})}for(f=0;f<i.length;f++)e=e.replace(i[f].match,i[f].repl);var w=s+e+"</g></svg>";r.shape="image",r.image="data:image/svg+xml,"+(window.btoa?btoa(w):Base64.encode(w))}},mxGraphMlCodec.prototype.handleCompoundShape=function(e,t,o,r){var a=t.shape;if(a&&0==a.indexOf("js:")){switch(a){case"js:bpmnArtifactShadow":t.shadow="1";case"js:bpmnArtifact":t.shape=t.symbol,delete t.fillColor,delete t.strokeColor,delete t.gradientColor,this.handleCompoundShape(e,t,o,r);break;case"js:bpmnDataObjectShadow":case"js:bpmnDataObject":t.shape="note;size=16",o=o["bpmn:DataObjectNodeStyle"]||o["y:GenericNode"]||o["y:GenericGroupNode"];var l={};if(this.mapObject(o,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.dataObjectType":"dataObjectType","com.yworks.bpmn.marker1":"marker1"}},l),"true"==o.collection||"bpmn_marker_parallel"==l.marker1){var s=new mxCell("",new mxGeometry(.5,1,10,10),"html=1;whiteSpace=wrap;shape=parallelMarker;");s.vertex=!0,s.geometry.relative=!0,s.geometry.offset=new mxPoint(-5,-10),e.insert(s)}"INPUT"==o.type||"data_object_type_input"==l.dataObjectType?((n=new mxCell("",new mxGeometry(0,0,10,10),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;")).vertex=!0,n.geometry.relative=!0,n.geometry.offset=new mxPoint(2,2),e.insert(n)):"OUTPUT"!=o.type&&"data_object_type_output"!=l.dataObjectType||((n=new mxCell("",new mxGeometry(0,0,10,10),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;fillColor=#000000;")).vertex=!0,n.geometry.relative=!0,n.geometry.offset=new mxPoint(2,2),e.insert(n));break;case"js:BpmnChoreography":this.mapObject(o,{defaults:{shape:"swimlane;collapsible=0;rounded=1",startSize:"20",strokeColor:"#006000",fillColor:"#CCCCCC"}},t);var n,i=e.geometry;(n=new mxCell("",new mxGeometry(0,i.height-20,i.width,20),"strokeColor=#006000;fillColor=#777777;rounded=1")).vertex=!0,e.insert(n),r&&r.lblTxts&&(e.value=r.lblTxts[0],n.value=r.lblTxts[1]);break;case"js:bpmnActivityShadow":case"js:bpmnActivity":switch(t.shape="ext;rounded=1",l={},o=o["y:GenericNode"]||o["y:GenericGroupNode"],this.mapObject(o,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.taskType":"taskType","com.yworks.bpmn.activityType":"activityType","com.yworks.bpmn.marker1":"marker1","com.yworks.bpmn.marker2":"marker2","com.yworks.bpmn.marker3":"marker3","com.yworks.bpmn.marker4":"marker4"}},l),"activity_type_transaction"===l.activityType&&(t.double="1"),l.taskType){case"task_type_send":(c=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;fillColor=#000000;strokeColor=#FFFFFF;")).geometry.offset=new mxPoint(4,7);break;case"task_type_receive":(c=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;")).geometry.offset=new mxPoint(4,7);break;case"task_type_user":(c=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.user_task;")).geometry.offset=new mxPoint(4,5);break;case"task_type_manual":(c=new mxCell("",new mxGeometry(0,0,15,10),"shape=mxgraph.bpmn.manual_task;")).geometry.offset=new mxPoint(4,7);break;case"task_type_business_rule":(c=new mxCell("",new mxGeometry(0,0,18,13),"shape=mxgraph.bpmn.business_rule_task;")).geometry.offset=new mxPoint(4,7);break;case"task_type_service":(c=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.service_task;")).geometry.offset=new mxPoint(4,5);break;case"task_type_script":(c=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;")).geometry.offset=new mxPoint(4,5)}c&&(c.vertex=!0,c.geometry.relative=!0,e.insert(c),c=null);for(var m=0,p=1;p<=4;p++)l["marker"+p]&&m++;var d=-7.5*m-2*(m-1);for(p=1;p<=m;p++){switch(l["marker"+p]){case"bpmn_marker_closed":(c=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;")).geometry.offset=new mxPoint(d,-20);break;case"bpmn_marker_open":(c=new mxCell("",new mxGeometry(.5,1,15,15),"shape=rect;part=1;")).geometry.offset=new mxPoint(d,-20);var h=new mxCell("",new mxGeometry(.5,.5,8,1),"shape=rect;part=1;");h.geometry.offset=new mxPoint(-4,-1),h.geometry.relative=!0,h.vertex=!0,c.insert(h);break;case"bpmn_marker_loop":(c=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;")).geometry.offset=new mxPoint(d,-20);break;case"bpmn_marker_parallel":(c=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;")).geometry.offset=new mxPoint(d,-20);break;case"bpmn_marker_sequential":(c=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;")).geometry.offset=new mxPoint(d,-20);break;case"bpmn_marker_ad_hoc":(c=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;fillColor=#000000")).geometry.offset=new mxPoint(d,-17);break;case"bpmn_marker_compensation":var c;(c=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;")).geometry.offset=new mxPoint(d,-18)}c.geometry.relative=!0,c.vertex=!0,e.insert(c),d+=20}break;case"js:table":t.shape="swimlane;collapsible=0;swimlaneLine=0";var y=o["yjs:TableNodeStyle"]||o["demotablestyle:DemoTableStyle"];!y&&o["bpmn:PoolNodeStyle"]&&(y=o["bpmn:PoolNodeStyle"]["yjs:TableNodeStyle"]),this.mapObject(y,{"backgroundStyle.demotablestyle:TableBackgroundStyle":{"insetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableBackgroundFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},"tableBackgroundStroke.yjs:Stroke":{fill:{key:"strokeColor",mod:"color"},thickness:"strokeWidth"}},"backgroundStyle.yjs:ShapeNodeStyle.fill":{key:"fillColor",mod:"color"},"backgroundStyle.yjs:ShapeNodeStyle.fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"}},t),t.swimlaneFillColor=t.fillColor;var g=0,f=0,x={x:0},b=0,w=(y=y.table["y:Table"]).Insets;w?"0"!=(w=w.split(","))[0]?(t.startSize=w[0],x.x=parseFloat(w[0]),t.horizontal="0"):"0"!=w[1]&&(t.startSize=w[1],f+=b=parseFloat(w[1])):t.startSize="0";var u={},_={Insets:function(e,t){t.startSize=e.split(",")[0]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"height"};this.mapObject(y.RowDefaults,{defaults:{shape:"swimlane;collapsible=0;horizontal=0",startSize:"0"},"y:StripeDefaults":_},u);var C={},k={Insets:function(e,t){t.startSize=e.split(",")[1]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"width"};this.mapObject(y.ColumnDefaults,{defaults:{shape:"swimlane;collapsible=0",startSize:"0",fillColor:"none"},"y:StripeDefaults":k},C),i=e.geometry;var v=y.Rows["y:Row"];f+=parseFloat(C.startSize);var E=x.x,S=x.x;if(x.lx=x.x,v)for(v instanceof Array||(v=[v]),p=0;p<v.length;p++)x.x=S,x.lx=S,f=this.addRow(v[p],e,1&p,f,x,_,u),E=Math.max(x.x,E);var G=y.Columns["y:Column"];if(g=E,G)for(G instanceof Array||(G=[G]),p=0;p<G.length;p++)g=this.addColumn(G[p],e,1&p,g,b,k,C);break;case"js:table2":t.shape="swimlane;collapsible=0;swimlaneLine=0",l={},this.mapObject(o,{"y:TableNode":{"y:StyleProperties.y:Property":{"yed.table.section.color":{key:"secColor",mod:"color"},"yed.table.header.height":"headerH","yed.table.header.color.main":{key:"headerColor",mod:"color"},"yed.table.header.color.alternating":{key:"headerColorAlt",mod:"color"},"yed.table.lane.color.main":{key:"laneColor",mod:"color"},"yed.table.lane.color.alternating":{key:"laneColorAlt",mod:"color"},"yed.table.lane.style":"laneStyle","com.yworks.bpmn.type":"isHorz",POOL_LANE_COLOR_ALTERNATING:{key:"laneColorAlt",mod:"color"},POOL_LANE_COLOR_MAIN:{key:"laneColor",mod:"color"},POOL_LANE_STYLE:"laneStyle",POOL_HEADER_COLOR_MAIN:{key:"headerColor",mod:"color"},POOL_HEADER_COLOR_ALTERNATING:{key:"headerColorAlt",mod:"color"},POOL_TABLE_SECTION_COLOR:{key:"secColor",mod:"color"}},"y:Table":{"y:DefaultColumnInsets.top":"colHHeight","y:DefaultRowInsets.left":"rowHWidth","y:Insets":{top:"tblHHeight",left:"tblHWidth"}}}},l),t.swimlaneFillColor=t.fillColor;var M=0,A=0;"pool_type_lane_and_column"==l.isHorz||"pool_type_empty"==l.isHorz||"pool_type_lane"==l.isHorz?A=parseFloat(l.tblHWidth):M=parseFloat(l.tblHHeight),t.startSize=M||A;try{v=o["y:TableNode"]["y:Table"]["y:Rows"]["y:Row"];var T=o["y:TableNode"]["y:Table"]["y:Columns"]["y:Column"],P="lane.style.rows"==l.laneStyle||"lane_style_rows"==l.laneStyle;v instanceof Array||(v=[v]),T instanceof Array||(T=[T]);var L=parseFloat(l.rowHWidth);for(p=0;p<v.length;p++)v[p]["y:Insets"]&&(L=Math.max(L,parseFloat(v[p]["y:Insets"].left)+parseFloat(v[p]["y:Insets"].right)));var F=parseFloat(l.colHHeight);for(p=0;p<T.length;p++)T[p]["y:Insets"]&&(F=Math.max(F,parseFloat(T[p]["y:Insets"].top)+parseFloat(T[p]["y:Insets"].bottom)));P?(this.addTbl2Rows(e,v,M,A,L,F,P,l),this.addTbl2Cols(e,T,M,A,L,F,P,l)):(this.addTbl2Cols(e,T,M,A,L,F,P,l),this.addTbl2Rows(e,v,M,A,L,F,P,l))}catch(e){}break;case"js:relationship_big_entity":t.shape="swimlane;startSize=30;rounded=1;arcSize=5;collapsible=0";var D=o["y:GenericNode"]["y:Fill"];D&&(t.fillColor=D.color2,t.swimlaneFillColor=D.color);break;case"js:relationship_attribute":"1"==t.double?t.shape="doubleEllipse":t.shape="ellipse"}a.indexOf("Shadow")>0&&(t.shadow="1")}},mxGraphMlCodec.prototype.addTbl2Rows=function(e,t,o,r,a,l,s,n){for(var i=o+l,m=null!=n.isHorz,p=0;p<t.length;p++){var d=1&p,h=new mxCell;h.vertex=!0;var c={shape:"swimlane;collapsible=0;horizontal=0",startSize:a,fillColor:n.secColor||"none",swimlaneLine:m?"0":"1"};if(0==parseFloat(c.startSize)&&(c.fillColor="none",c.swimlaneLine="0"),s){var y=d?n.headerColorAlt:n.headerColor;c.swimlaneFillColor=d?n.laneColorAlt:n.laneColor,c.fillColor=y||c.swimlaneFillColor}var g=parseFloat(t[p].height),f=m&&0==p?l:0;h.geometry=new mxGeometry(r,i-f,e.geometry.width-r,g+f),i+=g,h.style=this.styleMap2Str(c),e.insert(h)}},mxGraphMlCodec.prototype.addTbl2Cols=function(e,t,o,r,a,l,s,n){for(var i=a+r,m=null!=n.isHorz,p=0;p<t.length;p++){var d=1&p,h=new mxCell;h.vertex=!0;var c={shape:"swimlane;collapsible=0",startSize:l,fillColor:n.secColor||"none",swimlaneLine:m?"0":"1"};if(0==parseFloat(c.startSize)&&(c.fillColor="none"),!s){var y=d?n.headerColorAlt:n.headerColor;c.swimlaneFillColor=d?n.laneColorAlt:n.laneColor,c.fillColor=y||c.swimlaneFillColor}var g=parseFloat(t[p].width),f=m&&0==p?a:0;h.geometry=new mxGeometry(i-f,o,g+f,e.geometry.height-o),i+=g,h.style=this.styleMap2Str(c),e.insert(h)}},mxGraphMlCodec.prototype.addRow=function(e,t,o,r,a,l,s){var n=new mxCell;n.vertex=!0;var i=mxUtils.clone(s);this.mapObject(e,l,i),o?(i.oddFill&&(i.fillColor=i.oddFill),i.oddLaneFill&&(i.swimlaneFillColor=i.oddLaneFill)):(i.evenFill&&(i.fillColor=i.evenFill),i.evenLaneFill&&(i.swimlaneFillColor=i.evenLaneFill));var m=parseFloat(i.height);n.geometry=new mxGeometry(a.lx,r,t.geometry.width-a.lx,m);var p=e.Labels;p&&this.addLabels(n,p,i),n.style=this.styleMap2Str(i),t.insert(n);var d=e["y:Row"];a.lx=0,i.startSize&&(a.lx=parseFloat(i.startSize),a.x+=a.lx);var h=a.x,c=a.x,y=a.lx,g=0;if(d){d instanceof Array||(d=[d]);for(var f=0;f<d.length;f++)a.x=h,a.lx=y,g=this.addRow(d[f],n,1&f,g,a,l,s),c=Math.max(a.x,c)}return a.x=c,m=Math.max(m,g),n.geometry.height=m,r+m},mxGraphMlCodec.prototype.addColumn=function(e,t,o,r,a,l,s){var n=new mxCell;n.vertex=!0;var i=mxUtils.clone(s);this.mapObject(e,l,i),o?(i.oddFill&&(i.fillColor=i.oddFill),i.oddLaneFill&&(i.swimlaneFillColor=i.oddLaneFill)):(i.evenFill&&(i.fillColor=i.evenFill),i.evenLaneFill&&(i.swimlaneFillColor=i.evenLaneFill));var m=parseFloat(i.width);n.geometry=new mxGeometry(r,a,m,t.geometry.height-a);var p=e.Labels;p&&this.addLabels(n,p,i),n.style=this.styleMap2Str(i),t.insert(n);var d=e["y:Column"],h=0;if(d){d instanceof Array||(d=[d]);for(var c=0;c<d.length;c++)h=this.addColumn(d[c],n,1&c,h,a,l,s)}return m=Math.max(m,h),n.geometry.width=m,r+m},mxGraphMlCodec.prototype.handleFixedRatio=function(e,t){var o=t.shape,r=e.geometry;if(o&&r)if(o.indexOf(";aspect=fixed")>0){var a=Math.min(r.height,r.width);a==r.height&&(r.x+=(r.width-a)/2),r.height=a,r.width=a}else if(o.indexOf(";rotation=90")>0||o.indexOf(";rotation=-90")>0){var l=r.height,s=r.width;r.height=s,r.width=l;var n=(l-s)/2;r.x-=n,r.y+=n}},mxGraphMlCodec.prototype.addNodeGeo=function(e,t,o,r){var a=t[mxGraphMlConstants.RECT],l=0,s=0,n=30,i=30;a?(l=a[mxGraphMlConstants.X],s=a[mxGraphMlConstants.Y],n=a[mxGraphMlConstants.WIDTH],i=a[mxGraphMlConstants.HEIGHT]):(l=t[mxGraphMlConstants.X_L]||l,s=t[mxGraphMlConstants.Y_L]||s,n=t[mxGraphMlConstants.WIDTH_L]||n,i=t[mxGraphMlConstants.HEIGHT_L]||i);var m=e.geometry;m.x=parseFloat(l)-o,m.y=parseFloat(s)-r,m.width=parseFloat(n),m.height=parseFloat(i)},mxGraphMlCodec.prototype.importEdge=function(e,t,o,r,a){for(var l=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),s=e.getAttribute(mxGraphMlConstants.ID),n=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE),i=e.getAttribute(mxGraphMlConstants.EDGE_TARGET),m=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT),p=e.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT),d=this.nodesMap[n],h=this.nodesMap[i],c=t.insertEdge(o,null,"",d.node,h.node,"graphMLId="+s),y={graphMlID:s},g=0;g<l.length;g++){var f=l[g],x=this.dataElem2Obj(f),b=x["y:PolyLineEdge"]||x["y:GenericEdge"]||x["y:ArcEdge"]||x["y:BezierEdge"]||x["y:QuadCurveEdge"]||x["y:SplineEdge"];if(x.key==this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY].key)this.addEdgeGeo(c,x,r,a);else if(x.key==this.edgesKeys[mxGraphMlConstants.EDGE_STYLE].key)this.addEdgeStyle(c,x,y);else if(x.key==this.edgesKeys[mxGraphMlConstants.EDGE_LABELS].key)this.addLabels(c,x,y,t);else if(b){this.addEdgeStyle(c,x,y);var w=this.addEdgePath(c,b["y:Path"],y,r,a);b["y:EdgeLabel"]&&this.addLabels(c,b["y:EdgeLabel"],y,t,w),null!=y.shape&&0==y.shape.indexOf("link")&&(y.width=y.strokeWidth,y.strokeWidth=1)}}if(d.ports&&m){var u=d.ports[m];u.pos&&(y.exitX=u.pos.x,y.exitY=u.pos.y)}if(h.ports&&p){var _=h.ports[p];_.pos&&(y.entryX=_.pos.x,y.entryY=_.pos.y)}return c.style=this.styleMap2Str(y),c},mxGraphMlCodec.prototype.addEdgeGeo=function(e,t,o,r){var a=t[mxGraphMlConstants.Y_BEND];if(a){for(var l=[],s=0;s<a.length;s++){var n=a[s][mxGraphMlConstants.LOCATION];if(n){var i=n.split(",");l.push(new mxPoint(parseFloat(i[0])-o,parseFloat(i[1])-r))}}e.geometry.points=l}},mxGraphMlCodec.prototype.addEdgePath=function(e,t,o,r,a){var l=[];if(t){var s=parseFloat(t.sx),n=parseFloat(t.sy),i=parseFloat(t.tx),m=parseFloat(t.ty),p=e.source.geometry;0!=s||0!=n?(o.exitX=(s+p.width/2)/p.width,o.exitY=(n+p.height/2)/p.height,l.push(new mxPoint(p.x+o.exitX*p.width-r,p.y+o.exitY*p.height-a))):l.push(new mxPoint(p.x+p.width/2-r,p.y+p.height/2-a));var d=null,h=e.target.geometry;0!=i||0!=m?(o.entryX=(i+h.width/2)/h.width,o.entryY=(m+h.height/2)/h.height,d=new mxPoint(h.x+o.entryX*h.width-r,h.y+o.entryY*h.height-a)):d=new mxPoint(h.x+h.width/2-r,h.y+h.height/2-a);var c=t["y:Point"];if(c){c instanceof Array||(c=[c]);for(var y=[],g=0;g<c.length;g++){var f=new mxPoint(parseFloat(c[g].x)-r,parseFloat(c[g].y)-a);y.push(f),l.push(f)}e.geometry.points=y}l.push(d)}return l},mxGraphMlCodec.prototype.addEdgeStyle=function(e,t,o){var r=function(e,t){t.dashed=1;var o=null;switch(e){case"DashDot":o="3 1 1 1";break;case"Dot":o="1 1";break;case"DashDotDot":o="3 1 1 1 1 1";break;case"Dash":o="3 1";break;default:o=e.replace(/0/g,"1")}o&&(o.indexOf(" ")<0&&(o=o+" "+o),t.dashPattern=o)},a=function(e,t){t.endFill="WHITE"==e||0==e.indexOf("white_")||0==e.indexOf("transparent_")?"0":"1"},l=function(e,t){t.startFill="WHITE"==e||0==e.indexOf("white_")||0==e.indexOf("transparent_")?"0":"1"},s={defaults:{rounded:0,endArrow:"none"},configuration:{key:"shape",mod:"shape"},"y:LineStyle":{color:{key:"strokeColor",mod:"color"},type:function(e,t){"line"!=e&&(t.dashed=1);var o=null;switch(e){case"dashed":o="3 1";break;case"dotted":o="1 1";break;case"dashed_dotted":o="3 2 1 2"}o&&(t.dashPattern=o)},width:"strokeWidth"},"y:Arrows":{source:function(e,t){t.startArrow=mxGraphMlArrowsMap[e]||"classic",l(e,t)},target:function(e,t){t.endArrow=mxGraphMlArrowsMap[e]||"classic",a(e,t)}},"y:BendStyle":{smoothed:{key:"rounded",mod:"bool"}}},n=mxUtils.clone(s);n.defaults.curved="1",this.mapObject(t,{"yjs:PolylineEdgeStyle":{defaults:{endArrow:"none",rounded:0},smoothingLength:function(e,t){t.rounded=e&&parseFloat(e)>0?"1":"0"},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:r,"dashStyle.yjs:DashStyle.dashes":r,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"},targetArrow:{key:"endArrow",mod:"arrow"},"targetArrow.yjs:Arrow":{defaults:{endArrow:"classic",endFill:"1",endSize:"6"},fill:a,scale:{key:"endSize",mod:"scale",scale:5},type:{key:"endArrow",mod:"arrow"}},sourceArrow:{key:"startArrow",mod:"arrow"},"sourceArrow.yjs:Arrow":{defaults:{startArrow:"classic",startFill:"1",startSize:"6"},fill:l,scale:{key:"startSize",mod:"scale",scale:5},type:{key:"startArrow",mod:"arrow"}}},"y:PolyLineEdge":s,"y:GenericEdge":s,"y:ArcEdge":n,"y:BezierEdge":n,"y:QuadCurveEdge":n,"y:SplineEdge":n},o)},mxGraphMlCodec.prototype.addLabels=function(e,t,o,r,a){var l=e.getChildCount(),s=t[mxGraphMlConstants.Y_LABEL]||t,n=[],i=[],m=[];if(s){s instanceof Array||(s=[s]);for(var p=0;p<s.length;p++){var d=s[p],h={},c=d[mxGraphMlConstants.TEXT]||d;c&&(c=c["#text"]);var y=d[mxGraphMlConstants.LAYOUTPARAMETER]||d||{},g=function(e,t){e&&(e=e.toUpperCase());var o=t.fontStyle||0;switch(e){case"ITALIC":o|=2;break;case"BOLD":o|=1;break;case"UNDERLINE":o|=4}t.fontStyle=o};this.mapObject(d,{"Style.yjs:DefaultLabelStyle":{backgroundFill:{key:"labelBackgroundColor",mod:"color"},"backgroundFill.yjs:SolidColorFill.color":{key:"labelBackgroundColor",mod:"color"},backgroundStroke:{key:"labelBorderColor",mod:"color"},"backgroundStroke.yjs:Stroke.fill":{key:"labelBorderColor",mod:"color"},textFill:{key:"fontColor",mod:"color"},"textFill.yjs:SolidColorFill.color":{key:"fontColor",mod:"color"},textSize:"fontSize",horizontalTextAlignment:"align",verticalTextAlignment:"verticalAlign",wrapping:function(e,t){e&&(t.whiteSpace="wrap")},"font.yjs:Font":{fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:g,fontWeight:g,textDecoration:g}},"Style.y:VoidLabelStyle":function(e,t){t.VoidLbl=!0},alignment:"align",fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:g,underlinedText:function(e,t){var o=t.fontStyle||0;"true"==e&&(o|=4),t.fontStyle=o},horizontalTextPosition:"",textColor:{key:"fontColor",mod:"color"},verticalTextPosition:"verticalAlign",hasText:{key:"hasText",mod:"bool"},rotationAngle:"rotation"},h),h.VoidLbl||"0"==h.hasText||(n.push(c),i.push(h),m.push(y))}}for(p=0;p<n.length;p++)if(n[p]){if(m[p]&&m[p]["bpmn:ParticipantParameter"])continue;n[p]=mxUtils.htmlEntities(n[p],!1).replace(/\n/g,"<br/>");var f=e.geometry,x=new mxCell(n[p],new mxGeometry(0,0,f.width,f.height),"text;html=1;spacing=0;"+this.styleMap2Str(i[p]));x.vertex=!0,e.insert(x,l);var b=x.geometry;if(m[p]["y:RatioAnchoredLabelModelParameter"]){var w=mxUtils.getSizeForString(n[p],i[p].fontSize,i[p].fontFamily),u=m[p]["y:RatioAnchoredLabelModelParameter"].LayoutOffset;if(u){var _=u.split(",");b.x=parseFloat(_[0]),b.y=parseFloat(_[1]),b.width=w.width,b.height=w.height,x.style+=";spacingTop=-4;"}else m[p]["y:RatioAnchoredLabelModelParameter"].LabelRatio,m[p]["y:RatioAnchoredLabelModelParameter"].LayoutRatio,x.style+=";align=center;"}else if(m[p]["y:InteriorLabelModel"]){switch(m[p]["y:InteriorLabelModel"]){case"Center":x.style+=";verticalAlign=middle;";break;case"North":b.height=1;break;case"West":b.width=f.height,b.height=f.width,b.y=f.height/2-f.width/2,b.x=-b.y,x.style+=";rotation=-90"}x.style+=";align=center;"}else if(m[p]["y:StretchStripeLabelModel"]||m[p]["y:StripeLabelModelParameter"])switch(m[p]["y:StretchStripeLabelModel"]||m[p]["y:StripeLabelModelParameter"].Position){case"North":b.height=1;break;case"West":b.width=f.height,b.height=f.width,b.y=f.height/2-f.width/2,b.x=-b.y,x.style+=";rotation=-90;"}else if(m[p]["bpmn:PoolHeaderLabelModel"]){switch(m[p]["bpmn:PoolHeaderLabelModel"]){case"NORTH":b.height=1;break;case"WEST":b.width=f.height,b.height=f.width,b.y=f.height/2-f.width/2,b.x=-b.y,x.style+=";rotation=-90;"}x.style+=";align=center;"}else if(m[p]["y:InteriorStretchLabelModelParameter"]){try{m[p]["y:InteriorStretchLabelModelParameter"].Model["y:InteriorStretchLabelModel"].Insets}catch(e){}x.style+=";align=center;"}else if(m[p]["y:ExteriorLabelModel"])switch(m[p]["y:ExteriorLabelModel"]){case"East":x.style+=";labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;";break;case"South":x.style+=";labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;";break;case"North":x.style+=";labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;";break;case"West":x.style+=";labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;"}else if(m[p]["y:FreeEdgeLabelModelParameter"]){b.relative=!0,b.adjustIt=!0;var C=(y=m[p]["y:FreeEdgeLabelModelParameter"]).Ratio,k=y.Distance,v=y.Angle;C&&(b.x=parseFloat(C)),k&&(b.y=parseFloat(k)),v&&(x.style+=";rotation="+parseFloat(v)*(180/Math.PI)),x.style+=";verticalAlign=middle;"}else if(m[p]["y:EdgePathLabelModelParameter"]){b.relative=!0;var E=(y=m[p]["y:EdgePathLabelModelParameter"]).SideOfEdge;if(C=y.SegmentRatio,b.x=C?2*parseFloat(C)-1:0,E)switch(E){case"RightOfEdge":b.y=-15;break;case"LeftOfEdge":b.y=15}x.style+=";verticalAlign=middle;"}else{var S=parseFloat(m[p].x),G=parseFloat(m[p].y);if(m[p].width&&(b.width=parseFloat(m[p].width)),m[p].height&&(b.height=parseFloat(m[p].height)),e.edge){b.relative=!0,b.x=0,b.y=0;var M=e.source.geometry.getCenterX()-e.target.geometry.getCenterX(),A=e.source.geometry.getCenterY()-e.target.geometry.getCenterY();if(r&&a&&m[p]["y:ModelParameter"]&&m[p]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"]){y=m[p]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"],v=parseFloat(y.angle),k=parseFloat(y.distance),y.distanceToCenter;var T=y.position,P=(C=parseFloat(y.ratio),parseFloat(y.segment)),L=new mxCellState;L.absolutePoints=a,r.view.updateEdgeBounds(L);var F="left"==T?1:-1;if(-1==P&&6.283185307179586==v)b.offset=new mxPoint(Math.abs(C)<1?L.segments[0]*C:C,F*k);else{-1==P&&(P=0);for(var D=0,O=0;O<P;O++)D+=L.segments[O];D+=L.segments[P]*C,b.x=D/L.length*2-1,b.y=(("center"==T?0:k)+b.height/2*F*(Math.abs(M)>Math.abs(A)?1:-1))*F}}else isNaN(S)||isNaN(G)||(b.offset=new mxPoint(S+M/2+(M>0?-b.width:b.width),G))}else b.x=S||0,b.y=G||0}i[p].rotation&&270==i[p].rotation&&(b.x-=b.height/2)}return{lblTxts:n,lblStyles:i}},mxGraphMlCodec.prototype.processPage=function(e,t){var o=(new mxCodec).encode(e.getModel());o.setAttribute("style","default-style2");var r=mxUtils.getXml(o),a='<diagram name="Page '+t+'">';return(a+=Graph.compress(r))+"</diagram>"},mxGraphMlCodec.prototype.getDirectChildNamedElements=function(e,t){for(var o=[],r=e.firstChild;null!=r;r=r.nextSibling)null!=r&&1==r.nodeType&&t==r.nodeName&&o.push(r);return o},mxGraphMlCodec.prototype.getDirectFirstChildNamedElements=function(e,t){for(var o=e.firstChild;null!=o;o=o.nextSibling)if(null!=o&&1==o.nodeType&&t==o.nodeName)return o;return null},mxGraphMlCodec.prototype.getDirectChildElements=function(e){for(var t=[],o=e.firstChild;null!=o;o=o.nextSibling)null!=o&&1==o.nodeType&&t.push(o);return t},mxGraphMlCodec.prototype.getDirectFirstChildElement=function(e){for(var t=e.firstChild;null!=t;t=t.nextSibling)if(null!=t&&1==t.nodeType)return t;return null};var mxGraphMlConverters={"orgchartconverters.linebreakconverter":function(e,t){if("string"==typeof e){for(var o=e;o.length>20&&o.indexOf(" ")>-1;)o=o.substring(0,o.lastIndexOf(" "));return"true"===t?o:e.substring(o.length)}return""},"orgchartconverters.borderconverter":function(e,t){return"boolean"==typeof e?e?"#FFBB33":"rgba(0,0,0,0)":"#FFF"},"orgchartconverters.addhashconverter":function(e,t){return"string"==typeof e?"string"==typeof t?"#"+e+t:"#"+e:e},"orgchartconverters.intermediateconverter":function(e,t){return"string"==typeof e&&e.length>17?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):e},"orgchartconverters.overviewconverter":function(e,t){return"string"==typeof e&&e.length>0?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):""}},mxGraphMlArrowsMap={SIMPLE:"open",TRIANGLE:"block",DIAMOND:"diamond",CIRCLE:"oval",CROSS:"cross",SHORT:"classicThin",DEFAULT:"classic",NONE:"none",none:"none",white_delta_bar:"block",delta:"block",standard:"classic",diamond:"diamond",white_diamond:"diamond",white_delta:"block",plain:"open",skewed_dash:"dash",concave:"openThin",transparent_circle:"oval",crows_foot_many:"ERmany",crows_foot_one:"ERone",crows_foot_one_optional:"ERzeroToOne",crows_foot_one_mandatory:"ERmandOne",crows_foot_many_optional:"ERzeroToMany",crows_foot_many_mandatory:"ERoneToMany",white_circle:"oval",t_shape:"ERone",short:"classicThin",convex:"",cross:"cross"},mxGraphMlShapesMap={star5:"mxgraph.basic.star;flipV=1",star6:"mxgraph.basic.6_point_star",star8:"mxgraph.basic.8_point_star",sheared_rectangle:"parallelogram",sheared_rectangle2:"parallelogram;flipH=1",hexagon:"hexagon",octagon:"mxgraph.basic.octagon",ellipse:"ellipse",round_rectangle:"rect;rounded=1;arcsize=30",diamond:"rhombus",fat_arrow:"step;perimeter=stepPerimeter",fat_arrow2:"step;perimeter=stepPerimeter;flipH=1",trapez:"trapezoid;perimeter=trapezoidPerimeter;flipV=1",trapez2:"trapezoid;perimeter=trapezoidPerimeter",triangle:"triangle",triangle2:"triangle",rectangle:"rect",rectangle3d:"",roundrectangle:"rect;rounded=1;arcsize=30",fatarrow:"step;perimeter=stepPerimeter",fatarrow2:"step;perimeter=stepPerimeter;flipH=1",parallelogram:"parallelogram",parallelogram2:"parallelogram;flipH=1",trapezoid2:"trapezoid;perimeter=trapezoidPerimeter;flipV=1",trapezoid:"trapezoid;perimeter=trapezoidPerimeter",bevelnode:"rect;glass=1;",bevelnodewithshadow:"rect;glass=1;shadow=1",bevelnode2:"rect;glass=1;rounded=1;arcsize=30",bevelnode3:"rect;glass=1;rounded=1;arcsize=30;shadow=1",shinyplatenode:"rect;glass=1",shinyplatenodewithshadow:"rect;glass=1;shadow=1",shinyplatenode2:"rect;glass=1;rounded=1;arcsize=30",shinyplatenode3:"rect;glass=1;rounded=1;arcsize=30;shadow=1",process:"mxgraph.flowchart.process",decision:"mxgraph.flowchart.decision",start1:"mxgraph.flowchart.start_1",start2:"mxgraph.flowchart.start_2;aspect=fixed",terminator:"mxgraph.flowchart.terminator",cloud:"cloud",data:"mxgraph.flowchart.data",directdata:"mxgraph.flowchart.direct_data",database:"mxgraph.flowchart.database",document:"mxgraph.flowchart.document",predefinedprocess:"mxgraph.flowchart.predefined_process",storeddata:"mxgraph.flowchart.stored_data",internalstorage:"mxgraph.flowchart.internal_storage",sequentialdata:"mxgraph.flowchart.sequential_data;aspect=fixed",manualinput:"mxgraph.flowchart.manual_input",card:"card;size=10",papertype:"mxgraph.flowchart.paper_tape",delay:"mxgraph.flowchart.delay",display:"mxgraph.flowchart.display",manualoperation:"mxgraph.flowchart.manual_operation",preparation:"mxgraph.flowchart.preparation",looplimit:"mxgraph.flowchart.loop_limit",looplimitend:"mxgraph.flowchart.loop_limit;flipV=1",onpagereference:"mxgraph.flowchart.on-page_reference;aspect=fixed",offpagereference:"mxgraph.flowchart.off-page_reference;aspect=fixed",annotation:"mxgraph.flowchart.annotation_1",usermessage:"mxgraph.arrows2.arrow;dy=0;dx=10;notch=0",networkmessage:"mxgraph.arrows2.arrow;dy=0;dx=0;notch=10","com.yworks.flowchart.start1":"mxgraph.flowchart.start_1","com.yworks.flowchart.start2":"mxgraph.flowchart.start_2;aspect=fixed","com.yworks.flowchart.terminator":"mxgraph.flowchart.terminator","com.yworks.flowchart.process":"mxgraph.flowchart.process","com.yworks.flowchart.predefinedprocess":"mxgraph.flowchart.predefined_process","com.yworks.flowchart.decision":"mxgraph.flowchart.decision","com.yworks.flowchart.looplimit":"mxgraph.flowchart.loop_limit","com.yworks.flowchart.looplimitend":"mxgraph.flowchart.loop_limit;flipV=1","com.yworks.flowchart.document":"mxgraph.flowchart.document","com.yworks.flowchart.data":"mxgraph.flowchart.data","com.yworks.flowchart.directdata":"mxgraph.flowchart.direct_data","com.yworks.flowchart.storeddata":"mxgraph.flowchart.stored_data","com.yworks.flowchart.sequentialdata":"mxgraph.flowchart.sequential_data;aspect=fixed","com.yworks.flowchart.database":"mxgraph.flowchart.database","com.yworks.flowchart.internalstorage":"mxgraph.flowchart.internal_storage","com.yworks.flowchart.manualinput":"mxgraph.flowchart.manual_input","com.yworks.flowchart.card":"card;size=10","com.yworks.flowchart.papertype":"mxgraph.flowchart.paper_tape","com.yworks.flowchart.cloud":"cloud","com.yworks.flowchart.delay":"mxgraph.flowchart.delay","com.yworks.flowchart.display":"mxgraph.flowchart.display","com.yworks.flowchart.manualoperation":"mxgraph.flowchart.manual_operation","com.yworks.flowchart.preparation":"mxgraph.flowchart.preparation","com.yworks.flowchart.onpagereference":"mxgraph.flowchart.on-page_reference;aspect=fixed","com.yworks.flowchart.offpagereference":"mxgraph.flowchart.off-page_reference;aspect=fixed","com.yworks.flowchart.usermessage":"mxgraph.arrows2.arrow;dy=0;dx=10;notch=0","com.yworks.flowchart.networkmessage":"mxgraph.arrows2.arrow;dy=0;dx=0;notch=10","com.yworks.flowchart.annotation":"mxgraph.flowchart.annotation_1","database.svg":"mxgraph.networks.storage","laptop.svg":"mxgraph.networks.laptop","server.svg":"mxgraph.networks.server","smartphone.svg":"mxgraph.networks.mobile","switch.svg":"mxgraph.networks.switch","wlan.svg":"mxgraph.networks.wireless_hub","workstation.svg":"mxgraph.networks.pc",transaction:"ext;double=1;rounded=1",sub_process:"ext;rounded=1",call_activity:"ext;rounded=1;strokeWidth=3",exclusive_with_marker:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=exclusiveGw",event_based:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=boundInt;symbol=multiple",parallel:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=parallelGw",inclusive:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=end;symbol=general",complex:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=complexGw",exclusive_event_based:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=standard;symbol=multiple",parallel_event_based:"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=standard;symbol=parallelMultiple",calling_global_conversation:"hexagon;strokeWidth=4",message:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=message",timer:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=timer",escalation:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=escalation",conditional:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=conditional",link:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=link",error:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=error",cancel:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=cancel",compensation:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=compensation",signal:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=signal",multiple:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=multiple",parallel_multiple:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=parallelMultiple",terminate:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=terminate","com.yworks.bpmn.activity.withshadow":"js:bpmnActivityShadow","com.yworks.bpmn.activity":"js:bpmnActivity","com.yworks.bpmn.gateway.withshadow":"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;shadow=1","com.yworks.bpmn.gateway":"mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway","com.yworks.bpmn.event.withshadow":"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;shadow=1","com.yworks.bpmn.event":"mxgraph.bpmn.shape;perimeter=ellipsePerimeter","com.yworks.bpmn.conversation.withshadow":"hexagon;shadow=1","com.yworks.bpmn.conversation":"hexagon","com.yworks.bpmn.artifact.withshadow":"js:bpmnArtifactShadow","com.yworks.bpmn.artifact":"js:bpmnArtifact",bpmnOutline:{sub_process_interrupting:"eventInt",sub_process_non_interrupting:"eventNonint",catching:"catching",boundary_interrupting:"boundInt",boundary_non_interrupting:"boundNonint",throwing:"throwing",end:"end",event_characteristic_start:"standard",event_characteristic_end:"end",event_characteristic_intermediate_catching:"catching",event_characteristic_start_event_sub_process_interrupting:"eventInt",event_characteristic_intermediate_boundary_interrupting:"boundInt"},bpmnSymbol:{event_type_plain:"general",event_type_message:"message",event_type_timer:"timer",event_type_escalation:"escalation",event_type_conditional:"conditional",event_type_link:"link",event_type_error:"error",event_type_cancel:"cancel",event_type_compensation:"compensation",event_type_signal:"signal",event_type_multiple:"multiple",event_type_parallel_multiple:"parallelMultiple",event_type_terminate:"terminate",gateway_type_plain:"",gateway_type_data_based_exclusive:"exclusiveGw",gateway_type_inclusive:"general;outline=end",gateway_type_parallel:"parallelGw",gateway_type_complex:"complexGw",gateway_type_event_based_exclusive:"multiple;outline=catching",gateway_type_event_based_exclusive_start_process:"multiple;outline=standard",gateway_type_parallel_event_based_exclusive_start_process:"parallelMultiple;outline=standard",conversation_type:"",artifact_type_data_object:"js:bpmnDataObject",artifact_type_annotation:"mxgraph.flowchart.annotation_1",artifact_type_group:"rect;fillColor=none;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1",artifact_type_data_store:"datastore",artifact_type_reply_message:"message;strokeColor=#000000;fillColor=#A1A1A1",artifact_type_request_message:"message",connection_type_sequence_flow:"",connection_type_default_flow:"",connection_type_conditional_flow:"",connection_type_association:"",connection_type_directed_association:"",connection_type_bidirected_association:"",connection_type_message_flow:"",connection_type_conversation_link:"",connection_type_forked_conversation_link:"",pool_type_lane_and_column:"",pool_type_empty:"",pool_type_lane:"",pool_type_column:"",activity_type:""},"com.yworks.entityrelationship.big_entity":"js:relationship_big_entity","com.yworks.entityrelationship.small_entity":"ext","com.yworks.entityrelationship.relationship":"rhombus","com.yworks.entityrelationship.attribute":"js:relationship_attribute","com.yworks.sbgn.unspecifiedentity":"ellipse","com.yworks.sbgn.simplechemical":"ellipse","com.yworks.sbgn.macromolecule":"ext;rounded=1","com.yworks.sbgn.nucleicacidfeature":"","com.yworks.sbgn.perturbingagent":"","com.yworks.sbgn.phenotype":"hexagon;perimeter=hexagonPerimeter2;size=0.2","com.yworks.sbgn.emptyset":"lineEllipse;line=vertical;perimeter=ellipsePerimeter","com.yworks.sbgn.submap":"","com.yworks.sbgn.unitofinformation":"","com.yworks.sbgn.statevariable":"mxgraph.flowchart.terminator","com.yworks.sbgn.tag":"offPageConnector;size=0.25","com.yworks.sbgn.process":"rect","com.yworks.sbgn.operator":"ellipse","com.yworks.edge.framed":"link","usericon_female1.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/100/female1-128.png","usericon_female2.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/100/female1-128.png","usericon_female3.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/100/female1-128.png","usericon_female4.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/100/female1-128.png","usericon_female5.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/100/female1-128.png","usericon_male1.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/101/malecostume-128.png","usericon_male2.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/101/malecostume-128.png","usericon_male3.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/101/malecostume-128.png","usericon_male4.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/101/malecostume-128.png","usericon_male5.svg":"image;image=https://cdn1.iconfinder.com/data/icons/user-pictures/101/malecostume-128.png"},mxGraphMlConstants={ID:"id",KEY_FOR:"for",KEY_NAME:"attr.name",KEY_TYPE:"attr.type",KEY_YTYPE:"yfiles.type",GRAPH:"graph",GRAPHML:"graphml",NODE:"node",EDGE:"edge",HYPEREDGE:"hyperedge",PORT:"port",ENDPOINT:"endpoint",KEY:"key",DATA:"data",ALL:"all",EDGE_SOURCE:"source",EDGE_SOURCE_PORT:"sourceport",EDGE_TARGET:"target",EDGE_TARGET_PORT:"targetport",EDGE_DIRECTED:"directed",EDGE_UNDIRECTED:"undirected",EDGE_DEFAULT:"edgedefault",PORT_NAME:"name",HEIGHT:"Height",WIDTH:"Width",X:"X",Y:"Y",HEIGHT_L:"height",WIDTH_L:"width",X_L:"x",Y_L:"y",JGRAPH:"jGraph:",GEOMETRY:"y:Geometry",FILL:"Fill",SHAPENODE:"y:ShapeNode",SHAPEEDGE:"ShapeEdge",JGRAPH_URL:"http://www.jgraph.com/",KEY_NODE_ID:"d0",KEY_NODE_NAME:"nodeData",KEY_EDGE_ID:"d1",KEY_EDGE_NAME:"edgeData",STYLE:"Style",SHAPE:"Shape",TYPE:"type",LABEL:"label",TEXT:"text",PROPERTIES:"properties",SOURCETARGET:"SourceTarget",RECT:"y:RectD",NODE_LABELS:"NodeLabels",NODE_LABEL:"y:NodeLabel",NODE_GEOMETRY:"NodeGeometry",USER_TAGS:"UserTags",NODE_STYLE:"NodeStyle",NODE_GRAPHICS:"nodegraphics",NODE_VIEW_STATE:"NodeViewState",EDGE_LABELS:"EdgeLabels",EDGE_GEOMETRY:"EdgeGeometry",EDGE_STYLE:"EdgeStyle",EDGE_VIEW_STATE:"EdgeViewState",PORT_LOCATION_PARAMETER:"PortLocationParameter",PORT_STYLE:"PortStyle",PORT_VIEW_STATE:"PortViewState",SHARED_DATA:"SharedData",Y_SHARED_DATA:"y:SharedData",X_KEY:"x:Key",GRAPHML_REFERENCE:"y:GraphMLReference",RESOURCE_KEY:"ResourceKey",Y_RESOURCES:"y:Resources",Y_RESOURCE:"y:Resource",REFID:"refid",X_LIST:"x:List",X_STATIC:"x:Static",Y_BEND:"y:Bend",LOCATION:"Location",Y_LABEL:"y:Label",LAYOUTPARAMETER:"LayoutParameter",YJS_DEFAULTLABELSTYLE:"yjs:DefaultLabelStyle",MEMBER:"Member"};EditorUi.prototype.doImportGraphML=function(e,t,o){(new mxGraphMlCodec).decode(e,t,o)};