diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.debug.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.debug.js index 38a7b9e3..d90b7970 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.debug.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.debug.js @@ -291,42 +291,6 @@ function moveShapeAndFile(type,sublinePos,movedDistance) { var passedMoreShapes = obj.passedMoreShapes var laneArr = obj.laneArr - for (let i = 0; i < movingLines.length; i++) { - let fromIndex = passedShapes.findIndex(item => item.id == movingLines[i].from.id) - let toIndex = passedShapes.findIndex(item => item.id == movingLines[i].to.id) - - let moreFromIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].from.id) - let moreToIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].to.id) - - for (let j = 0; j < movingLines[i].points.length; j++) { - if(movingLines[i].points[j][type] > sublinePos ) { - movingLines[i].points[j][type] += movedDistance - } - } - - if (movingLines[i].from[type] > sublinePos && moreFromIndex == -1) { - movingLines[i].from[type] += movedDistance - } else if(movingLines[i].from[type] <= sublinePos && fromIndex !== -1) { - for (let j = 0; j < movingLines[i].points.length; j++) { - if(movingLines[i].points[j][type] == movingLines[i].from[type]) { - movingLines[i].points[j][type] += movedDistance - } - } - movingLines[i].from[type] += movedDistance - } - if (movingLines[i].to[type] > sublinePos && moreToIndex == -1) { - movingLines[i].to[type] += movedDistance - } else if(passedShapes.length > 0 && movingLines[i].to[type] <= sublinePos && toIndex !== -1) { - for (let j = 0; j < movingLines[i].points.length; j++) { - if(movingLines[i].points[j][type] == movingLines[i].to[type]) { - movingLines[i].points[j][type] += movedDistance - } - } - movingLines[i].to[type] += movedDistance - } - Designer.painter.renderLinker(movingLines[i]) - } - if(laneArr.length == 0) { if(type == 'y') { Designer.op.moveShape(movingShapes,{ @@ -339,6 +303,41 @@ function moveShapeAndFile(type,sublinePos,movedDistance) { y: 0 }) } + for (let i = 0; i < movingLines.length; i++) { + let fromIndex = passedShapes.findIndex(item => item.id == movingLines[i].from.id) + let toIndex = passedShapes.findIndex(item => item.id == movingLines[i].to.id) + + let moreFromIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].from.id) + let moreToIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].to.id) + + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] > sublinePos ) { + movingLines[i].points[j][type] += movedDistance + } + } + + if (movingLines[i].from[type] > sublinePos && moreFromIndex == -1) { + movingLines[i].from[type] += movedDistance + } else if(movingLines[i].from[type] <= sublinePos && fromIndex !== -1) { + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] == movingLines[i].from[type]) { + movingLines[i].points[j][type] += movedDistance + } + } + movingLines[i].from[type] += movedDistance + } + if (movingLines[i].to[type] > sublinePos && moreToIndex == -1) { + movingLines[i].to[type] += movedDistance + } else if(passedShapes.length > 0 && movingLines[i].to[type] <= sublinePos && toIndex !== -1) { + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] == movingLines[i].to[type]) { + movingLines[i].points[j][type] += movedDistance + } + } + movingLines[i].to[type] += movedDistance + } + Designer.painter.renderLinker(movingLines[i]) + } Designer.op.hideTip(); Utils.unselect(); @@ -355,6 +354,8 @@ function moveLanes(type,sublinePos,movedDistance) { var obj = filterShapeAndLine(type,sublinePos) var movingLines = obj.movingLines var movingShapes = obj.movingShapes + var passedShapes = obj.passedShapes + var passedMoreShapes = obj.passedMoreShapes var laneArr = obj.laneArr var laneGroupArr = [] var changedLanes = [] @@ -509,6 +510,42 @@ function moveLanes(type,sublinePos,movedDistance) { }) } + for (let i = 0; i < movingLines.length; i++) { + let fromIndex = passedShapes.findIndex(item => item.id == movingLines[i].from.id) + let toIndex = passedShapes.findIndex(item => item.id == movingLines[i].to.id) + + let moreFromIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].from.id) + let moreToIndex = passedMoreShapes.findIndex(item => item.id == movingLines[i].to.id) + + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] > sublinePos ) { + movingLines[i].points[j][type] += movedDistance + } + } + + if (movingLines[i].from[type] > sublinePos && moreFromIndex == -1) { + movingLines[i].from[type] += movedDistance + } else if(movingLines[i].from[type] <= sublinePos && fromIndex !== -1) { + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] == movingLines[i].from[type]) { + movingLines[i].points[j][type] += movedDistance + } + } + movingLines[i].from[type] += movedDistance + } + if (movingLines[i].to[type] > sublinePos && moreToIndex == -1) { + movingLines[i].to[type] += movedDistance + } else if(passedShapes.length > 0 && movingLines[i].to[type] <= sublinePos && toIndex !== -1) { + for (let j = 0; j < movingLines[i].points.length; j++) { + if(movingLines[i].points[j][type] == movingLines[i].to[type]) { + movingLines[i].points[j][type] += movedDistance + } + } + movingLines[i].to[type] += movedDistance + } + Designer.painter.renderLinker(movingLines[i]) + } + Designer.op.hideTip(); Utils.unselect(); @@ -699,12 +736,12 @@ Designer.addFunction("setShapeStyle", function(style){ * 设计器方法:修改线条样式 */ Designer.addFunction("setLineStyle", function(style){ - var selected = Utils.getSelected(); - if(selected.length == 0){ - return; - } - var familyShapes = Utils.getFamilyShapes(selected); - selected = selected.concat(familyShapes); + var selected = Utils.getSelected(); + if(selected.length == 0){ + return; + } + var familyShapes = Utils.getFamilyShapes(selected); + selected = selected.concat(familyShapes); for(var i = 0; i < selected.length; i++){ var shape = selected[i]; //重新赋一下,因为有些新建的图形可能没有lineStyle属性 @@ -745,16 +782,16 @@ Designer.addFunction("setLineStyle", function(style){ * 设计器方法:修改填充样式 */ Designer.addFunction("setFillStyle", function(style){ - var selected = Utils.getSelected(); - if(selected.length == 0){ - return; - } - //抛出事件处理 - selected = Designer.events.push("settingFillStyle", selected); - if(selected.length == 0){ - return; - } - var changed = []; + var selected = Utils.getSelected(); + if(selected.length == 0){ + return; + } + //抛出事件处理 + selected = Designer.events.push("settingFillStyle", selected); + if(selected.length == 0){ + return; + } + var changed = []; for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name != "linker"){ @@ -799,7 +836,7 @@ Designer.addFunction("setFillStyle", function(style){ if(typeof style.angle != "undefined"){ shape.fillStyle.angle = style.angle; } - + } if(type == "image"){ //图片类型 @@ -866,11 +903,11 @@ Designer.addFunction("setFillStyle", function(style){ * 设计器方法:修改连接线类型 */ Designer.addFunction("setLinkerType", function(type){ - var selected = Utils.getSelected(); - if(selected.length == 0){ - return; - } - var changed = []; + var selected = Utils.getSelected(); + if(selected.length == 0){ + return; + } + var changed = []; for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name == "linker"){ @@ -893,13 +930,13 @@ Designer.addFunction("setLinkerType", function(type){ * 设计器方法:匹配大小 */ Designer.addFunction("matchSize", function(size){ - var selected = Utils.getSelected(); - if(selected.length == 0 || !size){ - return; - } - var maxW = null; - var maxH = null; - var linkerIds = []; //定义linkerIds变量,保存会变化的连接线id,随后再逐一进行计算 + var selected = Utils.getSelected(); + if(selected.length == 0 || !size){ + return; + } + var maxW = null; + var maxH = null; + var linkerIds = []; //定义linkerIds变量,保存会变化的连接线id,随后再逐一进行计算 for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name != "linker"){ @@ -943,16 +980,16 @@ Designer.addFunction("matchSize", function(size){ * left center right top middle bottom */ Designer.addFunction("alignShapes", function(type){ - var selected = Utils.getSelected(); - if(selected.length == 0 || !type){ - return; - } - var selectedIds = Utils.getSelectedIds(); - var box = Utils.getControlBox(selectedIds); - var linkerIds = []; - Utils.removeAnchors(); - var changed = []; - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length == 0 || !type){ + return; + } + var selectedIds = Utils.getSelectedIds(); + var box = Utils.getControlBox(selectedIds); + var linkerIds = []; + Utils.removeAnchors(); + var changed = []; + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name != "linker"){ changed.push(shape); @@ -1061,16 +1098,16 @@ Designer.addFunction("alignShapes", function(type){ * h, v */ Designer.addFunction("distributeShapes", function(type){ - var selected = Utils.getSelected(); - if(selected.length == 0 || !type){ - return; - } - var selectedIds = Utils.getSelectedIds(); - var box = Utils.getControlBox(selectedIds); - var linkerIds = []; - Utils.removeAnchors(); - var shapes = []; - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length == 0 || !type){ + return; + } + var selectedIds = Utils.getSelectedIds(); + var box = Utils.getControlBox(selectedIds); + var linkerIds = []; + Utils.removeAnchors(); + var shapes = []; + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name != "linker"){ shapes.push(shape); @@ -1078,10 +1115,10 @@ Designer.addFunction("distributeShapes", function(type){ } if(type == "h"){ shapes.sort(function compare(a, b){ - return a.props.x - b.props.x; - }); - var w = box.w; - for(var i = 0; i < shapes.length; i++){ + return a.props.x - b.props.x; + }); + var w = box.w; + for(var i = 0; i < shapes.length; i++){ var shape = shapes[i]; w -= shape.props.w; } @@ -1097,10 +1134,10 @@ Designer.addFunction("distributeShapes", function(type){ } }else{ shapes.sort(function compare(a, b){ - return a.props.y - b.props.y; - }); - var h = box.h; - for(var i = 0; i < shapes.length; i++){ + return a.props.y - b.props.y; + }); + var h = box.h; + for(var i = 0; i < shapes.length; i++){ var shape = shapes[i]; h -= shape.props.h; } @@ -1131,24 +1168,24 @@ Designer.addFunction("distributeShapes", function(type){ * h, v */ Designer.addFunction("layerShapes", function(type){ - var selected = Utils.getSelected(); - if(selected.length == 0 || !type){ - return; - } - selected.sort(function compare(a, b){ - return a.props.zindex - b.props.zindex; - }); - var start; - if(type == "front"){ - //顶层 - start = Model.maxZIndex; - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length == 0 || !type){ + return; + } + selected.sort(function compare(a, b){ + return a.props.zindex - b.props.zindex; + }); + var start; + if(type == "front"){ + //顶层 + start = Model.maxZIndex; + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; start += 1; shape.props.zindex = start; } - }else if(type == "forward"){ - //上移一层 + }else if(type == "forward"){ + //上移一层 var uplayer = null; var shapeIndex = null; //得到选中图形上层的形状 @@ -1176,16 +1213,16 @@ Designer.addFunction("layerShapes", function(type){ var shape = selected[i]; shape.props.zindex += offset; } - }else if(type == "back"){ - //底层 - start = Model.orderList[0].zindex; //取到最小的zindex - for(var i = selected.length - 1; i >= 0; i--){ + }else if(type == "back"){ + //底层 + start = Model.orderList[0].zindex; //取到最小的zindex + for(var i = selected.length - 1; i >= 0; i--){ var shape = selected[i]; start -= 1; shape.props.zindex = start; } - }else if(type == "backward"){ - //下移一层 + }else if(type == "backward"){ + //下移一层 var downlayer = null; var shapeIndex = null; //得到选中图形上层的形状 @@ -1213,15 +1250,15 @@ Designer.addFunction("layerShapes", function(type){ var shape = selected[i]; shape.props.zindex += offset; } - } - Model.updateMulti(selected); - - /** - * 获取图形上层的并且没有被选中的形状 - */ - function getUplayerShape(shape){ - var shapeBox = Utils.getShapeBox(shape); - for(var j = 0; j < Model.orderList.length; j++){ + } + Model.updateMulti(selected); + + /** + * 获取图形上层的并且没有被选中的形状 + */ + function getUplayerShape(shape){ + var shapeBox = Utils.getShapeBox(shape); + for(var j = 0; j < Model.orderList.length; j++){ var order = Model.orderList[j]; if(order.zindex <= shape.props.zindex || Utils.isSelected(order.id)){ continue; @@ -1235,13 +1272,13 @@ Designer.addFunction("layerShapes", function(type){ } } return null; - } - /** - * 获取图形下层的并且没有被选中的形状 - */ - function getDownlayerShape(shape){ - var shapeBox = Utils.getShapeBox(shape); - for(var j = Model.orderList.length - 1; j >= 0; j--){ + } + /** + * 获取图形下层的并且没有被选中的形状 + */ + function getDownlayerShape(shape){ + var shapeBox = Utils.getShapeBox(shape); + for(var j = Model.orderList.length - 1; j >= 0; j--){ var order = Model.orderList[j]; if(order.zindex >= shape.props.zindex || Utils.isSelected(order.id)){ continue; @@ -1255,20 +1292,20 @@ Designer.addFunction("layerShapes", function(type){ } } return null; - } + } }); /** * 设计器方法:组合 */ Designer.addFunction("group", function(){ - var selected = Utils.getSelected(); - if(selected.length < 2){ - //必须有两个以上,才可以组合 - return; - } - var groupId = Utils.newId(); - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length < 2){ + //必须有两个以上,才可以组合 + return; + } + var groupId = Utils.newId(); + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; shape.group = groupId; } @@ -1280,11 +1317,11 @@ Designer.addFunction("group", function(){ * 设计器方法:取消组合 */ Designer.addFunction("ungroup", function(){ - var selected = Utils.getSelected(); - if(selected.length == 0){ - return; - } - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length == 0){ + return; + } + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; shape.group = null; } @@ -1295,12 +1332,12 @@ Designer.addFunction("ungroup", function(){ * 设计器方法:锁定 */ Designer.addFunction("lockShapes", function(){ - var selectedIds = Utils.getSelectedIds(); - if(selectedIds.length == 0){ - return; - } - var changed = []; - for(var i = 0; i < selectedIds.length; i++){ + var selectedIds = Utils.getSelectedIds(); + if(selectedIds.length == 0){ + return; + } + var changed = []; + for(var i = 0; i < selectedIds.length; i++){ var shape = Model.getShapeById(selectedIds[i]); shape.locked = true; changed.push(shape); @@ -1316,11 +1353,11 @@ Designer.addFunction("lockShapes", function(){ */ Designer.addFunction("unlockShapes", function(){ var selectedIds = Utils.getSelectedLockedIds(); - if(selectedIds.length == 0){ - return; - } - var changed = []; - for(var i = 0; i < selectedIds.length; i++){ + if(selectedIds.length == 0){ + return; + } + var changed = []; + for(var i = 0; i < selectedIds.length; i++){ var shape = Model.getShapeById(selectedIds[i]); shape.locked = false; changed.push(shape); @@ -1398,10 +1435,10 @@ Designer.addFunction("setZoomScale", function(newScale){ Designer.config.scale = newScale; Designer.initialize.initCanvas(); for(var shapeId in Model.define.elements){ - var shape = Model.define.elements[shapeId]; + var shape = Model.define.elements[shapeId]; Designer.painter.renderShape(shape); - } - //重新选中 + } + //重新选中 var selectedIds = Utils.getSelectedIds(); var lockIds = Utils.getSelectedLockedIds(); Utils.mergeArray(selectedIds, lockIds); @@ -1415,13 +1452,13 @@ Designer.addFunction("setZoomScale", function(newScale){ * left center right top middle bottom */ Designer.addFunction("setShapeProps", function(props){ - var selected = Utils.getSelected(); - if(selected.length == 0 || !props){ - return; - } - var changed = []; - var linkerIds = []; - for(var i = 0; i < selected.length; i++){ + var selected = Utils.getSelected(); + if(selected.length == 0 || !props){ + return; + } + var changed = []; + var linkerIds = []; + for(var i = 0; i < selected.length; i++){ var shape = selected[i]; if(shape.name != "linker"){ var related = Designer.op.changeShapeProps(shape, props); @@ -1573,23 +1610,23 @@ Designer.addFunction("setSchema", function(schemaCategories, callback){ }, type: "get", success: function(data){ - var dataJson = JSON.parse(data); - var shapes; - var tempArray = []; - for (var key in dataJson) { - tempArray.push(key); - } - var commonShapeConfig = Model.define.commonShapeConfig; - for (var i = 0; i < tempArray.length; i++) { - if (tempArray[i] == "shapes") { - shapes = dataJson[tempArray[i]]; - } else { - var shapeConfigJson = JSON.parse(dataJson[tempArray[i]]); - for (var shapeId in shapeConfigJson) { - commonShapeConfig[shapeId] = shapeConfigJson[shapeId]; - } - } - } + var dataJson = JSON.parse(data); + var shapes; + var tempArray = []; + for (var key in dataJson) { + tempArray.push(key); + } + var commonShapeConfig = Model.define.commonShapeConfig; + for (var i = 0; i < tempArray.length; i++) { + if (tempArray[i] == "shapes") { + shapes = dataJson[tempArray[i]]; + } else { + var shapeConfigJson = JSON.parse(dataJson[tempArray[i]]); + for (var shapeId in shapeConfigJson) { + commonShapeConfig[shapeId] = shapeConfigJson[shapeId]; + } + } + } Schema.empty(); eval(shapes); addDefaultSchemaShape(); diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.js index 63de27aa..6856b0f4 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.methods.js @@ -1 +1 @@ -function isLineBelowOrRight(e,t,r){let i=!1;e.from[t]>r&&(i=!0),e.to[t]>r&&(i=!0);for(let n=0;nr&&(i=!0);return i}function filterShapeAndLine(e,t){var r=Model.define.elements,i=[],n=[],o=[],a=[],l=[],s=0,d=[],p=0,h=[],g=[];for(let e in r)null==r[e].points?i.push(r[e]):n.push(r[e]),"lane"==r[e].category&&o.push(r[e]);for(let r=0;r=t?h.push(i[r]):i[r].props.x+i[r].props.w/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.x+i[r].props.w/2t?l.push(i[r]):d.push(i[r]):"y"==e&&(i[r].props[e]>=t?h.push(i[r]):i[r].props.y+i[r].props.h/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.y+i[r].props.h/2t?l.push(i[r]):d.push(i[r]));for(let r=0;re.id==n[r].id);isLineBelowOrRight(n[r],e,t)&&-1==i&&g.push(n[r])}if(d.length>0&&"y"==e?p=Math.max.apply(Math,d.map(e=>e.props.y+e.props.h)):d.length>0&&"x"==e&&(p=Math.max.apply(Math,d.map(e=>e.props.x+e.props.w))),a.concat(l).length>0&&(s=Math.max.apply(Math,a.concat(l).map(t=>t.props[e]))),a.length>0){let e=Utils.getOutlinkers(a);for(let t=0;tr.id==e[t].id)&&g.push(e[t])}return{passedShapes:a,passedMoreShapes:l,passedShapesEdge:s,sublineSideEdge:p,movingShapes:h,movingLines:g,laneArr:o}}function moveShapeAndFile(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.passedShapes,l=i.passedMoreShapes,s=i.laneArr;for(let i=0;ie.id==n[i].from.id),s=a.findIndex(e=>e.id==n[i].to.id),d=l.findIndex(e=>e.id==n[i].from.id),p=l.findIndex(e=>e.id==n[i].to.id);for(let o=0;ot&&(n[i].points[o][e]+=r);if(n[i].from[e]>t&&-1==d)n[i].from[e]+=r;else if(n[i].from[e]<=t&&-1!==o){for(let t=0;tt&&-1==p)n[i].to[e]+=r;else if(a.length>0&&n[i].to[e]<=t&&-1!==s){for(let t=0;t0&&Model.updateMulti(d)}else moveLanes(e,t,r)}function moveLanes(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.laneArr,l=[],s=[];for(let e=0;e{let i=r.lanes.findIndex(e=>""==e.parent),n=r.lanes.findIndex(e=>"verticalSeparatorBar"==e.name),o=r.lanes.findIndex(e=>"horizontalSeparatorBar"==e.name),a=r.lanes[i],l=r.lanes[n],s=r.lanes[o];if("x"==e){let e=a.props.xt,i=void 0!==l&&l.props.xt,n=a.props.xt;"verticalPool"==r.name?r.isPassed=e&&!i:"horizontalPool"==r.name&&(r.isPassed=e&&!n),r.lanes.forEach(e=>{e.props.x+e.props.w>t&&r.changed.push(e)})}else if("y"==e){let e=a.props.yt,i=void 0!==s&&s.props.yt,n=a.props.yt;"verticalPool"==r.name?r.isPassed=e&&!n:"horizontalPool"==r.name&&(r.isPassed=e&&!i),r.lanes.forEach(e=>{e.props.y+e.props.h>t&&r.changed.push(e)})}}),"x"==e?(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:r,y:0}),l.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":i.props.w+=r;break;case"verticalLane":i.props.w+=i.props.xt?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparator":i.props.w+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":case"horizontalLane":i.props.w+=r;break;case"verticalSeparator":i.props.w+=i.props.xt?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparatorBar":i.props.w+=r}}}else i.props.x+=r;s.push(i),Designer.painter.renderShape(i)})})):"y"==e&&(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:0,y:r}),l.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":case"verticalLane":i.props.h+=r;break;case"horizontalSeparator":i.props.h+=i.props.yt?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparatorBar":i.props.h+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":i.props.h+=r;break;case"horizontalLane":i.props.h+=i.props.yt?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparator":i.props.h+=r}}}else i.props.y+=r;s.push(i),Designer.painter.renderShape(i)})})),Designer.op.hideTip(),Utils.unselect();var d=o.filter(e=>"lane"!==e.category).concat(s).concat(n);d.length>0&&Model.updateMulti(d)}function addDefaultSchemaShape(){Schema.addCategory({name:"standard",text:"Standard",dataAttributes:[]}),Schema.addShape({name:"standardText",title:"",text:"",category:"standard",attribute:{linkable:!1},props:{w:160,h:40},anchors:[],textBlock:{x:0,y:0,w:"w",h:"h"},path:[{lineStyle:{lineWidth:0},fillStyle:{type:"none"},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardImage",title:"",text:"",attribute:{linkable:!1,editable:!1,visible:!1},category:"standard",props:{w:100,h:70},path:[{lineStyle:{lineWidth:0},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardRectangle",title:"",text:"",attribute:{visible:!1},category:"standard",props:{w:100,h:70},path:[{actions:{ref:"rectangle"}}]})}Designer.addFunction("open",function(definition){if(""!=definition){"string"==typeof definition&&eval("definition = "+definition),$(".shape_box").remove(),Model.define.elements={},Model.persistence.elements={},Model.define.page=definition.page,Model.define.processProperties=definition.processProperties,Model.define.processDocument=definition.processDocument,Model.define.uuid=definition.uuid,process.title=definition.title,Model.persistence.page=Utils.copy(definition.page),Designer.initialize.initCanvas();var shapes=definition.elements,shapeCount=0;for(var shapeId in shapes){var shape=shapes[shapeId];"linker"!=shape.name&&(Schema.initShapeFunctions(shape),Designer.painter.renderShape(shape),Model.add(shape,!1)),shapeCount++}for(var shapeId in shapes){var shape=shapes[shapeId];"linker"==shape.name&&(Designer.painter.renderLinker(shape),Model.add(shape,!1))}0==shapeCount&&Model.build(),Navigator.draw()}}),Designer.addFunction("selectAll",function(){var e=Model.define.elements,t=[];for(var r in e)t.push(r);Utils.selectShape(t)}),Designer.addFunction("selectVertical",function(e){var t=e.y,r=$("#designer_subline1"),i=$("#designer_subline2");r.css({display:"block","z-index":Model.orderList.length+4,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t}),i.css({display:"block","z-index":Model.orderList.length+5,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t,cursor:"move"});var n=filterShapeAndLine("y",t),o=$("#canvas_container"),a=$("#designer_canvas");i.bind("mousedown.drag",function(e){o.bind("mousemove.drag",function(e){var o=Utils.getRelativePos(e.pageX,e.pageY,a);if(o.y>=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",height:o.y-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",height:0}),i.css({top:o.y});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.y=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",width:o.x-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",width:0}),i.css({left:o.x});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.x1&&Designer.painter.drawControls(o),Model.updateMulti(r),Utils.showLinkerControls()}}),Designer.addFunction("matchSize",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=null,i=null,n=[],o=0;or)&&(r=l.props.w),(null==i||l.props.h>i)&&(i=l.props.h))}"auto"==e.w&&(e.w=r),"auto"==e.h&&(e.h=i),Utils.removeAnchors();var a=[];for(o=0;o=0;i--){r-=1,(g=t[i]).props.zindex=r}}else if("backward"==e){var p=null;for(o=null,i=0;i=0;r--){var i=Model.orderList[r];if(!(i.zindex>=e.props.zindex||Utils.isSelected(i.id))){var n=Model.getShapeById(i.id),o=Utils.getShapeBox(n);if(Utils.rectCross(t,o))return n}}return null}}),Designer.addFunction("group",function(){var e=Utils.getSelected();if(!(e.length<2)){for(var t=Utils.newId(),r=0;r4&&(e=4),Utils.hideLinkerCursor(),Designer.config.scale=e,Designer.initialize.initCanvas(),Model.define.elements){var r=Model.define.elements[t];Designer.painter.renderShape(r)}var i=Utils.getSelectedIds(),n=Utils.getSelectedLockedIds();Utils.mergeArray(i,n),Utils.unselect(),Utils.selectShape(i),Utils.showLinkerCursor()}),Designer.addFunction("setShapeProps",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=[],i=[],n=0;n0&&Model.updateMulti(r);var d=Utils.getSelectedIds();Utils.unselect(),Utils.selectShape(d)}}),Designer.addFunction("addDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]),e.id=Utils.newId(),e.category="custom",r.dataAttributes.push(e),MessageSource.doWithoutUpdateDock(function(){Model.update(r)})}),Designer.addFunction("updateDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=!1,n=0;nr&&(i=!0),e.to[t]>r&&(i=!0);for(let n=0;nr&&(i=!0);return i}function filterShapeAndLine(e,t){var r=Model.define.elements,i=[],n=[],o=[],a=[],l=[],s=0,d=[],p=0,h=[],g=[];for(let e in r)null==r[e].points?i.push(r[e]):n.push(r[e]),"lane"==r[e].category&&o.push(r[e]);for(let r=0;r=t?h.push(i[r]):i[r].props.x+i[r].props.w/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.x+i[r].props.w/2t?l.push(i[r]):d.push(i[r]):"y"==e&&(i[r].props[e]>=t?h.push(i[r]):i[r].props.y+i[r].props.h/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.y+i[r].props.h/2t?l.push(i[r]):d.push(i[r]));for(let r=0;re.id==n[r].id);isLineBelowOrRight(n[r],e,t)&&-1==i&&g.push(n[r])}if(d.length>0&&"y"==e?p=Math.max.apply(Math,d.map(e=>e.props.y+e.props.h)):d.length>0&&"x"==e&&(p=Math.max.apply(Math,d.map(e=>e.props.x+e.props.w))),a.concat(l).length>0&&(s=Math.max.apply(Math,a.concat(l).map(t=>t.props[e]))),a.length>0){let e=Utils.getOutlinkers(a);for(let t=0;tr.id==e[t].id)&&g.push(e[t])}return{passedShapes:a,passedMoreShapes:l,passedShapesEdge:s,sublineSideEdge:p,movingShapes:h,movingLines:g,laneArr:o}}function moveShapeAndFile(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.passedShapes,l=i.passedMoreShapes;if(0==i.laneArr.length){"y"==e?Designer.op.moveShape(o,{x:0,y:r}):"x"==e&&Designer.op.moveShape(o,{x:r,y:0});for(let i=0;ie.id==n[i].from.id),s=a.findIndex(e=>e.id==n[i].to.id),d=l.findIndex(e=>e.id==n[i].from.id),p=l.findIndex(e=>e.id==n[i].to.id);for(let o=0;ot&&(n[i].points[o][e]+=r);if(n[i].from[e]>t&&-1==d)n[i].from[e]+=r;else if(n[i].from[e]<=t&&-1!==o){for(let t=0;tt&&-1==p)n[i].to[e]+=r;else if(a.length>0&&n[i].to[e]<=t&&-1!==s){for(let t=0;t0&&Model.updateMulti(s)}else moveLanes(e,t,r)}function moveLanes(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.passedShapes,l=i.passedMoreShapes,s=i.laneArr,d=[],p=[];for(let e=0;e{let i=r.lanes.findIndex(e=>""==e.parent),n=r.lanes.findIndex(e=>"verticalSeparatorBar"==e.name),o=r.lanes.findIndex(e=>"horizontalSeparatorBar"==e.name),a=r.lanes[i],l=r.lanes[n],s=r.lanes[o];if("x"==e){let e=a.props.xt,i=void 0!==l&&l.props.xt,n=a.props.xt;"verticalPool"==r.name?r.isPassed=e&&!i:"horizontalPool"==r.name&&(r.isPassed=e&&!n),r.lanes.forEach(e=>{e.props.x+e.props.w>t&&r.changed.push(e)})}else if("y"==e){let e=a.props.yt,i=void 0!==s&&s.props.yt,n=a.props.yt;"verticalPool"==r.name?r.isPassed=e&&!n:"horizontalPool"==r.name&&(r.isPassed=e&&!i),r.lanes.forEach(e=>{e.props.y+e.props.h>t&&r.changed.push(e)})}}),"x"==e?(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:r,y:0}),d.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":i.props.w+=r;break;case"verticalLane":i.props.w+=i.props.xt?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparator":i.props.w+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":case"horizontalLane":i.props.w+=r;break;case"verticalSeparator":i.props.w+=i.props.xt?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparatorBar":i.props.w+=r}}}else i.props.x+=r;p.push(i),Designer.painter.renderShape(i)})})):"y"==e&&(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:0,y:r}),d.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":case"verticalLane":i.props.h+=r;break;case"horizontalSeparator":i.props.h+=i.props.yt?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparatorBar":i.props.h+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":i.props.h+=r;break;case"horizontalLane":i.props.h+=i.props.yt?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparator":i.props.h+=r}}}else i.props.y+=r;p.push(i),Designer.painter.renderShape(i)})}));for(let i=0;ie.id==n[i].from.id),s=a.findIndex(e=>e.id==n[i].to.id),d=l.findIndex(e=>e.id==n[i].from.id),p=l.findIndex(e=>e.id==n[i].to.id);for(let o=0;ot&&(n[i].points[o][e]+=r);if(n[i].from[e]>t&&-1==d)n[i].from[e]+=r;else if(n[i].from[e]<=t&&-1!==o){for(let t=0;tt&&-1==p)n[i].to[e]+=r;else if(a.length>0&&n[i].to[e]<=t&&-1!==s){for(let t=0;t"lane"!==e.category).concat(p).concat(n);h.length>0&&Model.updateMulti(h)}function addDefaultSchemaShape(){Schema.addCategory({name:"standard",text:"Standard",dataAttributes:[]}),Schema.addShape({name:"standardText",title:"",text:"",category:"standard",attribute:{linkable:!1},props:{w:160,h:40},anchors:[],textBlock:{x:0,y:0,w:"w",h:"h"},path:[{lineStyle:{lineWidth:0},fillStyle:{type:"none"},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardImage",title:"",text:"",attribute:{linkable:!1,editable:!1,visible:!1},category:"standard",props:{w:100,h:70},path:[{lineStyle:{lineWidth:0},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardRectangle",title:"",text:"",attribute:{visible:!1},category:"standard",props:{w:100,h:70},path:[{actions:{ref:"rectangle"}}]})}Designer.addFunction("open",function(definition){if(""!=definition){"string"==typeof definition&&eval("definition = "+definition),$(".shape_box").remove(),Model.define.elements={},Model.persistence.elements={},Model.define.page=definition.page,Model.define.processProperties=definition.processProperties,Model.define.processDocument=definition.processDocument,Model.define.uuid=definition.uuid,process.title=definition.title,Model.persistence.page=Utils.copy(definition.page),Designer.initialize.initCanvas();var shapes=definition.elements,shapeCount=0;for(var shapeId in shapes){var shape=shapes[shapeId];"linker"!=shape.name&&(Schema.initShapeFunctions(shape),Designer.painter.renderShape(shape),Model.add(shape,!1)),shapeCount++}for(var shapeId in shapes){var shape=shapes[shapeId];"linker"==shape.name&&(Designer.painter.renderLinker(shape),Model.add(shape,!1))}0==shapeCount&&Model.build(),Navigator.draw()}}),Designer.addFunction("selectAll",function(){var e=Model.define.elements,t=[];for(var r in e)t.push(r);Utils.selectShape(t)}),Designer.addFunction("selectVertical",function(e){var t=e.y,r=$("#designer_subline1"),i=$("#designer_subline2");r.css({display:"block","z-index":Model.orderList.length+4,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t}),i.css({display:"block","z-index":Model.orderList.length+5,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t,cursor:"move"});var n=filterShapeAndLine("y",t),o=$("#canvas_container"),a=$("#designer_canvas");i.bind("mousedown.drag",function(e){o.bind("mousemove.drag",function(e){var o=Utils.getRelativePos(e.pageX,e.pageY,a);if(o.y>=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",height:o.y-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",height:0}),i.css({top:o.y});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.y=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",width:o.x-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",width:0}),i.css({left:o.x});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.x1&&Designer.painter.drawControls(o),Model.updateMulti(r),Utils.showLinkerControls()}}),Designer.addFunction("matchSize",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=null,i=null,n=[],o=0;or)&&(r=l.props.w),(null==i||l.props.h>i)&&(i=l.props.h))}"auto"==e.w&&(e.w=r),"auto"==e.h&&(e.h=i),Utils.removeAnchors();var a=[];for(o=0;o=0;i--){r-=1,(g=t[i]).props.zindex=r}}else if("backward"==e){var p=null;for(o=null,i=0;i=0;r--){var i=Model.orderList[r];if(!(i.zindex>=e.props.zindex||Utils.isSelected(i.id))){var n=Model.getShapeById(i.id),o=Utils.getShapeBox(n);if(Utils.rectCross(t,o))return n}}return null}}),Designer.addFunction("group",function(){var e=Utils.getSelected();if(!(e.length<2)){for(var t=Utils.newId(),r=0;r4&&(e=4),Utils.hideLinkerCursor(),Designer.config.scale=e,Designer.initialize.initCanvas(),Model.define.elements){var r=Model.define.elements[t];Designer.painter.renderShape(r)}var i=Utils.getSelectedIds(),n=Utils.getSelectedLockedIds();Utils.mergeArray(i,n),Utils.unselect(),Utils.selectShape(i),Utils.showLinkerCursor()}),Designer.addFunction("setShapeProps",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=[],i=[],n=0;n0&&Model.updateMulti(r);var d=Utils.getSelectedIds();Utils.unselect(),Utils.selectShape(d)}}),Designer.addFunction("addDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]),e.id=Utils.newId(),e.category="custom",r.dataAttributes.push(e),MessageSource.doWithoutUpdateDock(function(){Model.update(r)})}),Designer.addFunction("updateDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=!1,n=0;n