Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordizzy <diosmosis@users.noreply.github.com>2021-09-30 16:02:03 +0300
committerGitHub <noreply@github.com>2021-09-30 16:02:03 +0300
commitc69f12a66a86c93e6f9ad8449cf7c4957b128768 (patch)
tree4aa8a4fc17715fddcd0a5f5080f3464a9729201c /plugins/CoreHome
parent10fe3ec18cb29969cfa44bd4d9608e5e0d33c041 (diff)
[Vue] Migrate piwik-alert directive to Vue component (#18075)
* fix generate vue component command (new subfolder organization was not updated there) * migrate alert directive as example of handling angularjs transclude * production build * add sourcemaps * Update Alert.adapter.ts * vue build
Diffstat (limited to 'plugins/CoreHome')
-rw-r--r--plugins/CoreHome/CoreHome.php1
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.js77
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.js.map2
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.min.js2
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.min.js.map2
-rw-r--r--plugins/CoreHome/vue/src/Alert/Alert.adapter.ts52
-rw-r--r--plugins/CoreHome/vue/src/Alert/Alert.vue21
-rw-r--r--plugins/CoreHome/vue/src/Alert/alert.less (renamed from plugins/CoreHome/angularjs/alert/alert.directive.less)0
-rw-r--r--plugins/CoreHome/vue/src/index.ts1
9 files changed, 154 insertions, 4 deletions
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index 0f73c13269..6d42e2033f 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -235,7 +235,6 @@ class CoreHome extends \Piwik\Plugin
$jsFiles[] = "plugins/CoreHome/angularjs/history/history.service.js";
$jsFiles[] = "plugins/CoreHome/angularjs/progressbar/progressbar.directive.js";
- $jsFiles[] = "plugins/CoreHome/angularjs/alert/alert.directive.js";
$jsFiles[] = "plugins/CoreHome/angularjs/sparkline/sparkline.component.js";
$jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js";
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js
index 4db5fddb94..b08d85b079 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.js
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js
@@ -114,6 +114,7 @@ __webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, "activityIndicatorAdapter", function() { return /* reexport */ activityIndicatorAdapter; });
__webpack_require__.d(__webpack_exports__, "ActivityIndicator", function() { return /* reexport */ ActivityIndicator; });
__webpack_require__.d(__webpack_exports__, "translate", function() { return /* reexport */ translate; });
+__webpack_require__.d(__webpack_exports__, "alertAdapter", function() { return /* reexport */ alertAdapter; });
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.
@@ -217,10 +218,86 @@ function activityIndicatorAdapter() {
}
activityIndicatorAdapter.$inject = [];
angular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);
+// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=c4d43d96
+
+function Alertvue_type_template_id_c4d43d96_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
+ class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["alert", {
+ [`alert-${_ctx.severity}`]: true
+ }])
+ }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")], 2);
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=c4d43d96
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts
+
+/* harmony default export */ var Alertvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
+ props: {
+ severity: {
+ type: String,
+ required: true
+ }
+ }
+}));
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts
+
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Alert/Alert.vue
+
+
+
+Alertvue_type_script_lang_ts.render = Alertvue_type_template_id_c4d43d96_render
+
+/* harmony default export */ var Alert = (Alertvue_type_script_lang_ts);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts
+
+
+function alertAdapter() {
+ return {
+ restrict: 'A',
+ transclude: true,
+ scope: {
+ severity: '@piwikAlert'
+ },
+ template: '<div ng-transclude/>',
+ compile: function alertAdapterCompile() {
+ return {
+ post: function alertAdapterPostLink(scope, element) {
+ const clone = element.find('[ng-transclude]');
+ const app = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createApp"])({
+ template: '<alert :severity="severity"><div ref="transcludeTarget"/></alert>',
+
+ data() {
+ return {
+ severity: scope.severity
+ };
+ },
+
+ setup() {
+ const transcludeTarget = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(null);
+ return {
+ transcludeTarget
+ };
+ }
+
+ });
+ app.component('alert', Alert);
+ const vm = app.mount(element[0]);
+ scope.$watch('severity', newValue => {
+ vm.severity = newValue;
+ });
+ $(vm.transcludeTarget).append(clone);
+ }
+ };
+ }
+ };
+}
+alertAdapter.$inject = [];
+angular.module('piwikApp').directive('piwikAlert', alertAdapter);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/index.ts
+
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js.map b/plugins/CoreHome/vue/dist/CoreHome.umd.js.map
index 00186cc2e2..440bbf1132 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.js.map
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://CoreHome/webpack/universalModuleDefinition","webpack://CoreHome/webpack/bootstrap","webpack://CoreHome/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/translate.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?0bf6","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?f42e","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?6f80","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/index.ts","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js"],"names":[],"mappings":"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","file":"CoreHome.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoreHome\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"CoreHome\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","<template>\n <div v-show=\"loading\" class=\"loadingPiwik\">\n <img src=\"plugins/Morpheus/images/loading-blue.gif\" alt=\"\"/>\n <span>{{ loadingMessage }}</span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n</script>\n","export default function translate(translationStringId: string, values: string[] = []): string {\n return window._pk_translate(translationStringId, values); // eslint-disable-line\n}\n","\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n","export { default } from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ActivityIndicator.vue?vue&type=script&lang=ts\"; export * from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ActivityIndicator.vue?vue&type=script&lang=ts\"","import { render } from \"./ActivityIndicator.vue?vue&type=template&id=c109d738\"\nimport script from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue';\nimport ActivityIndicator from './ActivityIndicator.vue';\nimport translate from '../translate';\n\ninterface ActivityIndicatorAdapterScope extends ng.IScope {\n loading: boolean;\n loadingMessage: string;\n}\n\nexport default function activityIndicatorAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n scope: {\n loading: '<',\n loadingMessage: '<',\n },\n template: '',\n link: function activityIndicatorAdapterLink(\n scope: ActivityIndicatorAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const app = createApp({\n template: '<activity-indicator :loading=\"loading\" :loadingMessage=\"loadingMessage\"/>',\n data() {\n return {\n loading: scope.loading,\n loadingMessage: scope.loadingMessage,\n };\n },\n });\n app.component('activity-indicator', ActivityIndicator);\n const vm = app.mount(element[0]);\n\n scope.$watch('loading', (newValue: boolean) => {\n vm.loading = newValue;\n });\n\n scope.$watch('loadingMessage', (newValue: string) => {\n vm.loadingMessage = newValue || translate('General_LoadingData');\n });\n },\n };\n}\n\nactivityIndicatorAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);\n","export { default as activityIndicatorAdapter } from './ActivityIndicator/ActivityIndicator.adapter';\nexport { default as ActivityIndicator } from './ActivityIndicator/ActivityIndicator.vue';\nexport { default as translate } from './translate';\n","import './setPublicPath'\nexport * from '~entry'\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack://CoreHome/webpack/universalModuleDefinition","webpack://CoreHome/webpack/bootstrap","webpack://CoreHome/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/translate.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?0bf6","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?f42e","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?6f80","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?14a2","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?92a9","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?cc69","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/index.ts","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js"],"names":[],"mappings":"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","file":"CoreHome.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoreHome\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"CoreHome\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","<template>\n <div v-show=\"loading\" class=\"loadingPiwik\">\n <img src=\"plugins/Morpheus/images/loading-blue.gif\" alt=\"\"/>\n <span>{{ loadingMessage }}</span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n</script>\n","export default function translate(translationStringId: string, values: string[] = []): string {\n return window._pk_translate(translationStringId, values); // eslint-disable-line\n}\n","\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n","export { default } from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ActivityIndicator.vue?vue&type=script&lang=ts\"; export * from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ActivityIndicator.vue?vue&type=script&lang=ts\"","import { render } from \"./ActivityIndicator.vue?vue&type=template&id=c109d738\"\nimport script from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue';\nimport ActivityIndicator from './ActivityIndicator.vue';\nimport translate from '../translate';\n\ninterface ActivityIndicatorAdapterScope extends ng.IScope {\n loading: boolean;\n loadingMessage: string;\n}\n\nexport default function activityIndicatorAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n scope: {\n loading: '<',\n loadingMessage: '<',\n },\n template: '',\n link: function activityIndicatorAdapterLink(\n scope: ActivityIndicatorAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const app = createApp({\n template: '<activity-indicator :loading=\"loading\" :loadingMessage=\"loadingMessage\"/>',\n data() {\n return {\n loading: scope.loading,\n loadingMessage: scope.loadingMessage,\n };\n },\n });\n app.component('activity-indicator', ActivityIndicator);\n const vm = app.mount(element[0]);\n\n scope.$watch('loading', (newValue: boolean) => {\n vm.loading = newValue;\n });\n\n scope.$watch('loadingMessage', (newValue: string) => {\n vm.loadingMessage = newValue || translate('General_LoadingData');\n });\n },\n };\n}\n\nactivityIndicatorAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);\n","<template>\n <div\n class=\"alert\"\n :class=\"{ [`alert-${severity}`]: true }\"\n >\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n severity: {\n type: String,\n required: true,\n },\n },\n});\n</script>\n","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n severity: {\n type: String,\n required: true,\n },\n },\n});\n","export { default } from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Alert.vue?vue&type=script&lang=ts\"; export * from \"-!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Alert.vue?vue&type=script&lang=ts\"","import { render } from \"./Alert.vue?vue&type=template&id=c4d43d96\"\nimport script from \"./Alert.vue?vue&type=script&lang=ts\"\nexport * from \"./Alert.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp, ref } from 'vue';\nimport Alert from './Alert.vue';\n\ninterface AlertAdapterScope extends ng.IScope {\n severity: string;\n}\n\nexport default function alertAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n transclude: true,\n scope: {\n severity: '@piwikAlert',\n },\n template: '<div ng-transclude/>',\n compile: function alertAdapterCompile() {\n return {\n post: function alertAdapterPostLink(\n scope: AlertAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const clone = element.find('[ng-transclude]');\n\n const app = createApp({\n template: '<alert :severity=\"severity\"><div ref=\"transcludeTarget\"/></alert>',\n data() {\n return { severity: scope.severity };\n },\n setup() {\n const transcludeTarget = ref(null);\n return {\n transcludeTarget,\n };\n },\n });\n app.component('alert', Alert);\n const vm = app.mount(element[0]);\n\n scope.$watch('severity', (newValue: string) => {\n vm.severity = newValue;\n });\n\n $(vm.transcludeTarget).append(clone);\n },\n };\n },\n };\n}\n\nalertAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikAlert', alertAdapter);\n","export { default as activityIndicatorAdapter } from './ActivityIndicator/ActivityIndicator.adapter';\nexport { default as ActivityIndicator } from './ActivityIndicator/ActivityIndicator.vue';\nexport { default as translate } from './translate';\nexport { default as alertAdapter } from './Alert/Alert.adapter';\n","import './setPublicPath'\nexport * from '~entry'\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
index a19da09f0a..8491c5f946 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
@@ -1,2 +1,2 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["CoreHome"]=t(require("vue")):e["CoreHome"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fae3")}({"8bbf":function(t,n){t.exports=e},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"activityIndicatorAdapter",(function(){return s})),n.d(t,"ActivityIndicator",(function(){return f})),n.d(t,"translate",(function(){return l})),"undefined"!==typeof window){var o=window.document.currentScript,r=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);r&&(n.p=r[1])}var i=n("8bbf");const a={class:"loadingPiwik"},c=Object(i["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1);function u(e,t,n,o,r,u){return Object(i["withDirectives"])((Object(i["openBlock"])(),Object(i["createElementBlock"])("div",a,[c,Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.loadingMessage),1)],512)),[[i["vShow"],e.loading]])}function l(e,t=[]){return window._pk_translate(e,t)}var d=Object(i["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:l("General_LoadingData")}}});d.render=u;var f=d;function s(){return{restrict:"A",scope:{loading:"<",loadingMessage:"<"},template:"",link:function(e,t){const n=Object(i["createApp"])({template:'<activity-indicator :loading="loading" :loadingMessage="loadingMessage"/>',data(){return{loading:e.loading,loadingMessage:e.loadingMessage}}});n.component("activity-indicator",f);const o=n.mount(t[0]);e.$watch("loading",e=>{o.loading=e}),e.$watch("loadingMessage",e=>{o.loadingMessage=e||l("General_LoadingData")})}}}s.$inject=[],angular.module("piwikApp").directive("piwikActivityIndicator",s)}})}));
+(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["CoreHome"]=t(require("vue")):e["CoreHome"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fae3")}({"8bbf":function(t,n){t.exports=e},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"activityIndicatorAdapter",(function(){return p})),n.d(t,"ActivityIndicator",(function(){return s})),n.d(t,"translate",(function(){return u})),n.d(t,"alertAdapter",(function(){return b})),"undefined"!==typeof window){var r=window.document.currentScript,i=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}var o=n("8bbf");const a={class:"loadingPiwik"},c=Object(o["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1);function l(e,t,n,r,i,l){return Object(o["withDirectives"])((Object(o["openBlock"])(),Object(o["createElementBlock"])("div",a,[c,Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.loadingMessage),1)],512)),[[o["vShow"],e.loading]])}function u(e,t=[]){return window._pk_translate(e,t)}var d=Object(o["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:u("General_LoadingData")}}});d.render=l;var s=d;function p(){return{restrict:"A",scope:{loading:"<",loadingMessage:"<"},template:"",link:function(e,t){const n=Object(o["createApp"])({template:'<activity-indicator :loading="loading" :loadingMessage="loadingMessage"/>',data(){return{loading:e.loading,loadingMessage:e.loadingMessage}}});n.component("activity-indicator",s);const r=n.mount(t[0]);e.$watch("loading",e=>{r.loading=e}),e.$watch("loadingMessage",e=>{r.loadingMessage=e||u("General_LoadingData")})}}}function f(e,t,n,r,i,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:Object(o["normalizeClass"])(["alert",{["alert-"+e.severity]:!0}])},[Object(o["renderSlot"])(e.$slots,"default")],2)}p.$inject=[],angular.module("piwikApp").directive("piwikActivityIndicator",p);var g=Object(o["defineComponent"])({props:{severity:{type:String,required:!0}}});g.render=f;var v=g;function b(){return{restrict:"A",transclude:!0,scope:{severity:"@piwikAlert"},template:"<div ng-transclude/>",compile:function(){return{post:function(e,t){const n=t.find("[ng-transclude]"),r=Object(o["createApp"])({template:'<alert :severity="severity"><div ref="transcludeTarget"/></alert>',data(){return{severity:e.severity}},setup(){const e=Object(o["ref"])(null);return{transcludeTarget:e}}});r.component("alert",v);const i=r.mount(t[0]);e.$watch("severity",e=>{i.severity=e}),$(i.transcludeTarget).append(n)}}}}}b.$inject=[],angular.module("piwikApp").directive("piwikAlert",b)}})}));
//# sourceMappingURL=CoreHome.umd.min.js.map \ No newline at end of file
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js.map b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js.map
index d42d77e2ee..74c909a584 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js.map
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://CoreHome/webpack/universalModuleDefinition","webpack://CoreHome/webpack/bootstrap","webpack://CoreHome/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/translate.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?0bf6","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?6f80","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__8bbf__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","currentScript","document","src","match","class","alt","loadingMessage","loading","translate","translationStringId","values","_pk_translate","props","type","Boolean","required","default","String","render","activityIndicatorAdapter","restrict","scope","template","link","element","app","component","ActivityIndicator","vm","mount","$watch","newValue","$inject","angular","directive"],"mappings":"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","file":"CoreHome.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoreHome\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"CoreHome\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","<template>\n <div v-show=\"loading\" class=\"loadingPiwik\">\n <img src=\"plugins/Morpheus/images/loading-blue.gif\" alt=\"\"/>\n <span>{{ loadingMessage }}</span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n</script>\n","export default function translate(translationStringId: string, values: string[] = []): string {\n return window._pk_translate(translationStringId, values); // eslint-disable-line\n}\n","\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n","import { render } from \"./ActivityIndicator.vue?vue&type=template&id=c109d738\"\nimport script from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue';\nimport ActivityIndicator from './ActivityIndicator.vue';\nimport translate from '../translate';\n\ninterface ActivityIndicatorAdapterScope extends ng.IScope {\n loading: boolean;\n loadingMessage: string;\n}\n\nexport default function activityIndicatorAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n scope: {\n loading: '<',\n loadingMessage: '<',\n },\n template: '',\n link: function activityIndicatorAdapterLink(\n scope: ActivityIndicatorAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const app = createApp({\n template: '<activity-indicator :loading=\"loading\" :loadingMessage=\"loadingMessage\"/>',\n data() {\n return {\n loading: scope.loading,\n loadingMessage: scope.loadingMessage,\n };\n },\n });\n app.component('activity-indicator', ActivityIndicator);\n const vm = app.mount(element[0]);\n\n scope.$watch('loading', (newValue: boolean) => {\n vm.loading = newValue;\n });\n\n scope.$watch('loadingMessage', (newValue: string) => {\n vm.loadingMessage = newValue || translate('General_LoadingData');\n });\n },\n };\n}\n\nactivityIndicatorAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack://CoreHome/webpack/universalModuleDefinition","webpack://CoreHome/webpack/bootstrap","webpack://CoreHome/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/translate.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?0bf6","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?6f80","webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?14a2","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?cc69","webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__8bbf__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","currentScript","document","src","match","class","alt","loadingMessage","loading","translate","translationStringId","values","_pk_translate","props","type","Boolean","required","default","String","render","activityIndicatorAdapter","restrict","scope","template","link","element","app","component","ActivityIndicator","vm","mount","$watch","newValue","severity","$inject","angular","directive","alertAdapter","transclude","compile","post","clone","find","transcludeTarget","Alert","$","append"],"mappings":"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","file":"CoreHome.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoreHome\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"CoreHome\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","<template>\n <div v-show=\"loading\" class=\"loadingPiwik\">\n <img src=\"plugins/Morpheus/images/loading-blue.gif\" alt=\"\"/>\n <span>{{ loadingMessage }}</span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n</script>\n","export default function translate(translationStringId: string, values: string[] = []): string {\n return window._pk_translate(translationStringId, values); // eslint-disable-line\n}\n","\nimport { defineComponent } from 'vue';\nimport translate from '../translate';\n\nexport default defineComponent({\n props: {\n loading: {\n type: Boolean,\n required: true,\n default: false,\n },\n loadingMessage: {\n type: String,\n required: false,\n default: translate('General_LoadingData'),\n },\n },\n});\n","import { render } from \"./ActivityIndicator.vue?vue&type=template&id=c109d738\"\nimport script from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityIndicator.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue';\nimport ActivityIndicator from './ActivityIndicator.vue';\nimport translate from '../translate';\n\ninterface ActivityIndicatorAdapterScope extends ng.IScope {\n loading: boolean;\n loadingMessage: string;\n}\n\nexport default function activityIndicatorAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n scope: {\n loading: '<',\n loadingMessage: '<',\n },\n template: '',\n link: function activityIndicatorAdapterLink(\n scope: ActivityIndicatorAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const app = createApp({\n template: '<activity-indicator :loading=\"loading\" :loadingMessage=\"loadingMessage\"/>',\n data() {\n return {\n loading: scope.loading,\n loadingMessage: scope.loadingMessage,\n };\n },\n });\n app.component('activity-indicator', ActivityIndicator);\n const vm = app.mount(element[0]);\n\n scope.$watch('loading', (newValue: boolean) => {\n vm.loading = newValue;\n });\n\n scope.$watch('loadingMessage', (newValue: string) => {\n vm.loadingMessage = newValue || translate('General_LoadingData');\n });\n },\n };\n}\n\nactivityIndicatorAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);\n","<template>\n <div\n class=\"alert\"\n :class=\"{ [`alert-${severity}`]: true }\"\n >\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n severity: {\n type: String,\n required: true,\n },\n },\n});\n</script>\n","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n severity: {\n type: String,\n required: true,\n },\n },\n});\n","import { render } from \"./Alert.vue?vue&type=template&id=c4d43d96\"\nimport script from \"./Alert.vue?vue&type=script&lang=ts\"\nexport * from \"./Alert.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import { createApp, ref } from 'vue';\nimport Alert from './Alert.vue';\n\ninterface AlertAdapterScope extends ng.IScope {\n severity: string;\n}\n\nexport default function alertAdapter(): ng.IDirective {\n return {\n restrict: 'A',\n transclude: true,\n scope: {\n severity: '@piwikAlert',\n },\n template: '<div ng-transclude/>',\n compile: function alertAdapterCompile() {\n return {\n post: function alertAdapterPostLink(\n scope: AlertAdapterScope,\n element: ng.IAugmentedJQuery,\n ) {\n const clone = element.find('[ng-transclude]');\n\n const app = createApp({\n template: '<alert :severity=\"severity\"><div ref=\"transcludeTarget\"/></alert>',\n data() {\n return { severity: scope.severity };\n },\n setup() {\n const transcludeTarget = ref(null);\n return {\n transcludeTarget,\n };\n },\n });\n app.component('alert', Alert);\n const vm = app.mount(element[0]);\n\n scope.$watch('severity', (newValue: string) => {\n vm.severity = newValue;\n });\n\n $(vm.transcludeTarget).append(clone);\n },\n };\n },\n };\n}\n\nalertAdapter.$inject = [];\n\nangular.module('piwikApp').directive('piwikAlert', alertAdapter);\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/plugins/CoreHome/vue/src/Alert/Alert.adapter.ts b/plugins/CoreHome/vue/src/Alert/Alert.adapter.ts
new file mode 100644
index 0000000000..b580fd4c5a
--- /dev/null
+++ b/plugins/CoreHome/vue/src/Alert/Alert.adapter.ts
@@ -0,0 +1,52 @@
+import { createApp, ref } from 'vue';
+import Alert from './Alert.vue';
+
+interface AlertAdapterScope extends ng.IScope {
+ severity: string;
+}
+
+export default function alertAdapter(): ng.IDirective {
+ return {
+ restrict: 'A',
+ transclude: true,
+ scope: {
+ severity: '@piwikAlert',
+ },
+ template: '<div ng-transclude/>',
+ compile: function alertAdapterCompile() {
+ return {
+ post: function alertAdapterPostLink(
+ scope: AlertAdapterScope,
+ element: ng.IAugmentedJQuery,
+ ) {
+ const clone = element.find('[ng-transclude]');
+
+ const app = createApp({
+ template: '<alert :severity="severity"><div ref="transcludeTarget"/></alert>',
+ data() {
+ return { severity: scope.severity };
+ },
+ setup() {
+ const transcludeTarget = ref(null);
+ return {
+ transcludeTarget,
+ };
+ },
+ });
+ app.component('alert', Alert);
+ const vm = app.mount(element[0]);
+
+ scope.$watch('severity', (newValue: string) => {
+ vm.severity = newValue;
+ });
+
+ $(vm.transcludeTarget).append(clone);
+ },
+ };
+ },
+ };
+}
+
+alertAdapter.$inject = [];
+
+angular.module('piwikApp').directive('piwikAlert', alertAdapter);
diff --git a/plugins/CoreHome/vue/src/Alert/Alert.vue b/plugins/CoreHome/vue/src/Alert/Alert.vue
new file mode 100644
index 0000000000..bb2af8afcd
--- /dev/null
+++ b/plugins/CoreHome/vue/src/Alert/Alert.vue
@@ -0,0 +1,21 @@
+<template>
+ <div
+ class="alert"
+ :class="{ [`alert-${severity}`]: true }"
+ >
+ <slot></slot>
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+
+export default defineComponent({
+ props: {
+ severity: {
+ type: String,
+ required: true,
+ },
+ },
+});
+</script>
diff --git a/plugins/CoreHome/angularjs/alert/alert.directive.less b/plugins/CoreHome/vue/src/Alert/alert.less
index 6d1dc174cb..6d1dc174cb 100644
--- a/plugins/CoreHome/angularjs/alert/alert.directive.less
+++ b/plugins/CoreHome/vue/src/Alert/alert.less
diff --git a/plugins/CoreHome/vue/src/index.ts b/plugins/CoreHome/vue/src/index.ts
index 8c7273ec62..750b337f54 100644
--- a/plugins/CoreHome/vue/src/index.ts
+++ b/plugins/CoreHome/vue/src/index.ts
@@ -1,3 +1,4 @@
export { default as activityIndicatorAdapter } from './ActivityIndicator/ActivityIndicator.adapter';
export { default as ActivityIndicator } from './ActivityIndicator/ActivityIndicator.vue';
export { default as translate } from './translate';
+export { default as alertAdapter } from './Alert/Alert.adapter';