diff --git a/.replit b/.replit
new file mode 100644
index 0000000..9978ad8
--- /dev/null
+++ b/.replit
@@ -0,0 +1,2 @@
+language = "nodejs"
+run = "npm run serve"
diff --git a/package-lock.json b/package-lock.json
index b496392..dbfe0eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"vue-panzoom": "^1.1.6",
"vue-sortable": "github:Netbel/vue-sortable#master-fix",
"vue-textarea-autosize": "^1.1.1",
+ "vue-toastification": "^2.0.0-rc.1",
"vue-transition-expand": "^0.1.0"
},
"devDependencies": {
@@ -32,6 +33,7 @@
"@vue/eslint-config-typescript": "^7.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
+ "eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-vue": "^7.0.0-alpha.0",
"prettier": "^1.19.1",
"raw-loader": "^4.0.2",
@@ -18245,7 +18247,6 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz",
"integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==",
"dev": true,
- "peer": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
},
@@ -18894,8 +18895,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/fast-glob": {
"version": "2.2.7",
@@ -23775,7 +23775,6 @@
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
- "peer": true,
"dependencies": {
"fast-diff": "^1.1.2"
},
@@ -27327,6 +27326,14 @@
"deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
+ "node_modules/vue-toastification": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.1.tgz",
+ "integrity": "sha512-hjauv/FyesNZdwcr5m1SCyvu1JmlB+Ts5bTptDLDmsYYlj6Oqv8NYakiElpCF+Abwkn9J/AChh6FwkTL1HOb7Q==",
+ "peerDependencies": {
+ "vue": "^3.0.2"
+ }
+ },
"node_modules/vue-transition-expand": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/vue-transition-expand/-/vue-transition-expand-0.1.0.tgz",
@@ -33899,7 +33906,6 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz",
"integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==",
"dev": true,
- "peer": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
@@ -34361,8 +34367,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true,
- "peer": true
+ "dev": true
},
"fast-glob": {
"version": "2.2.7",
@@ -38256,7 +38261,6 @@
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
- "peer": true,
"requires": {
"fast-diff": "^1.1.2"
}
@@ -41126,6 +41130,12 @@
}
}
},
+ "vue-toastification": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.1.tgz",
+ "integrity": "sha512-hjauv/FyesNZdwcr5m1SCyvu1JmlB+Ts5bTptDLDmsYYlj6Oqv8NYakiElpCF+Abwkn9J/AChh6FwkTL1HOb7Q==",
+ "requires": {}
+ },
"vue-transition-expand": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/vue-transition-expand/-/vue-transition-expand-0.1.0.tgz",
diff --git a/package.json b/package.json
index d09e8ea..3100357 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
"vue-panzoom": "^1.1.6",
"vue-sortable": "github:Netbel/vue-sortable#master-fix",
"vue-textarea-autosize": "^1.1.1",
+ "vue-toastification": "^2.0.0-rc.1",
"vue-transition-expand": "^0.1.0"
},
"devDependencies": {
@@ -32,6 +33,7 @@
"@vue/eslint-config-typescript": "^7.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
+ "eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-vue": "^7.0.0-alpha.0",
"prettier": "^1.19.1",
"raw-loader": "^4.0.2",
diff --git a/src/components/board/Board.vue b/src/components/board/Board.vue
index f490b60..445f014 100644
--- a/src/components/board/Board.vue
+++ b/src/components/board/Board.vue
@@ -2,19 +2,38 @@
mouseDown(e)"
+ @touchstart="e => mouseDown(e)"
+ @mouseup="() => endDragging(dragging)"
+ @touchend="() => endDragging(dragging)"
+ @mouseleave="() => endDragging(dragging)"
>
@@ -23,24 +42,32 @@
+
+
diff --git a/src/components/board/BoardNode.vue b/src/components/board/BoardNode.vue
index bec3081..ea726a7 100644
--- a/src/components/board/BoardNode.vue
+++ b/src/components/board/BoardNode.vue
@@ -1,78 +1,199 @@
-
+
+
+
+ performAction(e, action)"
+ @touchstart="e => performAction(e, action)"
+ @mouseup="e => actionMouseUp(e, action)"
+ @touchend.stop="e => actionMouseUp(e, action)"
+ >
+
+ {{
+ typeof action.icon === "function" ? action.icon(node) : action.icon
+ }}
+
+
+
-
+
+
+
-
-
+
- {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{ label.text }}
+
+
+
+
+
+ Tap again to confirm
+