diff --git a/.eslintignore b/.eslintignore
index 53b84696..fe24ce3b 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,10 +1,15 @@
node_modules
+ignore
+
coverage
instrumented
dist
+docs/jsdoc
archive
+jsconfig.json
mochawesome-report
+releases
!.eslintrc.js
!.ncurc.js
@@ -15,7 +20,17 @@ svgedit-custom.css
# Vendor/minified files
src/editor/jquery.min.js
+src/editor/jquery-ui
+
+# Previously minified though exporting
+src/editor/js-hotkeys
+
+src/editor/jspdf/jspdf.min.js
+src/editor/jspdf/underscore-min.js
src/editor/extensions/ext-mathjax/mathjax
+# jquery files
+src/editor/svgicons/jQuery.svgIcons.js
+src/editor/jgraduate/jQuery.jPicker.js
diff --git a/.idea/svgedit.iml b/.idea/svgedit.iml
deleted file mode 100644
index d6ebd480..00000000
--- a/.idea/svgedit.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/cypress/integration/ui/scenario.js b/cypress/integration/ui/scenario.js
index 700d9758..df1eec6a 100644
--- a/cypress/integration/ui/scenario.js
+++ b/cypress/integration/ui/scenario.js
@@ -105,22 +105,4 @@ describe('use various parts of svg-edit', function () {
.trigger('mouseup', { force: true });
testSnapshot();
});
- it('check tool_star', function () {
- cy.get('#tool_star')
- .click({force: true});
- cy.get('#svgcontent')
- .trigger('mousedown', 300, 150, {force: true})
- .trigger('mousemove', 300, 250, {force: true})
- .trigger('mouseup', {force: true});
- testSnapshot();
- });
- it('check tool_polygon', function () {
- cy.get('#tool_polygon')
- .click({force: true});
- cy.get('#svgcontent')
- .trigger('mousedown', 350, 250, {force: true})
- .trigger('mousemove', 350, 370, {force: true})
- .trigger('mouseup', {force: true});
- testSnapshot();
- });
});
diff --git a/cypress/integration/unit/select.js b/cypress/integration/unit/select.js
index 1e967e7b..0ee2a376 100644
--- a/cypress/integration/unit/select.js
+++ b/cypress/integration/unit/select.js
@@ -34,28 +34,6 @@ describe('select', function () {
return ret;
}
};
- const dataStorage = {
- _storage: new WeakMap(),
- put: function (element, key, obj) {
- if (!this._storage.has(element)) {
- this._storage.set(element, new Map());
- }
- this._storage.get(element).set(key, obj);
- },
- get: function (element, key) {
- return this._storage.get(element).get(key);
- },
- has: function (element, key) {
- return this._storage.has(element) && this._storage.get(element).has(key);
- },
- remove: function (element, key) {
- var ret = this._storage.get(element).delete(key);
- if (!this._storage.get(element).size === 0) {
- this._storage.delete(element);
- }
- return ret;
- }
- };
/**
* @implements {module:select.SVGFactory}
diff --git a/cypress/integration/unit/test1.js b/cypress/integration/unit/test1.js
index fa8b03b4..185964e3 100644
--- a/cypress/integration/unit/test1.js
+++ b/cypress/integration/unit/test1.js
@@ -34,6 +34,7 @@ describe('Basic Module', function () {
workarea.append(svgcanvas);
const toolsLeft = document.createElement('div');
toolsLeft.id = 'tools_left';
+
svgEditor.append(workarea, toolsLeft);
document.body.append(svgEditor);
diff --git a/netlify.toml b/netlify.toml
index e995a661..e16fdce4 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -23,9 +23,3 @@
command = "echo 'branch release-v5.1.0 already built'"
-# Production context: all deploys from the Production branch set in your site's
-# deploy contexts will inherit these settings.
-[context."V7-preview"]
- publish = "/"
- command = "npm run build"
-
diff --git a/package-lock.json b/package-lock.json
index 3e91d315..bca6d7db 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4253,6 +4253,7 @@
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
+ "fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -7350,6 +7351,7 @@
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
+ "fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
@@ -9942,7 +9944,8 @@
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
- "optionator": "^0.8.1"
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
},
"bin": {
"escodegen": "bin/escodegen.js",
@@ -14726,7 +14729,8 @@
"canvg": "^3.0.6",
"core-js": "^3.6.0",
"dompurify": "^2.2.0",
- "fflate": "^0.4.8"
+ "fflate": "^0.4.8",
+ "html2canvas": "^1.0.0-rc.5"
},
"optionalDependencies": {
"html2canvas": "^1.0.0-rc.5"
@@ -16285,6 +16289,7 @@
"integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==",
"dev": true,
"dependencies": {
+ "encoding": "^0.1.12",
"minipass": "^3.1.0",
"minipass-sized": "^1.0.3",
"minizlib": "^2.0.0"
@@ -16526,6 +16531,7 @@
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
+ "fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -20278,6 +20284,9 @@
"version": "2.47.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.47.0.tgz",
"integrity": "sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg==",
+ "dependencies": {
+ "fsevents": "~2.3.1"
+ },
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -22853,6 +22862,7 @@
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
+ "fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -31575,12 +31585,6 @@
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
}
}
},
@@ -32410,7 +32414,6 @@
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
"dev": true,
- "optional": true,
"requires": {
"bn.js": "^4.1.0",
"miller-rabin": "^4.0.0",
@@ -33076,23 +33079,6 @@
}
}
},
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
- }
- },
"esrecurse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
@@ -33830,12 +33816,6 @@
}
}
},
- "eslint-visitor-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
- "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
- "dev": true
- },
"find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
diff --git a/src/editor/Editor.js b/src/editor/Editor.js
index 9760ce41..97838825 100644
--- a/src/editor/Editor.js
+++ b/src/editor/Editor.js
@@ -52,6 +52,7 @@ class Editor extends EditorStartup {
* @type {"ignore"|"waiting"|"closed"}
*/
this.storagePromptState = 'ignore';
+
this.svgCanvas = null;
this.isReady = false;
this.customExportImage = false;
diff --git a/src/editor/dialogs/editorPreferencesDialog.js b/src/editor/dialogs/editorPreferencesDialog.js
index 52ddda1f..9c83c7c3 100644
--- a/src/editor/dialogs/editorPreferencesDialog.js
+++ b/src/editor/dialogs/editorPreferencesDialog.js
@@ -1,4 +1,5 @@
+
const template = document.createElement('template');
template.innerHTML = `