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:
Diffstat (limited to 'plugins/CoreHome/vue/dist/CoreHome.umd.js')
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.js2232
1 files changed, 1848 insertions, 384 deletions
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js
index 2468700363..7c16b4c88f 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.js
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js
@@ -7,7 +7,7 @@
exports["CoreHome"] = factory(require("vue"));
else
root["CoreHome"] = factory(root["Vue"]);
-})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_vue__) {
+})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
@@ -87,457 +87,1921 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
+/******/ __webpack_require__.p = "plugins/CoreHome/vue/dist/";
/******/
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js");
+/******/ return __webpack_require__(__webpack_require__.s = "fae3");
/******/ })
/************************************************************************/
/******/ ({
-/***/ "./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189":
-/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./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/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189 ***!
- \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\nconst _hoisted_1 = {\n class: \"loadingPiwik\"\n};\n\nconst _hoisted_2 = /*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createElementVNode\"])(\"img\", {\n src: \"plugins/Morpheus/images/loading-blue.gif\",\n alt: \"\"\n}, null, -1\n/* HOISTED */\n);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"withDirectives\"])((Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"openBlock\"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createElementBlock\"])(\"div\", _hoisted_1, [_hoisted_2, Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createElementVNode\"])(\"span\", null, Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"toDisplayString\"])(_ctx.loadingMessage), 1\n /* TEXT */\n )], 512\n /* NEED_PATCH */\n )), [[vue__WEBPACK_IMPORTED_MODULE_0__[\"vShow\"], _ctx.loading]]);\n}\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./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");
-
-/***/ }),
-
-/***/ "./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=52d77d41":
-/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./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=52d77d41 ***!
- \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"openBlock\"])(), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createElementBlock\"])(\"div\", {\n class: Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"normalizeClass\"])([\"alert\", {\n [`alert-${_ctx.severity}`]: true\n }])\n }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"renderSlot\"])(_ctx.$slots, \"default\")], 2\n /* CLASS */\n );\n}\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./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");
-
-/***/ }),
-
-/***/ "./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts":
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./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/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts ***!
- \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"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: Object(_translate__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('General_LoadingData')\n }\n }\n}));\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./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");
-
-/***/ }),
-
-/***/ "./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts":
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./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 ***!
- \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n props: {\n severity: {\n type: String,\n required: true\n }\n }\n}));\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./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");
-
-/***/ }),
-
-/***/ "./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js":
-/*!**********************************************************************************!*\
- !*** ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js ***!
- \**********************************************************************************/
-/*! exports provided: activityIndicatorAdapter, ActivityIndicator, translate, alertAdapter, AjaxHelper, MatomoUrl, Matomo, Periods, Day, Week, Month, Year, Range, format, getToday, parseDate, todayIsInRange */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _setPublicPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPublicPath */ \"./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\");\n/* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~entry */ \"./plugins/CoreHome/vue/src/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"activityIndicatorAdapter\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"activityIndicatorAdapter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ActivityIndicator\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"ActivityIndicator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"translate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alertAdapter\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"alertAdapter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxHelper\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"AjaxHelper\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MatomoUrl\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"MatomoUrl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Matomo\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Matomo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Periods\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Periods\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Day\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Day\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Week\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Week\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Month\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Month\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Year\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Year\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Range\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"Range\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToday\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"getToday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parseDate\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"parseDate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"todayIsInRange\", function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[\"todayIsInRange\"]; });\n\n\n\n\n\n//# sourceURL=webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js?");
-
-/***/ }),
-
-/***/ "./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js":
-/*!***************************************************************************!*\
- !*** ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js ***!
- \***************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ __webpack_exports__[\"default\"] = (null);\n\n\n//# sourceURL=webpack://CoreHome/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts":
-/*!*********************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts ***!
- \*********************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return activityIndicatorAdapter; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ActivityIndicator_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActivityIndicator.vue */ \"./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue\");\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nfunction activityIndicatorAdapter() {\n return {\n restrict: 'A',\n scope: {\n loading: '<',\n loadingMessage: '<'\n },\n template: '',\n link: function activityIndicatorAdapterLink(scope, element) {\n const app = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createApp\"])({\n template: '<activity-indicator :loading=\"loading\" :loadingMessage=\"loadingMessage\"/>',\n\n data() {\n return {\n loading: scope.loading,\n loadingMessage: scope.loadingMessage\n };\n }\n\n });\n app.config.globalProperties.$sanitize = window.vueSanitize;\n app.component('activity-indicator', _ActivityIndicator_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const vm = app.mount(element[0]);\n scope.$watch('loading', newValue => {\n vm.loading = newValue;\n });\n scope.$watch('loadingMessage', newValue => {\n vm.loadingMessage = newValue || Object(_translate__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('General_LoadingData');\n });\n }\n };\n}\nactivityIndicatorAdapter.$inject = [];\nangular.module('piwikApp').directive('piwikActivityIndicator', activityIndicatorAdapter);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue":
-/*!**************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue ***!
- \**************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ActivityIndicator_vue_vue_type_template_id_44c7b189__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActivityIndicator.vue?vue&type=template&id=44c7b189 */ \"./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189\");\n/* harmony import */ var _ActivityIndicator_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActivityIndicator.vue?vue&type=script&lang=ts */ \"./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts\");\n/* empty/unused harmony star reexport */\n\n\n_ActivityIndicator_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"].render = _ActivityIndicator_vue_vue_type_template_id_44c7b189__WEBPACK_IMPORTED_MODULE_0__[\"render\"]\n/* hot reload */\nif (false) {}\n\n_ActivityIndicator_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"].__file = \"plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue\"\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_ActivityIndicator_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts":
-/*!**************************************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts ***!
- \**************************************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_cli_plugin_typescript_node_modules_cache_loader_dist_cjs_js_ref_14_0_node_modules_babel_loader_lib_index_js_node_modules_vue_cli_plugin_typescript_node_modules_ts_loader_index_js_ref_14_2_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__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!../../../../../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!./ActivityIndicator.vue?vue&type=script&lang=ts */ \"./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _node_modules_vue_cli_plugin_typescript_node_modules_cache_loader_dist_cjs_js_ref_14_0_node_modules_babel_loader_lib_index_js_node_modules_vue_cli_plugin_typescript_node_modules_ts_loader_index_js_ref_14_2_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__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* empty/unused harmony star reexport */ \n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189":
-/*!********************************************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189 ***!
- \********************************************************************************************************/
-/*! exports provided: render */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_cli_plugin_babel_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_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_index_js_ref_0_1_ActivityIndicator_vue_vue_type_template_id_44c7b189__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../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!./ActivityIndicator.vue?vue&type=template&id=44c7b189 */ \"./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=44c7b189\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_cli_plugin_babel_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_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_index_js_ref_0_1_ActivityIndicator_vue_vue_type_template_id_44c7b189__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.adapter.ts":
-/*!*******************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.adapter.ts ***!
- \*******************************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AjaxHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AjaxHelper */ \"./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts\");\n\nwindow.ajaxHelper = _AjaxHelper__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\nfunction ajaxQueue() {\n return globalAjaxQueue;\n}\n\nangular.module('piwikApp.service').service('globalAjaxQueue', ajaxQueue);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.adapter.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts":
-/*!***********************************************************!*\
- !*** ./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts ***!
- \***********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AjaxHelper; });\n/* harmony import */ var _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../MatomoUrl/MatomoUrl */ \"./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts\");\n/* harmony import */ var _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Matomo/Matomo */ \"./plugins/CoreHome/vue/src/Matomo/Matomo.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nwindow.globalAjaxQueue = [];\nwindow.globalAjaxQueue.active = 0;\n\nwindow.globalAjaxQueue.clean = function globalAjaxQueueClean() {\n for (let i = this.length; i >= 0; i -= 1) {\n if (!this[i] || this[i].readyState === 4) {\n this.splice(i, 1);\n }\n }\n};\n\nwindow.globalAjaxQueue.push = function globalAjaxQueuePush(...args) {\n this.active += args.length; // cleanup ajax queue\n\n this.clean(); // call original array push\n\n return Array.prototype.push.call(this, ...args);\n};\n\nwindow.globalAjaxQueue.abort = function globalAjaxQueueAbort() {\n // abort all queued requests if possible\n this.forEach(x => x && x.abort && x.abort()); // remove all elements from array\n\n this.splice(0, this.length);\n this.active = 0;\n};\n/**\n * error callback to use by default\n */\n\n\nfunction defaultErrorCallback(deferred, status) {\n // do not display error message if request was aborted\n if (status === 'abort') {\n return;\n }\n\n const loadingError = $('#loadingError');\n\n if (Piwik_Popover.isOpen() && deferred && deferred.status === 500) {\n if (deferred && deferred.status === 500) {\n $(document.body).html(piwikHelper.escape(deferred.responseText));\n }\n } else {\n loadingError.show();\n }\n}\n/**\n * Global ajax helper to handle requests within Matomo\n */\n\n\nclass AjaxHelper {\n /**\n * Format of response\n */\n\n /**\n * A timeout for the request which will override any global timeout\n */\n\n /**\n * Callback function to be executed on success\n */\n\n /**\n * Use this.callback if an error is returned\n */\n\n /**\n * Callback function to be executed on error\n *\n * @deprecated use the jquery promise API\n */\n\n /**\n * Callback function to be executed on complete (after error or success)\n *\n * @deprecated use the jquery promise API\n */\n\n /**\n * Params to be passed as GET params\n * @see ajaxHelper.mixinDefaultGetParams\n */\n\n /**\n * Base URL used in the AJAX request. Can be set by setUrl.\n *\n * It is set to '?' rather than 'index.php?' to increase chances that it works\n * including for users who have an automatic 301 redirection from index.php? to ?\n * POST values are missing when there is such 301 redirection. So by by-passing\n * this 301 redirection, we avoid this issue.\n *\n * @see ajaxHelper.setUrl\n */\n\n /**\n * Params to be passed as GET params\n * @see ajaxHelper.mixinDefaultPostParams\n */\n\n /**\n * Element to be displayed while loading\n */\n\n /**\n * Element to be displayed on error\n */\n\n /**\n * Handle for current request\n */\n constructor() {\n _defineProperty(this, \"format\", 'json');\n\n _defineProperty(this, \"timeout\", null);\n\n _defineProperty(this, \"callback\", null);\n\n _defineProperty(this, \"useRegularCallbackInCaseOfError\", false);\n\n _defineProperty(this, \"errorCallback\", void 0);\n\n _defineProperty(this, \"withToken\", false);\n\n _defineProperty(this, \"completeCallback\", void 0);\n\n _defineProperty(this, \"getParams\", {});\n\n _defineProperty(this, \"getUrl\", '?');\n\n _defineProperty(this, \"postParams\", {});\n\n _defineProperty(this, \"loadingElement\", null);\n\n _defineProperty(this, \"errorElement\", '#ajaxError');\n\n _defineProperty(this, \"requestHandle\", null);\n\n _defineProperty(this, \"defaultParams\", ['idSite', 'period', 'date', 'segment']);\n\n this.errorCallback = defaultErrorCallback;\n }\n /**\n * Adds params to the request.\n * If params are given more then once, the latest given value is used for the request\n *\n * @param params\n * @param type type of given parameters (POST or GET)\n * @return {void}\n */\n\n\n addParams(params, type) {\n if (typeof params === 'string') {\n // TODO: add global types for broadcast (multiple uses below)\n params = window['broadcast'].getValuesFromUrl(params); // eslint-disable-line\n }\n\n const arrayParams = ['compareSegments', 'comparePeriods', 'compareDates'];\n Object.keys(params).forEach(key => {\n const value = params[key];\n\n if (arrayParams.indexOf(key) !== -1 && !value) {\n return;\n }\n\n if (type.toLowerCase() === 'get') {\n this.getParams[key] = value;\n } else if (type.toLowerCase() === 'post') {\n this.postParams[key] = value;\n }\n });\n }\n\n withTokenInUrl() {\n this.withToken = true;\n }\n /**\n * Sets the base URL to use in the AJAX request.\n */\n\n\n setUrl(url) {\n this.addParams(broadcast.getValuesFromUrl(url), 'GET');\n }\n /**\n * Gets this helper instance ready to send a bulk request. Each argument to this\n * function is a single request to use.\n */\n\n\n setBulkRequests(...urls) {\n const urlsProcessed = urls.map(u => $.param(u));\n this.addParams({\n module: 'API',\n method: 'API.getBulkRequest',\n urls: urlsProcessed,\n format: 'json'\n }, 'post');\n }\n /**\n * Set a timeout (in milliseconds) for the request. This will override any global timeout.\n *\n * @param timeout Timeout in milliseconds\n */\n\n\n setTimeout(timeout) {\n this.timeout = timeout;\n }\n /**\n * Sets the callback called after the request finishes\n *\n * @param callback Callback function\n * @deprecated use the jquery promise API\n */\n\n\n setCallback(callback) {\n this.callback = callback;\n }\n /**\n * Set that the callback passed to setCallback() should be used if an application error (i.e. an\n * Exception in PHP) is returned.\n */\n\n\n useCallbackInCaseOfError() {\n this.useRegularCallbackInCaseOfError = true;\n }\n /**\n * Set callback to redirect on success handler\n * &update=1(+x) will be appended to the current url\n *\n * @param [params] to modify in redirect url\n * @return {void}\n */\n\n\n redirectOnSuccess(params) {\n this.setCallback(() => {\n piwikHelper.redirect(params);\n });\n }\n /**\n * Sets the callback called in case of an error within the request\n *\n * @deprecated use the jquery promise API\n */\n\n\n setErrorCallback(callback) {\n this.errorCallback = callback;\n }\n /**\n * Sets the complete callback which is called after an error or success callback.\n *\n * @deprecated use the jquery promise API\n */\n\n\n setCompleteCallback(callback) {\n this.completeCallback = callback;\n }\n /**\n * Sets the response format for the request\n *\n * @param format response format (e.g. json, html, ...)\n */\n\n\n setFormat(format) {\n this.format = format;\n }\n /**\n * Set the div element to show while request is loading\n *\n * @param [element] selector for the loading element\n */\n\n\n setLoadingElement(element) {\n this.loadingElement = element || '#ajaxLoadingDiv';\n }\n /**\n * Set the div element to show on error\n *\n * @param element selector for the error element\n */\n\n\n setErrorElement(element) {\n if (!element) {\n return;\n }\n\n this.errorElement = element;\n }\n /**\n * Detect whether are allowed to use the given default parameter or not\n */\n\n\n useGETDefaultParameter(parameter) {\n if (parameter && this.defaultParams) {\n for (let i = 0; i < this.defaultParams.length; i += 1) {\n if (this.defaultParams[i] === parameter) {\n return true;\n }\n }\n }\n\n return false;\n }\n /**\n * Removes a default parameter that is usually send automatically along the request.\n *\n * @param parameter A name such as \"period\", \"date\", \"segment\".\n */\n\n\n removeDefaultParameter(parameter) {\n if (parameter && this.defaultParams) {\n for (let i = 0; i < this.defaultParams.length; i += 1) {\n if (this.defaultParams[i] === parameter) {\n this.defaultParams.splice(i, 1);\n }\n }\n }\n }\n /**\n * Send the request\n */\n\n\n send() {\n if ($(this.errorElement).length) {\n $(this.errorElement).hide();\n }\n\n if (this.loadingElement) {\n $(this.loadingElement).fadeIn();\n }\n\n this.requestHandle = this.buildAjaxCall();\n globalAjaxQueue.push(this.requestHandle);\n return this.requestHandle;\n }\n /**\n * Aborts the current request if it is (still) running\n */\n\n\n abort() {\n if (this.requestHandle && typeof this.requestHandle.abort === 'function') {\n this.requestHandle.abort();\n this.requestHandle = null;\n }\n }\n /**\n * Builds and sends the ajax requests\n */\n\n\n buildAjaxCall() {\n const self = this;\n const parameters = this.mixinDefaultGetParams(this.getParams);\n let url = this.getUrl;\n\n if (url[url.length - 1] !== '?') {\n url += '&';\n } // we took care of encoding &segment properly already, so we don't use $.param for it ($.param\n // URL encodes the values)\n\n\n if (parameters.segment) {\n url = `${url}segment=${parameters.segment}&`;\n delete parameters.segment;\n }\n\n if (parameters.date) {\n url = `${url}date=${decodeURIComponent(parameters.date.toString())}&`;\n delete parameters.date;\n }\n\n url += $.param(parameters);\n const ajaxCall = {\n type: 'POST',\n async: true,\n url,\n dataType: this.format || 'json',\n complete: this.completeCallback,\n error: function errorCallback() {\n globalAjaxQueue.active -= 1;\n\n if (self.errorCallback) {\n self.errorCallback.apply(this, arguments); // eslint-disable-line\n }\n },\n success: (response, status, request) => {\n if (this.loadingElement) {\n $(this.loadingElement).hide();\n }\n\n if (response && response.result === 'error' && !this.useRegularCallbackInCaseOfError) {\n let placeAt = null;\n let type = 'toast';\n\n if ($(this.errorElement).length && response.message) {\n $(this.errorElement).show();\n placeAt = this.errorElement;\n type = null;\n }\n\n if (response.message) {\n const UI = window['require']('piwik/UI'); // eslint-disable-line\n\n const notification = new UI.Notification();\n notification.show(response.message, {\n placeat: placeAt,\n context: 'error',\n type,\n id: 'ajaxHelper'\n });\n notification.scrollToNotification();\n }\n } else if (this.callback) {\n this.callback(response, status, request);\n }\n\n globalAjaxQueue.active -= 1;\n\n if (_Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ajaxRequestFinished) {\n _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ajaxRequestFinished();\n }\n },\n data: this.mixinDefaultPostParams(this.postParams),\n timeout: this.timeout !== null ? this.timeout : undefined\n };\n return $.ajax(ajaxCall);\n }\n\n isRequestToApiMethod() {\n return this.getParams && this.getParams.module === 'API' && this.getParams.method || this.postParams && this.postParams.module === 'API' && this.postParams.method;\n }\n\n isWidgetizedRequest() {\n return broadcast.getValueFromUrl('module') === 'Widgetize';\n }\n\n getDefaultPostParams() {\n if (this.withToken || this.isRequestToApiMethod() || _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].shouldPropagateTokenAuth) {\n return {\n token_auth: _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].token_auth,\n // When viewing a widgetized report there won't be any session that can be used, so don't\n // force session usage\n force_api_session: broadcast.isWidgetizeRequestWithoutSession() ? 0 : 1\n };\n }\n\n return {};\n }\n /**\n * Mixin the default parameters to send as POST\n *\n * @param params parameter object\n */\n\n\n mixinDefaultPostParams(params) {\n const defaultParams = this.getDefaultPostParams();\n const mergedParams = { ...defaultParams,\n ...params\n };\n return mergedParams;\n }\n /**\n * Mixin the default parameters to send as GET\n *\n * @param params parameter object\n */\n\n\n mixinDefaultGetParams(originalParams) {\n const segment = _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam('segment');\n const defaultParams = {\n idSite: _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].idSite || broadcast.getValueFromUrl('idSite'),\n period: _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].period || broadcast.getValueFromUrl('period'),\n segment\n };\n const params = originalParams; // never append token_auth to url\n\n if (params.token_auth) {\n params.token_auth = null;\n delete params.token_auth;\n }\n\n Object.keys(defaultParams).forEach(key => {\n if (this.useGETDefaultParameter(key) && !params[key] && !this.postParams[key] && defaultParams[key]) {\n params[key] = defaultParams[key];\n }\n }); // handle default date & period if not already set\n\n if (this.useGETDefaultParameter('date') && !params.date && !this.postParams.date) {\n params.date = _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"default\"].currentDateString;\n }\n\n return params;\n }\n\n}\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts":
-/*!*********************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts ***!
- \*********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return alertAdapter; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Alert_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Alert.vue */ \"./plugins/CoreHome/vue/src/Alert/Alert.vue\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nfunction alertAdapter() {\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(scope, element) {\n const clone = element.find('[ng-transclude]');\n const app = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createApp\"])({\n template: '<alert :severity=\"severity\"><div ref=\"transcludeTarget\"/></alert>',\n\n data() {\n return {\n severity: scope.severity\n };\n },\n\n setup() {\n const transcludeTarget = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n return {\n transcludeTarget\n };\n }\n\n });\n app.config.globalProperties.$sanitize = window.vueSanitize;\n app.component('alert', _Alert_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const vm = app.mount(element[0]);\n scope.$watch('severity', newValue => {\n vm.severity = newValue;\n });\n $(vm.transcludeTarget).append(clone);\n }\n };\n }\n };\n}\nalertAdapter.$inject = [];\nangular.module('piwikApp').directive('piwikAlert', alertAdapter);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Alert/Alert.vue":
-/*!**************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Alert/Alert.vue ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Alert_vue_vue_type_template_id_52d77d41__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alert.vue?vue&type=template&id=52d77d41 */ \"./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=52d77d41\");\n/* harmony import */ var _Alert_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Alert.vue?vue&type=script&lang=ts */ \"./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts\");\n/* empty/unused harmony star reexport */\n\n\n_Alert_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"].render = _Alert_vue_vue_type_template_id_52d77d41__WEBPACK_IMPORTED_MODULE_0__[\"render\"]\n/* hot reload */\nif (false) {}\n\n_Alert_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"].__file = \"plugins/CoreHome/vue/src/Alert/Alert.vue\"\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Alert_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts":
-/*!**************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts ***!
- \**************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_cli_plugin_typescript_node_modules_cache_loader_dist_cjs_js_ref_14_0_node_modules_babel_loader_lib_index_js_node_modules_vue_cli_plugin_typescript_node_modules_ts_loader_index_js_ref_14_2_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__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!../../../../../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!./Alert.vue?vue&type=script&lang=ts */ \"./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=script&lang=ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _node_modules_vue_cli_plugin_typescript_node_modules_cache_loader_dist_cjs_js_ref_14_0_node_modules_babel_loader_lib_index_js_node_modules_vue_cli_plugin_typescript_node_modules_ts_loader_index_js_ref_14_2_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__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* empty/unused harmony star reexport */ \n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=52d77d41":
-/*!********************************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=52d77d41 ***!
- \********************************************************************************/
-/*! exports provided: render */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_cli_plugin_babel_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_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_index_js_ref_0_1_Alert_vue_vue_type_template_id_52d77d41__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../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!./Alert.vue?vue&type=template&id=52d77d41 */ \"./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js?!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./plugins/CoreHome/vue/src/Alert/Alert.vue?vue&type=template&id=52d77d41\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_cli_plugin_babel_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_babel_loader_lib_index_js_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_index_js_ref_0_1_Alert_vue_vue_type_template_id_52d77d41__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Alert/Alert.vue?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Matomo/Matomo.adapter.ts":
-/*!***********************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Matomo/Matomo.adapter.ts ***!
- \***********************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Matomo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Matomo */ \"./plugins/CoreHome/vue/src/Matomo/Matomo.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nfunction piwikService() {\n return _Matomo__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n}\n\nangular.module('piwikApp.service').service('piwik', piwikService);\n\nfunction initPiwikService(piwik, $rootScope) {\n $rootScope.$on('$locationChangeSuccess', piwik.updatePeriodParamsFromUrl);\n}\n\ninitPiwikService.$inject = ['piwik', '$rootScope'];\nangular.module('piwikApp.service').run(initPiwikService);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Matomo/Matomo.adapter.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Matomo/Matomo.ts":
-/*!***************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Matomo/Matomo.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ "2342":
+/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../MatomoUrl/MatomoUrl */ \"./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts\");\n/* harmony import */ var _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Periods/Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _Periods_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Periods/utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nlet originalTitle;\nconst {\n piwik,\n broadcast,\n piwikHelper\n} = window;\npiwik.helper = piwikHelper;\npiwik.broadcast = broadcast;\n\nfunction isValidPeriod(periodStr, dateStr) {\n try {\n _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(periodStr, dateStr);\n return true;\n } catch (e) {\n return false;\n }\n}\n\npiwik.updatePeriodParamsFromUrl = function updatePeriodParamsFromUrl() {\n let date = _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam('date');\n const period = _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam('period');\n\n if (!isValidPeriod(period, date)) {\n // invalid data in URL\n return;\n }\n\n if (piwik.period === period && piwik.currentDateString === date) {\n // this period / date is already loaded\n return;\n }\n\n piwik.period = period;\n const dateRange = _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(period, date).getDateRange();\n piwik.startDateString = Object(_Periods_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(dateRange[0]);\n piwik.endDateString = Object(_Periods_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(dateRange[1]);\n piwik.updateDateInTitle(date, period); // do not set anything to previousN/lastN, as it's more useful to plugins\n // to have the dates than previousN/lastN.\n\n if (piwik.period === 'range') {\n date = `${piwik.startDateString},${piwik.endDateString}`;\n }\n\n piwik.currentDateString = date;\n};\n\npiwik.updateDateInTitle = function updateDateInTitle(date, period) {\n if (!$('.top_controls #periodString').length) {\n return;\n } // Cache server-rendered page title\n\n\n originalTitle = originalTitle || document.title;\n\n if (originalTitle.indexOf(piwik.siteName) === 0) {\n const dateString = ` - ${_Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(period, date).getPrettyString()} `;\n document.title = `${piwik.siteName}${dateString}${originalTitle.substr(piwik.siteName.length)}`;\n }\n};\n\npiwik.hasUserCapability = function hasUserCapability(capability) {\n return window.angular.isArray(piwik.userCapabilities) && piwik.userCapabilities.indexOf(capability) !== -1;\n};\n\nconst Matomo = piwik;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Matomo);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Matomo/Matomo.ts?");
-
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.adapter.ts":
-/*!*****************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.adapter.ts ***!
- \*****************************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+// see https://github.com/matomo-org/matomo/issues/5094 used to detect an ad blocker
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MatomoUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MatomoUrl */ \"./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nfunction piwikUrl() {\n const model = {\n getSearchParam: _MatomoUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam.bind(_MatomoUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n };\n return model;\n}\n\npiwikUrl.$inject = [];\nangular.module('piwikApp.service').service('piwikUrl', piwikUrl);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.adapter.ts?");
+window.hasBlockedContent = false;
/***/ }),
-/***/ "./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts":
-/*!*********************************************************!*\
- !*** ./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts ***!
- \*********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ "8bbf":
+/***/ (function(module, exports) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n/**\n * Similar to angulars $location but works around some limitation. Use it if you need to access\n * search params\n */\nconst MatomoUrl = {\n getSearchParam(paramName) {\n const hash = window.location.href.split('#');\n const regex = new RegExp(`${paramName}(\\\\[]|=)`);\n\n if (hash && hash[1] && regex.test(decodeURIComponent(hash[1]))) {\n const valueFromHash = window.broadcast.getValueFromHash(paramName, window.location.href); // for date, period and idsite fall back to parameter from url, if non in hash was provided\n\n if (valueFromHash || paramName !== 'date' && paramName !== 'period' && paramName !== 'idSite') {\n return valueFromHash;\n }\n }\n\n return window.broadcast.getValueFromUrl(paramName, window.location.search);\n }\n\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (MatomoUrl);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts?");
+module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;
/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Periods/Day.ts":
-/*!*************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Day.ts ***!
- \*************************************************/
-/*! exports provided: default */
+/***/ "fae3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DayPeriod; });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nclass DayPeriod {\n constructor(dateInPeriod) {\n _defineProperty(this, \"dateInPeriod\", void 0);\n\n this.dateInPeriod = dateInPeriod;\n }\n\n static parse(strDate) {\n return new DayPeriod(Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(strDate));\n }\n\n static getDisplayText() {\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('Intl_PeriodDay');\n }\n\n getPrettyString() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(this.dateInPeriod);\n }\n\n getDateRange() {\n return [new Date(this.dateInPeriod.getTime()), new Date(this.dateInPeriod.getTime())];\n }\n\n containsToday() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"])(this.getDateRange());\n }\n\n}\n_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addCustomPeriod('day', DayPeriod);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Day.ts?");
-
-/***/ }),
-
-/***/ "./plugins/CoreHome/vue/src/Periods/Month.ts":
-/*!***************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Month.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "createAngularJsAdapter", function() { return /* reexport */ createAngularJsAdapter; });
+__webpack_require__.d(__webpack_exports__, "activityIndicatorAdapter", function() { return /* reexport */ ActivityIndicator_adapter; });
+__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 */ Alert_adapter; });
+__webpack_require__.d(__webpack_exports__, "AjaxHelper", function() { return /* reexport */ AjaxHelper_AjaxHelper; });
+__webpack_require__.d(__webpack_exports__, "MatomoUrl", function() { return /* reexport */ MatomoUrl_MatomoUrl; });
+__webpack_require__.d(__webpack_exports__, "Matomo", function() { return /* reexport */ Matomo_Matomo; });
+__webpack_require__.d(__webpack_exports__, "Periods", function() { return /* reexport */ Periods_Periods; });
+__webpack_require__.d(__webpack_exports__, "Day", function() { return /* reexport */ Day_DayPeriod; });
+__webpack_require__.d(__webpack_exports__, "Week", function() { return /* reexport */ Week_WeekPeriod; });
+__webpack_require__.d(__webpack_exports__, "Month", function() { return /* reexport */ Month_MonthPeriod; });
+__webpack_require__.d(__webpack_exports__, "Year", function() { return /* reexport */ Year_YearPeriod; });
+__webpack_require__.d(__webpack_exports__, "Range", function() { return /* reexport */ Range_RangePeriod; });
+__webpack_require__.d(__webpack_exports__, "format", function() { return /* reexport */ format; });
+__webpack_require__.d(__webpack_exports__, "getToday", function() { return /* reexport */ getToday; });
+__webpack_require__.d(__webpack_exports__, "parseDate", function() { return /* reexport */ parseDate; });
+__webpack_require__.d(__webpack_exports__, "todayIsInRange", function() { return /* reexport */ todayIsInRange; });
+__webpack_require__.d(__webpack_exports__, "MatomoDialog", function() { return /* reexport */ MatomoDialog; });
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
+// This file is imported into lib/wc client bundles.
+
+if (typeof window !== 'undefined') {
+ var currentScript = window.document.currentScript
+ if (false) { var getCurrentScript; }
+
+ var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
+ if (src) {
+ __webpack_require__.p = src[1] // eslint-disable-line
+ }
+}
+
+// Indicate to webpack that this file can be concatenated
+/* harmony default export */ var setPublicPath = (null);
+
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * Similar to angulars $location but works around some limitation. Use it if you need to access
+ * search params
+ */
+const MatomoUrl = {
+ getSearchParam(paramName) {
+ const hash = window.location.href.split('#');
+ const regex = new RegExp(`${paramName}(\\[]|=)`);
+
+ if (hash && hash[1] && regex.test(decodeURIComponent(hash[1]))) {
+ const valueFromHash = window.broadcast.getValueFromHash(paramName, window.location.href); // for date, period and idsite fall back to parameter from url, if non in hash was provided
+
+ if (valueFromHash || paramName !== 'date' && paramName !== 'period' && paramName !== 'idSite') {
+ return valueFromHash;
+ }
+ }
+
+ return window.broadcast.getValueFromUrl(paramName, window.location.search);
+ }
+
+};
+/* harmony default export */ var MatomoUrl_MatomoUrl = (MatomoUrl);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+function piwikUrl() {
+ const model = {
+ getSearchParam: MatomoUrl_MatomoUrl.getSearchParam.bind(MatomoUrl_MatomoUrl)
+ };
+ return model;
+}
+
+piwikUrl.$inject = [];
+angular.module('piwikApp.service').service('piwikUrl', piwikUrl);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Periods.ts
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * Matomo period management service for the frontend.
+ *
+ * Usage:
+ *
+ * var DayPeriod = matomoPeriods.get('day');
+ * var day = new DayPeriod(new Date());
+ *
+ * or
+ *
+ * var day = matomoPeriods.parse('day', '2013-04-05');
+ *
+ * Adding custom periods:
+ *
+ * To add your own period to the frontend, create a period class for it
+ * w/ the following methods:
+ *
+ * - **getPrettyString()**: returns a human readable display string for the period.
+ * - **getDateRange()**: returns an array w/ two elements, the first being the start
+ * Date of the period, the second being the end Date. The dates
+ * must be Date objects, not strings, and are inclusive.
+ * - **containsToday()**: returns true if the date period contains today. False if not.
+ * - (_static_) **parse(strDate)**: creates a new instance of this period from the
+ * value of the 'date' query parameter.
+ * - (_static_) **getDisplayText**: returns translated text for the period, eg, 'month',
+ * 'week', etc.
+ *
+ * Then call Periods.addCustomPeriod w/ your period class:
+ *
+ * Periods.addCustomPeriod('mycustomperiod', MyCustomPeriod);
+ *
+ * NOTE: currently only single date periods like day, week, month year can
+ * be extended. Other types of periods that require a special UI to
+ * view/edit aren't, since there is currently no way to use a
+ * custom UI for a custom period.
+ */
+class Periods {
+ constructor() {
+ _defineProperty(this, "periods", {});
+
+ _defineProperty(this, "periodOrder", []);
+ }
+
+ addCustomPeriod(name, periodClass) {
+ if (this.periods[name]) {
+ throw new Error(`The "${name}" period already exists! It cannot be overridden.`);
+ }
+
+ this.periods[name] = periodClass;
+ this.periodOrder.push(name);
+ }
+
+ getAllLabels() {
+ return Array().concat(this.periodOrder);
+ }
+
+ get(strPeriod) {
+ const periodClass = this.periods[strPeriod];
+
+ if (!periodClass) {
+ throw new Error(`Invalid period label: ${strPeriod}`);
+ }
+
+ return periodClass;
+ }
+
+ parse(strPeriod, strDate) {
+ return this.get(strPeriod).parse(strDate);
+ }
+
+ isRecognizedPeriod(strPeriod) {
+ return !!this.periods[strPeriod];
+ }
+
+}
+
+/* harmony default export */ var Periods_Periods = (new Periods());
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/utilities.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+function format(date) {
+ return $.datepicker.formatDate('yy-mm-dd', date);
+}
+function getToday() {
+ const date = new Date(Date.now()); // undo browser timezone
+
+ date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000); // apply Matomo site timezone (if it exists)
+
+ date.setHours(date.getHours() + (window.piwik.timezoneOffset || 0) / 3600); // get rid of hours/minutes/seconds/etc.
+
+ date.setHours(0);
+ date.setMinutes(0);
+ date.setSeconds(0);
+ date.setMilliseconds(0);
+ return date;
+}
+function parseDate(date) {
+ if (date instanceof Date) {
+ return date;
+ }
+
+ const strDate = decodeURIComponent(date);
+
+ if (strDate === 'today' || strDate === 'now') {
+ return getToday();
+ }
+
+ if (strDate === 'yesterday' // note: ignoring the 'same time' part since the frontend doesn't care about the time
+ || strDate === 'yesterdaySameTime') {
+ const yesterday = getToday();
+ yesterday.setDate(yesterday.getDate() - 1);
+ return yesterday;
+ }
+
+ if (strDate.match(/last[ -]?week/i)) {
+ const lastWeek = getToday();
+ lastWeek.setDate(lastWeek.getDate() - 7);
+ return lastWeek;
+ }
+
+ if (strDate.match(/last[ -]?month/i)) {
+ const lastMonth = getToday();
+ lastMonth.setDate(1);
+ lastMonth.setMonth(lastMonth.getMonth() - 1);
+ return lastMonth;
+ }
+
+ if (strDate.match(/last[ -]?year/i)) {
+ const lastYear = getToday();
+ lastYear.setFullYear(lastYear.getFullYear() - 1);
+ return lastYear;
+ }
+
+ try {
+ return $.datepicker.parseDate('yy-mm-dd', strDate);
+ } catch (err) {
+ // angular swallows this error, so manual console log here
+ console.error(err.message || err);
+ throw err;
+ }
+}
+function todayIsInRange(dateRange) {
+ if (dateRange.length !== 2) {
+ return false;
+ }
+
+ if (getToday() >= dateRange[0] && getToday() <= dateRange[1]) {
+ return true;
+ }
+
+ return false;
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Matomo/Matomo.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+let originalTitle;
+const {
+ piwik,
+ broadcast: Matomo_broadcast,
+ piwikHelper: Matomo_piwikHelper
+} = window;
+piwik.helper = Matomo_piwikHelper;
+piwik.broadcast = Matomo_broadcast;
+
+function isValidPeriod(periodStr, dateStr) {
+ try {
+ Periods_Periods.parse(periodStr, dateStr);
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+
+piwik.updatePeriodParamsFromUrl = function updatePeriodParamsFromUrl() {
+ let date = MatomoUrl_MatomoUrl.getSearchParam('date');
+ const period = MatomoUrl_MatomoUrl.getSearchParam('period');
+
+ if (!isValidPeriod(period, date)) {
+ // invalid data in URL
+ return;
+ }
+
+ if (piwik.period === period && piwik.currentDateString === date) {
+ // this period / date is already loaded
+ return;
+ }
+
+ piwik.period = period;
+ const dateRange = Periods_Periods.parse(period, date).getDateRange();
+ piwik.startDateString = format(dateRange[0]);
+ piwik.endDateString = format(dateRange[1]);
+ piwik.updateDateInTitle(date, period); // do not set anything to previousN/lastN, as it's more useful to plugins
+ // to have the dates than previousN/lastN.
+
+ if (piwik.period === 'range') {
+ date = `${piwik.startDateString},${piwik.endDateString}`;
+ }
+
+ piwik.currentDateString = date;
+};
+
+piwik.updateDateInTitle = function updateDateInTitle(date, period) {
+ if (!$('.top_controls #periodString').length) {
+ return;
+ } // Cache server-rendered page title
+
+
+ originalTitle = originalTitle || document.title;
+
+ if (originalTitle.indexOf(piwik.siteName) === 0) {
+ const dateString = ` - ${Periods_Periods.parse(period, date).getPrettyString()} `;
+ document.title = `${piwik.siteName}${dateString}${originalTitle.substr(piwik.siteName.length)}`;
+ }
+};
+
+piwik.hasUserCapability = function hasUserCapability(capability) {
+ return window.angular.isArray(piwik.userCapabilities) && piwik.userCapabilities.indexOf(capability) !== -1;
+};
+
+const Matomo = piwik;
+/* harmony default export */ var Matomo_Matomo = (Matomo);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Matomo/Matomo.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+function piwikService() {
+ return Matomo_Matomo;
+}
+
+angular.module('piwikApp.service').service('piwik', piwikService);
+
+function initPiwikService(piwik, $rootScope) {
+ $rootScope.$on('$locationChangeSuccess', piwik.updatePeriodParamsFromUrl);
+}
+
+initPiwikService.$inject = ['piwik', '$rootScope'];
+angular.module('piwikApp.service').run(initPiwikService);
+// EXTERNAL MODULE: ./plugins/CoreHome/vue/src/noAdblockFlag.ts
+var noAdblockFlag = __webpack_require__("2342");
+
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/translate.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+function translate(translationStringId, values = []) {
+ return window._pk_translate(translationStringId, values); // eslint-disable-line
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Day.ts
+function Day_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+class Day_DayPeriod {
+ constructor(dateInPeriod) {
+ Day_defineProperty(this, "dateInPeriod", void 0);
+
+ this.dateInPeriod = dateInPeriod;
+ }
+
+ static parse(strDate) {
+ return new Day_DayPeriod(parseDate(strDate));
+ }
+
+ static getDisplayText() {
+ return translate('Intl_PeriodDay');
+ }
+
+ getPrettyString() {
+ return format(this.dateInPeriod);
+ }
+
+ getDateRange() {
+ return [new Date(this.dateInPeriod.getTime()), new Date(this.dateInPeriod.getTime())];
+ }
+
+ containsToday() {
+ return todayIsInRange(this.getDateRange());
+ }
+
+}
+Periods_Periods.addCustomPeriod('day', Day_DayPeriod);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Week.ts
+function Week_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+class Week_WeekPeriod {
+ constructor(dateInPeriod) {
+ Week_defineProperty(this, "dateInPeriod", void 0);
+
+ this.dateInPeriod = dateInPeriod;
+ }
+
+ static parse(strDate) {
+ return new Week_WeekPeriod(parseDate(strDate));
+ }
+
+ static getDisplayText() {
+ return translate('Intl_PeriodWeek');
+ }
+
+ getPrettyString() {
+ const weekDates = this.getDateRange();
+ const startWeek = format(weekDates[0]);
+ const endWeek = format(weekDates[1]);
+ return translate('General_DateRangeFromTo', [startWeek, endWeek]);
+ }
+
+ getDateRange() {
+ const daysToMonday = (this.dateInPeriod.getDay() + 6) % 7;
+ const startWeek = new Date(this.dateInPeriod.getTime());
+ startWeek.setDate(this.dateInPeriod.getDate() - daysToMonday);
+ const endWeek = new Date(startWeek.getTime());
+ endWeek.setDate(startWeek.getDate() + 6);
+ return [startWeek, endWeek];
+ }
+
+ containsToday() {
+ return todayIsInRange(this.getDateRange());
+ }
+
+}
+Periods_Periods.addCustomPeriod('week', Week_WeekPeriod);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Month.ts
+function Month_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+class Month_MonthPeriod {
+ constructor(dateInPeriod) {
+ Month_defineProperty(this, "dateInPeriod", void 0);
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MonthPeriod; });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nclass MonthPeriod {\n constructor(dateInPeriod) {\n _defineProperty(this, \"dateInPeriod\", void 0);\n\n this.dateInPeriod = dateInPeriod;\n }\n\n static parse(strDate) {\n return new MonthPeriod(Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(strDate));\n }\n\n static getDisplayText() {\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('Intl_PeriodMonth');\n }\n\n getPrettyString() {\n const month = Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(`Intl_Month_Long_StandAlone_${this.dateInPeriod.getMonth() + 1}`);\n return `${month} ${this.dateInPeriod.getFullYear()}`;\n }\n\n getDateRange() {\n const startMonth = new Date(this.dateInPeriod.getTime());\n startMonth.setDate(1);\n const endMonth = new Date(this.dateInPeriod.getTime());\n endMonth.setDate(1);\n endMonth.setMonth(endMonth.getMonth() + 1);\n endMonth.setDate(0);\n return [startMonth, endMonth];\n }\n\n containsToday() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"])(this.getDateRange());\n }\n\n}\n_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addCustomPeriod('month', MonthPeriod);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Month.ts?");
+ this.dateInPeriod = dateInPeriod;
+ }
-/***/ }),
+ static parse(strDate) {
+ return new Month_MonthPeriod(parseDate(strDate));
+ }
+
+ static getDisplayText() {
+ return translate('Intl_PeriodMonth');
+ }
+
+ getPrettyString() {
+ const month = translate(`Intl_Month_Long_StandAlone_${this.dateInPeriod.getMonth() + 1}`);
+ return `${month} ${this.dateInPeriod.getFullYear()}`;
+ }
+
+ getDateRange() {
+ const startMonth = new Date(this.dateInPeriod.getTime());
+ startMonth.setDate(1);
+ const endMonth = new Date(this.dateInPeriod.getTime());
+ endMonth.setDate(1);
+ endMonth.setMonth(endMonth.getMonth() + 1);
+ endMonth.setDate(0);
+ return [startMonth, endMonth];
+ }
+
+ containsToday() {
+ return todayIsInRange(this.getDateRange());
+ }
+
+}
+Periods_Periods.addCustomPeriod('month', Month_MonthPeriod);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Year.ts
+function Year_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+class Year_YearPeriod {
+ constructor(dateInPeriod) {
+ Year_defineProperty(this, "dateInPeriod", void 0);
+
+ this.dateInPeriod = dateInPeriod;
+ }
+
+ static parse(strDate) {
+ return new Year_YearPeriod(parseDate(strDate));
+ }
+
+ static getDisplayText() {
+ return translate('Intl_PeriodYear');
+ }
+
+ getPrettyString() {
+ return this.dateInPeriod.getFullYear().toString();
+ }
+
+ getDateRange() {
+ const startYear = new Date(this.dateInPeriod.getTime());
+ startYear.setMonth(0);
+ startYear.setDate(1);
+ const endYear = new Date(this.dateInPeriod.getTime());
+ endYear.setMonth(12);
+ endYear.setDate(0);
+ return [startYear, endYear];
+ }
+
+ containsToday() {
+ return todayIsInRange(this.getDateRange());
+ }
+
+}
+Periods_Periods.addCustomPeriod('year', Year_YearPeriod);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Range.ts
+function Range_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+class Range_RangePeriod {
+ constructor(startDate, endDate, childPeriodType) {
+ Range_defineProperty(this, "startDate", void 0);
+
+ Range_defineProperty(this, "endDate", void 0);
+
+ Range_defineProperty(this, "childPeriodType", void 0);
+
+ this.startDate = startDate;
+ this.endDate = endDate;
+ this.childPeriodType = childPeriodType;
+ }
+ /**
+ * Returns a range representing the last N childPeriodType periods, including the current one.
+ */
+
+
+ static getLastNRange(childPeriodType, strAmount, strEndDate) {
+ const nAmount = Math.max(parseInt(strAmount.toString(), 10) - 1, 0);
+
+ if (Number.isNaN(nAmount)) {
+ throw new Error('Invalid range strAmount');
+ }
+
+ let endDate = strEndDate ? parseDate(strEndDate) : getToday();
+ let startDate = new Date(endDate.getTime());
+
+ if (childPeriodType === 'day') {
+ startDate.setDate(startDate.getDate() - nAmount);
+ } else if (childPeriodType === 'week') {
+ startDate.setDate(startDate.getDate() - nAmount * 7);
+ } else if (childPeriodType === 'month') {
+ startDate.setDate(1);
+ startDate.setMonth(startDate.getMonth() - nAmount);
+ } else if (childPeriodType === 'year') {
+ startDate.setFullYear(startDate.getFullYear() - nAmount);
+ } else {
+ throw new Error(`Unknown period type '${childPeriodType}'.`);
+ }
+
+ if (childPeriodType !== 'day') {
+ const startPeriod = Periods_Periods.periods[childPeriodType].parse(startDate);
+ const endPeriod = Periods_Periods.periods[childPeriodType].parse(endDate);
+ [startDate] = startPeriod.getDateRange();
+ [, endDate] = endPeriod.getDateRange();
+ }
+
+ const firstWebsiteDate = new Date(1991, 7, 6);
+
+ if (startDate.getTime() - firstWebsiteDate.getTime() < 0) {
+ switch (childPeriodType) {
+ case 'year':
+ startDate = new Date(1992, 0, 1);
+ break;
+
+ case 'month':
+ startDate = new Date(1991, 8, 1);
+ break;
+
+ case 'week':
+ startDate = new Date(1991, 8, 12);
+ break;
+
+ case 'day':
+ default:
+ startDate = firstWebsiteDate;
+ break;
+ }
+ }
+
+ return new Range_RangePeriod(startDate, endDate, childPeriodType);
+ }
+ /**
+ * Returns a range representing a specific child date range counted back from the end date
+ *
+ * @param childPeriodType Type of the period, eg. day, week, year
+ * @param rangeEndDate
+ * @param countBack Return only the child date range for this specific period number
+ * @returns {RangePeriod}
+ */
+
+
+ static getLastNRangeChild(childPeriodType, rangeEndDate, countBack) {
+ const ed = rangeEndDate ? parseDate(rangeEndDate) : getToday();
+ let startDate = new Date(ed.getTime());
+ let endDate = new Date(ed.getTime());
+
+ if (childPeriodType === 'day') {
+ startDate.setDate(startDate.getDate() - countBack);
+ endDate.setDate(endDate.getDate() - countBack);
+ } else if (childPeriodType === 'week') {
+ startDate.setDate(startDate.getDate() - countBack * 7);
+ endDate.setDate(endDate.getDate() - countBack * 7);
+ } else if (childPeriodType === 'month') {
+ startDate.setDate(1);
+ startDate.setMonth(startDate.getMonth() - countBack);
+ endDate.setDate(1);
+ endDate.setMonth(endDate.getMonth() - countBack);
+ } else if (childPeriodType === 'year') {
+ startDate.setFullYear(startDate.getFullYear() - countBack);
+ endDate.setFullYear(endDate.getFullYear() - countBack);
+ } else {
+ throw new Error(`Unknown period type '${childPeriodType}'.`);
+ }
+
+ if (childPeriodType !== 'day') {
+ const startPeriod = Periods_Periods.periods[childPeriodType].parse(startDate);
+ const endPeriod = Periods_Periods.periods[childPeriodType].parse(endDate);
+ [startDate] = startPeriod.getDateRange();
+ [, endDate] = endPeriod.getDateRange();
+ }
+
+ const firstWebsiteDate = new Date(1991, 7, 6);
+
+ if (startDate.getTime() - firstWebsiteDate.getTime() < 0) {
+ switch (childPeriodType) {
+ case 'year':
+ startDate = new Date(1992, 0, 1);
+ break;
+
+ case 'month':
+ startDate = new Date(1991, 8, 1);
+ break;
+
+ case 'week':
+ startDate = new Date(1991, 8, 12);
+ break;
+
+ case 'day':
+ default:
+ startDate = firstWebsiteDate;
+ break;
+ }
+ }
+
+ return new Range_RangePeriod(startDate, endDate, childPeriodType);
+ }
+
+ static parse(strDate, childPeriodType = 'day') {
+ if (/^previous/.test(strDate)) {
+ const endDate = Range_RangePeriod.getLastNRange(childPeriodType, '2').startDate;
+ return Range_RangePeriod.getLastNRange(childPeriodType, strDate.substring(8), endDate);
+ }
+
+ if (/^last/.test(strDate)) {
+ return Range_RangePeriod.getLastNRange(childPeriodType, strDate.substring(4));
+ }
+
+ const parts = decodeURIComponent(strDate).split(',');
+ return new Range_RangePeriod(parseDate(parts[0]), parseDate(parts[1]), childPeriodType);
+ }
+
+ static getDisplayText() {
+ return translate('General_DateRangeInPeriodList');
+ }
+
+ getPrettyString() {
+ const start = format(this.startDate);
+ const end = format(this.endDate);
+ return translate('General_DateRangeFromTo', [start, end]);
+ }
+
+ getDateRange() {
+ return [this.startDate, this.endDate];
+ }
+
+ containsToday() {
+ return todayIsInRange(this.getDateRange());
+ }
+
+}
+Periods_Periods.addCustomPeriod('range', Range_RangePeriod);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+window.piwik.addCustomPeriod = Periods_Periods.addCustomPeriod.bind(Periods_Periods);
+
+function piwikPeriods() {
+ return {
+ getAllLabels: Periods_Periods.getAllLabels.bind(Periods_Periods),
+ isRecognizedPeriod: Periods_Periods.isRecognizedPeriod.bind(Periods_Periods),
+ get: Periods_Periods.get.bind(Periods_Periods),
+ parse: Periods_Periods.parse.bind(Periods_Periods),
+ parseDate: parseDate,
+ format: format,
+ RangePeriod: Range_RangePeriod,
+ todayIsInRange: todayIsInRange
+ };
+}
+
+angular.module('piwikApp.service').factory('piwikPeriods', piwikPeriods);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts
+function AjaxHelper_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+window.globalAjaxQueue = [];
+window.globalAjaxQueue.active = 0;
+
+window.globalAjaxQueue.clean = function globalAjaxQueueClean() {
+ for (let i = this.length; i >= 0; i -= 1) {
+ if (!this[i] || this[i].readyState === 4) {
+ this.splice(i, 1);
+ }
+ }
+};
+
+window.globalAjaxQueue.push = function globalAjaxQueuePush(...args) {
+ this.active += args.length; // cleanup ajax queue
+
+ this.clean(); // call original array push
+
+ return Array.prototype.push.call(this, ...args);
+};
+
+window.globalAjaxQueue.abort = function globalAjaxQueueAbort() {
+ // abort all queued requests if possible
+ this.forEach(x => x && x.abort && x.abort()); // remove all elements from array
+
+ this.splice(0, this.length);
+ this.active = 0;
+};
+/**
+ * error callback to use by default
+ */
+
+
+function defaultErrorCallback(deferred, status) {
+ // do not display error message if request was aborted
+ if (status === 'abort') {
+ return;
+ }
+
+ const loadingError = $('#loadingError');
+
+ if (Piwik_Popover.isOpen() && deferred && deferred.status === 500) {
+ if (deferred && deferred.status === 500) {
+ $(document.body).html(piwikHelper.escape(deferred.responseText));
+ }
+ } else {
+ loadingError.show();
+ }
+}
+/**
+ * Global ajax helper to handle requests within Matomo
+ */
+
+
+class AjaxHelper_AjaxHelper {
+ /**
+ * Format of response
+ */
+
+ /**
+ * A timeout for the request which will override any global timeout
+ */
+
+ /**
+ * Callback function to be executed on success
+ */
+
+ /**
+ * Use this.callback if an error is returned
+ */
-/***/ "./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts":
-/*!*************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts ***!
- \*************************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+ /**
+ * Callback function to be executed on error
+ *
+ * @deprecated use the jquery promise API
+ */
+
+ /**
+ * Callback function to be executed on complete (after error or success)
+ *
+ * @deprecated use the jquery promise API
+ */
+
+ /**
+ * Params to be passed as GET params
+ * @see ajaxHelper.mixinDefaultGetParams
+ */
+
+ /**
+ * Base URL used in the AJAX request. Can be set by setUrl.
+ *
+ * It is set to '?' rather than 'index.php?' to increase chances that it works
+ * including for users who have an automatic 301 redirection from index.php? to ?
+ * POST values are missing when there is such 301 redirection. So by by-passing
+ * this 301 redirection, we avoid this issue.
+ *
+ * @see ajaxHelper.setUrl
+ */
+
+ /**
+ * Params to be passed as GET params
+ * @see ajaxHelper.mixinDefaultPostParams
+ */
+
+ /**
+ * Element to be displayed while loading
+ */
+
+ /**
+ * Element to be displayed on error
+ */
+
+ /**
+ * Handle for current request
+ */
+ constructor() {
+ AjaxHelper_defineProperty(this, "format", 'json');
+
+ AjaxHelper_defineProperty(this, "timeout", null);
+
+ AjaxHelper_defineProperty(this, "callback", null);
+
+ AjaxHelper_defineProperty(this, "useRegularCallbackInCaseOfError", false);
+
+ AjaxHelper_defineProperty(this, "errorCallback", void 0);
+
+ AjaxHelper_defineProperty(this, "withToken", false);
+
+ AjaxHelper_defineProperty(this, "completeCallback", void 0);
+
+ AjaxHelper_defineProperty(this, "getParams", {});
+
+ AjaxHelper_defineProperty(this, "getUrl", '?');
+
+ AjaxHelper_defineProperty(this, "postParams", {});
+
+ AjaxHelper_defineProperty(this, "loadingElement", null);
+
+ AjaxHelper_defineProperty(this, "errorElement", '#ajaxError');
+
+ AjaxHelper_defineProperty(this, "requestHandle", null);
+
+ AjaxHelper_defineProperty(this, "defaultParams", ['idSite', 'period', 'date', 'segment']);
+
+ this.errorCallback = defaultErrorCallback;
+ }
+ /**
+ * Adds params to the request.
+ * If params are given more then once, the latest given value is used for the request
+ *
+ * @param params
+ * @param type type of given parameters (POST or GET)
+ * @return {void}
+ */
+
+
+ addParams(params, type) {
+ if (typeof params === 'string') {
+ // TODO: add global types for broadcast (multiple uses below)
+ params = window['broadcast'].getValuesFromUrl(params); // eslint-disable-line
+ }
+
+ const arrayParams = ['compareSegments', 'comparePeriods', 'compareDates'];
+ Object.keys(params).forEach(key => {
+ const value = params[key];
+
+ if (arrayParams.indexOf(key) !== -1 && !value) {
+ return;
+ }
+
+ if (type.toLowerCase() === 'get') {
+ this.getParams[key] = value;
+ } else if (type.toLowerCase() === 'post') {
+ this.postParams[key] = value;
+ }
+ });
+ }
+
+ withTokenInUrl() {
+ this.withToken = true;
+ }
+ /**
+ * Sets the base URL to use in the AJAX request.
+ */
+
+
+ setUrl(url) {
+ this.addParams(broadcast.getValuesFromUrl(url), 'GET');
+ }
+ /**
+ * Gets this helper instance ready to send a bulk request. Each argument to this
+ * function is a single request to use.
+ */
+
+
+ setBulkRequests(...urls) {
+ const urlsProcessed = urls.map(u => $.param(u));
+ this.addParams({
+ module: 'API',
+ method: 'API.getBulkRequest',
+ urls: urlsProcessed,
+ format: 'json'
+ }, 'post');
+ }
+ /**
+ * Set a timeout (in milliseconds) for the request. This will override any global timeout.
+ *
+ * @param timeout Timeout in milliseconds
+ */
+
+
+ setTimeout(timeout) {
+ this.timeout = timeout;
+ }
+ /**
+ * Sets the callback called after the request finishes
+ *
+ * @param callback Callback function
+ * @deprecated use the jquery promise API
+ */
+
+
+ setCallback(callback) {
+ this.callback = callback;
+ }
+ /**
+ * Set that the callback passed to setCallback() should be used if an application error (i.e. an
+ * Exception in PHP) is returned.
+ */
+
+
+ useCallbackInCaseOfError() {
+ this.useRegularCallbackInCaseOfError = true;
+ }
+ /**
+ * Set callback to redirect on success handler
+ * &update=1(+x) will be appended to the current url
+ *
+ * @param [params] to modify in redirect url
+ * @return {void}
+ */
+
+
+ redirectOnSuccess(params) {
+ this.setCallback(() => {
+ piwikHelper.redirect(params);
+ });
+ }
+ /**
+ * Sets the callback called in case of an error within the request
+ *
+ * @deprecated use the jquery promise API
+ */
+
+
+ setErrorCallback(callback) {
+ this.errorCallback = callback;
+ }
+ /**
+ * Sets the complete callback which is called after an error or success callback.
+ *
+ * @deprecated use the jquery promise API
+ */
+
+
+ setCompleteCallback(callback) {
+ this.completeCallback = callback;
+ }
+ /**
+ * Sets the response format for the request
+ *
+ * @param format response format (e.g. json, html, ...)
+ */
+
+
+ setFormat(format) {
+ this.format = format;
+ }
+ /**
+ * Set the div element to show while request is loading
+ *
+ * @param [element] selector for the loading element
+ */
+
+
+ setLoadingElement(element) {
+ this.loadingElement = element || '#ajaxLoadingDiv';
+ }
+ /**
+ * Set the div element to show on error
+ *
+ * @param element selector for the error element
+ */
+
+
+ setErrorElement(element) {
+ if (!element) {
+ return;
+ }
+
+ this.errorElement = element;
+ }
+ /**
+ * Detect whether are allowed to use the given default parameter or not
+ */
+
+
+ useGETDefaultParameter(parameter) {
+ if (parameter && this.defaultParams) {
+ for (let i = 0; i < this.defaultParams.length; i += 1) {
+ if (this.defaultParams[i] === parameter) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+ /**
+ * Removes a default parameter that is usually send automatically along the request.
+ *
+ * @param parameter A name such as "period", "date", "segment".
+ */
+
+
+ removeDefaultParameter(parameter) {
+ if (parameter && this.defaultParams) {
+ for (let i = 0; i < this.defaultParams.length; i += 1) {
+ if (this.defaultParams[i] === parameter) {
+ this.defaultParams.splice(i, 1);
+ }
+ }
+ }
+ }
+ /**
+ * Send the request
+ */
+
+
+ send() {
+ if ($(this.errorElement).length) {
+ $(this.errorElement).hide();
+ }
+
+ if (this.loadingElement) {
+ $(this.loadingElement).fadeIn();
+ }
+
+ this.requestHandle = this.buildAjaxCall();
+ globalAjaxQueue.push(this.requestHandle);
+ return this.requestHandle;
+ }
+ /**
+ * Aborts the current request if it is (still) running
+ */
+
+
+ abort() {
+ if (this.requestHandle && typeof this.requestHandle.abort === 'function') {
+ this.requestHandle.abort();
+ this.requestHandle = null;
+ }
+ }
+ /**
+ * Builds and sends the ajax requests
+ */
+
+
+ buildAjaxCall() {
+ const self = this;
+ const parameters = this.mixinDefaultGetParams(this.getParams);
+ let url = this.getUrl;
+
+ if (url[url.length - 1] !== '?') {
+ url += '&';
+ } // we took care of encoding &segment properly already, so we don't use $.param for it ($.param
+ // URL encodes the values)
+
+
+ if (parameters.segment) {
+ url = `${url}segment=${parameters.segment}&`;
+ delete parameters.segment;
+ }
+
+ if (parameters.date) {
+ url = `${url}date=${decodeURIComponent(parameters.date.toString())}&`;
+ delete parameters.date;
+ }
+
+ url += $.param(parameters);
+ const ajaxCall = {
+ type: 'POST',
+ async: true,
+ url,
+ dataType: this.format || 'json',
+ complete: this.completeCallback,
+ error: function errorCallback() {
+ globalAjaxQueue.active -= 1;
+
+ if (self.errorCallback) {
+ self.errorCallback.apply(this, arguments); // eslint-disable-line
+ }
+ },
+ success: (response, status, request) => {
+ if (this.loadingElement) {
+ $(this.loadingElement).hide();
+ }
+
+ if (response && response.result === 'error' && !this.useRegularCallbackInCaseOfError) {
+ let placeAt = null;
+ let type = 'toast';
+
+ if ($(this.errorElement).length && response.message) {
+ $(this.errorElement).show();
+ placeAt = this.errorElement;
+ type = null;
+ }
+
+ if (response.message) {
+ const UI = window['require']('piwik/UI'); // eslint-disable-line
+
+ const notification = new UI.Notification();
+ notification.show(response.message, {
+ placeat: placeAt,
+ context: 'error',
+ type,
+ id: 'ajaxHelper'
+ });
+ notification.scrollToNotification();
+ }
+ } else if (this.callback) {
+ this.callback(response, status, request);
+ }
+
+ globalAjaxQueue.active -= 1;
+
+ if (Matomo_Matomo.ajaxRequestFinished) {
+ Matomo_Matomo.ajaxRequestFinished();
+ }
+ },
+ data: this.mixinDefaultPostParams(this.postParams),
+ timeout: this.timeout !== null ? this.timeout : undefined
+ };
+ return $.ajax(ajaxCall);
+ }
+
+ isRequestToApiMethod() {
+ return this.getParams && this.getParams.module === 'API' && this.getParams.method || this.postParams && this.postParams.module === 'API' && this.postParams.method;
+ }
+
+ isWidgetizedRequest() {
+ return broadcast.getValueFromUrl('module') === 'Widgetize';
+ }
+
+ getDefaultPostParams() {
+ if (this.withToken || this.isRequestToApiMethod() || Matomo_Matomo.shouldPropagateTokenAuth) {
+ return {
+ token_auth: Matomo_Matomo.token_auth,
+ // When viewing a widgetized report there won't be any session that can be used, so don't
+ // force session usage
+ force_api_session: broadcast.isWidgetizeRequestWithoutSession() ? 0 : 1
+ };
+ }
+
+ return {};
+ }
+ /**
+ * Mixin the default parameters to send as POST
+ *
+ * @param params parameter object
+ */
+
+
+ mixinDefaultPostParams(params) {
+ const defaultParams = this.getDefaultPostParams();
+ const mergedParams = { ...defaultParams,
+ ...params
+ };
+ return mergedParams;
+ }
+ /**
+ * Mixin the default parameters to send as GET
+ *
+ * @param params parameter object
+ */
+
+
+ mixinDefaultGetParams(originalParams) {
+ const segment = MatomoUrl_MatomoUrl.getSearchParam('segment');
+ const defaultParams = {
+ idSite: Matomo_Matomo.idSite || broadcast.getValueFromUrl('idSite'),
+ period: Matomo_Matomo.period || broadcast.getValueFromUrl('period'),
+ segment
+ };
+ const params = originalParams; // never append token_auth to url
+
+ if (params.token_auth) {
+ params.token_auth = null;
+ delete params.token_auth;
+ }
+
+ Object.keys(defaultParams).forEach(key => {
+ if (this.useGETDefaultParameter(key) && !params[key] && !this.postParams[key] && defaultParams[key]) {
+ params[key] = defaultParams[key];
+ }
+ }); // handle default date & period if not already set
+
+ if (this.useGETDefaultParameter('date') && !params.date && !this.postParams.date) {
+ params.date = Matomo_Matomo.currentDateString;
+ }
+
+ return params;
+ }
+
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.adapter.ts
+
+window.ajaxHelper = AjaxHelper_AjaxHelper;
+
+function ajaxQueue() {
+ return globalAjaxQueue;
+}
+
+angular.module('piwikApp.service').service('globalAjaxQueue', ajaxQueue);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * Similar to angulars $location but works around some limitation. Use it if you need to access
+ * search params
+ */
+const PiwikUrl = {
+ getSearchParam(paramName) {
+ const hash = window.location.href.split('#');
+ const regex = new RegExp(`${paramName}(\\[]|=)`);
+
+ if (hash && hash[1] && regex.test(decodeURIComponent(hash[1]))) {
+ const valueFromHash = window.broadcast.getValueFromHash(paramName, window.location.href); // for date, period and idsite fall back to parameter from url, if non in hash was provided
+
+ if (valueFromHash || paramName !== 'date' && paramName !== 'period' && paramName !== 'idSite') {
+ return valueFromHash;
+ }
+ }
+
+ return window.broadcast.getValueFromUrl(paramName, window.location.search);
+ }
+
+};
+/* harmony default export */ var PiwikUrl_PiwikUrl = (PiwikUrl);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+function PiwikUrl_adapter_piwikUrl() {
+ const model = {
+ getSearchParam: PiwikUrl_PiwikUrl.getSearchParam.bind(PiwikUrl_PiwikUrl)
+ };
+ return model;
+}
+
+PiwikUrl_adapter_piwikUrl.$inject = [];
+angular.module('piwikApp.service').service('piwikUrl', PiwikUrl_adapter_piwikUrl);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Piwik/Piwik.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+let Piwik_originalTitle;
+const {
+ piwik: Piwik_piwik,
+ broadcast: Piwik_broadcast,
+ piwikHelper: Piwik_piwikHelper
+} = window;
+Piwik_piwik.helper = Piwik_piwikHelper;
+Piwik_piwik.broadcast = Piwik_broadcast;
+
+function Piwik_isValidPeriod(periodStr, dateStr) {
+ try {
+ Periods_Periods.parse(periodStr, dateStr);
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+
+Piwik_piwik.updatePeriodParamsFromUrl = function updatePeriodParamsFromUrl() {
+ let date = PiwikUrl_PiwikUrl.getSearchParam('date');
+ const period = PiwikUrl_PiwikUrl.getSearchParam('period');
+
+ if (!Piwik_isValidPeriod(period, date)) {
+ // invalid data in URL
+ return;
+ }
+
+ if (Piwik_piwik.period === period && Piwik_piwik.currentDateString === date) {
+ // this period / date is already loaded
+ return;
+ }
+
+ Piwik_piwik.period = period;
+ const dateRange = Periods_Periods.parse(period, date).getDateRange();
+ Piwik_piwik.startDateString = format(dateRange[0]);
+ Piwik_piwik.endDateString = format(dateRange[1]);
+ Piwik_piwik.updateDateInTitle(date, period); // do not set anything to previousN/lastN, as it's more useful to plugins
+ // to have the dates than previousN/lastN.
+
+ if (Piwik_piwik.period === 'range') {
+ date = `${Piwik_piwik.startDateString},${Piwik_piwik.endDateString}`;
+ }
+
+ Piwik_piwik.currentDateString = date;
+};
+
+Piwik_piwik.updateDateInTitle = function updateDateInTitle(date, period) {
+ if (!$('.top_controls #periodString').length) {
+ return;
+ } // Cache server-rendered page title
+
+
+ Piwik_originalTitle = Piwik_originalTitle || document.title;
+
+ if (Piwik_originalTitle.indexOf(Piwik_piwik.siteName) === 0) {
+ const dateString = ` - ${Periods_Periods.parse(period, date).getPrettyString()} `;
+ document.title = `${Piwik_piwik.siteName}${dateString}${Piwik_originalTitle.substr(Piwik_piwik.siteName.length)}`;
+ }
+};
+
+Piwik_piwik.hasUserCapability = function hasUserCapability(capability) {
+ return window.angular.isArray(Piwik_piwik.userCapabilities) && Piwik_piwik.userCapabilities.indexOf(capability) !== -1;
+};
+
+const Piwik = Piwik_piwik;
+/* harmony default export */ var Piwik_Piwik = (Piwik);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Piwik/Piwik.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+function Piwik_adapter_piwikService() {
+ return Piwik_Piwik;
+}
+
+angular.module('piwikApp.service').service('piwik', Piwik_adapter_piwikService);
+
+function Piwik_adapter_initPiwikService(piwik, $rootScope) {
+ $rootScope.$on('$locationChangeSuccess', piwik.updatePeriodParamsFromUrl);
+}
+
+Piwik_adapter_initPiwikService.$inject = ['piwik', '$rootScope'];
+angular.module('piwikApp.service').run(Piwik_adapter_initPiwikService);
+// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
+var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf");
+
+// 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/MatomoDialog/MatomoDialog.vue?vue&type=template&id=42c028e0
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default");
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=template&id=42c028e0
+
+// 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/MatomoDialog/MatomoDialog.vue?vue&type=script&lang=ts
+
+
+/* harmony default export */ var MatomoDialogvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
+ props: {
+ /**
+ * Whether the modal is displayed or not;
+ */
+ show: {
+ type: Boolean,
+ required: true
+ },
+
+ /**
+ * Only here for backwards compatibility w/ AngularJS. If supplied, we use this
+ * element to launch the modal instead of the element in the slot. This should not
+ * be used for new Vue code.
+ *
+ * @deprecated
+ */
+ element: {
+ type: HTMLElement,
+ required: false
+ }
+ },
+ emits: ['yes', 'no', 'closeEnd', 'close'],
+
+ activated() {
+ const slotElement = this.element || this.$slots.default()[0].el;
+ slotElement.style.display = 'none';
+ },
+
+ watch: {
+ show(newValue, oldValue) {
+ if (newValue) {
+ const slotElement = this.element || this.$slots.default()[0].el;
+ Matomo_Matomo.helper.modalConfirm(slotElement, {
+ yes: () => {
+ this.$emit('yes');
+ },
+ no: () => {
+ this.$emit('no');
+ }
+ }, {
+ onCloseEnd: () => {
+ this.$emit('closeEnd');
+ }
+ });
+ } else if (newValue === false && oldValue === true) {
+ // the user closed the dialog, e.g. by pressing Esc or clicking away from it
+ this.$emit('close');
+ }
+ }
+
+ }
+}));
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=script&lang=ts
+
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue
+
+
+
+MatomoDialogvue_type_script_lang_ts.render = render
+
+/* harmony default export */ var MatomoDialog = (MatomoDialogvue_type_script_lang_ts);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/createAngularJsAdapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+function createAngularJsAdapter(options) {
+ const {
+ component,
+ scope = {},
+ events = {},
+ $inject,
+ directiveName,
+ transclude,
+ mountPointFactory,
+ postCreate,
+ noScope
+ } = options;
+ const angularJsScope = {};
+ Object.entries(scope).forEach(([scopeVarName, info]) => {
+ if (info.angularJsBind) {
+ angularJsScope[scopeVarName] = info.angularJsBind;
+ }
+ });
+
+ function angularJsAdapter(...injectedServices) {
+ const adapter = {
+ restrict: 'A',
+ scope: noScope ? undefined : angularJsScope,
+ compile: function angularJsAdapterCompile() {
+ return {
+ post: function angularJsAdapterLink(ngScope, ngElement, ngAttrs) {
+ const clone = ngElement.find('[ng-transclude]');
+ let rootVueTemplate = '<root-component';
+ Object.entries(scope).forEach(([, info]) => {
+ rootVueTemplate += ` :${info.vue}="${info.vue}"`;
+ });
+ Object.entries(events).forEach(info => {
+ const [eventName] = info;
+ rootVueTemplate += ` @${eventName}="onEventHandler('${eventName}')"`;
+ });
+ rootVueTemplate += '>';
+
+ if (transclude) {
+ rootVueTemplate += '<div ref="transcludeTarget"/>';
+ }
+
+ rootVueTemplate += '</root-component>';
+ const app = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createApp"])({
+ template: rootVueTemplate,
+
+ data() {
+ const initialData = {};
+ Object.entries(scope).forEach(([scopeVarName, info]) => {
+ let value = ngScope[scopeVarName];
+
+ if (typeof value === 'undefined' && typeof info.default !== 'undefined') {
+ value = info.default instanceof Function ? info.default(ngScope, ngElement, ngAttrs, ...injectedServices) : info.default;
+ }
+
+ initialData[info.vue] = value;
+ });
+ return initialData;
+ },
+
+ setup() {
+ if (transclude) {
+ const transcludeTarget = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(null);
+ return {
+ transcludeTarget
+ };
+ }
+
+ return undefined;
+ },
+
+ methods: {
+ onEventHandler(name) {
+ if (events[name]) {
+ events[name](ngScope, ngElement, ngAttrs, ...injectedServices);
+ }
+ }
+
+ }
+ });
+ app.config.globalProperties.$sanitize = window.vueSanitize;
+ app.component('root-component', component);
+ const mountPoint = mountPointFactory ? mountPointFactory(ngScope, ngElement, ngAttrs, ...injectedServices) : ngElement[0];
+ const vm = app.mount(mountPoint);
+ Object.entries(scope).forEach(([scopeVarName, info]) => {
+ if (!info.angularJsBind) {
+ return;
+ }
+
+ ngScope.$watch(scopeVarName, newValue => {
+ if (typeof info.default !== 'undefined' && typeof newValue === 'undefined') {
+ vm[scopeVarName] = info.default instanceof Function ? info.default(ngScope, ngElement, ngAttrs, ...injectedServices) : info.default;
+ } else {
+ vm[scopeVarName] = newValue;
+ }
+ });
+ });
+
+ if (transclude) {
+ $(vm.transcludeTarget).append(clone);
+ }
+
+ if (postCreate) {
+ postCreate(vm, ngScope, ngElement, ngAttrs, ...injectedServices);
+ }
+ }
+ };
+ }
+ };
+
+ if (transclude) {
+ adapter.transclude = true;
+ adapter.template = '<div ng-transclude/>';
+ }
+
+ return adapter;
+ }
+
+ angularJsAdapter.$inject = $inject || [];
+ angular.module('piwikApp').directive(directiveName, angularJsAdapter);
+ return angularJsAdapter;
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+/* harmony default export */ var MatomoDialog_adapter = (createAngularJsAdapter({
+ component: MatomoDialog,
+ scope: {
+ show: {
+ vue: 'show',
+ default: false
+ },
+ element: {
+ vue: 'element',
+ default: (scope, element) => element[0]
+ }
+ },
+ events: {
+ yes: (scope, element, attrs) => {
+ if (attrs.yes) {
+ scope.$eval(attrs.yes);
+ setTimeout(() => {
+ scope.$apply();
+ }, 0);
+ }
+ },
+ no: (scope, element, attrs) => {
+ if (attrs.no) {
+ scope.$eval(attrs.no);
+ setTimeout(() => {
+ scope.$apply();
+ }, 0);
+ }
+ },
+ close: (scope, element, attrs) => {
+ if (attrs.close) {
+ scope.$eval(attrs.close);
+ setTimeout(() => {
+ scope.$apply();
+ }, 0);
+ }
+ },
+ closeEnd: (scope, element, attrs, $parse) => {
+ setTimeout(() => {
+ scope.$apply($parse(attrs.piwikDialog).assign(scope, false));
+ }, 0);
+ }
+ },
+ $inject: ['$parse'],
+ directiveName: 'piwikDialog',
+ transclude: true,
+ mountPointFactory: (scope, element) => {
+ const vueRootPlaceholder = $('<div class="vue-placeholder"/>');
+ vueRootPlaceholder.appendTo(element);
+ return vueRootPlaceholder[0];
+ },
+ postCreate: (vm, scope, element, attrs) => {
+ scope.$watch(attrs.piwikDialog, newValue => {
+ vm.show = newValue || false;
+ });
+ },
+ noScope: true
+}));
+// 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/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=6af4d064
+
+const _hoisted_1 = {
+ class: "loadingPiwik"
+};
+
+const _hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
+ src: "plugins/Morpheus/images/loading-blue.gif",
+ alt: ""
+}, null, -1);
+
+function ActivityIndicatorvue_type_template_id_6af4d064_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_1, [_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.loadingMessage), 1)], 512)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.loading]]);
+}
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=6af4d064
+
+// 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/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts
+
+
+/* harmony default export */ var ActivityIndicatorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
+ props: {
+ loading: {
+ type: Boolean,
+ required: true,
+ default: false
+ },
+ loadingMessage: {
+ type: String,
+ required: false,
+ default: translate('General_LoadingData')
+ }
+ }
+}));
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts
+
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue
+
+
+
+ActivityIndicatorvue_type_script_lang_ts.render = ActivityIndicatorvue_type_template_id_6af4d064_render
+
+/* harmony default export */ var ActivityIndicator = (ActivityIndicatorvue_type_script_lang_ts);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+
+
+/* harmony default export */ var ActivityIndicator_adapter = (createAngularJsAdapter({
+ component: ActivityIndicator,
+ scope: {
+ loading: {
+ vue: 'loading',
+ angularJsBind: '<'
+ },
+ loadingMessage: {
+ vue: 'loadingMessage',
+ angularJsBind: '<',
+ default: () => translate('General_LoadingData')
+ }
+ },
+ $inject: [],
+ directiveName: 'piwikActivityIndicator'
+}));
+// 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=c3863ae2
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _Range__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Range */ \"./plugins/CoreHome/vue/src/Periods/Range.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nwindow.piwik.addCustomPeriod = _Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"].addCustomPeriod.bind(_Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\nfunction piwikPeriods() {\n return {\n getAllLabels: _Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getAllLabels.bind(_Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n isRecognizedPeriod: _Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRecognizedPeriod.bind(_Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n get: _Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get.bind(_Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n parse: _Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"].parse.bind(_Periods__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n parseDate: _utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"],\n format: _utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"],\n RangePeriod: _Range__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n todayIsInRange: _utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"]\n };\n}\n\nangular.module('piwikApp.service').factory('piwikPeriods', piwikPeriods);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts?");
+function Alertvue_type_template_id_c3863ae2_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=c3863ae2
-/***/ }),
+// 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
-/***/ "./plugins/CoreHome/vue/src/Periods/Periods.ts":
-/*!*****************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Periods.ts ***!
- \*****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/* 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
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n/**\n * Matomo period management service for the frontend.\n *\n * Usage:\n *\n * var DayPeriod = matomoPeriods.get('day');\n * var day = new DayPeriod(new Date());\n *\n * or\n *\n * var day = matomoPeriods.parse('day', '2013-04-05');\n *\n * Adding custom periods:\n *\n * To add your own period to the frontend, create a period class for it\n * w/ the following methods:\n *\n * - **getPrettyString()**: returns a human readable display string for the period.\n * - **getDateRange()**: returns an array w/ two elements, the first being the start\n * Date of the period, the second being the end Date. The dates\n * must be Date objects, not strings, and are inclusive.\n * - **containsToday()**: returns true if the date period contains today. False if not.\n * - (_static_) **parse(strDate)**: creates a new instance of this period from the\n * value of the 'date' query parameter.\n * - (_static_) **getDisplayText**: returns translated text for the period, eg, 'month',\n * 'week', etc.\n *\n * Then call Periods.addCustomPeriod w/ your period class:\n *\n * Periods.addCustomPeriod('mycustomperiod', MyCustomPeriod);\n *\n * NOTE: currently only single date periods like day, week, month year can\n * be extended. Other types of periods that require a special UI to\n * view/edit aren't, since there is currently no way to use a\n * custom UI for a custom period.\n */\nclass Periods {\n constructor() {\n _defineProperty(this, \"periods\", {});\n\n _defineProperty(this, \"periodOrder\", []);\n }\n\n addCustomPeriod(name, periodClass) {\n if (this.periods[name]) {\n throw new Error(`The \"${name}\" period already exists! It cannot be overridden.`);\n }\n\n this.periods[name] = periodClass;\n this.periodOrder.push(name);\n }\n\n getAllLabels() {\n return Array().concat(this.periodOrder);\n }\n\n get(strPeriod) {\n const periodClass = this.periods[strPeriod];\n\n if (!periodClass) {\n throw new Error(`Invalid period label: ${strPeriod}`);\n }\n\n return periodClass;\n }\n\n parse(strPeriod, strDate) {\n return this.get(strPeriod).parse(strDate);\n }\n\n isRecognizedPeriod(strPeriod) {\n return !!this.periods[strPeriod];\n }\n\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Periods());\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Periods.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Periods/Range.ts":
-/*!***************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Range.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+Alertvue_type_script_lang_ts.render = Alertvue_type_template_id_c3863ae2_render
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return RangePeriod; });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nclass RangePeriod {\n constructor(startDate, endDate, childPeriodType) {\n _defineProperty(this, \"startDate\", void 0);\n\n _defineProperty(this, \"endDate\", void 0);\n\n _defineProperty(this, \"childPeriodType\", void 0);\n\n this.startDate = startDate;\n this.endDate = endDate;\n this.childPeriodType = childPeriodType;\n }\n /**\n * Returns a range representing the last N childPeriodType periods, including the current one.\n */\n\n\n static getLastNRange(childPeriodType, strAmount, strEndDate) {\n const nAmount = Math.max(parseInt(strAmount.toString(), 10) - 1, 0);\n\n if (Number.isNaN(nAmount)) {\n throw new Error('Invalid range strAmount');\n }\n\n let endDate = strEndDate ? Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(strEndDate) : Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"getToday\"])();\n let startDate = new Date(endDate.getTime());\n\n if (childPeriodType === 'day') {\n startDate.setDate(startDate.getDate() - nAmount);\n } else if (childPeriodType === 'week') {\n startDate.setDate(startDate.getDate() - nAmount * 7);\n } else if (childPeriodType === 'month') {\n startDate.setDate(1);\n startDate.setMonth(startDate.getMonth() - nAmount);\n } else if (childPeriodType === 'year') {\n startDate.setFullYear(startDate.getFullYear() - nAmount);\n } else {\n throw new Error(`Unknown period type '${childPeriodType}'.`);\n }\n\n if (childPeriodType !== 'day') {\n const startPeriod = _Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].periods[childPeriodType].parse(startDate);\n const endPeriod = _Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].periods[childPeriodType].parse(endDate);\n [startDate] = startPeriod.getDateRange();\n [, endDate] = endPeriod.getDateRange();\n }\n\n const firstWebsiteDate = new Date(1991, 7, 6);\n\n if (startDate.getTime() - firstWebsiteDate.getTime() < 0) {\n switch (childPeriodType) {\n case 'year':\n startDate = new Date(1992, 0, 1);\n break;\n\n case 'month':\n startDate = new Date(1991, 8, 1);\n break;\n\n case 'week':\n startDate = new Date(1991, 8, 12);\n break;\n\n case 'day':\n default:\n startDate = firstWebsiteDate;\n break;\n }\n }\n\n return new RangePeriod(startDate, endDate, childPeriodType);\n }\n /**\n * Returns a range representing a specific child date range counted back from the end date\n *\n * @param childPeriodType Type of the period, eg. day, week, year\n * @param rangeEndDate\n * @param countBack Return only the child date range for this specific period number\n * @returns {RangePeriod}\n */\n\n\n static getLastNRangeChild(childPeriodType, rangeEndDate, countBack) {\n const ed = rangeEndDate ? Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(rangeEndDate) : Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"getToday\"])();\n let startDate = new Date(ed.getTime());\n let endDate = new Date(ed.getTime());\n\n if (childPeriodType === 'day') {\n startDate.setDate(startDate.getDate() - countBack);\n endDate.setDate(endDate.getDate() - countBack);\n } else if (childPeriodType === 'week') {\n startDate.setDate(startDate.getDate() - countBack * 7);\n endDate.setDate(endDate.getDate() - countBack * 7);\n } else if (childPeriodType === 'month') {\n startDate.setDate(1);\n startDate.setMonth(startDate.getMonth() - countBack);\n endDate.setDate(1);\n endDate.setMonth(endDate.getMonth() - countBack);\n } else if (childPeriodType === 'year') {\n startDate.setFullYear(startDate.getFullYear() - countBack);\n endDate.setFullYear(endDate.getFullYear() - countBack);\n } else {\n throw new Error(`Unknown period type '${childPeriodType}'.`);\n }\n\n if (childPeriodType !== 'day') {\n const startPeriod = _Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].periods[childPeriodType].parse(startDate);\n const endPeriod = _Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].periods[childPeriodType].parse(endDate);\n [startDate] = startPeriod.getDateRange();\n [, endDate] = endPeriod.getDateRange();\n }\n\n const firstWebsiteDate = new Date(1991, 7, 6);\n\n if (startDate.getTime() - firstWebsiteDate.getTime() < 0) {\n switch (childPeriodType) {\n case 'year':\n startDate = new Date(1992, 0, 1);\n break;\n\n case 'month':\n startDate = new Date(1991, 8, 1);\n break;\n\n case 'week':\n startDate = new Date(1991, 8, 12);\n break;\n\n case 'day':\n default:\n startDate = firstWebsiteDate;\n break;\n }\n }\n\n return new RangePeriod(startDate, endDate, childPeriodType);\n }\n\n static parse(strDate, childPeriodType = 'day') {\n if (/^previous/.test(strDate)) {\n const endDate = RangePeriod.getLastNRange(childPeriodType, '2').startDate;\n return RangePeriod.getLastNRange(childPeriodType, strDate.substring(8), endDate);\n }\n\n if (/^last/.test(strDate)) {\n return RangePeriod.getLastNRange(childPeriodType, strDate.substring(4));\n }\n\n const parts = decodeURIComponent(strDate).split(',');\n return new RangePeriod(Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(parts[0]), Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(parts[1]), childPeriodType);\n }\n\n static getDisplayText() {\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('General_DateRangeInPeriodList');\n }\n\n getPrettyString() {\n const start = Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(this.startDate);\n const end = Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(this.endDate);\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('General_DateRangeFromTo', [start, end]);\n }\n\n getDateRange() {\n return [this.startDate, this.endDate];\n }\n\n containsToday() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"])(this.getDateRange());\n }\n\n}\n_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addCustomPeriod('range', RangePeriod);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Range.ts?");
+/* harmony default export */ var Alert = (Alertvue_type_script_lang_ts);
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Periods/Week.ts":
-/*!**************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Week.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/* harmony default export */ var Alert_adapter = (createAngularJsAdapter({
+ component: Alert,
+ scope: {
+ severity: {
+ vue: 'severity',
+ angularJsBind: '@piwikAlert'
+ }
+ },
+ directiveName: 'piwikAlert',
+ transclude: true
+}));
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Periods/index.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WeekPeriod; });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nclass WeekPeriod {\n constructor(dateInPeriod) {\n _defineProperty(this, \"dateInPeriod\", void 0);\n\n this.dateInPeriod = dateInPeriod;\n }\n\n static parse(strDate) {\n return new WeekPeriod(Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(strDate));\n }\n\n static getDisplayText() {\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('Intl_PeriodWeek');\n }\n\n getPrettyString() {\n const weekDates = this.getDateRange();\n const startWeek = Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(weekDates[0]);\n const endWeek = Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(weekDates[1]);\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('General_DateRangeFromTo', [startWeek, endWeek]);\n }\n\n getDateRange() {\n const daysToMonday = (this.dateInPeriod.getDay() + 6) % 7;\n const startWeek = new Date(this.dateInPeriod.getTime());\n startWeek.setDate(this.dateInPeriod.getDate() - daysToMonday);\n const endWeek = new Date(startWeek.getTime());\n endWeek.setDate(startWeek.getDate() + 6);\n return [startWeek, endWeek];\n }\n\n containsToday() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"])(this.getDateRange());\n }\n\n}\n_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addCustomPeriod('week', WeekPeriod);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Week.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Periods/Year.ts":
-/*!**************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/Year.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return YearPeriod; });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nclass YearPeriod {\n constructor(dateInPeriod) {\n _defineProperty(this, \"dateInPeriod\", void 0);\n\n this.dateInPeriod = dateInPeriod;\n }\n\n static parse(strDate) {\n return new YearPeriod(Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"parseDate\"])(strDate));\n }\n\n static getDisplayText() {\n return Object(_translate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('Intl_PeriodYear');\n }\n\n getPrettyString() {\n return this.dateInPeriod.getFullYear().toString();\n }\n\n getDateRange() {\n const startYear = new Date(this.dateInPeriod.getTime());\n startYear.setMonth(0);\n startYear.setDate(1);\n const endYear = new Date(this.dateInPeriod.getTime());\n endYear.setMonth(12);\n endYear.setDate(0);\n return [startYear, endYear];\n }\n\n containsToday() {\n return Object(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"todayIsInRange\"])(this.getDateRange());\n }\n\n}\n_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addCustomPeriod('year', YearPeriod);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/Year.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Periods/index.ts":
-/*!***************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/index.ts ***!
- \***************************************************/
-/*! exports provided: Periods, Day, Week, Month, Year, Range, format, getToday, parseDate, todayIsInRange */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Periods_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Periods.adapter */ \"./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts\");\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Periods\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _Day__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Day */ \"./plugins/CoreHome/vue/src/Periods/Day.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Day\", function() { return _Day__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _Week__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Week */ \"./plugins/CoreHome/vue/src/Periods/Week.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Week\", function() { return _Week__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _Month__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Month */ \"./plugins/CoreHome/vue/src/Periods/Month.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Month\", function() { return _Month__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _Year__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Year */ \"./plugins/CoreHome/vue/src/Periods/Year.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Year\", function() { return _Year__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _Range__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Range */ \"./plugins/CoreHome/vue/src/Periods/Range.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Range\", function() { return _Range__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_7__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToday\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_7__[\"getToday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parseDate\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_7__[\"parseDate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"todayIsInRange\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_7__[\"todayIsInRange\"]; });\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/index.ts?");
-/***/ }),
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/index.ts
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
-/***/ "./plugins/CoreHome/vue/src/Periods/utilities.ts":
-/*!*******************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Periods/utilities.ts ***!
- \*******************************************************/
-/*! exports provided: format, getToday, parseDate, todayIsInRange */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getToday\", function() { return getToday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseDate\", function() { return parseDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"todayIsInRange\", function() { return todayIsInRange; });\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\nfunction format(date) {\n return $.datepicker.formatDate('yy-mm-dd', date);\n}\nfunction getToday() {\n const date = new Date(Date.now()); // undo browser timezone\n\n date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000); // apply Matomo site timezone (if it exists)\n\n date.setHours(date.getHours() + (window.piwik.timezoneOffset || 0) / 3600); // get rid of hours/minutes/seconds/etc.\n\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n return date;\n}\nfunction parseDate(date) {\n if (date instanceof Date) {\n return date;\n }\n\n const strDate = decodeURIComponent(date);\n\n if (strDate === 'today' || strDate === 'now') {\n return getToday();\n }\n\n if (strDate === 'yesterday' // note: ignoring the 'same time' part since the frontend doesn't care about the time\n || strDate === 'yesterdaySameTime') {\n const yesterday = getToday();\n yesterday.setDate(yesterday.getDate() - 1);\n return yesterday;\n }\n\n if (strDate.match(/last[ -]?week/i)) {\n const lastWeek = getToday();\n lastWeek.setDate(lastWeek.getDate() - 7);\n return lastWeek;\n }\n\n if (strDate.match(/last[ -]?month/i)) {\n const lastMonth = getToday();\n lastMonth.setDate(1);\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n return lastMonth;\n }\n\n if (strDate.match(/last[ -]?year/i)) {\n const lastYear = getToday();\n lastYear.setFullYear(lastYear.getFullYear() - 1);\n return lastYear;\n }\n\n try {\n return $.datepicker.parseDate('yy-mm-dd', strDate);\n } catch (err) {\n // angular swallows this error, so manual console log here\n console.error(err.message || err);\n throw err;\n }\n}\nfunction todayIsInRange(dateRange) {\n if (dateRange.length !== 2) {\n return false;\n }\n\n if (getToday() >= dateRange[0] && getToday() <= dateRange[1]) {\n return true;\n }\n\n return false;\n}\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Periods/utilities.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Piwik/Piwik.adapter.ts":
-/*!*********************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Piwik/Piwik.adapter.ts ***!
- \*********************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Piwik__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Piwik */ \"./plugins/CoreHome/vue/src/Piwik/Piwik.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nfunction piwikService() {\n return _Piwik__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n}\n\nangular.module('piwikApp.service').service('piwik', piwikService);\n\nfunction initPiwikService(piwik, $rootScope) {\n $rootScope.$on('$locationChangeSuccess', piwik.updatePeriodParamsFromUrl);\n}\n\ninitPiwikService.$inject = ['piwik', '$rootScope'];\nangular.module('piwikApp.service').run(initPiwikService);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Piwik/Piwik.adapter.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/Piwik/Piwik.ts":
-/*!*************************************************!*\
- !*** ./plugins/CoreHome/vue/src/Piwik/Piwik.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _PiwikUrl_PiwikUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../PiwikUrl/PiwikUrl */ \"./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts\");\n/* harmony import */ var _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Periods/Periods */ \"./plugins/CoreHome/vue/src/Periods/Periods.ts\");\n/* harmony import */ var _Periods_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Periods/utilities */ \"./plugins/CoreHome/vue/src/Periods/utilities.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\nlet originalTitle;\nconst {\n piwik,\n broadcast,\n piwikHelper\n} = window;\npiwik.helper = piwikHelper;\npiwik.broadcast = broadcast;\n\nfunction isValidPeriod(periodStr, dateStr) {\n try {\n _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(periodStr, dateStr);\n return true;\n } catch (e) {\n return false;\n }\n}\n\npiwik.updatePeriodParamsFromUrl = function updatePeriodParamsFromUrl() {\n let date = _PiwikUrl_PiwikUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam('date');\n const period = _PiwikUrl_PiwikUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam('period');\n\n if (!isValidPeriod(period, date)) {\n // invalid data in URL\n return;\n }\n\n if (piwik.period === period && piwik.currentDateString === date) {\n // this period / date is already loaded\n return;\n }\n\n piwik.period = period;\n const dateRange = _Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(period, date).getDateRange();\n piwik.startDateString = Object(_Periods_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(dateRange[0]);\n piwik.endDateString = Object(_Periods_utilities__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(dateRange[1]);\n piwik.updateDateInTitle(date, period); // do not set anything to previousN/lastN, as it's more useful to plugins\n // to have the dates than previousN/lastN.\n\n if (piwik.period === 'range') {\n date = `${piwik.startDateString},${piwik.endDateString}`;\n }\n\n piwik.currentDateString = date;\n};\n\npiwik.updateDateInTitle = function updateDateInTitle(date, period) {\n if (!$('.top_controls #periodString').length) {\n return;\n } // Cache server-rendered page title\n\n\n originalTitle = originalTitle || document.title;\n\n if (originalTitle.indexOf(piwik.siteName) === 0) {\n const dateString = ` - ${_Periods_Periods__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parse(period, date).getPrettyString()} `;\n document.title = `${piwik.siteName}${dateString}${originalTitle.substr(piwik.siteName.length)}`;\n }\n};\n\npiwik.hasUserCapability = function hasUserCapability(capability) {\n return window.angular.isArray(piwik.userCapabilities) && piwik.userCapabilities.indexOf(capability) !== -1;\n};\n\nconst Piwik = piwik;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Piwik);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/Piwik/Piwik.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.adapter.ts":
-/*!***************************************************************!*\
- !*** ./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.adapter.ts ***!
- \***************************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _PiwikUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PiwikUrl */ \"./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts\");\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\nfunction piwikUrl() {\n const model = {\n getSearchParam: _PiwikUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getSearchParam.bind(_PiwikUrl__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n };\n return model;\n}\n\npiwikUrl.$inject = [];\nangular.module('piwikApp.service').service('piwikUrl', piwikUrl);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.adapter.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts":
-/*!*******************************************************!*\
- !*** ./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n/**\n * Similar to angulars $location but works around some limitation. Use it if you need to access\n * search params\n */\nconst PiwikUrl = {\n getSearchParam(paramName) {\n const hash = window.location.href.split('#');\n const regex = new RegExp(`${paramName}(\\\\[]|=)`);\n\n if (hash && hash[1] && regex.test(decodeURIComponent(hash[1]))) {\n const valueFromHash = window.broadcast.getValueFromHash(paramName, window.location.href); // for date, period and idsite fall back to parameter from url, if non in hash was provided\n\n if (valueFromHash || paramName !== 'date' && paramName !== 'period' && paramName !== 'idSite') {\n return valueFromHash;\n }\n }\n\n return window.broadcast.getValueFromUrl(paramName, window.location.search);\n }\n\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PiwikUrl);\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/index.ts":
-/*!*******************************************!*\
- !*** ./plugins/CoreHome/vue/src/index.ts ***!
- \*******************************************/
-/*! exports provided: activityIndicatorAdapter, ActivityIndicator, translate, alertAdapter, AjaxHelper, MatomoUrl, Matomo, Periods, Day, Week, Month, Year, Range, format, getToday, parseDate, todayIsInRange */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MatomoUrl_MatomoUrl_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MatomoUrl/MatomoUrl.adapter */ \"./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.adapter.ts\");\n/* harmony import */ var _Matomo_Matomo_adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Matomo/Matomo.adapter */ \"./plugins/CoreHome/vue/src/Matomo/Matomo.adapter.ts\");\n/* harmony import */ var _noAdblockFlag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noAdblockFlag */ \"./plugins/CoreHome/vue/src/noAdblockFlag.ts\");\n/* harmony import */ var _noAdblockFlag__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_noAdblockFlag__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Periods_Day__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Periods/Day */ \"./plugins/CoreHome/vue/src/Periods/Day.ts\");\n/* harmony import */ var _Periods_Week__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Periods/Week */ \"./plugins/CoreHome/vue/src/Periods/Week.ts\");\n/* harmony import */ var _Periods_Month__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Periods/Month */ \"./plugins/CoreHome/vue/src/Periods/Month.ts\");\n/* harmony import */ var _Periods_Year__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Periods/Year */ \"./plugins/CoreHome/vue/src/Periods/Year.ts\");\n/* harmony import */ var _Periods_Range__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Periods/Range */ \"./plugins/CoreHome/vue/src/Periods/Range.ts\");\n/* harmony import */ var _Periods_Periods_adapter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Periods/Periods.adapter */ \"./plugins/CoreHome/vue/src/Periods/Periods.adapter.ts\");\n/* harmony import */ var _AjaxHelper_AjaxHelper_adapter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./AjaxHelper/AjaxHelper.adapter */ \"./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.adapter.ts\");\n/* harmony import */ var _PiwikUrl_PiwikUrl_adapter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PiwikUrl/PiwikUrl.adapter */ \"./plugins/CoreHome/vue/src/PiwikUrl/PiwikUrl.adapter.ts\");\n/* harmony import */ var _Piwik_Piwik_adapter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Piwik/Piwik.adapter */ \"./plugins/CoreHome/vue/src/Piwik/Piwik.adapter.ts\");\n/* harmony import */ var _ActivityIndicator_ActivityIndicator_adapter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ActivityIndicator/ActivityIndicator.adapter */ \"./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.adapter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"activityIndicatorAdapter\", function() { return _ActivityIndicator_ActivityIndicator_adapter__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _ActivityIndicator_ActivityIndicator_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ActivityIndicator/ActivityIndicator.vue */ \"./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ActivityIndicator\", function() { return _ActivityIndicator_ActivityIndicator_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./translate */ \"./plugins/CoreHome/vue/src/translate.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return _translate__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _Alert_Alert_adapter__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Alert/Alert.adapter */ \"./plugins/CoreHome/vue/src/Alert/Alert.adapter.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alertAdapter\", function() { return _Alert_Alert_adapter__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _AjaxHelper_AjaxHelper__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./AjaxHelper/AjaxHelper */ \"./plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxHelper\", function() { return _AjaxHelper_AjaxHelper__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./MatomoUrl/MatomoUrl */ \"./plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MatomoUrl\", function() { return _MatomoUrl_MatomoUrl__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Matomo/Matomo */ \"./plugins/CoreHome/vue/src/Matomo/Matomo.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Matomo\", function() { return _Matomo_Matomo__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _Periods__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Periods */ \"./plugins/CoreHome/vue/src/Periods/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Periods\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Periods\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Day\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Day\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Week\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Week\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Month\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Month\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Year\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Year\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Range\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"Range\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToday\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"getToday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parseDate\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"parseDate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"todayIsInRange\", function() { return _Periods__WEBPACK_IMPORTED_MODULE_19__[\"todayIsInRange\"]; });\n\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/index.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/noAdblockFlag.ts":
-/*!***************************************************!*\
- !*** ./plugins/CoreHome/vue/src/noAdblockFlag.ts ***!
- \***************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-eval("\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\n// see https://github.com/matomo-org/matomo/issues/5094 used to detect an ad blocker\n\nwindow.hasBlockedContent = false;\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/noAdblockFlag.ts?");
-/***/ }),
-/***/ "./plugins/CoreHome/vue/src/translate.ts":
-/*!***********************************************!*\
- !*** ./plugins/CoreHome/vue/src/translate.ts ***!
- \***********************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return translate; });\n/*!\n * Matomo - free/libre analytics platform\n *\n * @link https://matomo.org\n * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later\n */\nfunction translate(translationStringId, values = []) {\n return window._pk_translate(translationStringId, values); // eslint-disable-line\n}\n\n//# sourceURL=webpack://CoreHome/./plugins/CoreHome/vue/src/translate.ts?");
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
-/***/ }),
-/***/ "vue":
-/*!******************************************************************!*\
- !*** external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} ***!
- \******************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-eval("module.exports = __WEBPACK_EXTERNAL_MODULE_vue__;\n\n//# sourceURL=webpack://CoreHome/external_%7B%22commonjs%22:%22vue%22,%22commonjs2%22:%22vue%22,%22root%22:%22Vue%22%7D?");
/***/ })
/******/ });
-}); \ No newline at end of file
+});
+//# sourceMappingURL=CoreHome.umd.js.map \ No newline at end of file