diff --git a/coverage/coverage-summary.json b/coverage/coverage-summary.json
index ea5f58af4..9d5114cee 100644
--- a/coverage/coverage-summary.json
+++ b/coverage/coverage-summary.json
@@ -1,126 +1,61 @@
-{"total": {"lines":{"total":21102,"covered":11078,"skipped":0,"pct":52.49},"statements":{"total":22933,"covered":11987,"skipped":0,"pct":52.26},"functions":{"total":2910,"covered":1698,"skipped":0,"pct":58.35},"branches":{"total":10538,"covered":3917,"skipped":0,"pct":37.17},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/blur-event.js": {"lines":{"total":62,"covered":6,"skipped":0,"pct":9.67},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":62,"covered":6,"skipped":0,"pct":9.67},"branches":{"total":20,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/clear.js": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/coords.js": {"lines":{"total":159,"covered":63,"skipped":0,"pct":39.62},"functions":{"total":11,"covered":7,"skipped":0,"pct":63.63},"statements":{"total":166,"covered":68,"skipped":0,"pct":40.96},"branches":{"total":75,"covered":17,"skipped":0,"pct":22.66}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/copy-elem.js": {"lines":{"total":22,"covered":1,"skipped":0,"pct":4.54},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":1,"skipped":0,"pct":4.54},"branches":{"total":9,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/dataStorage.js": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/draw.js": {"lines":{"total":347,"covered":94,"skipped":0,"pct":27.08},"functions":{"total":55,"covered":18,"skipped":0,"pct":32.72},"statements":{"total":360,"covered":96,"skipped":0,"pct":26.66},"branches":{"total":170,"covered":39,"skipped":0,"pct":22.94}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/elem-get-set.js": {"lines":{"total":490,"covered":125,"skipped":0,"pct":25.51},"functions":{"total":51,"covered":7,"skipped":0,"pct":13.72},"statements":{"total":503,"covered":125,"skipped":0,"pct":24.85},"branches":{"total":253,"covered":14,"skipped":0,"pct":5.53}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/event.js": {"lines":{"total":660,"covered":193,"skipped":0,"pct":29.24},"functions":{"total":14,"covered":10,"skipped":0,"pct":71.42},"statements":{"total":676,"covered":195,"skipped":0,"pct":28.84},"branches":{"total":348,"covered":74,"skipped":0,"pct":21.26}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/history.js": {"lines":{"total":166,"covered":60,"skipped":0,"pct":36.14},"functions":{"total":48,"covered":13,"skipped":0,"pct":27.08},"statements":{"total":173,"covered":61,"skipped":0,"pct":35.26},"branches":{"total":88,"covered":15,"skipped":0,"pct":17.04}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/historyrecording.js": {"lines":{"total":33,"covered":24,"skipped":0,"pct":72.72},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":40,"covered":24,"skipped":0,"pct":60},"branches":{"total":20,"covered":8,"skipped":0,"pct":40}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/json.js": {"lines":{"total":34,"covered":23,"skipped":0,"pct":67.64},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":38,"covered":23,"skipped":0,"pct":60.52},"branches":{"total":20,"covered":13,"skipped":0,"pct":65}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/layer.js": {"lines":{"total":61,"covered":25,"skipped":0,"pct":40.98},"functions":{"total":16,"covered":8,"skipped":0,"pct":50},"statements":{"total":63,"covered":25,"skipped":0,"pct":39.68},"branches":{"total":36,"covered":14,"skipped":0,"pct":38.88}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/math.js": {"lines":{"total":59,"covered":46,"skipped":0,"pct":77.96},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":71,"covered":54,"skipped":0,"pct":76.05},"branches":{"total":40,"covered":25,"skipped":0,"pct":62.5}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/namespaces.js": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/paint.js": {"lines":{"total":39,"covered":12,"skipped":0,"pct":30.76},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":39,"covered":12,"skipped":0,"pct":30.76},"branches":{"total":20,"covered":9,"skipped":0,"pct":45}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/paste-elem.js": {"lines":{"total":49,"covered":5,"skipped":0,"pct":10.2},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":57,"covered":5,"skipped":0,"pct":8.77},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/path-actions.js": {"lines":{"total":579,"covered":232,"skipped":0,"pct":40.06},"functions":{"total":31,"covered":17,"skipped":0,"pct":54.83},"statements":{"total":620,"covered":243,"skipped":0,"pct":39.19},"branches":{"total":266,"covered":109,"skipped":0,"pct":40.97}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/path-method.js": {"lines":{"total":410,"covered":347,"skipped":0,"pct":84.63},"functions":{"total":50,"covered":46,"skipped":0,"pct":92},"statements":{"total":426,"covered":359,"skipped":0,"pct":84.27},"branches":{"total":163,"covered":117,"skipped":0,"pct":71.77}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/path.js": {"lines":{"total":264,"covered":61,"skipped":0,"pct":23.1},"functions":{"total":20,"covered":11,"skipped":0,"pct":55},"statements":{"total":295,"covered":67,"skipped":0,"pct":22.71},"branches":{"total":111,"covered":3,"skipped":0,"pct":2.7}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/recalculate.js": {"lines":{"total":401,"covered":78,"skipped":0,"pct":19.45},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":412,"covered":78,"skipped":0,"pct":18.93},"branches":{"total":250,"covered":52,"skipped":0,"pct":20.8}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/sanitize.js": {"lines":{"total":78,"covered":42,"skipped":0,"pct":53.84},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.66},"statements":{"total":81,"covered":44,"skipped":0,"pct":54.32},"branches":{"total":55,"covered":22,"skipped":0,"pct":40}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/select.js": {"lines":{"total":171,"covered":143,"skipped":0,"pct":83.62},"functions":{"total":15,"covered":15,"skipped":0,"pct":100},"statements":{"total":181,"covered":150,"skipped":0,"pct":82.87},"branches":{"total":50,"covered":32,"skipped":0,"pct":64}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/selected-elem.js": {"lines":{"total":579,"covered":72,"skipped":0,"pct":12.43},"functions":{"total":44,"covered":4,"skipped":0,"pct":9.09},"statements":{"total":615,"covered":72,"skipped":0,"pct":11.7},"branches":{"total":261,"covered":8,"skipped":0,"pct":3.06}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/selection.js": {"lines":{"total":191,"covered":83,"skipped":0,"pct":43.45},"functions":{"total":18,"covered":9,"skipped":0,"pct":50},"statements":{"total":192,"covered":83,"skipped":0,"pct":43.22},"branches":{"total":95,"covered":34,"skipped":0,"pct":35.78}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/svg-exec.js": {"lines":{"total":546,"covered":208,"skipped":0,"pct":38.09},"functions":{"total":46,"covered":13,"skipped":0,"pct":28.26},"statements":{"total":554,"covered":214,"skipped":0,"pct":38.62},"branches":{"total":259,"covered":76,"skipped":0,"pct":29.34}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/svgcanvas.js": {"lines":{"total":672,"covered":489,"skipped":0,"pct":72.76},"functions":{"total":328,"covered":207,"skipped":0,"pct":63.1},"statements":{"total":777,"covered":569,"skipped":0,"pct":73.23},"branches":{"total":112,"covered":39,"skipped":0,"pct":34.82}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/svgroot.js": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/text-actions.js": {"lines":{"total":180,"covered":9,"skipped":0,"pct":5},"functions":{"total":24,"covered":5,"skipped":0,"pct":20.83},"statements":{"total":187,"covered":10,"skipped":0,"pct":5.34},"branches":{"total":71,"covered":2,"skipped":0,"pct":2.81}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/touch.js": {"lines":{"total":19,"covered":6,"skipped":0,"pct":31.57},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":6,"skipped":0,"pct":27.27},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/undo.js": {"lines":{"total":128,"covered":32,"skipped":0,"pct":25},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":133,"covered":32,"skipped":0,"pct":24.06},"branches":{"total":108,"covered":15,"skipped":0,"pct":13.88}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/units.js": {"lines":{"total":72,"covered":36,"skipped":0,"pct":50},"functions":{"total":10,"covered":5,"skipped":0,"pct":50},"statements":{"total":74,"covered":37,"skipped":0,"pct":50},"branches":{"total":28,"covered":6,"skipped":0,"pct":21.42}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/utilities.js": {"lines":{"total":422,"covered":146,"skipped":0,"pct":34.59},"functions":{"total":60,"covered":26,"skipped":0,"pct":43.33},"statements":{"total":443,"covered":150,"skipped":0,"pct":33.86},"branches":{"total":205,"covered":45,"skipped":0,"pct":21.95}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/common/browser.js": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.66},"statements":{"total":30,"covered":27,"skipped":0,"pct":90},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/common/util.js": {"lines":{"total":90,"covered":19,"skipped":0,"pct":21.11},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":92,"covered":20,"skipped":0,"pct":21.73},"branches":{"total":98,"covered":19,"skipped":0,"pct":19.38}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/blur-event.js": {"lines":{"total":62,"covered":51,"skipped":0,"pct":82.25},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":62,"covered":51,"skipped":0,"pct":82.25},"branches":{"total":20,"covered":12,"skipped":0,"pct":60}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/clear.js": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/coords.js": {"lines":{"total":159,"covered":119,"skipped":0,"pct":74.84},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":166,"covered":126,"skipped":0,"pct":75.9},"branches":{"total":75,"covered":44,"skipped":0,"pct":58.66}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/copy-elem.js": {"lines":{"total":22,"covered":16,"skipped":0,"pct":72.72},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":22,"covered":16,"skipped":0,"pct":72.72},"branches":{"total":9,"covered":5,"skipped":0,"pct":55.55}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/dataStorage.js": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/draw.js": {"lines":{"total":348,"covered":107,"skipped":0,"pct":30.74},"functions":{"total":56,"covered":22,"skipped":0,"pct":39.28},"statements":{"total":361,"covered":110,"skipped":0,"pct":30.47},"branches":{"total":170,"covered":49,"skipped":0,"pct":28.82}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/elem-get-set.js": {"lines":{"total":486,"covered":243,"skipped":0,"pct":50},"functions":{"total":78,"covered":46,"skipped":0,"pct":58.97},"statements":{"total":524,"covered":263,"skipped":0,"pct":50.19},"branches":{"total":195,"covered":55,"skipped":0,"pct":28.2}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/event.js": {"lines":{"total":668,"covered":416,"skipped":0,"pct":62.27},"functions":{"total":14,"covered":13,"skipped":0,"pct":92.85},"statements":{"total":684,"covered":421,"skipped":0,"pct":61.54},"branches":{"total":359,"covered":191,"skipped":0,"pct":53.2}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/history.js": {"lines":{"total":166,"covered":134,"skipped":0,"pct":80.72},"functions":{"total":48,"covered":41,"skipped":0,"pct":85.41},"statements":{"total":173,"covered":137,"skipped":0,"pct":79.19},"branches":{"total":88,"covered":53,"skipped":0,"pct":60.22}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/historyrecording.js": {"lines":{"total":33,"covered":24,"skipped":0,"pct":72.72},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":40,"covered":24,"skipped":0,"pct":60},"branches":{"total":20,"covered":8,"skipped":0,"pct":40}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/json.js": {"lines":{"total":34,"covered":32,"skipped":0,"pct":94.11},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":38,"covered":34,"skipped":0,"pct":89.47},"branches":{"total":20,"covered":17,"skipped":0,"pct":85}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/layer.js": {"lines":{"total":61,"covered":25,"skipped":0,"pct":40.98},"functions":{"total":16,"covered":8,"skipped":0,"pct":50},"statements":{"total":63,"covered":25,"skipped":0,"pct":39.68},"branches":{"total":36,"covered":15,"skipped":0,"pct":41.66}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/math.js": {"lines":{"total":78,"covered":62,"skipped":0,"pct":79.48},"functions":{"total":11,"covered":9,"skipped":0,"pct":81.81},"statements":{"total":79,"covered":63,"skipped":0,"pct":79.74},"branches":{"total":46,"covered":39,"skipped":0,"pct":84.78}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/namespaces.js": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/paint.js": {"lines":{"total":39,"covered":20,"skipped":0,"pct":51.28},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":39,"covered":20,"skipped":0,"pct":51.28},"branches":{"total":20,"covered":11,"skipped":0,"pct":55}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/paste-elem.js": {"lines":{"total":49,"covered":44,"skipped":0,"pct":89.79},"functions":{"total":9,"covered":6,"skipped":0,"pct":66.66},"statements":{"total":57,"covered":47,"skipped":0,"pct":82.45},"branches":{"total":22,"covered":11,"skipped":0,"pct":50}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/path-actions.js": {"lines":{"total":579,"covered":259,"skipped":0,"pct":44.73},"functions":{"total":31,"covered":18,"skipped":0,"pct":58.06},"statements":{"total":620,"covered":271,"skipped":0,"pct":43.7},"branches":{"total":266,"covered":120,"skipped":0,"pct":45.11}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/path-method.js": {"lines":{"total":410,"covered":357,"skipped":0,"pct":87.07},"functions":{"total":50,"covered":47,"skipped":0,"pct":94},"statements":{"total":426,"covered":369,"skipped":0,"pct":86.61},"branches":{"total":163,"covered":125,"skipped":0,"pct":76.68}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/path.js": {"lines":{"total":264,"covered":61,"skipped":0,"pct":23.1},"functions":{"total":20,"covered":11,"skipped":0,"pct":55},"statements":{"total":295,"covered":67,"skipped":0,"pct":22.71},"branches":{"total":111,"covered":3,"skipped":0,"pct":2.7}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/recalculate.js": {"lines":{"total":409,"covered":174,"skipped":0,"pct":42.54},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":420,"covered":177,"skipped":0,"pct":42.14},"branches":{"total":258,"covered":111,"skipped":0,"pct":43.02}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/sanitize.js": {"lines":{"total":78,"covered":42,"skipped":0,"pct":53.84},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.66},"statements":{"total":81,"covered":44,"skipped":0,"pct":54.32},"branches":{"total":55,"covered":22,"skipped":0,"pct":40}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/select.js": {"lines":{"total":180,"covered":177,"skipped":0,"pct":98.33},"functions":{"total":15,"covered":15,"skipped":0,"pct":100},"statements":{"total":190,"covered":184,"skipped":0,"pct":96.84},"branches":{"total":61,"covered":46,"skipped":0,"pct":75.4}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/selected-elem.js": {"lines":{"total":579,"covered":207,"skipped":0,"pct":35.75},"functions":{"total":44,"covered":15,"skipped":0,"pct":34.09},"statements":{"total":615,"covered":209,"skipped":0,"pct":33.98},"branches":{"total":263,"covered":47,"skipped":0,"pct":17.87}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/selection.js": {"lines":{"total":191,"covered":149,"skipped":0,"pct":78.01},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":192,"covered":150,"skipped":0,"pct":78.12},"branches":{"total":97,"covered":57,"skipped":0,"pct":58.76}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/svg-exec.js": {"lines":{"total":547,"covered":250,"skipped":0,"pct":45.7},"functions":{"total":46,"covered":17,"skipped":0,"pct":36.95},"statements":{"total":555,"covered":256,"skipped":0,"pct":46.12},"branches":{"total":261,"covered":98,"skipped":0,"pct":37.54}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/svgroot.js": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/text-actions.js": {"lines":{"total":180,"covered":85,"skipped":0,"pct":47.22},"functions":{"total":24,"covered":12,"skipped":0,"pct":50},"statements":{"total":187,"covered":87,"skipped":0,"pct":46.52},"branches":{"total":71,"covered":27,"skipped":0,"pct":38.02}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/touch.js": {"lines":{"total":19,"covered":6,"skipped":0,"pct":31.57},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":6,"skipped":0,"pct":27.27},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/undo.js": {"lines":{"total":128,"covered":96,"skipped":0,"pct":75},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":133,"covered":97,"skipped":0,"pct":72.93},"branches":{"total":110,"covered":77,"skipped":0,"pct":70}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/units.js": {"lines":{"total":72,"covered":44,"skipped":0,"pct":61.11},"functions":{"total":10,"covered":6,"skipped":0,"pct":60},"statements":{"total":74,"covered":45,"skipped":0,"pct":60.81},"branches":{"total":28,"covered":11,"skipped":0,"pct":39.28}}
-,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/core/utilities.js": {"lines":{"total":440,"covered":248,"skipped":0,"pct":56.36},"functions":{"total":60,"covered":41,"skipped":0,"pct":68.33},"statements":{"total":450,"covered":254,"skipped":0,"pct":56.44},"branches":{"total":215,"covered":91,"skipped":0,"pct":42.32}}
-,"/Users/jean-francoishenon/Work/svgedit/src/common/browser.js": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":30,"covered":25,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/common/util.js": {"lines":{"total":90,"covered":0,"skipped":0,"pct":0},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":92,"covered":0,"skipped":0,"pct":0},"branches":{"total":98,"covered":0,"skipped":0,"pct":0}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/ConfigObj.js": {"lines":{"total":101,"covered":43,"skipped":0,"pct":42.57},"functions":{"total":14,"covered":10,"skipped":0,"pct":71.42},"statements":{"total":102,"covered":43,"skipped":0,"pct":42.15},"branches":{"total":96,"covered":29,"skipped":0,"pct":30.2}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/Editor.js": {"lines":{"total":693,"covered":409,"skipped":0,"pct":59.01},"functions":{"total":205,"covered":119,"skipped":0,"pct":58.04},"statements":{"total":818,"covered":469,"skipped":0,"pct":57.33},"branches":{"total":425,"covered":146,"skipped":0,"pct":34.35}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/EditorStartup.js": {"lines":{"total":518,"covered":429,"skipped":0,"pct":82.81},"functions":{"total":106,"covered":94,"skipped":0,"pct":88.67},"statements":{"total":702,"covered":552,"skipped":0,"pct":78.63},"branches":{"total":261,"covered":88,"skipped":0,"pct":33.71}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/MainMenu.js": {"lines":{"total":145,"covered":60,"skipped":0,"pct":41.37},"functions":{"total":23,"covered":10,"skipped":0,"pct":43.47},"statements":{"total":167,"covered":63,"skipped":0,"pct":37.72},"branches":{"total":70,"covered":7,"skipped":0,"pct":10}}
+{"total": {"lines":{"total":6677,"covered":3923,"skipped":0,"pct":58.75},"statements":{"total":6981,"covered":4034,"skipped":0,"pct":57.78},"functions":{"total":1001,"covered":524,"skipped":0,"pct":52.34},"branches":{"total":3421,"covered":1412,"skipped":0,"pct":41.27},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/common/browser.js": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":30,"covered":25,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
+,"/Users/jean-francoishenon/Work/svgedit/packages/svgcanvas/common/util.js": {"lines":{"total":90,"covered":8,"skipped":0,"pct":8.88},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.85},"statements":{"total":92,"covered":10,"skipped":0,"pct":10.86},"branches":{"total":98,"covered":10,"skipped":0,"pct":10.2}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/ConfigObj.js": {"lines":{"total":101,"covered":39,"skipped":0,"pct":38.61},"functions":{"total":14,"covered":9,"skipped":0,"pct":64.28},"statements":{"total":102,"covered":39,"skipped":0,"pct":38.23},"branches":{"total":96,"covered":25,"skipped":0,"pct":26.04}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/Editor.js": {"lines":{"total":414,"covered":192,"skipped":0,"pct":46.37},"functions":{"total":103,"covered":31,"skipped":0,"pct":30.09},"statements":{"total":420,"covered":193,"skipped":0,"pct":45.95},"branches":{"total":213,"covered":75,"skipped":0,"pct":35.21}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/EditorStartup.js": {"lines":{"total":383,"covered":237,"skipped":0,"pct":61.87},"functions":{"total":57,"covered":31,"skipped":0,"pct":54.38},"statements":{"total":395,"covered":246,"skipped":0,"pct":62.27},"branches":{"total":147,"covered":51,"skipped":0,"pct":34.69}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/MainMenu.js": {"lines":{"total":101,"covered":44,"skipped":0,"pct":43.56},"functions":{"total":14,"covered":7,"skipped":0,"pct":50},"statements":{"total":101,"covered":44,"skipped":0,"pct":43.56},"branches":{"total":44,"covered":7,"skipped":0,"pct":15.9}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/Rulers.js": {"lines":{"total":119,"covered":93,"skipped":0,"pct":78.15},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":124,"covered":98,"skipped":0,"pct":79.03},"branches":{"total":43,"covered":32,"skipped":0,"pct":74.41}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/browser-not-supported.js": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/contextmenu.js": {"lines":{"total":22,"covered":9,"skipped":0,"pct":40.9},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":23,"covered":9,"skipped":0,"pct":39.13},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/locale.js": {"lines":{"total":14,"covered":9,"skipped":0,"pct":64.28},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":14,"covered":9,"skipped":0,"pct":64.28},"branches":{"total":10,"covered":3,"skipped":0,"pct":30}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/PaintBox.js": {"lines":{"total":64,"covered":51,"skipped":0,"pct":79.68},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":67,"covered":53,"skipped":0,"pct":79.1},"branches":{"total":33,"covered":21,"skipped":0,"pct":63.63}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/PaintBox.js": {"lines":{"total":64,"covered":51,"skipped":0,"pct":79.68},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":67,"covered":53,"skipped":0,"pct":79.1},"branches":{"total":33,"covered":20,"skipped":0,"pct":60.6}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/index.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seButton.js": {"lines":{"total":91,"covered":74,"skipped":0,"pct":81.31},"functions":{"total":30,"covered":20,"skipped":0,"pct":66.66},"statements":{"total":119,"covered":98,"skipped":0,"pct":82.35},"branches":{"total":66,"covered":46,"skipped":0,"pct":69.69}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seButton.js": {"lines":{"total":57,"covered":41,"skipped":0,"pct":71.92},"functions":{"total":15,"covered":8,"skipped":0,"pct":53.33},"statements":{"total":60,"covered":43,"skipped":0,"pct":71.66},"branches":{"total":33,"covered":23,"skipped":0,"pct":69.69}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seColorPicker.js": {"lines":{"total":50,"covered":41,"skipped":0,"pct":82},"functions":{"total":16,"covered":11,"skipped":0,"pct":68.75},"statements":{"total":51,"covered":41,"skipped":0,"pct":80.39},"branches":{"total":11,"covered":8,"skipped":0,"pct":72.72}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seExplorerButton.js": {"lines":{"total":144,"covered":113,"skipped":0,"pct":78.47},"functions":{"total":35,"covered":21,"skipped":0,"pct":60},"statements":{"total":183,"covered":146,"skipped":0,"pct":79.78},"branches":{"total":58,"covered":33,"skipped":0,"pct":56.89}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seFlyingButton.js": {"lines":{"total":126,"covered":78,"skipped":0,"pct":61.9},"functions":{"total":29,"covered":18,"skipped":0,"pct":62.06},"statements":{"total":142,"covered":89,"skipped":0,"pct":62.67},"branches":{"total":60,"covered":24,"skipped":0,"pct":40}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seExplorerButton.js": {"lines":{"total":99,"covered":76,"skipped":0,"pct":76.76},"functions":{"total":18,"covered":11,"skipped":0,"pct":61.11},"statements":{"total":102,"covered":76,"skipped":0,"pct":74.5},"branches":{"total":30,"covered":17,"skipped":0,"pct":56.66}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seFlyingButton.js": {"lines":{"total":77,"covered":50,"skipped":0,"pct":64.93},"functions":{"total":15,"covered":11,"skipped":0,"pct":73.33},"statements":{"total":78,"covered":51,"skipped":0,"pct":65.38},"branches":{"total":31,"covered":13,"skipped":0,"pct":41.93}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seInput.js": {"lines":{"total":46,"covered":31,"skipped":0,"pct":67.39},"functions":{"total":16,"covered":8,"skipped":0,"pct":50},"statements":{"total":47,"covered":31,"skipped":0,"pct":65.95},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seList.js": {"lines":{"total":87,"covered":59,"skipped":0,"pct":67.81},"functions":{"total":21,"covered":10,"skipped":0,"pct":47.61},"statements":{"total":89,"covered":61,"skipped":0,"pct":68.53},"branches":{"total":22,"covered":12,"skipped":0,"pct":54.54}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seListItem.js": {"lines":{"total":39,"covered":26,"skipped":0,"pct":66.66},"functions":{"total":12,"covered":4,"skipped":0,"pct":33.33},"statements":{"total":40,"covered":27,"skipped":0,"pct":67.5},"branches":{"total":10,"covered":8,"skipped":0,"pct":80}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seMenu.js": {"lines":{"total":26,"covered":20,"skipped":0,"pct":76.92},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.85},"statements":{"total":27,"covered":20,"skipped":0,"pct":74.07},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seMenuItem.js": {"lines":{"total":37,"covered":27,"skipped":0,"pct":72.97},"functions":{"total":9,"covered":5,"skipped":0,"pct":55.55},"statements":{"total":41,"covered":28,"skipped":0,"pct":68.29},"branches":{"total":21,"covered":10,"skipped":0,"pct":47.61}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/sePalette.js": {"lines":{"total":84,"covered":75,"skipped":0,"pct":89.28},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":86,"covered":77,"skipped":0,"pct":89.53},"branches":{"total":28,"covered":13,"skipped":0,"pct":46.42}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seMenuItem.js": {"lines":{"total":37,"covered":26,"skipped":0,"pct":70.27},"functions":{"total":9,"covered":5,"skipped":0,"pct":55.55},"statements":{"total":40,"covered":27,"skipped":0,"pct":67.5},"branches":{"total":21,"covered":8,"skipped":0,"pct":38.09}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/sePalette.js": {"lines":{"total":53,"covered":44,"skipped":0,"pct":83.01},"functions":{"total":11,"covered":9,"skipped":0,"pct":81.81},"statements":{"total":53,"covered":44,"skipped":0,"pct":83.01},"branches":{"total":15,"covered":10,"skipped":0,"pct":66.66}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/sePlainBorderButton.js": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/sePlainMenuButton.js": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seSelect.js": {"lines":{"total":56,"covered":45,"skipped":0,"pct":80.35},"functions":{"total":17,"covered":9,"skipped":0,"pct":52.94},"statements":{"total":59,"covered":47,"skipped":0,"pct":79.66},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seSpinInput.js": {"lines":{"total":65,"covered":55,"skipped":0,"pct":84.61},"functions":{"total":18,"covered":10,"skipped":0,"pct":55.55},"statements":{"total":66,"covered":55,"skipped":0,"pct":83.33},"branches":{"total":17,"covered":13,"skipped":0,"pct":76.47}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seText.js": {"lines":{"total":28,"covered":18,"skipped":0,"pct":64.28},"functions":{"total":10,"covered":4,"skipped":0,"pct":40},"statements":{"total":29,"covered":18,"skipped":0,"pct":62.06},"branches":{"total":8,"covered":5,"skipped":0,"pct":62.5}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seZoom.js": {"lines":{"total":172,"covered":140,"skipped":0,"pct":81.39},"functions":{"total":56,"covered":45,"skipped":0,"pct":80.35},"statements":{"total":210,"covered":172,"skipped":0,"pct":81.9},"branches":{"total":72,"covered":33,"skipped":0,"pct":45.83}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/seZoom.js": {"lines":{"total":102,"covered":93,"skipped":0,"pct":91.17},"functions":{"total":28,"covered":24,"skipped":0,"pct":85.71},"statements":{"total":107,"covered":97,"skipped":0,"pct":90.65},"branches":{"total":36,"covered":21,"skipped":0,"pct":58.33}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/jgraduate/ColorValuePicker.js": {"lines":{"total":231,"covered":54,"skipped":0,"pct":23.37},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":249,"covered":63,"skipped":0,"pct":25.3},"branches":{"total":157,"covered":34,"skipped":0,"pct":21.65}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/jgraduate/Slider.js": {"lines":{"total":156,"covered":91,"skipped":0,"pct":58.33},"functions":{"total":17,"covered":9,"skipped":0,"pct":52.94},"statements":{"total":176,"covered":96,"skipped":0,"pct":54.54},"branches":{"total":186,"covered":97,"skipped":0,"pct":52.15}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/jgraduate/jQuery.jGraduate.js": {"lines":{"total":580,"covered":275,"skipped":0,"pct":47.41},"functions":{"total":44,"covered":14,"skipped":0,"pct":31.81},"statements":{"total":602,"covered":282,"skipped":0,"pct":46.84},"branches":{"total":278,"covered":100,"skipped":0,"pct":35.97}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/components/jgraduate/jQuery.jPicker.js": {"lines":{"total":840,"covered":449,"skipped":0,"pct":53.45},"functions":{"total":60,"covered":39,"skipped":0,"pct":65},"statements":{"total":926,"covered":475,"skipped":0,"pct":51.29},"branches":{"total":777,"covered":327,"skipped":0,"pct":42.08}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/SePlainAlertDialog.js": {"lines":{"total":13,"covered":3,"skipped":0,"pct":23.07},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":3,"skipped":0,"pct":23.07},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/SePlainAlertDialog.js": {"lines":{"total":12,"covered":2,"skipped":0,"pct":16.66},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":2,"skipped":0,"pct":16.66},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/cmenuDialog.js": {"lines":{"total":120,"covered":112,"skipped":0,"pct":93.33},"functions":{"total":28,"covered":16,"skipped":0,"pct":57.14},"statements":{"total":131,"covered":117,"skipped":0,"pct":89.31},"branches":{"total":23,"covered":19,"skipped":0,"pct":82.6}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/cmenuLayersDialog.js": {"lines":{"total":61,"covered":49,"skipped":0,"pct":80.32},"functions":{"total":16,"covered":6,"skipped":0,"pct":37.5},"statements":{"total":66,"covered":49,"skipped":0,"pct":74.24},"branches":{"total":18,"covered":13,"skipped":0,"pct":72.22}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/editorPreferencesDialog.js": {"lines":{"total":157,"covered":125,"skipped":0,"pct":79.61},"functions":{"total":30,"covered":9,"skipped":0,"pct":30},"statements":{"total":159,"covered":126,"skipped":0,"pct":79.24},"branches":{"total":46,"covered":35,"skipped":0,"pct":76.08}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/exportDialog.js": {"lines":{"total":66,"covered":47,"skipped":0,"pct":71.21},"functions":{"total":25,"covered":12,"skipped":0,"pct":48},"statements":{"total":88,"covered":59,"skipped":0,"pct":67.04},"branches":{"total":16,"covered":6,"skipped":0,"pct":37.5}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/imagePropertiesDialog.js": {"lines":{"total":224,"covered":172,"skipped":0,"pct":76.78},"functions":{"total":40,"covered":16,"skipped":0,"pct":40},"statements":{"total":322,"covered":226,"skipped":0,"pct":70.18},"branches":{"total":106,"covered":62,"skipped":0,"pct":58.49}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/exportDialog.js": {"lines":{"total":52,"covered":36,"skipped":0,"pct":69.23},"functions":{"total":14,"covered":5,"skipped":0,"pct":35.71},"statements":{"total":55,"covered":36,"skipped":0,"pct":65.45},"branches":{"total":11,"covered":5,"skipped":0,"pct":45.45}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/imagePropertiesDialog.js": {"lines":{"total":161,"covered":90,"skipped":0,"pct":55.9},"functions":{"total":20,"covered":5,"skipped":0,"pct":25},"statements":{"total":162,"covered":90,"skipped":0,"pct":55.55},"branches":{"total":53,"covered":23,"skipped":0,"pct":43.39}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/index.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/seAlertDialog.js": {"lines":{"total":6,"covered":2,"skipped":0,"pct":33.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":2,"skipped":0,"pct":33.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/seConfirmDialog.js": {"lines":{"total":8,"covered":3,"skipped":0,"pct":37.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":3,"skipped":0,"pct":33.33},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/seConfirmDialog.js": {"lines":{"total":8,"covered":2,"skipped":0,"pct":25},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":2,"skipped":0,"pct":25},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/sePromptDialog.js": {"lines":{"total":24,"covered":5,"skipped":0,"pct":20.83},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":24,"covered":5,"skipped":0,"pct":20.83},"branches":{"total":9,"covered":0,"skipped":0,"pct":0}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/seSelectDialog.js": {"lines":{"total":8,"covered":2,"skipped":0,"pct":25},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":2,"skipped":0,"pct":25},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/svgSourceDialog.js": {"lines":{"total":74,"covered":56,"skipped":0,"pct":75.67},"functions":{"total":17,"covered":6,"skipped":0,"pct":35.29},"statements":{"total":75,"covered":57,"skipped":0,"pct":76},"branches":{"total":17,"covered":14,"skipped":0,"pct":82.35}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/se-elix/define/NumberSpinBox.js": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/se-elix/src/base/NumberSpinBox.js": {"lines":{"total":54,"covered":52,"skipped":0,"pct":96.29},"functions":{"total":13,"covered":11,"skipped":0,"pct":84.61},"statements":{"total":54,"covered":52,"skipped":0,"pct":96.29},"branches":{"total":53,"covered":47,"skipped":0,"pct":88.67}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/se-elix/src/base/NumberSpinBox.js": {"lines":{"total":54,"covered":51,"skipped":0,"pct":94.44},"functions":{"total":13,"covered":11,"skipped":0,"pct":84.61},"statements":{"total":54,"covered":51,"skipped":0,"pct":94.44},"branches":{"total":53,"covered":46,"skipped":0,"pct":86.79}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/dialogs/se-elix/src/plain/PlainNumberSpinBox.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-connector/ext-connector.js": {"lines":{"total":287,"covered":84,"skipped":0,"pct":29.26},"functions":{"total":26,"covered":16,"skipped":0,"pct":61.53},"statements":{"total":295,"covered":87,"skipped":0,"pct":29.49},"branches":{"total":140,"covered":21,"skipped":0,"pct":15}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-connector/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-eyedropper/ext-eyedropper.js": {"lines":{"total":118,"covered":85,"skipped":0,"pct":72.03},"functions":{"total":22,"covered":20,"skipped":0,"pct":90.9},"statements":{"total":166,"covered":120,"skipped":0,"pct":72.28},"branches":{"total":104,"covered":41,"skipped":0,"pct":39.42}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-eyedropper/ext-eyedropper.js": {"lines":{"total":99,"covered":57,"skipped":0,"pct":57.57},"functions":{"total":16,"covered":11,"skipped":0,"pct":68.75},"statements":{"total":109,"covered":58,"skipped":0,"pct":53.21},"branches":{"total":65,"covered":19,"skipped":0,"pct":29.23}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-eyedropper/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-grid/ext-grid.js": {"lines":{"total":88,"covered":43,"skipped":0,"pct":48.86},"functions":{"total":8,"covered":4,"skipped":0,"pct":50},"statements":{"total":90,"covered":43,"skipped":0,"pct":47.77},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-grid/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-markers/ext-markers.js": {"lines":{"total":149,"covered":46,"skipped":0,"pct":30.87},"functions":{"total":21,"covered":12,"skipped":0,"pct":57.14},"statements":{"total":164,"covered":48,"skipped":0,"pct":29.26},"branches":{"total":80,"covered":22,"skipped":0,"pct":27.5}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-opensave/ext-opensave.js": {"lines":{"total":169,"covered":73,"skipped":0,"pct":43.19},"functions":{"total":25,"covered":16,"skipped":0,"pct":64},"statements":{"total":255,"covered":96,"skipped":0,"pct":37.64},"branches":{"total":58,"covered":0,"skipped":0,"pct":0}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-opensave/ext-opensave.js": {"lines":{"total":136,"covered":36,"skipped":0,"pct":26.47},"functions":{"total":13,"covered":3,"skipped":0,"pct":23.07},"statements":{"total":141,"covered":36,"skipped":0,"pct":25.53},"branches":{"total":32,"covered":0,"skipped":0,"pct":0}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-opensave/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-panning/ext-panning.js": {"lines":{"total":30,"covered":22,"skipped":0,"pct":73.33},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":31,"covered":23,"skipped":0,"pct":74.19},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-panning/ext-panning.js": {"lines":{"total":30,"covered":22,"skipped":0,"pct":73.33},"functions":{"total":7,"covered":6,"skipped":0,"pct":85.71},"statements":{"total":30,"covered":22,"skipped":0,"pct":73.33},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-panning/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-polystar/ext-polystar.js": {"lines":{"total":247,"covered":232,"skipped":0,"pct":93.92},"functions":{"total":18,"covered":16,"skipped":0,"pct":88.88},"statements":{"total":256,"covered":241,"skipped":0,"pct":94.14},"branches":{"total":62,"covered":39,"skipped":0,"pct":62.9}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-polystar/locale/en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
@@ -129,8 +64,8 @@
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-storage/ext-storage.js": {"lines":{"total":91,"covered":37,"skipped":0,"pct":40.65},"functions":{"total":12,"covered":5,"skipped":0,"pct":41.66},"statements":{"total":91,"covered":37,"skipped":0,"pct":40.65},"branches":{"total":68,"covered":16,"skipped":0,"pct":23.52}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/extensions/ext-storage/storageDialog.js": {"lines":{"total":60,"covered":56,"skipped":0,"pct":93.33},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":62,"covered":57,"skipped":0,"pct":91.93},"branches":{"total":15,"covered":13,"skipped":0,"pct":86.66}}
,"/Users/jean-francoishenon/Work/svgedit/src/editor/locale/lang.en.js": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/BottomPanel.js": {"lines":{"total":123,"covered":94,"skipped":0,"pct":76.42},"functions":{"total":41,"covered":31,"skipped":0,"pct":75.6},"statements":{"total":149,"covered":114,"skipped":0,"pct":76.51},"branches":{"total":60,"covered":24,"skipped":0,"pct":40}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/LayersPanel.js": {"lines":{"total":174,"covered":95,"skipped":0,"pct":54.59},"functions":{"total":35,"covered":16,"skipped":0,"pct":45.71},"statements":{"total":204,"covered":117,"skipped":0,"pct":57.35},"branches":{"total":52,"covered":8,"skipped":0,"pct":15.38}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/LeftPanel.js": {"lines":{"total":58,"covered":47,"skipped":0,"pct":81.03},"functions":{"total":20,"covered":15,"skipped":0,"pct":75},"statements":{"total":59,"covered":47,"skipped":0,"pct":79.66},"branches":{"total":32,"covered":12,"skipped":0,"pct":37.5}}
-,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/TopPanel.js": {"lines":{"total":591,"covered":435,"skipped":0,"pct":73.6},"functions":{"total":136,"covered":95,"skipped":0,"pct":69.85},"statements":{"total":733,"covered":543,"skipped":0,"pct":74.07},"branches":{"total":356,"covered":229,"skipped":0,"pct":64.32}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/BottomPanel.js": {"lines":{"total":77,"covered":61,"skipped":0,"pct":79.22},"functions":{"total":22,"covered":14,"skipped":0,"pct":63.63},"statements":{"total":77,"covered":61,"skipped":0,"pct":79.22},"branches":{"total":30,"covered":16,"skipped":0,"pct":53.33}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/LayersPanel.js": {"lines":{"total":162,"covered":75,"skipped":0,"pct":46.29},"functions":{"total":27,"covered":6,"skipped":0,"pct":22.22},"statements":{"total":168,"covered":76,"skipped":0,"pct":45.23},"branches":{"total":46,"covered":6,"skipped":0,"pct":13.04}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/LeftPanel.js": {"lines":{"total":57,"covered":46,"skipped":0,"pct":80.7},"functions":{"total":20,"covered":15,"skipped":0,"pct":75},"statements":{"total":58,"covered":46,"skipped":0,"pct":79.31},"branches":{"total":32,"covered":12,"skipped":0,"pct":37.5}}
+,"/Users/jean-francoishenon/Work/svgedit/src/editor/panels/TopPanel.js": {"lines":{"total":409,"covered":313,"skipped":0,"pct":76.52},"functions":{"total":76,"covered":52,"skipped":0,"pct":68.42},"statements":{"total":421,"covered":316,"skipped":0,"pct":75.05},"branches":{"total":209,"covered":127,"skipped":0,"pct":60.76}}
}
diff --git a/cypress/__svgSnapshots__/scenario6-check tool_polygon_align_to_page.svg b/cypress/__svgSnapshots__/scenario6-check tool_polygon_align_to_page.svg
index 9ad2cee9b..b37707179 100644
--- a/cypress/__svgSnapshots__/scenario6-check tool_polygon_align_to_page.svg
+++ b/cypress/__svgSnapshots__/scenario6-check tool_polygon_align_to_page.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario6-check tool_polygon_bring_to_back.svg b/cypress/__svgSnapshots__/scenario6-check tool_polygon_bring_to_back.svg
index c3cca2819..ccfa1ed18 100644
--- a/cypress/__svgSnapshots__/scenario6-check tool_polygon_bring_to_back.svg
+++ b/cypress/__svgSnapshots__/scenario6-check tool_polygon_bring_to_back.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stoke_fill_color.svg b/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stoke_fill_color.svg
index 2301417e7..9eb31f4b0 100644
--- a/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stoke_fill_color.svg
+++ b/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stoke_fill_color.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stroke_width.svg b/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stroke_width.svg
index ecd4dd638..a119107d0 100644
--- a/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stroke_width.svg
+++ b/cypress/__svgSnapshots__/scenario6-check tool_polygon_change_stroke_width.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario6-check tool_polygon_clone.svg b/cypress/__svgSnapshots__/scenario6-check tool_polygon_clone.svg
index ba6899462..682361755 100644
--- a/cypress/__svgSnapshots__/scenario6-check tool_polygon_clone.svg
+++ b/cypress/__svgSnapshots__/scenario6-check tool_polygon_clone.svg
@@ -2,6 +2,6 @@
Layer 1
-
+
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario7-check tool_star_align_to_page.svg b/cypress/__svgSnapshots__/scenario7-check tool_star_align_to_page.svg
index e43174625..13463a506 100644
--- a/cypress/__svgSnapshots__/scenario7-check tool_star_align_to_page.svg
+++ b/cypress/__svgSnapshots__/scenario7-check tool_star_align_to_page.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario7-check tool_star_bring_to_back.svg b/cypress/__svgSnapshots__/scenario7-check tool_star_bring_to_back.svg
index 416165a23..2e6cf0a5e 100644
--- a/cypress/__svgSnapshots__/scenario7-check tool_star_bring_to_back.svg
+++ b/cypress/__svgSnapshots__/scenario7-check tool_star_bring_to_back.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario7-check tool_star_change_stoke_fill_color.svg b/cypress/__svgSnapshots__/scenario7-check tool_star_change_stoke_fill_color.svg
index cc488d112..b90da6f7e 100644
--- a/cypress/__svgSnapshots__/scenario7-check tool_star_change_stoke_fill_color.svg
+++ b/cypress/__svgSnapshots__/scenario7-check tool_star_change_stoke_fill_color.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario7-check tool_star_change_stroke_width.svg b/cypress/__svgSnapshots__/scenario7-check tool_star_change_stroke_width.svg
index 774fc2cc7..77d77ab2b 100644
--- a/cypress/__svgSnapshots__/scenario7-check tool_star_change_stroke_width.svg
+++ b/cypress/__svgSnapshots__/scenario7-check tool_star_change_stroke_width.svg
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/cypress/__svgSnapshots__/scenario7-check tool_star_clone.svg b/cypress/__svgSnapshots__/scenario7-check tool_star_clone.svg
index f029cdebe..d6a4924be 100644
--- a/cypress/__svgSnapshots__/scenario7-check tool_star_clone.svg
+++ b/cypress/__svgSnapshots__/scenario7-check tool_star_clone.svg
@@ -2,6 +2,6 @@
Layer 1
-
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index b95c1c4f1..09be349bb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,10 +15,10 @@
"dependencies": {
"@svgedit/svgcanvas": "7.2.3",
"browser-fs-access": "0.35.0",
- "core-js": "3.38.0",
+ "core-js": "3.38.1",
"elix": "15.0.1",
"html2canvas": "1.4.1",
- "i18next": "23.13.0",
+ "i18next": "23.15.1",
"jspdf": "2.5.1",
"pathseg": "1.2.1",
"regenerator-runtime": "0.14.1",
@@ -27,10 +27,10 @@
},
"devDependencies": {
"@babel/core": "7.25.2",
- "@babel/preset-env": "7.25.3",
+ "@babel/preset-env": "7.25.4",
"@babel/register": "7.24.6",
- "@babel/runtime-corejs3": "7.25.0",
- "@cypress/code-coverage": "3.12.45",
+ "@babel/runtime-corejs3": "7.25.6",
+ "@cypress/code-coverage": "3.12.48",
"@rollup/plugin-babel": "6.0.4",
"@rollup/plugin-commonjs": "^26",
"@rollup/plugin-dynamic-import-vars": "2.1.2",
@@ -42,11 +42,11 @@
"@web/dev-server-rollup": "0.6.4",
"babel-plugin-istanbul": "7.0.0",
"babel-plugin-transform-object-rest-spread": "7.0.0-beta.3",
- "core-js-bundle": "3.38.0",
+ "core-js-bundle": "3.38.1",
"cp-cli": "2.0.0",
- "cypress": "13.13.3",
+ "cypress": "13.14.2",
"cypress-multi-reporters": "1.6.4",
- "jamilih": "0.59.2",
+ "jamilih": "0.60.0",
"jsdoc": "4.0.3",
"node-static": "0.7.11",
"npm-run-all": "4.1.5",
@@ -58,20 +58,20 @@
"remark-cli": "12.0.1",
"remark-lint-ordered-list-marker-value": "4.0.0",
"rimraf": "6.0.1",
- "rollup": "4.21.0",
+ "rollup": "4.21.3",
"rollup-plugin-copy": "3.5.0",
"rollup-plugin-filesize": "10.0.0",
"rollup-plugin-html": "0.2.1",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-re": "1.0.7",
- "standard": "17.1.0",
- "start-server-and-test": "2.0.5"
+ "standard": "17.1.2",
+ "start-server-and-test": "2.0.8"
},
"engines": {
"node": ">=20"
},
"optionalDependencies": {
- "@rollup/rollup-linux-x64-gnu": "4.21.0"
+ "@rollup/rollup-linux-x64-gnu": "4.21.3"
}
},
"node_modules/@ampproject/remapping": {
@@ -99,7 +99,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.25.2",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz",
+ "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -149,11 +151,13 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.25.0",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz",
+ "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.25.0",
+ "@babel/types": "^7.25.6",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1"
@@ -209,7 +213,9 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.25.0",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz",
+ "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -218,7 +224,7 @@
"@babel/helper-optimise-call-expression": "^7.24.7",
"@babel/helper-replace-supers": "^7.25.0",
"@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/traverse": "^7.25.0",
+ "@babel/traverse": "^7.25.4",
"semver": "^6.3.1"
},
"engines": {
@@ -455,11 +461,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.25.3",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz",
+ "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.25.2"
+ "@babel/types": "^7.25.6"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -555,6 +563,8 @@
},
"node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -801,14 +811,16 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.25.0",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz",
+ "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.8",
"@babel/helper-remap-async-to-generator": "^7.25.0",
"@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/traverse": "^7.25.0"
+ "@babel/traverse": "^7.25.4"
},
"engines": {
"node": ">=6.9.0"
@@ -862,12 +874,14 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.24.7",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz",
+ "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.4",
+ "@babel/helper-plugin-utils": "^7.24.8"
},
"engines": {
"node": ">=6.9.0"
@@ -893,15 +907,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.25.0",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz",
+ "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-compilation-targets": "^7.24.8",
+ "@babel/helper-compilation-targets": "^7.25.2",
"@babel/helper-plugin-utils": "^7.24.8",
"@babel/helper-replace-supers": "^7.25.0",
- "@babel/traverse": "^7.25.0",
+ "@babel/traverse": "^7.25.4",
"globals": "^11.1.0"
},
"engines": {
@@ -1318,12 +1334,14 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.24.7",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz",
+ "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.4",
+ "@babel/helper-plugin-utils": "^7.24.8"
},
"engines": {
"node": ">=6.9.0"
@@ -1577,12 +1595,14 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.24.7",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz",
+ "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.2",
+ "@babel/helper-plugin-utils": "^7.24.8"
},
"engines": {
"node": ">=6.9.0"
@@ -1592,11 +1612,13 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.25.3",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz",
+ "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.25.2",
+ "@babel/compat-data": "^7.25.4",
"@babel/helper-compilation-targets": "^7.25.2",
"@babel/helper-plugin-utils": "^7.24.8",
"@babel/helper-validator-option": "^7.24.8",
@@ -1625,13 +1647,13 @@
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
"@babel/plugin-transform-arrow-functions": "^7.24.7",
- "@babel/plugin-transform-async-generator-functions": "^7.25.0",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.4",
"@babel/plugin-transform-async-to-generator": "^7.24.7",
"@babel/plugin-transform-block-scoped-functions": "^7.24.7",
"@babel/plugin-transform-block-scoping": "^7.25.0",
- "@babel/plugin-transform-class-properties": "^7.24.7",
+ "@babel/plugin-transform-class-properties": "^7.25.4",
"@babel/plugin-transform-class-static-block": "^7.24.7",
- "@babel/plugin-transform-classes": "^7.25.0",
+ "@babel/plugin-transform-classes": "^7.25.4",
"@babel/plugin-transform-computed-properties": "^7.24.7",
"@babel/plugin-transform-destructuring": "^7.24.8",
"@babel/plugin-transform-dotall-regex": "^7.24.7",
@@ -1659,7 +1681,7 @@
"@babel/plugin-transform-optional-catch-binding": "^7.24.7",
"@babel/plugin-transform-optional-chaining": "^7.24.8",
"@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
+ "@babel/plugin-transform-private-methods": "^7.25.4",
"@babel/plugin-transform-private-property-in-object": "^7.24.7",
"@babel/plugin-transform-property-literals": "^7.24.7",
"@babel/plugin-transform-regenerator": "^7.24.7",
@@ -1672,10 +1694,10 @@
"@babel/plugin-transform-unicode-escapes": "^7.24.7",
"@babel/plugin-transform-unicode-property-regex": "^7.24.7",
"@babel/plugin-transform-unicode-regex": "^7.24.7",
- "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.4",
"@babel/preset-modules": "0.1.6-no-external-plugins",
"babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.4",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
"core-js-compat": "^3.37.1",
"semver": "^6.3.1"
@@ -1763,7 +1785,9 @@
}
},
"node_modules/@babel/runtime-corejs3": {
- "version": "7.25.0",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.6.tgz",
+ "integrity": "sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1788,15 +1812,17 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.25.3",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz",
+ "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
+ "@babel/generator": "^7.25.6",
+ "@babel/parser": "^7.25.6",
"@babel/template": "^7.25.0",
- "@babel/types": "^7.25.2",
+ "@babel/types": "^7.25.6",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1805,7 +1831,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.25.2",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz",
+ "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1818,14 +1846,16 @@
}
},
"node_modules/@cypress/code-coverage": {
- "version": "3.12.45",
+ "version": "3.12.48",
+ "resolved": "https://registry.npmjs.org/@cypress/code-coverage/-/code-coverage-3.12.48.tgz",
+ "integrity": "sha512-Vr9CzmcI+Cx+a1x2lZW9S/pQiHkVoCWwKj2l3sPB4EcEztBDIpXCEMdAiYqrmAfpGwot3scJwW2y1HYxUec0fg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@cypress/webpack-preprocessor": "^6.0.0",
"chalk": "4.1.2",
- "dayjs": "1.11.12",
- "debug": "4.3.6",
+ "dayjs": "1.11.13",
+ "debug": "4.3.7",
"execa": "4.1.0",
"globby": "11.1.0",
"istanbul-lib-coverage": "^3.0.0",
@@ -2194,11 +2224,6 @@
"ms": "^2.1.1"
}
},
- "node_modules/@cypress/xvfb/node_modules/ms": {
- "version": "2.1.3",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"dev": true,
@@ -2310,11 +2335,15 @@
},
"node_modules/@hapi/hoek": {
"version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3482,9 +3511,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz",
- "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz",
+ "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==",
"cpu": [
"arm"
],
@@ -3496,9 +3525,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz",
- "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz",
+ "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==",
"cpu": [
"arm64"
],
@@ -3510,9 +3539,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
- "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz",
+ "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==",
"cpu": [
"arm64"
],
@@ -3524,9 +3553,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz",
- "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz",
+ "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==",
"cpu": [
"x64"
],
@@ -3538,9 +3567,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz",
- "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz",
+ "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==",
"cpu": [
"arm"
],
@@ -3552,9 +3581,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz",
- "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz",
+ "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==",
"cpu": [
"arm"
],
@@ -3566,9 +3595,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz",
- "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz",
+ "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==",
"cpu": [
"arm64"
],
@@ -3580,9 +3609,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz",
- "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz",
+ "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==",
"cpu": [
"arm64"
],
@@ -3594,9 +3623,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz",
- "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz",
+ "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==",
"cpu": [
"ppc64"
],
@@ -3608,9 +3637,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz",
- "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz",
+ "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==",
"cpu": [
"riscv64"
],
@@ -3622,9 +3651,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz",
- "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz",
+ "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==",
"cpu": [
"s390x"
],
@@ -3636,9 +3665,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz",
- "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz",
+ "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==",
"cpu": [
"x64"
],
@@ -3649,9 +3678,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz",
- "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz",
+ "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==",
"cpu": [
"x64"
],
@@ -3663,9 +3692,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz",
- "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz",
+ "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==",
"cpu": [
"arm64"
],
@@ -3677,9 +3706,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz",
- "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz",
+ "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==",
"cpu": [
"ia32"
],
@@ -3691,9 +3720,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz",
- "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz",
+ "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==",
"cpu": [
"x64"
],
@@ -3706,6 +3735,8 @@
},
"node_modules/@sideway/address": {
"version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -3714,11 +3745,15 @@
},
"node_modules/@sideway/formula": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
"dev": true,
"license": "BSD-3-Clause"
},
@@ -5070,7 +5105,9 @@
"license": "MIT"
},
"node_modules/axios": {
- "version": "1.7.4",
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5081,6 +5118,8 @@
},
"node_modules/axios/node_modules/form-data": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5094,6 +5133,8 @@
},
"node_modules/axios/node_modules/proxy-from-env": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true,
"license": "MIT"
},
@@ -6280,7 +6321,9 @@
}
},
"node_modules/core-js": {
- "version": "3.38.0",
+ "version": "3.38.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
+ "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -6289,7 +6332,9 @@
}
},
"node_modules/core-js-bundle": {
- "version": "3.38.0",
+ "version": "3.38.1",
+ "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.38.1.tgz",
+ "integrity": "sha512-VVA1mEYo2FRVbVdcAy5z8d4lidIrCphN6rFM0Hzr/keUJrjW2m13wwGE9UJOIE+P2sFV7ujtlEdogakPad21uw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -6563,7 +6608,9 @@
}
},
"node_modules/cypress": {
- "version": "13.13.3",
+ "version": "13.14.2",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.14.2.tgz",
+ "integrity": "sha512-lsiQrN17vHMB2fnvxIrKLAjOr9bPwsNbPZNrWf99s4u+DVmCY6U+w7O3GGG9FvP4EUVYaDu+guWeNLiUzBrqvA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -6849,7 +6896,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.12",
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
"dev": true,
"license": "MIT"
},
@@ -6859,11 +6908,13 @@
"license": "MIT"
},
"node_modules/debug": {
- "version": "4.3.6",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -7730,7 +7781,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.35.0",
+ "version": "7.36.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz",
+ "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8474,7 +8527,9 @@
"license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.6",
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"dev": true,
"funding": [
{
@@ -9124,9 +9179,9 @@
}
},
"node_modules/i18next": {
- "version": "23.13.0",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.13.0.tgz",
- "integrity": "sha512-B+g0/KTKmN3+NeMKPljQxdrih6Q6lyDF5O2e/Ofd0JQsTLojJD/BSTTN04iw6OVc0yBiHeypu5hoBNV6ag44Zw==",
+ "version": "23.15.1",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.15.1.tgz",
+ "integrity": "sha512-wB4abZ3uK7EWodYisHl/asf8UYEhrI/vj/8aoSsrj/ZDxj4/UXPOa1KvFt1Fq5hkUHquNqwFlDprmjZ8iySgYA==",
"funding": [
{
"type": "individual",
@@ -10128,15 +10183,19 @@
}
},
"node_modules/jamilih": {
- "version": "0.59.2",
+ "version": "0.60.0",
+ "resolved": "https://registry.npmjs.org/jamilih/-/jamilih-0.60.0.tgz",
+ "integrity": "sha512-qH/1Sr5QK2/6IkMVRHZwY9MstMZ6zyVHIeJDIhI4Qhkzfl/TUNx2wThR3IpQ7yrp9rxSesEs2iFYUNzmjprjBg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=16.9.0"
+ "node": ">=18.0.0"
}
},
"node_modules/joi": {
"version": "17.13.3",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
+ "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -12230,12 +12289,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mocha/node_modules/ms": {
- "version": "2.1.3",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
"node_modules/mocha/node_modules/p-limit": {
"version": "3.1.0",
"dev": true,
@@ -12353,7 +12406,9 @@
}
},
"node_modules/ms": {
- "version": "2.1.2",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT"
},
@@ -13670,6 +13725,8 @@
},
"node_modules/pkg-conf": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz",
+ "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13682,6 +13739,8 @@
},
"node_modules/pkg-conf/node_modules/load-json-file": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13697,6 +13756,8 @@
},
"node_modules/pkg-conf/node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13705,6 +13766,8 @@
},
"node_modules/pkg-conf/node_modules/type-fest": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
@@ -14857,9 +14920,9 @@
}
},
"node_modules/rollup": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz",
- "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz",
+ "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14873,22 +14936,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.21.0",
- "@rollup/rollup-android-arm64": "4.21.0",
- "@rollup/rollup-darwin-arm64": "4.21.0",
- "@rollup/rollup-darwin-x64": "4.21.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.21.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.21.0",
- "@rollup/rollup-linux-arm64-gnu": "4.21.0",
- "@rollup/rollup-linux-arm64-musl": "4.21.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.21.0",
- "@rollup/rollup-linux-s390x-gnu": "4.21.0",
- "@rollup/rollup-linux-x64-gnu": "4.21.0",
- "@rollup/rollup-linux-x64-musl": "4.21.0",
- "@rollup/rollup-win32-arm64-msvc": "4.21.0",
- "@rollup/rollup-win32-ia32-msvc": "4.21.0",
- "@rollup/rollup-win32-x64-msvc": "4.21.0",
+ "@rollup/rollup-android-arm-eabi": "4.21.3",
+ "@rollup/rollup-android-arm64": "4.21.3",
+ "@rollup/rollup-darwin-arm64": "4.21.3",
+ "@rollup/rollup-darwin-x64": "4.21.3",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.21.3",
+ "@rollup/rollup-linux-arm-musleabihf": "4.21.3",
+ "@rollup/rollup-linux-arm64-gnu": "4.21.3",
+ "@rollup/rollup-linux-arm64-musl": "4.21.3",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3",
+ "@rollup/rollup-linux-riscv64-gnu": "4.21.3",
+ "@rollup/rollup-linux-s390x-gnu": "4.21.3",
+ "@rollup/rollup-linux-x64-gnu": "4.21.3",
+ "@rollup/rollup-linux-x64-musl": "4.21.3",
+ "@rollup/rollup-win32-arm64-msvc": "4.21.3",
+ "@rollup/rollup-win32-ia32-msvc": "4.21.3",
+ "@rollup/rollup-win32-x64-msvc": "4.21.3",
"fsevents": "~2.3.2"
}
},
@@ -15770,7 +15833,9 @@
}
},
"node_modules/standard": {
- "version": "17.1.0",
+ "version": "17.1.2",
+ "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz",
+ "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==",
"dev": true,
"funding": [
{
@@ -15794,8 +15859,8 @@
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-promise": "^6.1.1",
- "eslint-plugin-react": "^7.32.2",
- "standard-engine": "^15.0.0",
+ "eslint-plugin-react": "^7.36.1",
+ "standard-engine": "^15.1.0",
"version-guard": "^1.1.1"
},
"bin": {
@@ -15806,7 +15871,9 @@
}
},
"node_modules/standard-engine": {
- "version": "15.0.0",
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz",
+ "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==",
"dev": true,
"funding": [
{
@@ -15835,6 +15902,8 @@
},
"node_modules/standard-engine/node_modules/get-stdin": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
+ "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15845,18 +15914,20 @@
}
},
"node_modules/start-server-and-test": {
- "version": "2.0.5",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.8.tgz",
+ "integrity": "sha512-v2fV6NV2F7tL1ocwfI4Wpait+IKjRbT5l3ZZ+ZikXdMLmxYsS8ynGAsCQAUVXkVyGyS+UibsRnvgHkMvJIvCsw==",
"dev": true,
"license": "MIT",
"dependencies": {
"arg": "^5.0.2",
"bluebird": "3.7.2",
"check-more-types": "2.24.0",
- "debug": "4.3.6",
+ "debug": "4.3.7",
"execa": "5.1.1",
"lazy-ass": "1.6.0",
"ps-tree": "1.2.0",
- "wait-on": "7.2.0"
+ "wait-on": "8.0.1"
},
"bin": {
"server-test": "src/bin/start.js",
@@ -17520,12 +17591,14 @@
"license": "MIT"
},
"node_modules/wait-on": {
- "version": "7.2.0",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.1.tgz",
+ "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
+ "axios": "^1.7.7",
+ "joi": "^17.13.3",
"lodash": "^4.17.21",
"minimist": "^1.2.8",
"rxjs": "^7.8.1"
@@ -17539,6 +17612,8 @@
},
"node_modules/wait-on/node_modules/rxjs": {
"version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -17546,7 +17621,9 @@
}
},
"node_modules/wait-on/node_modules/tslib": {
- "version": "2.6.3",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
"dev": true,
"license": "0BSD"
},
@@ -17986,6 +18063,8 @@
},
"node_modules/xdg-basedir": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
"dev": true,
"license": "MIT",
"engines": {
diff --git a/package.json b/package.json
index 71c1277cc..d4d4cc446 100644
--- a/package.json
+++ b/package.json
@@ -87,10 +87,10 @@
"dependencies": {
"@svgedit/svgcanvas": "7.2.3",
"browser-fs-access": "0.35.0",
- "core-js": "3.38.0",
+ "core-js": "3.38.1",
"elix": "15.0.1",
"html2canvas": "1.4.1",
- "i18next": "23.13.0",
+ "i18next": "23.15.1",
"jspdf": "2.5.1",
"pathseg": "1.2.1",
"regenerator-runtime": "0.14.1",
@@ -99,10 +99,10 @@
},
"devDependencies": {
"@babel/core": "7.25.2",
- "@babel/preset-env": "7.25.3",
+ "@babel/preset-env": "7.25.4",
"@babel/register": "7.24.6",
- "@babel/runtime-corejs3": "7.25.0",
- "@cypress/code-coverage": "3.12.45",
+ "@babel/runtime-corejs3": "7.25.6",
+ "@cypress/code-coverage": "3.12.48",
"@rollup/plugin-babel": "6.0.4",
"@rollup/plugin-commonjs": "^26",
"@rollup/plugin-dynamic-import-vars": "2.1.2",
@@ -114,11 +114,11 @@
"@web/dev-server-rollup": "0.6.4",
"babel-plugin-istanbul": "7.0.0",
"babel-plugin-transform-object-rest-spread": "7.0.0-beta.3",
- "core-js-bundle": "3.38.0",
+ "core-js-bundle": "3.38.1",
"cp-cli": "2.0.0",
- "cypress": "13.13.3",
+ "cypress": "13.14.2",
"cypress-multi-reporters": "1.6.4",
- "jamilih": "0.59.2",
+ "jamilih": "0.60.0",
"jsdoc": "4.0.3",
"node-static": "0.7.11",
"npm-run-all": "4.1.5",
@@ -130,16 +130,16 @@
"remark-cli": "12.0.1",
"remark-lint-ordered-list-marker-value": "4.0.0",
"rimraf": "6.0.1",
- "rollup": "4.21.0",
+ "rollup": "4.21.3",
"rollup-plugin-copy": "3.5.0",
"rollup-plugin-filesize": "10.0.0",
"rollup-plugin-html": "0.2.1",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-re": "1.0.7",
- "standard": "17.1.0",
- "start-server-and-test": "2.0.5"
+ "standard": "17.1.2",
+ "start-server-and-test": "2.0.8"
},
"optionalDependencies": {
- "@rollup/rollup-linux-x64-gnu": "4.21.0"
+ "@rollup/rollup-linux-x64-gnu": "4.21.3"
}
}
diff --git a/packages/svgcanvas/core/coords.js b/packages/svgcanvas/core/coords.js
index 9c770939f..74ef9f00e 100644
--- a/packages/svgcanvas/core/coords.js
+++ b/packages/svgcanvas/core/coords.js
@@ -5,68 +5,92 @@
*/
import {
- snapToGrid, assignAttributes, getBBox, getRefElem, findDefs
+ snapToGrid,
+ assignAttributes,
+ getBBox,
+ getRefElem,
+ findDefs
} from './utilities.js'
import {
- transformPoint, transformListToTransform, matrixMultiply, transformBox, getTransformList
+ transformPoint,
+ transformListToTransform,
+ matrixMultiply,
+ transformBox,
+ getTransformList
} from './math.js'
-
-// this is how we map paths to our preferred relative segment types
-const pathMap = [
- 0, 'z', 'M', 'm', 'L', 'l', 'C', 'c', 'Q', 'q', 'A', 'a',
- 'H', 'h', 'V', 'v', 'S', 's', 'T', 't'
-]
-
-/**
- * @interface module:coords.EditorContext
- */
-/**
- * @function module:coords.EditorContext#getGridSnapping
- * @returns {boolean}
- */
-/**
- * @function module:coords.EditorContext#getSvgRoot
- * @returns {SVGSVGElement}
-*/
+import {
+ convertToNum
+} from './units.js'
let svgCanvas = null
/**
-* @function module:coords.init
-* @param {module:svgcanvas.SvgCanvas#event:pointsAdded} editorContext
-* @returns {void}
-*/
-export const init = (canvas) => {
+ * Initialize the coords module with the SVG canvas.
+ * @function module:coords.init
+ * @param {Object} canvas - The SVG canvas object
+ * @returns {void}
+ */
+export const init = canvas => {
svgCanvas = canvas
}
+// This is how we map path segment types to their corresponding commands
+const pathMap = [
+ 0,
+ 'z',
+ 'M',
+ 'm',
+ 'L',
+ 'l',
+ 'C',
+ 'c',
+ 'Q',
+ 'q',
+ 'A',
+ 'a',
+ 'H',
+ 'h',
+ 'V',
+ 'v',
+ 'S',
+ 's',
+ 'T',
+ 't'
+]
+
/**
* Applies coordinate changes to an element based on the given matrix.
- * @name module:coords.remapElement
- * @type {module:path.EditorContext#remapElement}
-*/
+ * @function module:coords.remapElement
+ * @param {Element} selected - The DOM element to remap
+ * @param {Object} changes - An object containing attribute changes
+ * @param {SVGMatrix} m - The transformation matrix
+ * @returns {void}
+ */
export const remapElement = (selected, changes, m) => {
const remap = (x, y) => transformPoint(x, y, m)
- const scalew = (w) => m.a * w
- const scaleh = (h) => m.d * h
- const doSnapping = svgCanvas.getGridSnapping() && selected.parentNode.parentNode.localName === 'svg'
+ const scalew = w => m.a * w
+ const scaleh = h => m.d * h
+ const doSnapping =
+ svgCanvas.getGridSnapping() &&
+ selected.parentNode.parentNode.localName === 'svg'
const finishUp = () => {
if (doSnapping) {
- Object.entries(changes).forEach(([o, value]) => {
- changes[o] = snapToGrid(value)
+ Object.entries(changes).forEach(([attr, value]) => {
+ changes[attr] = snapToGrid(value)
})
}
assignAttributes(selected, changes, 1000, true)
}
- const box = getBBox(selected);
+ const box = getBBox(selected)
- ['fill', 'stroke'].forEach((type) => {
+ // Handle gradients and patterns
+ ;['fill', 'stroke'].forEach(type => {
const attrVal = selected.getAttribute(type)
if (attrVal?.startsWith('url(') && (m.a < 0 || m.d < 0)) {
const grad = getRefElem(attrVal)
const newgrad = grad.cloneNode(true)
if (m.a < 0) {
- // flip x
+ // Flip x
const x1 = newgrad.getAttribute('x1')
const x2 = newgrad.getAttribute('x2')
newgrad.setAttribute('x1', -(x1 - 1))
@@ -74,7 +98,7 @@ export const remapElement = (selected, changes, m) => {
}
if (m.d < 0) {
- // flip y
+ // Flip y
const y1 = newgrad.getAttribute('y1')
const y2 = newgrad.getAttribute('y2')
newgrad.setAttribute('y1', -(y1 - 1))
@@ -87,34 +111,22 @@ export const remapElement = (selected, changes, m) => {
})
const elName = selected.tagName
- if (elName === 'g' || elName === 'text' || elName === 'tspan' || elName === 'use') {
- // if it was a translate, then just update x,y
- if (m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && (m.e !== 0 || m.f !== 0)) {
- // [T][M] = [M][T']
- // therefore [T'] = [M_inv][T][M]
- const existing = transformListToTransform(selected).matrix
- const tNew = matrixMultiply(existing.inverse(), m, existing)
- changes.x = Number.parseFloat(changes.x) + tNew.e
- changes.y = Number.parseFloat(changes.y) + tNew.f
- } else {
- // we just absorb all matrices into the element and don't do any remapping
- const chlist = getTransformList(selected)
- const mt = svgCanvas.getSvgRoot().createSVGTransform()
- mt.setMatrix(matrixMultiply(transformListToTransform(chlist).matrix, m))
- chlist.clear()
- chlist.appendItem(mt)
- }
+
+ // Skip remapping for '