diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..07e8a526
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+version: 2
+updates:
+ - package-ecosystem: "npm"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ target-branch: "develop"
+ ignore:
+ - dependency-name: "@quasar/app"
diff --git a/package-lock.json b/package-lock.json
index 116fc658..0d2d2506 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "shieldmaiden",
- "version": "2.27.4",
+ "version": "2.28.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "shieldmaiden",
- "version": "2.27.4",
+ "version": "2.28.0",
"dependencies": {
"@gtm-support/vue2-gtm": "^1.3.0",
"@octokit/rest": "^19.0.5",
@@ -29,10 +29,8 @@
"splitpanes": "^2.4.1",
"vee-validate": "^3.4.14",
"vue": "2.7.16",
- "vue-analytics": "^5.22.1",
"vue-cookies": "^1.8.4",
"vue-croppa": "^1.3.8",
- "vue-gtag": "^1.16.1",
"vue-numeral-filter": "^2.2.0",
"vue-qr": "^4.0.9",
"vue-shortkey": "^3.1.7",
@@ -2618,25 +2616,25 @@
"dev": true
},
"node_modules/@grpc/grpc-js": {
- "version": "1.9.14",
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz",
- "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==",
+ "version": "1.10.9",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.9.tgz",
+ "integrity": "sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==",
"dependencies": {
- "@grpc/proto-loader": "^0.7.8",
- "@types/node": ">=12.12.47"
+ "@grpc/proto-loader": "^0.7.13",
+ "@js-sdsl/ordered-map": "^4.4.2"
},
"engines": {
- "node": "^8.13.0 || >=10.10.0"
+ "node": ">=12.10.0"
}
},
"node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
- "version": "0.7.10",
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
- "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
+ "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
"dependencies": {
"lodash.camelcase": "^4.3.0",
"long": "^5.0.0",
- "protobufjs": "^7.2.4",
+ "protobufjs": "^7.2.5",
"yargs": "^17.7.2"
},
"bin": {
@@ -2665,9 +2663,9 @@
"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"node_modules/@grpc/grpc-js/node_modules/protobufjs": {
- "version": "7.2.6",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
- "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz",
+ "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
@@ -2851,6 +2849,15 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@js-sdsl/ordered-map": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -18887,12 +18894,6 @@
"csstype": "^3.1.0"
}
},
- "node_modules/vue-analytics": {
- "version": "5.22.1",
- "resolved": "https://registry.npmjs.org/vue-analytics/-/vue-analytics-5.22.1.tgz",
- "integrity": "sha512-HPKQMN7gfcUqS5SxoO0VxqLRRSPkG1H1FqglsHccz6BatBatNtm/Vyy8brApktZxNCfnAkrSVDpxg3/FNDeOgQ==",
- "deprecated": "Sorry but vue-analytics is no longer maintained. I would suggest you switch to vue-gtag, with love, the guy who made the package."
- },
"node_modules/vue-cookies": {
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/vue-cookies/-/vue-cookies-1.8.4.tgz",
@@ -18945,14 +18946,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/vue-gtag": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/vue-gtag/-/vue-gtag-1.16.1.tgz",
- "integrity": "sha512-5vs0pSGxdqrfXqN1Qwt0ZFXG0iTYjRMu/saddc7QIC5yp+DKgjWQRpGYVa7Pq+KbThxwzzMfo0sGi7ISa6NowA==",
- "peerDependencies": {
- "vue": "^2.0.0"
- }
- },
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@@ -19929,9 +19922,9 @@
}
},
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
+ "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
"dev": true,
"dependencies": {
"async-limiter": "~1.0.0"
@@ -21030,9 +21023,9 @@
}
},
"node_modules/ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
"engines": {
"node": ">=8.3.0"
@@ -23004,22 +22997,22 @@
"dev": true
},
"@grpc/grpc-js": {
- "version": "1.9.14",
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz",
- "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==",
+ "version": "1.10.9",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.9.tgz",
+ "integrity": "sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==",
"requires": {
- "@grpc/proto-loader": "^0.7.8",
- "@types/node": ">=12.12.47"
+ "@grpc/proto-loader": "^0.7.13",
+ "@js-sdsl/ordered-map": "^4.4.2"
},
"dependencies": {
"@grpc/proto-loader": {
- "version": "0.7.10",
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz",
- "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==",
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
+ "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
"requires": {
"lodash.camelcase": "^4.3.0",
"long": "^5.0.0",
- "protobufjs": "^7.2.4",
+ "protobufjs": "^7.2.5",
"yargs": "^17.7.2"
}
},
@@ -23039,9 +23032,9 @@
"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"protobufjs": {
- "version": "7.2.6",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
- "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz",
+ "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -23187,6 +23180,11 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "@js-sdsl/ordered-map": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw=="
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -35960,11 +35958,6 @@
"csstype": "^3.1.0"
}
},
- "vue-analytics": {
- "version": "5.22.1",
- "resolved": "https://registry.npmjs.org/vue-analytics/-/vue-analytics-5.22.1.tgz",
- "integrity": "sha512-HPKQMN7gfcUqS5SxoO0VxqLRRSPkG1H1FqglsHccz6BatBatNtm/Vyy8brApktZxNCfnAkrSVDpxg3/FNDeOgQ=="
- },
"vue-cookies": {
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/vue-cookies/-/vue-cookies-1.8.4.tgz",
@@ -36007,12 +36000,6 @@
}
}
},
- "vue-gtag": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/vue-gtag/-/vue-gtag-1.16.1.tgz",
- "integrity": "sha512-5vs0pSGxdqrfXqN1Qwt0ZFXG0iTYjRMu/saddc7QIC5yp+DKgjWQRpGYVa7Pq+KbThxwzzMfo0sGi7ISa6NowA==",
- "requires": {}
- },
"vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@@ -37206,9 +37193,9 @@
}
},
"ws": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
+ "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0"
@@ -37762,9 +37749,9 @@
}
},
"ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
"requires": {}
},
diff --git a/package.json b/package.json
index e46f7d1b..26cc8238 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "version": "2.27.4",
+ "version": "2.28.0",
"name": "shieldmaiden",
"description": "A Dungeons and Dragons Combat Tracker",
"productName": "Shieldmaiden",
@@ -37,10 +37,8 @@
"splitpanes": "^2.4.1",
"vee-validate": "^3.4.14",
"vue": "2.7.16",
- "vue-analytics": "^5.22.1",
"vue-cookies": "^1.8.4",
"vue-croppa": "^1.3.8",
- "vue-gtag": "^1.16.1",
"vue-numeral-filter": "^2.2.0",
"vue-qr": "^4.0.9",
"vue-shortkey": "^3.1.7",
diff --git a/src/App.vue b/src/App.vue
index 80c29799..b00f75fe 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -34,7 +34,6 @@
-
@@ -62,7 +61,6 @@ import { db } from "./firebase";
import Header from "./components/Header.vue";
import Sidebar from "./components/Sidebar.vue";
import Drawer from "./components/Drawer.vue";
-import CookieConsent from "./components/CookieConsent.vue";
import { mapActions, mapGetters } from "vuex";
import HkRolls from "./components/hk-components/hk-rolls";
import { general } from "./mixins/general";
@@ -78,7 +76,6 @@ export default {
navMain: Header,
Sidebar,
Drawer,
- CookieConsent,
HkRolls,
Home,
},
diff --git a/src/boot/plugins.js b/src/boot/plugins.js
index 36f05622..29fb3587 100644
--- a/src/boot/plugins.js
+++ b/src/boot/plugins.js
@@ -1,6 +1,5 @@
import VueFire from "vuefire";
import VueCookies from "vue-cookies";
-import VueGtag from "vue-gtag";
import numeral from "vue-numeral-filter";
import "animate.css";
import Croppa from "vue-croppa";
@@ -21,22 +20,14 @@ export default async ({ router, Vue }) => {
require("../functions.js");
- Vue.use(
- VueGtag,
- {
- config: { id: "G-KDSNCEK6X7" },
- bootstrap: !!Cookies.get("cookie_consent"),
- },
- router
- );
Vue.use(VueGtm, {
id: "GTM-5XJCCDMS",
queryParams: {},
defer: false, // Script can be set to `defer` to speed up page load at the cost of less accurate results (in case visitor leaves before script is loaded, which is unlikely but possible). Defaults to false, so the script is loaded `async` by default
compatibility: false, // Will add `async` and `defer` to the script tag to not block requests for old browsers that do not support `async`
nonce: "2726c7f26c", // Will add `nonce` to the script tag
- enabled: !!Cookies.get("cookie_consent"), // defaults to true. Plugin can be disabled by setting this to false for Ex: enabled: !!GDPR_Cookie (optional)
- debug: true, // Whether or not display console logs debugs (optional)
+ enabled: true, // defaults to true. Plugin can be disabled by setting this to false for Ex: enabled: !!GDPR_Cookie (optional)
+ debug: false, // Whether or not display console logs debugs (optional)
loadScript: true, // Whether or not to load the GTM Script (Helpful if you are including GTM manually, but need the dataLayer functionality in your components) (optional)
vueRouter: router, // Pass the router instance to automatically sync with router (optional)
ignoredViews: [], // Don't trigger events for specified router names (optional)
diff --git a/src/components/CookieConsent.vue b/src/components/CookieConsent.vue
index a72cf043..98e67e3e 100644
--- a/src/components/CookieConsent.vue
+++ b/src/components/CookieConsent.vue
@@ -16,7 +16,6 @@
diff --git a/src/components/combat/Current.vue b/src/components/combat/Current.vue
index 733c6b1f..359cbb19 100644
--- a/src/components/combat/Current.vue
+++ b/src/components/combat/Current.vue
@@ -1,5 +1,13 @@
-
@@ -54,6 +64,7 @@ import { dice } from "src/mixins/dice";
import TargetItem from "src/components/combat/TargetItem.vue";
import DeathSaves from "src/components/combat/DeathSaves.vue";
import ViewEntity from "./ViewEntity.vue";
+import TutorialPopover from "../demo/TutorialPopover.vue";
export default {
name: "Current",
@@ -65,6 +76,7 @@ export default {
TargetItem,
DeathSaves,
ViewEntity,
+ TutorialPopover,
},
props: ["current", "next", "settings"],
data() {
@@ -142,7 +154,8 @@ export default {
},
},
computed: {
- ...mapGetters(["entities", "round", "turn", "targeted", "show_monster_card"]),
+ ...mapGetters(["entities", "round", "turn", "targeted", "show_monster_card", "demo"]),
+ ...mapGetters("tutorial", ["follow_tutorial", "get_step"]),
showCard: {
get() {
const show = this.current.entityType === "npc" && this.show_monster_card ? true : false;
diff --git a/src/components/combat/DemoOverlay.vue b/src/components/combat/DemoOverlay.vue
index 5925700c..473a166e 100644
--- a/src/components/combat/DemoOverlay.vue
+++ b/src/components/combat/DemoOverlay.vue
@@ -5,11 +5,9 @@