diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go index ff25dfd6d..7adfa8072 100644 --- a/e2etests/stable_test.go +++ b/e2etests/stable_test.go @@ -2726,6 +2726,7 @@ scenarios: { loadFromFile(t, "grid_icon"), loadFromFile(t, "multiple_offset"), loadFromFile(t, "multiple_offset_left"), + loadFromFile(t, "multiple_box_selection"), } runa(t, tcs) diff --git a/e2etests/testdata/files/multiple_box_selection.d2 b/e2etests/testdata/files/multiple_box_selection.d2 new file mode 100644 index 000000000..a4301aa80 --- /dev/null +++ b/e2etests/testdata/files/multiple_box_selection.d2 @@ -0,0 +1,11 @@ +outer: { + vg: volume group { + vd: volume definition { + style.multiple: true + + volume.style.multiple: true + volume.style.stroke-dash: 3 + } + } +} +start -> outer.vg.vd.volume -> end diff --git a/e2etests/testdata/stable/multiple_box_selection/dagre/board.exp.json b/e2etests/testdata/stable/multiple_box_selection/dagre/board.exp.json new file mode 100644 index 000000000..edc87a5af --- /dev/null +++ b/e2etests/testdata/stable/multiple_box_selection/dagre/board.exp.json @@ -0,0 +1,437 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "outer", + "type": "rectangle", + "pos": { + "x": 0, + "y": 207 + }, + "width": 268, + "height": 335, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "outer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 63, + "labelHeight": 36, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "outer.vg", + "type": "rectangle", + "pos": { + "x": 20, + "y": 272 + }, + "width": 228, + "height": 240, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume group", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 140, + "labelHeight": 31, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "outer.vg.vd", + "type": "rectangle", + "pos": { + "x": 40, + "y": 345 + }, + "width": 188, + "height": 145, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": true, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume definition", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 147, + "labelHeight": 26, + "labelPosition": "OUTSIDE_TOP_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "outer.vg.vd.volume", + "type": "rectangle", + "pos": { + "x": 80, + "y": 390 + }, + "width": 98, + "height": 66, + "opacity": 1, + "strokeDash": 3, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N7", + "stroke": "B2", + "shadow": false, + "3d": false, + "multiple": true, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 53, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 4 + }, + { + "id": "start", + "type": "rectangle", + "pos": { + "x": 94, + "y": 0 + }, + "width": 80, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "start", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 35, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "end", + "type": "rectangle", + "pos": { + "x": 98, + "y": 642 + }, + "width": 72, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "end", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 27, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(start -> outer.vg.vd.volume)[0]", + "src": "start", + "srcArrow": "none", + "dst": "outer.vg.vd.volume", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 134, + "y": 66 + }, + { + "x": 134, + "y": 106 + }, + { + "x": 134, + "y": 126 + }, + { + "x": 134, + "y": 141 + }, + { + "x": 134, + "y": 156 + }, + { + "x": 134, + "y": 176 + }, + { + "x": 134, + "y": 191 + }, + { + "x": 134, + "y": 206 + }, + { + "x": 134, + "y": 288.79998779296875 + }, + { + "x": 134, + "y": 380 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(outer.vg.vd.volume -> end)[0]", + "src": "outer.vg.vd.volume", + "srcArrow": "none", + "dst": "end", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 134, + "y": 456 + }, + { + "x": 134, + "y": 444.79998779296875 + }, + { + "x": 134, + "y": 452 + }, + { + "x": 134, + "y": 467 + }, + { + "x": 134, + "y": 482 + }, + { + "x": 134, + "y": 502 + }, + { + "x": 134, + "y": 517 + }, + { + "x": 134, + "y": 532 + }, + { + "x": 134, + "y": 602 + }, + { + "x": 134, + "y": 642 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg new file mode 100644 index 000000000..07623dea1 --- /dev/null +++ b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg @@ -0,0 +1,102 @@ +outerstartendvolume groupvolume definitionvolume + + + \ No newline at end of file diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json b/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json new file mode 100644 index 000000000..f9f1eb196 --- /dev/null +++ b/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json @@ -0,0 +1,371 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "outer", + "type": "rectangle", + "pos": { + "x": 12, + "y": 153 + }, + "width": 408, + "height": 396, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "outer", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 63, + "labelHeight": 36, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "outer.vg", + "type": "rectangle", + "pos": { + "x": 62, + "y": 208 + }, + "width": 308, + "height": 286, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume group", + "fontSize": 24, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 140, + "labelHeight": 31, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "outer.vg.vd", + "type": "rectangle", + "pos": { + "x": 112, + "y": 273 + }, + "width": 208, + "height": 176, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": true, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume definition", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 147, + "labelHeight": 26, + "labelPosition": "INSIDE_TOP_CENTER", + "zIndex": 0, + "level": 3 + }, + { + "id": "outer.vg.vd.volume", + "type": "rectangle", + "pos": { + "x": 162, + "y": 333 + }, + "width": 98, + "height": 66, + "opacity": 1, + "strokeDash": 3, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N7", + "stroke": "B2", + "shadow": false, + "3d": false, + "multiple": true, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "volume", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 53, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 4 + }, + { + "id": "start", + "type": "rectangle", + "pos": { + "x": 176, + "y": 12 + }, + "width": 80, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "start", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 35, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "end", + "type": "rectangle", + "pos": { + "x": 180, + "y": 624 + }, + "width": 72, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "end", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 27, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(start -> outer.vg.vd.volume)[0]", + "src": "start", + "srcArrow": "none", + "dst": "outer.vg.vd.volume", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 216, + "y": 78 + }, + { + "x": 216, + "y": 323 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(outer.vg.vd.volume -> end)[0]", + "src": "outer.vg.vd.volume", + "srcArrow": "none", + "dst": "end", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 216, + "y": 399 + }, + { + "x": 216, + "y": 624 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg new file mode 100644 index 000000000..6ac271a10 --- /dev/null +++ b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg @@ -0,0 +1,102 @@ +outerstartendvolume groupvolume definitionvolume + + + \ No newline at end of file