diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5f6de1e..d832c0c 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.3.0", "dependencies": { + "@gtm-support/vue-gtm": "^3.0.1", "axios": "^1.7.2", "chartist-plugin-tooltips-updated": "^0.1.4", "core-js": "^3.37.1", @@ -206,6 +207,32 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "license": "MIT" }, + "node_modules/@gtm-support/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@gtm-support/core/-/core-3.0.1.tgz", + "integrity": "sha512-SctcoqvvAbGAgZzOb7DZ4wjbZF3ZS7Las3qIEByv6g7mzPf4E9LpRXcQzjmywYLcUx2jys7PWJAa3s5slvj/0w==", + "license": "MIT" + }, + "node_modules/@gtm-support/vue-gtm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@gtm-support/vue-gtm/-/vue-gtm-3.0.1.tgz", + "integrity": "sha512-SeLN3R+5gHJ+1AtJPP4/+2lJ6vOfXo1pL094//GcKY7RrMk3ltxIS/CJ3PSlL2Dpxjr9UAov0m4K1SdvYj3Xzw==", + "license": "MIT", + "dependencies": { + "@gtm-support/core": "^3.0.1" + }, + "optionalDependencies": { + "vue-router": ">= 4.1.0 < 5.0.0" + }, + "peerDependencies": { + "vue": ">= 3.2.0 < 4.0.0" + }, + "peerDependenciesMeta": { + "vue-router": { + "optional": true + } + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index e988a5d..f1753c1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -7,6 +7,7 @@ "build": "vue-cli-service build" }, "dependencies": { + "@gtm-support/vue-gtm": "^3.0.1", "axios": "^1.7.2", "chartist-plugin-tooltips-updated": "^0.1.4", "core-js": "^3.37.1", diff --git a/frontend/src/main.js b/frontend/src/main.js index 2c0cdc6..2d38d29 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -3,22 +3,28 @@ import ToastService from 'primevue/toastservice'; import PrimeVue from 'primevue/config'; import App from './App.vue'; import router from './router'; +import { createGtm } from '@gtm-support/vue-gtm'; import 'primeicons/primeicons.css'; import { createApp, h } from 'vue' -const app = createApp({ +createApp({ render: () => h(App) -}); +}) + .component('v-select', vSelect) -app.component('v-select', vSelect); -app.use(router); -app.use(require('vue-chartist'), { - messageNoData: 'Not enough data for display', -}); + .use(router) + .use(require('vue-chartist'), { + messageNoData: 'Not enough data for display', + }) + .use(PrimeVue) + .use(ToastService) + .use( + createGtm({ + id: "G-RWT46PCQ0S", + vueRouter: router + }) + ) -app.use(PrimeVue); -app.use(ToastService); - -app.mount('#app'); + .mount('#app');