From 37e6334e291a4fa31098043ebd01848d8f8ec717 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Fri, 10 Apr 2026 18:46:00 +0200 Subject: [PATCH 1/5] Add support for client-rendered widgets --- core/Widget/WidgetConfig.php | 48 ++++++ plugins/API/WidgetMetadata.php | 11 ++ plugins/API/tests/Unit/WidgetMetadataTest.php | 14 ++ plugins/CoreHome/vue/dist/CoreHome.umd.js | 139 ++++++++++++++++-- plugins/CoreHome/vue/dist/CoreHome.umd.min.js | 66 ++++----- .../vue/src/Widget/ClientWidgetRenderer.vue | 117 +++++++++++++++ plugins/CoreHome/vue/src/Widget/Widget.vue | 9 +- plugins/CoreHome/vue/src/Widget/types.ts | 8 + plugins/CoreHome/vue/src/index.ts | 1 + plugins/Dashboard/javascripts/widgetMenu.js | 36 +++++ .../Transitions/Widgets/GetTransitions.php | 16 +- .../Transitions/templates/transitions.twig | 5 - plugins/Widgetize/Controller.php | 32 +++- plugins/Widgetize/templates/clientWidget.twig | 5 + .../tests/Integration/ControllerTest.php | 86 +++++++++++ 15 files changed, 526 insertions(+), 67 deletions(-) create mode 100644 plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue delete mode 100644 plugins/Transitions/templates/transitions.twig create mode 100644 plugins/Widgetize/templates/clientWidget.twig create mode 100644 plugins/Widgetize/tests/Integration/ControllerTest.php diff --git a/core/Widget/WidgetConfig.php b/core/Widget/WidgetConfig.php index 952606f891a..8bf5e34d4bc 100644 --- a/core/Widget/WidgetConfig.php +++ b/core/Widget/WidgetConfig.php @@ -27,6 +27,8 @@ class WidgetConfig protected $action = ''; protected $parameters = array(); protected $middlewareParameters = array(); + protected $clientSideComponent = array(); + protected $clientSideProps = array(); protected $name = ''; protected $order = 99; protected $isEnabled = true; @@ -352,6 +354,52 @@ public function getMiddlewareParameters() return $this->middlewareParameters; } + /** + * Marks this widget as client-rendered by a Vue component exported by the given plugin bundle. + * + * @param string $plugin eg 'Transitions' + * @param string $component eg 'TransitionsPage' + * @return static + */ + public function setClientSideComponent(string $plugin, string $component) + { + $this->clientSideComponent = array( + 'plugin' => $plugin, + 'name' => $component, + ); + + return $this; + } + + /** + * Returns the configured client-rendered component definition. + */ + public function getClientSideComponent(): array + { + return $this->clientSideComponent; + } + + /** + * Sets props that should be passed to the client-rendered Vue widget. + * + * @param array $props + * @return static + */ + public function setClientSideProps(array $props) + { + $this->clientSideProps = $props; + + return $this; + } + + /** + * Returns props configured for the client-rendered Vue widget. + */ + public function getClientSideProps(): array + { + return $this->clientSideProps; + } + /** * Marks this widget as a "wide" widget that requires the full width. * diff --git a/plugins/API/WidgetMetadata.php b/plugins/API/WidgetMetadata.php index 61384a8e9e9..7f58c317045 100644 --- a/plugins/API/WidgetMetadata.php +++ b/plugins/API/WidgetMetadata.php @@ -116,6 +116,17 @@ public function buildWidgetMetadata(WidgetConfig $widget, $categoryList = null, $item['middlewareParameters'] = $middleware; } + $clientComponent = $widget->getClientSideComponent(); + + if (!empty($clientComponent)) { + $item['clientComponent'] = $clientComponent; + + $clientProps = $widget->getClientSideProps(); + if (!empty($clientProps)) { + $item['clientComponent']['props'] = $clientProps; + } + } + if ($widget instanceof ReportWidgetConfig) { $item['viewDataTable'] = $widget->getViewDataTable(); $item['isReport'] = true; diff --git a/plugins/API/tests/Unit/WidgetMetadataTest.php b/plugins/API/tests/Unit/WidgetMetadataTest.php index a4c68d3b65d..624e8d9f1cc 100644 --- a/plugins/API/tests/Unit/WidgetMetadataTest.php +++ b/plugins/API/tests/Unit/WidgetMetadataTest.php @@ -114,6 +114,20 @@ public function testBuildWidgetMetadataShouldAddOptionalMiddlewareParameters() $this->assertSame(array('module' => 'Goals', 'action' => 'hasAnyConversions'), $metadata['middlewareParameters']); } + public function testBuildWidgetMetadataShouldAddOptionalClientComponent() + { + $config = $this->createWidgetConfig('Test', 'CategoryId', 'SubcategoryId'); + $config->setClientSideComponent('Transitions', 'TransitionsPage'); + $config->setClientSideProps(array('foo' => 'bar')); + $metadata = $this->metadata->buildWidgetMetadata($config); + + $this->assertSame(array( + 'plugin' => 'Transitions', + 'name' => 'TransitionsPage', + 'props' => array('foo' => 'bar'), + ), $metadata['clientComponent']); + } + public function testBuildWidgetMetadataShouldAddReportInformtionIfReportWidgetConfigGiven() { $config = new ReportWidgetConfig(); diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js index 98f2cee92a1..81a3fdbdf88 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js @@ -203,6 +203,7 @@ __webpack_require__.d(__webpack_exports__, "ReportingPagesStore", function() { r __webpack_require__.d(__webpack_exports__, "ReportMetadataStore", function() { return /* reexport */ ReportMetadata_store; }); __webpack_require__.d(__webpack_exports__, "WidgetsStore", function() { return /* reexport */ Widgets_store; }); __webpack_require__.d(__webpack_exports__, "WidgetLoader", function() { return /* reexport */ WidgetLoader; }); +__webpack_require__.d(__webpack_exports__, "ClientWidgetRenderer", function() { return /* reexport */ ClientWidgetRenderer; }); __webpack_require__.d(__webpack_exports__, "WidgetContainer", function() { return /* reexport */ WidgetContainer; }); __webpack_require__.d(__webpack_exports__, "WidgetByDimensionContainer", function() { return /* reexport */ WidgetByDimensionContainer; }); __webpack_require__.d(__webpack_exports__, "Widget", function() { return /* reexport */ Widget_Widget; }); @@ -9670,6 +9671,108 @@ class SearchFiltersPersistence_store_SearchFiltersPersistenceStore { WidgetLoadervue_type_script_lang_ts.render = WidgetLoadervue_type_template_id_09c1f6f2_render /* harmony default export */ var WidgetLoader = (WidgetLoadervue_type_script_lang_ts); +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=8a7f5520 + +function ClientWidgetRenderervue_type_template_id_8a7f5520_render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator"); + const _component_Alert = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Alert"); + return _ctx.loading ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_ActivityIndicator, { + key: 0, + loading: true, + "loading-message": _ctx.translate('General_LoadingData') + }, null, 8, ["loading-message"])) : _ctx.loadingFailed ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_Alert, { + key: 1, + severity: "danger" + }, { + default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(() => [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ErrorRequest', '', '')), 1)]), + _: 1 + })) : _ctx.componentToRender ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])(_ctx.componentToRender), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeProps"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({ + key: 2 + }, _ctx.componentProps)), null, 16)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true); +} +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=8a7f5520 + +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--15-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=script&lang=ts + + + + +/* harmony default export */ var ClientWidgetRenderervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + props: { + widget: { + type: Object, + required: true + }, + widgetized: Boolean + }, + components: { + ActivityIndicator: ActivityIndicator, + Alert: Alert + }, + data() { + return { + componentToRender: null, + loading: false, + loadingFailed: false + }; + }, + watch: { + widget: { + handler() { + this.loadComponent(); + }, + immediate: true + } + }, + computed: { + componentProps() { + var _widget$clientCompone; + const widget = this.widget; + return Object.assign(Object.assign({}, ((_widget$clientCompone = widget.clientComponent) === null || _widget$clientCompone === void 0 ? void 0 : _widget$clientCompone.props) || {}), {}, { + uniqueId: widget.uniqueId, + widgetName: widget.name, + widgetized: this.widgetized, + isWidget: this.widgetized, + isWide: widget.isWide + }); + } + }, + methods: { + async loadComponent() { + const widget = this.widget; + const { + clientComponent + } = widget; + this.loading = true; + this.loadingFailed = false; + this.componentToRender = null; + try { + if (!clientComponent) { + throw new Error('Missing client-rendered widget metadata'); + } + const pluginModule = await importPluginUmd(clientComponent.plugin); + const component = pluginModule === null || pluginModule === void 0 ? void 0 : pluginModule[clientComponent.name]; + if (!component) { + throw new Error(`Unknown widget component ${clientComponent.plugin}.${clientComponent.name}`); + } + this.componentToRender = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["markRaw"])(component); + } catch (e) { + this.loadingFailed = true; + } finally { + this.loading = false; + } + } + } +})); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=script&lang=ts + +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue + + + +ClientWidgetRenderervue_type_script_lang_ts.render = ClientWidgetRenderervue_type_template_id_8a7f5520_render + +/* harmony default export */ var ClientWidgetRenderer = (ClientWidgetRenderervue_type_script_lang_ts); // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue?vue&type=template&id=73071e47 const WidgetContainervue_type_template_id_73071e47_hoisted_1 = { @@ -9835,17 +9938,18 @@ function WidgetByDimensionContainervue_type_template_id_ad0a8c4a_render(_ctx, _c WidgetByDimensionContainervue_type_script_lang_ts.render = WidgetByDimensionContainervue_type_template_id_ad0a8c4a_render /* harmony default export */ var WidgetByDimensionContainer = (WidgetByDimensionContainervue_type_script_lang_ts); -// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=template&id=63ec92a2 +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=template&id=cc78e322 -const Widgetvue_type_template_id_63ec92a2_hoisted_1 = ["id"]; -const Widgetvue_type_template_id_63ec92a2_hoisted_2 = { - key: 1 -}; -const Widgetvue_type_template_id_63ec92a2_hoisted_3 = { +const Widgetvue_type_template_id_cc78e322_hoisted_1 = ["id"]; +const Widgetvue_type_template_id_cc78e322_hoisted_2 = { key: 2 }; -function Widgetvue_type_template_id_63ec92a2_render(_ctx, _cache, $props, $setup, $data, $options) { +const Widgetvue_type_template_id_cc78e322_hoisted_3 = { + key: 3 +}; +function Widgetvue_type_template_id_cc78e322_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_WidgetLoader = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetLoader"); + const _component_ClientWidgetRenderer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ClientWidgetRenderer"); const _component_WidgetContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetContainer"); const _component_WidgetByDimensionContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetByDimensionContainer"); const _directive_tooltips = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("tooltips"); @@ -9855,19 +9959,23 @@ function Widgetvue_type_template_id_63ec92a2_render(_ctx, _cache, $props, $setup 'isFirstWidgetInPage': _ctx.actualWidget.isFirstInPage }]), id: _ctx.actualWidget.uniqueId - }, [!_ctx.actualWidget.isContainer && _ctx.actualWidget.parameters ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_WidgetLoader, { + }, [!_ctx.actualWidget.isContainer && _ctx.actualWidget.parameters && !_ctx.actualWidget.clientComponent ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_WidgetLoader, { key: 0, "widget-params": _ctx.actualWidget.parameters, "widget-name": _ctx.actualWidget.name - }, null, 8, ["widget-params", "widget-name"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout !== 'ByDimension' && !this.preventRecursion ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_63ec92a2_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetContainer, { + }, null, 8, ["widget-params", "widget-name"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.actualWidget.isContainer && _ctx.actualWidget.clientComponent ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_ClientWidgetRenderer, { + key: 1, + widget: _ctx.actualWidget, + widgetized: _ctx.widgetized + }, null, 8, ["widget", "widgetized"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout !== 'ByDimension' && !this.preventRecursion ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_cc78e322_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetContainer, { container: _ctx.actualWidget.widgets - }, null, 8, ["container"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout === 'ByDimension' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_63ec92a2_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetByDimensionContainer, { + }, null, 8, ["container"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout === 'ByDimension' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_cc78e322_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetByDimensionContainer, { widgets: _ctx.actualWidget.widgets - }, null, 8, ["widgets"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, Widgetvue_type_template_id_63ec92a2_hoisted_1)), [[_directive_tooltips, { + }, null, 8, ["widgets"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, Widgetvue_type_template_id_cc78e322_hoisted_1)), [[_directive_tooltips, { content: _ctx.tooltipContent }]]) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true); } -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=template&id=63ec92a2 +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=template&id=cc78e322 // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--15-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=script&lang=ts @@ -9878,6 +9986,7 @@ function Widgetvue_type_template_id_63ec92a2_render(_ctx, _cache, $props, $setup + function findContainer(widgetsByCategory, containerId) { let widget = undefined; Object.values(widgetsByCategory || {}).some(widgets => { @@ -9925,7 +10034,8 @@ function findContainer(widgetsByCategory, containerId) { components: { WidgetLoader: WidgetLoader, WidgetContainer: WidgetContainer, - WidgetByDimensionContainer: WidgetByDimensionContainer + WidgetByDimensionContainer: WidgetByDimensionContainer, + ClientWidgetRenderer: ClientWidgetRenderer }, directives: { Tooltips: Tooltips @@ -10015,7 +10125,7 @@ function findContainer(widgetsByCategory, containerId) { -Widgetvue_type_script_lang_ts.render = Widgetvue_type_template_id_63ec92a2_render +Widgetvue_type_script_lang_ts.render = Widgetvue_type_template_id_cc78e322_render /* harmony default export */ var Widget_Widget = (Widgetvue_type_script_lang_ts); // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.vue?vue&type=template&id=16afd136 @@ -13138,6 +13248,7 @@ class EntityDuplicatorStore_EntityDuplicatorStore { + // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js index b05a417ac30..e24e49279ed 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js @@ -4,7 +4,7 @@ * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */window.hasBlockedContent=!1},"8bbf":function(t,i){t.exports=e},fae3:function(e,t,i){"use strict";if(i.r(t),i.d(t,"createVueApp",(function(){return ve})),i.d(t,"importPluginUmd",(function(){return Se})),i.d(t,"useExternalPluginComponent",(function(){return Ce})),i.d(t,"DirectiveUtilities",(function(){return De})),i.d(t,"debounce",(function(){return Pe})),i.d(t,"clone",(function(){return Te})),i.d(t,"VueEntryContainer",(function(){return Be})),i.d(t,"ActivityIndicator",(function(){return We})),i.d(t,"MatomoLoader",(function(){return Ue})),i.d(t,"translate",(function(){return a})),i.d(t,"translateOrDefault",(function(){return r})),i.d(t,"externalRawLink",(function(){return ue})),i.d(t,"externalLink",(function(){return me})),i.d(t,"Alert",(function(){return Ke})),i.d(t,"AjaxHelper",(function(){return te})),i.d(t,"setCookie",(function(){return q})),i.d(t,"getCookie",(function(){return W})),i.d(t,"deleteCookie",(function(){return z})),i.d(t,"MatomoUrl",(function(){return U})),i.d(t,"Matomo",(function(){return I})),i.d(t,"Periods",(function(){return c})),i.d(t,"Day",(function(){return f})),i.d(t,"Week",(function(){return O})),i.d(t,"Month",(function(){return j})),i.d(t,"Year",(function(){return S})),i.d(t,"Range",(function(){return k})),i.d(t,"format",(function(){return d})),i.d(t,"getToday",(function(){return u})),i.d(t,"parseDate",(function(){return m})),i.d(t,"todayIsInRange",(function(){return p})),i.d(t,"getWeekNumber",(function(){return h})),i.d(t,"datesAreInTheSamePeriod",(function(){return g})),i.d(t,"NumberFormatter",(function(){return ae})),i.d(t,"formatNumber",(function(){return pe})),i.d(t,"formatPercent",(function(){return he})),i.d(t,"formatCurrency",(function(){return ge})),i.d(t,"formatEvolution",(function(){return be})),i.d(t,"calculateAndFormatEvolution",(function(){return fe})),i.d(t,"DropdownMenu",(function(){return Ye})),i.d(t,"FocusAnywhereButHere",(function(){return tt})),i.d(t,"FocusIf",(function(){return ot})),i.d(t,"Tooltips",(function(){return st})),i.d(t,"MatomoDialog",(function(){return ut})),i.d(t,"ExpandOnClick",(function(){return yt})),i.d(t,"ExpandOnHover",(function(){return Dt})),i.d(t,"ShowSensitiveData",(function(){return Pt})),i.d(t,"DropdownButton",(function(){return Vt})),i.d(t,"SelectOnFocus",(function(){return It})),i.d(t,"CopyToClipboard",(function(){return Rt})),i.d(t,"SideNav",(function(){return Ht})),i.d(t,"EnrichedHeadline",(function(){return ni})),i.d(t,"ContentBlock",(function(){return gi})),i.d(t,"Comparisons",(function(){return Fi})),i.d(t,"ComparisonsStore",(function(){return Bi})),i.d(t,"ComparisonsStoreInstance",(function(){return Mi})),i.d(t,"MenuItemsDropdown",(function(){return Yi})),i.d(t,"DatePicker",(function(){return to})),i.d(t,"DateRangePicker",(function(){return po})),i.d(t,"PeriodDatePicker",(function(){return Co})),i.d(t,"Notification",(function(){return Mo})),i.d(t,"NotificationGroup",(function(){return qo})),i.d(t,"NotificationsStore",(function(){return $o})),i.d(t,"ShowHelpLink",(function(){return Qo})),i.d(t,"SitesStore",(function(){return Zo})),i.d(t,"SiteSelector",(function(){return jn})),i.d(t,"QuickAccess",(function(){return Rn})),i.d(t,"FieldArray",(function(){return Wn})),i.d(t,"MultiPairField",(function(){return ea})),i.d(t,"PeriodSelector",(function(){return Er})),i.d(t,"ReportingMenu",(function(){return cs})),i.d(t,"ReportingMenuStore",(function(){return is})),i.d(t,"ReportingPagesStore",(function(){return Yr})),i.d(t,"ReportMetadataStore",(function(){return ms})),i.d(t,"WidgetsStore",(function(){return rs})),i.d(t,"WidgetLoader",(function(){return Cs})),i.d(t,"WidgetContainer",(function(){return Ts})),i.d(t,"WidgetByDimensionContainer",(function(){return As})),i.d(t,"Widget",(function(){return zs})),i.d(t,"ReportingPage",(function(){return al})),i.d(t,"ReportExport",(function(){return Ml})),i.d(t,"Sparkline",(function(){return Rl})),i.d(t,"Progressbar",(function(){return ql})),i.d(t,"ContentIntro",(function(){return Wl})),i.d(t,"ContentTable",(function(){return ic})),i.d(t,"AjaxForm",(function(){return sc})),i.d(t,"Passthrough",(function(){return dc})),i.d(t,"DataTableActions",(function(){return dd})),i.d(t,"VersionInfoHeaderMessage",(function(){return Sd})),i.d(t,"MobileLeftMenu",(function(){return Nd})),i.d(t,"scrollToAnchorInUrl",(function(){return _d})),i.d(t,"SearchFiltersPersistenceStore",(function(){return ws})),i.d(t,"AutoClearPassword",(function(){return Ud})),i.d(t,"PasswordStrength",(function(){return Gd})),i.d(t,"EntityDuplicatorModal",(function(){return pu})),i.d(t,"EntityDuplicatorAction",(function(){return fu})),i.d(t,"EntityDuplicatorStore",(function(){return ju})),i.d(t,"BaseDuplicatorAdapter",(function(){return Ou})),"undefined"!==typeof window){var o=window.document.currentScript,n=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);n&&(i.p=n[1])}i("2342"); + */window.hasBlockedContent=!1},"8bbf":function(t,i){t.exports=e},fae3:function(e,t,i){"use strict";if(i.r(t),i.d(t,"createVueApp",(function(){return ve})),i.d(t,"importPluginUmd",(function(){return Se})),i.d(t,"useExternalPluginComponent",(function(){return Ce})),i.d(t,"DirectiveUtilities",(function(){return De})),i.d(t,"debounce",(function(){return Pe})),i.d(t,"clone",(function(){return Te})),i.d(t,"VueEntryContainer",(function(){return Be})),i.d(t,"ActivityIndicator",(function(){return We})),i.d(t,"MatomoLoader",(function(){return Ue})),i.d(t,"translate",(function(){return a})),i.d(t,"translateOrDefault",(function(){return r})),i.d(t,"externalRawLink",(function(){return ue})),i.d(t,"externalLink",(function(){return me})),i.d(t,"Alert",(function(){return Ke})),i.d(t,"AjaxHelper",(function(){return te})),i.d(t,"setCookie",(function(){return q})),i.d(t,"getCookie",(function(){return W})),i.d(t,"deleteCookie",(function(){return z})),i.d(t,"MatomoUrl",(function(){return U})),i.d(t,"Matomo",(function(){return M})),i.d(t,"Periods",(function(){return c})),i.d(t,"Day",(function(){return f})),i.d(t,"Week",(function(){return O})),i.d(t,"Month",(function(){return j})),i.d(t,"Year",(function(){return S})),i.d(t,"Range",(function(){return k})),i.d(t,"format",(function(){return d})),i.d(t,"getToday",(function(){return u})),i.d(t,"parseDate",(function(){return m})),i.d(t,"todayIsInRange",(function(){return p})),i.d(t,"getWeekNumber",(function(){return h})),i.d(t,"datesAreInTheSamePeriod",(function(){return g})),i.d(t,"NumberFormatter",(function(){return ae})),i.d(t,"formatNumber",(function(){return pe})),i.d(t,"formatPercent",(function(){return he})),i.d(t,"formatCurrency",(function(){return ge})),i.d(t,"formatEvolution",(function(){return be})),i.d(t,"calculateAndFormatEvolution",(function(){return fe})),i.d(t,"DropdownMenu",(function(){return Ye})),i.d(t,"FocusAnywhereButHere",(function(){return tt})),i.d(t,"FocusIf",(function(){return ot})),i.d(t,"Tooltips",(function(){return st})),i.d(t,"MatomoDialog",(function(){return ut})),i.d(t,"ExpandOnClick",(function(){return yt})),i.d(t,"ExpandOnHover",(function(){return Dt})),i.d(t,"ShowSensitiveData",(function(){return Pt})),i.d(t,"DropdownButton",(function(){return Vt})),i.d(t,"SelectOnFocus",(function(){return Mt})),i.d(t,"CopyToClipboard",(function(){return Rt})),i.d(t,"SideNav",(function(){return Ht})),i.d(t,"EnrichedHeadline",(function(){return ni})),i.d(t,"ContentBlock",(function(){return gi})),i.d(t,"Comparisons",(function(){return Fi})),i.d(t,"ComparisonsStore",(function(){return Bi})),i.d(t,"ComparisonsStoreInstance",(function(){return Ii})),i.d(t,"MenuItemsDropdown",(function(){return Yi})),i.d(t,"DatePicker",(function(){return to})),i.d(t,"DateRangePicker",(function(){return po})),i.d(t,"PeriodDatePicker",(function(){return Co})),i.d(t,"Notification",(function(){return Io})),i.d(t,"NotificationGroup",(function(){return qo})),i.d(t,"NotificationsStore",(function(){return $o})),i.d(t,"ShowHelpLink",(function(){return Qo})),i.d(t,"SitesStore",(function(){return Zo})),i.d(t,"SiteSelector",(function(){return jn})),i.d(t,"QuickAccess",(function(){return Rn})),i.d(t,"FieldArray",(function(){return Wn})),i.d(t,"MultiPairField",(function(){return ea})),i.d(t,"PeriodSelector",(function(){return Er})),i.d(t,"ReportingMenu",(function(){return cs})),i.d(t,"ReportingMenuStore",(function(){return is})),i.d(t,"ReportingPagesStore",(function(){return Yr})),i.d(t,"ReportMetadataStore",(function(){return ms})),i.d(t,"WidgetsStore",(function(){return rs})),i.d(t,"WidgetLoader",(function(){return Cs})),i.d(t,"ClientWidgetRenderer",(function(){return Es})),i.d(t,"WidgetContainer",(function(){return Ns})),i.d(t,"WidgetByDimensionContainer",(function(){return $s})),i.d(t,"Widget",(function(){return Ys})),i.d(t,"ReportingPage",(function(){return ll})),i.d(t,"ReportExport",(function(){return Ll})),i.d(t,"Sparkline",(function(){return Hl})),i.d(t,"Progressbar",(function(){return Gl})),i.d(t,"ContentIntro",(function(){return Kl})),i.d(t,"ContentTable",(function(){return ac})),i.d(t,"AjaxForm",(function(){return dc})),i.d(t,"Passthrough",(function(){return pc})),i.d(t,"DataTableActions",(function(){return pd})),i.d(t,"VersionInfoHeaderMessage",(function(){return Dd})),i.d(t,"MobileLeftMenu",(function(){return Md})),i.d(t,"scrollToAnchorInUrl",(function(){return Ud})),i.d(t,"SearchFiltersPersistenceStore",(function(){return ws})),i.d(t,"AutoClearPassword",(function(){return zd})),i.d(t,"PasswordStrength",(function(){return Qd})),i.d(t,"EntityDuplicatorModal",(function(){return bu})),i.d(t,"EntityDuplicatorAction",(function(){return yu})),i.d(t,"EntityDuplicatorStore",(function(){return Cu})),i.d(t,"BaseDuplicatorAdapter",(function(){return wu})),"undefined"!==typeof window){var o=window.document.currentScript,n=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);n&&(i.p=n[1])}i("2342"); /*! * Matomo - free/libre analytics platform * @@ -59,7 +59,7 @@ function a(e,...t){if(!e)return"";let i=t;return 1===t.length&&t[0]&&Array.isArr * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{piwik:E,broadcast:P,piwikHelper:T}=window;function V(e){if("string"!==typeof e)return;const t=e.trim();return t&&/^[A-Za-z0-9_]+$/.test(t)?t:void 0}function x(){const{CoreHome:e}=window;return null===e||void 0===e?void 0:e.ReportingMenuStore}function N(){const{CoreHome:e}=window;return null===e||void 0===e?void 0:e.ComparisonStoreInstance}function B(e){var t;if("string"!==typeof e)return;const i=e.trim(),o=N();if(o){const t=o.getSegmentComparisons();if(!i&&t.length)return t[0].title;const n=t.find(t=>t.params.segment===e);if(n)return n.title}if(!i)return a("SegmentEditor_DefaultAllVisits");const n=document.querySelector(".segmentEditorPanel .segmentationTitle"),r=null===n||void 0===n||null===(t=n.textContent)||void 0===t?void 0:t.trim();return r||a("SegmentEditor_CustomSegment")}E.helper=T,E.broadcast=P,E.updateTitle=async function(e,t,i,o,n){let r="",s="",l="";""!==t&&""!==e&&(l=c.parse(t,e).getPrettyString());const d=a("CoreHome_WebAnalyticsReports")+" - Matomo",u=x();if(u&&i&&o){var m,p,h,g;let e=u.findSubcategory(i,o);e.category||(await u.fetchMenuItems(),e=u.findSubcategory(i,o)),r=null!==(m=null===(p=e)||void 0===p||null===(p=p.category)||void 0===p?void 0:p.name)&&void 0!==m?m:"",s=null!==(h=null===(g=e)||void 0===g||null===(g=g.subcategory)||void 0===g?void 0:g.name)&&void 0!==h?h:"",r===s&&(s=""),r=T.htmlEntities(r),s=T.htmlEntities(s);const t=r?`${r} ${s?"> "+s:""}`:"",a=B(n),c=a?T.htmlEntities(a):"";document.title=[E.siteName,l,t,c,d].filter(Boolean).join(" - ")}},E.hasUserCapability=function(e){return Array.isArray(E.userCapabilities)&&-1!==E.userCapabilities.indexOf(e)},E.on=function(e,t){function i(e){t(...e.detail)}t.wrapper=i,window.addEventListener(e,i)},E.off=function(e,t){t.wrapper&&window.removeEventListener(e,t.wrapper)},E.postEvent=function(e,...t){const i=new CustomEvent(e,{detail:t});window.dispatchEvent(i)},E.getLoginModule=function(){const e=V(E.loginModule);if(e)return e;const t=V(window.loginModule);return t||"Login"};const M=E;var I=M; + */const{piwik:E,broadcast:P,piwikHelper:T}=window;function V(e){if("string"!==typeof e)return;const t=e.trim();return t&&/^[A-Za-z0-9_]+$/.test(t)?t:void 0}function x(){const{CoreHome:e}=window;return null===e||void 0===e?void 0:e.ReportingMenuStore}function N(){const{CoreHome:e}=window;return null===e||void 0===e?void 0:e.ComparisonStoreInstance}function B(e){var t;if("string"!==typeof e)return;const i=e.trim(),o=N();if(o){const t=o.getSegmentComparisons();if(!i&&t.length)return t[0].title;const n=t.find(t=>t.params.segment===e);if(n)return n.title}if(!i)return a("SegmentEditor_DefaultAllVisits");const n=document.querySelector(".segmentEditorPanel .segmentationTitle"),r=null===n||void 0===n||null===(t=n.textContent)||void 0===t?void 0:t.trim();return r||a("SegmentEditor_CustomSegment")}E.helper=T,E.broadcast=P,E.updateTitle=async function(e,t,i,o,n){let r="",s="",l="";""!==t&&""!==e&&(l=c.parse(t,e).getPrettyString());const d=a("CoreHome_WebAnalyticsReports")+" - Matomo",u=x();if(u&&i&&o){var m,p,h,g;let e=u.findSubcategory(i,o);e.category||(await u.fetchMenuItems(),e=u.findSubcategory(i,o)),r=null!==(m=null===(p=e)||void 0===p||null===(p=p.category)||void 0===p?void 0:p.name)&&void 0!==m?m:"",s=null!==(h=null===(g=e)||void 0===g||null===(g=g.subcategory)||void 0===g?void 0:g.name)&&void 0!==h?h:"",r===s&&(s=""),r=T.htmlEntities(r),s=T.htmlEntities(s);const t=r?`${r} ${s?"> "+s:""}`:"",a=B(n),c=a?T.htmlEntities(a):"";document.title=[E.siteName,l,t,c,d].filter(Boolean).join(" - ")}},E.hasUserCapability=function(e){return Array.isArray(E.userCapabilities)&&-1!==E.userCapabilities.indexOf(e)},E.on=function(e,t){function i(e){t(...e.detail)}t.wrapper=i,window.addEventListener(e,i)},E.off=function(e,t){t.wrapper&&window.removeEventListener(e,t.wrapper)},E.postEvent=function(e,...t){const i=new CustomEvent(e,{detail:t});window.dispatchEvent(i)},E.getLoginModule=function(){const e=V(E.loginModule);if(e)return e;const t=V(window.loginModule);return t||"Login"};const I=E;var M=I; /*! * Matomo - free/libre analytics platform * @@ -71,19 +71,19 @@ function a(e,...t){if(!e)return"";let i=t;return 1===t.length&&t[0]&&Array.isArr * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{piwik:L,broadcast:R}=window;function A(e,t){try{return c.parse(e,t),!0}catch(i){return!1}}class _{constructor(){F(this,"url",Object(D["ref"])(null)),F(this,"urlQuery",Object(D["computed"])(()=>this.url.value?this.url.value.search.replace(/^\?/,""):"")),F(this,"hashQuery",Object(D["computed"])(()=>this.url.value?this.url.value.hash.replace(/^[#/?]+/,""):"")),F(this,"urlParsed",Object(D["computed"])(()=>Object(D["readonly"])(this.parse(this.urlQuery.value)))),F(this,"hashParsed",Object(D["computed"])(()=>Object(D["readonly"])(this.parse(this.hashQuery.value)))),F(this,"parsed",Object(D["computed"])(()=>Object(D["readonly"])(Object.assign(Object.assign({},this.urlParsed.value),this.hashParsed.value)))),this.url.value=new URL(window.location.href),window.addEventListener("hashchange",e=>{this.url.value=new URL(e.newURL),this.updatePeriodParamsFromUrl(),this.updatePageTitle()}),this.updatePeriodParamsFromUrl(),this.updatePageTitle()}updateHashToUrl(e){const t="#"+e;window.location.hash===t?window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.href,oldURL:window.location.href})):window.location.hash=t}updateHash(e){const t=this.getFinalHashParams(e),i=this.stringify(t);this.updateHashToUrl("?"+i)}updateUrl(e,t={}){const i="string"!==typeof e?this.stringify(e):e,o=Object.keys(t).length?this.getFinalHashParams(t,e):{},n=this.stringify(o);let a="?"+i;n.length&&(a=`${a}#?${n}`),window.broadcast.propagateNewPage("",void 0,void 0,void 0,a)}getFinalHashParams(e,t={}){const i="string"!==typeof e?e:this.parse(e),o="string"!==typeof e?t:this.parse(t);return Object.assign({period:o.period||this.parsed.value.period,date:o.date||this.parsed.value.date,segment:o.segment||this.parsed.value.segment},i)}updateLocation(e){I.helper.isReportingPage()?this.updateHash(e):this.updateUrl(e)}getSearchParam(e){const t=window.location.href.split("#"),i=new RegExp(e+"(\\[]|=)");if(t&&t[1]&&i.test(decodeURIComponent(t[1]))){const t=window.broadcast.getValueFromHash(e,window.location.href);if(t||"date"!==e&&"period"!==e&&"idSite"!==e)return t}return window.broadcast.getValueFromUrl(e,window.location.search)}parse(e){return R.getValuesFromUrl("?"+e,!0)}stringify(e){const t=Object.fromEntries(Object.entries(e).filter(([,e])=>""!==e&&null!==e&&void 0!==e));return $.param(t).replace(/%5B%5D/g,"[]").replace(/%2C/g,",").replace(/\+/g,"%20")}getMenuPathSuffix(){const e=this.getSearchParam("category"),t=this.getSearchParam("subcategory");return{category:decodeURIComponent(e),subcategory:decodeURIComponent(t)}}getDateAndPeriodFromUrl(){return{date:this.getSearchParam("date")||"",period:this.getSearchParam("period")||""}}updatePageTitle(){const{period:e,date:t}=this.getDateAndPeriodFromUrl(),{category:i,subcategory:o}=this.getMenuPathSuffix(),n=this.getSearchParam("segment")||"";L.updateTitle(t,e,i,o,n)}updatePeriodParamsFromUrl(){const{period:e,date:t}=this.getDateAndPeriodFromUrl();let i=t;if(!A(e,i))return;if(L.period===e&&L.currentDateString===i)return;L.period=e;const o=c.parse(e,i).getDateRange();L.startDateString=d(o[0]),L.endDateString=d(o[1]),"range"===L.period&&(i=`${L.startDateString},${L.endDateString}`),L.currentDateString=i}}const H=new _;var U=H;function q(e,t,i){const o=new Date;i||(i=432e4),o.setTime(o.getTime()+i),document.cookie=`${e}=${t}; expires=${o.toUTCString()}; path=/`}function W(e){const t="; "+document.cookie,i=t.split(`; ${e}=`);if(2==i.length){const e=i.pop().split(";").shift();if("undefined"!==typeof e)return e}return null}function z(e){const t=new Date;t.setTime(t.getTime()+-864e5),document.cookie=`${e}=; expires=${t.toUTCString()}; path=/`}function G(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */const{piwik:L,broadcast:R}=window;function A(e,t){try{return c.parse(e,t),!0}catch(i){return!1}}class _{constructor(){F(this,"url",Object(D["ref"])(null)),F(this,"urlQuery",Object(D["computed"])(()=>this.url.value?this.url.value.search.replace(/^\?/,""):"")),F(this,"hashQuery",Object(D["computed"])(()=>this.url.value?this.url.value.hash.replace(/^[#/?]+/,""):"")),F(this,"urlParsed",Object(D["computed"])(()=>Object(D["readonly"])(this.parse(this.urlQuery.value)))),F(this,"hashParsed",Object(D["computed"])(()=>Object(D["readonly"])(this.parse(this.hashQuery.value)))),F(this,"parsed",Object(D["computed"])(()=>Object(D["readonly"])(Object.assign(Object.assign({},this.urlParsed.value),this.hashParsed.value)))),this.url.value=new URL(window.location.href),window.addEventListener("hashchange",e=>{this.url.value=new URL(e.newURL),this.updatePeriodParamsFromUrl(),this.updatePageTitle()}),this.updatePeriodParamsFromUrl(),this.updatePageTitle()}updateHashToUrl(e){const t="#"+e;window.location.hash===t?window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.href,oldURL:window.location.href})):window.location.hash=t}updateHash(e){const t=this.getFinalHashParams(e),i=this.stringify(t);this.updateHashToUrl("?"+i)}updateUrl(e,t={}){const i="string"!==typeof e?this.stringify(e):e,o=Object.keys(t).length?this.getFinalHashParams(t,e):{},n=this.stringify(o);let a="?"+i;n.length&&(a=`${a}#?${n}`),window.broadcast.propagateNewPage("",void 0,void 0,void 0,a)}getFinalHashParams(e,t={}){const i="string"!==typeof e?e:this.parse(e),o="string"!==typeof e?t:this.parse(t);return Object.assign({period:o.period||this.parsed.value.period,date:o.date||this.parsed.value.date,segment:o.segment||this.parsed.value.segment},i)}updateLocation(e){M.helper.isReportingPage()?this.updateHash(e):this.updateUrl(e)}getSearchParam(e){const t=window.location.href.split("#"),i=new RegExp(e+"(\\[]|=)");if(t&&t[1]&&i.test(decodeURIComponent(t[1]))){const t=window.broadcast.getValueFromHash(e,window.location.href);if(t||"date"!==e&&"period"!==e&&"idSite"!==e)return t}return window.broadcast.getValueFromUrl(e,window.location.search)}parse(e){return R.getValuesFromUrl("?"+e,!0)}stringify(e){const t=Object.fromEntries(Object.entries(e).filter(([,e])=>""!==e&&null!==e&&void 0!==e));return $.param(t).replace(/%5B%5D/g,"[]").replace(/%2C/g,",").replace(/\+/g,"%20")}getMenuPathSuffix(){const e=this.getSearchParam("category"),t=this.getSearchParam("subcategory");return{category:decodeURIComponent(e),subcategory:decodeURIComponent(t)}}getDateAndPeriodFromUrl(){return{date:this.getSearchParam("date")||"",period:this.getSearchParam("period")||""}}updatePageTitle(){const{period:e,date:t}=this.getDateAndPeriodFromUrl(),{category:i,subcategory:o}=this.getMenuPathSuffix(),n=this.getSearchParam("segment")||"";L.updateTitle(t,e,i,o,n)}updatePeriodParamsFromUrl(){const{period:e,date:t}=this.getDateAndPeriodFromUrl();let i=t;if(!A(e,i))return;if(L.period===e&&L.currentDateString===i)return;L.period=e;const o=c.parse(e,i).getDateRange();L.startDateString=d(o[0]),L.endDateString=d(o[1]),"range"===L.period&&(i=`${L.startDateString},${L.endDateString}`),L.currentDateString=i}}const H=new _;var U=H;function q(e,t,i){const o=new Date;i||(i=432e4),o.setTime(o.getTime()+i),document.cookie=`${e}=${t}; expires=${o.toUTCString()}; path=/`}function W(e){const t="; "+document.cookie,i=t.split(`; ${e}=`);if(2==i.length){const e=i.pop().split(";").shift();if("undefined"!==typeof e)return e}return null}function z(e){const t=new Date;t.setTime(t.getTime()+-864e5),document.cookie=`${e}=; expires=${t.toUTCString()}; path=/`}function G(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */L.updatePeriodParamsFromUrl=H.updatePeriodParamsFromUrl.bind(H);const{$:K}=window;function Y(e,t){"abort"!==t&&e&&0!==e.status&&("undefined"!==typeof Piwik_Popover?Piwik_Popover.isOpen()&&e&&500===e.status?K(document.body).html(piwikHelper.escape(e.responseText)):K("#loadingError").show():console.log("Request failed: "+e.responseText))}function Q(e){return Object.prototype.hasOwnProperty.call(e,"segment")&&"undefined"!==typeof e.segment}window.globalAjaxQueue=[],window.globalAjaxQueue.active=0,window.globalAjaxQueue.clean=function(){for(let e=this.length;e>=0;e-=1)this[e]&&4!==this[e].readyState||this.splice(e,1)},window.globalAjaxQueue.push=function(...e){return this.active+=e.length,this.clean(),Array.prototype.push.call(this,...e)},window.globalAjaxQueue.abort=function(){this.forEach(e=>e&&e.abort&&e.abort()),this.splice(0,this.length),this.active=0};class J extends Error{}class X extends Error{constructor(e,t,i){super("Chunked bulk request failed."),G(this,"xhr",void 0),G(this,"status",void 0),G(this,"errorThrown",void 0),this.xhr=e,this.status=t,this.errorThrown=i}}class Z extends Error{constructor(){super("Chunked bulk request was aborted.")}}class ee extends Error{constructor(){super("Chunked bulk request timed out due to session expiration.")}}class te{static fetch(e,t={}){if(Array.isArray(e)&&t.returnResponseObject)throw new Error(this.UNSUPPORTED_BULK_RESPONSE_OBJECT_ERROR);const i=new te;if(t.withTokenInUrl&&i.withTokenInUrl(),t.errorElement&&i.setErrorElement(t.errorElement),t.redirectOnSuccess&&i.redirectOnSuccess(!0!==t.redirectOnSuccess?t.redirectOnSuccess:void 0),i.setFormat(t.format||"json"),Array.isArray(e))i.setBulkRequests(...e);else{Object.keys(e).forEach(e=>{if(/password/i.test(e))throw new Error(`Password parameters are not allowed to be sent as GET parameter. Please send ${e} as POST parameter instead.`)});const o=Q(e);let n={};if(o){let t=null;null!==e.segment&&(t=encodeURIComponent(e.segment)),n={segment:t}}i.addParams(Object.assign(Object.assign({module:"API",format:t.format||"json"},e),n),"get")}t.postParams&&i.addParams(t.postParams,"post"),t.headers&&(i.headers=Object.assign(Object.assign({},i.headers),t.headers));let o=!0;return"undefined"===typeof t.createErrorNotification||t.createErrorNotification||(i.useCallbackInCaseOfError(),i.setErrorCallback(null),o=!1),t.abortController&&(i.abortController=t.abortController),t.returnResponseObject&&(i.resolveWithHelper=!0),!1===t.abortable&&(i.abortable=!1),i.send().then(e=>{const t=e instanceof te?e.requestHandle.responseJSON:e,o="API.getBulkRequest"===i.postParams.method&&Array.isArray(t)?t:[t],n=o.filter(e=>"error"===e.result).map(e=>e.message);if(n.length)throw new J(n.filter(e=>e.length).join("\n"));return e}).catch(e=>{if(o||e instanceof J)throw e;let t="Something went wrong";e instanceof Z&&(t="Request was possibly aborted"),e instanceof ee&&(t="Session timed out");const i="object"===typeof e&&null!==e&&"status"in e?e.status:null;throw 504===i&&(t="Request was possibly aborted"),429===i&&(t="Rate Limit was exceed"),new Error(t)})}static getBulkRequestLimit(){const e=parseInt(""+I.apiBulkRequestLimit,10);return Number.isNaN(e)?-1:e}static splitIntoChunks(e,t){const i=[];for(let o=0;o"error"===e.result).map(e=>e.message).filter(e=>e.length).reduce((e,t)=>(e[t]=(e[t]||0)+1,e),{});if(n&&Object.keys(n).length&&!this.useRegularCallbackInCaseOfError){let e="";Object.keys(n).forEach(t=>{e.length&&(e+="
"),n[t]>1?e+=`${t} (${n[t]}x)`:e+=t});let t=null,i="toast";K(this.errorElement).length&&e.length&&(K(this.errorElement).show(),t=this.errorElement,i=null);const o=!document.querySelector("#login_form");if(e&&o){const o=window["require"]("piwik/UI"),n=new o.Notification;n.show(e,{placeat:t,context:"error",type:i,id:"ajaxHelper"}),n.scrollToNotification()}}else this.callback&&this.callback(e,t,i)}buildRequestUrl(e){const t=this.mixinDefaultGetParams(e);let i=this.getUrl;if("?"!==i[i.length-1]&&(i+="&"),Object.prototype.hasOwnProperty.call(t,"segment")){const e=t.segment;delete t.segment,null!==e&&"undefined"!==typeof e&&(i=`${i}segment=${e}&`)}return t.date&&(i=`${i}date=${decodeURIComponent(t.date.toString())}&`,delete t.date),i+=K.param(t),i}buildChunkedBulkAjaxCall(e){const t=this.buildRequestUrl(Object.assign({},this.getParams)),i=e.map(e=>"string"===typeof e?e:K.param(e));return K.ajax({type:"POST",async:!0,url:t,dataType:this.format||"json",headers:this.headers?this.headers:void 0,data:this.mixinDefaultPostParams(Object.assign(Object.assign({},this.postParams),{},{urls:i})),timeout:null!==this.timeout?this.timeout:void 0})}getBulkRequestUrls(){return"API.getBulkRequest"===this.postParams.method&&Array.isArray(this.postParams.urls)?this.postParams.urls:null}shouldSendBulkRequestInChunks(){const e=this.getBulkRequestUrls();if(!e)return!1;const t=te.getBulkRequestLimit();return t>0&&e.length>t}shouldRejectBulkResponseObjectRequest(){return!!this.getBulkRequestUrls()&&this.resolveWithHelper}sendBulkRequestInChunks(){const e=this.getBulkRequestUrls();if(!e)return Promise.resolve([]);const t=te.getBulkRequestLimit();if(t<=0)return Promise.resolve([]);const i=this.abortController||new AbortController;this.abortController=i;let o=null,n=!1,a=!1;const r=()=>{!n&&this.abortable&&(window.globalAjaxQueue.active-=1,n=!0)},s=(e,t)=>{!a&&this.completeCallback&&(a=!0,this.completeCallback(e,t))},l={readyState:1,status:0,statusText:"",responseJSON:[],abort:()=>{i.abort()}},c=l;let d=c;this.requestHandle=c,this.abortable&&window.globalAjaxQueue.push(c),i.signal.addEventListener("abort",()=>{o&&o.abort()});const u=te.splitIntoChunks(e,t),m=[],p=e=>e>=u.length?Promise.resolve(m):(o=this.buildChunkedBulkAjaxCall(u[e]),new Promise((e,t)=>{o.then((t,i,o)=>{d=o,l.readyState=o.readyState,l.status=o.status,l.statusText=o.statusText||i,Array.isArray(t)?m.push(...t):m.push(t),e(m)}).fail((e,i,o)=>{l.readyState=e.readyState,l.status=e.status,l.statusText=e.statusText||i,t(new X(e,i,o))})}).then(()=>p(e+1)));return p(0).then(e=>(l.readyState=4,l.responseJSON=e,this.handleApiErrorResponseOrCallback(e,"success",d),r(),s(d,"success"),I.ajaxRequestFinished&&I.ajaxRequestFinished(),e)).catch(e=>{if(!(e instanceof X))throw e;const{xhr:t,status:i,errorThrown:o}=e;if(r(),this.errorCallback&&this.errorCallback.apply(this,[t,i,o]),s(t,i),429===t.status)throw console.log(`Warning: the '${K.param(this.getParams)}' request was rate limited!`),t;if("abort"===t.statusText||0===t.status)throw new Z;const n=!document.querySelector("#login_form"),a="1"===t.getResponseHeader("X-Matomo-Session-Timed-Out");if(a&&n)throw q("matomo_session_timed_out","1",6e4),I.helper.refreshAfter(0),new ee;throw console.log(`Warning: the ${K.param(this.getParams)} request failed!`),t})}static post(e,t={},i={}){return te.fetch(e,Object.assign(Object.assign({},i),{},{postParams:t}))}static oneAtATime(e,t){let i=null;return(o,n)=>(i&&i.abort(),i=new AbortController,te.post(Object.assign(Object.assign({},o),{},{method:e}),n,Object.assign(Object.assign({},t),{},{abortController:i})).finally(()=>{i=null}))}constructor(){G(this,"format","json"),G(this,"timeout",null),G(this,"callback",null),G(this,"useRegularCallbackInCaseOfError",!1),G(this,"errorCallback",void 0),G(this,"withToken",!1),G(this,"completeCallback",void 0),G(this,"getParams",{}),G(this,"getUrl","?"),G(this,"postParams",{}),G(this,"loadingElement",null),G(this,"errorElement","#ajaxError"),G(this,"headers",{"X-Requested-With":"XMLHttpRequest"}),G(this,"requestHandle",null),G(this,"abortController",null),G(this,"abortable",!0),G(this,"defaultParams",["idSite","period","date","segment"]),G(this,"resolveWithHelper",!1),this.errorCallback=Y}addParams(e,t){const i="string"===typeof e?window.broadcast.getValuesFromUrl(e):e,o=["compareSegments","comparePeriods","compareDates"];Object.keys(i).forEach(e=>{let n=i[e];(-1===o.indexOf(e)||n)&&("boolean"===typeof n&&(n=n?1:0),"get"===t.toLowerCase()?this.getParams[e]=n:"post"===t.toLowerCase()&&(this.postParams[e]=n))})}withTokenInUrl(){this.withToken=!0}setUrl(e){this.addParams(broadcast.getValuesFromUrl(e),"GET")}setBulkRequests(...e){const t=e.map(e=>"string"===typeof e?e:K.param(e));this.addParams({module:"API",method:"API.getBulkRequest",urls:t,format:"json"},"post")}setTimeout(e){this.timeout=e}setCallback(e){this.callback=e}useCallbackInCaseOfError(){this.useRegularCallbackInCaseOfError=!0}redirectOnSuccess(e){this.setCallback(()=>{piwikHelper.redirect(e)})}setErrorCallback(e){this.errorCallback=e}setCompleteCallback(e){this.completeCallback=e}setFormat(e){this.format=e}setLoadingElement(e){this.loadingElement=e||"#ajaxLoadingDiv"}setErrorElement(e){e&&(this.errorElement=e)}useGETDefaultParameter(e){if(e&&this.defaultParams)for(let t=0;t{this.requestHandle&&this.requestHandle.abort()});const e=new Promise((e,t)=>{this.requestHandle.then(t=>{this.resolveWithHelper?e(this):e(t)}).fail(e=>{if(429===e.status)return console.log(`Warning: the '${K.param(this.getParams)}' request was rate limited!`),void t(e);if("abort"===e.statusText||0===e.status)return;const i=!document.querySelector("#login_form"),o="1"===e.getResponseHeader("X-Matomo-Session-Timed-Out");if(o&&i)return q("matomo_session_timed_out","1",6e4),void I.helper.refreshAfter(0);console.log(`Warning: the ${K.param(this.getParams)} request failed!`),t(e)})});return e}abort(){this.requestHandle&&"function"===typeof this.requestHandle.abort&&(this.requestHandle.abort(),this.requestHandle=null)}buildAjaxCall(){const e=this,t=this.buildRequestUrl(this.getParams),i={type:"POST",async:!0,url:t,dataType:this.format||"json",complete:this.completeCallback,headers:this.headers?this.headers:void 0,error:function(...t){e.abortable&&(window.globalAjaxQueue.active-=1),e.errorCallback&&e.errorCallback.apply(this,t)},success:(t,i,o)=>{this.handleApiErrorResponseOrCallback(t,i,o),e.abortable&&(window.globalAjaxQueue.active-=1),I.ajaxRequestFinished&&I.ajaxRequestFinished()},data:this.mixinDefaultPostParams(this.postParams),timeout:null!==this.timeout?this.timeout:void 0};return K.ajax(i)}isRequestToApiMethod(){return this.getParams&&"API"===this.getParams.module&&this.getParams.method||this.postParams&&"API"===this.postParams.module&&this.postParams.method}isWidgetizedRequest(){return"Widgetize"===broadcast.getValueFromUrl("module")}getDefaultPostParams(){return this.withToken||this.isRequestToApiMethod()||I.shouldPropagateTokenAuth?{token_auth:I.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}mixinDefaultPostParams(e){const t=this.getDefaultPostParams(),i=Object.assign(Object.assign({},t),e);return i}mixinDefaultGetParams(e){const t=U.getSearchParam("segment"),i={idSite:I.idSite?I.idSite.toString():broadcast.getValueFromUrl("idSite"),period:I.period||broadcast.getValueFromUrl("period"),segment:t},o=e,n=Q(o)||Q(this.postParams);return o.token_auth&&(o.token_auth=null,delete o.token_auth),Object.keys(i).forEach(e=>{!this.useGETDefaultParameter(e)||"segment"===e&&n||null!==o[e]&&"undefined"!==typeof o[e]&&""!==o[e]||null!==this.postParams[e]&&"undefined"!==typeof this.postParams[e]&&""!==this.postParams[e]||!i[e]||(o[e]=i[e])}),!this.useGETDefaultParameter("date")||o.date||this.postParams.date||(o.date=I.currentDateString),o}getRequestHandle(){return this.requestHandle}}function ie(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */L.updatePeriodParamsFromUrl=H.updatePeriodParamsFromUrl.bind(H);const{$:K}=window;function Y(e,t){"abort"!==t&&e&&0!==e.status&&("undefined"!==typeof Piwik_Popover?Piwik_Popover.isOpen()&&e&&500===e.status?K(document.body).html(piwikHelper.escape(e.responseText)):K("#loadingError").show():console.log("Request failed: "+e.responseText))}function Q(e){return Object.prototype.hasOwnProperty.call(e,"segment")&&"undefined"!==typeof e.segment}window.globalAjaxQueue=[],window.globalAjaxQueue.active=0,window.globalAjaxQueue.clean=function(){for(let e=this.length;e>=0;e-=1)this[e]&&4!==this[e].readyState||this.splice(e,1)},window.globalAjaxQueue.push=function(...e){return this.active+=e.length,this.clean(),Array.prototype.push.call(this,...e)},window.globalAjaxQueue.abort=function(){this.forEach(e=>e&&e.abort&&e.abort()),this.splice(0,this.length),this.active=0};class J extends Error{}class X extends Error{constructor(e,t,i){super("Chunked bulk request failed."),G(this,"xhr",void 0),G(this,"status",void 0),G(this,"errorThrown",void 0),this.xhr=e,this.status=t,this.errorThrown=i}}class Z extends Error{constructor(){super("Chunked bulk request was aborted.")}}class ee extends Error{constructor(){super("Chunked bulk request timed out due to session expiration.")}}class te{static fetch(e,t={}){if(Array.isArray(e)&&t.returnResponseObject)throw new Error(this.UNSUPPORTED_BULK_RESPONSE_OBJECT_ERROR);const i=new te;if(t.withTokenInUrl&&i.withTokenInUrl(),t.errorElement&&i.setErrorElement(t.errorElement),t.redirectOnSuccess&&i.redirectOnSuccess(!0!==t.redirectOnSuccess?t.redirectOnSuccess:void 0),i.setFormat(t.format||"json"),Array.isArray(e))i.setBulkRequests(...e);else{Object.keys(e).forEach(e=>{if(/password/i.test(e))throw new Error(`Password parameters are not allowed to be sent as GET parameter. Please send ${e} as POST parameter instead.`)});const o=Q(e);let n={};if(o){let t=null;null!==e.segment&&(t=encodeURIComponent(e.segment)),n={segment:t}}i.addParams(Object.assign(Object.assign({module:"API",format:t.format||"json"},e),n),"get")}t.postParams&&i.addParams(t.postParams,"post"),t.headers&&(i.headers=Object.assign(Object.assign({},i.headers),t.headers));let o=!0;return"undefined"===typeof t.createErrorNotification||t.createErrorNotification||(i.useCallbackInCaseOfError(),i.setErrorCallback(null),o=!1),t.abortController&&(i.abortController=t.abortController),t.returnResponseObject&&(i.resolveWithHelper=!0),!1===t.abortable&&(i.abortable=!1),i.send().then(e=>{const t=e instanceof te?e.requestHandle.responseJSON:e,o="API.getBulkRequest"===i.postParams.method&&Array.isArray(t)?t:[t],n=o.filter(e=>"error"===e.result).map(e=>e.message);if(n.length)throw new J(n.filter(e=>e.length).join("\n"));return e}).catch(e=>{if(o||e instanceof J)throw e;let t="Something went wrong";e instanceof Z&&(t="Request was possibly aborted"),e instanceof ee&&(t="Session timed out");const i="object"===typeof e&&null!==e&&"status"in e?e.status:null;throw 504===i&&(t="Request was possibly aborted"),429===i&&(t="Rate Limit was exceed"),new Error(t)})}static getBulkRequestLimit(){const e=parseInt(""+M.apiBulkRequestLimit,10);return Number.isNaN(e)?-1:e}static splitIntoChunks(e,t){const i=[];for(let o=0;o"error"===e.result).map(e=>e.message).filter(e=>e.length).reduce((e,t)=>(e[t]=(e[t]||0)+1,e),{});if(n&&Object.keys(n).length&&!this.useRegularCallbackInCaseOfError){let e="";Object.keys(n).forEach(t=>{e.length&&(e+="
"),n[t]>1?e+=`${t} (${n[t]}x)`:e+=t});let t=null,i="toast";K(this.errorElement).length&&e.length&&(K(this.errorElement).show(),t=this.errorElement,i=null);const o=!document.querySelector("#login_form");if(e&&o){const o=window["require"]("piwik/UI"),n=new o.Notification;n.show(e,{placeat:t,context:"error",type:i,id:"ajaxHelper"}),n.scrollToNotification()}}else this.callback&&this.callback(e,t,i)}buildRequestUrl(e){const t=this.mixinDefaultGetParams(e);let i=this.getUrl;if("?"!==i[i.length-1]&&(i+="&"),Object.prototype.hasOwnProperty.call(t,"segment")){const e=t.segment;delete t.segment,null!==e&&"undefined"!==typeof e&&(i=`${i}segment=${e}&`)}return t.date&&(i=`${i}date=${decodeURIComponent(t.date.toString())}&`,delete t.date),i+=K.param(t),i}buildChunkedBulkAjaxCall(e){const t=this.buildRequestUrl(Object.assign({},this.getParams)),i=e.map(e=>"string"===typeof e?e:K.param(e));return K.ajax({type:"POST",async:!0,url:t,dataType:this.format||"json",headers:this.headers?this.headers:void 0,data:this.mixinDefaultPostParams(Object.assign(Object.assign({},this.postParams),{},{urls:i})),timeout:null!==this.timeout?this.timeout:void 0})}getBulkRequestUrls(){return"API.getBulkRequest"===this.postParams.method&&Array.isArray(this.postParams.urls)?this.postParams.urls:null}shouldSendBulkRequestInChunks(){const e=this.getBulkRequestUrls();if(!e)return!1;const t=te.getBulkRequestLimit();return t>0&&e.length>t}shouldRejectBulkResponseObjectRequest(){return!!this.getBulkRequestUrls()&&this.resolveWithHelper}sendBulkRequestInChunks(){const e=this.getBulkRequestUrls();if(!e)return Promise.resolve([]);const t=te.getBulkRequestLimit();if(t<=0)return Promise.resolve([]);const i=this.abortController||new AbortController;this.abortController=i;let o=null,n=!1,a=!1;const r=()=>{!n&&this.abortable&&(window.globalAjaxQueue.active-=1,n=!0)},s=(e,t)=>{!a&&this.completeCallback&&(a=!0,this.completeCallback(e,t))},l={readyState:1,status:0,statusText:"",responseJSON:[],abort:()=>{i.abort()}},c=l;let d=c;this.requestHandle=c,this.abortable&&window.globalAjaxQueue.push(c),i.signal.addEventListener("abort",()=>{o&&o.abort()});const u=te.splitIntoChunks(e,t),m=[],p=e=>e>=u.length?Promise.resolve(m):(o=this.buildChunkedBulkAjaxCall(u[e]),new Promise((e,t)=>{o.then((t,i,o)=>{d=o,l.readyState=o.readyState,l.status=o.status,l.statusText=o.statusText||i,Array.isArray(t)?m.push(...t):m.push(t),e(m)}).fail((e,i,o)=>{l.readyState=e.readyState,l.status=e.status,l.statusText=e.statusText||i,t(new X(e,i,o))})}).then(()=>p(e+1)));return p(0).then(e=>(l.readyState=4,l.responseJSON=e,this.handleApiErrorResponseOrCallback(e,"success",d),r(),s(d,"success"),M.ajaxRequestFinished&&M.ajaxRequestFinished(),e)).catch(e=>{if(!(e instanceof X))throw e;const{xhr:t,status:i,errorThrown:o}=e;if(r(),this.errorCallback&&this.errorCallback.apply(this,[t,i,o]),s(t,i),429===t.status)throw console.log(`Warning: the '${K.param(this.getParams)}' request was rate limited!`),t;if("abort"===t.statusText||0===t.status)throw new Z;const n=!document.querySelector("#login_form"),a="1"===t.getResponseHeader("X-Matomo-Session-Timed-Out");if(a&&n)throw q("matomo_session_timed_out","1",6e4),M.helper.refreshAfter(0),new ee;throw console.log(`Warning: the ${K.param(this.getParams)} request failed!`),t})}static post(e,t={},i={}){return te.fetch(e,Object.assign(Object.assign({},i),{},{postParams:t}))}static oneAtATime(e,t){let i=null;return(o,n)=>(i&&i.abort(),i=new AbortController,te.post(Object.assign(Object.assign({},o),{},{method:e}),n,Object.assign(Object.assign({},t),{},{abortController:i})).finally(()=>{i=null}))}constructor(){G(this,"format","json"),G(this,"timeout",null),G(this,"callback",null),G(this,"useRegularCallbackInCaseOfError",!1),G(this,"errorCallback",void 0),G(this,"withToken",!1),G(this,"completeCallback",void 0),G(this,"getParams",{}),G(this,"getUrl","?"),G(this,"postParams",{}),G(this,"loadingElement",null),G(this,"errorElement","#ajaxError"),G(this,"headers",{"X-Requested-With":"XMLHttpRequest"}),G(this,"requestHandle",null),G(this,"abortController",null),G(this,"abortable",!0),G(this,"defaultParams",["idSite","period","date","segment"]),G(this,"resolveWithHelper",!1),this.errorCallback=Y}addParams(e,t){const i="string"===typeof e?window.broadcast.getValuesFromUrl(e):e,o=["compareSegments","comparePeriods","compareDates"];Object.keys(i).forEach(e=>{let n=i[e];(-1===o.indexOf(e)||n)&&("boolean"===typeof n&&(n=n?1:0),"get"===t.toLowerCase()?this.getParams[e]=n:"post"===t.toLowerCase()&&(this.postParams[e]=n))})}withTokenInUrl(){this.withToken=!0}setUrl(e){this.addParams(broadcast.getValuesFromUrl(e),"GET")}setBulkRequests(...e){const t=e.map(e=>"string"===typeof e?e:K.param(e));this.addParams({module:"API",method:"API.getBulkRequest",urls:t,format:"json"},"post")}setTimeout(e){this.timeout=e}setCallback(e){this.callback=e}useCallbackInCaseOfError(){this.useRegularCallbackInCaseOfError=!0}redirectOnSuccess(e){this.setCallback(()=>{piwikHelper.redirect(e)})}setErrorCallback(e){this.errorCallback=e}setCompleteCallback(e){this.completeCallback=e}setFormat(e){this.format=e}setLoadingElement(e){this.loadingElement=e||"#ajaxLoadingDiv"}setErrorElement(e){e&&(this.errorElement=e)}useGETDefaultParameter(e){if(e&&this.defaultParams)for(let t=0;t{this.requestHandle&&this.requestHandle.abort()});const e=new Promise((e,t)=>{this.requestHandle.then(t=>{this.resolveWithHelper?e(this):e(t)}).fail(e=>{if(429===e.status)return console.log(`Warning: the '${K.param(this.getParams)}' request was rate limited!`),void t(e);if("abort"===e.statusText||0===e.status)return;const i=!document.querySelector("#login_form"),o="1"===e.getResponseHeader("X-Matomo-Session-Timed-Out");if(o&&i)return q("matomo_session_timed_out","1",6e4),void M.helper.refreshAfter(0);console.log(`Warning: the ${K.param(this.getParams)} request failed!`),t(e)})});return e}abort(){this.requestHandle&&"function"===typeof this.requestHandle.abort&&(this.requestHandle.abort(),this.requestHandle=null)}buildAjaxCall(){const e=this,t=this.buildRequestUrl(this.getParams),i={type:"POST",async:!0,url:t,dataType:this.format||"json",complete:this.completeCallback,headers:this.headers?this.headers:void 0,error:function(...t){e.abortable&&(window.globalAjaxQueue.active-=1),e.errorCallback&&e.errorCallback.apply(this,t)},success:(t,i,o)=>{this.handleApiErrorResponseOrCallback(t,i,o),e.abortable&&(window.globalAjaxQueue.active-=1),M.ajaxRequestFinished&&M.ajaxRequestFinished()},data:this.mixinDefaultPostParams(this.postParams),timeout:null!==this.timeout?this.timeout:void 0};return K.ajax(i)}isRequestToApiMethod(){return this.getParams&&"API"===this.getParams.module&&this.getParams.method||this.postParams&&"API"===this.postParams.module&&this.postParams.method}isWidgetizedRequest(){return"Widgetize"===broadcast.getValueFromUrl("module")}getDefaultPostParams(){return this.withToken||this.isRequestToApiMethod()||M.shouldPropagateTokenAuth?{token_auth:M.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}mixinDefaultPostParams(e){const t=this.getDefaultPostParams(),i=Object.assign(Object.assign({},t),e);return i}mixinDefaultGetParams(e){const t=U.getSearchParam("segment"),i={idSite:M.idSite?M.idSite.toString():broadcast.getValueFromUrl("idSite"),period:M.period||broadcast.getValueFromUrl("period"),segment:t},o=e,n=Q(o)||Q(this.postParams);return o.token_auth&&(o.token_auth=null,delete o.token_auth),Object.keys(i).forEach(e=>{!this.useGETDefaultParameter(e)||"segment"===e&&n||null!==o[e]&&"undefined"!==typeof o[e]&&""!==o[e]||null!==this.postParams[e]&&"undefined"!==typeof this.postParams[e]&&""!==this.postParams[e]||!i[e]||(o[e]=i[e])}),!this.useGETDefaultParameter("date")||o.date||this.postParams.date||(o.date=M.currentDateString),o}getRequestHandle(){return this.requestHandle}}function ie(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */G(te,"UNSUPPORTED_BULK_RESPONSE_OBJECT_ERROR","AjaxHelper returnResponseObject is not supported for bulk requests."),window.ajaxHelper=te;const{$:oe}=window;class ne{constructor(){ie(this,"defaultMinFractionDigits",0),ie(this,"defaultMaxFractionDigits",2)}format(e,t,i,o){if(!oe.isNumeric(e))return String(e);let n=e,a=t||I.numbers.patternNumber;const r=a.split(";");1===r.length&&r.push("-"+r[0]);const s=n<0;if(a=s?r[1]:r[0],n=Math.abs(n),i>=0){const e=10**i;n=Math.round(n*e)/e}const l=n.toString().split(".");let c=l[0],d=l[1]||"";const u=-1!==a.indexOf(",");if(u){const e=a.match(/#+0/),t=(null===e||void 0===e?void 0:e[0].length)||0;let i=(null===e||void 0===e?void 0:e[0].length)||0;const o=a.split(",");o.length>2&&(i=o[1].length);const n=c.split("").reverse();let r=[];r.push(n.splice(0,t).reverse().join(""));while(n.length)r.push(n.splice(0,i).reverse().join(""));r=r.reverse(),c=r.join(",")}if(o>0&&(d=d.replace(/0+$/,""),d.length{let o=e;Object.entries(t).some(([e,t])=>-1!==o.indexOf(e)&&(o=o.replace(e,t),!0)),i+=o}),i}valOrDefault(e,t){return"undefined"===typeof e?t:e}getMaxFractionDigitsForCompactFormat(e){return 1===e?1:0}determineCorrectCompactPattern(e,t){let i=0,o=0,n="";if(Math.round(t)<1e3)return["0",1];for(i=1e3;i<=1e19;i*=10){const r=i+"One",s=i+"Other";if(1===Math.round(t/i)&&""!==(null===e||void 0===e?void 0:e[r])?(o=i,n=r):Math.round(t/i)>=1&&""!==(null===e||void 0===e?void 0:e[s])&&(o=i,n=s),null!==e&&void 0!==e&&e[n]){var a;const o=(null===e||void 0===e||null===(a=e[n].match(/0/g))||void 0===a?void 0:a.length)||1;if(Math.round(t*10**o/(10*i))<10**o)break}}return[(null===e||void 0===e?void 0:e[n])||"0",o]}formatCompact(e,t,i){var o;const n=(null===(o=e.match(/0/g))||void 0===o?void 0:o.length)||0;let a=t;n>1&&(a/=10**(n-1));const r=this.getMaxFractionDigitsForCompactFormat(n),s=10**r,l=Math.round(i/a*s)/s,c=this.formatNumber(l,r,0);return e.replace(/(0+)/,c).replace(/('\.')/,".")}parseFormattedNumber(e){const t=e.indexOf(I.numbers.symbolMinus)>-1||e.startsWith("-"),i=e.split(I.numbers.symbolDecimal);return i.forEach((e,t)=>{i[t]=e.replace(/[^0-9]/g,"")}),(t?-1:1)*parseFloat(i.join("."))}formatNumber(e,t,i){return this.format(e,I.numbers.patternNumber,this.valOrDefault(t,this.defaultMaxFractionDigits),this.valOrDefault(i,this.defaultMinFractionDigits))}formatPercent(e,t,i){return this.format(e,I.numbers.patternPercent,this.valOrDefault(t,this.defaultMaxFractionDigits),this.valOrDefault(i,this.defaultMinFractionDigits))}formatCurrency(e,t,i,o){const n=this.format(e,I.numbers.patternCurrency,this.valOrDefault(i,this.defaultMaxFractionDigits),this.valOrDefault(o,this.defaultMinFractionDigits));return n.replace("¤",t)}formatNumberCompact(e){const t=e,[i,o]=this.determineCorrectCompactPattern(I.numbers.patternsCompactNumber||[],t);return Math.round(t)<1e3||"0"===i?this.formatNumber(t,this.getMaxFractionDigitsForCompactFormat(Math.round(t)),0):this.formatCompact(i,o,t)}formatCurrencyCompact(e,t){const i=e,[o,n]=this.determineCorrectCompactPattern(I.numbers.patternsCompactCurrency||[],i);return Math.round(i)<1e3||"0"===o?this.formatCurrency(i,t,this.getMaxFractionDigitsForCompactFormat(Math.round(i)),0):this.formatCompact(o,n,i).replace("¤",t)}formatEvolution(e,t,i,o){if(o)return this.formatPercent(Math.abs(e),t,i);const n=this.formatPercent(e,t,i);return`${e>0?I.numbers.symbolPlus:""}${n}`}calculateAndFormatEvolution(e,t,i){const o=parseInt(t,10),n=parseInt(e,10)-o;let a;a=0===n||Number.isNaN(n)?0:0===o||Number.isNaN(o)?100:n/o*100;let r=3;return Math.abs(a)>100?r=0:Math.abs(a)>10?r=1:Math.abs(a)>1&&(r=2),this.formatEvolution(a,r,0,i)}}var ae=new ne;window.NumberFormatter=ae; + */G(te,"UNSUPPORTED_BULK_RESPONSE_OBJECT_ERROR","AjaxHelper returnResponseObject is not supported for bulk requests."),window.ajaxHelper=te;const{$:oe}=window;class ne{constructor(){ie(this,"defaultMinFractionDigits",0),ie(this,"defaultMaxFractionDigits",2)}format(e,t,i,o){if(!oe.isNumeric(e))return String(e);let n=e,a=t||M.numbers.patternNumber;const r=a.split(";");1===r.length&&r.push("-"+r[0]);const s=n<0;if(a=s?r[1]:r[0],n=Math.abs(n),i>=0){const e=10**i;n=Math.round(n*e)/e}const l=n.toString().split(".");let c=l[0],d=l[1]||"";const u=-1!==a.indexOf(",");if(u){const e=a.match(/#+0/),t=(null===e||void 0===e?void 0:e[0].length)||0;let i=(null===e||void 0===e?void 0:e[0].length)||0;const o=a.split(",");o.length>2&&(i=o[1].length);const n=c.split("").reverse();let r=[];r.push(n.splice(0,t).reverse().join(""));while(n.length)r.push(n.splice(0,i).reverse().join(""));r=r.reverse(),c=r.join(",")}if(o>0&&(d=d.replace(/0+$/,""),d.length{let o=e;Object.entries(t).some(([e,t])=>-1!==o.indexOf(e)&&(o=o.replace(e,t),!0)),i+=o}),i}valOrDefault(e,t){return"undefined"===typeof e?t:e}getMaxFractionDigitsForCompactFormat(e){return 1===e?1:0}determineCorrectCompactPattern(e,t){let i=0,o=0,n="";if(Math.round(t)<1e3)return["0",1];for(i=1e3;i<=1e19;i*=10){const r=i+"One",s=i+"Other";if(1===Math.round(t/i)&&""!==(null===e||void 0===e?void 0:e[r])?(o=i,n=r):Math.round(t/i)>=1&&""!==(null===e||void 0===e?void 0:e[s])&&(o=i,n=s),null!==e&&void 0!==e&&e[n]){var a;const o=(null===e||void 0===e||null===(a=e[n].match(/0/g))||void 0===a?void 0:a.length)||1;if(Math.round(t*10**o/(10*i))<10**o)break}}return[(null===e||void 0===e?void 0:e[n])||"0",o]}formatCompact(e,t,i){var o;const n=(null===(o=e.match(/0/g))||void 0===o?void 0:o.length)||0;let a=t;n>1&&(a/=10**(n-1));const r=this.getMaxFractionDigitsForCompactFormat(n),s=10**r,l=Math.round(i/a*s)/s,c=this.formatNumber(l,r,0);return e.replace(/(0+)/,c).replace(/('\.')/,".")}parseFormattedNumber(e){const t=e.indexOf(M.numbers.symbolMinus)>-1||e.startsWith("-"),i=e.split(M.numbers.symbolDecimal);return i.forEach((e,t)=>{i[t]=e.replace(/[^0-9]/g,"")}),(t?-1:1)*parseFloat(i.join("."))}formatNumber(e,t,i){return this.format(e,M.numbers.patternNumber,this.valOrDefault(t,this.defaultMaxFractionDigits),this.valOrDefault(i,this.defaultMinFractionDigits))}formatPercent(e,t,i){return this.format(e,M.numbers.patternPercent,this.valOrDefault(t,this.defaultMaxFractionDigits),this.valOrDefault(i,this.defaultMinFractionDigits))}formatCurrency(e,t,i,o){const n=this.format(e,M.numbers.patternCurrency,this.valOrDefault(i,this.defaultMaxFractionDigits),this.valOrDefault(o,this.defaultMinFractionDigits));return n.replace("¤",t)}formatNumberCompact(e){const t=e,[i,o]=this.determineCorrectCompactPattern(M.numbers.patternsCompactNumber||[],t);return Math.round(t)<1e3||"0"===i?this.formatNumber(t,this.getMaxFractionDigitsForCompactFormat(Math.round(t)),0):this.formatCompact(i,o,t)}formatCurrencyCompact(e,t){const i=e,[o,n]=this.determineCorrectCompactPattern(M.numbers.patternsCompactCurrency||[],i);return Math.round(i)<1e3||"0"===o?this.formatCurrency(i,t,this.getMaxFractionDigitsForCompactFormat(Math.round(i)),0):this.formatCompact(o,n,i).replace("¤",t)}formatEvolution(e,t,i,o){if(o)return this.formatPercent(Math.abs(e),t,i);const n=this.formatPercent(e,t,i);return`${e>0?M.numbers.symbolPlus:""}${n}`}calculateAndFormatEvolution(e,t,i){const o=parseInt(t,10),n=parseInt(e,10)-o;let a;a=0===n||Number.isNaN(n)?0:0===o||Number.isNaN(o)?100:n/o*100;let r=3;return Math.abs(a)>100?r=0:Math.abs(a)>10?r=1:Math.abs(a)>1&&(r=2),this.formatEvolution(a,r,0,i)}}var ae=new ne;window.NumberFormatter=ae; /*! * Matomo - free/libre analytics platform * @@ -96,7 +96,7 @@ const{$:re}=window;class se{constructor(){this.setup()}setup(){Object(D["watch"] * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:le}=window;let ce=!1;function de(){let e=!!parseInt(W("zenMode"),10);const t=le(".top_controls .zenModeToggle");function i(){e?(le("body").addClass("zenMode"),t.addClass("icon-arrowdown").removeClass("icon-arrowup"),t.prop("title",a("CoreHome_ExitZenMode"))):(le("body").removeClass("zenMode"),t.removeClass("icon-arrowdown").addClass("icon-arrowup"),t.prop("title",a("CoreHome_EnterZenMode")))}ce||(I.helper.registerShortcut("z",a("CoreHome_ShortcutZenMode"),t=>{t.altKey||(e=!e,q("zenMode",e?"1":"0"),i())}),ce=!0),t.off("click.matomoZenMode").on("click.matomoZenMode",()=>{window.Mousetrap.trigger("z")}),i()} + */const{$:le}=window;let ce=!1;function de(){let e=!!parseInt(W("zenMode"),10);const t=le(".top_controls .zenModeToggle");function i(){e?(le("body").addClass("zenMode"),t.addClass("icon-arrowdown").removeClass("icon-arrowup"),t.prop("title",a("CoreHome_ExitZenMode"))):(le("body").removeClass("zenMode"),t.removeClass("icon-arrowdown").addClass("icon-arrowup"),t.prop("title",a("CoreHome_EnterZenMode")))}ce||(M.helper.registerShortcut("z",a("CoreHome_ShortcutZenMode"),t=>{t.altKey||(e=!e,q("zenMode",e?"1":"0"),i())}),ce=!0),t.off("click.matomoZenMode").on("click.matomoZenMode",()=>{window.Mousetrap.trigger("z")}),i()} /*! * Matomo - free/libre analytics platform * @@ -127,7 +127,7 @@ function ue(e,...t){const i=t;return window._pk_externalRawLink?window._pk_exter * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */le(de),I.on("Matomo.topControlsRendered",()=>{de()});const Oe={},ye=120,je=50,we=1e3;function Se(e){if(Oe[e])return Oe[e];if(window[e])return Promise.resolve(window[e]);const t="?module=Proxy&action=getPluginUmdJs&plugin="+e;let i,o;const n=document.createElement("script");let a;n.charset="utf-8",n.timeout=ye,n.src=t;const r=new Error,s=t=>{n.onerror=null,n.onload=null,clearTimeout(a);let s=0;function l(){if(s+=je,i&&o)if(window[e]&&o)try{o(window[e])}finally{i=void 0,o=void 0}else if(s>we)try{const n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;r.message=`Loading plugin ${e} on demand failed.\n(${n}: ${a})`,r.name="PluginOnDemandLoadError",r.type=n,r.request=a,i(r)}finally{i=void 0,o=void 0}else setTimeout(l,je)}setTimeout(l,je)};return a=setTimeout(()=>{s({type:"timeout",target:n})},ye),n.onerror=s,n.onload=s,document.head.appendChild(n),new Promise((e,t)=>{o=e,i=t})} + */le(de),M.on("Matomo.topControlsRendered",()=>{de()});const Oe={},ye=120,je=50,we=1e3;function Se(e){if(Oe[e])return Oe[e];if(window[e])return Promise.resolve(window[e]);const t="?module=Proxy&action=getPluginUmdJs&plugin="+e;let i,o;const n=document.createElement("script");let a;n.charset="utf-8",n.timeout=ye,n.src=t;const r=new Error,s=t=>{n.onerror=null,n.onload=null,clearTimeout(a);let s=0;function l(){if(s+=je,i&&o)if(window[e]&&o)try{o(window[e])}finally{i=void 0,o=void 0}else if(s>we)try{const n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;r.message=`Loading plugin ${e} on demand failed.\n(${n}: ${a})`,r.name="PluginOnDemandLoadError",r.type=n,r.request=a,i(r)}finally{i=void 0,o=void 0}else setTimeout(l,je)}setTimeout(l,je)};return a=setTimeout(()=>{s({type:"timeout",target:n})},ye),n.onerror=s,n.onload=s,document.head.appendChild(n),new Promise((e,t)=>{o=e,i=t})} /*! * Matomo - free/libre analytics platform * @@ -145,7 +145,7 @@ function ue(e,...t){const i=t;return window._pk_externalRawLink?window._pk_exter * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Te(e){return"undefined"===typeof e?e:JSON.parse(JSON.stringify(e))}const Ve={ref:"root"};function xe(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ve,[e.componentWrapper?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.componentWrapper),{key:0})):Object(D["createCommentVNode"])("",!0)],512)}var Ne=Object(D["defineComponent"])({props:{html:String},mounted(){I.helper.compileVueEntryComponents(this.$refs.root)},beforeUnmount(){I.helper.destroyVueComponent(this.$refs.root)},computed:{componentWrapper(){return this.html?Object(D["markRaw"])({template:this.html}):null}}});Ne.render=xe;var Be=Ne;const Me={class:"loadingPiwik"};function Ie(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Me,[Object(D["createVNode"])(r),Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.loadingMessage),1)],512)),[[D["vShow"],e.loading]])}const Fe={class:"matomo-loader"},Le=Object(D["createElementVNode"])("span",null,null,-1),Re=Object(D["createElementVNode"])("span",null,null,-1),Ae=Object(D["createElementVNode"])("span",null,null,-1),_e=[Le,Re,Ae];function He(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("span",Fe,_e)}var $e=Object(D["defineComponent"])({});$e.render=He;var Ue=$e,qe=Object(D["defineComponent"])({components:{MatomoLoader:Ue},props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:a("General_LoadingData")}}});qe.render=Ie;var We=qe;function ze(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["alert",{["alert-"+e.severity]:!0}])},[Object(D["renderSlot"])(e.$slots,"default")],2)}var Ge=Object(D["defineComponent"])({props:{severity:{type:String,required:!0}}});Ge.render=ze;var Ke=Ge,Ye={mounted(e,t){let i={};$(e).addClass("matomo-dropdown-menu");const o=!!$(e).parent().closest(".dropdown-content").length;var n;o&&(i={hover:!0},$(e).addClass("submenu"),$((null===(n=t.value)||void 0===n?void 0:n.activates)||$(e).data("target")).addClass("submenu-dropdown-content"),$(e).parents(".dropdown-content").addClass("submenu-container"));$(e).dropdown(i)},updated(e){Object(D["nextTick"])(()=>{$(e).addClass("matomo-dropdown-menu")})}}; + */function Te(e){return"undefined"===typeof e?e:JSON.parse(JSON.stringify(e))}const Ve={ref:"root"};function xe(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ve,[e.componentWrapper?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.componentWrapper),{key:0})):Object(D["createCommentVNode"])("",!0)],512)}var Ne=Object(D["defineComponent"])({props:{html:String},mounted(){M.helper.compileVueEntryComponents(this.$refs.root)},beforeUnmount(){M.helper.destroyVueComponent(this.$refs.root)},computed:{componentWrapper(){return this.html?Object(D["markRaw"])({template:this.html}):null}}});Ne.render=xe;var Be=Ne;const Ie={class:"loadingPiwik"};function Me(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ie,[Object(D["createVNode"])(r),Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.loadingMessage),1)],512)),[[D["vShow"],e.loading]])}const Fe={class:"matomo-loader"},Le=Object(D["createElementVNode"])("span",null,null,-1),Re=Object(D["createElementVNode"])("span",null,null,-1),Ae=Object(D["createElementVNode"])("span",null,null,-1),_e=[Le,Re,Ae];function He(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("span",Fe,_e)}var $e=Object(D["defineComponent"])({});$e.render=He;var Ue=$e,qe=Object(D["defineComponent"])({components:{MatomoLoader:Ue},props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:a("General_LoadingData")}}});qe.render=Me;var We=qe;function ze(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["alert",{["alert-"+e.severity]:!0}])},[Object(D["renderSlot"])(e.$slots,"default")],2)}var Ge=Object(D["defineComponent"])({props:{severity:{type:String,required:!0}}});Ge.render=ze;var Ke=Ge,Ye={mounted(e,t){let i={};$(e).addClass("matomo-dropdown-menu");const o=!!$(e).parent().closest(".dropdown-content").length;var n;o&&(i={hover:!0},$(e).addClass("submenu"),$((null===(n=t.value)||void 0===n?void 0:n.activates)||$(e).data("target")).addClass("submenu-dropdown-content"),$(e).parents(".dropdown-content").addClass("submenu-container"));$(e).dropdown(i)},updated(e){Object(D["nextTick"])(()=>{$(e).addClass("matomo-dropdown-menu")})}}; /*! * Matomo - free/libre analytics platform * @@ -170,19 +170,19 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:nt}=window;function at(){const e=nt(this).attr("title")||"";return window.vueSanitize(e.replace(/\n/g,"
"))}function rt(e,t){var i,o,n,a,r,s;nt(e).tooltip({track:!0,content:(null===(i=t.value)||void 0===i?void 0:i.content)||at,show:"undefined"!==typeof(null===(o=t.value)||void 0===o?void 0:o.show)?null===(n=t.value)||void 0===n?void 0:n.show:{delay:(null===(a=t.value)||void 0===a?void 0:a.delay)||700,duration:(null===(r=t.value)||void 0===r?void 0:r.duration)||200},hide:!1,tooltipClass:null===(s=t.value)||void 0===s?void 0:s.tooltipClass})}var st={mounted(e,t){setTimeout(()=>rt(e,t))},updated(e,t){setTimeout(()=>rt(e,t))},beforeUnmount(e){try{window.$(e).tooltip("destroy")}catch(t){}}};const lt={ref:"root"};function ct(e,t,i,o,n,a){return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",lt,[Object(D["renderSlot"])(e.$slots,"default")],512)),[[D["vShow"],e.modelValue]])}var dt=Object(D["defineComponent"])({props:{modelValue:{type:Boolean,required:!0},options:{type:Object,required:!1,default:()=>({})}},emits:["yes","no","closeEnd","close","validation","update:modelValue"],activated(){this.$emit("update:modelValue",!1)},watch:{modelValue(e,t){if(e){const e=this.$refs.root.firstElementChild;I.helper.modalConfirm(e,{yes:()=>{this.$emit("yes")},no:()=>{this.$emit("no")},validation:()=>{this.$emit("validation")}},Object.assign({onCloseEnd:()=>{this.$refs.root.appendChild(e),this.$emit("update:modelValue",!1),this.$emit("closeEnd")}},this.options))}else!1===e&&!0===t&&($(".modal.open").modal("close"),this.$emit("close"))}}});dt.render=ct;var ut=dt; + */const{$:nt}=window;function at(){const e=nt(this).attr("title")||"";return window.vueSanitize(e.replace(/\n/g,"
"))}function rt(e,t){var i,o,n,a,r,s;nt(e).tooltip({track:!0,content:(null===(i=t.value)||void 0===i?void 0:i.content)||at,show:"undefined"!==typeof(null===(o=t.value)||void 0===o?void 0:o.show)?null===(n=t.value)||void 0===n?void 0:n.show:{delay:(null===(a=t.value)||void 0===a?void 0:a.delay)||700,duration:(null===(r=t.value)||void 0===r?void 0:r.duration)||200},hide:!1,tooltipClass:null===(s=t.value)||void 0===s?void 0:s.tooltipClass})}var st={mounted(e,t){setTimeout(()=>rt(e,t))},updated(e,t){setTimeout(()=>rt(e,t))},beforeUnmount(e){try{window.$(e).tooltip("destroy")}catch(t){}}};const lt={ref:"root"};function ct(e,t,i,o,n,a){return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",lt,[Object(D["renderSlot"])(e.$slots,"default")],512)),[[D["vShow"],e.modelValue]])}var dt=Object(D["defineComponent"])({props:{modelValue:{type:Boolean,required:!0},options:{type:Object,required:!1,default:()=>({})}},emits:["yes","no","closeEnd","close","validation","update:modelValue"],activated(){this.$emit("update:modelValue",!1)},watch:{modelValue(e,t){if(e){const e=this.$refs.root.firstElementChild;M.helper.modalConfirm(e,{yes:()=>{this.$emit("yes")},no:()=>{this.$emit("no")},validation:()=>{this.$emit("validation")}},Object.assign({onCloseEnd:()=>{this.$refs.root.appendChild(e),this.$emit("update:modelValue",!1),this.$emit("closeEnd")}},this.options))}else!1===e&&!0===t&&($(".modal.open").modal("close"),this.$emit("close"))}}});dt.render=ct;var ut=dt; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function mt(e,t,i){var o;e.classList.add("expanded"),null!==(o=t.value)&&void 0!==o&&o.onExpand&&t.value.onExpand(i);const n=e.querySelector(".dropdown.positionInViewport");n&&I.helper.setMarginLeftToBeInViewport(n)}function pt(e,t,i){var o;e.classList.contains("expanded")&&(e.classList.remove("expanded"),null!==(o=t.value)&&void 0!==o&&o.onClosed&&t.value.onClosed(i))}function ht(e,t,i){e.classList.contains("expanded")?pt(e,t,i):mt(e,t,i)}function gt(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,o||e.contains(i.target)||pt(e,t,i)}function bt(e){e.value.hasScrolled=!0}function ft(e){e.value.isMouseDown=!0,e.value.hasScrolled=!1}function vt(e,t,i){"Escape"===i.key&&(t.value.isMouseDown=!1,t.value.hasScrolled=!1,pt(e,t,i))}const Ot=document.documentElement;var yt={mounted(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onClickOnExpander=ht.bind(null,e,t),t.value.onEscapeHandler=vt.bind(null,e,t),t.value.onMouseDown=ft.bind(null,t),t.value.onClickOutsideElement=gt.bind(null,e,t),t.value.onScroll=bt.bind(null,t),setTimeout(()=>{const e=De.getRef(t.value.expander,t);e&&e.addEventListener("click",t.value.onClickOnExpander)}),Ot.addEventListener("keyup",t.value.onEscapeHandler),Ot.addEventListener("mousedown",t.value.onMouseDown),Ot.addEventListener("mouseup",t.value.onClickOutsideElement),Ot.addEventListener("scroll",t.value.onScroll)},unmounted(e,t){const i=De.getRef(t.value.expander,t);i&&Ot.removeEventListener("click",t.value.onClickOnExpander),Ot.removeEventListener("keyup",t.value.onEscapeHandler),Ot.removeEventListener("mousedown",t.value.onMouseDown),Ot.removeEventListener("mouseup",t.value.onClickOutsideElement),Ot.removeEventListener("scroll",t.value.onScroll)}}; + */function mt(e,t,i){var o;e.classList.add("expanded"),null!==(o=t.value)&&void 0!==o&&o.onExpand&&t.value.onExpand(i);const n=e.querySelector(".dropdown.positionInViewport");n&&M.helper.setMarginLeftToBeInViewport(n)}function pt(e,t,i){var o;e.classList.contains("expanded")&&(e.classList.remove("expanded"),null!==(o=t.value)&&void 0!==o&&o.onClosed&&t.value.onClosed(i))}function ht(e,t,i){e.classList.contains("expanded")?pt(e,t,i):mt(e,t,i)}function gt(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,o||e.contains(i.target)||pt(e,t,i)}function bt(e){e.value.hasScrolled=!0}function ft(e){e.value.isMouseDown=!0,e.value.hasScrolled=!1}function vt(e,t,i){"Escape"===i.key&&(t.value.isMouseDown=!1,t.value.hasScrolled=!1,pt(e,t,i))}const Ot=document.documentElement;var yt={mounted(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onClickOnExpander=ht.bind(null,e,t),t.value.onEscapeHandler=vt.bind(null,e,t),t.value.onMouseDown=ft.bind(null,t),t.value.onClickOutsideElement=gt.bind(null,e,t),t.value.onScroll=bt.bind(null,t),setTimeout(()=>{const e=De.getRef(t.value.expander,t);e&&e.addEventListener("click",t.value.onClickOnExpander)}),Ot.addEventListener("keyup",t.value.onEscapeHandler),Ot.addEventListener("mousedown",t.value.onMouseDown),Ot.addEventListener("mouseup",t.value.onClickOutsideElement),Ot.addEventListener("scroll",t.value.onScroll)},unmounted(e,t){const i=De.getRef(t.value.expander,t);i&&Ot.removeEventListener("click",t.value.onClickOnExpander),Ot.removeEventListener("keyup",t.value.onEscapeHandler),Ot.removeEventListener("mousedown",t.value.onMouseDown),Ot.removeEventListener("mouseup",t.value.onClickOutsideElement),Ot.removeEventListener("scroll",t.value.onScroll)}}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function jt(e){e.classList.add("expanded");const t=e.querySelector(".dropdown.positionInViewport");t&&I.helper.setMarginLeftToBeInViewport(t)}function wt(e){e.classList.remove("expanded")}function St(e,t){e.contains(t.target)||e.classList.remove("expanded")}function Ct(e,t){27===t.which&&e.classList.remove("expanded")}const kt=document.documentElement;var Dt={mounted(e,t){t.value.onMouseEnter=jt.bind(null,e),t.value.onMouseLeave=wt.bind(null,e),t.value.onClickOutsideElement=St.bind(null,e),t.value.onEscapeHandler=Ct.bind(null,e),setTimeout(()=>{const e=De.getRef(t.value.expander,t);e&&e.addEventListener("mouseenter",t.value.onMouseEnter)}),e.addEventListener("mouseleave",t.value.onMouseLeave),kt.addEventListener("keyup",t.value.onEscapeHandler),kt.addEventListener("mouseup",t.value.onClickOutsideElement)},unmounted(e,t){const i=De.getRef(t.value.expander,t);i&&i.removeEventListener("mouseenter",t.value.onMouseEnter),e.removeEventListener("mouseleave",t.value.onMouseLeave),document.removeEventListener("keyup",t.value.onEscapeHandler),document.removeEventListener("mouseup",t.value.onClickOutsideElement)}}; + */function jt(e){e.classList.add("expanded");const t=e.querySelector(".dropdown.positionInViewport");t&&M.helper.setMarginLeftToBeInViewport(t)}function wt(e){e.classList.remove("expanded")}function St(e,t){e.contains(t.target)||e.classList.remove("expanded")}function Ct(e,t){27===t.which&&e.classList.remove("expanded")}const kt=document.documentElement;var Dt={mounted(e,t){t.value.onMouseEnter=jt.bind(null,e),t.value.onMouseLeave=wt.bind(null,e),t.value.onClickOutsideElement=St.bind(null,e),t.value.onEscapeHandler=Ct.bind(null,e),setTimeout(()=>{const e=De.getRef(t.value.expander,t);e&&e.addEventListener("mouseenter",t.value.onMouseEnter)}),e.addEventListener("mouseleave",t.value.onMouseLeave),kt.addEventListener("keyup",t.value.onEscapeHandler),kt.addEventListener("mouseup",t.value.onClickOutsideElement)},unmounted(e,t){const i=De.getRef(t.value.expander,t);i&&i.removeEventListener("mouseenter",t.value.onMouseEnter),e.removeEventListener("mouseleave",t.value.onMouseLeave),document.removeEventListener("keyup",t.value.onEscapeHandler),document.removeEventListener("mouseup",t.value.onClickOutsideElement)}}; /*! * Matomo - free/libre analytics platform * @@ -200,7 +200,7 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:xt}=window;function Nt(e,t){e.value.focusedElement!==t.target&&(e.value.focusedElement=t.target,xt(t.target).select())}function Bt(e){const t=document.createRange();t.selectNode(e.target);const i=window.getSelection();i&&i.rangeCount>0&&i.removeAllRanges(),i&&i.addRange(t)}function Mt(e){delete e.value.focusedElement}var It={mounted(e,t){const i=e.tagName.toLowerCase();t.value.elementSupportsSelect="textarea"===i,t.value.elementSupportsSelect?(t.value.onFocusHandler=Nt.bind(null,t),t.value.onBlurHandler=Mt.bind(null,t),e.addEventListener("focus",t.value.onFocusHandler),e.addEventListener("blur",t.value.onBlurHandler)):(t.value.onClickHandler=Bt,e.addEventListener("click",t.value.onClickHandler))},unmounted(e,t){t.value.elementSupportsSelect?(e.removeEventListener("focus",t.value.onFocusHandler),e.removeEventListener("blur",t.value.onBlurHandler)):e.removeEventListener("click",t.value.onClickHandler)}}; + */const{$:xt}=window;function Nt(e,t){e.value.focusedElement!==t.target&&(e.value.focusedElement=t.target,xt(t.target).select())}function Bt(e){const t=document.createRange();t.selectNode(e.target);const i=window.getSelection();i&&i.rangeCount>0&&i.removeAllRanges(),i&&i.addRange(t)}function It(e){delete e.value.focusedElement}var Mt={mounted(e,t){const i=e.tagName.toLowerCase();t.value.elementSupportsSelect="textarea"===i,t.value.elementSupportsSelect?(t.value.onFocusHandler=Nt.bind(null,t),t.value.onBlurHandler=It.bind(null,t),e.addEventListener("focus",t.value.onFocusHandler),e.addEventListener("blur",t.value.onBlurHandler)):(t.value.onClickHandler=Bt,e.addEventListener("click",t.value.onClickHandler))},unmounted(e,t){t.value.elementSupportsSelect?(e.removeEventListener("focus",t.value.onFocusHandler),e.removeEventListener("blur",t.value.onBlurHandler)):e.removeEventListener("click",t.value.onClickHandler)}}; /*! * Matomo - free/libre analytics platform * @@ -212,31 +212,31 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function At(){const e=document.getElementById("mobile-left-menu");if(e)try{window.$(e).sidenav("open")}catch(t){}}function _t(){const e=document.getElementById("secondNavBar");if(null===e||void 0===e||!e.classList.contains("mobileLeftMenuOpen"))return;const t=document.getElementById("mobile-left-menu");if(t)try{window.$(t).sidenav("close")}catch(i){}}var Ht={mounted(e,t){if(!t.value.activator)return;const i=document.getElementById("secondNavBar"),o=e=>{i&&i.classList.toggle("mobileLeftMenuOpen",e)};setTimeout(()=>{if(!t.value.initialized){t.value.initialized=!0;const e=De.getRef(t.value.activator,t);if(e){window.$(e).show();const t=e.getAttribute("data-target");window.$("#"+t).sidenav({closeOnClick:!0,onOpenStart:()=>{o(!0)},onCloseStart:()=>{o(!1)}})}}e.classList.contains("collapsible")&&window.$(e).collapsible()})}};const $t={key:0,class:"title",tabindex:"6"},Ut=["href","title"],qt={class:"iconsBar"},Wt=["href","title"],zt=Object(D["createElementVNode"])("span",{class:"icon-help"},null,-1),Gt=[zt],Kt=["title"],Yt=Object(D["createElementVNode"])("span",{class:"icon-info"},null,-1),Qt=[Yt],Jt={key:2,class:"ratingIcons"},Xt={class:"inlineHelp"},Zt=["innerHTML"],ei=["innerHTML"],ti=["href"];function ii(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"enrichedHeadline",onMouseenter:t[1]||(t[1]=t=>e.showIcons=!0),onMouseleave:t[2]||(t[2]=t=>e.showIcons=!1),ref:"root"},[e.editUrl?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",$t,[Object(D["renderSlot"])(e.$slots,"default")])),e.editUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"title",href:e.editUrl,title:e.translate("CoreHome_ClickToEditX",e.htmlEntities(e.actualFeatureName))},[Object(D["renderSlot"])(e.$slots,"default")],8,Ut)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",qt,[e.helpUrl&&!e.actualInlineHelp?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"helpIcon",href:e.helpUrl,title:e.translate("CoreHome_ExternalHelp")},Gt,8,Wt)):Object(D["createCommentVNode"])("",!0),e.actualInlineHelp?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,onClick:t[0]||(t[0]=t=>e.showInlineHelp=!e.showInlineHelp),class:Object(D["normalizeClass"])(["helpIcon",{active:e.showInlineHelp}]),title:e.translate(e.reportGenerated?"General_HelpReport":"General_Help")},Qt,10,Kt)):Object(D["createCommentVNode"])("",!0),e.showRateFeature?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Jt,[(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.rateFeature),{title:e.actualFeatureName},null,8,["title"]))])):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showIcons||e.showInlineHelp]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Xt,[Object(D["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Zt),""!=e.reportGenerated?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,class:"helpDate",innerHTML:e.$sanitize(e.reportGenerated)},null,8,ei)):Object(D["createCommentVNode"])("",!0),e.helpUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(D["toDisplayString"])(e.translate("General_MoreDetails")),9,ti)):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showInlineHelp]])],544)}var oi=Object(D["defineComponent"])({props:{helpUrl:{type:String,default:""},editUrl:{type:String,default:""},reportGenerated:String,featureName:String,inlineHelp:String},data(){return{showIcons:!1,showInlineHelp:!1,actualFeatureName:this.featureName,actualInlineHelp:this.inlineHelp}},watch:{inlineHelp(e){this.actualInlineHelp=e},featureName(e){this.actualFeatureName=e}},mounted(){const e=this.$refs.root;if(!this.actualInlineHelp){var t;let o=e.querySelector(".title .inlineHelp");if(!o&&null!==(t=e.parentElement)&&void 0!==t&&t.nextElementSibling&&(o=e.parentElement.nextElementSibling.querySelector(".reportDocumentation")),o){var i;const e=null===(i=o.getAttribute("data-content"))||void 0===i?void 0:i.trim();e&&e.length&&(this.actualInlineHelp=`

${e}

`,setTimeout(()=>o.remove(),0))}}var o;this.actualFeatureName||(this.actualFeatureName=null===(o=e.querySelector(".title"))||void 0===o?void 0:o.textContent);if(I.period&&I.currentDateString){const t=c.parse(I.period,I.currentDateString);this.reportGenerated&&t.containsToday()&&window.$(e.querySelector(".report-generated")).tooltip({track:!0,content:this.reportGenerated,items:"div",show:!1,hide:!1})}},methods:{htmlEntities(e){return I.helper.htmlEntities(e)}},computed:{showRateFeature(){return"Feedback_SendFeedback"!==r("Feedback_SendFeedback")},rateFeature(){return this.showRateFeature?Ce("Feedback","RateFeature"):""}}});oi.render=ii;var ni=oi;const ai={class:"card-content"},ri={key:0,class:"card-title"},si={key:1,class:"card-title"},li={ref:"content"},ci={key:0,class:"card-image hide-on-med-and-down"},di=["src","alt"];function ui(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("EnrichedHeadline");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])({card:!0,"card-with-image":!!this.imageUrl}),ref:"root"},[Object(D["createElementVNode"])("div",ai,[!e.contentTitle||e.actualFeature||e.helpUrl||e.actualHelpText||e.editUrl?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",ri,Object(D["toDisplayString"])(e.decode(e.contentTitle)),1)),e.contentTitle&&(e.actualFeature||e.helpUrl||e.actualHelpText||e.editUrl)?(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",si,[Object(D["createVNode"])(r,{"feature-name":e.actualFeature,"help-url":e.helpUrl,"edit-url":e.editUrl,"inline-help":e.actualHelpText},{default:Object(D["withCtx"])(()=>[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.decode(e.contentTitle)),1)]),_:1},8,["feature-name","help-url","edit-url","inline-help"])])):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",li,[Object(D["renderSlot"])(e.$slots,"default")],512)]),e.imageUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ci,[Object(D["createElementVNode"])("img",{src:e.imageUrl,alt:e.actualImageAltText},null,8,di)])):Object(D["createCommentVNode"])("",!0)],2)}let mi=null;const{$:pi}=window;var hi=Object(D["defineComponent"])({props:{contentTitle:String,feature:String,helpUrl:String,editUrl:String,helpText:String,anchor:String,imageUrl:String,imageAltText:String},components:{EnrichedHeadline:ni},data(){return{actualFeature:this.feature,actualHelpText:this.helpText,actualImageAltText:this.imageAltText?this.imageAltText:this.contentTitle}},watch:{feature(e){this.actualFeature=e},helpText(e){this.actualHelpText=e}},mounted(){const e=this.$refs.root,t=this.$refs.content;if(this.anchor&&e&&e.parentElement){const t=document.createElement("a");t.id=this.anchor,pi(e.parentElement).prepend(t)}setTimeout(()=>{const e=t.querySelector(".contentHelp");e&&(this.actualHelpText=e.innerHTML,e.remove())},0),this.actualFeature&&"true"===this.actualFeature&&(this.actualFeature=this.contentTitle),null===mi&&(mi=document.querySelector("#content.admin"));let i=null;if(mi&&(i=mi.offsetTop),i||0===i){const t=e.closest(".widgetLoader"),o=t?t.offsetTop:e.offsetTop;o-i<17&&(e.style.marginTop="0")}},methods:{decode(e){return I.helper.htmlDecode(e)}}});hi.render=ui;var gi=hi;const bi={key:0,ref:"root",class:"matomo-comparisons"},fi={class:"comparison-type"},vi=["title"],Oi=["href"],yi=["title"],ji={class:"comparison-period-label"},wi=["onClick"],Si=["title"],Ci={class:"loadingPiwik",style:{display:"none"}};function ki(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader"),s=Object(D["resolveDirective"])("tooltips");return e.isComparing?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",bi,[Object(D["createElementVNode"])("h3",null,Object(D["toDisplayString"])(e.translate("General_Comparisons")),1),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.segmentComparisons,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"comparison card",key:t.index},[Object(D["createElementVNode"])("div",fi,Object(D["toDisplayString"])(e.translate("General_Segment")),1),Object(D["createElementVNode"])("div",{class:"title",title:e.getTitleTooltip(t)},[Object(D["createElementVNode"])("a",{target:"_blank",href:e.getUrlToSegment(t.params.segment)},Object(D["toDisplayString"])(t.title),9,Oi)],8,vi),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.periodComparisons,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"comparison-period",key:i.index,title:e.getComparisonTooltip(t,i)},[Object(D["createElementVNode"])("span",{class:"comparison-dot",style:Object(D["normalizeStyle"])({"background-color":e.getSeriesColor(t,i)})},null,4),Object(D["createElementVNode"])("span",ji,Object(D["toDisplayString"])(i.title)+" ("+Object(D["toDisplayString"])(e.getComparisonPeriodType(i))+") ",1)],8,yi))),128)),e.segmentComparisons.length>1?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:"remove-button",onClick:t=>e.removeSegmentComparison(i)},[Object(D["createElementVNode"])("span",{class:"icon icon-close",title:e.translate("General_ClickToRemoveComp")},null,8,Si)],8,wi)):Object(D["createCommentVNode"])("",!0)]))),128)),Object(D["createElementVNode"])("div",Ci,[Object(D["createVNode"])(r),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.translate("General_LoadingData")),1)])])),[[s,{duration:200,delay:200,content:e.transformTooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function Di(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */function At(){const e=document.getElementById("mobile-left-menu");if(e)try{window.$(e).sidenav("open")}catch(t){}}function _t(){const e=document.getElementById("secondNavBar");if(null===e||void 0===e||!e.classList.contains("mobileLeftMenuOpen"))return;const t=document.getElementById("mobile-left-menu");if(t)try{window.$(t).sidenav("close")}catch(i){}}var Ht={mounted(e,t){if(!t.value.activator)return;const i=document.getElementById("secondNavBar"),o=e=>{i&&i.classList.toggle("mobileLeftMenuOpen",e)};setTimeout(()=>{if(!t.value.initialized){t.value.initialized=!0;const e=De.getRef(t.value.activator,t);if(e){window.$(e).show();const t=e.getAttribute("data-target");window.$("#"+t).sidenav({closeOnClick:!0,onOpenStart:()=>{o(!0)},onCloseStart:()=>{o(!1)}})}}e.classList.contains("collapsible")&&window.$(e).collapsible()})}};const $t={key:0,class:"title",tabindex:"6"},Ut=["href","title"],qt={class:"iconsBar"},Wt=["href","title"],zt=Object(D["createElementVNode"])("span",{class:"icon-help"},null,-1),Gt=[zt],Kt=["title"],Yt=Object(D["createElementVNode"])("span",{class:"icon-info"},null,-1),Qt=[Yt],Jt={key:2,class:"ratingIcons"},Xt={class:"inlineHelp"},Zt=["innerHTML"],ei=["innerHTML"],ti=["href"];function ii(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"enrichedHeadline",onMouseenter:t[1]||(t[1]=t=>e.showIcons=!0),onMouseleave:t[2]||(t[2]=t=>e.showIcons=!1),ref:"root"},[e.editUrl?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",$t,[Object(D["renderSlot"])(e.$slots,"default")])),e.editUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"title",href:e.editUrl,title:e.translate("CoreHome_ClickToEditX",e.htmlEntities(e.actualFeatureName))},[Object(D["renderSlot"])(e.$slots,"default")],8,Ut)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",qt,[e.helpUrl&&!e.actualInlineHelp?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"helpIcon",href:e.helpUrl,title:e.translate("CoreHome_ExternalHelp")},Gt,8,Wt)):Object(D["createCommentVNode"])("",!0),e.actualInlineHelp?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,onClick:t[0]||(t[0]=t=>e.showInlineHelp=!e.showInlineHelp),class:Object(D["normalizeClass"])(["helpIcon",{active:e.showInlineHelp}]),title:e.translate(e.reportGenerated?"General_HelpReport":"General_Help")},Qt,10,Kt)):Object(D["createCommentVNode"])("",!0),e.showRateFeature?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Jt,[(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.rateFeature),{title:e.actualFeatureName},null,8,["title"]))])):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showIcons||e.showInlineHelp]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Xt,[Object(D["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Zt),""!=e.reportGenerated?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,class:"helpDate",innerHTML:e.$sanitize(e.reportGenerated)},null,8,ei)):Object(D["createCommentVNode"])("",!0),e.helpUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(D["toDisplayString"])(e.translate("General_MoreDetails")),9,ti)):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showInlineHelp]])],544)}var oi=Object(D["defineComponent"])({props:{helpUrl:{type:String,default:""},editUrl:{type:String,default:""},reportGenerated:String,featureName:String,inlineHelp:String},data(){return{showIcons:!1,showInlineHelp:!1,actualFeatureName:this.featureName,actualInlineHelp:this.inlineHelp}},watch:{inlineHelp(e){this.actualInlineHelp=e},featureName(e){this.actualFeatureName=e}},mounted(){const e=this.$refs.root;if(!this.actualInlineHelp){var t;let o=e.querySelector(".title .inlineHelp");if(!o&&null!==(t=e.parentElement)&&void 0!==t&&t.nextElementSibling&&(o=e.parentElement.nextElementSibling.querySelector(".reportDocumentation")),o){var i;const e=null===(i=o.getAttribute("data-content"))||void 0===i?void 0:i.trim();e&&e.length&&(this.actualInlineHelp=`

${e}

`,setTimeout(()=>o.remove(),0))}}var o;this.actualFeatureName||(this.actualFeatureName=null===(o=e.querySelector(".title"))||void 0===o?void 0:o.textContent);if(M.period&&M.currentDateString){const t=c.parse(M.period,M.currentDateString);this.reportGenerated&&t.containsToday()&&window.$(e.querySelector(".report-generated")).tooltip({track:!0,content:this.reportGenerated,items:"div",show:!1,hide:!1})}},methods:{htmlEntities(e){return M.helper.htmlEntities(e)}},computed:{showRateFeature(){return"Feedback_SendFeedback"!==r("Feedback_SendFeedback")},rateFeature(){return this.showRateFeature?Ce("Feedback","RateFeature"):""}}});oi.render=ii;var ni=oi;const ai={class:"card-content"},ri={key:0,class:"card-title"},si={key:1,class:"card-title"},li={ref:"content"},ci={key:0,class:"card-image hide-on-med-and-down"},di=["src","alt"];function ui(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("EnrichedHeadline");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])({card:!0,"card-with-image":!!this.imageUrl}),ref:"root"},[Object(D["createElementVNode"])("div",ai,[!e.contentTitle||e.actualFeature||e.helpUrl||e.actualHelpText||e.editUrl?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",ri,Object(D["toDisplayString"])(e.decode(e.contentTitle)),1)),e.contentTitle&&(e.actualFeature||e.helpUrl||e.actualHelpText||e.editUrl)?(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",si,[Object(D["createVNode"])(r,{"feature-name":e.actualFeature,"help-url":e.helpUrl,"edit-url":e.editUrl,"inline-help":e.actualHelpText},{default:Object(D["withCtx"])(()=>[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.decode(e.contentTitle)),1)]),_:1},8,["feature-name","help-url","edit-url","inline-help"])])):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",li,[Object(D["renderSlot"])(e.$slots,"default")],512)]),e.imageUrl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ci,[Object(D["createElementVNode"])("img",{src:e.imageUrl,alt:e.actualImageAltText},null,8,di)])):Object(D["createCommentVNode"])("",!0)],2)}let mi=null;const{$:pi}=window;var hi=Object(D["defineComponent"])({props:{contentTitle:String,feature:String,helpUrl:String,editUrl:String,helpText:String,anchor:String,imageUrl:String,imageAltText:String},components:{EnrichedHeadline:ni},data(){return{actualFeature:this.feature,actualHelpText:this.helpText,actualImageAltText:this.imageAltText?this.imageAltText:this.contentTitle}},watch:{feature(e){this.actualFeature=e},helpText(e){this.actualHelpText=e}},mounted(){const e=this.$refs.root,t=this.$refs.content;if(this.anchor&&e&&e.parentElement){const t=document.createElement("a");t.id=this.anchor,pi(e.parentElement).prepend(t)}setTimeout(()=>{const e=t.querySelector(".contentHelp");e&&(this.actualHelpText=e.innerHTML,e.remove())},0),this.actualFeature&&"true"===this.actualFeature&&(this.actualFeature=this.contentTitle),null===mi&&(mi=document.querySelector("#content.admin"));let i=null;if(mi&&(i=mi.offsetTop),i||0===i){const t=e.closest(".widgetLoader"),o=t?t.offsetTop:e.offsetTop;o-i<17&&(e.style.marginTop="0")}},methods:{decode(e){return M.helper.htmlDecode(e)}}});hi.render=ui;var gi=hi;const bi={key:0,ref:"root",class:"matomo-comparisons"},fi={class:"comparison-type"},vi=["title"],Oi=["href"],yi=["title"],ji={class:"comparison-period-label"},wi=["onClick"],Si=["title"],Ci={class:"loadingPiwik",style:{display:"none"}};function ki(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader"),s=Object(D["resolveDirective"])("tooltips");return e.isComparing?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",bi,[Object(D["createElementVNode"])("h3",null,Object(D["toDisplayString"])(e.translate("General_Comparisons")),1),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.segmentComparisons,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"comparison card",key:t.index},[Object(D["createElementVNode"])("div",fi,Object(D["toDisplayString"])(e.translate("General_Segment")),1),Object(D["createElementVNode"])("div",{class:"title",title:e.getTitleTooltip(t)},[Object(D["createElementVNode"])("a",{target:"_blank",href:e.getUrlToSegment(t.params.segment)},Object(D["toDisplayString"])(t.title),9,Oi)],8,vi),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.periodComparisons,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"comparison-period",key:i.index,title:e.getComparisonTooltip(t,i)},[Object(D["createElementVNode"])("span",{class:"comparison-dot",style:Object(D["normalizeStyle"])({"background-color":e.getSeriesColor(t,i)})},null,4),Object(D["createElementVNode"])("span",ji,Object(D["toDisplayString"])(i.title)+" ("+Object(D["toDisplayString"])(e.getComparisonPeriodType(i))+") ",1)],8,yi))),128)),e.segmentComparisons.length>1?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:"remove-button",onClick:t=>e.removeSegmentComparison(i)},[Object(D["createElementVNode"])("span",{class:"icon icon-close",title:e.translate("General_ClickToRemoveComp")},null,8,Si)],8,wi)):Object(D["createCommentVNode"])("",!0)]))),128)),Object(D["createElementVNode"])("div",Ci,[Object(D["createVNode"])(r),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.translate("General_LoadingData")),1)])])),[[s,{duration:200,delay:200,content:e.transformTooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function Di(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class Ei{get state(){return Object(D["readonly"])(this.segmentState)}constructor(){Di(this,"segmentState",Object(D["reactive"])({availableSegments:[]})),I.on("piwikSegmentationInited",()=>this.setSegmentState())}setSegmentState(){try{const e=$(".segmentEditorPanel").data("uiControlObject");this.segmentState.availableSegments=e.impl.availableSegments||[]}catch(e){}}}var Pi=new Ei;function Ti(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */class Ei{get state(){return Object(D["readonly"])(this.segmentState)}constructor(){Di(this,"segmentState",Object(D["reactive"])({availableSegments:[]})),M.on("piwikSegmentationInited",()=>this.setSegmentState())}setSegmentState(){try{const e=$(".segmentEditorPanel").data("uiControlObject");this.segmentState.availableSegments=e.impl.availableSegments||[]}catch(e){}}}var Pi=new Ei;function Ti(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const Vi=8,xi=3;function Ni(e){return e?Array.isArray(e)?e:[e]:[]}class Bi{constructor(){Ti(this,"privateState",Object(D["reactive"])({comparisonsDisabledFor:[]})),Ti(this,"state",Object(D["readonly"])(this.privateState)),Ti(this,"colors",{}),Ti(this,"segmentComparisons",Object(D["computed"])(()=>this.parseSegmentComparisons())),Ti(this,"periodComparisons",Object(D["computed"])(()=>this.parsePeriodComparisons())),Ti(this,"isEnabled",Object(D["computed"])(()=>this.checkEnabledForCurrentPage())),"complete"===document.readyState||"interactive"===document.readyState?this.loadComparisonsDisabledFor():document.addEventListener("DOMContentLoaded",()=>{this.loadComparisonsDisabledFor()}),$(()=>{this.colors=this.getAllSeriesColors()}),Object(D["watch"])(()=>this.getComparisons(),()=>I.postEvent("piwikComparisonsChanged"),{deep:!0})}getComparisons(){return this.getSegmentComparisons().concat(this.getPeriodComparisons())}isComparing(){return this.isComparisonEnabled()&&(this.segmentComparisons.value.length>1||this.periodComparisons.value.length>1)}isComparingPeriods(){return this.getPeriodComparisons().length>1}getSegmentComparisons(){return this.isComparisonEnabled()?this.segmentComparisons.value:[]}getPeriodComparisons(){return this.isComparisonEnabled()?this.periodComparisons.value:[]}getSeriesColor(e,t,i=0){const o=this.getComparisonSeriesIndex(t.index,e.index)%Vi;if(0===i)return this.colors["series"+o];const n=i%xi;return this.colors[`series${o}-shade${n}`]}getSeriesColorName(e,t){let i="series"+e%Vi;return t>0&&(i+="-shade"+t%xi),i}isComparisonEnabled(){return this.isEnabled.value}getIndividualComparisonRowIndices(e){const t=this.getSegmentComparisons().length,i=e%t,o=Math.floor(e/t);return{segmentIndex:i,periodIndex:o}}getComparisonSeriesIndex(e,t){const i=this.getSegmentComparisons().length;return e*i+t}getAllComparisonSeries(){const e=[];let t=0;return this.getPeriodComparisons().forEach(i=>{this.getSegmentComparisons().forEach(o=>{e.push({index:t,params:Object.assign(Object.assign({},o.params),i.params),color:this.colors["series"+t]}),t+=1})}),e}removeSegmentComparison(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");const t=[...this.segmentComparisons.value];t.splice(e,1);const i={};0===e&&(i.segment=t[0].params.segment),this.updateQueryParamsFromComparisons(t,this.periodComparisons.value,i)}removeSegmentComparisonByDefinition(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");let t=null;this.getSegmentComparisons().forEach((i,o)=>{i&&i.params&&i.params.segment===e&&(t=o)}),null!==t&&this.removeSegmentComparison(t)}addSegmentComparison(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");const t=this.segmentComparisons.value.concat([{params:e,index:-1,title:""}]);this.updateQueryParamsFromComparisons(t,this.periodComparisons.value)}updateQueryParamsFromComparisons(e,t,i={}){const o={},n={};let a=!1,r=!1;e.forEach(e=>{a?o[e.params.segment]=!0:a=!0}),t.forEach(e=>{r?n[`${e.params.period}|${e.params.date}`]=!0:r=!0});const s=[],l=[];Object.keys(n).forEach(e=>{const t=e.split("|");s.push(t[0]),l.push(t[1])});const c={compareSegments:Object.keys(o),comparePeriods:s,compareDates:l},d=I.helper.isReportingPage()?U.hashParsed.value:U.urlParsed.value;U.updateLocation(Object.assign(Object.assign(Object.assign({},d),c),i))}getAllSeriesColors(){const{ColorManager:e}=I;if(!e)return[];const t=[];for(let i=0;i{this.privateState.comparisonsDisabledFor=e})}parseSegmentComparisons(){const{availableSegments:e}=Pi.state,t=[...Ni(U.parsed.value.compareSegments)];t.unshift(U.parsed.value.segment||"");const i=[];return t.forEach((t,o)=>{let n;e.forEach(e=>{e.definition!==t&&e.definition!==decodeURIComponent(t)&&decodeURIComponent(e.definition)!==t||(n=e)});let r=n?n.name:a("General_Unknown");""===t.trim()&&(r=a("SegmentEditor_DefaultAllVisits")),i.push({params:{segment:t},title:I.helper.htmlDecode(r),index:o})}),i}parsePeriodComparisons(){const e=[...Ni(U.parsed.value.comparePeriods)],t=[...Ni(U.parsed.value.compareDates)];e.unshift(U.parsed.value.period),t.unshift(U.parsed.value.date);const i=[];for(let n=0;nMi.isComparing()&&!window.broadcast.isNoDataPage()),t=Object(D["computed"])(()=>Mi.getSegmentComparisons()),i=Object(D["computed"])(()=>Mi.getPeriodComparisons()),o=Mi.getSeriesColor.bind(Mi);function n(){const e=window.$(this).attr("title");return e?window.vueSanitize(e.replace(/\n/g,"
")):e}return{isComparing:e,segmentComparisons:t,periodComparisons:i,getSeriesColor:o,transformTooltipContent:n}},methods:{comparisonHasSegment(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison(e){window.$(this.$refs.root).tooltip("destroy"),Mi.removeSegmentComparison(e)},getComparisonPeriodType(e){const{period:t}=e.params;if("range"===t)return a("CoreHome_PeriodRange");const i=a(`Intl_Period${t.substring(0,1).toUpperCase()}${t.substring(1)}`);return i.substring(0,1).toUpperCase()+i.substring(1)},getComparisonTooltip(e,t){if(this.comparisonTooltips&&Object.keys(this.comparisonTooltips).length)return(this.comparisonTooltips[t.index]||{})[e.index]},getTitleTooltip(e){return this.htmlentities(e.title)+"
"+this.htmlentities(decodeURIComponent(e.params.segment))},getUrlToSegment(e){const t=Object.assign({},U.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,`${window.location.search}#?${U.stringify(t)}`},onComparisonsChanged(){if(this.comparisonTooltips=null,!Mi.isComparing())return;const e=Mi.getPeriodComparisons(),t=Mi.getSegmentComparisons();te.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:U.getSearchParam("compareSegments"),comparePeriods:U.getSearchParam("comparePeriods"),compareDates:U.getSearchParam("compareDates"),format_metrics:"1"}).then(i=>{this.comparisonTooltips={},e.forEach(e=>{this.comparisonTooltips[e.index]={},t.forEach(t=>{const o=this.generateComparisonTooltip(i,e,t);this.comparisonTooltips[e.index][t.index]=o})})})},generateComparisonTooltip(e,t,i){if(!e.reportData.comparisons)return"";const o=Mi.getComparisonSeriesIndex(t.index,0),n=e.reportData.comparisons[o],r=Mi.getComparisonSeriesIndex(t.index,i.index),s=e.reportData.comparisons[r],l=e.reportData.comparisons[i.index];let c='
',d=(s.nb_visits/n.nb_visits*100).toFixed(2);return d+="%",c+=a("General_ComparisonCardTooltip1",[`'${this.htmlentities(s.compareSegmentPretty)}'`,s.comparePeriodPretty,d,s.nb_visits.toString(),n.nb_visits.toString()]),t.index>0&&(c+="

",c+=a("General_ComparisonCardTooltip2",[s.nb_visits_change.toString(),this.htmlentities(l.compareSegmentPretty),l.comparePeriodPretty])),c+="
",c},htmlentities(e){return I.helper.htmlEntities(e)}},mounted(){I.on("piwikComparisonsChanged",()=>{this.onComparisonsChanged()}),this.onComparisonsChanged()}});Ii.render=ki;var Fi=Ii;const Li={ref:"root",class:"menuDropdown"},Ri=["title"],Ai=["innerHTML"],_i=Object(D["createElementVNode"])("span",{class:"icon-chevron-down reporting-menu-sub-icon"},null,-1),Hi={class:"items"},$i={key:0,class:"search"},Ui=["placeholder"],qi=["title"],Wi=["title"];function zi(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("focus-if"),s=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Li,[Object(D["createElementVNode"])("span",{class:"title",onClick:t[0]||(t[0]=t=>e.showItems=!e.showItems),title:e.tooltip},[Object(D["createElementVNode"])("span",{class:"title-label",innerHTML:e.$sanitize(this.actualMenuTitle)},null,8,Ai),_i],8,Ri),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Hi,[e.showSearch&&e.showItems?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",$i,[Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=t=>e.searchTerm=t),onKeydown:t[2]||(t[2]=t=>e.onSearchTermKeydown(t)),placeholder:e.translate("General_Search")},null,40,Ui),[[D["vModelText"],e.searchTerm],[r,{focused:e.showItems}]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{class:"search_ico icon-search",title:e.translate("General_Search")},null,8,qi),[[D["vShow"],!e.searchTerm]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{onClick:t[3]||(t[3]=t=>{e.searchTerm="",e.searchItems("")}),class:"reset icon-close",title:e.translate("General_Clear")},null,8,Wi),[[D["vShow"],e.searchTerm]])])):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",{onClick:t[4]||(t[4]=t=>e.selectItem(t))},[Object(D["renderSlot"])(e.$slots,"default")])],512),[[D["vShow"],e.showItems]])])),[[s,{blur:e.lostFocus}]])}const{$:Gi}=window;var Ki=Object(D["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:Boolean},directives:{FocusAnywhereButHere:tt,FocusIf:ot},emits:["afterSelect"],watch:{menuTitle(){this.actualMenuTitle=this.menuTitle}},data(){return{showItems:!1,searchTerm:"",actualMenuTitle:this.menuTitle}},methods:{lostFocus(){this.showItems=!1},selectItem(e){const t=e.target.classList;!t.contains("item")||t.contains("disabled")||t.contains("separator")||(this.menuTitleChangeOnClick&&(this.actualMenuTitle=(e.target.textContent||"").replace(/[\u0000-\u2666]/g,e=>`&#${e.charCodeAt(0)};`)),this.showItems=!1,Gi(this.$slots.default()[0].el).find(".item").removeClass("active"),t.add("active"),this.$emit("afterSelect",e.target))},onSearchTermKeydown(){setTimeout(()=>{this.searchItems(this.searchTerm)})},searchItems(e){const t=e.toLowerCase();Gi(this.$refs.root).find(".item").each((e,i)=>{const o=Gi(i);-1===o.text().toLowerCase().indexOf(t)?o.hide():o.show()})}}});Ki.render=zi;var Yi=Ki;const Qi={ref:"root"};function Ji(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Qi,null,512)}const Xi=1,{$:Zi}=window;var eo=Object(D["defineComponent"])({props:{selectedDateStart:Date,selectedDateEnd:Date,persistentHighlightedDateStart:Date,persistentHighlightedDateEnd:Date,highlightedDateStart:Date,highlightedDateEnd:Date,viewDate:[String,Date],stepMonths:Number,disableMonthDropdown:Boolean,disabled:Boolean,options:Object},emits:["cellHover","cellHoverLeave","dateSelect"],setup(e,t){const i=Object(D["ref"])(null);function o(t,i){const o=t.children("a"),{selectedDateStart:n,selectedDateEnd:a}=e,r=i.getTime(),s=!!(e.persistentHighlightedDateStart&&e.persistentHighlightedDateEnd&&i>=e.persistentHighlightedDateStart&&i<=e.persistentHighlightedDateEnd),l=!(!n||!a||r!==n.getTime()&&r!==a.getTime());l?t.addClass("ui-datepicker-current-period"):t.removeClass("ui-datepicker-current-period"),e.highlightedDateStart&&e.highlightedDateEnd&&i>=e.highlightedDateStart&&i<=e.highlightedDateEnd?(t.addClass("ui-state-hover"),o.length&&o.addClass("ui-state-hover")):(t.removeClass("ui-state-hover"),o.removeClass("ui-state-hover")),s?(t.addClass("ui-datepicker-persistent-highlight"),o.length&&o.addClass("ui-datepicker-persistent-highlight")):(t.removeClass("ui-datepicker-persistent-highlight"),o.removeClass("ui-datepicker-persistent-highlight"))}function n(e,t,i){if(e.hasClass("ui-datepicker-other-month"))return a(e,t,i);const o=parseInt(e.children("a,span").text(),10);return new Date(i,t,o)}function a(e,t,i){let o;const a=e.parent(),r=a.children("td");if(a.is(":first-child")){const s=a.children("td:not(.ui-datepicker-other-month)").first();return o=n(s,t,i),o.setDate(r.index(e)-r.index(s)+1),o}const s=a.children("td:not(.ui-datepicker-other-month)").last();return o=n(s,t,i),o.setDate(o.getDate()+r.index(e)-r.index(s)),o}function r(){const e=Zi(i.value),t=e.find("td[data-month]"),o=parseInt(t.attr("data-month"),10),n=parseInt(t.attr("data-year"),10);return[o,n]}function s(){const e=Zi(i.value),t=e.find(".ui-datepicker-calendar"),a=r(),s=t.find("td"),l=s.first(),c=n(l,a[0],a[1]);s.each((function(){o(Zi(this),c),c.setDate(c.getDate()+1)}))}function l(){if(!e.viewDate)return!1;let t;if("string"===typeof e.viewDate)try{t=m(e.viewDate)}catch(a){return!1}else t=e.viewDate;const o=Zi(i.value),n=r();return(n[0]!==t.getMonth()||n[1]!==t.getFullYear())&&(o.datepicker("setDate",t),!0)}function c(){const t=Zi(i.value),o=t.find(".ui-datepicker-month")[0];o&&(o.disabled=e.disableMonthDropdown||!!e.disabled);const n=t.find(".ui-datepicker-year")[0];n&&(n.disabled=!!e.disabled)}function d(){const t=Zi(i.value),o=e.disabled?-1:0;t.find("a, select").attr("tabindex",o),t.attr("aria-disabled",e.disabled?"true":"false"),e.disabled?t.find("a").attr("aria-disabled","true"):t.find("a").removeAttr("aria-disabled")}function u(){const e=Zi(i.value);e.find("td[data-event]").off("click"),e.find(".ui-state-active").removeClass("ui-state-active"),e.find(".ui-datepicker-current-day").removeClass("ui-datepicker-current-day"),e.find(".ui-datepicker-prev,.ui-datepicker-next").attr("href",""),e.find(".ui-datepicker-prev .ui-icon").removeClass("ui-icon-circle-triangle-w").addClass("icon-chevron-left"),e.find(".ui-datepicker-next .ui-icon").removeClass("ui-icon-circle-triangle-e").addClass("icon-chevron-right"),d()}function p(){const t=Zi(i.value),o=e.stepMonths||Xi;if(t.datepicker("option","stepMonths")===o)return!1;const n=Zi(".ui-datepicker-month",t).val(),a=Zi(".ui-datepicker-year",t).val();return t.datepicker("option","stepMonths",o).datepicker("setDate",new Date(a,n)),u(),!0}function h(){if(!Zi(this).hasClass("ui-state-hover"))return;const e=Zi(this).parent(),t=e.parent();e.is(":first-child")?t.find("a").first().click():t.find("a").last().click()}function g(){c(),d(),s()}return Object(D["watch"])(()=>Object.assign({},e),(e,t)=>{let i=!1;[e=>e.selectedDateStart,e=>e.selectedDateEnd,e=>e.persistentHighlightedDateStart,e=>e.persistentHighlightedDateEnd,e=>e.highlightedDateStart,e=>e.highlightedDateEnd].forEach(o=>{if(i)return;const n=o(e),a=o(t);!n&&a&&(i=!0),n&&!a&&(i=!0),n&&a&&n.getTime()!==a.getTime()&&(i=!0)}),e.viewDate!==t.viewDate&&l()&&(i=!0),e.stepMonths!==t.stepMonths&&p(),e.disableMonthDropdown!==t.disableMonthDropdown&&c(),e.disabled!==t.disabled&&(c(),d()),i&&s()}),Object(D["onMounted"])(()=>{const o=Zi(i.value),a=e.options||{},m=Object.assign(Object.assign(Object.assign({},I.getBaseDatePickerOptions()),a),{},{onChangeMonthYear:()=>{setTimeout(()=>{u()})}});o.datepicker(m),o.on("mouseover","tbody td a",e=>{e.originalEvent&&s()}),o.on("mouseenter","tbody td",(function(){const e=r(),i=Zi(this),o=n(i,e[0],e[1]);t.emit("cellHover",{date:o,$cell:i})})),o.on("mouseout","tbody td a",()=>{s()}),o.on("mouseleave","table",()=>t.emit("cellHoverLeave")).on("mouseenter","thead",()=>t.emit("cellHoverLeave")),o.on("click","tbody td.ui-datepicker-other-month",h),o.on("click",e=>{e.preventDefault();const t=Zi(e.target).closest("a");(t.is(".ui-datepicker-next")||t.is(".ui-datepicker-prev"))&&g()}),o.on("click","td[data-month]",e=>{const i=Zi(e.target).closest("td"),o=parseInt(i.attr("data-month"),10),n=parseInt(i.attr("data-year"),10),a=parseInt(i.children("a,span").text(),10);t.emit("dateSelect",{date:new Date(n,o,a)})});const b=p();l(),c(),b||u(),d(),s()}),{root:i}}});eo.render=Ji;var to=eo;const io={class:"dateRangePicker"},oo={id:"calendarRangeFrom"},no={class:"dateRangePicker-label"},ao=["disabled"],ro={id:"calendarRangeTo"},so={class:"dateRangePicker-label"},lo=["disabled"];function co(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DatePicker");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",io,[Object(D["createElementVNode"])("div",oo,[Object(D["createElementVNode"])("h6",no,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_DateRangeFrom"))+" ",1),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",id:"inputCalendarFrom",name:"inputCalendarFrom",class:"browser-default dateRangePicker-field",disabled:e.disabled,"onUpdate:modelValue":t[0]||(t[0]=t=>e.startDateText=t),onKeydown:t[1]||(t[1]=t=>e.onRangeInputChanged("from",t)),onKeyup:t[2]||(t[2]=t=>e.handleEnterPress(t))},null,40,ao),[[D["vModelText"],e.startDateText]])]),Object(D["createVNode"])(r,{id:"calendarFrom","view-date":e.startDate,"selected-date-start":e.fromPickerSelectedDate,"selected-date-end":e.fromPickerSelectedDate,"highlighted-date-start":e.fromPickerHoveredDate,"highlighted-date-end":e.fromPickerHoveredDate,disabled:e.disabled,onDateSelect:t[3]||(t[3]=t=>e.setStartRangeDate(t.date)),onCellHover:t[4]||(t[4]=t=>e.fromPickerHoveredDate=e.getNewHoveredDate(t.date,t.$cell)),onCellHoverLeave:t[5]||(t[5]=t=>e.fromPickerHoveredDate=null)},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","disabled"])]),Object(D["createElementVNode"])("div",ro,[Object(D["createElementVNode"])("h6",so,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_DateRangeTo"))+" ",1),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",id:"inputCalendarTo",name:"inputCalendarTo",class:"browser-default dateRangePicker-field",disabled:e.disabled,"onUpdate:modelValue":t[6]||(t[6]=t=>e.endDateText=t),onKeydown:t[7]||(t[7]=t=>e.onRangeInputChanged("to",t)),onKeyup:t[8]||(t[8]=t=>e.handleEnterPress(t))},null,40,lo),[[D["vModelText"],e.endDateText]])]),Object(D["createVNode"])(r,{id:"calendarTo","view-date":e.endDate,"selected-date-start":e.toPickerSelectedDate,"selected-date-end":e.toPickerSelectedDate,"highlighted-date-start":e.toPickerHoveredDate,"highlighted-date-end":e.toPickerHoveredDate,disabled:e.disabled,onDateSelect:t[9]||(t[9]=t=>e.setEndRangeDate(t.date)),onCellHover:t[10]||(t[10]=t=>e.toPickerHoveredDate=e.getNewHoveredDate(t.date,t.$cell)),onCellHoverLeave:t[11]||(t[11]=t=>e.toPickerHoveredDate=null)},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","disabled"])])])}const uo="YYYY-MM-DD";var mo=Object(D["defineComponent"])({name:"DateRangePicker",props:{startDate:String,endDate:String,disabled:Boolean},components:{DatePicker:to},data(){let e=null;try{this.startDate&&(e=m(this.startDate))}catch(i){}let t=null;try{this.endDate&&(t=m(this.endDate))}catch(i){}return{fromPickerSelectedDate:e,toPickerSelectedDate:t,fromPickerHoveredDate:null,toPickerHoveredDate:null,startDateText:this.startDate,endDateText:this.endDate,startDateInvalid:!1,endDateInvalid:!1}},emits:["rangeChange","submit"],watch:{startDate(){this.startDateText=this.startDate,this.setStartRangeDateFromStr(this.startDate)},endDate(){this.endDateText=this.endDate,this.setEndRangeDateFromStr(this.endDate)}},mounted(){this.rangeChanged()},methods:{setStartRangeDate(e){this.fromPickerSelectedDate=e,this.rangeChanged()},setEndRangeDate(e){this.toPickerSelectedDate=e,this.rangeChanged()},onRangeInputChanged(e,t){setTimeout(()=>{"from"===e?this.setStartRangeDateFromStr(t.target.value):this.setEndRangeDateFromStr(t.target.value)})},getNewHoveredDate(e,t){return t.hasClass("ui-datepicker-unselectable")?null:e},handleEnterPress(e){13===e.keyCode&&this.$emit("submit",{start:this.startDate,end:this.endDate})},setStartRangeDateFromStr(e){this.startDateInvalid=!0;let t=null;try{e&&e.length===uo.length&&(t=m(e))}catch(i){}t&&(this.fromPickerSelectedDate=t,this.startDateInvalid=!1,this.rangeChanged())},setEndRangeDateFromStr(e){this.endDateInvalid=!0;let t=null;try{e&&e.length===uo.length&&(t=m(e))}catch(i){}t&&(this.toPickerSelectedDate=t,this.endDateInvalid=!1,this.rangeChanged())},rangeChanged(){this.$emit("rangeChange",{start:this.fromPickerSelectedDate?d(this.fromPickerSelectedDate):null,end:this.toPickerSelectedDate?d(this.toPickerSelectedDate):null})}}});mo.render=co;var po=mo;function ho(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DatePicker");return Object(D["openBlock"])(),Object(D["createBlock"])(r,{"selected-date-start":e.selectedDates[0],"selected-date-end":e.selectedDates[1],"persistent-highlighted-date-start":e.committedBetweenHighlightDates[0],"persistent-highlighted-date-end":e.committedBetweenHighlightDates[1],"highlighted-date-start":e.highlightedDates?e.highlightedDates[0]:null,"highlighted-date-end":e.highlightedDates?e.highlightedDates[1]:null,"view-date":e.viewDate,"step-months":"year"===e.period?12:1,"disable-month-dropdown":"year"===e.period,disabled:e.disabled,onCellHover:t[0]||(t[0]=t=>e.onHoverNormalCell(t.date,t.$cell)),onCellHoverLeave:t[1]||(t[1]=t=>e.onHoverLeaveNormalCells()),onDateSelect:t[2]||(t[2]=t=>e.onDateSelected(t.date))},null,8,["selected-date-start","selected-date-end","persistent-highlighted-date-start","persistent-highlighted-date-end","highlighted-date-start","highlighted-date-end","view-date","step-months","disable-month-dropdown","disabled"])} + */const Vi=8,xi=3;function Ni(e){return e?Array.isArray(e)?e:[e]:[]}class Bi{constructor(){Ti(this,"privateState",Object(D["reactive"])({comparisonsDisabledFor:[]})),Ti(this,"state",Object(D["readonly"])(this.privateState)),Ti(this,"colors",{}),Ti(this,"segmentComparisons",Object(D["computed"])(()=>this.parseSegmentComparisons())),Ti(this,"periodComparisons",Object(D["computed"])(()=>this.parsePeriodComparisons())),Ti(this,"isEnabled",Object(D["computed"])(()=>this.checkEnabledForCurrentPage())),"complete"===document.readyState||"interactive"===document.readyState?this.loadComparisonsDisabledFor():document.addEventListener("DOMContentLoaded",()=>{this.loadComparisonsDisabledFor()}),$(()=>{this.colors=this.getAllSeriesColors()}),Object(D["watch"])(()=>this.getComparisons(),()=>M.postEvent("piwikComparisonsChanged"),{deep:!0})}getComparisons(){return this.getSegmentComparisons().concat(this.getPeriodComparisons())}isComparing(){return this.isComparisonEnabled()&&(this.segmentComparisons.value.length>1||this.periodComparisons.value.length>1)}isComparingPeriods(){return this.getPeriodComparisons().length>1}getSegmentComparisons(){return this.isComparisonEnabled()?this.segmentComparisons.value:[]}getPeriodComparisons(){return this.isComparisonEnabled()?this.periodComparisons.value:[]}getSeriesColor(e,t,i=0){const o=this.getComparisonSeriesIndex(t.index,e.index)%Vi;if(0===i)return this.colors["series"+o];const n=i%xi;return this.colors[`series${o}-shade${n}`]}getSeriesColorName(e,t){let i="series"+e%Vi;return t>0&&(i+="-shade"+t%xi),i}isComparisonEnabled(){return this.isEnabled.value}getIndividualComparisonRowIndices(e){const t=this.getSegmentComparisons().length,i=e%t,o=Math.floor(e/t);return{segmentIndex:i,periodIndex:o}}getComparisonSeriesIndex(e,t){const i=this.getSegmentComparisons().length;return e*i+t}getAllComparisonSeries(){const e=[];let t=0;return this.getPeriodComparisons().forEach(i=>{this.getSegmentComparisons().forEach(o=>{e.push({index:t,params:Object.assign(Object.assign({},o.params),i.params),color:this.colors["series"+t]}),t+=1})}),e}removeSegmentComparison(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");const t=[...this.segmentComparisons.value];t.splice(e,1);const i={};0===e&&(i.segment=t[0].params.segment),this.updateQueryParamsFromComparisons(t,this.periodComparisons.value,i)}removeSegmentComparisonByDefinition(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");let t=null;this.getSegmentComparisons().forEach((i,o)=>{i&&i.params&&i.params.segment===e&&(t=o)}),null!==t&&this.removeSegmentComparison(t)}addSegmentComparison(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");const t=this.segmentComparisons.value.concat([{params:e,index:-1,title:""}]);this.updateQueryParamsFromComparisons(t,this.periodComparisons.value)}updateQueryParamsFromComparisons(e,t,i={}){const o={},n={};let a=!1,r=!1;e.forEach(e=>{a?o[e.params.segment]=!0:a=!0}),t.forEach(e=>{r?n[`${e.params.period}|${e.params.date}`]=!0:r=!0});const s=[],l=[];Object.keys(n).forEach(e=>{const t=e.split("|");s.push(t[0]),l.push(t[1])});const c={compareSegments:Object.keys(o),comparePeriods:s,compareDates:l},d=M.helper.isReportingPage()?U.hashParsed.value:U.urlParsed.value;U.updateLocation(Object.assign(Object.assign(Object.assign({},d),c),i))}getAllSeriesColors(){const{ColorManager:e}=M;if(!e)return[];const t=[];for(let i=0;i{this.privateState.comparisonsDisabledFor=e})}parseSegmentComparisons(){const{availableSegments:e}=Pi.state,t=[...Ni(U.parsed.value.compareSegments)];t.unshift(U.parsed.value.segment||"");const i=[];return t.forEach((t,o)=>{let n;e.forEach(e=>{e.definition!==t&&e.definition!==decodeURIComponent(t)&&decodeURIComponent(e.definition)!==t||(n=e)});let r=n?n.name:a("General_Unknown");""===t.trim()&&(r=a("SegmentEditor_DefaultAllVisits")),i.push({params:{segment:t},title:M.helper.htmlDecode(r),index:o})}),i}parsePeriodComparisons(){const e=[...Ni(U.parsed.value.comparePeriods)],t=[...Ni(U.parsed.value.compareDates)];e.unshift(U.parsed.value.period),t.unshift(U.parsed.value.date);const i=[];for(let n=0;nIi.isComparing()&&!window.broadcast.isNoDataPage()),t=Object(D["computed"])(()=>Ii.getSegmentComparisons()),i=Object(D["computed"])(()=>Ii.getPeriodComparisons()),o=Ii.getSeriesColor.bind(Ii);function n(){const e=window.$(this).attr("title");return e?window.vueSanitize(e.replace(/\n/g,"
")):e}return{isComparing:e,segmentComparisons:t,periodComparisons:i,getSeriesColor:o,transformTooltipContent:n}},methods:{comparisonHasSegment(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison(e){window.$(this.$refs.root).tooltip("destroy"),Ii.removeSegmentComparison(e)},getComparisonPeriodType(e){const{period:t}=e.params;if("range"===t)return a("CoreHome_PeriodRange");const i=a(`Intl_Period${t.substring(0,1).toUpperCase()}${t.substring(1)}`);return i.substring(0,1).toUpperCase()+i.substring(1)},getComparisonTooltip(e,t){if(this.comparisonTooltips&&Object.keys(this.comparisonTooltips).length)return(this.comparisonTooltips[t.index]||{})[e.index]},getTitleTooltip(e){return this.htmlentities(e.title)+"
"+this.htmlentities(decodeURIComponent(e.params.segment))},getUrlToSegment(e){const t=Object.assign({},U.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,`${window.location.search}#?${U.stringify(t)}`},onComparisonsChanged(){if(this.comparisonTooltips=null,!Ii.isComparing())return;const e=Ii.getPeriodComparisons(),t=Ii.getSegmentComparisons();te.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:U.getSearchParam("compareSegments"),comparePeriods:U.getSearchParam("comparePeriods"),compareDates:U.getSearchParam("compareDates"),format_metrics:"1"}).then(i=>{this.comparisonTooltips={},e.forEach(e=>{this.comparisonTooltips[e.index]={},t.forEach(t=>{const o=this.generateComparisonTooltip(i,e,t);this.comparisonTooltips[e.index][t.index]=o})})})},generateComparisonTooltip(e,t,i){if(!e.reportData.comparisons)return"";const o=Ii.getComparisonSeriesIndex(t.index,0),n=e.reportData.comparisons[o],r=Ii.getComparisonSeriesIndex(t.index,i.index),s=e.reportData.comparisons[r],l=e.reportData.comparisons[i.index];let c='
',d=(s.nb_visits/n.nb_visits*100).toFixed(2);return d+="%",c+=a("General_ComparisonCardTooltip1",[`'${this.htmlentities(s.compareSegmentPretty)}'`,s.comparePeriodPretty,d,s.nb_visits.toString(),n.nb_visits.toString()]),t.index>0&&(c+="

",c+=a("General_ComparisonCardTooltip2",[s.nb_visits_change.toString(),this.htmlentities(l.compareSegmentPretty),l.comparePeriodPretty])),c+="
",c},htmlentities(e){return M.helper.htmlEntities(e)}},mounted(){M.on("piwikComparisonsChanged",()=>{this.onComparisonsChanged()}),this.onComparisonsChanged()}});Mi.render=ki;var Fi=Mi;const Li={ref:"root",class:"menuDropdown"},Ri=["title"],Ai=["innerHTML"],_i=Object(D["createElementVNode"])("span",{class:"icon-chevron-down reporting-menu-sub-icon"},null,-1),Hi={class:"items"},$i={key:0,class:"search"},Ui=["placeholder"],qi=["title"],Wi=["title"];function zi(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("focus-if"),s=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Li,[Object(D["createElementVNode"])("span",{class:"title",onClick:t[0]||(t[0]=t=>e.showItems=!e.showItems),title:e.tooltip},[Object(D["createElementVNode"])("span",{class:"title-label",innerHTML:e.$sanitize(this.actualMenuTitle)},null,8,Ai),_i],8,Ri),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Hi,[e.showSearch&&e.showItems?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",$i,[Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=t=>e.searchTerm=t),onKeydown:t[2]||(t[2]=t=>e.onSearchTermKeydown(t)),placeholder:e.translate("General_Search")},null,40,Ui),[[D["vModelText"],e.searchTerm],[r,{focused:e.showItems}]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{class:"search_ico icon-search",title:e.translate("General_Search")},null,8,qi),[[D["vShow"],!e.searchTerm]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{onClick:t[3]||(t[3]=t=>{e.searchTerm="",e.searchItems("")}),class:"reset icon-close",title:e.translate("General_Clear")},null,8,Wi),[[D["vShow"],e.searchTerm]])])):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",{onClick:t[4]||(t[4]=t=>e.selectItem(t))},[Object(D["renderSlot"])(e.$slots,"default")])],512),[[D["vShow"],e.showItems]])])),[[s,{blur:e.lostFocus}]])}const{$:Gi}=window;var Ki=Object(D["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:Boolean},directives:{FocusAnywhereButHere:tt,FocusIf:ot},emits:["afterSelect"],watch:{menuTitle(){this.actualMenuTitle=this.menuTitle}},data(){return{showItems:!1,searchTerm:"",actualMenuTitle:this.menuTitle}},methods:{lostFocus(){this.showItems=!1},selectItem(e){const t=e.target.classList;!t.contains("item")||t.contains("disabled")||t.contains("separator")||(this.menuTitleChangeOnClick&&(this.actualMenuTitle=(e.target.textContent||"").replace(/[\u0000-\u2666]/g,e=>`&#${e.charCodeAt(0)};`)),this.showItems=!1,Gi(this.$slots.default()[0].el).find(".item").removeClass("active"),t.add("active"),this.$emit("afterSelect",e.target))},onSearchTermKeydown(){setTimeout(()=>{this.searchItems(this.searchTerm)})},searchItems(e){const t=e.toLowerCase();Gi(this.$refs.root).find(".item").each((e,i)=>{const o=Gi(i);-1===o.text().toLowerCase().indexOf(t)?o.hide():o.show()})}}});Ki.render=zi;var Yi=Ki;const Qi={ref:"root"};function Ji(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Qi,null,512)}const Xi=1,{$:Zi}=window;var eo=Object(D["defineComponent"])({props:{selectedDateStart:Date,selectedDateEnd:Date,persistentHighlightedDateStart:Date,persistentHighlightedDateEnd:Date,highlightedDateStart:Date,highlightedDateEnd:Date,viewDate:[String,Date],stepMonths:Number,disableMonthDropdown:Boolean,disabled:Boolean,options:Object},emits:["cellHover","cellHoverLeave","dateSelect"],setup(e,t){const i=Object(D["ref"])(null);function o(t,i){const o=t.children("a"),{selectedDateStart:n,selectedDateEnd:a}=e,r=i.getTime(),s=!!(e.persistentHighlightedDateStart&&e.persistentHighlightedDateEnd&&i>=e.persistentHighlightedDateStart&&i<=e.persistentHighlightedDateEnd),l=!(!n||!a||r!==n.getTime()&&r!==a.getTime());l?t.addClass("ui-datepicker-current-period"):t.removeClass("ui-datepicker-current-period"),e.highlightedDateStart&&e.highlightedDateEnd&&i>=e.highlightedDateStart&&i<=e.highlightedDateEnd?(t.addClass("ui-state-hover"),o.length&&o.addClass("ui-state-hover")):(t.removeClass("ui-state-hover"),o.removeClass("ui-state-hover")),s?(t.addClass("ui-datepicker-persistent-highlight"),o.length&&o.addClass("ui-datepicker-persistent-highlight")):(t.removeClass("ui-datepicker-persistent-highlight"),o.removeClass("ui-datepicker-persistent-highlight"))}function n(e,t,i){if(e.hasClass("ui-datepicker-other-month"))return a(e,t,i);const o=parseInt(e.children("a,span").text(),10);return new Date(i,t,o)}function a(e,t,i){let o;const a=e.parent(),r=a.children("td");if(a.is(":first-child")){const s=a.children("td:not(.ui-datepicker-other-month)").first();return o=n(s,t,i),o.setDate(r.index(e)-r.index(s)+1),o}const s=a.children("td:not(.ui-datepicker-other-month)").last();return o=n(s,t,i),o.setDate(o.getDate()+r.index(e)-r.index(s)),o}function r(){const e=Zi(i.value),t=e.find("td[data-month]"),o=parseInt(t.attr("data-month"),10),n=parseInt(t.attr("data-year"),10);return[o,n]}function s(){const e=Zi(i.value),t=e.find(".ui-datepicker-calendar"),a=r(),s=t.find("td"),l=s.first(),c=n(l,a[0],a[1]);s.each((function(){o(Zi(this),c),c.setDate(c.getDate()+1)}))}function l(){if(!e.viewDate)return!1;let t;if("string"===typeof e.viewDate)try{t=m(e.viewDate)}catch(a){return!1}else t=e.viewDate;const o=Zi(i.value),n=r();return(n[0]!==t.getMonth()||n[1]!==t.getFullYear())&&(o.datepicker("setDate",t),!0)}function c(){const t=Zi(i.value),o=t.find(".ui-datepicker-month")[0];o&&(o.disabled=e.disableMonthDropdown||!!e.disabled);const n=t.find(".ui-datepicker-year")[0];n&&(n.disabled=!!e.disabled)}function d(){const t=Zi(i.value),o=e.disabled?-1:0;t.find("a, select").attr("tabindex",o),t.attr("aria-disabled",e.disabled?"true":"false"),e.disabled?t.find("a").attr("aria-disabled","true"):t.find("a").removeAttr("aria-disabled")}function u(){const e=Zi(i.value);e.find("td[data-event]").off("click"),e.find(".ui-state-active").removeClass("ui-state-active"),e.find(".ui-datepicker-current-day").removeClass("ui-datepicker-current-day"),e.find(".ui-datepicker-prev,.ui-datepicker-next").attr("href",""),e.find(".ui-datepicker-prev .ui-icon").removeClass("ui-icon-circle-triangle-w").addClass("icon-chevron-left"),e.find(".ui-datepicker-next .ui-icon").removeClass("ui-icon-circle-triangle-e").addClass("icon-chevron-right"),d()}function p(){const t=Zi(i.value),o=e.stepMonths||Xi;if(t.datepicker("option","stepMonths")===o)return!1;const n=Zi(".ui-datepicker-month",t).val(),a=Zi(".ui-datepicker-year",t).val();return t.datepicker("option","stepMonths",o).datepicker("setDate",new Date(a,n)),u(),!0}function h(){if(!Zi(this).hasClass("ui-state-hover"))return;const e=Zi(this).parent(),t=e.parent();e.is(":first-child")?t.find("a").first().click():t.find("a").last().click()}function g(){c(),d(),s()}return Object(D["watch"])(()=>Object.assign({},e),(e,t)=>{let i=!1;[e=>e.selectedDateStart,e=>e.selectedDateEnd,e=>e.persistentHighlightedDateStart,e=>e.persistentHighlightedDateEnd,e=>e.highlightedDateStart,e=>e.highlightedDateEnd].forEach(o=>{if(i)return;const n=o(e),a=o(t);!n&&a&&(i=!0),n&&!a&&(i=!0),n&&a&&n.getTime()!==a.getTime()&&(i=!0)}),e.viewDate!==t.viewDate&&l()&&(i=!0),e.stepMonths!==t.stepMonths&&p(),e.disableMonthDropdown!==t.disableMonthDropdown&&c(),e.disabled!==t.disabled&&(c(),d()),i&&s()}),Object(D["onMounted"])(()=>{const o=Zi(i.value),a=e.options||{},m=Object.assign(Object.assign(Object.assign({},M.getBaseDatePickerOptions()),a),{},{onChangeMonthYear:()=>{setTimeout(()=>{u()})}});o.datepicker(m),o.on("mouseover","tbody td a",e=>{e.originalEvent&&s()}),o.on("mouseenter","tbody td",(function(){const e=r(),i=Zi(this),o=n(i,e[0],e[1]);t.emit("cellHover",{date:o,$cell:i})})),o.on("mouseout","tbody td a",()=>{s()}),o.on("mouseleave","table",()=>t.emit("cellHoverLeave")).on("mouseenter","thead",()=>t.emit("cellHoverLeave")),o.on("click","tbody td.ui-datepicker-other-month",h),o.on("click",e=>{e.preventDefault();const t=Zi(e.target).closest("a");(t.is(".ui-datepicker-next")||t.is(".ui-datepicker-prev"))&&g()}),o.on("click","td[data-month]",e=>{const i=Zi(e.target).closest("td"),o=parseInt(i.attr("data-month"),10),n=parseInt(i.attr("data-year"),10),a=parseInt(i.children("a,span").text(),10);t.emit("dateSelect",{date:new Date(n,o,a)})});const b=p();l(),c(),b||u(),d(),s()}),{root:i}}});eo.render=Ji;var to=eo;const io={class:"dateRangePicker"},oo={id:"calendarRangeFrom"},no={class:"dateRangePicker-label"},ao=["disabled"],ro={id:"calendarRangeTo"},so={class:"dateRangePicker-label"},lo=["disabled"];function co(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DatePicker");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",io,[Object(D["createElementVNode"])("div",oo,[Object(D["createElementVNode"])("h6",no,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_DateRangeFrom"))+" ",1),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",id:"inputCalendarFrom",name:"inputCalendarFrom",class:"browser-default dateRangePicker-field",disabled:e.disabled,"onUpdate:modelValue":t[0]||(t[0]=t=>e.startDateText=t),onKeydown:t[1]||(t[1]=t=>e.onRangeInputChanged("from",t)),onKeyup:t[2]||(t[2]=t=>e.handleEnterPress(t))},null,40,ao),[[D["vModelText"],e.startDateText]])]),Object(D["createVNode"])(r,{id:"calendarFrom","view-date":e.startDate,"selected-date-start":e.fromPickerSelectedDate,"selected-date-end":e.fromPickerSelectedDate,"highlighted-date-start":e.fromPickerHoveredDate,"highlighted-date-end":e.fromPickerHoveredDate,disabled:e.disabled,onDateSelect:t[3]||(t[3]=t=>e.setStartRangeDate(t.date)),onCellHover:t[4]||(t[4]=t=>e.fromPickerHoveredDate=e.getNewHoveredDate(t.date,t.$cell)),onCellHoverLeave:t[5]||(t[5]=t=>e.fromPickerHoveredDate=null)},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","disabled"])]),Object(D["createElementVNode"])("div",ro,[Object(D["createElementVNode"])("h6",so,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_DateRangeTo"))+" ",1),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",id:"inputCalendarTo",name:"inputCalendarTo",class:"browser-default dateRangePicker-field",disabled:e.disabled,"onUpdate:modelValue":t[6]||(t[6]=t=>e.endDateText=t),onKeydown:t[7]||(t[7]=t=>e.onRangeInputChanged("to",t)),onKeyup:t[8]||(t[8]=t=>e.handleEnterPress(t))},null,40,lo),[[D["vModelText"],e.endDateText]])]),Object(D["createVNode"])(r,{id:"calendarTo","view-date":e.endDate,"selected-date-start":e.toPickerSelectedDate,"selected-date-end":e.toPickerSelectedDate,"highlighted-date-start":e.toPickerHoveredDate,"highlighted-date-end":e.toPickerHoveredDate,disabled:e.disabled,onDateSelect:t[9]||(t[9]=t=>e.setEndRangeDate(t.date)),onCellHover:t[10]||(t[10]=t=>e.toPickerHoveredDate=e.getNewHoveredDate(t.date,t.$cell)),onCellHoverLeave:t[11]||(t[11]=t=>e.toPickerHoveredDate=null)},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","disabled"])])])}const uo="YYYY-MM-DD";var mo=Object(D["defineComponent"])({name:"DateRangePicker",props:{startDate:String,endDate:String,disabled:Boolean},components:{DatePicker:to},data(){let e=null;try{this.startDate&&(e=m(this.startDate))}catch(i){}let t=null;try{this.endDate&&(t=m(this.endDate))}catch(i){}return{fromPickerSelectedDate:e,toPickerSelectedDate:t,fromPickerHoveredDate:null,toPickerHoveredDate:null,startDateText:this.startDate,endDateText:this.endDate,startDateInvalid:!1,endDateInvalid:!1}},emits:["rangeChange","submit"],watch:{startDate(){this.startDateText=this.startDate,this.setStartRangeDateFromStr(this.startDate)},endDate(){this.endDateText=this.endDate,this.setEndRangeDateFromStr(this.endDate)}},mounted(){this.rangeChanged()},methods:{setStartRangeDate(e){this.fromPickerSelectedDate=e,this.rangeChanged()},setEndRangeDate(e){this.toPickerSelectedDate=e,this.rangeChanged()},onRangeInputChanged(e,t){setTimeout(()=>{"from"===e?this.setStartRangeDateFromStr(t.target.value):this.setEndRangeDateFromStr(t.target.value)})},getNewHoveredDate(e,t){return t.hasClass("ui-datepicker-unselectable")?null:e},handleEnterPress(e){13===e.keyCode&&this.$emit("submit",{start:this.startDate,end:this.endDate})},setStartRangeDateFromStr(e){this.startDateInvalid=!0;let t=null;try{e&&e.length===uo.length&&(t=m(e))}catch(i){}t&&(this.fromPickerSelectedDate=t,this.startDateInvalid=!1,this.rangeChanged())},setEndRangeDateFromStr(e){this.endDateInvalid=!0;let t=null;try{e&&e.length===uo.length&&(t=m(e))}catch(i){}t&&(this.toPickerSelectedDate=t,this.endDateInvalid=!1,this.rangeChanged())},rangeChanged(){this.$emit("rangeChange",{start:this.fromPickerSelectedDate?d(this.fromPickerSelectedDate):null,end:this.toPickerSelectedDate?d(this.toPickerSelectedDate):null})}}});mo.render=co;var po=mo;function ho(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DatePicker");return Object(D["openBlock"])(),Object(D["createBlock"])(r,{"selected-date-start":e.selectedDates[0],"selected-date-end":e.selectedDates[1],"persistent-highlighted-date-start":e.committedBetweenHighlightDates[0],"persistent-highlighted-date-end":e.committedBetweenHighlightDates[1],"highlighted-date-start":e.highlightedDates?e.highlightedDates[0]:null,"highlighted-date-end":e.highlightedDates?e.highlightedDates[1]:null,"view-date":e.viewDate,"step-months":"year"===e.period?12:1,"disable-month-dropdown":"year"===e.period,disabled:e.disabled,onCellHover:t[0]||(t[0]=t=>e.onHoverNormalCell(t.date,t.$cell)),onCellHoverLeave:t[1]||(t[1]=t=>e.onHoverLeaveNormalCells()),onDateSelect:t[2]||(t[2]=t=>e.onDateSelected(t.date))},null,8,["selected-date-start","selected-date-end","persistent-highlighted-date-start","persistent-highlighted-date-end","highlighted-date-start","highlighted-date-end","view-date","step-months","disable-month-dropdown","disabled"])} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const go=" ",bo=["custom","previousPeriod","previousYear"],fo=[{key:"custom",value:a("General_Custom")},{key:"previousPeriod",value:a("General_PreviousPeriod").replace(/\s+/,go)},{key:"previousYear",value:a("General_PreviousYear").replace(/\s+/,go)}];function vo(){return new Date(window.piwik.minDateYear,window.piwik.minDateMonth-1,window.piwik.minDateDay)}function Oo(){return new Date(window.piwik.maxDateYear,window.piwik.maxDateMonth-1,window.piwik.maxDateDay)}const yo="range";function jo(e){return"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e.getTime())}function wo(e){return"day"===e||"week"===e||"month"===e||"year"===e}var So=Object(D["defineComponent"])({props:{period:{type:String,required:!0},date:[String,Date],disabled:Boolean},components:{DatePicker:to},emits:["select"],setup(e,t){const i=Object(D["ref"])(e.date),o=Object(D["ref"])([null,null]),n=Object(D["ref"])([null,null]),a=Object(D["ref"])(null),r=vo(),s=Oo();function l(t){const i=c.get(e.period).parse(t).getDateRange();return i[0]=ri[1]?i[1]:s,i}function d(e,t){if(!e||!t||e.getTime()>=t.getTime())return[null,null];const i=new Date(e);i.setDate(i.getDate()+1);const o=new Date(t);return o.setDate(o.getDate()-1),i.getTime()>o.getTime()?[null,null]:[i,o]}function u(e){if(!e)return void(n.value=[null,null]);const t=l(e);n.value=d(t[0],t[1])}function p(t,i){const o=ts,n=i.hasClass("ui-datepicker-other-month")&&("month"===e.period||"day"===e.period);a.value=o||n?[null,null]:l(t)}function h(){a.value=null}function g(e){t.emit("select",{date:e})}function b(){if(!e.period||!e.date)return o.value=[null,null],n.value=[null,null],a.value=null,void(i.value=null);o.value=l(e.date),u(e.date),a.value=null,i.value=m(e.date)}return Object(D["watch"])(e,b),b(),{selectedDates:o,committedBetweenHighlightDates:n,highlightedDates:a,viewDate:i,onHoverNormalCell:p,onHoverLeaveNormalCells:h,onDateSelected:g}}});So.render=ho;var Co=So;const ko={key:0},Do=["data-notification-instance-id"],Eo={key:1},Po={class:"notification-body"},To=["innerHTML"],Vo={key:1};function xo(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createBlock"])(D["Transition"],{name:"toast"===e.type?"slow-fade-out":void 0,onAfterLeave:t[1]||(t[1]=t=>e.toastClosed())},{default:Object(D["withCtx"])(()=>[e.deleted?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ko,[Object(D["createVNode"])(D["Transition"],{name:"toast"===e.type?"toast-slide-up":void 0,appear:""},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(D["Transition"],{name:e.animate?"fade-in":void 0,appear:""},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])(["notification system",e.cssClasses]),style:Object(D["normalizeStyle"])(e.style),ref:"root","data-notification-instance-id":e.notificationInstanceId},[e.canClose?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:0,type:"button",class:"close","data-dismiss":"alert",onClick:t[0]||(t[0]=t=>e.closeNotification(t))}," × ")):Object(D["createCommentVNode"])("",!0),e.title?(Object(D["openBlock"])(),Object(D["createElementBlock"])("strong",Eo,Object(D["toDisplayString"])(e.title),1)):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",Po,[e.message?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,To)):Object(D["createCommentVNode"])("",!0),e.message?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Vo,[Object(D["renderSlot"])(e.$slots,"default")]))])],14,Do)]),_:3},8,["name"])])]),_:3},8,["name"])]))]),_:3},8,["name"])}const{$:No}=window;var Bo=Object(D["defineComponent"])({props:{notificationId:String,notificationInstanceId:String,title:String,context:String,type:String,noclear:Boolean,toastLength:{type:Number,default:12e3},style:[String,Object],animate:Boolean,message:String,cssClass:String},computed:{cssClasses(){const e={};return this.context&&(e["notification-"+this.context]=!0),this.cssClass&&(e[this.cssClass]=!0),e},canClose(){return"persistent"===this.type||!this.noclear}},emits:["closed"],data(){return{deleted:!1}},mounted(){const e=()=>{setTimeout(()=>{this.deleted=!0},this.toastLength)};"toast"===this.type&&e(),this.style&&No(this.$refs.root).css(this.style)},methods:{toastClosed(){Object(D["nextTick"])(()=>{this.$emit("closed")})},closeNotification(e){this.canClose&&e&&e.target&&(this.deleted=!0,Object(D["nextTick"])(()=>{this.$emit("closed")})),this.markNotificationAsRead()},markNotificationAsRead(){this.notificationId&&te.post({module:"CoreHome",action:"markNotificationAsRead"},{notificationId:this.notificationId},{withTokenInUrl:!0})}}});Bo.render=xo;var Mo=Bo;const Io={class:"notification-group"},Fo=["innerHTML"];function Lo(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Notification");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Io,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.notifications,(t,i)=>(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:t.id||"no-id-"+i,"notification-id":t.id,title:t.title,context:t.context,type:t.type,noclear:t.noclear,"toast-length":t.toastLength,style:Object(D["normalizeStyle"])(t.style),animate:t.animate,message:t.message,"notification-instance-id":t.notificationInstanceId,"css-class":t.class,onClosed:i=>e.removeNotification(t.id)},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",{innerHTML:e.$sanitize(t.message)},null,8,Fo)]),_:2},1032,["notification-id","title","context","type","noclear","toast-length","style","animate","message","notification-instance-id","css-class","onClosed"]))),128))])}function Ro(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */const go=" ",bo=["custom","previousPeriod","previousYear"],fo=[{key:"custom",value:a("General_Custom")},{key:"previousPeriod",value:a("General_PreviousPeriod").replace(/\s+/,go)},{key:"previousYear",value:a("General_PreviousYear").replace(/\s+/,go)}];function vo(){return new Date(window.piwik.minDateYear,window.piwik.minDateMonth-1,window.piwik.minDateDay)}function Oo(){return new Date(window.piwik.maxDateYear,window.piwik.maxDateMonth-1,window.piwik.maxDateDay)}const yo="range";function jo(e){return"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e.getTime())}function wo(e){return"day"===e||"week"===e||"month"===e||"year"===e}var So=Object(D["defineComponent"])({props:{period:{type:String,required:!0},date:[String,Date],disabled:Boolean},components:{DatePicker:to},emits:["select"],setup(e,t){const i=Object(D["ref"])(e.date),o=Object(D["ref"])([null,null]),n=Object(D["ref"])([null,null]),a=Object(D["ref"])(null),r=vo(),s=Oo();function l(t){const i=c.get(e.period).parse(t).getDateRange();return i[0]=ri[1]?i[1]:s,i}function d(e,t){if(!e||!t||e.getTime()>=t.getTime())return[null,null];const i=new Date(e);i.setDate(i.getDate()+1);const o=new Date(t);return o.setDate(o.getDate()-1),i.getTime()>o.getTime()?[null,null]:[i,o]}function u(e){if(!e)return void(n.value=[null,null]);const t=l(e);n.value=d(t[0],t[1])}function p(t,i){const o=ts,n=i.hasClass("ui-datepicker-other-month")&&("month"===e.period||"day"===e.period);a.value=o||n?[null,null]:l(t)}function h(){a.value=null}function g(e){t.emit("select",{date:e})}function b(){if(!e.period||!e.date)return o.value=[null,null],n.value=[null,null],a.value=null,void(i.value=null);o.value=l(e.date),u(e.date),a.value=null,i.value=m(e.date)}return Object(D["watch"])(e,b),b(),{selectedDates:o,committedBetweenHighlightDates:n,highlightedDates:a,viewDate:i,onHoverNormalCell:p,onHoverLeaveNormalCells:h,onDateSelected:g}}});So.render=ho;var Co=So;const ko={key:0},Do=["data-notification-instance-id"],Eo={key:1},Po={class:"notification-body"},To=["innerHTML"],Vo={key:1};function xo(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createBlock"])(D["Transition"],{name:"toast"===e.type?"slow-fade-out":void 0,onAfterLeave:t[1]||(t[1]=t=>e.toastClosed())},{default:Object(D["withCtx"])(()=>[e.deleted?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ko,[Object(D["createVNode"])(D["Transition"],{name:"toast"===e.type?"toast-slide-up":void 0,appear:""},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(D["Transition"],{name:e.animate?"fade-in":void 0,appear:""},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])(["notification system",e.cssClasses]),style:Object(D["normalizeStyle"])(e.style),ref:"root","data-notification-instance-id":e.notificationInstanceId},[e.canClose?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:0,type:"button",class:"close","data-dismiss":"alert",onClick:t[0]||(t[0]=t=>e.closeNotification(t))}," × ")):Object(D["createCommentVNode"])("",!0),e.title?(Object(D["openBlock"])(),Object(D["createElementBlock"])("strong",Eo,Object(D["toDisplayString"])(e.title),1)):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",Po,[e.message?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,To)):Object(D["createCommentVNode"])("",!0),e.message?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Vo,[Object(D["renderSlot"])(e.$slots,"default")]))])],14,Do)]),_:3},8,["name"])])]),_:3},8,["name"])]))]),_:3},8,["name"])}const{$:No}=window;var Bo=Object(D["defineComponent"])({props:{notificationId:String,notificationInstanceId:String,title:String,context:String,type:String,noclear:Boolean,toastLength:{type:Number,default:12e3},style:[String,Object],animate:Boolean,message:String,cssClass:String},computed:{cssClasses(){const e={};return this.context&&(e["notification-"+this.context]=!0),this.cssClass&&(e[this.cssClass]=!0),e},canClose(){return"persistent"===this.type||!this.noclear}},emits:["closed"],data(){return{deleted:!1}},mounted(){const e=()=>{setTimeout(()=>{this.deleted=!0},this.toastLength)};"toast"===this.type&&e(),this.style&&No(this.$refs.root).css(this.style)},methods:{toastClosed(){Object(D["nextTick"])(()=>{this.$emit("closed")})},closeNotification(e){this.canClose&&e&&e.target&&(this.deleted=!0,Object(D["nextTick"])(()=>{this.$emit("closed")})),this.markNotificationAsRead()},markNotificationAsRead(){this.notificationId&&te.post({module:"CoreHome",action:"markNotificationAsRead"},{notificationId:this.notificationId},{withTokenInUrl:!0})}}});Bo.render=xo;var Io=Bo;const Mo={class:"notification-group"},Fo=["innerHTML"];function Lo(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Notification");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Mo,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.notifications,(t,i)=>(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:t.id||"no-id-"+i,"notification-id":t.id,title:t.title,context:t.context,type:t.type,noclear:t.noclear,"toast-length":t.toastLength,style:Object(D["normalizeStyle"])(t.style),animate:t.animate,message:t.message,"notification-instance-id":t.notificationInstanceId,"css-class":t.class,onClosed:i=>e.removeNotification(t.id)},{default:Object(D["withCtx"])(()=>[Object(D["createElementVNode"])("div",{innerHTML:e.$sanitize(t.message)},null,8,Fo)]),_:2},1032,["notification-id","title","context","type","noclear","toast-length","style","animate","message","notification-instance-id","css-class","onClosed"]))),128))])}function Ro(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:Ao}=window;class _o{constructor(){Ro(this,"privateState",Object(D["reactive"])({notifications:[]})),Ro(this,"nextNotificationId",0)}get state(){return Object(D["readonly"])(this.privateState)}appendNotification(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.push(e)}prependNotification(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.unshift(e)}remove(e){this.privateState.notifications=this.privateState.notifications.filter(t=>t.id!==e)}parseNotificationDivs(){const e=Ao('[data-role="notification"]'),t=[];e.each((i,o)=>{const n=Ao(o),a=n.data(),r=n.html();r&&t.push(Object.assign(Object.assign({},a),{},{message:r,animate:!1})),e.remove()}),t.forEach(e=>this.show(e))}clearTransientNotifications(){this.privateState.notifications=this.privateState.notifications.filter(e=>"transient"!==e.type)}show(e){this.checkMessage(e.message);let t=e.prepend?this.prependNotification:this.appendNotification,i="#notificationContainer";if(e.placeat)i=e.placeat;else{const e=".modal.open .modal-content",o=document.querySelector(e);o&&(o.querySelector("#modalNotificationContainer")||Ao(o).prepend('
'),i=e+" #modalNotificationContainer",t=this.prependNotification)}const o=e.group||(i?i.toString():"");this.initializeNotificationContainer(i,o);const n=(this.nextNotificationId+=1).toString();return t.call(this,Object.assign(Object.assign({},e),{},{noclear:!!e.noclear,group:o,notificationId:e.id,notificationInstanceId:n,type:e.type||"transient"})),n}scrollToNotification(e){setTimeout(()=>{const t=document.querySelector(`[data-notification-instance-id='${e}']`);t&&I.helper.lazyScrollTo(t,250)})}toast(e){this.checkMessage(e.message);const t=e.placeat?Ao(e.placeat):void 0;if(!t||!t.length)throw new Error("A valid selector is required for the placeat option when using Notification.toast().");const i=document.createElement("div");i.style.position="absolute",i.style.top=t.offset().top+"px",i.style.left=t.offset().left+"px",i.style.zIndex="1000",document.body.appendChild(i);const o=ve({render:()=>Object(D["createVNode"])(Mo,Object.assign(Object.assign({},e),{},{notificationId:e.id,type:"toast",onClosed:()=>{o.unmount()}}))});o.mount(i)}initializeNotificationContainer(e,t){if(!e)return;const i=Ao(e);if(i.children(".notification-group").length)return;const o=window.CoreHome.NotificationGroup,n=ve({template:'',data:()=>({group:t})});n.component("NotificationGroup",o),n.mount(i[0])}checkMessage(e){if(!e)throw new Error("No message given, cannot display notification")}}const Ho=new _o;var $o=Ho;Ao(()=>Ho.parseNotificationDivs());var Uo=Object(D["defineComponent"])({props:{group:String},components:{Notification:Mo},computed:{notifications(){return $o.state.notifications.filter(e=>this.group?this.group===e.group:!e.group)}},methods:{removeNotification(e){$o.remove(e)}}});Uo.render=Lo;var qo=Uo; + */const{$:Ao}=window;class _o{constructor(){Ro(this,"privateState",Object(D["reactive"])({notifications:[]})),Ro(this,"nextNotificationId",0)}get state(){return Object(D["readonly"])(this.privateState)}appendNotification(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.push(e)}prependNotification(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.unshift(e)}remove(e){this.privateState.notifications=this.privateState.notifications.filter(t=>t.id!==e)}parseNotificationDivs(){const e=Ao('[data-role="notification"]'),t=[];e.each((i,o)=>{const n=Ao(o),a=n.data(),r=n.html();r&&t.push(Object.assign(Object.assign({},a),{},{message:r,animate:!1})),e.remove()}),t.forEach(e=>this.show(e))}clearTransientNotifications(){this.privateState.notifications=this.privateState.notifications.filter(e=>"transient"!==e.type)}show(e){this.checkMessage(e.message);let t=e.prepend?this.prependNotification:this.appendNotification,i="#notificationContainer";if(e.placeat)i=e.placeat;else{const e=".modal.open .modal-content",o=document.querySelector(e);o&&(o.querySelector("#modalNotificationContainer")||Ao(o).prepend('
'),i=e+" #modalNotificationContainer",t=this.prependNotification)}const o=e.group||(i?i.toString():"");this.initializeNotificationContainer(i,o);const n=(this.nextNotificationId+=1).toString();return t.call(this,Object.assign(Object.assign({},e),{},{noclear:!!e.noclear,group:o,notificationId:e.id,notificationInstanceId:n,type:e.type||"transient"})),n}scrollToNotification(e){setTimeout(()=>{const t=document.querySelector(`[data-notification-instance-id='${e}']`);t&&M.helper.lazyScrollTo(t,250)})}toast(e){this.checkMessage(e.message);const t=e.placeat?Ao(e.placeat):void 0;if(!t||!t.length)throw new Error("A valid selector is required for the placeat option when using Notification.toast().");const i=document.createElement("div");i.style.position="absolute",i.style.top=t.offset().top+"px",i.style.left=t.offset().left+"px",i.style.zIndex="1000",document.body.appendChild(i);const o=ve({render:()=>Object(D["createVNode"])(Io,Object.assign(Object.assign({},e),{},{notificationId:e.id,type:"toast",onClosed:()=>{o.unmount()}}))});o.mount(i)}initializeNotificationContainer(e,t){if(!e)return;const i=Ao(e);if(i.children(".notification-group").length)return;const o=window.CoreHome.NotificationGroup,n=ve({template:'',data:()=>({group:t})});n.component("NotificationGroup",o),n.mount(i[0])}checkMessage(e){if(!e)throw new Error("No message given, cannot display notification")}}const Ho=new _o;var $o=Ho;Ao(()=>Ho.parseNotificationDivs());var Uo=Object(D["defineComponent"])({props:{group:String},components:{Notification:Io},computed:{notifications(){return $o.state.notifications.filter(e=>this.group?this.group===e.group:!e.group)}},methods:{removeNotification(e){$o.remove(e)}}});Uo.render=Lo;var qo=Uo; /*! * Matomo - free/libre analytics platform * @@ -248,7 +248,7 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class Xo{constructor(){Jo(this,"state",Object(D["reactive"])({initialSites:[],isInitialized:!1})),Jo(this,"stateFiltered",Object(D["reactive"])({initialSites:[],isInitialized:!1,excludedSites:[],onlySitesWithAdminAccess:!1,onlySitesWithAtLeastWriteAccess:!1,siteTypesToExclude:[]})),Jo(this,"currentRequestAbort",null),Jo(this,"limitRequest",void 0),Jo(this,"initialSites",Object(D["computed"])(()=>Object(D["readonly"])(this.state.initialSites))),Jo(this,"initialSitesFiltered",Object(D["computed"])(()=>Object(D["readonly"])(this.stateFiltered.initialSites)))}isFiltered(e=!1,t=[],i=!1,o=[]){return t.length>0||e||i||o.length>0}matchesCurrentFilteredState(e=!1,t=[],i=!1,o=[]){return!this.stateFiltered.isInitialized&&!this.isFiltered(e,t,i,o)||this.stateFiltered.isInitialized&&t.length===this.stateFiltered.excludedSites.length&&t.every((e,t)=>e===this.stateFiltered.excludedSites[t])&&e===this.stateFiltered.onlySitesWithAdminAccess&&i===this.stateFiltered.onlySitesWithAtLeastWriteAccess&&o.length===this.stateFiltered.siteTypesToExclude.length&&o.every((e,t)=>e===this.stateFiltered.siteTypesToExclude[t])}loadInitialSites(e=!1,t=[],i=!1,o=[]){return this.state.isInitialized&&!this.isFiltered(e,t,i,o)?Promise.resolve(Object(D["readonly"])(this.state.initialSites)):this.stateFiltered.isInitialized&&this.matchesCurrentFilteredState(e,t,i,o)?Promise.resolve(Object(D["readonly"])(this.stateFiltered.initialSites)):this.isFiltered(e,t,i,o)?this.searchSite("%",e,t,i,o).then(n=>(this.stateFiltered.isInitialized=!0,this.stateFiltered.excludedSites=t,this.stateFiltered.onlySitesWithAdminAccess=e,this.stateFiltered.onlySitesWithAtLeastWriteAccess=i,this.stateFiltered.siteTypesToExclude=o,null!==n&&(this.stateFiltered.initialSites=n),n)):this.state.isInitialized?Promise.resolve(Object(D["readonly"])(this.state.initialSites)):this.searchSite("%",e,t,i,o).then(e=>(this.state.isInitialized=!0,null!==e&&(this.state.initialSites=e),e))}loadSite(e){"all"===e?U.updateUrl(Object.assign(Object.assign({},U.urlParsed.value),{},{module:"MultiSites",action:"index",date:U.parsed.value.date,period:U.parsed.value.period})):U.updateUrl(Object.assign(Object.assign({},U.urlParsed.value),{},{segment:"",idSite:e}),Object.assign(Object.assign({},U.hashParsed.value),{},{segment:"",idSite:e}))}searchSite(e,t=!1,i=[],o=!1,n=[]){return e?(this.currentRequestAbort&&this.currentRequestAbort.abort(),this.limitRequest||(this.limitRequest=te.fetch({method:"SitesManager.getNumWebsitesToDisplayPerPage"})),this.limitRequest.then(a=>{const r=a.value;let s="view";return t?s="admin":o&&(s="write"),this.currentRequestAbort=new AbortController,te.fetch({method:"SitesManager.getSitesWithMinimumAccess",permission:s,limit:r,pattern:e,sitesToExclude:i,siteTypesToExclude:n},{abortController:this.currentRequestAbort,abortable:!1})}).then(e=>e?this.processWebsitesList(e):null).finally(()=>{this.currentRequestAbort=null})):this.loadInitialSites(t,i,o,n)}processWebsitesList(e){let t=e;return t&&t.length?(t=t.map(e=>Object.assign(Object.assign({},e),{},{name:e.group?`[${e.group}] ${e.name}`:e.name})),t.sort((e,t)=>e.name.toLowerCase()t.name.toLowerCase()?1:0),t):[]}}var Zo=new Xo;const en=["value","name"],tn=["title"],on=["textContent"],nn={key:1,class:"placeholder"},an={class:"dropdown"},rn={class:"custom_select_search"},sn=["placeholder"],ln={key:0},cn={class:"custom_select_container"},dn=["onClick"],un=["innerHTML","href","title"],mn={class:"custom_select_ul_list"},pn={class:"noresult"},hn={key:1};function gn(e,t,i,o,n,a){var r,s,l,c;const d=Object(D["resolveComponent"])("AllSitesLink"),u=Object(D["resolveDirective"])("tooltips"),m=Object(D["resolveDirective"])("focus-if"),p=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["siteSelector piwikSelector borderedControl",{expanded:e.showSitesList,disabled:!e.hasMultipleSites}])},[e.name?(Object(D["openBlock"])(),Object(D["createElementBlock"])("input",{key:0,type:"hidden",value:null===(r=e.displayedModelValue)||void 0===r?void 0:r.id,name:e.name},null,8,en)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{ref:"selectorLink",onClick:t[0]||(t[0]=(...t)=>e.onClickSelector&&e.onClickSelector(...t)),onKeydown:t[1]||(t[1]=t=>e.onPressEnter(t)),href:"javascript:void(0)",class:Object(D["normalizeClass"])([{loading:e.isLoading},"title"]),tabindex:"4",title:e.selectorLinkTitle},[Object(D["createElementVNode"])("span",null,[null!==(s=e.displayedModelValue)&&void 0!==s&&s.name||!e.placeholder?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,textContent:Object(D["toDisplayString"])((null===(l=e.displayedModelValue)||void 0===l?void 0:l.name)||e.firstSiteName)},null,8,on)):Object(D["createCommentVNode"])("",!0),null!==(c=e.displayedModelValue)&&void 0!==c&&c.name||!e.placeholder?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",nn,Object(D["toDisplayString"])(e.placeholder),1))]),Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])(["icon icon-chevron-down",{iconHidden:e.isLoading,collapsed:!e.showSitesList}])},null,2)],42,tn)),[[u]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",an,[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",rn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",onClick:t[2]||(t[2]=t=>{e.searchTerm="",e.loadInitialSites()}),"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchTerm=t),tabindex:"4",class:"websiteSearch inp browser-default",placeholder:e.translate("General_Search")},null,8,sn),[[D["vModelText"],e.searchTerm],[m,{focused:e.shouldFocusOnSearch}]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("img",{title:"Clear",onClick:t[4]||(t[4]=t=>{e.searchTerm="",e.loadInitialSites()}),class:"reset",src:"plugins/CoreHome/images/reset_search.png"},null,512),[[D["vShow"],e.searchTerm]])],512),[[D["vShow"],e.autocompleteMinSites<=e.sites.length||e.searchTerm]]),"top"===e.allSitesLocation&&e.showAllSitesItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ln,[Object(D["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[5]||(t[5]=t=>e.onAllSitesClick(t))},null,8,["href","all-sites-text"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",cn,[Object(D["createElementVNode"])("ul",{class:"custom_select_ul_list",onClick:t[7]||(t[7]=t=>e.showSitesList=!1)},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.sites,(i,o)=>Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{onClick:t=>e.switchSite(Object.assign(Object.assign({},i),{},{id:i.idsite}),t),key:o},[Object(D["createElementVNode"])("a",{onClick:t[6]||(t[6]=e=>e.preventDefault()),innerHTML:e.$sanitize(e.getMatchedSiteName(i.name)),tabindex:"4",href:e.getUrlForSiteId(i.idsite),title:i.name},null,8,un)],8,dn)),[[D["vShow"],!(!e.showSelectedSite&&""+e.activeSiteId===""+i.idsite)]])),128))]),Object(D["withDirectives"])(Object(D["createElementVNode"])("ul",mn,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("div",pn,Object(D["toDisplayString"])(e.translate("SitesManager_NotFound")+" "+e.searchTerm),1)])],512),[[D["vShow"],!e.sites.length&&e.searchTerm]])])),[[u,{content:e.tooltipContent}]]),"bottom"===e.allSitesLocation&&e.showAllSitesItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",hn,[Object(D["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[8]||(t[8]=t=>e.onAllSitesClick(t))},null,8,["href","all-sites-text"])])):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showSitesList]])],2)),[[p,{blur:e.onBlur}]])}const bn=["innerHTML","href"];function fn(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{onClick:t[1]||(t[1]=e=>this.onClick(e)),class:"custom_select_all"},[Object(D["createElementVNode"])("a",{onClick:t[0]||(t[0]=e=>e.preventDefault()),innerHTML:e.$sanitize(e.allSitesText),tabindex:"4",href:e.href},null,8,bn)])}var vn=Object(D["defineComponent"])({props:{href:String,allSitesText:String},emits:["click"],methods:{onClick(e){this.$emit("click",e)}}});vn.render=fn;var On=vn,yn=Object(D["defineComponent"])({props:{modelValue:Object,showSelectedSite:{type:Boolean,default:!1},showAllSitesItem:{type:Boolean,default:!0},switchSiteOnSelect:{type:Boolean,default:!0},onlySitesWithAdminAccess:{type:Boolean,default:!1},name:{type:String,default:""},allSitesText:{type:String,default:a("General_MultiSitesSummary")},allSitesLocation:{type:String,default:"bottom"},placeholder:String,defaultToFirstSite:Boolean,sitesToExclude:{type:Array,default:()=>[]},onlySitesWithAtLeastWriteAccess:{type:Boolean,default:!1},siteTypesToExclude:{type:Array,default:()=>[]}},emits:["update:modelValue","blur"],components:{AllSitesLink:On},directives:{FocusAnywhereButHere:tt,FocusIf:ot,Tooltips:st},watch:{searchTerm(){this.onSearchTermChanged()}},data(){return{searchTerm:"",activeSiteId:""+I.idSite,showSitesList:!1,isLoading:!1,sites:[],autocompleteMinSites:parseInt(I.config.autocomplete_min_sites,10)}},created(){this.searchSite=Pe(this.searchSite),!this.modelValue&&I.idSite&&this.$emit("update:modelValue",{id:I.idSite,name:I.helper.htmlDecode(I.siteName)})},mounted(){window.initTopControls(),this.loadInitialSites().then(()=>{this.shouldDefaultToFirstSite&&this.$emit("update:modelValue",{id:this.sites[0].idsite,name:this.sites[0].name})});const e=a("CoreHome_ShortcutWebsiteSelector");I.helper.registerShortcut("w",e,e=>{if(e.altKey)return;e.preventDefault?e.preventDefault():e.returnValue=!1;const t=this.$refs.selectorLink;t&&(t.click(),t.focus())})},computed:{shouldFocusOnSearch(){return this.showSitesList&&this.autocompleteMinSites<=this.sites.length||this.searchTerm},selectorLinkTitle(){return this.hasMultipleSites&&this.displayedModelValue?a("CoreHome_ChangeCurrentWebsite",this.htmlEntities(this.displayedModelValue.name)):""},hasMultipleSites(){const e=Zo.matchesCurrentFilteredState(this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[])&&Zo.initialSitesFiltered.value&&Zo.initialSitesFiltered.value.length?Zo.initialSitesFiltered.value:Zo.initialSites.value;return e&&e.length>1},firstSiteName(){const e=Zo.initialSitesFiltered.value&&Zo.initialSitesFiltered.value.length?Zo.initialSitesFiltered.value:Zo.initialSites.value;return e&&e.length>0?e[0].name:""},urlAllSites(){const e=U.stringify(Object.assign(Object.assign({},U.urlParsed.value),{},{module:"MultiSites",action:"index",date:U.parsed.value.date,period:U.parsed.value.period}));return"?"+e},shouldDefaultToFirstSite(){var e;return!(null!==(e=this.modelValue)&&void 0!==e&&e.id)&&(!this.hasMultipleSites||this.defaultToFirstSite)&&this.sites[0]},displayedModelValue(){return this.modelValue?this.modelValue:I.idSite?{id:I.idSite,name:I.helper.htmlDecode(I.siteName)}:this.shouldDefaultToFirstSite?{id:this.sites[0].idsite,name:this.sites[0].name}:null},tooltipContent(){return function(){const e=$(this).attr("title")||"";return I.helper.htmlEntities(e)}}},methods:{onSearchTermChanged(){this.searchTerm?(this.isLoading=!0,this.searchSite(this.searchTerm)):(this.isLoading=!1,this.loadInitialSites())},onAllSitesClick(e){this.switchSite({id:"all",name:this.$props.allSitesText},e),this.showSitesList=!1},switchSite(e,t){const i=-1!==navigator.userAgent.indexOf("Mac OS X")?t.metaKey:t.ctrlKey;t&&i&&t.target&&t.target.href?window.open(t.target.href,"_blank"):(this.$emit("update:modelValue",{id:e.id,name:e.name}),this.switchSiteOnSelect&&this.activeSiteId!==e.id&&Zo.loadSite(e.id))},onBlur(){this.showSitesList=!1,this.$emit("blur")},onClickSelector(){this.hasMultipleSites&&(this.showSitesList=!this.showSitesList,this.isLoading||this.searchTerm||this.loadInitialSites())},onPressEnter(e){"Enter"===e.key&&(e.preventDefault(),this.showSitesList=!this.showSitesList,this.showSitesList&&!this.isLoading&&this.loadInitialSites())},getMatchedSiteName(e){const t=e.toUpperCase().indexOf(this.searchTerm.toUpperCase());if(-1===t||this.isLoading)return this.htmlEntities(e);const i=this.htmlEntities(e.substring(0,t)),o=this.htmlEntities(e.substring(t+this.searchTerm.length));return`${i}${this.searchTerm}${o}`},loadInitialSites(){return Zo.loadInitialSites(this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[]).then(e=>{this.sites=e||[]})},searchSite(e){this.isLoading=!0,Zo.searchSite(e,this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[]).then(t=>{e===this.searchTerm&&t&&(this.sites=t)}).finally(()=>{this.isLoading=!1})},getUrlForSiteId(e){const t=U.stringify(Object.assign(Object.assign({},U.urlParsed.value),{},{segment:"",idSite:e})),i=U.stringify(Object.assign(Object.assign({},U.hashParsed.value),{},{segment:"",idSite:e}));return`?${t}#?${i}`},htmlEntities(e){return I.helper.htmlEntities(e)}}});yn.render=gn;var jn=yn;const wn={ref:"root",class:"quickAccessInside"},Sn=["title","placeholder"],Cn={class:"dropdown quickAccessDropdown"},kn={class:"no-result"},Dn=["onClick"],En=["onMouseenter","onClick"],Pn={class:"quickAccessMatomoSearch"},Tn=["onMouseenter","onClick"],Vn=["textContent"],xn={class:"quick-access-category helpCategory"},Nn=["href"];function Bn(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("focus-if"),s=Object(D["resolveDirective"])("tooltips"),l=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",wn,[Object(D["createElementVNode"])("span",{class:"icon-search",onMouseenter:t[0]||(t[0]=t=>e.searchActive=!0)},null,32),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{class:"quickAccessInput browser-default",onKeydown:t[1]||(t[1]=t=>e.onKeypress(t)),onFocus:t[2]||(t[2]=t=>e.searchActive=!0),"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchTerm=t),type:"text",tabindex:"5",title:e.quickAccessTitle,placeholder:e.translate("General_Search"),ref:"input"},null,40,Sn),[[D["vModelText"],e.searchTerm],[r,{focused:e.searchActive}],[s]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Cn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("ul",null,[Object(D["createElementVNode"])("li",kn,Object(D["toDisplayString"])(e.translate("General_SearchNoResults")),1)],512),[[D["vShow"],!(e.numMenuItems>0||e.sites.length)]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menuItems,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:t.title},[Object(D["createElementVNode"])("li",{class:"quick-access-category",onClick:i=>{e.searchTerm=t.title,e.searchMenu(e.searchTerm)}},Object(D["toDisplayString"])(t.title),9,Dn),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.items,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["result",{selected:t.menuIndex===e.searchIndex}]),onMouseenter:i=>e.searchIndex=t.menuIndex,onClick:i=>e.selectMenuItem(t.index),key:t.index},[Object(D["createElementVNode"])("a",null,Object(D["toDisplayString"])(t.name.trim()),1)],42,En))),128))]))),128)),Object(D["createElementVNode"])("ul",Pn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("li",{class:"quick-access-category websiteCategory"},Object(D["toDisplayString"])(e.translate("SitesManager_Sites")),513),[[D["vShow"],e.hasSitesSelector&&e.sites.length||e.isLoading]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("li",{class:"no-result"},Object(D["toDisplayString"])(e.translate("MultiSites_LoadingWebsites")),513),[[D["vShow"],e.hasSitesSelector&&e.isLoading]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.sites,(t,i)=>Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["result",{selected:e.numMenuItems+i===e.searchIndex}]),onMouseenter:t=>e.searchIndex=e.numMenuItems+i,onClick:i=>e.selectSite(t.idsite),key:t.idsite},[Object(D["createElementVNode"])("a",{textContent:Object(D["toDisplayString"])(t.name)},null,8,Vn)],42,Tn)),[[D["vShow"],e.hasSitesSelector&&!e.isLoading]])),128))]),Object(D["createElementVNode"])("ul",null,[Object(D["createElementVNode"])("li",xn,Object(D["toDisplayString"])(e.translate("General_HelpResources")),1),Object(D["createElementVNode"])("li",{class:Object(D["normalizeClass"])([{selected:"help"===e.searchIndex},"quick-access-help"]),onMouseenter:t[4]||(t[4]=t=>e.searchIndex="help")},[Object(D["createElementVNode"])("a",{href:"https://matomo.org?mtm_campaign=App_Help&mtm_source=Matomo_App&mtm_keyword=QuickSearch&s="+encodeURIComponent(e.searchTerm),target:"_blank"},Object(D["toDisplayString"])(e.translate("CoreHome_SearchOnMatomo",e.searchTerm)),9,Nn)],34)])],512),[[D["vShow"],e.searchTerm&&e.searchActive]])])),[[l,{blur:e.onBlur}]])}const{ListingFormatter:Mn}=window;function In(e){const t=e.getBoundingClientRect(),i=window.$(window);return t.top>=0&&t.left>=0&&t.bottom<=i.height()&&t.right<=i.width()}function Fn(e){e&&e.scrollIntoView&&e.scrollIntoView()}var Ln=Object(D["defineComponent"])({name:"QuickAccess",directives:{FocusAnywhereButHere:tt,FocusIf:ot,Tooltips:st},watch:{searchActive(e){const t=this.$refs.root;if(!t||!t.parentElement)return;const i=t.parentElement.classList;i.toggle("active",e),i.toggle("expanded",e)}},mounted(){const e=this.$refs.root;e&&e.parentElement&&e.parentElement.classList.add("quick-access","piwikSelector"),I.helper.registerShortcut("f",a("CoreHome_ShortcutSearch"),e=>{if(e.altKey)return;e.preventDefault();const t=document.querySelector("nav .activateLeftMenu");t&&window.$(t).is(":visible")&&At(),Fn(this.$refs.root),this.activateSearch()})},data(){const e=!!document.querySelector(".segmentEditorPanel");return{menuItems:[],numMenuItems:0,searchActive:!1,searchTerm:"",searchIndex:0,menuIndexCounter:-1,topMenuItems:null,leftMenuItems:null,segmentItems:null,hasSegmentSelector:e,sites:[],isLoading:!1}},created(){this.searchMenu=Pe(this.searchMenu.bind(this))},computed:{hasSitesSelector(){return!!document.querySelector('.top_controls .siteSelector,.top_controls [vue-entry="CoreHome.SiteSelector"]')},quickAccessTitle(){const e=[a("CoreHome_MenuEntries")];return this.hasSegmentSelector&&e.push(a("CoreHome_Segments")),this.hasSitesSelector&&e.push(a("SitesManager_Sites")),a("CoreHome_QuickAccessTitle",Mn.formatAnd(e))}},emits:["itemSelected","blur"],methods:{onKeypress(e){const t=this.searchTerm&&this.searchActive,i=9===e.which,o=27===e.which;38===e.which?(this.highlightPreviousItem(),e.preventDefault()):40===e.which?(this.highlightNextItem(),e.preventDefault()):13===e.which?this.clickQuickAccessMenuItem():i&&t||o&&t?this.deactivateSearch():i?this.searchActive=!1:setTimeout(()=>{this.searchActive=!0,this.searchMenu(this.searchTerm)})},highlightPreviousItem(){this.searchIndex-1<0?this.searchIndex=0:this.searchIndex-=1,this.makeSureSelectedItemIsInViewport()},highlightNextItem(){const e=this.$refs.root.querySelectorAll("li.result").length;e<=this.searchIndex+1?this.searchIndex=e-1:this.searchIndex+=1,this.makeSureSelectedItemIsInViewport()},clickQuickAccessMenuItem(){const e=this.getCurrentlySelectedElement();e&&setTimeout(()=>{e.click(),this.$emit("itemSelected",e)},20)},deactivateSearch(){this.searchTerm="",this.searchActive=!1,this.$refs.input&&this.$refs.input.blur()},makeSureSelectedItemIsInViewport(){const e=this.getCurrentlySelectedElement();e&&!In(e)&&Fn(e)},getCurrentlySelectedElement(){const e=this.$refs.root.querySelectorAll("li.result");if(e&&e.length&&e.item(this.searchIndex))return e.item(this.searchIndex)},searchMenu(e){const t=e.toLowerCase();let i=-1;const o={},n=[],a=e=>{const t=Object.assign({},e);i+=1,t.menuIndex=i;const{category:a}=t;a in o||(n.push({title:a,items:[]}),o[a]=n.length-1);const r=o[a];n[r].items.push(t)};this.resetSearchIndex(),this.hasSitesSelector&&(this.isLoading=!0,Zo.searchSite(t).then(e=>{e&&(this.sites=e)}).finally(()=>{this.isLoading=!1}));const r=e=>-1!==e.name.toLowerCase().indexOf(t)||-1!==e.category.toLowerCase().indexOf(t);null===this.topMenuItems&&(this.topMenuItems=this.getTopMenuItems()),null===this.leftMenuItems&&(this.leftMenuItems=this.getLeftMenuItems()),null===this.segmentItems&&(this.segmentItems=this.getSegmentItems());const s=this.topMenuItems.filter(r),l=this.leftMenuItems.filter(r),c=this.segmentItems.filter(r);s.forEach(a),l.forEach(a),c.forEach(a),this.numMenuItems=s.length+l.length+c.length,this.menuItems=n},resetSearchIndex(){this.searchIndex=0,this.makeSureSelectedItemIsInViewport()},selectSite(e){this.deactivateSearch(),_t(),Zo.loadSite(e)},selectMenuItem(e){const t=document.querySelector(`[quick_access='${e}']`);if(t){this.deactivateSearch(),_t();const e=t.getAttribute("href");if(e&&e.length>10&&t&&t.click)try{t.click()}catch(i){window.$(t).click()}else window.$(t).click()}},onBlur(){this.searchActive=!1,this.$emit("blur")},activateSearch(){this.searchActive=!0},getTopMenuItems(){const e=a("CoreHome_Menu"),t=[];return document.querySelectorAll("nav .sidenav li > a, nav .sidenav li > div > a").forEach(i=>{var o;let n=null===(o=i.textContent)||void 0===o?void 0:o.trim();var a;(!n||null!=i.parentElement&&null!=i.parentElement.tagName&&"DIV"===i.parentElement.tagName)&&(n=null===(a=i.getAttribute("title"))||void 0===a?void 0:a.trim());n&&(t.push({name:n,index:this.menuIndexCounter+=1,category:e}),i.setAttribute("quick_access",""+this.menuIndexCounter))}),t},getLeftMenuItems(){const e=[];return document.querySelectorAll("#secondNavBar .menuTab").forEach(t=>{var i;const o=window.$(t).find("> .item");let n=(null===(i=o[0])||void 0===i?void 0:i.innerText.trim())||"";n&&-1!==n.lastIndexOf("\n")&&(n=n.slice(0,n.lastIndexOf("\n")).trim()),window.$(t).find("li .item").each((t,i)=>{var o;const a=null===(o=i.textContent)||void 0===o?void 0:o.trim();a&&(e.push({name:a,category:n,index:this.menuIndexCounter+=1}),i.setAttribute("quick_access",""+this.menuIndexCounter))})}),e},getSegmentItems(){if(!this.hasSegmentSelector)return[];const e=a("CoreHome_Segments"),t=[];return document.querySelectorAll(".segmentList [data-idsegment]").forEach(i=>{var o;const n=null===(o=i.querySelector(".segname"))||void 0===o||null===(o=o.textContent)||void 0===o?void 0:o.trim();n&&(t.push({name:n,category:e,index:this.menuIndexCounter+=1}),i.setAttribute("quick_access",""+this.menuIndexCounter))}),t}}});Ln.render=Bn;var Rn=Ln;const An={class:"fieldArray form-group"},_n={key:0,class:"fieldUiControl"},Hn=["onClick","title"];function $n(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",An,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.modelValue,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["fieldArrayTable multiple valign-wrapper",{["fieldArrayTable"+i]:!0}]),key:i},[e.field.uiControl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",_n,[Object(D["createVNode"])(r,{"full-width":!0,"model-value":t,options:e.field.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(t,i),"model-modifiers":e.field.modelModifiers,placeholder:" ",uicontrol:e.field.uiControl,title:e.field.title,name:`${e.name}-${i}`,id:`${e.id}-${i}`,"template-file":e.field.templateFile,component:e.field.component},null,8,["model-value","options","onUpdate:modelValue","model-modifiers","uicontrol","title","name","id","template-file","component"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",{onClick:t=>e.removeEntry(i),class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Hn),[[D["vShow"],i+1!==e.modelValue.length]])],2))),128))])}const Un=Ce("CorePluginsAdmin","Field");var qn=Object(D["defineComponent"])({props:{modelValue:Array,name:String,id:String,field:Object,rows:String},components:{Field:Un},emits:["update:modelValue"],watch:{modelValue(e){this.checkEmptyModelValue(e)}},mounted(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue(e){e&&e.length&&""===e.slice(-1)[0]||this.rows&&!((this.modelValue||[]).length-1&&this.modelValue){const t=this.modelValue.filter((t,i)=>i!==e);this.$emit("update:modelValue",t)}}}});qn.render=$n;var Wn=qn;const zn={class:"multiPairField form-group"},Gn={key:1,class:"fieldUiControl fieldUiControl2"},Kn={key:2,class:"fieldUiControl fieldUiControl3"},Yn={key:3,class:"fieldUiControl fieldUiControl4"},Qn=["onClick","title"];function Jn(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",zn,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.modelValue,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["multiPairFieldTable multiple valign-wrapper",{["multiPairFieldTable"+i]:!0,[`has${e.fieldCount}Fields`]:!0}]),key:i},[e.field1?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["fieldUiControl fieldUiControl1",{hasMultiFields:e.field1.type&&e.field2.type}])},[Object(D["createVNode"])(r,{"full-width":!0,"model-value":t[e.field1.key],options:e.field1.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field1.key,t),"model-modifiers":e.field1.modelModifiers,placeholder:" ",uicontrol:e.field1.uiControl,name:`${e.name}-p1-${i}`,id:`${e.id}-p1-${i}`,title:e.field1.title,"template-file":e.field1.templateFile,component:e.field1.component},null,8,["model-value","options","onUpdate:modelValue","model-modifiers","uicontrol","name","id","title","template-file","component"])],2)):Object(D["createCommentVNode"])("",!0),e.field2?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Gn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field2.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field2.key,t),"model-value":t[e.field2.key],"model-modifiers":e.field2.modelModifiers,placeholder:" ",uicontrol:e.field2.uiControl,name:`${e.name}-p2-${i}`,id:`${e.id}-p2-${i}`,title:e.field2.title,"template-file":e.field2.templateFile,component:e.field2.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),e.field3?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Kn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field3.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field3.key,t),"model-value":t[e.field3.key],"model-modifiers":e.field3.modelModifiers,placeholder:" ",uicontrol:e.field3.uiControl,name:`${e.name}-p3-${i}`,id:`${e.id}-p3-${i}`,title:e.field3.title,"template-file":e.field3.templateFile,component:e.field3.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),e.field4?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Yn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field4.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field4.key,t),"model-value":t[e.field4.key],"model-modifiers":e.field4.modelModifiers,placeholder:" ",uicontrol:e.field4.uiControl,name:`${e.name}-p4-${i}`,id:`${e.id}-p4-${i}`,title:e.field4.title,"template-file":e.field4.templateFile,component:e.field4.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",{onClick:t=>e.removeEntry(i),class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Qn),[[D["vShow"],i+1!==e.modelValue.length]])],2))),128))])}const Xn=Ce("CorePluginsAdmin","Field");var Zn=Object(D["defineComponent"])({props:{modelValue:Array,name:String,id:String,field1:Object,field2:Object,field3:Object,field4:Object,rows:Number},components:{Field:Xn},computed:{fieldCount(){return this.field1&&this.field2&&this.field3&&this.field4?4:this.field1&&this.field2&&this.field3?3:this.field1&&this.field2?2:this.field1?1:0}},emits:["update:modelValue"],watch:{modelValue(e){this.checkEmptyModelValue(e)}},mounted(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue(e){e&&e.length&&!this.isEmptyValue(e.slice(-1)[0])||this.rows&&!(this.modelValue.length-1&&this.modelValue){const t=this.modelValue.filter((t,i)=>i!==e);this.$emit("update:modelValue",t)}},isEmptyValue(e){const{fieldCount:t}=this;if(4===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key]&&!e[this.field4.key])return!1}else if(3===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key])return!1}else if(2===t){if(!e[this.field1.key]&&!e[this.field2.key])return!1}else if(1===t&&!e[this.field1.key])return!1;return!0},makeEmptyValue(){const e={};return this.field1&&this.field1.key&&(e[this.field1.key]=""),this.field2&&this.field2.key&&(e[this.field2.key]=""),this.field3&&this.field3.key&&(e[this.field3.key]=""),this.field4&&this.field4.key&&(e[this.field4.key]=""),e}}});Zn.render=Jn;var ea=Zn;const ta=["disabled"],ia=Object(D["createElementVNode"])("span",{class:"icon-chevron-left"},null,-1),oa=[ia],na=["title"],aa=Object(D["createElementVNode"])("span",{class:"icon icon-calendar"},null,-1),ra={class:"flex"},sa={key:0,id:"ajaxLoadingCalendar"},la={class:"loadingSegment"},ca=["disabled"],da=Object(D["createElementVNode"])("span",{class:"icon-chevron-right"},null,-1),ua=[da];function ma(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("PeriodSelectorOptionsColumn"),s=Object(D["resolveComponent"])("PeriodSelectorCalendarColumn"),l=Object(D["resolveComponent"])("ActivityIndicator"),c=Object(D["resolveDirective"])("tooltips"),d=Object(D["resolveDirective"])("expand-on-click");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{ref:"root",class:Object(D["normalizeClass"])(["periodSelector piwikSelector",{"periodSelector-withPrevNext":e.canShowMovePeriod}])},[e.canShowMovePeriod?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:0,class:"move-period move-period-prev",onClick:t[0]||(t[0]=t=>e.movePeriod(-1)),disabled:e.isPeriodMoveDisabled(-1)},oa,8,ta)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{ref:"title",id:"date",class:"title",tabindex:"4",title:e.translate("General_ChooseDate",e.currentlyViewingText)},[aa,Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.currentlyViewingText),1)],8,na)),[[c]]),Object(D["createElementVNode"])("div",{id:"periodMore",class:Object(D["normalizeClass"])(["dropdown","range"===e.selectedPeriod?"dual-calendar":"single-calendar"])},[Object(D["createElementVNode"])("div",ra,[Object(D["createVNode"])(r,{"ui-selected-period":e.selectedPeriod,"periods-filtered":e.periodsFiltered,"ui-selection":e.uiSelection,"applied-period":e.committedPeriod,"active-preset-id":e.activePresetId,"min-allowed-date":e.minAllowedDate,"max-allowed-date":e.maxAllowedDate,"onUpdate:uiSelectedPeriod":t[1]||(t[1]=t=>e.selectedPeriod=t),"onUpdate:activePresetId":t[2]||(t[2]=t=>e.activePresetId=t),onPeriodSelect:t[3]||(t[3]=t=>e.onPeriodOptionSelected(t)),onPeriodDblclick:t[4]||(t[4]=t=>e.onPeriodOptionDblClick(t)),onPresetSelect:t[5]||(t[5]=t=>e.onPresetDateRangeSelected(t))},null,8,["ui-selected-period","periods-filtered","ui-selection","applied-period","active-preset-id","min-allowed-date","max-allowed-date"]),Object(D["createVNode"])(s,{"ui-selection":e.uiSelection,"calendar-viewport":e.calendarViewport,"display-range-start-date":e.displayRangeStartDate,"display-range-end-date":e.displayRangeEndDate,"single-calendar-period":e.singleCalendarPeriod,"single-calendar-selected-date":e.singleCalendarSelectedDate,"is-comparison-enabled":e.isComparisonEnabled,"is-comparing":e.isComparing,"compare-period-type":e.comparePeriodType,"compare-start-date":e.compareStartDate,"compare-end-date":e.compareEndDate,"compare-period-dropdown-options":e.comparePeriodDropdownOptions,"is-apply-enabled":e.isApplyEnabled(),onRangeChange:t[6]||(t[6]=t=>e.onRangeChange(t.start,t.end)),onSingleDateSelect:t[7]||(t[7]=t=>e.onDatePickerSelected(t)),onApplyClick:t[8]||(t[8]=t=>e.onApplyClicked()),onRangePresetDateCellClickCapture:t[9]||(t[9]=t=>e.onRangePresetDateCellClickCapture(t)),"onUpdate:isComparing":t[10]||(t[10]=t=>e.isComparing=t),"onUpdate:comparePeriodType":t[11]||(t[11]=t=>e.comparePeriodType=t),"onUpdate:compareStartDate":t[12]||(t[12]=t=>e.compareStartDate=t),"onUpdate:compareEndDate":t[13]||(t[13]=t=>e.compareEndDate=t)},null,8,["ui-selection","calendar-viewport","display-range-start-date","display-range-end-date","single-calendar-period","single-calendar-selected-date","is-comparison-enabled","is-comparing","compare-period-type","compare-start-date","compare-end-date","compare-period-dropdown-options","is-apply-enabled"])]),e.isLoadingNewPage?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",sa,[Object(D["createVNode"])(l,{loading:!0}),Object(D["createElementVNode"])("div",la,Object(D["toDisplayString"])(e.translate("SegmentEditor_LoadingSegmentedDataMayTakeSomeTime")),1)])):Object(D["createCommentVNode"])("",!0)],2),e.canShowMovePeriod?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:1,class:"move-period move-period-next",onClick:t[14]||(t[14]=t=>e.movePeriod(1)),disabled:e.isPeriodMoveDisabled(1)},ua,8,ca)):Object(D["createCommentVNode"])("",!0)],2)),[[d,{expander:"title",onExpand:e.onExpand,onClosed:e.onClosed}]])} + */class Xo{constructor(){Jo(this,"state",Object(D["reactive"])({initialSites:[],isInitialized:!1})),Jo(this,"stateFiltered",Object(D["reactive"])({initialSites:[],isInitialized:!1,excludedSites:[],onlySitesWithAdminAccess:!1,onlySitesWithAtLeastWriteAccess:!1,siteTypesToExclude:[]})),Jo(this,"currentRequestAbort",null),Jo(this,"limitRequest",void 0),Jo(this,"initialSites",Object(D["computed"])(()=>Object(D["readonly"])(this.state.initialSites))),Jo(this,"initialSitesFiltered",Object(D["computed"])(()=>Object(D["readonly"])(this.stateFiltered.initialSites)))}isFiltered(e=!1,t=[],i=!1,o=[]){return t.length>0||e||i||o.length>0}matchesCurrentFilteredState(e=!1,t=[],i=!1,o=[]){return!this.stateFiltered.isInitialized&&!this.isFiltered(e,t,i,o)||this.stateFiltered.isInitialized&&t.length===this.stateFiltered.excludedSites.length&&t.every((e,t)=>e===this.stateFiltered.excludedSites[t])&&e===this.stateFiltered.onlySitesWithAdminAccess&&i===this.stateFiltered.onlySitesWithAtLeastWriteAccess&&o.length===this.stateFiltered.siteTypesToExclude.length&&o.every((e,t)=>e===this.stateFiltered.siteTypesToExclude[t])}loadInitialSites(e=!1,t=[],i=!1,o=[]){return this.state.isInitialized&&!this.isFiltered(e,t,i,o)?Promise.resolve(Object(D["readonly"])(this.state.initialSites)):this.stateFiltered.isInitialized&&this.matchesCurrentFilteredState(e,t,i,o)?Promise.resolve(Object(D["readonly"])(this.stateFiltered.initialSites)):this.isFiltered(e,t,i,o)?this.searchSite("%",e,t,i,o).then(n=>(this.stateFiltered.isInitialized=!0,this.stateFiltered.excludedSites=t,this.stateFiltered.onlySitesWithAdminAccess=e,this.stateFiltered.onlySitesWithAtLeastWriteAccess=i,this.stateFiltered.siteTypesToExclude=o,null!==n&&(this.stateFiltered.initialSites=n),n)):this.state.isInitialized?Promise.resolve(Object(D["readonly"])(this.state.initialSites)):this.searchSite("%",e,t,i,o).then(e=>(this.state.isInitialized=!0,null!==e&&(this.state.initialSites=e),e))}loadSite(e){"all"===e?U.updateUrl(Object.assign(Object.assign({},U.urlParsed.value),{},{module:"MultiSites",action:"index",date:U.parsed.value.date,period:U.parsed.value.period})):U.updateUrl(Object.assign(Object.assign({},U.urlParsed.value),{},{segment:"",idSite:e}),Object.assign(Object.assign({},U.hashParsed.value),{},{segment:"",idSite:e}))}searchSite(e,t=!1,i=[],o=!1,n=[]){return e?(this.currentRequestAbort&&this.currentRequestAbort.abort(),this.limitRequest||(this.limitRequest=te.fetch({method:"SitesManager.getNumWebsitesToDisplayPerPage"})),this.limitRequest.then(a=>{const r=a.value;let s="view";return t?s="admin":o&&(s="write"),this.currentRequestAbort=new AbortController,te.fetch({method:"SitesManager.getSitesWithMinimumAccess",permission:s,limit:r,pattern:e,sitesToExclude:i,siteTypesToExclude:n},{abortController:this.currentRequestAbort,abortable:!1})}).then(e=>e?this.processWebsitesList(e):null).finally(()=>{this.currentRequestAbort=null})):this.loadInitialSites(t,i,o,n)}processWebsitesList(e){let t=e;return t&&t.length?(t=t.map(e=>Object.assign(Object.assign({},e),{},{name:e.group?`[${e.group}] ${e.name}`:e.name})),t.sort((e,t)=>e.name.toLowerCase()t.name.toLowerCase()?1:0),t):[]}}var Zo=new Xo;const en=["value","name"],tn=["title"],on=["textContent"],nn={key:1,class:"placeholder"},an={class:"dropdown"},rn={class:"custom_select_search"},sn=["placeholder"],ln={key:0},cn={class:"custom_select_container"},dn=["onClick"],un=["innerHTML","href","title"],mn={class:"custom_select_ul_list"},pn={class:"noresult"},hn={key:1};function gn(e,t,i,o,n,a){var r,s,l,c;const d=Object(D["resolveComponent"])("AllSitesLink"),u=Object(D["resolveDirective"])("tooltips"),m=Object(D["resolveDirective"])("focus-if"),p=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["siteSelector piwikSelector borderedControl",{expanded:e.showSitesList,disabled:!e.hasMultipleSites}])},[e.name?(Object(D["openBlock"])(),Object(D["createElementBlock"])("input",{key:0,type:"hidden",value:null===(r=e.displayedModelValue)||void 0===r?void 0:r.id,name:e.name},null,8,en)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{ref:"selectorLink",onClick:t[0]||(t[0]=(...t)=>e.onClickSelector&&e.onClickSelector(...t)),onKeydown:t[1]||(t[1]=t=>e.onPressEnter(t)),href:"javascript:void(0)",class:Object(D["normalizeClass"])([{loading:e.isLoading},"title"]),tabindex:"4",title:e.selectorLinkTitle},[Object(D["createElementVNode"])("span",null,[null!==(s=e.displayedModelValue)&&void 0!==s&&s.name||!e.placeholder?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,textContent:Object(D["toDisplayString"])((null===(l=e.displayedModelValue)||void 0===l?void 0:l.name)||e.firstSiteName)},null,8,on)):Object(D["createCommentVNode"])("",!0),null!==(c=e.displayedModelValue)&&void 0!==c&&c.name||!e.placeholder?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",nn,Object(D["toDisplayString"])(e.placeholder),1))]),Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])(["icon icon-chevron-down",{iconHidden:e.isLoading,collapsed:!e.showSitesList}])},null,2)],42,tn)),[[u]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",an,[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",rn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{type:"text",onClick:t[2]||(t[2]=t=>{e.searchTerm="",e.loadInitialSites()}),"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchTerm=t),tabindex:"4",class:"websiteSearch inp browser-default",placeholder:e.translate("General_Search")},null,8,sn),[[D["vModelText"],e.searchTerm],[m,{focused:e.shouldFocusOnSearch}]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("img",{title:"Clear",onClick:t[4]||(t[4]=t=>{e.searchTerm="",e.loadInitialSites()}),class:"reset",src:"plugins/CoreHome/images/reset_search.png"},null,512),[[D["vShow"],e.searchTerm]])],512),[[D["vShow"],e.autocompleteMinSites<=e.sites.length||e.searchTerm]]),"top"===e.allSitesLocation&&e.showAllSitesItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ln,[Object(D["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[5]||(t[5]=t=>e.onAllSitesClick(t))},null,8,["href","all-sites-text"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",cn,[Object(D["createElementVNode"])("ul",{class:"custom_select_ul_list",onClick:t[7]||(t[7]=t=>e.showSitesList=!1)},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.sites,(i,o)=>Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{onClick:t=>e.switchSite(Object.assign(Object.assign({},i),{},{id:i.idsite}),t),key:o},[Object(D["createElementVNode"])("a",{onClick:t[6]||(t[6]=e=>e.preventDefault()),innerHTML:e.$sanitize(e.getMatchedSiteName(i.name)),tabindex:"4",href:e.getUrlForSiteId(i.idsite),title:i.name},null,8,un)],8,dn)),[[D["vShow"],!(!e.showSelectedSite&&""+e.activeSiteId===""+i.idsite)]])),128))]),Object(D["withDirectives"])(Object(D["createElementVNode"])("ul",mn,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("div",pn,Object(D["toDisplayString"])(e.translate("SitesManager_NotFound")+" "+e.searchTerm),1)])],512),[[D["vShow"],!e.sites.length&&e.searchTerm]])])),[[u,{content:e.tooltipContent}]]),"bottom"===e.allSitesLocation&&e.showAllSitesItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",hn,[Object(D["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[8]||(t[8]=t=>e.onAllSitesClick(t))},null,8,["href","all-sites-text"])])):Object(D["createCommentVNode"])("",!0)],512),[[D["vShow"],e.showSitesList]])],2)),[[p,{blur:e.onBlur}]])}const bn=["innerHTML","href"];function fn(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{onClick:t[1]||(t[1]=e=>this.onClick(e)),class:"custom_select_all"},[Object(D["createElementVNode"])("a",{onClick:t[0]||(t[0]=e=>e.preventDefault()),innerHTML:e.$sanitize(e.allSitesText),tabindex:"4",href:e.href},null,8,bn)])}var vn=Object(D["defineComponent"])({props:{href:String,allSitesText:String},emits:["click"],methods:{onClick(e){this.$emit("click",e)}}});vn.render=fn;var On=vn,yn=Object(D["defineComponent"])({props:{modelValue:Object,showSelectedSite:{type:Boolean,default:!1},showAllSitesItem:{type:Boolean,default:!0},switchSiteOnSelect:{type:Boolean,default:!0},onlySitesWithAdminAccess:{type:Boolean,default:!1},name:{type:String,default:""},allSitesText:{type:String,default:a("General_MultiSitesSummary")},allSitesLocation:{type:String,default:"bottom"},placeholder:String,defaultToFirstSite:Boolean,sitesToExclude:{type:Array,default:()=>[]},onlySitesWithAtLeastWriteAccess:{type:Boolean,default:!1},siteTypesToExclude:{type:Array,default:()=>[]}},emits:["update:modelValue","blur"],components:{AllSitesLink:On},directives:{FocusAnywhereButHere:tt,FocusIf:ot,Tooltips:st},watch:{searchTerm(){this.onSearchTermChanged()}},data(){return{searchTerm:"",activeSiteId:""+M.idSite,showSitesList:!1,isLoading:!1,sites:[],autocompleteMinSites:parseInt(M.config.autocomplete_min_sites,10)}},created(){this.searchSite=Pe(this.searchSite),!this.modelValue&&M.idSite&&this.$emit("update:modelValue",{id:M.idSite,name:M.helper.htmlDecode(M.siteName)})},mounted(){window.initTopControls(),this.loadInitialSites().then(()=>{this.shouldDefaultToFirstSite&&this.$emit("update:modelValue",{id:this.sites[0].idsite,name:this.sites[0].name})});const e=a("CoreHome_ShortcutWebsiteSelector");M.helper.registerShortcut("w",e,e=>{if(e.altKey)return;e.preventDefault?e.preventDefault():e.returnValue=!1;const t=this.$refs.selectorLink;t&&(t.click(),t.focus())})},computed:{shouldFocusOnSearch(){return this.showSitesList&&this.autocompleteMinSites<=this.sites.length||this.searchTerm},selectorLinkTitle(){return this.hasMultipleSites&&this.displayedModelValue?a("CoreHome_ChangeCurrentWebsite",this.htmlEntities(this.displayedModelValue.name)):""},hasMultipleSites(){const e=Zo.matchesCurrentFilteredState(this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[])&&Zo.initialSitesFiltered.value&&Zo.initialSitesFiltered.value.length?Zo.initialSitesFiltered.value:Zo.initialSites.value;return e&&e.length>1},firstSiteName(){const e=Zo.initialSitesFiltered.value&&Zo.initialSitesFiltered.value.length?Zo.initialSitesFiltered.value:Zo.initialSites.value;return e&&e.length>0?e[0].name:""},urlAllSites(){const e=U.stringify(Object.assign(Object.assign({},U.urlParsed.value),{},{module:"MultiSites",action:"index",date:U.parsed.value.date,period:U.parsed.value.period}));return"?"+e},shouldDefaultToFirstSite(){var e;return!(null!==(e=this.modelValue)&&void 0!==e&&e.id)&&(!this.hasMultipleSites||this.defaultToFirstSite)&&this.sites[0]},displayedModelValue(){return this.modelValue?this.modelValue:M.idSite?{id:M.idSite,name:M.helper.htmlDecode(M.siteName)}:this.shouldDefaultToFirstSite?{id:this.sites[0].idsite,name:this.sites[0].name}:null},tooltipContent(){return function(){const e=$(this).attr("title")||"";return M.helper.htmlEntities(e)}}},methods:{onSearchTermChanged(){this.searchTerm?(this.isLoading=!0,this.searchSite(this.searchTerm)):(this.isLoading=!1,this.loadInitialSites())},onAllSitesClick(e){this.switchSite({id:"all",name:this.$props.allSitesText},e),this.showSitesList=!1},switchSite(e,t){const i=-1!==navigator.userAgent.indexOf("Mac OS X")?t.metaKey:t.ctrlKey;t&&i&&t.target&&t.target.href?window.open(t.target.href,"_blank"):(this.$emit("update:modelValue",{id:e.id,name:e.name}),this.switchSiteOnSelect&&this.activeSiteId!==e.id&&Zo.loadSite(e.id))},onBlur(){this.showSitesList=!1,this.$emit("blur")},onClickSelector(){this.hasMultipleSites&&(this.showSitesList=!this.showSitesList,this.isLoading||this.searchTerm||this.loadInitialSites())},onPressEnter(e){"Enter"===e.key&&(e.preventDefault(),this.showSitesList=!this.showSitesList,this.showSitesList&&!this.isLoading&&this.loadInitialSites())},getMatchedSiteName(e){const t=e.toUpperCase().indexOf(this.searchTerm.toUpperCase());if(-1===t||this.isLoading)return this.htmlEntities(e);const i=this.htmlEntities(e.substring(0,t)),o=this.htmlEntities(e.substring(t+this.searchTerm.length));return`${i}${this.searchTerm}${o}`},loadInitialSites(){return Zo.loadInitialSites(this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[]).then(e=>{this.sites=e||[]})},searchSite(e){this.isLoading=!0,Zo.searchSite(e,this.onlySitesWithAdminAccess,this.sitesToExclude?this.sitesToExclude:[],this.onlySitesWithAtLeastWriteAccess,this.siteTypesToExclude?this.siteTypesToExclude:[]).then(t=>{e===this.searchTerm&&t&&(this.sites=t)}).finally(()=>{this.isLoading=!1})},getUrlForSiteId(e){const t=U.stringify(Object.assign(Object.assign({},U.urlParsed.value),{},{segment:"",idSite:e})),i=U.stringify(Object.assign(Object.assign({},U.hashParsed.value),{},{segment:"",idSite:e}));return`?${t}#?${i}`},htmlEntities(e){return M.helper.htmlEntities(e)}}});yn.render=gn;var jn=yn;const wn={ref:"root",class:"quickAccessInside"},Sn=["title","placeholder"],Cn={class:"dropdown quickAccessDropdown"},kn={class:"no-result"},Dn=["onClick"],En=["onMouseenter","onClick"],Pn={class:"quickAccessMatomoSearch"},Tn=["onMouseenter","onClick"],Vn=["textContent"],xn={class:"quick-access-category helpCategory"},Nn=["href"];function Bn(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("focus-if"),s=Object(D["resolveDirective"])("tooltips"),l=Object(D["resolveDirective"])("focus-anywhere-but-here");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",wn,[Object(D["createElementVNode"])("span",{class:"icon-search",onMouseenter:t[0]||(t[0]=t=>e.searchActive=!0)},null,32),Object(D["withDirectives"])(Object(D["createElementVNode"])("input",{class:"quickAccessInput browser-default",onKeydown:t[1]||(t[1]=t=>e.onKeypress(t)),onFocus:t[2]||(t[2]=t=>e.searchActive=!0),"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchTerm=t),type:"text",tabindex:"5",title:e.quickAccessTitle,placeholder:e.translate("General_Search"),ref:"input"},null,40,Sn),[[D["vModelText"],e.searchTerm],[r,{focused:e.searchActive}],[s]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Cn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("ul",null,[Object(D["createElementVNode"])("li",kn,Object(D["toDisplayString"])(e.translate("General_SearchNoResults")),1)],512),[[D["vShow"],!(e.numMenuItems>0||e.sites.length)]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menuItems,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:t.title},[Object(D["createElementVNode"])("li",{class:"quick-access-category",onClick:i=>{e.searchTerm=t.title,e.searchMenu(e.searchTerm)}},Object(D["toDisplayString"])(t.title),9,Dn),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.items,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["result",{selected:t.menuIndex===e.searchIndex}]),onMouseenter:i=>e.searchIndex=t.menuIndex,onClick:i=>e.selectMenuItem(t.index),key:t.index},[Object(D["createElementVNode"])("a",null,Object(D["toDisplayString"])(t.name.trim()),1)],42,En))),128))]))),128)),Object(D["createElementVNode"])("ul",Pn,[Object(D["withDirectives"])(Object(D["createElementVNode"])("li",{class:"quick-access-category websiteCategory"},Object(D["toDisplayString"])(e.translate("SitesManager_Sites")),513),[[D["vShow"],e.hasSitesSelector&&e.sites.length||e.isLoading]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("li",{class:"no-result"},Object(D["toDisplayString"])(e.translate("MultiSites_LoadingWebsites")),513),[[D["vShow"],e.hasSitesSelector&&e.isLoading]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.sites,(t,i)=>Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["result",{selected:e.numMenuItems+i===e.searchIndex}]),onMouseenter:t=>e.searchIndex=e.numMenuItems+i,onClick:i=>e.selectSite(t.idsite),key:t.idsite},[Object(D["createElementVNode"])("a",{textContent:Object(D["toDisplayString"])(t.name)},null,8,Vn)],42,Tn)),[[D["vShow"],e.hasSitesSelector&&!e.isLoading]])),128))]),Object(D["createElementVNode"])("ul",null,[Object(D["createElementVNode"])("li",xn,Object(D["toDisplayString"])(e.translate("General_HelpResources")),1),Object(D["createElementVNode"])("li",{class:Object(D["normalizeClass"])([{selected:"help"===e.searchIndex},"quick-access-help"]),onMouseenter:t[4]||(t[4]=t=>e.searchIndex="help")},[Object(D["createElementVNode"])("a",{href:"https://matomo.org?mtm_campaign=App_Help&mtm_source=Matomo_App&mtm_keyword=QuickSearch&s="+encodeURIComponent(e.searchTerm),target:"_blank"},Object(D["toDisplayString"])(e.translate("CoreHome_SearchOnMatomo",e.searchTerm)),9,Nn)],34)])],512),[[D["vShow"],e.searchTerm&&e.searchActive]])])),[[l,{blur:e.onBlur}]])}const{ListingFormatter:In}=window;function Mn(e){const t=e.getBoundingClientRect(),i=window.$(window);return t.top>=0&&t.left>=0&&t.bottom<=i.height()&&t.right<=i.width()}function Fn(e){e&&e.scrollIntoView&&e.scrollIntoView()}var Ln=Object(D["defineComponent"])({name:"QuickAccess",directives:{FocusAnywhereButHere:tt,FocusIf:ot,Tooltips:st},watch:{searchActive(e){const t=this.$refs.root;if(!t||!t.parentElement)return;const i=t.parentElement.classList;i.toggle("active",e),i.toggle("expanded",e)}},mounted(){const e=this.$refs.root;e&&e.parentElement&&e.parentElement.classList.add("quick-access","piwikSelector"),M.helper.registerShortcut("f",a("CoreHome_ShortcutSearch"),e=>{if(e.altKey)return;e.preventDefault();const t=document.querySelector("nav .activateLeftMenu");t&&window.$(t).is(":visible")&&At(),Fn(this.$refs.root),this.activateSearch()})},data(){const e=!!document.querySelector(".segmentEditorPanel");return{menuItems:[],numMenuItems:0,searchActive:!1,searchTerm:"",searchIndex:0,menuIndexCounter:-1,topMenuItems:null,leftMenuItems:null,segmentItems:null,hasSegmentSelector:e,sites:[],isLoading:!1}},created(){this.searchMenu=Pe(this.searchMenu.bind(this))},computed:{hasSitesSelector(){return!!document.querySelector('.top_controls .siteSelector,.top_controls [vue-entry="CoreHome.SiteSelector"]')},quickAccessTitle(){const e=[a("CoreHome_MenuEntries")];return this.hasSegmentSelector&&e.push(a("CoreHome_Segments")),this.hasSitesSelector&&e.push(a("SitesManager_Sites")),a("CoreHome_QuickAccessTitle",In.formatAnd(e))}},emits:["itemSelected","blur"],methods:{onKeypress(e){const t=this.searchTerm&&this.searchActive,i=9===e.which,o=27===e.which;38===e.which?(this.highlightPreviousItem(),e.preventDefault()):40===e.which?(this.highlightNextItem(),e.preventDefault()):13===e.which?this.clickQuickAccessMenuItem():i&&t||o&&t?this.deactivateSearch():i?this.searchActive=!1:setTimeout(()=>{this.searchActive=!0,this.searchMenu(this.searchTerm)})},highlightPreviousItem(){this.searchIndex-1<0?this.searchIndex=0:this.searchIndex-=1,this.makeSureSelectedItemIsInViewport()},highlightNextItem(){const e=this.$refs.root.querySelectorAll("li.result").length;e<=this.searchIndex+1?this.searchIndex=e-1:this.searchIndex+=1,this.makeSureSelectedItemIsInViewport()},clickQuickAccessMenuItem(){const e=this.getCurrentlySelectedElement();e&&setTimeout(()=>{e.click(),this.$emit("itemSelected",e)},20)},deactivateSearch(){this.searchTerm="",this.searchActive=!1,this.$refs.input&&this.$refs.input.blur()},makeSureSelectedItemIsInViewport(){const e=this.getCurrentlySelectedElement();e&&!Mn(e)&&Fn(e)},getCurrentlySelectedElement(){const e=this.$refs.root.querySelectorAll("li.result");if(e&&e.length&&e.item(this.searchIndex))return e.item(this.searchIndex)},searchMenu(e){const t=e.toLowerCase();let i=-1;const o={},n=[],a=e=>{const t=Object.assign({},e);i+=1,t.menuIndex=i;const{category:a}=t;a in o||(n.push({title:a,items:[]}),o[a]=n.length-1);const r=o[a];n[r].items.push(t)};this.resetSearchIndex(),this.hasSitesSelector&&(this.isLoading=!0,Zo.searchSite(t).then(e=>{e&&(this.sites=e)}).finally(()=>{this.isLoading=!1}));const r=e=>-1!==e.name.toLowerCase().indexOf(t)||-1!==e.category.toLowerCase().indexOf(t);null===this.topMenuItems&&(this.topMenuItems=this.getTopMenuItems()),null===this.leftMenuItems&&(this.leftMenuItems=this.getLeftMenuItems()),null===this.segmentItems&&(this.segmentItems=this.getSegmentItems());const s=this.topMenuItems.filter(r),l=this.leftMenuItems.filter(r),c=this.segmentItems.filter(r);s.forEach(a),l.forEach(a),c.forEach(a),this.numMenuItems=s.length+l.length+c.length,this.menuItems=n},resetSearchIndex(){this.searchIndex=0,this.makeSureSelectedItemIsInViewport()},selectSite(e){this.deactivateSearch(),_t(),Zo.loadSite(e)},selectMenuItem(e){const t=document.querySelector(`[quick_access='${e}']`);if(t){this.deactivateSearch(),_t();const e=t.getAttribute("href");if(e&&e.length>10&&t&&t.click)try{t.click()}catch(i){window.$(t).click()}else window.$(t).click()}},onBlur(){this.searchActive=!1,this.$emit("blur")},activateSearch(){this.searchActive=!0},getTopMenuItems(){const e=a("CoreHome_Menu"),t=[];return document.querySelectorAll("nav .sidenav li > a, nav .sidenav li > div > a").forEach(i=>{var o;let n=null===(o=i.textContent)||void 0===o?void 0:o.trim();var a;(!n||null!=i.parentElement&&null!=i.parentElement.tagName&&"DIV"===i.parentElement.tagName)&&(n=null===(a=i.getAttribute("title"))||void 0===a?void 0:a.trim());n&&(t.push({name:n,index:this.menuIndexCounter+=1,category:e}),i.setAttribute("quick_access",""+this.menuIndexCounter))}),t},getLeftMenuItems(){const e=[];return document.querySelectorAll("#secondNavBar .menuTab").forEach(t=>{var i;const o=window.$(t).find("> .item");let n=(null===(i=o[0])||void 0===i?void 0:i.innerText.trim())||"";n&&-1!==n.lastIndexOf("\n")&&(n=n.slice(0,n.lastIndexOf("\n")).trim()),window.$(t).find("li .item").each((t,i)=>{var o;const a=null===(o=i.textContent)||void 0===o?void 0:o.trim();a&&(e.push({name:a,category:n,index:this.menuIndexCounter+=1}),i.setAttribute("quick_access",""+this.menuIndexCounter))})}),e},getSegmentItems(){if(!this.hasSegmentSelector)return[];const e=a("CoreHome_Segments"),t=[];return document.querySelectorAll(".segmentList [data-idsegment]").forEach(i=>{var o;const n=null===(o=i.querySelector(".segname"))||void 0===o||null===(o=o.textContent)||void 0===o?void 0:o.trim();n&&(t.push({name:n,category:e,index:this.menuIndexCounter+=1}),i.setAttribute("quick_access",""+this.menuIndexCounter))}),t}}});Ln.render=Bn;var Rn=Ln;const An={class:"fieldArray form-group"},_n={key:0,class:"fieldUiControl"},Hn=["onClick","title"];function $n(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",An,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.modelValue,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["fieldArrayTable multiple valign-wrapper",{["fieldArrayTable"+i]:!0}]),key:i},[e.field.uiControl?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",_n,[Object(D["createVNode"])(r,{"full-width":!0,"model-value":t,options:e.field.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(t,i),"model-modifiers":e.field.modelModifiers,placeholder:" ",uicontrol:e.field.uiControl,title:e.field.title,name:`${e.name}-${i}`,id:`${e.id}-${i}`,"template-file":e.field.templateFile,component:e.field.component},null,8,["model-value","options","onUpdate:modelValue","model-modifiers","uicontrol","title","name","id","template-file","component"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",{onClick:t=>e.removeEntry(i),class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Hn),[[D["vShow"],i+1!==e.modelValue.length]])],2))),128))])}const Un=Ce("CorePluginsAdmin","Field");var qn=Object(D["defineComponent"])({props:{modelValue:Array,name:String,id:String,field:Object,rows:String},components:{Field:Un},emits:["update:modelValue"],watch:{modelValue(e){this.checkEmptyModelValue(e)}},mounted(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue(e){e&&e.length&&""===e.slice(-1)[0]||this.rows&&!((this.modelValue||[]).length-1&&this.modelValue){const t=this.modelValue.filter((t,i)=>i!==e);this.$emit("update:modelValue",t)}}}});qn.render=$n;var Wn=qn;const zn={class:"multiPairField form-group"},Gn={key:1,class:"fieldUiControl fieldUiControl2"},Kn={key:2,class:"fieldUiControl fieldUiControl3"},Yn={key:3,class:"fieldUiControl fieldUiControl4"},Qn=["onClick","title"];function Jn(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",zn,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.modelValue,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])(["multiPairFieldTable multiple valign-wrapper",{["multiPairFieldTable"+i]:!0,[`has${e.fieldCount}Fields`]:!0}]),key:i},[e.field1?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["fieldUiControl fieldUiControl1",{hasMultiFields:e.field1.type&&e.field2.type}])},[Object(D["createVNode"])(r,{"full-width":!0,"model-value":t[e.field1.key],options:e.field1.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field1.key,t),"model-modifiers":e.field1.modelModifiers,placeholder:" ",uicontrol:e.field1.uiControl,name:`${e.name}-p1-${i}`,id:`${e.id}-p1-${i}`,title:e.field1.title,"template-file":e.field1.templateFile,component:e.field1.component},null,8,["model-value","options","onUpdate:modelValue","model-modifiers","uicontrol","name","id","title","template-file","component"])],2)):Object(D["createCommentVNode"])("",!0),e.field2?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Gn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field2.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field2.key,t),"model-value":t[e.field2.key],"model-modifiers":e.field2.modelModifiers,placeholder:" ",uicontrol:e.field2.uiControl,name:`${e.name}-p2-${i}`,id:`${e.id}-p2-${i}`,title:e.field2.title,"template-file":e.field2.templateFile,component:e.field2.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),e.field3?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Kn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field3.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field3.key,t),"model-value":t[e.field3.key],"model-modifiers":e.field3.modelModifiers,placeholder:" ",uicontrol:e.field3.uiControl,name:`${e.name}-p3-${i}`,id:`${e.id}-p3-${i}`,title:e.field3.title,"template-file":e.field3.templateFile,component:e.field3.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),e.field4?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Yn,[Object(D["createVNode"])(r,{"full-width":!0,options:e.field4.availableValues,"onUpdate:modelValue":t=>e.onEntryChange(i,e.field4.key,t),"model-value":t[e.field4.key],"model-modifiers":e.field4.modelModifiers,placeholder:" ",uicontrol:e.field4.uiControl,name:`${e.name}-p4-${i}`,id:`${e.id}-p4-${i}`,title:e.field4.title,"template-file":e.field4.templateFile,component:e.field4.component},null,8,["options","onUpdate:modelValue","model-value","model-modifiers","uicontrol","name","id","title","template-file","component"])])):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",{onClick:t=>e.removeEntry(i),class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Qn),[[D["vShow"],i+1!==e.modelValue.length]])],2))),128))])}const Xn=Ce("CorePluginsAdmin","Field");var Zn=Object(D["defineComponent"])({props:{modelValue:Array,name:String,id:String,field1:Object,field2:Object,field3:Object,field4:Object,rows:Number},components:{Field:Xn},computed:{fieldCount(){return this.field1&&this.field2&&this.field3&&this.field4?4:this.field1&&this.field2&&this.field3?3:this.field1&&this.field2?2:this.field1?1:0}},emits:["update:modelValue"],watch:{modelValue(e){this.checkEmptyModelValue(e)}},mounted(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue(e){e&&e.length&&!this.isEmptyValue(e.slice(-1)[0])||this.rows&&!(this.modelValue.length-1&&this.modelValue){const t=this.modelValue.filter((t,i)=>i!==e);this.$emit("update:modelValue",t)}},isEmptyValue(e){const{fieldCount:t}=this;if(4===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key]&&!e[this.field4.key])return!1}else if(3===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key])return!1}else if(2===t){if(!e[this.field1.key]&&!e[this.field2.key])return!1}else if(1===t&&!e[this.field1.key])return!1;return!0},makeEmptyValue(){const e={};return this.field1&&this.field1.key&&(e[this.field1.key]=""),this.field2&&this.field2.key&&(e[this.field2.key]=""),this.field3&&this.field3.key&&(e[this.field3.key]=""),this.field4&&this.field4.key&&(e[this.field4.key]=""),e}}});Zn.render=Jn;var ea=Zn;const ta=["disabled"],ia=Object(D["createElementVNode"])("span",{class:"icon-chevron-left"},null,-1),oa=[ia],na=["title"],aa=Object(D["createElementVNode"])("span",{class:"icon icon-calendar"},null,-1),ra={class:"flex"},sa={key:0,id:"ajaxLoadingCalendar"},la={class:"loadingSegment"},ca=["disabled"],da=Object(D["createElementVNode"])("span",{class:"icon-chevron-right"},null,-1),ua=[da];function ma(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("PeriodSelectorOptionsColumn"),s=Object(D["resolveComponent"])("PeriodSelectorCalendarColumn"),l=Object(D["resolveComponent"])("ActivityIndicator"),c=Object(D["resolveDirective"])("tooltips"),d=Object(D["resolveDirective"])("expand-on-click");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{ref:"root",class:Object(D["normalizeClass"])(["periodSelector piwikSelector",{"periodSelector-withPrevNext":e.canShowMovePeriod}])},[e.canShowMovePeriod?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:0,class:"move-period move-period-prev",onClick:t[0]||(t[0]=t=>e.movePeriod(-1)),disabled:e.isPeriodMoveDisabled(-1)},oa,8,ta)):Object(D["createCommentVNode"])("",!0),Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{ref:"title",id:"date",class:"title",tabindex:"4",title:e.translate("General_ChooseDate",e.currentlyViewingText)},[aa,Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.currentlyViewingText),1)],8,na)),[[c]]),Object(D["createElementVNode"])("div",{id:"periodMore",class:Object(D["normalizeClass"])(["dropdown","range"===e.selectedPeriod?"dual-calendar":"single-calendar"])},[Object(D["createElementVNode"])("div",ra,[Object(D["createVNode"])(r,{"ui-selected-period":e.selectedPeriod,"periods-filtered":e.periodsFiltered,"ui-selection":e.uiSelection,"applied-period":e.committedPeriod,"active-preset-id":e.activePresetId,"min-allowed-date":e.minAllowedDate,"max-allowed-date":e.maxAllowedDate,"onUpdate:uiSelectedPeriod":t[1]||(t[1]=t=>e.selectedPeriod=t),"onUpdate:activePresetId":t[2]||(t[2]=t=>e.activePresetId=t),onPeriodSelect:t[3]||(t[3]=t=>e.onPeriodOptionSelected(t)),onPeriodDblclick:t[4]||(t[4]=t=>e.onPeriodOptionDblClick(t)),onPresetSelect:t[5]||(t[5]=t=>e.onPresetDateRangeSelected(t))},null,8,["ui-selected-period","periods-filtered","ui-selection","applied-period","active-preset-id","min-allowed-date","max-allowed-date"]),Object(D["createVNode"])(s,{"ui-selection":e.uiSelection,"calendar-viewport":e.calendarViewport,"display-range-start-date":e.displayRangeStartDate,"display-range-end-date":e.displayRangeEndDate,"single-calendar-period":e.singleCalendarPeriod,"single-calendar-selected-date":e.singleCalendarSelectedDate,"is-comparison-enabled":e.isComparisonEnabled,"is-comparing":e.isComparing,"compare-period-type":e.comparePeriodType,"compare-start-date":e.compareStartDate,"compare-end-date":e.compareEndDate,"compare-period-dropdown-options":e.comparePeriodDropdownOptions,"is-apply-enabled":e.isApplyEnabled(),onRangeChange:t[6]||(t[6]=t=>e.onRangeChange(t.start,t.end)),onSingleDateSelect:t[7]||(t[7]=t=>e.onDatePickerSelected(t)),onApplyClick:t[8]||(t[8]=t=>e.onApplyClicked()),onRangePresetDateCellClickCapture:t[9]||(t[9]=t=>e.onRangePresetDateCellClickCapture(t)),"onUpdate:isComparing":t[10]||(t[10]=t=>e.isComparing=t),"onUpdate:comparePeriodType":t[11]||(t[11]=t=>e.comparePeriodType=t),"onUpdate:compareStartDate":t[12]||(t[12]=t=>e.compareStartDate=t),"onUpdate:compareEndDate":t[13]||(t[13]=t=>e.compareEndDate=t)},null,8,["ui-selection","calendar-viewport","display-range-start-date","display-range-end-date","single-calendar-period","single-calendar-selected-date","is-comparison-enabled","is-comparing","compare-period-type","compare-start-date","compare-end-date","compare-period-dropdown-options","is-apply-enabled"])]),e.isLoadingNewPage?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",sa,[Object(D["createVNode"])(l,{loading:!0}),Object(D["createElementVNode"])("div",la,Object(D["toDisplayString"])(e.translate("SegmentEditor_LoadingSegmentedDataMayTakeSomeTime")),1)])):Object(D["createCommentVNode"])("",!0)],2),e.canShowMovePeriod?(Object(D["openBlock"])(),Object(D["createElementBlock"])("button",{key:1,class:"move-period move-period-next",onClick:t[14]||(t[14]=t=>e.movePeriod(1)),disabled:e.isPeriodMoveDisabled(1)},ua,8,ca)):Object(D["createCommentVNode"])("",!0)],2)),[[d,{expander:"title",onExpand:e.onExpand,onClosed:e.onClosed}]])} /*! * Matomo - free/libre analytics platform * @@ -266,13 +266,13 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const Ea={today:"day",yesterday:"day",last7days:"range",last30days:"range",last90days:"range",lastWeekMonSun:"week",lastMonth:"month",lastQuarter:"range",lastYear:"year",thisWeekMonToday:"week",thisMonth:"month",thisQuarter:"range",thisYear:"year"},Pa=[{id:"today",labelKey:"CoreHome_PresetDateToday"},{id:"yesterday",labelKey:"CoreHome_PresetDateYesterday"},{id:"last7days",labelKey:"CoreHome_PresetDateLast7Days"},{id:"last30days",labelKey:"CoreHome_PresetDateLast30Days"},{id:"last90days",labelKey:"CoreHome_PresetDateLast90Days"},{id:"lastWeekMonSun",labelKey:"CoreHome_PresetDateLastWeekMonSun"},{id:"lastMonth",labelKey:"CoreHome_PresetDateLastMonth"},{id:"lastQuarter",labelKey:"CoreHome_PresetDateLastQuarter"},{id:"lastYear",labelKey:"CoreHome_PresetDateLastYear"},{id:"thisWeekMonToday",labelKey:"CoreHome_PresetDateThisWeekMonToday"},{id:"thisMonth",labelKey:"CoreHome_PresetDateThisMonth"},{id:"thisQuarter",labelKey:"CoreHome_PresetDateThisQuarter"},{id:"thisYear",labelKey:"CoreHome_PresetDateThisYear"}],Ta={"day|today":"today","day|yesterday":"yesterday","range|last7":"last7days","range|last30":"last30days","range|last90":"last90days","week|lastweek":"lastWeekMonSun","month|lastmonth":"lastMonth","year|lastyear":"lastYear","week|today":"thisWeekMonToday","month|today":"thisMonth","year|today":"thisYear"};function Va(e,t){return Ta[`${e}|${t}`]||null}function xa(e){return new Date(e.getTime())}function Na(e,t){const i=xa(e);return i.setDate(i.getDate()+t),i}function Ba(e){return new Date(e.getFullYear(),e.getMonth(),1)}function Ma(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function Ia(e){const t=(e.getDay()+6)%7;return Na(e,-t)}function Fa(e){const t=e.getMonth(),i=t-t%3;return new Date(e.getFullYear(),i,1)}function La(e,t){return`${d(e)},${d(t)}`}function Ra(e,t,i){return ei?new Date(i.getTime()):e}function Aa(e,t){const i=xa(t);switch(e){case"today":return{id:e,period:"day",date:"today",startDate:i,endDate:i};case"yesterday":{const t=Na(i,-1);return{id:e,period:"day",date:"yesterday",startDate:t,endDate:t}}case"last7days":{const t=Na(i,-6);return{id:e,period:"range",date:"last7",startDate:t,endDate:i}}case"last30days":{const t=Na(i,-29);return{id:e,period:"range",date:"last30",startDate:t,endDate:i}}case"last90days":{const t=Na(i,-89);return{id:e,period:"range",date:"last90",startDate:t,endDate:i}}case"lastWeekMonSun":{const t=Ia(i),o=Na(t,-7),n=Na(o,6);return{id:e,period:"week",date:"lastweek",startDate:o,endDate:n}}case"lastMonth":{const t=new Date(i.getFullYear(),i.getMonth()-1,1),o=Ba(t),n=Ma(t);return{id:e,period:"month",date:"lastmonth",startDate:o,endDate:n}}case"lastQuarter":{const t=Fa(i),o=Na(t,-1),n=Fa(o);return{id:e,period:"range",date:La(n,o),startDate:n,endDate:o}}case"lastYear":{const t=i.getFullYear()-1,o=new Date(t,0,1),n=new Date(t,11,31);return{id:e,period:"year",date:"lastyear",startDate:o,endDate:n}}case"thisWeekMonToday":{const t=Ia(i);return{id:e,period:"week",date:"today",startDate:t,endDate:i}}case"thisMonth":{const t=Ba(i);return{id:e,period:"month",date:"today",startDate:t,endDate:i}}case"thisQuarter":{const t=Fa(i);return{id:e,period:"range",date:La(t,i),startDate:t,endDate:i}}case"thisYear":{const t=new Date(i.getFullYear(),0,1);return{id:e,period:"year",date:"today",startDate:t,endDate:i}}default:throw new Error("Unknown preset date range: "+e)}}const _a=[["today","yesterday"],["last7days","last30days","last90days"],["lastWeekMonSun","lastMonth","lastQuarter","lastYear"],["thisWeekMonToday","thisMonth","thisQuarter","thisYear"]];let Ha=0;var $a=Object(D["defineComponent"])({props:{modelValue:{type:String,default:null},checkedPresetId:{type:String,default:null},minDate:{type:Date,required:!0},maxDate:{type:Date,required:!0},today:{type:Date,default:()=>u()},allowedPeriods:{type:Array,required:!0}},data(){const e="preset-date-range-"+Ha;return Ha+=1,{presetInputName:e}},emits:["update:modelValue","select"],computed:{presetDateRanges(){return Pa.filter(e=>this.allowedPeriods.includes(Ea[e.id]))},groupedPresetDateRanges(){const e=new Map(this.presetDateRanges.map(e=>[e.id,e]));return _a.map(t=>t.map(t=>e.get(t)).filter(e=>!!e)).filter(e=>e.length)}},methods:{translate:a,handlePresetSelected(e){const t=Aa(e,this.today);this.$emit("update:modelValue",e),this.$emit("select",Object.assign(Object.assign({},t),{},{startDate:Ra(t.startDate,this.minDate,this.maxDate),endDate:Ra(t.endDate,this.minDate,this.maxDate)}))}}});$a.render=Da;var Ua=$a;const qa=["aria-label"],Wa=["title","onDblclick"],za=["name","id","checked","onChange","onKeydown"],Ga={class:"period-option-text"};function Ka(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"periodOptions",role:"radiogroup","aria-label":e.translate("General_ChoosePeriod")},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.displayPeriods,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("p",{key:t},[Object(D["createElementVNode"])("label",{class:Object(D["normalizeClass"])(["period-option-label",{"selected-period-label":e.checkedPeriodId===t}]),title:t===e.activeDatePeriod?"":e.translate("General_DoubleClickToChangePeriod"),onDblclick:i=>e.handlePeriodDoubleClick(t)},[Object(D["createElementVNode"])("input",{class:"period-option-input",type:"radio",name:e.periodInputName,id:"period_id_"+t,checked:e.checkedPeriodId===t,onChange:i=>e.handlePeriodSelected(t),onKeydown:Object(D["withKeys"])(Object(D["withModifiers"])(i=>e.handlePeriodEnter(t),["prevent"]),["enter"])},null,40,za),Object(D["createElementVNode"])("span",Ga,Object(D["toDisplayString"])(e.getPeriodDisplayText(t)),1)],42,Wa)]))),128))],8,qa)}let Ya=0;var Qa=Object(D["defineComponent"])({name:"PeriodOptions",props:{modelValue:{type:String,default:null},periods:{type:Array,required:!0},checkedPeriodId:{type:String,default:null},activeDatePeriod:{type:String,required:!0}},data(){const e="period-"+Ya;return Ya+=1,{periodInputName:e}},emits:["update:modelValue","select","dblclick"],computed:{displayPeriods(){return this.periods.includes("range")?["range"].concat(this.periods.filter(e=>"range"!==e)):this.periods}},methods:{translate:a,getPeriodDisplayText(e){const t="range"===e?`${a("General_Custom")} ${a("General_DateRangeInPeriodList")}`:c.get(e).getDisplayText();return t.charAt(0).toUpperCase()+t.slice(1)},handlePeriodSelected(e){const t={period:e};this.$emit("update:modelValue",e),this.$emit("select",t)},handlePeriodEnter(e){this.handlePeriodSelected(e)},handlePeriodDoubleClick(e){const t={period:e};this.$emit("dblclick",t)}}});Qa.render=Ka;var Ja=Qa,Xa=Object(D["defineComponent"])({name:"PeriodSelectorOptionsColumn",components:{PresetDateRanges:Ua,PeriodOptions:Ja},props:{uiSelectedPeriod:{type:String,required:!0},periodsFiltered:{type:Array,required:!0},uiSelection:{type:Object,required:!0},appliedPeriod:{type:String,required:!0},activePresetId:{type:String,default:null},minAllowedDate:{type:Date,required:!0},maxAllowedDate:{type:Date,required:!0}},emits:["update:uiSelectedPeriod","update:activePresetId","period-select","period-dblclick","preset-select"],methods:{translate:a}});Xa.render=ja;var Za=Xa;const er={class:"period-selector-calendar-column"},tr=["aria-disabled"],ir=["aria-disabled"],or={class:"apply-button-container"},nr=["disabled","value"];function ar(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DateRangePicker"),s=Object(D["resolveComponent"])("PeriodDatePicker"),l=Object(D["resolveComponent"])("PeriodSelectorCompareControls");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",er,[Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])({"calendar-disabled":"preset"===e.uiSelection.type}),"aria-disabled":"preset"===e.uiSelection.type?"true":"false",onClickCapture:t[2]||(t[2]=t=>e.$emit("range-preset-date-cell-click-capture",t))},[Object(D["withDirectives"])(Object(D["createVNode"])(r,{class:"period-range","start-date":e.displayRangeStartDate,"end-date":e.displayRangeEndDate,disabled:"preset"===e.uiSelection.type,onRangeChange:t[0]||(t[0]=t=>e.$emit("range-change",t)),onSubmit:t[1]||(t[1]=t=>e.$emit("apply-click"))},null,8,["start-date","end-date","disabled"]),[[D["vShow"],"range"===e.calendarViewport]])],42,tr),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])(["period-date",{"calendar-disabled":"preset"===e.uiSelection.type}]),"aria-disabled":"preset"===e.uiSelection.type?"true":"false"},[Object(D["createVNode"])(s,{id:"datepicker",period:e.singleCalendarPeriod,date:e.singleCalendarSelectedDate,disabled:"preset"===e.uiSelection.type,onSelect:t[3]||(t[3]=t=>e.$emit("single-date-select",t.date))},null,8,["period","date","disabled"])],10,ir),[[D["vShow"],"single"===e.calendarViewport]]),Object(D["createVNode"])(l,{"is-comparison-enabled":e.isComparisonEnabled,"is-comparing":e.isComparing,"compare-period-type":e.comparePeriodType,"compare-start-date":e.compareStartDate,"compare-end-date":e.compareEndDate,"compare-period-dropdown-options":e.comparePeriodDropdownOptions,"onUpdate:isComparing":t[4]||(t[4]=t=>e.$emit("update:isComparing",t)),"onUpdate:comparePeriodType":t[5]||(t[5]=t=>e.$emit("update:comparePeriodType",t)),"onUpdate:compareStartDate":t[6]||(t[6]=t=>e.$emit("update:compareStartDate",t)),"onUpdate:compareEndDate":t[7]||(t[7]=t=>e.$emit("update:compareEndDate",t))},null,8,["is-comparison-enabled","is-comparing","compare-period-type","compare-start-date","compare-end-date","compare-period-dropdown-options"]),Object(D["createElementVNode"])("div",or,[Object(D["createElementVNode"])("input",{type:"submit",id:"calendarApply",class:"btn",onClick:t[8]||(t[8]=t=>e.$emit("apply-click")),disabled:!e.isApplyEnabled,value:e.translate("General_Apply")},null,8,nr)])])}const rr={key:0,class:"compare-checkbox"},sr={class:"compare-checkbox-label"},lr=["checked"],cr={class:"compare-checkbox-text"},dr={id:"comparePeriodToDropdown"},ur={key:1,class:"compare-date-range"},mr={id:"comparePeriodStartDate"},pr=Object(D["createElementVNode"])("span",{class:"compare-dates-separator"},null,-1),hr={id:"comparePeriodEndDate"};function gr(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])(D["Fragment"],null,[e.isComparisonEnabled?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",rr,[Object(D["createElementVNode"])("label",sr,[Object(D["createElementVNode"])("input",{class:"compare-checkbox-input",id:"comparePeriodTo",type:"checkbox",checked:!!e.isComparing,onChange:t[0]||(t[0]=t=>e.onCompareToggle(t))},null,40,lr),Object(D["createElementVNode"])("span",cr,Object(D["toDisplayString"])(e.translate("General_CompareTo")),1)]),Object(D["createElementVNode"])("div",dr,[Object(D["createVNode"])(r,{"model-value":e.comparePeriodType,"onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("update:comparePeriodType",t)),style:Object(D["normalizeStyle"])({visibility:e.isComparing?"visible":"hidden"}),name:"comparePeriodToDropdown",uicontrol:"select",options:e.comparePeriodDropdownOptions,"full-width":!0,disabled:!e.isComparing},null,8,["model-value","style","options","disabled"])])])):Object(D["createCommentVNode"])("",!0),e.isComparing&&"custom"===e.comparePeriodType?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ur,[Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",mr,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{"model-value":e.compareStartDate,"onUpdate:modelValue":t[2]||(t[2]=t=>e.$emit("update:compareStartDate",t)),name:"comparePeriodStartDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_StartDate"),placeholder:"YYYY-MM-DD"},null,8,["model-value","title"])])]),pr,Object(D["createElementVNode"])("div",hr,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{"model-value":e.compareEndDate,"onUpdate:modelValue":t[3]||(t[3]=t=>e.$emit("update:compareEndDate",t)),name:"comparePeriodEndDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_EndDate"),placeholder:"YYYY-MM-DD"},null,8,["model-value","title"])])])])])):Object(D["createCommentVNode"])("",!0)],64)}const br=Ce("CorePluginsAdmin","Field");var fr=Object(D["defineComponent"])({name:"PeriodSelectorCompareControls",components:{Field:br},props:{isComparisonEnabled:{type:Boolean,required:!0},isComparing:{type:Boolean,default:null},comparePeriodType:{type:String,required:!0},compareStartDate:{type:String,required:!0},compareEndDate:{type:String,required:!0},comparePeriodDropdownOptions:{type:Array,required:!0}},emits:["update:isComparing","update:comparePeriodType","update:compareStartDate","update:compareEndDate"],methods:{translate:a,onCompareToggle(e){this.$emit("update:isComparing",e.target.checked)}}});fr.render=gr;var vr=fr,Or=Object(D["defineComponent"])({name:"PeriodSelectorCalendarColumn",components:{DateRangePicker:po,PeriodDatePicker:Co,PeriodSelectorCompareControls:vr},props:{uiSelection:{type:Object,required:!0},calendarViewport:{type:String,required:!0},displayRangeStartDate:{type:String,default:null},displayRangeEndDate:{type:String,default:null},singleCalendarPeriod:{type:String,required:!0},singleCalendarSelectedDate:{type:Date,default:null},isComparisonEnabled:{type:Boolean,required:!0},isComparing:{type:Boolean,default:null},comparePeriodType:{type:String,required:!0},compareStartDate:{type:String,required:!0},compareEndDate:{type:String,required:!0},comparePeriodDropdownOptions:{type:Array,required:!0},isApplyEnabled:{type:Boolean,required:!0}},emits:["range-change","single-date-select","apply-click","range-preset-date-cell-click-capture","update:isComparing","update:comparePeriodType","update:compareStartDate","update:compareEndDate"],methods:{translate:a}});Or.render=ar;var yr=Or; + */const Ea={today:"day",yesterday:"day",last7days:"range",last30days:"range",last90days:"range",lastWeekMonSun:"week",lastMonth:"month",lastQuarter:"range",lastYear:"year",thisWeekMonToday:"week",thisMonth:"month",thisQuarter:"range",thisYear:"year"},Pa=[{id:"today",labelKey:"CoreHome_PresetDateToday"},{id:"yesterday",labelKey:"CoreHome_PresetDateYesterday"},{id:"last7days",labelKey:"CoreHome_PresetDateLast7Days"},{id:"last30days",labelKey:"CoreHome_PresetDateLast30Days"},{id:"last90days",labelKey:"CoreHome_PresetDateLast90Days"},{id:"lastWeekMonSun",labelKey:"CoreHome_PresetDateLastWeekMonSun"},{id:"lastMonth",labelKey:"CoreHome_PresetDateLastMonth"},{id:"lastQuarter",labelKey:"CoreHome_PresetDateLastQuarter"},{id:"lastYear",labelKey:"CoreHome_PresetDateLastYear"},{id:"thisWeekMonToday",labelKey:"CoreHome_PresetDateThisWeekMonToday"},{id:"thisMonth",labelKey:"CoreHome_PresetDateThisMonth"},{id:"thisQuarter",labelKey:"CoreHome_PresetDateThisQuarter"},{id:"thisYear",labelKey:"CoreHome_PresetDateThisYear"}],Ta={"day|today":"today","day|yesterday":"yesterday","range|last7":"last7days","range|last30":"last30days","range|last90":"last90days","week|lastweek":"lastWeekMonSun","month|lastmonth":"lastMonth","year|lastyear":"lastYear","week|today":"thisWeekMonToday","month|today":"thisMonth","year|today":"thisYear"};function Va(e,t){return Ta[`${e}|${t}`]||null}function xa(e){return new Date(e.getTime())}function Na(e,t){const i=xa(e);return i.setDate(i.getDate()+t),i}function Ba(e){return new Date(e.getFullYear(),e.getMonth(),1)}function Ia(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function Ma(e){const t=(e.getDay()+6)%7;return Na(e,-t)}function Fa(e){const t=e.getMonth(),i=t-t%3;return new Date(e.getFullYear(),i,1)}function La(e,t){return`${d(e)},${d(t)}`}function Ra(e,t,i){return ei?new Date(i.getTime()):e}function Aa(e,t){const i=xa(t);switch(e){case"today":return{id:e,period:"day",date:"today",startDate:i,endDate:i};case"yesterday":{const t=Na(i,-1);return{id:e,period:"day",date:"yesterday",startDate:t,endDate:t}}case"last7days":{const t=Na(i,-6);return{id:e,period:"range",date:"last7",startDate:t,endDate:i}}case"last30days":{const t=Na(i,-29);return{id:e,period:"range",date:"last30",startDate:t,endDate:i}}case"last90days":{const t=Na(i,-89);return{id:e,period:"range",date:"last90",startDate:t,endDate:i}}case"lastWeekMonSun":{const t=Ma(i),o=Na(t,-7),n=Na(o,6);return{id:e,period:"week",date:"lastweek",startDate:o,endDate:n}}case"lastMonth":{const t=new Date(i.getFullYear(),i.getMonth()-1,1),o=Ba(t),n=Ia(t);return{id:e,period:"month",date:"lastmonth",startDate:o,endDate:n}}case"lastQuarter":{const t=Fa(i),o=Na(t,-1),n=Fa(o);return{id:e,period:"range",date:La(n,o),startDate:n,endDate:o}}case"lastYear":{const t=i.getFullYear()-1,o=new Date(t,0,1),n=new Date(t,11,31);return{id:e,period:"year",date:"lastyear",startDate:o,endDate:n}}case"thisWeekMonToday":{const t=Ma(i);return{id:e,period:"week",date:"today",startDate:t,endDate:i}}case"thisMonth":{const t=Ba(i);return{id:e,period:"month",date:"today",startDate:t,endDate:i}}case"thisQuarter":{const t=Fa(i);return{id:e,period:"range",date:La(t,i),startDate:t,endDate:i}}case"thisYear":{const t=new Date(i.getFullYear(),0,1);return{id:e,period:"year",date:"today",startDate:t,endDate:i}}default:throw new Error("Unknown preset date range: "+e)}}const _a=[["today","yesterday"],["last7days","last30days","last90days"],["lastWeekMonSun","lastMonth","lastQuarter","lastYear"],["thisWeekMonToday","thisMonth","thisQuarter","thisYear"]];let Ha=0;var $a=Object(D["defineComponent"])({props:{modelValue:{type:String,default:null},checkedPresetId:{type:String,default:null},minDate:{type:Date,required:!0},maxDate:{type:Date,required:!0},today:{type:Date,default:()=>u()},allowedPeriods:{type:Array,required:!0}},data(){const e="preset-date-range-"+Ha;return Ha+=1,{presetInputName:e}},emits:["update:modelValue","select"],computed:{presetDateRanges(){return Pa.filter(e=>this.allowedPeriods.includes(Ea[e.id]))},groupedPresetDateRanges(){const e=new Map(this.presetDateRanges.map(e=>[e.id,e]));return _a.map(t=>t.map(t=>e.get(t)).filter(e=>!!e)).filter(e=>e.length)}},methods:{translate:a,handlePresetSelected(e){const t=Aa(e,this.today);this.$emit("update:modelValue",e),this.$emit("select",Object.assign(Object.assign({},t),{},{startDate:Ra(t.startDate,this.minDate,this.maxDate),endDate:Ra(t.endDate,this.minDate,this.maxDate)}))}}});$a.render=Da;var Ua=$a;const qa=["aria-label"],Wa=["title","onDblclick"],za=["name","id","checked","onChange","onKeydown"],Ga={class:"period-option-text"};function Ka(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"periodOptions",role:"radiogroup","aria-label":e.translate("General_ChoosePeriod")},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.displayPeriods,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("p",{key:t},[Object(D["createElementVNode"])("label",{class:Object(D["normalizeClass"])(["period-option-label",{"selected-period-label":e.checkedPeriodId===t}]),title:t===e.activeDatePeriod?"":e.translate("General_DoubleClickToChangePeriod"),onDblclick:i=>e.handlePeriodDoubleClick(t)},[Object(D["createElementVNode"])("input",{class:"period-option-input",type:"radio",name:e.periodInputName,id:"period_id_"+t,checked:e.checkedPeriodId===t,onChange:i=>e.handlePeriodSelected(t),onKeydown:Object(D["withKeys"])(Object(D["withModifiers"])(i=>e.handlePeriodEnter(t),["prevent"]),["enter"])},null,40,za),Object(D["createElementVNode"])("span",Ga,Object(D["toDisplayString"])(e.getPeriodDisplayText(t)),1)],42,Wa)]))),128))],8,qa)}let Ya=0;var Qa=Object(D["defineComponent"])({name:"PeriodOptions",props:{modelValue:{type:String,default:null},periods:{type:Array,required:!0},checkedPeriodId:{type:String,default:null},activeDatePeriod:{type:String,required:!0}},data(){const e="period-"+Ya;return Ya+=1,{periodInputName:e}},emits:["update:modelValue","select","dblclick"],computed:{displayPeriods(){return this.periods.includes("range")?["range"].concat(this.periods.filter(e=>"range"!==e)):this.periods}},methods:{translate:a,getPeriodDisplayText(e){const t="range"===e?`${a("General_Custom")} ${a("General_DateRangeInPeriodList")}`:c.get(e).getDisplayText();return t.charAt(0).toUpperCase()+t.slice(1)},handlePeriodSelected(e){const t={period:e};this.$emit("update:modelValue",e),this.$emit("select",t)},handlePeriodEnter(e){this.handlePeriodSelected(e)},handlePeriodDoubleClick(e){const t={period:e};this.$emit("dblclick",t)}}});Qa.render=Ka;var Ja=Qa,Xa=Object(D["defineComponent"])({name:"PeriodSelectorOptionsColumn",components:{PresetDateRanges:Ua,PeriodOptions:Ja},props:{uiSelectedPeriod:{type:String,required:!0},periodsFiltered:{type:Array,required:!0},uiSelection:{type:Object,required:!0},appliedPeriod:{type:String,required:!0},activePresetId:{type:String,default:null},minAllowedDate:{type:Date,required:!0},maxAllowedDate:{type:Date,required:!0}},emits:["update:uiSelectedPeriod","update:activePresetId","period-select","period-dblclick","preset-select"],methods:{translate:a}});Xa.render=ja;var Za=Xa;const er={class:"period-selector-calendar-column"},tr=["aria-disabled"],ir=["aria-disabled"],or={class:"apply-button-container"},nr=["disabled","value"];function ar(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("DateRangePicker"),s=Object(D["resolveComponent"])("PeriodDatePicker"),l=Object(D["resolveComponent"])("PeriodSelectorCompareControls");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",er,[Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])({"calendar-disabled":"preset"===e.uiSelection.type}),"aria-disabled":"preset"===e.uiSelection.type?"true":"false",onClickCapture:t[2]||(t[2]=t=>e.$emit("range-preset-date-cell-click-capture",t))},[Object(D["withDirectives"])(Object(D["createVNode"])(r,{class:"period-range","start-date":e.displayRangeStartDate,"end-date":e.displayRangeEndDate,disabled:"preset"===e.uiSelection.type,onRangeChange:t[0]||(t[0]=t=>e.$emit("range-change",t)),onSubmit:t[1]||(t[1]=t=>e.$emit("apply-click"))},null,8,["start-date","end-date","disabled"]),[[D["vShow"],"range"===e.calendarViewport]])],42,tr),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",{class:Object(D["normalizeClass"])(["period-date",{"calendar-disabled":"preset"===e.uiSelection.type}]),"aria-disabled":"preset"===e.uiSelection.type?"true":"false"},[Object(D["createVNode"])(s,{id:"datepicker",period:e.singleCalendarPeriod,date:e.singleCalendarSelectedDate,disabled:"preset"===e.uiSelection.type,onSelect:t[3]||(t[3]=t=>e.$emit("single-date-select",t.date))},null,8,["period","date","disabled"])],10,ir),[[D["vShow"],"single"===e.calendarViewport]]),Object(D["createVNode"])(l,{"is-comparison-enabled":e.isComparisonEnabled,"is-comparing":e.isComparing,"compare-period-type":e.comparePeriodType,"compare-start-date":e.compareStartDate,"compare-end-date":e.compareEndDate,"compare-period-dropdown-options":e.comparePeriodDropdownOptions,"onUpdate:isComparing":t[4]||(t[4]=t=>e.$emit("update:isComparing",t)),"onUpdate:comparePeriodType":t[5]||(t[5]=t=>e.$emit("update:comparePeriodType",t)),"onUpdate:compareStartDate":t[6]||(t[6]=t=>e.$emit("update:compareStartDate",t)),"onUpdate:compareEndDate":t[7]||(t[7]=t=>e.$emit("update:compareEndDate",t))},null,8,["is-comparison-enabled","is-comparing","compare-period-type","compare-start-date","compare-end-date","compare-period-dropdown-options"]),Object(D["createElementVNode"])("div",or,[Object(D["createElementVNode"])("input",{type:"submit",id:"calendarApply",class:"btn",onClick:t[8]||(t[8]=t=>e.$emit("apply-click")),disabled:!e.isApplyEnabled,value:e.translate("General_Apply")},null,8,nr)])])}const rr={key:0,class:"compare-checkbox"},sr={class:"compare-checkbox-label"},lr=["checked"],cr={class:"compare-checkbox-text"},dr={id:"comparePeriodToDropdown"},ur={key:1,class:"compare-date-range"},mr={id:"comparePeriodStartDate"},pr=Object(D["createElementVNode"])("span",{class:"compare-dates-separator"},null,-1),hr={id:"comparePeriodEndDate"};function gr(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field");return Object(D["openBlock"])(),Object(D["createElementBlock"])(D["Fragment"],null,[e.isComparisonEnabled?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",rr,[Object(D["createElementVNode"])("label",sr,[Object(D["createElementVNode"])("input",{class:"compare-checkbox-input",id:"comparePeriodTo",type:"checkbox",checked:!!e.isComparing,onChange:t[0]||(t[0]=t=>e.onCompareToggle(t))},null,40,lr),Object(D["createElementVNode"])("span",cr,Object(D["toDisplayString"])(e.translate("General_CompareTo")),1)]),Object(D["createElementVNode"])("div",dr,[Object(D["createVNode"])(r,{"model-value":e.comparePeriodType,"onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("update:comparePeriodType",t)),style:Object(D["normalizeStyle"])({visibility:e.isComparing?"visible":"hidden"}),name:"comparePeriodToDropdown",uicontrol:"select",options:e.comparePeriodDropdownOptions,"full-width":!0,disabled:!e.isComparing},null,8,["model-value","style","options","disabled"])])])):Object(D["createCommentVNode"])("",!0),e.isComparing&&"custom"===e.comparePeriodType?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ur,[Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",mr,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{"model-value":e.compareStartDate,"onUpdate:modelValue":t[2]||(t[2]=t=>e.$emit("update:compareStartDate",t)),name:"comparePeriodStartDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_StartDate"),placeholder:"YYYY-MM-DD"},null,8,["model-value","title"])])]),pr,Object(D["createElementVNode"])("div",hr,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{"model-value":e.compareEndDate,"onUpdate:modelValue":t[3]||(t[3]=t=>e.$emit("update:compareEndDate",t)),name:"comparePeriodEndDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_EndDate"),placeholder:"YYYY-MM-DD"},null,8,["model-value","title"])])])])])):Object(D["createCommentVNode"])("",!0)],64)}const br=Ce("CorePluginsAdmin","Field");var fr=Object(D["defineComponent"])({name:"PeriodSelectorCompareControls",components:{Field:br},props:{isComparisonEnabled:{type:Boolean,required:!0},isComparing:{type:Boolean,default:null},comparePeriodType:{type:String,required:!0},compareStartDate:{type:String,required:!0},compareEndDate:{type:String,required:!0},comparePeriodDropdownOptions:{type:Array,required:!0}},emits:["update:isComparing","update:comparePeriodType","update:compareStartDate","update:compareEndDate"],methods:{translate:a,onCompareToggle(e){this.$emit("update:isComparing",e.target.checked)}}});fr.render=gr;var vr=fr,Or=Object(D["defineComponent"])({name:"PeriodSelectorCalendarColumn",components:{DateRangePicker:po,PeriodDatePicker:Co,PeriodSelectorCompareControls:vr},props:{uiSelection:{type:Object,required:!0},calendarViewport:{type:String,required:!0},displayRangeStartDate:{type:String,default:null},displayRangeEndDate:{type:String,default:null},singleCalendarPeriod:{type:String,required:!0},singleCalendarSelectedDate:{type:Date,default:null},isComparisonEnabled:{type:Boolean,required:!0},isComparing:{type:Boolean,default:null},comparePeriodType:{type:String,required:!0},compareStartDate:{type:String,required:!0},compareEndDate:{type:String,required:!0},comparePeriodDropdownOptions:{type:Array,required:!0},isApplyEnabled:{type:Boolean,required:!0}},emits:["range-change","single-date-select","apply-click","range-preset-date-cell-click-capture","update:isComparing","update:comparePeriodType","update:compareStartDate","update:compareEndDate"],methods:{translate:a}});Or.render=ar;var yr=Or; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const jr=["date","period","comparePeriods","comparePeriodType","compareDates","compareSegments"];function wr(e,t){return`${e}|${t}`}function Sr(e){const t={};return Object.keys(e).filter(e=>!jr.includes(e)).sort().forEach(i=>{t[i]=e[i]}),JSON.stringify(t)}function Cr(e,t,i,o,n){return!i&&e===o&&t===n}function kr(e,t,i,o){const n=!!i&&o===e,a=n&&i?Object.assign({},i):null;return{syncedUiSelection:a,lastKnownHashSelectionKey:e,lastKnownHashContextKey:t,nextHashUiSelection:null,nextHashSelectionKey:null,lastInteractionSource:null}}var Dr=Object(D["defineComponent"])({name:"PeriodSelector",props:{periods:Array},components:{PeriodSelectorOptionsColumn:Za,PeriodSelectorCalendarColumn:yr,ActivityIndicator:We},directives:{ExpandOnClick:yt,Tooltips:st},data(){const e=U.parsed.value.period,t=wo(e)?e:"day",i=vo(),o=Oo();return{uiSelection:{type:"period",id:e},lastInteractionSource:null,nextHashUiSelection:null,nextHashSelectionKey:null,lastKnownHashSelectionKey:null,lastKnownHashContextKey:null,minAllowedDate:i,maxAllowedDate:o,activePresetId:null,pendingPresetSelection:null,committedPeriod:e,committedAnchorDate:null,selectedPeriod:e,calendarViewport:e===yo?"range":"single",singleCalendarPeriod:t,singleCalendarSelectedDate:null,appliedRangeStartDate:null,appliedRangeEndDate:null,isRangeValid:null,isLoadingNewPage:!1,isComparing:null,comparePeriodType:"previousPeriod",compareStartDate:"",compareEndDate:"",compareAppliedSignature:""}},mounted(){I.on("hidePeriodSelector",()=>{window.$(this.$refs.root).parent("#periodString").hide()}),I.on("matomoPageChange",()=>{window.$(this.$refs.root).parent("#periodString").show()}),window.initTopControls(),this.handleZIndexPositionRelativeCompareDropdownIssue()},computed:{matomoParsed(){return U.parsed.value},isComparingStoreValue(){return Mi.isComparingPeriods()},periodComparisonsStoreValue(){return Mi.getPeriodComparisons()},comparePeriodDropdownOptions(){return fo},currentlyViewingText(){let e;if("range"===this.committedPeriod){if(!this.appliedRangeStartDate||!this.appliedRangeEndDate)return a("General_Error");e=`${this.appliedRangeStartDate},${this.appliedRangeEndDate}`}else{if(!this.committedAnchorDate)return a("General_Error");e=d(this.committedAnchorDate)}try{return c.parse(this.committedPeriod,e).getPrettyString()}catch(t){return a("General_Error")}},isComparisonEnabled(){return Mi.isComparisonEnabled()},periodsFiltered(){return(this.periods||[]).filter(e=>c.isRecognizedPeriod(e))},selectedComparisonParams(){if(!this.isComparing)return{};if("custom"===this.comparePeriodType)return{comparePeriods:["range"],comparePeriodType:"custom",compareDates:[`${this.compareStartDate},${this.compareEndDate}`]};if("previousPeriod"===this.comparePeriodType)return{comparePeriods:[this.selectedPeriod],comparePeriodType:"previousPeriod",compareDates:[this.previousPeriodDateToSelectedPeriod]};if("previousYear"===this.comparePeriodType){const e="range"===this.selectedPeriod?`${this.appliedRangeStartDate},${this.appliedRangeEndDate}`:d(this.committedAnchorDate),t=c.parse(this.selectedPeriod,e).getDateRange();return t[0].setFullYear(t[0].getFullYear()-1),t[1].setFullYear(t[1].getFullYear()-1),"range"===this.selectedPeriod?{comparePeriods:["range"],comparePeriodType:"previousYear",compareDates:[`${d(t[0])},${d(t[1])}`]}:{comparePeriods:[this.selectedPeriod],comparePeriodType:"previousYear",compareDates:[d(t[0])]}}return console.warn("Unknown compare period type: "+this.comparePeriodType),{}},previousPeriodDateToSelectedPeriod(){if("range"===this.selectedPeriod){const e=m(this.appliedRangeStartDate),t=m(this.appliedRangeEndDate),i=k.getLastNRange("day",2,e).startDate,o=Math.floor((t.valueOf()-e.valueOf())/864e5),n=k.getLastNRange("day",1+o,i);return`${d(n.startDate)},${d(n.endDate)}`}const e=k.getLastNRange(this.selectedPeriod,2,this.committedAnchorDate).startDate;return d(e)},selectedDateString(){if("range"===this.selectedPeriod){const e=this.appliedRangeStartDate,t=this.appliedRangeEndDate,i=m(e),o=m(t);return!jo(i)||!jo(o)||i>o?(window.$("#alert").find("h2").text(a("General_InvalidDateRange")),I.helper.modalConfirm("#alert",{}),null):`${e},${t}`}return d(this.committedAnchorDate)},isErrorDisplayed(){return this.currentlyViewingText===a("General_Error")},isRangeSelection(){return"range"===this.committedPeriod},canShowMovePeriod(){return!this.isRangeSelection&&!this.isErrorDisplayed},compareCurrentSignature(){return JSON.stringify({isComparing:!!this.isComparing,comparePeriodType:this.comparePeriodType||"",compareStartDate:this.compareStartDate||"",compareEndDate:this.compareEndDate||""})},isCompareDirty(){return this.compareCurrentSignature!==this.compareAppliedSignature},hasPendingNonRangePeriodChange(){return"period"===this.uiSelection.type&&"period"===this.lastInteractionSource&&this.selectedPeriod!==yo&&this.selectedPeriod!==this.committedPeriod},isRangePresetSelection(){return"preset"===this.uiSelection.type&&this.selectedPeriod===yo},displayRangeStartDate(){return this.isRangePresetSelection&&this.pendingPresetSelection?d(this.pendingPresetSelection.startDate):this.appliedRangeStartDate},displayRangeEndDate(){return this.isRangePresetSelection&&this.pendingPresetSelection?d(this.pendingPresetSelection.endDate):this.appliedRangeEndDate}},watch:{isComparingStoreValue:{immediate:!0,handler(e){this.isComparing=e}},matomoParsed:{immediate:!0,handler(){this.updateSelectedValuesFromHash()}},periodComparisonsStoreValue:{immediate:!0,handler(){this.updateComparisonValuesFromStore(),this.compareAppliedSignature=this.compareCurrentSignature}}},methods:{onExpand(e){if(ga(e)){const e=this.$refs.root,t="preset"===this.uiSelection.type?"#preset_date_"+this.uiSelection.id:"#period_id_"+this.uiSelection.id,i=e.querySelector(t)||e.querySelector("#preset_date_today");i instanceof HTMLElement&&i.focus()}},onClosed(e){ga(e)&&window.$(this.$refs.title).focus()},handleZIndexPositionRelativeCompareDropdownIssue(){const e=window.$(this.$refs.root);e.on("focus","#comparePeriodToDropdown .select-dropdown",()=>{e.addClass("compare-dropdown-open")}).on("blur","#comparePeriodToDropdown .select-dropdown",()=>{e.removeClass("compare-dropdown-open")})},setUiSelection(e,t){this.uiSelection=e,this.lastInteractionSource=t},clearPresetSelection(){this.activePresetId=null,this.pendingPresetSelection=null},setPendingPeriodAndDate(e,t){this.committedPeriod=e,this.selectedPeriod=e,this.committedAnchorDate=t,this.setRangeStartEndFromPeriod(e,d(t)),wo(e)&&(this.singleCalendarPeriod=e,this.singleCalendarSelectedDate=t)},setPiwikPeriodAndDate(e,t){this.setPendingPeriodAndDate(e,t),this.setUiSelection({type:"period",id:e},"period");const i=d(t);this.clearPresetSelection(),this.commitSelectionToUrl(i,this.selectedPeriod)},commitSelectionToUrl(e,t){this.nextHashUiSelection=Object.assign({},this.uiSelection),this.nextHashSelectionKey=wr(t,e),this.compareAppliedSignature=this.compareCurrentSignature,this.propagateNewUrlParams(e,t),window.initTopControls()},onPeriodOptionSelected(e){if(this.setUiSelection({type:"period",id:e.period},"period"),this.selectedPeriod=e.period,this.clearPresetSelection(),e.period===yo)return this.calendarViewport="range",void(this.isRangeValid=!0);this.calendarViewport="single",wo(e.period)&&(this.singleCalendarPeriod=e.period),this.singleCalendarSelectedDate=e.period===this.committedPeriod?this.committedAnchorDate:null},onPeriodOptionDblClick(e){this.onPeriodOptionSelected(e),e.period!==yo&&e.period!==this.committedPeriod&&this.committedAnchorDate&&this.setPiwikPeriodAndDate(e.period,this.committedAnchorDate)},canInteractWithSingleCalendar(){return"single"===this.calendarViewport&&"period"===this.uiSelection.type&&this.selectedPeriod!==yo},onDatePickerSelected(e){this.canInteractWithSingleCalendar()&&(this.setUiSelection({type:"period",id:this.selectedPeriod},"calendar"),this.setPendingPeriodAndDate(this.selectedPeriod,e),this.clearPresetSelection(),this.commitSelectionToUrl(d(e),this.selectedPeriod))},onPresetDateRangeSelected(e){this.periodsFiltered.includes(e.period)&&(this.setUiSelection({type:"preset",id:e.id},"preset"),this.activePresetId=e.id,this.selectedPeriod=e.period,this.isRangeValid=!0,this.pendingPresetSelection=e,e.period!==yo?(this.calendarViewport="single",this.singleCalendarSelectedDate=e.startDate,wo(e.period)&&(this.singleCalendarPeriod=e.period)):this.calendarViewport="range")},propagateNewUrlParams(e,t){const i=this.selectedComparisonParams;let o;I.helper.isReportingPage()?(this.closePeriodSelector(),o=U.hashParsed.value):(this.isLoadingNewPage=!0,o=U.parsed.value),U.updateLocation(Object.assign(Object.assign({},ba(o)),{},{date:e,period:t},i))},hasPendingPresetSelectionOwnedByUi(){return!!this.pendingPresetSelection&&"preset"===this.uiSelection.type&&this.pendingPresetSelection.id===this.uiSelection.id},shouldCloseSelectorWithoutApplying(){return"preset"===this.uiSelection.type&&this.selectedPeriod!==yo},hasCommittedRangeBounds(){return!!this.appliedRangeStartDate&&!!this.appliedRangeEndDate},applyPendingPresetSelection(){if(!this.hasPendingPresetSelectionOwnedByUi())return!1;const e=this.pendingPresetSelection;return this.committedPeriod=e.period,this.committedAnchorDate=e.startDate,this.appliedRangeStartDate=d(e.startDate),this.appliedRangeEndDate=d(e.endDate),this.commitSelectionToUrl(e.date,e.period),!0},applyRangeSelection(){if(this.selectedPeriod!==yo)return!1;const e=this.selectedDateString;return!e||(this.committedPeriod=yo,this.commitSelectionToUrl(this.getCurrentRollingDateParamIfOwnedByPreset()||e,yo),!0)},applyNonRangeOrCompareChanges(){const e=ha({hasPendingNonRangePeriodChange:this.hasPendingNonRangePeriodChange,isCompareDirty:this.isCompareDirty,shouldCloseSelectorWithoutApplying:this.shouldCloseSelectorWithoutApplying(),appliedPeriod:this.committedPeriod,hasCommittedRangeBounds:this.hasCommittedRangeBounds(),rollingDateParam:this.getCurrentRollingDateParamIfOwnedByPreset(),appliedRangeStartDate:this.appliedRangeStartDate,appliedRangeEndDate:this.appliedRangeEndDate,formattedAppliedAnchorDate:this.committedAnchorDate?d(this.committedAnchorDate):null});"stop"!==e.type&&("close"!==e.type?this.commitSelectionToUrl(e.date,e.period):this.closePeriodSelector())},onApplyClicked(){this.applyPendingPresetSelection()||this.applyRangeSelection()||this.applyNonRangeOrCompareChanges()},updateComparisonValuesFromStore(){this.comparePeriodType="previousPeriod",this.compareStartDate="",this.compareEndDate="";const e=Mi.getPeriodComparisons();if(e.length<2)return;const t=U.parsed.value.comparePeriodType;if(!bo.includes(t))return;if(this.comparePeriodType=t,"custom"!==this.comparePeriodType||"range"!==e[1].params.period)return;let i;try{i=c.parse(e[1].params.period,e[1].params.date)}catch(a){return}const[o,n]=i.getDateRange();this.compareStartDate=d(o),this.compareEndDate=d(n)},getCurrentContextKey(){return Sr(U.parsed.value)},applyUiSelectionFromHash(e,t,i){if(i)return this.uiSelection=i,void(this.activePresetId="preset"===i.type?i.id:null);const o=Va(e,t);if(o&&this.periodsFiltered.includes(e))return this.uiSelection={type:"preset",id:o},this.activePresetId=o,void(this.pendingPresetSelection=null);this.setUiSelection({type:"period",id:e},null),this.clearPresetSelection()},getCurrentRollingDateParamIfOwnedByPreset(){if("preset"!==this.uiSelection.type)return null;const e=U.parsed.value.period||"",t=U.parsed.value.date||"";if(e!==this.committedPeriod||!t)return null;const i=Va(e,t);return i!==this.uiSelection.id?null:t},resetSelectedDateValues(){this.committedAnchorDate=null,this.appliedRangeStartDate=null,this.appliedRangeEndDate=null},applyDateValuesFromHash(e,t){if(e===yo){const i=c.get(e).parse(t),[o,n]=i.getDateRange();return this.committedAnchorDate=o,this.appliedRangeStartDate=d(o),void(this.appliedRangeEndDate=d(n))}this.committedAnchorDate=m(t),this.setRangeStartEndFromPeriod(e,t),wo(e)&&(this.singleCalendarPeriod=e),this.singleCalendarSelectedDate=this.committedAnchorDate},updateSelectedValuesFromHash(){const e=U.parsed.value.date||"",t=U.parsed.value.period||"",i=wr(t,e),o=this.getCurrentContextKey();if(Cr(i,o,this.nextHashUiSelection,this.lastKnownHashSelectionKey,this.lastKnownHashContextKey))return;const n=kr(i,o,this.nextHashUiSelection,this.nextHashSelectionKey);this.nextHashUiSelection=n.nextHashUiSelection,this.nextHashSelectionKey=n.nextHashSelectionKey,this.lastInteractionSource=n.lastInteractionSource,this.lastKnownHashSelectionKey=n.lastKnownHashSelectionKey,this.lastKnownHashContextKey=n.lastKnownHashContextKey,this.applyUiSelectionFromHash(t,e,n.syncedUiSelection),this.committedPeriod=t,this.selectedPeriod=t,this.resetSelectedDateValues();try{c.parse(t,e)}catch(a){return void(this.isRangeValid=t!==yo&&null)}this.applyDateValuesFromHash(t,e),this.isRangeValid=t===yo||null,this.pendingPresetSelection=null,this.calendarViewport=t===yo?"range":"single",this.compareAppliedSignature=this.compareCurrentSignature},setRangeStartEndFromPeriod(e,t){const i=c.parse(e,t).getDateRange();this.appliedRangeStartDate=d(i[0]this.maxAllowedDate?this.maxAllowedDate:i[1])},canInteractWithRangeCalendar(){return"range"===this.calendarViewport&&"period"===this.uiSelection.type&&this.selectedPeriod===yo},onRangeChange(e,t){this.canInteractWithRangeCalendar()&&(e&&t?(this.isRangeValid=!0,this.appliedRangeStartDate=e,this.appliedRangeEndDate=t,this.setUiSelection({type:"period",id:yo},"range")):this.isRangeValid=!1)},onRangePresetDateCellClickCapture(e){if(!this.isRangePresetSelection)return;const t=e.target;t&&t.closest(".ui-datepicker-calendar a")&&(e.preventDefault(),e.stopPropagation())},isApplyEnabled(){return pa({uiSelectionType:this.uiSelection.type,uiSelectedPeriod:this.selectedPeriod,hasPendingNonRangePeriodChange:this.hasPendingNonRangePeriodChange,hasPendingPresetSelection:!!this.pendingPresetSelection,isRangeValid:this.isRangeValid,isComparing:this.isComparing,comparePeriodType:this.comparePeriodType,isCompareRangeValid:this.isCompareRangeValid()})},closePeriodSelector(){this.$refs.root.classList.remove("expanded")},isCompareRangeValid(){try{m(this.compareStartDate)}catch(e){return!1}try{m(this.compareEndDate)}catch(e){return!1}return!0},movePeriod(e){if(!this.canMovePeriod(e))return;const t=this.committedAnchorDate||new Date,i=fa(t,this.committedPeriod,e),o=va(i,this.minAllowedDate,this.maxAllowedDate);this.setPiwikPeriodAndDate(this.committedPeriod,o)},isPeriodMoveDisabled(e){return null===this.committedAnchorDate?this.isRangeSelection:this.isRangeSelection||!this.canMovePeriod(e)},canMovePeriod(e){if(null===this.committedAnchorDate)return!1;const t=-1===e?this.minAllowedDate:this.maxAllowedDate;return!g(this.committedAnchorDate,t,this.committedPeriod)}}});Dr.render=ma;var Er=Dr;const Pr={class:"reportingMenu"},Tr=["aria-label"],Vr=["data-category-id"],xr=["onClick"],Nr={class:"hidden"},Br={key:2,role:"menu"},Mr=["href","onClick","title"],Ir=["href","onClick"],Fr=["onClick"],Lr=Object(D["createElementVNode"])("span",{class:"icon-help"},null,-1),Rr=[Lr],Ar={id:"mobile-left-menu",class:"sidenav sidenav--reporting-menu-mobile hide-on-large-only"},_r=["data-category-id"],Hr={key:1,class:"collapsible collapsible-accordion"},$r={class:"collapsible-header"},Ur={class:"collapsible-body"},qr=["onClick","href"],Wr=["onClick","href"];function zr(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MenuItemsDropdown"),s=Object(D["resolveDirective"])("side-nav");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Pr,[Object(D["createElementVNode"])("ul",{class:"navbar hide-on-med-and-down collapsible",role:"menu","aria-label":e.translate("CoreHome_MainNavigation")},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menu,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["menuTab",{active:t.id===e.activeCategory}]),role:"menuitem",key:t.id,"data-category-id":t.id},[t.component?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(t.component),{key:0,onAction:i=>e.loadCategory(t)},null,40,["onAction"])):Object(D["createCommentVNode"])("",!0),t.component?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"item",tabindex:"5",href:"",onClick:Object(D["withModifiers"])(i=>e.loadCategory(t),["prevent"])},[Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])("menu-icon "+(t.icon?t.icon:t.subcategories&&t.id===e.activeCategory?"icon-chevron-down":"icon-chevron-right"))},null,2),Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("span",Nr,Object(D["toDisplayString"])(e.translate("CoreHome_Menu")),1)],8,xr)),t.component?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Br,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{role:"menuitem",class:Object(D["normalizeClass"])({active:(i.id===e.displayedSubcategory||i.isGroup&&e.activeSubsubcategory===e.displayedSubcategory)&&t.id===e.displayedCategory}),key:i.id},[i.isGroup?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"show-search":!0,"menu-title":e.htmlEntities(i.name)},{default:Object(D["withCtx"])(()=>[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(i.subcategories,o=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{class:Object(D["normalizeClass"])(["item",{active:o.id===e.activeSubsubcategory&&i.id===e.displayedSubcategory&&t.id===e.displayedCategory}]),tabindex:"5",href:"#?"+e.makeUrl(t,o),onClick:i=>e.loadSubcategory(t,o,i),title:o.tooltip,key:o.id},Object(D["toDisplayString"])(o.name),11,Mr))),128))]),_:2},1032,["menu-title"])):Object(D["createCommentVNode"])("",!0),i.isGroup?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,href:"#?"+e.makeUrl(t,i),class:"item",onClick:o=>e.loadSubcategory(t,i,o),tabindex:"5"},Object(D["toDisplayString"])(i.name),9,Ir)),i.help?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:2,class:Object(D["normalizeClass"])(["item-help-icon",{active:e.helpShownCategory&&e.helpShownCategory.subcategory===i.id&&e.helpShownCategory.category===t.id&&i.help}]),tabindex:"5",href:"javascript:",onClick:o=>e.showHelp(t,i,o)},Rr,10,Fr)):Object(D["createCommentVNode"])("",!0)],2))),128))]))],10,Vr))),128))],8,Tr),Object(D["createElementVNode"])("ul",Ar,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menu,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:"no-padding",key:t.id,"data-category-id":t.id},[t.component?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(t.component),{key:0,onAction:i=>e.loadCategory(t)},null,40,["onAction"])):Object(D["createCommentVNode"])("",!0),t.component?Object(D["createCommentVNode"])("",!0):Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Hr,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("a",$r,[Object(D["createElementVNode"])("i",{class:Object(D["normalizeClass"])(t.icon?t.icon:"icon-chevron-down")},null,2),Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name),1)]),Object(D["createElementVNode"])("div",Ur,[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i.id},[i.isGroup?(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],{key:0},Object(D["renderList"])(i.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{onClick:o=>e.loadSubcategory(t,i),href:"#?"+e.makeUrl(t,i),key:i.id},Object(D["toDisplayString"])(i.name),9,qr))),128)):Object(D["createCommentVNode"])("",!0),i.isGroup?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,onClick:o=>e.loadSubcategory(t,i),href:"#?"+e.makeUrl(t,i)},Object(D["toDisplayString"])(i.name),9,Wr))]))),128))])])])])),[[s,{activator:e.sideNavActivator}]])],8,_r))),128))])])}function Gr(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */const jr=["date","period","comparePeriods","comparePeriodType","compareDates","compareSegments"];function wr(e,t){return`${e}|${t}`}function Sr(e){const t={};return Object.keys(e).filter(e=>!jr.includes(e)).sort().forEach(i=>{t[i]=e[i]}),JSON.stringify(t)}function Cr(e,t,i,o,n){return!i&&e===o&&t===n}function kr(e,t,i,o){const n=!!i&&o===e,a=n&&i?Object.assign({},i):null;return{syncedUiSelection:a,lastKnownHashSelectionKey:e,lastKnownHashContextKey:t,nextHashUiSelection:null,nextHashSelectionKey:null,lastInteractionSource:null}}var Dr=Object(D["defineComponent"])({name:"PeriodSelector",props:{periods:Array},components:{PeriodSelectorOptionsColumn:Za,PeriodSelectorCalendarColumn:yr,ActivityIndicator:We},directives:{ExpandOnClick:yt,Tooltips:st},data(){const e=U.parsed.value.period,t=wo(e)?e:"day",i=vo(),o=Oo();return{uiSelection:{type:"period",id:e},lastInteractionSource:null,nextHashUiSelection:null,nextHashSelectionKey:null,lastKnownHashSelectionKey:null,lastKnownHashContextKey:null,minAllowedDate:i,maxAllowedDate:o,activePresetId:null,pendingPresetSelection:null,committedPeriod:e,committedAnchorDate:null,selectedPeriod:e,calendarViewport:e===yo?"range":"single",singleCalendarPeriod:t,singleCalendarSelectedDate:null,appliedRangeStartDate:null,appliedRangeEndDate:null,isRangeValid:null,isLoadingNewPage:!1,isComparing:null,comparePeriodType:"previousPeriod",compareStartDate:"",compareEndDate:"",compareAppliedSignature:""}},mounted(){M.on("hidePeriodSelector",()=>{window.$(this.$refs.root).parent("#periodString").hide()}),M.on("matomoPageChange",()=>{window.$(this.$refs.root).parent("#periodString").show()}),window.initTopControls(),this.handleZIndexPositionRelativeCompareDropdownIssue()},computed:{matomoParsed(){return U.parsed.value},isComparingStoreValue(){return Ii.isComparingPeriods()},periodComparisonsStoreValue(){return Ii.getPeriodComparisons()},comparePeriodDropdownOptions(){return fo},currentlyViewingText(){let e;if("range"===this.committedPeriod){if(!this.appliedRangeStartDate||!this.appliedRangeEndDate)return a("General_Error");e=`${this.appliedRangeStartDate},${this.appliedRangeEndDate}`}else{if(!this.committedAnchorDate)return a("General_Error");e=d(this.committedAnchorDate)}try{return c.parse(this.committedPeriod,e).getPrettyString()}catch(t){return a("General_Error")}},isComparisonEnabled(){return Ii.isComparisonEnabled()},periodsFiltered(){return(this.periods||[]).filter(e=>c.isRecognizedPeriod(e))},selectedComparisonParams(){if(!this.isComparing)return{};if("custom"===this.comparePeriodType)return{comparePeriods:["range"],comparePeriodType:"custom",compareDates:[`${this.compareStartDate},${this.compareEndDate}`]};if("previousPeriod"===this.comparePeriodType)return{comparePeriods:[this.selectedPeriod],comparePeriodType:"previousPeriod",compareDates:[this.previousPeriodDateToSelectedPeriod]};if("previousYear"===this.comparePeriodType){const e="range"===this.selectedPeriod?`${this.appliedRangeStartDate},${this.appliedRangeEndDate}`:d(this.committedAnchorDate),t=c.parse(this.selectedPeriod,e).getDateRange();return t[0].setFullYear(t[0].getFullYear()-1),t[1].setFullYear(t[1].getFullYear()-1),"range"===this.selectedPeriod?{comparePeriods:["range"],comparePeriodType:"previousYear",compareDates:[`${d(t[0])},${d(t[1])}`]}:{comparePeriods:[this.selectedPeriod],comparePeriodType:"previousYear",compareDates:[d(t[0])]}}return console.warn("Unknown compare period type: "+this.comparePeriodType),{}},previousPeriodDateToSelectedPeriod(){if("range"===this.selectedPeriod){const e=m(this.appliedRangeStartDate),t=m(this.appliedRangeEndDate),i=k.getLastNRange("day",2,e).startDate,o=Math.floor((t.valueOf()-e.valueOf())/864e5),n=k.getLastNRange("day",1+o,i);return`${d(n.startDate)},${d(n.endDate)}`}const e=k.getLastNRange(this.selectedPeriod,2,this.committedAnchorDate).startDate;return d(e)},selectedDateString(){if("range"===this.selectedPeriod){const e=this.appliedRangeStartDate,t=this.appliedRangeEndDate,i=m(e),o=m(t);return!jo(i)||!jo(o)||i>o?(window.$("#alert").find("h2").text(a("General_InvalidDateRange")),M.helper.modalConfirm("#alert",{}),null):`${e},${t}`}return d(this.committedAnchorDate)},isErrorDisplayed(){return this.currentlyViewingText===a("General_Error")},isRangeSelection(){return"range"===this.committedPeriod},canShowMovePeriod(){return!this.isRangeSelection&&!this.isErrorDisplayed},compareCurrentSignature(){return JSON.stringify({isComparing:!!this.isComparing,comparePeriodType:this.comparePeriodType||"",compareStartDate:this.compareStartDate||"",compareEndDate:this.compareEndDate||""})},isCompareDirty(){return this.compareCurrentSignature!==this.compareAppliedSignature},hasPendingNonRangePeriodChange(){return"period"===this.uiSelection.type&&"period"===this.lastInteractionSource&&this.selectedPeriod!==yo&&this.selectedPeriod!==this.committedPeriod},isRangePresetSelection(){return"preset"===this.uiSelection.type&&this.selectedPeriod===yo},displayRangeStartDate(){return this.isRangePresetSelection&&this.pendingPresetSelection?d(this.pendingPresetSelection.startDate):this.appliedRangeStartDate},displayRangeEndDate(){return this.isRangePresetSelection&&this.pendingPresetSelection?d(this.pendingPresetSelection.endDate):this.appliedRangeEndDate}},watch:{isComparingStoreValue:{immediate:!0,handler(e){this.isComparing=e}},matomoParsed:{immediate:!0,handler(){this.updateSelectedValuesFromHash()}},periodComparisonsStoreValue:{immediate:!0,handler(){this.updateComparisonValuesFromStore(),this.compareAppliedSignature=this.compareCurrentSignature}}},methods:{onExpand(e){if(ga(e)){const e=this.$refs.root,t="preset"===this.uiSelection.type?"#preset_date_"+this.uiSelection.id:"#period_id_"+this.uiSelection.id,i=e.querySelector(t)||e.querySelector("#preset_date_today");i instanceof HTMLElement&&i.focus()}},onClosed(e){ga(e)&&window.$(this.$refs.title).focus()},handleZIndexPositionRelativeCompareDropdownIssue(){const e=window.$(this.$refs.root);e.on("focus","#comparePeriodToDropdown .select-dropdown",()=>{e.addClass("compare-dropdown-open")}).on("blur","#comparePeriodToDropdown .select-dropdown",()=>{e.removeClass("compare-dropdown-open")})},setUiSelection(e,t){this.uiSelection=e,this.lastInteractionSource=t},clearPresetSelection(){this.activePresetId=null,this.pendingPresetSelection=null},setPendingPeriodAndDate(e,t){this.committedPeriod=e,this.selectedPeriod=e,this.committedAnchorDate=t,this.setRangeStartEndFromPeriod(e,d(t)),wo(e)&&(this.singleCalendarPeriod=e,this.singleCalendarSelectedDate=t)},setPiwikPeriodAndDate(e,t){this.setPendingPeriodAndDate(e,t),this.setUiSelection({type:"period",id:e},"period");const i=d(t);this.clearPresetSelection(),this.commitSelectionToUrl(i,this.selectedPeriod)},commitSelectionToUrl(e,t){this.nextHashUiSelection=Object.assign({},this.uiSelection),this.nextHashSelectionKey=wr(t,e),this.compareAppliedSignature=this.compareCurrentSignature,this.propagateNewUrlParams(e,t),window.initTopControls()},onPeriodOptionSelected(e){if(this.setUiSelection({type:"period",id:e.period},"period"),this.selectedPeriod=e.period,this.clearPresetSelection(),e.period===yo)return this.calendarViewport="range",void(this.isRangeValid=!0);this.calendarViewport="single",wo(e.period)&&(this.singleCalendarPeriod=e.period),this.singleCalendarSelectedDate=e.period===this.committedPeriod?this.committedAnchorDate:null},onPeriodOptionDblClick(e){this.onPeriodOptionSelected(e),e.period!==yo&&e.period!==this.committedPeriod&&this.committedAnchorDate&&this.setPiwikPeriodAndDate(e.period,this.committedAnchorDate)},canInteractWithSingleCalendar(){return"single"===this.calendarViewport&&"period"===this.uiSelection.type&&this.selectedPeriod!==yo},onDatePickerSelected(e){this.canInteractWithSingleCalendar()&&(this.setUiSelection({type:"period",id:this.selectedPeriod},"calendar"),this.setPendingPeriodAndDate(this.selectedPeriod,e),this.clearPresetSelection(),this.commitSelectionToUrl(d(e),this.selectedPeriod))},onPresetDateRangeSelected(e){this.periodsFiltered.includes(e.period)&&(this.setUiSelection({type:"preset",id:e.id},"preset"),this.activePresetId=e.id,this.selectedPeriod=e.period,this.isRangeValid=!0,this.pendingPresetSelection=e,e.period!==yo?(this.calendarViewport="single",this.singleCalendarSelectedDate=e.startDate,wo(e.period)&&(this.singleCalendarPeriod=e.period)):this.calendarViewport="range")},propagateNewUrlParams(e,t){const i=this.selectedComparisonParams;let o;M.helper.isReportingPage()?(this.closePeriodSelector(),o=U.hashParsed.value):(this.isLoadingNewPage=!0,o=U.parsed.value),U.updateLocation(Object.assign(Object.assign({},ba(o)),{},{date:e,period:t},i))},hasPendingPresetSelectionOwnedByUi(){return!!this.pendingPresetSelection&&"preset"===this.uiSelection.type&&this.pendingPresetSelection.id===this.uiSelection.id},shouldCloseSelectorWithoutApplying(){return"preset"===this.uiSelection.type&&this.selectedPeriod!==yo},hasCommittedRangeBounds(){return!!this.appliedRangeStartDate&&!!this.appliedRangeEndDate},applyPendingPresetSelection(){if(!this.hasPendingPresetSelectionOwnedByUi())return!1;const e=this.pendingPresetSelection;return this.committedPeriod=e.period,this.committedAnchorDate=e.startDate,this.appliedRangeStartDate=d(e.startDate),this.appliedRangeEndDate=d(e.endDate),this.commitSelectionToUrl(e.date,e.period),!0},applyRangeSelection(){if(this.selectedPeriod!==yo)return!1;const e=this.selectedDateString;return!e||(this.committedPeriod=yo,this.commitSelectionToUrl(this.getCurrentRollingDateParamIfOwnedByPreset()||e,yo),!0)},applyNonRangeOrCompareChanges(){const e=ha({hasPendingNonRangePeriodChange:this.hasPendingNonRangePeriodChange,isCompareDirty:this.isCompareDirty,shouldCloseSelectorWithoutApplying:this.shouldCloseSelectorWithoutApplying(),appliedPeriod:this.committedPeriod,hasCommittedRangeBounds:this.hasCommittedRangeBounds(),rollingDateParam:this.getCurrentRollingDateParamIfOwnedByPreset(),appliedRangeStartDate:this.appliedRangeStartDate,appliedRangeEndDate:this.appliedRangeEndDate,formattedAppliedAnchorDate:this.committedAnchorDate?d(this.committedAnchorDate):null});"stop"!==e.type&&("close"!==e.type?this.commitSelectionToUrl(e.date,e.period):this.closePeriodSelector())},onApplyClicked(){this.applyPendingPresetSelection()||this.applyRangeSelection()||this.applyNonRangeOrCompareChanges()},updateComparisonValuesFromStore(){this.comparePeriodType="previousPeriod",this.compareStartDate="",this.compareEndDate="";const e=Ii.getPeriodComparisons();if(e.length<2)return;const t=U.parsed.value.comparePeriodType;if(!bo.includes(t))return;if(this.comparePeriodType=t,"custom"!==this.comparePeriodType||"range"!==e[1].params.period)return;let i;try{i=c.parse(e[1].params.period,e[1].params.date)}catch(a){return}const[o,n]=i.getDateRange();this.compareStartDate=d(o),this.compareEndDate=d(n)},getCurrentContextKey(){return Sr(U.parsed.value)},applyUiSelectionFromHash(e,t,i){if(i)return this.uiSelection=i,void(this.activePresetId="preset"===i.type?i.id:null);const o=Va(e,t);if(o&&this.periodsFiltered.includes(e))return this.uiSelection={type:"preset",id:o},this.activePresetId=o,void(this.pendingPresetSelection=null);this.setUiSelection({type:"period",id:e},null),this.clearPresetSelection()},getCurrentRollingDateParamIfOwnedByPreset(){if("preset"!==this.uiSelection.type)return null;const e=U.parsed.value.period||"",t=U.parsed.value.date||"";if(e!==this.committedPeriod||!t)return null;const i=Va(e,t);return i!==this.uiSelection.id?null:t},resetSelectedDateValues(){this.committedAnchorDate=null,this.appliedRangeStartDate=null,this.appliedRangeEndDate=null},applyDateValuesFromHash(e,t){if(e===yo){const i=c.get(e).parse(t),[o,n]=i.getDateRange();return this.committedAnchorDate=o,this.appliedRangeStartDate=d(o),void(this.appliedRangeEndDate=d(n))}this.committedAnchorDate=m(t),this.setRangeStartEndFromPeriod(e,t),wo(e)&&(this.singleCalendarPeriod=e),this.singleCalendarSelectedDate=this.committedAnchorDate},updateSelectedValuesFromHash(){const e=U.parsed.value.date||"",t=U.parsed.value.period||"",i=wr(t,e),o=this.getCurrentContextKey();if(Cr(i,o,this.nextHashUiSelection,this.lastKnownHashSelectionKey,this.lastKnownHashContextKey))return;const n=kr(i,o,this.nextHashUiSelection,this.nextHashSelectionKey);this.nextHashUiSelection=n.nextHashUiSelection,this.nextHashSelectionKey=n.nextHashSelectionKey,this.lastInteractionSource=n.lastInteractionSource,this.lastKnownHashSelectionKey=n.lastKnownHashSelectionKey,this.lastKnownHashContextKey=n.lastKnownHashContextKey,this.applyUiSelectionFromHash(t,e,n.syncedUiSelection),this.committedPeriod=t,this.selectedPeriod=t,this.resetSelectedDateValues();try{c.parse(t,e)}catch(a){return void(this.isRangeValid=t!==yo&&null)}this.applyDateValuesFromHash(t,e),this.isRangeValid=t===yo||null,this.pendingPresetSelection=null,this.calendarViewport=t===yo?"range":"single",this.compareAppliedSignature=this.compareCurrentSignature},setRangeStartEndFromPeriod(e,t){const i=c.parse(e,t).getDateRange();this.appliedRangeStartDate=d(i[0]this.maxAllowedDate?this.maxAllowedDate:i[1])},canInteractWithRangeCalendar(){return"range"===this.calendarViewport&&"period"===this.uiSelection.type&&this.selectedPeriod===yo},onRangeChange(e,t){this.canInteractWithRangeCalendar()&&(e&&t?(this.isRangeValid=!0,this.appliedRangeStartDate=e,this.appliedRangeEndDate=t,this.setUiSelection({type:"period",id:yo},"range")):this.isRangeValid=!1)},onRangePresetDateCellClickCapture(e){if(!this.isRangePresetSelection)return;const t=e.target;t&&t.closest(".ui-datepicker-calendar a")&&(e.preventDefault(),e.stopPropagation())},isApplyEnabled(){return pa({uiSelectionType:this.uiSelection.type,uiSelectedPeriod:this.selectedPeriod,hasPendingNonRangePeriodChange:this.hasPendingNonRangePeriodChange,hasPendingPresetSelection:!!this.pendingPresetSelection,isRangeValid:this.isRangeValid,isComparing:this.isComparing,comparePeriodType:this.comparePeriodType,isCompareRangeValid:this.isCompareRangeValid()})},closePeriodSelector(){this.$refs.root.classList.remove("expanded")},isCompareRangeValid(){try{m(this.compareStartDate)}catch(e){return!1}try{m(this.compareEndDate)}catch(e){return!1}return!0},movePeriod(e){if(!this.canMovePeriod(e))return;const t=this.committedAnchorDate||new Date,i=fa(t,this.committedPeriod,e),o=va(i,this.minAllowedDate,this.maxAllowedDate);this.setPiwikPeriodAndDate(this.committedPeriod,o)},isPeriodMoveDisabled(e){return null===this.committedAnchorDate?this.isRangeSelection:this.isRangeSelection||!this.canMovePeriod(e)},canMovePeriod(e){if(null===this.committedAnchorDate)return!1;const t=-1===e?this.minAllowedDate:this.maxAllowedDate;return!g(this.committedAnchorDate,t,this.committedPeriod)}}});Dr.render=ma;var Er=Dr;const Pr={class:"reportingMenu"},Tr=["aria-label"],Vr=["data-category-id"],xr=["onClick"],Nr={class:"hidden"},Br={key:2,role:"menu"},Ir=["href","onClick","title"],Mr=["href","onClick"],Fr=["onClick"],Lr=Object(D["createElementVNode"])("span",{class:"icon-help"},null,-1),Rr=[Lr],Ar={id:"mobile-left-menu",class:"sidenav sidenav--reporting-menu-mobile hide-on-large-only"},_r=["data-category-id"],Hr={key:1,class:"collapsible collapsible-accordion"},$r={class:"collapsible-header"},Ur={class:"collapsible-body"},qr=["onClick","href"],Wr=["onClick","href"];function zr(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MenuItemsDropdown"),s=Object(D["resolveDirective"])("side-nav");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Pr,[Object(D["createElementVNode"])("ul",{class:"navbar hide-on-med-and-down collapsible",role:"menu","aria-label":e.translate("CoreHome_MainNavigation")},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menu,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["menuTab",{active:t.id===e.activeCategory}]),role:"menuitem",key:t.id,"data-category-id":t.id},[t.component?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(t.component),{key:0,onAction:i=>e.loadCategory(t)},null,40,["onAction"])):Object(D["createCommentVNode"])("",!0),t.component?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"item",tabindex:"5",href:"",onClick:Object(D["withModifiers"])(i=>e.loadCategory(t),["prevent"])},[Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])("menu-icon "+(t.icon?t.icon:t.subcategories&&t.id===e.activeCategory?"icon-chevron-down":"icon-chevron-right"))},null,2),Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("span",Nr,Object(D["toDisplayString"])(e.translate("CoreHome_Menu")),1)],8,xr)),t.component?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Br,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{role:"menuitem",class:Object(D["normalizeClass"])({active:(i.id===e.displayedSubcategory||i.isGroup&&e.activeSubsubcategory===e.displayedSubcategory)&&t.id===e.displayedCategory}),key:i.id},[i.isGroup?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"show-search":!0,"menu-title":e.htmlEntities(i.name)},{default:Object(D["withCtx"])(()=>[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(i.subcategories,o=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{class:Object(D["normalizeClass"])(["item",{active:o.id===e.activeSubsubcategory&&i.id===e.displayedSubcategory&&t.id===e.displayedCategory}]),tabindex:"5",href:"#?"+e.makeUrl(t,o),onClick:i=>e.loadSubcategory(t,o,i),title:o.tooltip,key:o.id},Object(D["toDisplayString"])(o.name),11,Ir))),128))]),_:2},1032,["menu-title"])):Object(D["createCommentVNode"])("",!0),i.isGroup?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,href:"#?"+e.makeUrl(t,i),class:"item",onClick:o=>e.loadSubcategory(t,i,o),tabindex:"5"},Object(D["toDisplayString"])(i.name),9,Mr)),i.help?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:2,class:Object(D["normalizeClass"])(["item-help-icon",{active:e.helpShownCategory&&e.helpShownCategory.subcategory===i.id&&e.helpShownCategory.category===t.id&&i.help}]),tabindex:"5",href:"javascript:",onClick:o=>e.showHelp(t,i,o)},Rr,10,Fr)):Object(D["createCommentVNode"])("",!0)],2))),128))]))],10,Vr))),128))],8,Tr),Object(D["createElementVNode"])("ul",Ar,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menu,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:"no-padding",key:t.id,"data-category-id":t.id},[t.component?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(t.component),{key:0,onAction:i=>e.loadCategory(t)},null,40,["onAction"])):Object(D["createCommentVNode"])("",!0),t.component?Object(D["createCommentVNode"])("",!0):Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Hr,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("a",$r,[Object(D["createElementVNode"])("i",{class:Object(D["normalizeClass"])(t.icon?t.icon:"icon-chevron-down")},null,2),Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name),1)]),Object(D["createElementVNode"])("div",Ur,[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i.id},[i.isGroup?(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],{key:0},Object(D["renderList"])(i.subcategories,i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{onClick:o=>e.loadSubcategory(t,i),href:"#?"+e.makeUrl(t,i),key:i.id},Object(D["toDisplayString"])(i.name),9,qr))),128)):Object(D["createCommentVNode"])("",!0),i.isGroup?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,onClick:o=>e.loadSubcategory(t,i),href:"#?"+e.makeUrl(t,i)},Object(D["toDisplayString"])(i.name),9,Wr))]))),128))])])])])),[[s,{activator:e.sideNavActivator}]])],8,_r))),128))])])}function Gr(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * @@ -308,37 +308,37 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function ns(e){const t=e;return t.widgets?t.widgets:[]}class as{constructor(){os(this,"privateState",Object(D["reactive"])({isFetchedFirstTime:!1,categorizedWidgets:{}})),os(this,"state",Object(D["computed"])(()=>(this.privateState.isFetchedFirstTime||this.fetchAvailableWidgets(),Object(D["readonly"])(this.privateState)))),os(this,"widgets",Object(D["computed"])(()=>this.state.value.categorizedWidgets))}fetchAvailableWidgets(){return U.parsed.value.idSite?(this.privateState.isFetchedFirstTime=!0,new Promise((e,t)=>{try{window.widgetsHelper.getAvailableWidgets(t=>{const i=t;this.privateState.categorizedWidgets=i,e(this.widgets.value)})}catch(i){t(i)}})):Promise.resolve(this.widgets.value)}reloadAvailableWidgets(){window.widgetsHelper.clearAvailableWidgets();const e=this.fetchAvailableWidgets();return e.then(()=>{I.postEvent("WidgetsStore.reloaded")}),e}}var rs=new as;const ss="reportingmenu-help";var ls=Object(D["defineComponent"])({components:{MenuItemsDropdown:Yi},directives:{SideNav:Ht},props:{},data(){return{showSubcategoryHelpOnLoad:null,initialLoad:!0,helpShownCategory:null}},computed:{sideNavActivator(){return document.querySelector("nav .activateLeftMenu")},menu(){const e=is.menu.value;return e.forEach(e=>{if(e.widget&&e.widget.indexOf(".")>0){const[t,i]=e.widget.split(".");e.component=Ce(t,i)}}),e},activeCategory(){return is.activeCategory.value},activeSubcategory(){return is.activeSubcategory.value},activeSubsubcategory(){return is.activeSubsubcategory.value},displayedCategory(){return U.parsed.value.category},displayedSubcategory(){return U.parsed.value.subcategory}},created(){is.fetchMenuItems().then(e=>{if(!U.parsed.value.subcategory){const t=e[0],i=t.subcategories[0];is.enterSubcategory(t,i),this.propagateUrlChange(t,i)}}),Object(D["watch"])(()=>U.parsed.value,e=>{const t=is.findSubcategory(e.category,e.subcategory);is.enterSubcategory(t.category,t.subcategory,t.subsubcategory)}),I.on("matomoPageChange",()=>{this.initialLoad||window.globalAjaxQueue.abort(),this.helpShownCategory=null,this.showSubcategoryHelpOnLoad&&(this.showHelp(this.showSubcategoryHelpOnLoad.category,this.showSubcategoryHelpOnLoad.subcategory),this.showSubcategoryHelpOnLoad=null),window.$("#loadingError,#loadingRateLimitError").hide(),this.initialLoad=!1}),I.on("updateReportingMenu",()=>{is.reloadMenuItems().then(()=>{const e=U.parsed.value.category,t=U.parsed.value.subcategory;if(e&&t){const i=is.findSubcategory(e,t);i.category&&is.enterSubcategory(i.category,i.subcategory,i.subsubcategory)}}),rs.reloadAvailableWidgets()})},methods:{propagateUrlChange(e,t){const i=U.parsed.value;i.category===e.id&&i.subcategory===t.id?this.loadSubcategory(e,t):U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{category:e.id,subcategory:t.id}))},loadCategory(e){$o.remove(ss);const t=is.toggleCategory(e),{subcategories:i}=e,o=i&&1===i.length||e.widget&&i&&i.length;if(t&&o){this.helpShownCategory=null;const t=e.subcategories[0];this.propagateUrlChange(e,t)}},loadSubcategory(e,t,i){i&&(i.shiftKey||i.ctrlKey||i.metaKey)||($o.remove(ss),t&&t.id===U.parsed.value.subcategory&&e.id===U.parsed.value.category&&(this.helpShownCategory=null,setTimeout(()=>{I.postEvent("loadPage",e.id,t.id)})))},makeUrl(e,t){const{idSite:i,period:o,date:n,segment:a,comparePeriods:r,compareDates:s,compareSegments:l}=U.parsed.value;return U.stringify({idSite:i,period:o,date:n,segment:a,comparePeriods:r,compareDates:s,compareSegments:l,category:e.id,subcategory:t.id})},htmlEntities(e){return I.helper.htmlEntities(e)},showHelp(e,t,i){const o=U.parsed.value,n=o.category,r=o.subcategory;if((n!==e.id||r!==t.id)&&i)return this.showSubcategoryHelpOnLoad={category:e,subcategory:t},void U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{category:e.id,subcategory:t.id}));if(this.helpShownCategory&&e.id===this.helpShownCategory.category&&t.id===this.helpShownCategory.subcategory)return $o.remove(ss),void(this.helpShownCategory=null);const s=a("CoreHome_ReportingCategoryHelpPrefix",e.name,t.name),l=`${s}
`;$o.show({context:"info",id:ss,type:"help",noclear:!0,class:"help-notification",message:l+t.help,placeat:"#notificationContainer",prepend:!0}),this.helpShownCategory={category:e.id,subcategory:t.id}}}});ls.render=zr;var cs=ls;function ds(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */function ns(e){const t=e;return t.widgets?t.widgets:[]}class as{constructor(){os(this,"privateState",Object(D["reactive"])({isFetchedFirstTime:!1,categorizedWidgets:{}})),os(this,"state",Object(D["computed"])(()=>(this.privateState.isFetchedFirstTime||this.fetchAvailableWidgets(),Object(D["readonly"])(this.privateState)))),os(this,"widgets",Object(D["computed"])(()=>this.state.value.categorizedWidgets))}fetchAvailableWidgets(){return U.parsed.value.idSite?(this.privateState.isFetchedFirstTime=!0,new Promise((e,t)=>{try{window.widgetsHelper.getAvailableWidgets(t=>{const i=t;this.privateState.categorizedWidgets=i,e(this.widgets.value)})}catch(i){t(i)}})):Promise.resolve(this.widgets.value)}reloadAvailableWidgets(){window.widgetsHelper.clearAvailableWidgets();const e=this.fetchAvailableWidgets();return e.then(()=>{M.postEvent("WidgetsStore.reloaded")}),e}}var rs=new as;const ss="reportingmenu-help";var ls=Object(D["defineComponent"])({components:{MenuItemsDropdown:Yi},directives:{SideNav:Ht},props:{},data(){return{showSubcategoryHelpOnLoad:null,initialLoad:!0,helpShownCategory:null}},computed:{sideNavActivator(){return document.querySelector("nav .activateLeftMenu")},menu(){const e=is.menu.value;return e.forEach(e=>{if(e.widget&&e.widget.indexOf(".")>0){const[t,i]=e.widget.split(".");e.component=Ce(t,i)}}),e},activeCategory(){return is.activeCategory.value},activeSubcategory(){return is.activeSubcategory.value},activeSubsubcategory(){return is.activeSubsubcategory.value},displayedCategory(){return U.parsed.value.category},displayedSubcategory(){return U.parsed.value.subcategory}},created(){is.fetchMenuItems().then(e=>{if(!U.parsed.value.subcategory){const t=e[0],i=t.subcategories[0];is.enterSubcategory(t,i),this.propagateUrlChange(t,i)}}),Object(D["watch"])(()=>U.parsed.value,e=>{const t=is.findSubcategory(e.category,e.subcategory);is.enterSubcategory(t.category,t.subcategory,t.subsubcategory)}),M.on("matomoPageChange",()=>{this.initialLoad||window.globalAjaxQueue.abort(),this.helpShownCategory=null,this.showSubcategoryHelpOnLoad&&(this.showHelp(this.showSubcategoryHelpOnLoad.category,this.showSubcategoryHelpOnLoad.subcategory),this.showSubcategoryHelpOnLoad=null),window.$("#loadingError,#loadingRateLimitError").hide(),this.initialLoad=!1}),M.on("updateReportingMenu",()=>{is.reloadMenuItems().then(()=>{const e=U.parsed.value.category,t=U.parsed.value.subcategory;if(e&&t){const i=is.findSubcategory(e,t);i.category&&is.enterSubcategory(i.category,i.subcategory,i.subsubcategory)}}),rs.reloadAvailableWidgets()})},methods:{propagateUrlChange(e,t){const i=U.parsed.value;i.category===e.id&&i.subcategory===t.id?this.loadSubcategory(e,t):U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{category:e.id,subcategory:t.id}))},loadCategory(e){$o.remove(ss);const t=is.toggleCategory(e),{subcategories:i}=e,o=i&&1===i.length||e.widget&&i&&i.length;if(t&&o){this.helpShownCategory=null;const t=e.subcategories[0];this.propagateUrlChange(e,t)}},loadSubcategory(e,t,i){i&&(i.shiftKey||i.ctrlKey||i.metaKey)||($o.remove(ss),t&&t.id===U.parsed.value.subcategory&&e.id===U.parsed.value.category&&(this.helpShownCategory=null,setTimeout(()=>{M.postEvent("loadPage",e.id,t.id)})))},makeUrl(e,t){const{idSite:i,period:o,date:n,segment:a,comparePeriods:r,compareDates:s,compareSegments:l}=U.parsed.value;return U.stringify({idSite:i,period:o,date:n,segment:a,comparePeriods:r,compareDates:s,compareSegments:l,category:e.id,subcategory:t.id})},htmlEntities(e){return M.helper.htmlEntities(e)},showHelp(e,t,i){const o=U.parsed.value,n=o.category,r=o.subcategory;if((n!==e.id||r!==t.id)&&i)return this.showSubcategoryHelpOnLoad={category:e,subcategory:t},void U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{category:e.id,subcategory:t.id}));if(this.helpShownCategory&&e.id===this.helpShownCategory.category&&t.id===this.helpShownCategory.subcategory)return $o.remove(ss),void(this.helpShownCategory=null);const s=a("CoreHome_ReportingCategoryHelpPrefix",e.name,t.name),l=`${s}
`;$o.show({context:"info",id:ss,type:"help",noclear:!0,class:"help-notification",message:l+t.help,placeat:"#notificationContainer",prepend:!0}),this.helpShownCategory={category:e.id,subcategory:t.id}}}});ls.render=zr;var cs=ls;function ds(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class us{constructor(){ds(this,"privateState",Object(D["reactive"])({reports:[]})),ds(this,"state",Object(D["readonly"])(this.privateState)),ds(this,"reports",Object(D["computed"])(()=>this.state.reports)),ds(this,"reportsPromise",void 0)}findReport(e,t){return this.reports.value.find(i=>i.module===e&&i.action===t)}fetchReportMetadata(){return this.reportsPromise||(this.reportsPromise=te.fetch({method:"API.getReportMetadata",filter_limit:"-1",idSite:I.idSite||U.parsed.value.idSite}).then(e=>(this.privateState.reports=e,e))),this.reportsPromise.then(()=>this.reports.value)}}var ms=new us;const ps={class:"widgetLoader"},hs={key:0},gs={key:1,class:"notification system notification-error"},bs=["href"],fs={key:2,class:"notification system notification-error"},vs={class:"theWidgetContent",ref:"widgetContent"};function Os(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ps,[Object(D["createVNode"])(r,{"loading-message":e.finalLoadingMessage,loading:e.loading},null,8,["loading-message","loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,[e.widgetName?(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",hs,Object(D["toDisplayString"])(e.widgetName),1)):Object(D["createCommentVNode"])("",!0),e.loadingFailedRateLimit?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",fs,Object(D["toDisplayString"])(e.translate("General_ErrorRateLimit")),1)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",gs,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_ErrorRequest","",""))+" ",1),e.hasErrorFaqLink?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",href:e.externalRawLink("https://matomo.org/faq/troubleshooting/faq_19489/")},Object(D["toDisplayString"])(e.translate("General_ErrorRequestFaqLink")),9,bs)):Object(D["createCommentVNode"])("",!0)]))],512),[[D["vShow"],e.loadingFailed]]),Object(D["createElementVNode"])("div",vs,null,512)])}function ys(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */class us{constructor(){ds(this,"privateState",Object(D["reactive"])({reports:[]})),ds(this,"state",Object(D["readonly"])(this.privateState)),ds(this,"reports",Object(D["computed"])(()=>this.state.reports)),ds(this,"reportsPromise",void 0)}findReport(e,t){return this.reports.value.find(i=>i.module===e&&i.action===t)}fetchReportMetadata(){return this.reportsPromise||(this.reportsPromise=te.fetch({method:"API.getReportMetadata",filter_limit:"-1",idSite:M.idSite||U.parsed.value.idSite}).then(e=>(this.privateState.reports=e,e))),this.reportsPromise.then(()=>this.reports.value)}}var ms=new us;const ps={class:"widgetLoader"},hs={key:0},gs={key:1,class:"notification system notification-error"},bs=["href"],fs={key:2,class:"notification system notification-error"},vs={class:"theWidgetContent",ref:"widgetContent"};function Os(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ps,[Object(D["createVNode"])(r,{"loading-message":e.finalLoadingMessage,loading:e.loading},null,8,["loading-message","loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,[e.widgetName?(Object(D["openBlock"])(),Object(D["createElementBlock"])("h2",hs,Object(D["toDisplayString"])(e.widgetName),1)):Object(D["createCommentVNode"])("",!0),e.loadingFailedRateLimit?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",fs,Object(D["toDisplayString"])(e.translate("General_ErrorRateLimit")),1)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",gs,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_ErrorRequest","",""))+" ",1),e.hasErrorFaqLink?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",href:e.externalRawLink("https://matomo.org/faq/troubleshooting/faq_19489/")},Object(D["toDisplayString"])(e.translate("General_ErrorRequestFaqLink")),9,bs)):Object(D["createCommentVNode"])("",!0)]))],512),[[D["vShow"],e.loadingFailed]]),Object(D["createElementVNode"])("div",vs,null,512)])}function ys(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class js{constructor(){ys(this,"privateState",Object(D["reactive"])({module:"",action:"",category:"",subcategory:"",idSite:"",widgetSearchFilters:{}})),ys(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),I.on("matomoPageChange",()=>{this.isCurrentPage()||this.resetSearchFilters(),this.updateCurrentRoutingFromUrl()})}resetSearchFilters(){this.privateState.widgetSearchFilters={}}getSearchFilters(e){return this.state.value.widgetSearchFilters[e]||{}}setSearchFilters(e,t){e&&(this.privateState.widgetSearchFilters[e]=t)}updateCurrentRoutingFromUrl(){const e=U.parsed.value;this.privateState.module=e.module,this.privateState.action=e.action,this.privateState.category=e.category,this.privateState.subcategory=e.subcategory,this.privateState.idSite=e.idSite}isCurrentPage(){const e=U.parsed.value;return this.state.value.module===e.module&&this.state.value.action===e.action&&this.state.value.category===e.category&&this.state.value.subcategory===e.subcategory&&this.state.value.idSite===e.idSite}}var ws=new js,Ss=Object(D["defineComponent"])({props:{widgetParams:Object,widgetName:String,loadingMessage:String},components:{ActivityIndicator:We},data(){return{loading:!1,loadingFailed:!1,loadingFailedRateLimit:!1,changeCounter:0,lastWidgetAbortController:null}},watch:{widgetParams(e){e&&this.loadWidgetUrl(e,this.changeCounter+=1)}},computed:{finalLoadingMessage(){return this.loadingMessage?this.loadingMessage:this.widgetName?a("General_LoadingPopover",this.widgetName):a("General_LoadingData")},hasErrorFaqLink(){const e=I.config.enable_general_settings_admin,t=I.config.enable_plugins_admin;return I.hasSuperUserAccess&&(e||t)}},mounted(){this.widgetParams&&this.loadWidgetUrl(this.widgetParams,this.changeCounter+=1)},beforeUnmount(){this.cleanupLastWidgetContent()},methods:{abortHttpRequestIfNeeded(){this.lastWidgetAbortController&&(this.lastWidgetAbortController.abort(),this.lastWidgetAbortController=null)},cleanupLastWidgetContent(){const e=this.$refs.widgetContent;I.helper.destroyVueComponent(e),e&&(e.innerHTML="")},getWidgetUrl(e){const t=U.parsed.value;let i=Object.assign({},e||{});const o=Object.keys(Object.assign(Object.assign({},U.hashParsed.value),{},{idSite:"",period:"",date:"",segment:"",widget:""}));return o.forEach(e=>{"category"!==e&&"subcategory"!==e&&(e in i||(i[e]=t[e]))}),Mi.isComparisonEnabled()&&(i=Object.assign(Object.assign({},i),{},{comparePeriods:t.comparePeriods,compareDates:t.compareDates,compareSegments:t.compareSegments})),e&&"showtitle"in e||(i.showtitle="1"),I.shouldPropagateTokenAuth&&t.token_auth&&(I.broadcast.isWidgetizeRequestWithoutSession()||(i.force_api_session="1"),i.token_auth=t.token_auth),i.random=Math.floor(1e4*Math.random()),i},loadWidgetUrl(e,t){this.loading=!0,this.abortHttpRequestIfNeeded(),this.cleanupLastWidgetContent(),this.lastWidgetAbortController=new AbortController;let i={};e.uniqueId&&(i=ws.getSearchFilters(e.uniqueId)),te.fetch(this.getWidgetUrl(Object.assign(e,i)),{format:"html",abortController:this.lastWidgetAbortController}).then(i=>{if(t!==this.changeCounter||"string"!==typeof i)return;this.lastWidgetAbortController=null,this.loading=!1,this.loadingFailed=!1;const o=this.$refs.widgetContent;window.$(o).html(i);const n=window.$(o).children();if(this.widgetName){let e=n.find("> .card-content .card-title");e.length||(e=n.find("> h2")),e.length&&e.html(I.helper.htmlEntities(this.widgetName))}I.helper.compileVueEntryComponents(n),$o.parseNotificationDivs(),setTimeout(()=>{I.postEvent("widget:loaded",{parameters:e,element:n})})}).catch(e=>{t===this.changeCounter&&(this.lastWidgetAbortController=null,this.cleanupLastWidgetContent(),this.loading=!1,"abort"!==e.xhrStatus&&(429===e.status&&(this.loadingFailedRateLimit=!0),this.loadingFailed=!0))})}}});Ss.render=Os;var Cs=Ss;const ks={class:"widget-container"};function Ds(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",ks,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.actualContainer,(e,t)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:t},[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{widget:e,"prevent-recursion":!0},null,8,["widget"])])]))),128))])}const Es=Ce("CoreHome","Widget");var Ps=Object(D["defineComponent"])({props:{container:{type:Array,required:!0}},components:{Widget:Es},computed:{actualContainer(){var e,t,i;const o=this.container;if(null===o||void 0===o||null===(e=o[0])||void 0===e||!e.parameters)return o;const[n]=o,a="1"===(null===(t=n.parameters)||void 0===t?void 0:t.widget)||1===(null===(i=n.parameters)||void 0===i?void 0:i.widget),r=a&&"graphEvolution"===n.viewDataTable,s=r?Object.assign(Object.assign({},n),{},{parameters:Object.assign(Object.assign({},n.parameters),{},{showtitle:"0"})}):n;return[s,...o.slice(1)]}}});Ps.render=Ds;var Ts=Ps;const Vs={class:"reportsByDimensionView"},xs={class:"entityList"},Ns={class:"listCircle"},Bs=["onClick"],Ms={class:"dimension"},Is={class:"reportContainer"},Fs=Object(D["createElementVNode"])("div",{class:"clear"},null,-1);function Ls(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Vs,[Object(D["createElementVNode"])("div",xs,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgetsByCategory,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("ul",Ns,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.widgets,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:i=>e.selectWidget(t)},[Object(D["createElementVNode"])("span",Ms,Object(D["toDisplayString"])(t.name),1)],10,Bs))),128))])]))),128))]),Object(D["createElementVNode"])("div",Is,[e.selectedWidget.parameters?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(D["createCommentVNode"])("",!0)]),Fs])}var Rs=Object(D["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:Cs},data(){return{selectedWidget:null}},created(){[this.selectedWidget]=this.widgetsSorted},computed:{widgetsSorted(){return Qr(this.widgets)},widgetsByCategory(){const e={};return this.widgetsSorted.forEach(t=>{var i;const o=null===(i=t.subcategory)||void 0===i?void 0:i.name;o&&(e[o]||(e[o]={name:o,order:t.order,widgets:[]}),e[o].widgets.push(t))}),Qr(Object.values(e))}},methods:{selectWidget(e){this.selectedWidget=Object.assign({},e)}}});Rs.render=Ls;var As=Rs;const _s=["id"],Hs={key:1},$s={key:2};function Us(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader"),s=Object(D["resolveComponent"])("WidgetContainer"),l=Object(D["resolveComponent"])("WidgetByDimensionContainer"),c=Object(D["resolveDirective"])("tooltips");return e.actualWidget&&e.showWidget?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[!e.actualWidget.isContainer&&e.actualWidget.parameters?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Hs,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(s,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",$s,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(l,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(D["createCommentVNode"])("",!0)],10,_s)),[[c,{content:e.tooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function qs(e,t){let i=void 0;return Object.values(e||{}).some(e=>(i=e.find(e=>{var i;return e&&e.isContainer&&(null===(i=e.parameters)||void 0===i?void 0:i.containerId)===t}),i)),i}var Ws=Object(D["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:Cs,WidgetContainer:Ts,WidgetByDimensionContainer:As},directives:{Tooltips:st},data(){return{showWidget:!1}},setup(){function e(){const e=window.$(this);if(e.hasClass("matomo-form-field"))return"";const t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"
"))}return{tooltipContent:e}},created(){const{actualWidget:e}=this;if(e&&e.middlewareParameters){const t=e.middlewareParameters;te.fetch(t).then(e=>{this.showWidget=!!e})}else this.showWidget=!0},computed:{allWidgets(){return rs.widgets.value},actualWidget(){const e=this.widget;if(e){const t=Object.assign({},e);if(e&&e.isReport&&!e.documentation){const i=ms.findReport(e.module,e.action);i&&i.documentation&&(t.documentation=i.documentation)}return e.uniqueId&&(t.parameters=Object.assign(Object.assign({},t.parameters),{},{uniqueId:e.uniqueId})),t}if(this.containerid){const e=qs(this.allWidgets,this.containerid);if(e){const t=Object.assign({},e);if(this.widgetized){t.isFirstInPage=!0,t.parameters=Object.assign(Object.assign({},t.parameters),{},{widget:"1"});const e=ns(t);e&&(t.widgets=e.map(e=>Object.assign(Object.assign({},e),{},{parameters:Object.assign(Object.assign({},e.parameters),{},{widget:"1",containerId:this.containerid})})))}return t}}return null}}});Ws.render=Us;var zs=Ws;const Gs={class:"reporting-page"},Ks={key:1,class:"col s12 l6 leftWidgetColumn"},Ys={key:2,class:"col s12 l6 rightWidgetColumn"};function Qs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Gs,[Object(D["createVNode"])(r,{loading:e.loading},null,8,["loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,Object(D["toDisplayString"])(e.translate("CoreHome_NoSuchPage")),513),[[D["vShow"],e.hasNoPage]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgets,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"row",key:e.uniqueId},[e.group?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:0,class:"col s12 fullWidgetColumn",widget:e},null,8,["widget"])),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ks,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.left,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ys,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.right,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0)]))),128))])}function Js(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */class js{constructor(){ys(this,"privateState",Object(D["reactive"])({module:"",action:"",category:"",subcategory:"",idSite:"",widgetSearchFilters:{}})),ys(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),M.on("matomoPageChange",()=>{this.isCurrentPage()||this.resetSearchFilters(),this.updateCurrentRoutingFromUrl()})}resetSearchFilters(){this.privateState.widgetSearchFilters={}}getSearchFilters(e){return this.state.value.widgetSearchFilters[e]||{}}setSearchFilters(e,t){e&&(this.privateState.widgetSearchFilters[e]=t)}updateCurrentRoutingFromUrl(){const e=U.parsed.value;this.privateState.module=e.module,this.privateState.action=e.action,this.privateState.category=e.category,this.privateState.subcategory=e.subcategory,this.privateState.idSite=e.idSite}isCurrentPage(){const e=U.parsed.value;return this.state.value.module===e.module&&this.state.value.action===e.action&&this.state.value.category===e.category&&this.state.value.subcategory===e.subcategory&&this.state.value.idSite===e.idSite}}var ws=new js,Ss=Object(D["defineComponent"])({props:{widgetParams:Object,widgetName:String,loadingMessage:String},components:{ActivityIndicator:We},data(){return{loading:!1,loadingFailed:!1,loadingFailedRateLimit:!1,changeCounter:0,lastWidgetAbortController:null}},watch:{widgetParams(e){e&&this.loadWidgetUrl(e,this.changeCounter+=1)}},computed:{finalLoadingMessage(){return this.loadingMessage?this.loadingMessage:this.widgetName?a("General_LoadingPopover",this.widgetName):a("General_LoadingData")},hasErrorFaqLink(){const e=M.config.enable_general_settings_admin,t=M.config.enable_plugins_admin;return M.hasSuperUserAccess&&(e||t)}},mounted(){this.widgetParams&&this.loadWidgetUrl(this.widgetParams,this.changeCounter+=1)},beforeUnmount(){this.cleanupLastWidgetContent()},methods:{abortHttpRequestIfNeeded(){this.lastWidgetAbortController&&(this.lastWidgetAbortController.abort(),this.lastWidgetAbortController=null)},cleanupLastWidgetContent(){const e=this.$refs.widgetContent;M.helper.destroyVueComponent(e),e&&(e.innerHTML="")},getWidgetUrl(e){const t=U.parsed.value;let i=Object.assign({},e||{});const o=Object.keys(Object.assign(Object.assign({},U.hashParsed.value),{},{idSite:"",period:"",date:"",segment:"",widget:""}));return o.forEach(e=>{"category"!==e&&"subcategory"!==e&&(e in i||(i[e]=t[e]))}),Ii.isComparisonEnabled()&&(i=Object.assign(Object.assign({},i),{},{comparePeriods:t.comparePeriods,compareDates:t.compareDates,compareSegments:t.compareSegments})),e&&"showtitle"in e||(i.showtitle="1"),M.shouldPropagateTokenAuth&&t.token_auth&&(M.broadcast.isWidgetizeRequestWithoutSession()||(i.force_api_session="1"),i.token_auth=t.token_auth),i.random=Math.floor(1e4*Math.random()),i},loadWidgetUrl(e,t){this.loading=!0,this.abortHttpRequestIfNeeded(),this.cleanupLastWidgetContent(),this.lastWidgetAbortController=new AbortController;let i={};e.uniqueId&&(i=ws.getSearchFilters(e.uniqueId)),te.fetch(this.getWidgetUrl(Object.assign(e,i)),{format:"html",abortController:this.lastWidgetAbortController}).then(i=>{if(t!==this.changeCounter||"string"!==typeof i)return;this.lastWidgetAbortController=null,this.loading=!1,this.loadingFailed=!1;const o=this.$refs.widgetContent;window.$(o).html(i);const n=window.$(o).children();if(this.widgetName){let e=n.find("> .card-content .card-title");e.length||(e=n.find("> h2")),e.length&&e.html(M.helper.htmlEntities(this.widgetName))}M.helper.compileVueEntryComponents(n),$o.parseNotificationDivs(),setTimeout(()=>{M.postEvent("widget:loaded",{parameters:e,element:n})})}).catch(e=>{t===this.changeCounter&&(this.lastWidgetAbortController=null,this.cleanupLastWidgetContent(),this.loading=!1,"abort"!==e.xhrStatus&&(429===e.status&&(this.loadingFailedRateLimit=!0),this.loadingFailed=!0))})}}});Ss.render=Os;var Cs=Ss;function ks(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Alert");return e.loading?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,loading:!0,"loading-message":e.translate("General_LoadingData")},null,8,["loading-message"])):e.loadingFailed?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,severity:"danger"},{default:Object(D["withCtx"])(()=>[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_ErrorRequest","","")),1)]),_:1})):e.componentToRender?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.componentToRender),Object(D["normalizeProps"])(Object(D["mergeProps"])({key:2},e.componentProps)),null,16)):Object(D["createCommentVNode"])("",!0)}var Ds=Object(D["defineComponent"])({props:{widget:{type:Object,required:!0},widgetized:Boolean},components:{ActivityIndicator:We,Alert:Ke},data(){return{componentToRender:null,loading:!1,loadingFailed:!1}},watch:{widget:{handler(){this.loadComponent()},immediate:!0}},computed:{componentProps(){var e;const t=this.widget;return Object.assign(Object.assign({},(null===(e=t.clientComponent)||void 0===e?void 0:e.props)||{}),{},{uniqueId:t.uniqueId,widgetName:t.name,widgetized:this.widgetized,isWidget:this.widgetized,isWide:t.isWide})}},methods:{async loadComponent(){const e=this.widget,{clientComponent:t}=e;this.loading=!0,this.loadingFailed=!1,this.componentToRender=null;try{if(!t)throw new Error("Missing client-rendered widget metadata");const e=await Se(t.plugin),i=null===e||void 0===e?void 0:e[t.name];if(!i)throw new Error(`Unknown widget component ${t.plugin}.${t.name}`);this.componentToRender=Object(D["markRaw"])(i)}catch(i){this.loadingFailed=!0}finally{this.loading=!1}}}});Ds.render=ks;var Es=Ds;const Ps={class:"widget-container"};function Ts(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ps,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.actualContainer,(e,t)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:t},[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{widget:e,"prevent-recursion":!0},null,8,["widget"])])]))),128))])}const Vs=Ce("CoreHome","Widget");var xs=Object(D["defineComponent"])({props:{container:{type:Array,required:!0}},components:{Widget:Vs},computed:{actualContainer(){var e,t,i;const o=this.container;if(null===o||void 0===o||null===(e=o[0])||void 0===e||!e.parameters)return o;const[n]=o,a="1"===(null===(t=n.parameters)||void 0===t?void 0:t.widget)||1===(null===(i=n.parameters)||void 0===i?void 0:i.widget),r=a&&"graphEvolution"===n.viewDataTable,s=r?Object.assign(Object.assign({},n),{},{parameters:Object.assign(Object.assign({},n.parameters),{},{showtitle:"0"})}):n;return[s,...o.slice(1)]}}});xs.render=Ts;var Ns=xs;const Bs={class:"reportsByDimensionView"},Is={class:"entityList"},Ms={class:"listCircle"},Fs=["onClick"],Ls={class:"dimension"},Rs={class:"reportContainer"},As=Object(D["createElementVNode"])("div",{class:"clear"},null,-1);function _s(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Bs,[Object(D["createElementVNode"])("div",Is,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgetsByCategory,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("ul",Ms,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.widgets,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:i=>e.selectWidget(t)},[Object(D["createElementVNode"])("span",Ls,Object(D["toDisplayString"])(t.name),1)],10,Fs))),128))])]))),128))]),Object(D["createElementVNode"])("div",Rs,[e.selectedWidget.parameters?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(D["createCommentVNode"])("",!0)]),As])}var Hs=Object(D["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:Cs},data(){return{selectedWidget:null}},created(){[this.selectedWidget]=this.widgetsSorted},computed:{widgetsSorted(){return Qr(this.widgets)},widgetsByCategory(){const e={};return this.widgetsSorted.forEach(t=>{var i;const o=null===(i=t.subcategory)||void 0===i?void 0:i.name;o&&(e[o]||(e[o]={name:o,order:t.order,widgets:[]}),e[o].widgets.push(t))}),Qr(Object.values(e))}},methods:{selectWidget(e){this.selectedWidget=Object.assign({},e)}}});Hs.render=_s;var $s=Hs;const Us=["id"],qs={key:2},Ws={key:3};function zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader"),s=Object(D["resolveComponent"])("ClientWidgetRenderer"),l=Object(D["resolveComponent"])("WidgetContainer"),c=Object(D["resolveComponent"])("WidgetByDimensionContainer"),d=Object(D["resolveDirective"])("tooltips");return e.actualWidget&&e.showWidget?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[e.actualWidget.isContainer||!e.actualWidget.parameters||e.actualWidget.clientComponent?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])),!e.actualWidget.isContainer&&e.actualWidget.clientComponent?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,widget:e.actualWidget,widgetized:e.widgetized},null,8,["widget","widgetized"])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",qs,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(l,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ws,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(c,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(D["createCommentVNode"])("",!0)],10,Us)),[[d,{content:e.tooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function Gs(e,t){let i=void 0;return Object.values(e||{}).some(e=>(i=e.find(e=>{var i;return e&&e.isContainer&&(null===(i=e.parameters)||void 0===i?void 0:i.containerId)===t}),i)),i}var Ks=Object(D["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:Cs,WidgetContainer:Ns,WidgetByDimensionContainer:$s,ClientWidgetRenderer:Es},directives:{Tooltips:st},data(){return{showWidget:!1}},setup(){function e(){const e=window.$(this);if(e.hasClass("matomo-form-field"))return"";const t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"
"))}return{tooltipContent:e}},created(){const{actualWidget:e}=this;if(e&&e.middlewareParameters){const t=e.middlewareParameters;te.fetch(t).then(e=>{this.showWidget=!!e})}else this.showWidget=!0},computed:{allWidgets(){return rs.widgets.value},actualWidget(){const e=this.widget;if(e){const t=Object.assign({},e);if(e&&e.isReport&&!e.documentation){const i=ms.findReport(e.module,e.action);i&&i.documentation&&(t.documentation=i.documentation)}return e.uniqueId&&(t.parameters=Object.assign(Object.assign({},t.parameters),{},{uniqueId:e.uniqueId})),t}if(this.containerid){const e=Gs(this.allWidgets,this.containerid);if(e){const t=Object.assign({},e);if(this.widgetized){t.isFirstInPage=!0,t.parameters=Object.assign(Object.assign({},t.parameters),{},{widget:"1"});const e=ns(t);e&&(t.widgets=e.map(e=>Object.assign(Object.assign({},e),{},{parameters:Object.assign(Object.assign({},e.parameters),{},{widget:"1",containerId:this.containerid})})))}return t}}return null}}});Ks.render=zs;var Ys=Ks;const Qs={class:"reporting-page"},Js={key:1,class:"col s12 l6 leftWidgetColumn"},Xs={key:2,class:"col s12 l6 rightWidgetColumn"};function Zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Qs,[Object(D["createVNode"])(r,{loading:e.loading},null,8,["loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,Object(D["toDisplayString"])(e.translate("CoreHome_NoSuchPage")),513),[[D["vShow"],e.hasNoPage]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgets,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"row",key:e.uniqueId},[e.group?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:0,class:"col s12 fullWidgetColumn",widget:e},null,8,["widget"])),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Js,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.left,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Xs,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.right,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0)]))),128))])}function el(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Xs(e){return!!(e.isContainer&&e.layout&&"ByDimension"===e.layout||"bydimension"===e.viewDataTable)||(!!e.isWide||e.viewDataTable&&("tableAllColumns"===e.viewDataTable||"sparklines"===e.viewDataTable||"graphEvolution"===e.viewDataTable))}function Zs(e){if(e&&e[0]){const t=[...e],i=e[0];return i.group?t[0]=Object.assign(Object.assign({},t[0]),{},{left:Zs(i.left||[]),right:Zs(i.right||[])}):t[0]=Object.assign(Object.assign({},t[0]),{},{isFirstInPage:!0}),t}return e}class el{constructor(){Js(this,"privateState",Object(D["reactive"])({})),Js(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),Js(this,"page",Object(D["computed"])(()=>this.state.value.page)),Js(this,"widgets",Object(D["computed"])(()=>{const e=this.page.value;if(!e)return[];let t=[];const i={},o=e=>e.isReport&&i[`${e.module}.${e.action}`],n=e=>{if(!e.isReport)return[];const t=ms.findReport(e.module,e.action);return t&&t.relatedReports?t.relatedReports:[]};if((e.widgets||[]).forEach(e=>{o(e)||(n(e).forEach(e=>{i[`${e.module}.${e.action}`]=!0}),t.push(e))}),t=Qr(t),1===t.length)return Zs(t);const a=[];for(let s=0;s(this.privateState.page=Yr.findPage(e,t),this.page.value))}resetPage(){this.privateState.page=void 0}}var tl=new el;function il(){const e="category=General_Visitors&subcategory=Live_VisitorLog",t=window.broadcast.buildReportingUrl(e);let i=a("CoreHome_PeriodHasOnlyRawData",``,"");I.visitorLogEnabled||(i=a("CoreHome_PeriodHasOnlyRawDataNoVisitsLog")),$o.show({id:"onlyRawData",animate:!1,context:"info",message:i,type:"transient"})}function ol(){$o.remove("onlyRawData")}var nl=Object(D["defineComponent"])({components:{ActivityIndicator:We,Widget:zs},data(){return{loading:!1,hasRawData:!1,hasNoVisits:!1,dateLastChecked:null,hasNoPage:!1}},created(){tl.resetPage(),this.loading=!0,this.renderInitialPage(),Object(D["watch"])(()=>U.parsed.value,(e,t)=>{e.category===t.category&&e.subcategory===t.subcategory&&e.period===t.period&&e.date===t.date&&e.segment===t.segment&&JSON.stringify(e.compareDates)===JSON.stringify(t.compareDates)&&JSON.stringify(e.comparePeriods)===JSON.stringify(t.comparePeriods)&&JSON.stringify(e.compareSegments)===JSON.stringify(t.compareSegments)&&JSON.stringify(e.columns||"")===JSON.stringify(t.columns||"")||(e.date===t.date&&e.period===t.period||(ol(),this.dateLastChecked=null,this.hasRawData=!1,this.hasNoVisits=!1),this.renderPage(e.category,e.subcategory,e.period,e.date,e.segment))}),I.on("loadPage",(e,t)=>{const i=U.parsed.value;this.renderPage(e,t,i.period,i.date,i.segment)})},computed:{widgets(){return tl.widgets.value}},methods:{renderPage(e,t,i,o,n){if(!e||!t)return tl.resetPage(),void(this.loading=!1);try{c.parse(i,o)}catch(s){return $o.show({id:"invalidDate",animate:!1,context:"error",message:a("CoreHome_DateInvalid"),type:"transient"}),tl.resetPage(),void(this.loading=!1)}$o.remove("invalidDate"),I.postEvent("matomoPageChange",{}),$o.clearTransientNotifications(),c.parse(i,o).containsToday()&&this.showOnlyRawDataMessageIfRequired(e,t,i,o,n);const r={category:e,subcategory:t};if(I.postEvent("ReportingPage.loadPage",r),r.promise)return this.loading=!0,void Promise.resolve(r.promise).finally(()=>{this.loading=!1});tl.fetchPage(e,t).then(()=>{const t=!tl.page.value;if(t){const t=Yr.findPageInCategory(e);if(t&&t.subcategory)return void U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{subcategory:t.subcategory.id}))}this.hasNoPage=t,this.loading=!1})},renderInitialPage(){const e=U.parsed.value;this.renderPage(e.category,e.subcategory,e.period,e.date,e.segment)},showOnlyRawDataMessageIfRequired(e,t,i,o,n){if(this.hasRawData&&this.hasNoVisits&&il(),n)return void ol();const a=["Live_VisitorLog","General_RealTime","UserCountryMap_RealTimeMap","MediaAnalytics_TypeAudienceLog","MediaAnalytics_TypeRealTime","FormAnalytics_TypeRealTime","Goals_AddNewGoal"],r=["HeatmapSessionRecording_Heatmaps","HeatmapSessionRecording_SessionRecordings","Marketplace_Marketplace"];if(-1!==a.indexOf(t)||-1!==r.indexOf(e)||-1!==t.toLowerCase().indexOf("manage"))return void ol();const s=6e4;this.dateLastChecked&&(new Date).valueOf()-this.dateLastChecked.valueOf()(this.dateLastChecked=new Date,e.value>0?(this.hasNoVisits=!1,void ol()):(this.hasNoVisits=!0,this.hasRawData?void il():te.fetch({method:"Live.getMostRecentVisitsDateTime",date:o,period:i}).then(e=>{if(!e||""===e.value)return this.hasRawData=!1,void ol();this.hasRawData=!0,il()}))))}}});nl.render=Qs;var al=nl;const rl={class:"report-export-popover row",id:"reportExport"},sl={class:"col l6"},ll={name:"format"},cl={name:"option_flat"},dl={name:"option_show_dimensions"},ul={name:"option_expanded"},ml={name:"option_format_metrics"},pl={class:"col l6"},hl={name:"filter_type"},gl={class:"filter_limit"},bl={name:"filter_limit_all"},fl={key:0,name:"filter_limit"},vl={key:1,name:"filter_limit"},Ol={class:"col l12"},yl=["value"],jl=["innerHTML"],wl={class:"col l12"},Sl=["href","title"],Cl=["innerHTML"];function kl(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field"),s=Object(D["resolveDirective"])("select-on-focus");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",rl,[Object(D["createElementVNode"])("div",sl,[Object(D["createElementVNode"])("div",ll,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"format",title:e.translate("CoreHome_ExportFormat"),modelValue:e.reportFormat,"onUpdate:modelValue":t[0]||(t[0]=t=>e.reportFormat=t),"full-width":!0,options:e.availableReportFormats[e.reportType]},null,8,["title","modelValue","options"])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",cl,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_flat",title:e.translate("CoreHome_FlattenReport"),modelValue:e.optionFlatModel,"onUpdate:modelValue":t[1]||(t[1]=t=>e.optionFlatModel=t)},null,8,["title","modelValue"]),[[D["vShow"],e.canExportFlat]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",dl,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_show_dimensions",title:e.translate("CoreHome_IncludeDimensionsSeparately"),modelValue:e.optionShowDimensions,"onUpdate:modelValue":t[2]||(t[2]=t=>e.optionShowDimensions=t)},null,8,["title","modelValue"]),[[D["vShow"],e.canExportFlat&&e.hasMultipleDimensions&&e.optionFlatModel]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",ul,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_expanded",title:e.translate("CoreHome_ExpandSubtables"),modelValue:e.optionExpandedModel,"onUpdate:modelValue":t[3]||(t[3]=t=>e.optionExpandedModel=t)},null,8,["title","modelValue"]),[[D["vShow"],e.hasSubtables&&!e.isCsvOrTsv]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",ml,[Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_format_metrics",title:e.translate("CoreHome_FormatMetrics"),modelValue:e.optionFormatMetrics,"onUpdate:modelValue":t[4]||(t[4]=t=>e.optionFormatMetrics=t)},null,8,["title","modelValue"])])])]),Object(D["createElementVNode"])("div",pl,[Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",hl,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"filter_type",title:e.translate("CoreHome_ReportType"),modelValue:e.reportType,"onUpdate:modelValue":t[5]||(t[5]=t=>e.reportType=t),"full-width":!0,options:e.availableReportTypes},null,8,["title","modelValue","options"])])]),Object(D["createElementVNode"])("div",gl,[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",bl,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"filter_limit_all",title:e.translate("CoreHome_RowLimit"),modelValue:e.reportLimitAll,"onUpdate:modelValue":t[6]||(t[6]=t=>e.reportLimitAll=t),"full-width":!0,options:e.limitAllOptions},null,8,["title","modelValue","options"])],512),[[D["vShow"],!e.maxFilterLimit||e.maxFilterLimit<=0]]),"no"===e.reportLimitAll&&e.maxFilterLimit<=0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",fl,[Object(D["createVNode"])(r,{uicontrol:"number",name:"filter_limit",min:1,modelValue:e.reportLimit,"onUpdate:modelValue":t[7]||(t[7]=t=>e.reportLimit=t),"full-width":!0},null,8,["modelValue"])])):Object(D["createCommentVNode"])("",!0),"no"===e.reportLimitAll&&e.maxFilterLimit>0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",vl,[Object(D["createVNode"])(r,{uicontrol:"number",name:"filter_limit",min:1,max:e.maxFilterLimit,modelValue:e.reportLimit,"onUpdate:modelValue":t[8]||(t[8]=t=>e.reportLimit=t),value:e.reportLimit,"full-width":!0,title:e.filterLimitTooltip},null,8,["max","modelValue","value","title"])])):Object(D["createCommentVNode"])("",!0)])]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Ol,[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("textarea",{readonly:"",class:"exportFullUrl",value:e.exportLinkWithoutToken},[Object(D["createTextVNode"])("\n ")],8,yl)),[[s,{}]]),Object(D["createElementVNode"])("div",{class:"tooltip",innerHTML:e.$sanitize(e.translate("CoreHome_ExportTooltipWithLink","","","ENTER_YOUR_TOKEN_AUTH_HERE"))},null,8,jl)],512),[[D["vShow"],e.showUrl]]),Object(D["createElementVNode"])("div",wl,[Object(D["createElementVNode"])("a",{class:"btn",href:e.exportLink,target:"_new",title:e.translate("CoreHome_ExportTooltip")},Object(D["toDisplayString"])(e.translate("General_Export")),9,Sl),Object(D["createElementVNode"])("a",{href:"javascript:",onClick:t[9]||(t[9]=t=>e.showUrl=!e.showUrl),class:"toggle-export-url"},[Object(D["withDirectives"])(Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translate("CoreHome_ShowExportUrl")),513),[[D["vShow"],!e.showUrl]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translate("CoreHome_HideExportUrl")),513),[[D["vShow"],e.showUrl]])])]),e.additionalContent?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:"col l12 report-export-popover-footer",innerHTML:e.$sanitize(e.additionalContent)},null,8,Cl)):Object(D["createCommentVNode"])("",!0)])} + */function tl(e){return!!(e.isContainer&&e.layout&&"ByDimension"===e.layout||"bydimension"===e.viewDataTable)||(!!e.isWide||e.viewDataTable&&("tableAllColumns"===e.viewDataTable||"sparklines"===e.viewDataTable||"graphEvolution"===e.viewDataTable))}function il(e){if(e&&e[0]){const t=[...e],i=e[0];return i.group?t[0]=Object.assign(Object.assign({},t[0]),{},{left:il(i.left||[]),right:il(i.right||[])}):t[0]=Object.assign(Object.assign({},t[0]),{},{isFirstInPage:!0}),t}return e}class ol{constructor(){el(this,"privateState",Object(D["reactive"])({})),el(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),el(this,"page",Object(D["computed"])(()=>this.state.value.page)),el(this,"widgets",Object(D["computed"])(()=>{const e=this.page.value;if(!e)return[];let t=[];const i={},o=e=>e.isReport&&i[`${e.module}.${e.action}`],n=e=>{if(!e.isReport)return[];const t=ms.findReport(e.module,e.action);return t&&t.relatedReports?t.relatedReports:[]};if((e.widgets||[]).forEach(e=>{o(e)||(n(e).forEach(e=>{i[`${e.module}.${e.action}`]=!0}),t.push(e))}),t=Qr(t),1===t.length)return il(t);const a=[];for(let s=0;s(this.privateState.page=Yr.findPage(e,t),this.page.value))}resetPage(){this.privateState.page=void 0}}var nl=new ol;function al(){const e="category=General_Visitors&subcategory=Live_VisitorLog",t=window.broadcast.buildReportingUrl(e);let i=a("CoreHome_PeriodHasOnlyRawData",``,"");M.visitorLogEnabled||(i=a("CoreHome_PeriodHasOnlyRawDataNoVisitsLog")),$o.show({id:"onlyRawData",animate:!1,context:"info",message:i,type:"transient"})}function rl(){$o.remove("onlyRawData")}var sl=Object(D["defineComponent"])({components:{ActivityIndicator:We,Widget:Ys},data(){return{loading:!1,hasRawData:!1,hasNoVisits:!1,dateLastChecked:null,hasNoPage:!1}},created(){nl.resetPage(),this.loading=!0,this.renderInitialPage(),Object(D["watch"])(()=>U.parsed.value,(e,t)=>{e.category===t.category&&e.subcategory===t.subcategory&&e.period===t.period&&e.date===t.date&&e.segment===t.segment&&JSON.stringify(e.compareDates)===JSON.stringify(t.compareDates)&&JSON.stringify(e.comparePeriods)===JSON.stringify(t.comparePeriods)&&JSON.stringify(e.compareSegments)===JSON.stringify(t.compareSegments)&&JSON.stringify(e.columns||"")===JSON.stringify(t.columns||"")||(e.date===t.date&&e.period===t.period||(rl(),this.dateLastChecked=null,this.hasRawData=!1,this.hasNoVisits=!1),this.renderPage(e.category,e.subcategory,e.period,e.date,e.segment))}),M.on("loadPage",(e,t)=>{const i=U.parsed.value;this.renderPage(e,t,i.period,i.date,i.segment)})},computed:{widgets(){return nl.widgets.value}},methods:{renderPage(e,t,i,o,n){if(!e||!t)return nl.resetPage(),void(this.loading=!1);try{c.parse(i,o)}catch(s){return $o.show({id:"invalidDate",animate:!1,context:"error",message:a("CoreHome_DateInvalid"),type:"transient"}),nl.resetPage(),void(this.loading=!1)}$o.remove("invalidDate"),M.postEvent("matomoPageChange",{}),$o.clearTransientNotifications(),c.parse(i,o).containsToday()&&this.showOnlyRawDataMessageIfRequired(e,t,i,o,n);const r={category:e,subcategory:t};if(M.postEvent("ReportingPage.loadPage",r),r.promise)return this.loading=!0,void Promise.resolve(r.promise).finally(()=>{this.loading=!1});nl.fetchPage(e,t).then(()=>{const t=!nl.page.value;if(t){const t=Yr.findPageInCategory(e);if(t&&t.subcategory)return void U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{subcategory:t.subcategory.id}))}this.hasNoPage=t,this.loading=!1})},renderInitialPage(){const e=U.parsed.value;this.renderPage(e.category,e.subcategory,e.period,e.date,e.segment)},showOnlyRawDataMessageIfRequired(e,t,i,o,n){if(this.hasRawData&&this.hasNoVisits&&al(),n)return void rl();const a=["Live_VisitorLog","General_RealTime","UserCountryMap_RealTimeMap","MediaAnalytics_TypeAudienceLog","MediaAnalytics_TypeRealTime","FormAnalytics_TypeRealTime","Goals_AddNewGoal"],r=["HeatmapSessionRecording_Heatmaps","HeatmapSessionRecording_SessionRecordings","Marketplace_Marketplace"];if(-1!==a.indexOf(t)||-1!==r.indexOf(e)||-1!==t.toLowerCase().indexOf("manage"))return void rl();const s=6e4;this.dateLastChecked&&(new Date).valueOf()-this.dateLastChecked.valueOf()(this.dateLastChecked=new Date,e.value>0?(this.hasNoVisits=!1,void rl()):(this.hasNoVisits=!0,this.hasRawData?void al():te.fetch({method:"Live.getMostRecentVisitsDateTime",date:o,period:i}).then(e=>{if(!e||""===e.value)return this.hasRawData=!1,void rl();this.hasRawData=!0,al()}))))}}});sl.render=Zs;var ll=sl;const cl={class:"report-export-popover row",id:"reportExport"},dl={class:"col l6"},ul={name:"format"},ml={name:"option_flat"},pl={name:"option_show_dimensions"},hl={name:"option_expanded"},gl={name:"option_format_metrics"},bl={class:"col l6"},fl={name:"filter_type"},vl={class:"filter_limit"},Ol={name:"filter_limit_all"},yl={key:0,name:"filter_limit"},jl={key:1,name:"filter_limit"},wl={class:"col l12"},Sl=["value"],Cl=["innerHTML"],kl={class:"col l12"},Dl=["href","title"],El=["innerHTML"];function Pl(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Field"),s=Object(D["resolveDirective"])("select-on-focus");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",cl,[Object(D["createElementVNode"])("div",dl,[Object(D["createElementVNode"])("div",ul,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"format",title:e.translate("CoreHome_ExportFormat"),modelValue:e.reportFormat,"onUpdate:modelValue":t[0]||(t[0]=t=>e.reportFormat=t),"full-width":!0,options:e.availableReportFormats[e.reportType]},null,8,["title","modelValue","options"])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",ml,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_flat",title:e.translate("CoreHome_FlattenReport"),modelValue:e.optionFlatModel,"onUpdate:modelValue":t[1]||(t[1]=t=>e.optionFlatModel=t)},null,8,["title","modelValue"]),[[D["vShow"],e.canExportFlat]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",pl,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_show_dimensions",title:e.translate("CoreHome_IncludeDimensionsSeparately"),modelValue:e.optionShowDimensions,"onUpdate:modelValue":t[2]||(t[2]=t=>e.optionShowDimensions=t)},null,8,["title","modelValue"]),[[D["vShow"],e.canExportFlat&&e.hasMultipleDimensions&&e.optionFlatModel]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",hl,[Object(D["withDirectives"])(Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_expanded",title:e.translate("CoreHome_ExpandSubtables"),modelValue:e.optionExpandedModel,"onUpdate:modelValue":t[3]||(t[3]=t=>e.optionExpandedModel=t)},null,8,["title","modelValue"]),[[D["vShow"],e.hasSubtables&&!e.isCsvOrTsv]])])]),Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",gl,[Object(D["createVNode"])(r,{uicontrol:"checkbox",name:"option_format_metrics",title:e.translate("CoreHome_FormatMetrics"),modelValue:e.optionFormatMetrics,"onUpdate:modelValue":t[4]||(t[4]=t=>e.optionFormatMetrics=t)},null,8,["title","modelValue"])])])]),Object(D["createElementVNode"])("div",bl,[Object(D["createElementVNode"])("div",null,[Object(D["createElementVNode"])("div",fl,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"filter_type",title:e.translate("CoreHome_ReportType"),modelValue:e.reportType,"onUpdate:modelValue":t[5]||(t[5]=t=>e.reportType=t),"full-width":!0,options:e.availableReportTypes},null,8,["title","modelValue","options"])])]),Object(D["createElementVNode"])("div",vl,[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Ol,[Object(D["createVNode"])(r,{uicontrol:"radio",name:"filter_limit_all",title:e.translate("CoreHome_RowLimit"),modelValue:e.reportLimitAll,"onUpdate:modelValue":t[6]||(t[6]=t=>e.reportLimitAll=t),"full-width":!0,options:e.limitAllOptions},null,8,["title","modelValue","options"])],512),[[D["vShow"],!e.maxFilterLimit||e.maxFilterLimit<=0]]),"no"===e.reportLimitAll&&e.maxFilterLimit<=0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",yl,[Object(D["createVNode"])(r,{uicontrol:"number",name:"filter_limit",min:1,modelValue:e.reportLimit,"onUpdate:modelValue":t[7]||(t[7]=t=>e.reportLimit=t),"full-width":!0},null,8,["modelValue"])])):Object(D["createCommentVNode"])("",!0),"no"===e.reportLimitAll&&e.maxFilterLimit>0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",jl,[Object(D["createVNode"])(r,{uicontrol:"number",name:"filter_limit",min:1,max:e.maxFilterLimit,modelValue:e.reportLimit,"onUpdate:modelValue":t[8]||(t[8]=t=>e.reportLimit=t),value:e.reportLimit,"full-width":!0,title:e.filterLimitTooltip},null,8,["max","modelValue","value","title"])])):Object(D["createCommentVNode"])("",!0)])]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",wl,[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("textarea",{readonly:"",class:"exportFullUrl",value:e.exportLinkWithoutToken},[Object(D["createTextVNode"])("\n ")],8,Sl)),[[s,{}]]),Object(D["createElementVNode"])("div",{class:"tooltip",innerHTML:e.$sanitize(e.translate("CoreHome_ExportTooltipWithLink","","","ENTER_YOUR_TOKEN_AUTH_HERE"))},null,8,Cl)],512),[[D["vShow"],e.showUrl]]),Object(D["createElementVNode"])("div",kl,[Object(D["createElementVNode"])("a",{class:"btn",href:e.exportLink,target:"_new",title:e.translate("CoreHome_ExportTooltip")},Object(D["toDisplayString"])(e.translate("General_Export")),9,Dl),Object(D["createElementVNode"])("a",{href:"javascript:",onClick:t[9]||(t[9]=t=>e.showUrl=!e.showUrl),class:"toggle-export-url"},[Object(D["withDirectives"])(Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translate("CoreHome_ShowExportUrl")),513),[[D["vShow"],!e.showUrl]]),Object(D["withDirectives"])(Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translate("CoreHome_HideExportUrl")),513),[[D["vShow"],e.showUrl]])])]),e.additionalContent?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:"col l12 report-export-popover-footer",innerHTML:e.$sanitize(e.additionalContent)},null,8,El)):Object(D["createCommentVNode"])("",!0)])} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const Dl=["CSV","TSV"];function El(e){return Dl.includes(e)}function Pl(e,t,i){return e?El(i)?{hasUserPreference:!1,preferredMode:null}:{hasUserPreference:!0,preferredMode:"flat"}:t?{hasUserPreference:!0,preferredMode:"expanded"}:{hasUserPreference:!0,preferredMode:null}}function Tl(e,t,i,o){const{hasUserPreference:n,preferredMode:a}=o;return e?El(i)?t?{optionFlat:!n||"flat"===a,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!1}:n?"flat"===a?t?{optionFlat:!0,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!0}:"expanded"===a?{optionFlat:!1,optionExpanded:!0}:{optionFlat:!1,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!0}:{optionFlat:!1,optionExpanded:!1}}const Vl=Ce("CorePluginsAdmin","Field");var xl=Object(D["defineComponent"])({components:{Field:Vl},directives:{SelectOnFocus:It},props:{hasSubtables:Boolean,canExportFlat:{type:Boolean,default:!1},availableReportTypes:Object,availableReportFormats:{type:Object,required:!0},maxFilterLimit:Number,limitAllOptions:Object,dataTable:{type:Object,required:!0},requestParams:[Object,String],apiMethod:{type:String,required:!0},initialReportType:{type:String,default:"default"},initialReportLimit:{type:[String,Number],default:100},initialReportLimitAll:{type:String,default:"yes"},initialOptionFlat:{type:Boolean,default:!1},initialOptionShowDimensions:{type:Boolean,default:!1},initialOptionExpanded:{type:Boolean,default:!0},initialOptionFormatMetrics:{type:Boolean,default:!1},initialReportFormat:{type:String,default:"TSV"}},mounted(){const e={content:this.additionalContent,dataTable:this.dataTable};I.postEvent("ReportExportPopover.additionalContent",e),this.additionalContent=e.content},data(){return{showUrl:!1,reportFormat:this.initialReportFormat,optionShowDimensions:this.initialOptionShowDimensions,subtablePreference:Pl(this.initialOptionFlat,this.initialOptionExpanded,this.initialReportFormat),optionFormatMetrics:this.initialOptionFormatMetrics,reportType:this.initialReportType,reportLimitAll:this.initialReportLimitAll,reportLimit:"string"===typeof this.initialReportLimit?parseInt(this.initialReportLimit,10):this.initialReportLimit,additionalContent:""}},watch:{reportType(e){this.availableReportFormats[e][this.reportFormat]||(this.reportFormat="JSON")},reportLimit(e,t){this.maxFilterLimit&&this.maxFilterLimit>0&&e>this.maxFilterLimit&&(this.reportLimit=t)}},computed:{hasMultipleDimensions(){var e,t;return"function"===typeof(null===(e=this.dataTable)||void 0===e?void 0:e.getReportMetadata)&&Object.keys((null===(t=this.dataTable)||void 0===t?void 0:t.getReportMetadata().dimensions)||{}).length>1},filterLimitTooltip(){const e=a("CoreHome_RowLimit"),t=this.maxFilterLimit?a("General_ComputedMetricMax",this.maxFilterLimit.toString()):"";return`${e} (${t})`},isCsvOrTsv(){return El(this.reportFormat)},effectiveSubtableOptions(){return Tl(this.hasSubtables,this.canExportFlat,this.reportFormat,this.subtablePreference)},optionFlatModel:{get(){return this.effectiveSubtableOptions.optionFlat},set(e){this.hasSubtables&&this.canExportFlat&&(e?this.subtablePreference={hasUserPreference:!0,preferredMode:"flat"}:this.optionExpandedModel||(this.subtablePreference={hasUserPreference:!0,preferredMode:null}))}},optionExpandedModel:{get(){return this.effectiveSubtableOptions.optionExpanded},set(e){this.hasSubtables&&!El(this.reportFormat)&&(e?this.subtablePreference={hasUserPreference:!0,preferredMode:"expanded"}:this.optionFlatModel||(this.subtablePreference={hasUserPreference:!0,preferredMode:null}))}},exportLink(){return this.getExportLink(!0)},exportLinkWithoutToken(){return this.getExportLink(!1)}},methods:{getExportLink(e=!0){const{reportFormat:t,apiMethod:i,reportType:o}=this,n=this.dataTable;if(!t)return;let a={};const r="yes"===this.reportLimitAll?-1:this.reportLimit;this.requestParams&&"string"===typeof this.requestParams?a=JSON.parse(this.requestParams):this.requestParams&&"object"===typeof this.requestParams&&(a=this.requestParams);const{segment:s,label:l,idGoal:c,idDimension:d,idSite:u}=n.param;let{date:m,period:p}=n.param;"RSS"===t&&(m="last10"),"undefined"!==typeof n.param.dateUsedInGraph&&(m=n.param.dateUsedInGraph);const h=I.config.datatable_export_range_as_day.toLowerCase();-1!==h.indexOf(t.toLowerCase())&&"range"===n.param.period&&(p="day"),"range"===n.param.period&&"graphEvolution"===n.param.viewDataTable&&(p="day");const g={module:"API",format:t,idSite:u,period:p,date:m};"processed"===o?(g.method="API.getProcessedReport",[g.apiModule,g.apiAction]=i.split(".")):g.method=i,n.param.compareDates&&n.param.compareDates.length&&(g.compareDates=n.param.compareDates,g.compare="1"),n.param.comparePeriods&&n.param.comparePeriods.length&&(g.comparePeriods=n.param.comparePeriods,g.compare="1"),n.param.compareSegments&&n.param.compareSegments.length&&(g.compareSegments=n.param.compareSegments,g.compare="1"),"undefined"!==typeof n.param.filter_pattern&&(g.filter_pattern=n.param.filter_pattern),"undefined"!==typeof n.param.filter_pattern_recursive&&(g.filter_pattern_recursive=n.param.filter_pattern_recursive),window.$.isPlainObject(a)&&Object.entries(a).forEach(([e,t])=>{let i=t;!0===i?i=1:!1===i&&(i=0),g[e]=i});const{optionFlat:b,optionExpanded:f}=this.effectiveSubtableOptions;if(b&&(g.flat=1,this.optionShowDimensions&&(g.show_dimensions=1),"undefined"!==typeof n.param.include_aggregate_rows&&"1"===n.param.include_aggregate_rows&&(g.include_aggregate_rows=1)),this.hasSubtables&&!b&&f&&(g.expanded=1),this.optionFormatMetrics&&(g.format_metrics=1),n.param.pivotBy&&(g.pivotBy=n.param.pivotBy,g.pivotByColumnLimit=20,n.props.pivot_by_column&&(g.pivotByColumn=n.props.pivot_by_column)),"CSV"!==t&&"TSV"!==t&&"RSS"!==t||(g.translateColumnNames=1,g.language=I.language),"undefined"!==typeof s&&(g.segment=decodeURIComponent(s)),"undefined"!==typeof c&&"-1"!==c&&(g.idGoal=c),"undefined"!==typeof d&&"-1"!==d&&(g.idDimension=d),l){const e=l.split(",");e.length>1?g.label=e:[g.label]=e}g.showMetadata=0,g.token_auth="ENTER_YOUR_TOKEN_AUTH_HERE",!0===e&&(g.token_auth=I.token_auth,g.force_api_session=1),g.filter_limit=r;const v=window.location.href.split("?")[0];return`${v}?${U.stringify(g)}`}}});xl.render=kl;var Nl=xl; + */const Tl=["CSV","TSV"];function Vl(e){return Tl.includes(e)}function xl(e,t,i){return e?Vl(i)?{hasUserPreference:!1,preferredMode:null}:{hasUserPreference:!0,preferredMode:"flat"}:t?{hasUserPreference:!0,preferredMode:"expanded"}:{hasUserPreference:!0,preferredMode:null}}function Nl(e,t,i,o){const{hasUserPreference:n,preferredMode:a}=o;return e?Vl(i)?t?{optionFlat:!n||"flat"===a,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!1}:n?"flat"===a?t?{optionFlat:!0,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!0}:"expanded"===a?{optionFlat:!1,optionExpanded:!0}:{optionFlat:!1,optionExpanded:!1}:{optionFlat:!1,optionExpanded:!0}:{optionFlat:!1,optionExpanded:!1}}const Bl=Ce("CorePluginsAdmin","Field");var Il=Object(D["defineComponent"])({components:{Field:Bl},directives:{SelectOnFocus:Mt},props:{hasSubtables:Boolean,canExportFlat:{type:Boolean,default:!1},availableReportTypes:Object,availableReportFormats:{type:Object,required:!0},maxFilterLimit:Number,limitAllOptions:Object,dataTable:{type:Object,required:!0},requestParams:[Object,String],apiMethod:{type:String,required:!0},initialReportType:{type:String,default:"default"},initialReportLimit:{type:[String,Number],default:100},initialReportLimitAll:{type:String,default:"yes"},initialOptionFlat:{type:Boolean,default:!1},initialOptionShowDimensions:{type:Boolean,default:!1},initialOptionExpanded:{type:Boolean,default:!0},initialOptionFormatMetrics:{type:Boolean,default:!1},initialReportFormat:{type:String,default:"TSV"}},mounted(){const e={content:this.additionalContent,dataTable:this.dataTable};M.postEvent("ReportExportPopover.additionalContent",e),this.additionalContent=e.content},data(){return{showUrl:!1,reportFormat:this.initialReportFormat,optionShowDimensions:this.initialOptionShowDimensions,subtablePreference:xl(this.initialOptionFlat,this.initialOptionExpanded,this.initialReportFormat),optionFormatMetrics:this.initialOptionFormatMetrics,reportType:this.initialReportType,reportLimitAll:this.initialReportLimitAll,reportLimit:"string"===typeof this.initialReportLimit?parseInt(this.initialReportLimit,10):this.initialReportLimit,additionalContent:""}},watch:{reportType(e){this.availableReportFormats[e][this.reportFormat]||(this.reportFormat="JSON")},reportLimit(e,t){this.maxFilterLimit&&this.maxFilterLimit>0&&e>this.maxFilterLimit&&(this.reportLimit=t)}},computed:{hasMultipleDimensions(){var e,t;return"function"===typeof(null===(e=this.dataTable)||void 0===e?void 0:e.getReportMetadata)&&Object.keys((null===(t=this.dataTable)||void 0===t?void 0:t.getReportMetadata().dimensions)||{}).length>1},filterLimitTooltip(){const e=a("CoreHome_RowLimit"),t=this.maxFilterLimit?a("General_ComputedMetricMax",this.maxFilterLimit.toString()):"";return`${e} (${t})`},isCsvOrTsv(){return Vl(this.reportFormat)},effectiveSubtableOptions(){return Nl(this.hasSubtables,this.canExportFlat,this.reportFormat,this.subtablePreference)},optionFlatModel:{get(){return this.effectiveSubtableOptions.optionFlat},set(e){this.hasSubtables&&this.canExportFlat&&(e?this.subtablePreference={hasUserPreference:!0,preferredMode:"flat"}:this.optionExpandedModel||(this.subtablePreference={hasUserPreference:!0,preferredMode:null}))}},optionExpandedModel:{get(){return this.effectiveSubtableOptions.optionExpanded},set(e){this.hasSubtables&&!Vl(this.reportFormat)&&(e?this.subtablePreference={hasUserPreference:!0,preferredMode:"expanded"}:this.optionFlatModel||(this.subtablePreference={hasUserPreference:!0,preferredMode:null}))}},exportLink(){return this.getExportLink(!0)},exportLinkWithoutToken(){return this.getExportLink(!1)}},methods:{getExportLink(e=!0){const{reportFormat:t,apiMethod:i,reportType:o}=this,n=this.dataTable;if(!t)return;let a={};const r="yes"===this.reportLimitAll?-1:this.reportLimit;this.requestParams&&"string"===typeof this.requestParams?a=JSON.parse(this.requestParams):this.requestParams&&"object"===typeof this.requestParams&&(a=this.requestParams);const{segment:s,label:l,idGoal:c,idDimension:d,idSite:u}=n.param;let{date:m,period:p}=n.param;"RSS"===t&&(m="last10"),"undefined"!==typeof n.param.dateUsedInGraph&&(m=n.param.dateUsedInGraph);const h=M.config.datatable_export_range_as_day.toLowerCase();-1!==h.indexOf(t.toLowerCase())&&"range"===n.param.period&&(p="day"),"range"===n.param.period&&"graphEvolution"===n.param.viewDataTable&&(p="day");const g={module:"API",format:t,idSite:u,period:p,date:m};"processed"===o?(g.method="API.getProcessedReport",[g.apiModule,g.apiAction]=i.split(".")):g.method=i,n.param.compareDates&&n.param.compareDates.length&&(g.compareDates=n.param.compareDates,g.compare="1"),n.param.comparePeriods&&n.param.comparePeriods.length&&(g.comparePeriods=n.param.comparePeriods,g.compare="1"),n.param.compareSegments&&n.param.compareSegments.length&&(g.compareSegments=n.param.compareSegments,g.compare="1"),"undefined"!==typeof n.param.filter_pattern&&(g.filter_pattern=n.param.filter_pattern),"undefined"!==typeof n.param.filter_pattern_recursive&&(g.filter_pattern_recursive=n.param.filter_pattern_recursive),window.$.isPlainObject(a)&&Object.entries(a).forEach(([e,t])=>{let i=t;!0===i?i=1:!1===i&&(i=0),g[e]=i});const{optionFlat:b,optionExpanded:f}=this.effectiveSubtableOptions;if(b&&(g.flat=1,this.optionShowDimensions&&(g.show_dimensions=1),"undefined"!==typeof n.param.include_aggregate_rows&&"1"===n.param.include_aggregate_rows&&(g.include_aggregate_rows=1)),this.hasSubtables&&!b&&f&&(g.expanded=1),this.optionFormatMetrics&&(g.format_metrics=1),n.param.pivotBy&&(g.pivotBy=n.param.pivotBy,g.pivotByColumnLimit=20,n.props.pivot_by_column&&(g.pivotByColumn=n.props.pivot_by_column)),"CSV"!==t&&"TSV"!==t&&"RSS"!==t||(g.translateColumnNames=1,g.language=M.language),"undefined"!==typeof s&&(g.segment=decodeURIComponent(s)),"undefined"!==typeof c&&"-1"!==c&&(g.idGoal=c),"undefined"!==typeof d&&"-1"!==d&&(g.idDimension=d),l){const e=l.split(",");e.length>1?g.label=e:[g.label]=e}g.showMetadata=0,g.token_auth="ENTER_YOUR_TOKEN_AUTH_HERE",!0===e&&(g.token_auth=M.token_auth,g.force_api_session=1),g.filter_limit=r;const v=window.location.href.split("?")[0];return`${v}?${U.stringify(g)}`}}});Il.render=Pl;var Ml=Il; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:Bl}=window;var Ml={mounted(e,t){e.addEventListener("click",()=>{var i;const o=U.hashParsed.value.popover,n=Bl(e).closest("[data-report]").data("uiControlObject"),r=window.Piwik_Popover.showLoading("Export"),s=t.value.reportFormats;let l=n.param.filter_limit;t.value.maxFilterLimit>0&&(l=Math.min(l,t.value.maxFilterLimit));const c=!0===n.param.flat||1===n.param.flat||"1"===n.param.flat,d=!0===n.param.show_dimensions||1===n.param.show_dimensions||"1"===n.param.show_dimensions,u=c||n.numberOfSubtables>0,m=(null!==(i=t.value.canExportFlat)&&void 0!==i?i:u)&&u,p=m,h=!1,g={initialReportType:"default",initialReportFormat:"TSV",initialReportLimit:l>0?l:100,initialReportLimitAll:-1===l?"yes":"no",initialOptionFlat:p,initialOptionShowDimensions:d,initialOptionExpanded:h,initialOptionFormatMetrics:!1,hasSubtables:u,canExportFlat:m,availableReportFormats:{default:s,processed:{JSON:s.JSON,XML:s.XML}},availableReportTypes:{default:a("CoreHome_StandardReport"),processed:a("CoreHome_ReportWithMetadata")},limitAllOptions:{yes:a("General_All"),no:a("CoreHome_CustomLimit")},maxFilterLimit:t.value.maxFilterLimit,dataTable:n,requestParams:t.value.requestParams,apiMethod:t.value.apiMethod},b=ve({template:'\n ',data(){return{bind:g}}});b.component("popover",Nl);const f=document.createElement("div");b.mount(f);const{reportTitle:v}=t.value;window.Piwik_Popover.setTitle(`${a("General_Export")} ${I.helper.htmlEntities(v)}`),window.Piwik_Popover.setContent(f),window.Piwik_Popover.onClose(()=>{b.unmount(),""!==o&&setTimeout(()=>{U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{popover:o})),t.value.onClose&&t.value.onClose()},100)}),setTimeout(()=>{r.dialog(),Bl(".exportFullUrl, .btn",r).tooltip({track:!0,show:!1,hide:!1})},100)})}};const Il=["src","width","height"];function Fl(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{class:"sparklineImg",loading:"lazy",alt:"",src:e.sparklineUrl,width:e.width,height:e.height},null,8,Il)}var Ll=Object(D["defineComponent"])({name:"Sparkline",props:{seriesIndices:Array,params:[Object,String],width:Number,height:Number},data(){return{isWidget:!1,themeMode:I.getThemeMode()}},mounted(){this.isWidget=!!this.$el.closest("[widgetId]"),window.addEventListener("themeModeChange",this.onThemeModeChange)},beforeUnmount(){window.removeEventListener("themeModeChange",this.onThemeModeChange)},computed:{sparklineUrl(){const{seriesIndices:e,params:t,themeMode:i}=this,o=I.getSparklineColors();e&&(o.lineColor=o.lineColor.filter((t,i)=>-1!==e.indexOf(i)));const n=JSON.stringify(o),a={forceView:"1",viewDataTable:"sparkline",widget:this.isWidget?"1":"0",showtitle:"1",colors:n,random:Date.now(),date:this.defaultDate,segment:U.parsed.value.segment},r="object"===typeof t?t:U.parse(t.substring(t.indexOf("?")+1)),s=new te,l=s.mixinDefaultGetParams(Object.assign(Object.assign({},a),r)),c=U.parsed.value.token_auth;return c&&c.length&&I.shouldPropagateTokenAuth&&(l.token_auth=c),l.themeMode=i,"?"+U.stringify(l)},defaultDate(){if("range"===I.period)return`${I.startDateString},${I.endDateString}`;const e=k.getLastNRange(I.period,30,I.currentDateString).getDateRange(),t=new Date(I.minDateYear,I.minDateMonth-1,I.minDateDay);e[0]100?100:this.progress<0?0:this.progress}}});Ul.render=$l;var ql=Ul,Wl={mounted(e){e.classList.add("piwik-content-intro")},updated(e){Object(D["nextTick"])(()=>{e.classList.add("piwik-content-intro")})}}; + */const{$:Fl}=window;var Ll={mounted(e,t){e.addEventListener("click",()=>{var i;const o=U.hashParsed.value.popover,n=Fl(e).closest("[data-report]").data("uiControlObject"),r=window.Piwik_Popover.showLoading("Export"),s=t.value.reportFormats;let l=n.param.filter_limit;t.value.maxFilterLimit>0&&(l=Math.min(l,t.value.maxFilterLimit));const c=!0===n.param.flat||1===n.param.flat||"1"===n.param.flat,d=!0===n.param.show_dimensions||1===n.param.show_dimensions||"1"===n.param.show_dimensions,u=c||n.numberOfSubtables>0,m=(null!==(i=t.value.canExportFlat)&&void 0!==i?i:u)&&u,p=m,h=!1,g={initialReportType:"default",initialReportFormat:"TSV",initialReportLimit:l>0?l:100,initialReportLimitAll:-1===l?"yes":"no",initialOptionFlat:p,initialOptionShowDimensions:d,initialOptionExpanded:h,initialOptionFormatMetrics:!1,hasSubtables:u,canExportFlat:m,availableReportFormats:{default:s,processed:{JSON:s.JSON,XML:s.XML}},availableReportTypes:{default:a("CoreHome_StandardReport"),processed:a("CoreHome_ReportWithMetadata")},limitAllOptions:{yes:a("General_All"),no:a("CoreHome_CustomLimit")},maxFilterLimit:t.value.maxFilterLimit,dataTable:n,requestParams:t.value.requestParams,apiMethod:t.value.apiMethod},b=ve({template:'\n ',data(){return{bind:g}}});b.component("popover",Ml);const f=document.createElement("div");b.mount(f);const{reportTitle:v}=t.value;window.Piwik_Popover.setTitle(`${a("General_Export")} ${M.helper.htmlEntities(v)}`),window.Piwik_Popover.setContent(f),window.Piwik_Popover.onClose(()=>{b.unmount(),""!==o&&setTimeout(()=>{U.updateHash(Object.assign(Object.assign({},U.hashParsed.value),{},{popover:o})),t.value.onClose&&t.value.onClose()},100)}),setTimeout(()=>{r.dialog(),Fl(".exportFullUrl, .btn",r).tooltip({track:!0,show:!1,hide:!1})},100)})}};const Rl=["src","width","height"];function Al(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{class:"sparklineImg",loading:"lazy",alt:"",src:e.sparklineUrl,width:e.width,height:e.height},null,8,Rl)}var _l=Object(D["defineComponent"])({name:"Sparkline",props:{seriesIndices:Array,params:[Object,String],width:Number,height:Number},data(){return{isWidget:!1,themeMode:M.getThemeMode()}},mounted(){this.isWidget=!!this.$el.closest("[widgetId]"),window.addEventListener("themeModeChange",this.onThemeModeChange)},beforeUnmount(){window.removeEventListener("themeModeChange",this.onThemeModeChange)},computed:{sparklineUrl(){const{seriesIndices:e,params:t,themeMode:i}=this,o=M.getSparklineColors();e&&(o.lineColor=o.lineColor.filter((t,i)=>-1!==e.indexOf(i)));const n=JSON.stringify(o),a={forceView:"1",viewDataTable:"sparkline",widget:this.isWidget?"1":"0",showtitle:"1",colors:n,random:Date.now(),date:this.defaultDate,segment:U.parsed.value.segment},r="object"===typeof t?t:U.parse(t.substring(t.indexOf("?")+1)),s=new te,l=s.mixinDefaultGetParams(Object.assign(Object.assign({},a),r)),c=U.parsed.value.token_auth;return c&&c.length&&M.shouldPropagateTokenAuth&&(l.token_auth=c),l.themeMode=i,"?"+U.stringify(l)},defaultDate(){if("range"===M.period)return`${M.startDateString},${M.endDateString}`;const e=k.getLastNRange(M.period,30,M.currentDateString).getDateRange(),t=new Date(M.minDateYear,M.minDateMonth-1,M.minDateDay);e[0]100?100:this.progress<0?0:this.progress}}});zl.render=Wl;var Gl=zl,Kl={mounted(e){e.classList.add("piwik-content-intro")},updated(e){Object(D["nextTick"])(()=>{e.classList.add("piwik-content-intro")})}}; /*! * Matomo - free/libre analytics platform * @@ -351,43 +351,43 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -const zl="(max-width: 767px)",Gl=new WeakMap;function Kl(e){const t=e.parentElement;if(!t||t.classList.contains("contentTableWrapper"))return;const i=document.createElement("div");i.className="contentTableWrapper",t.insertBefore(i,e),i.appendChild(e)}function Yl(e){const t=e.parentElement;if(!t||!t.classList.contains("contentTableWrapper"))return;const i=t.parentElement;i&&(i.insertBefore(e,t),t.remove())}function Ql(e){return(e||window.matchMedia(zl)).matches}function Jl(e,t){e.addEventListener("change",t)}function Xl(e,t){e.removeEventListener("change",t)}function Zl(e,t){e.classList.add("card","card-table","entityTable"),Ql(t)?Kl(e):Yl(e)}function ec(e){const t=Gl.get(e);t&&(Xl(t.mediaQuery,t.listener),Gl.delete(e)),Yl(e)}function tc(e){const t=Gl.get(e);if(t)return void Zl(e,t.mediaQuery);const i=window.matchMedia(zl),o=()=>{e.isConnected?Zl(e,i):ec(e)};Jl(i,o),Gl.set(e,{mediaQuery:i,listener:o}),Zl(e,i)} +const Yl="(max-width: 767px)",Ql=new WeakMap;function Jl(e){const t=e.parentElement;if(!t||t.classList.contains("contentTableWrapper"))return;const i=document.createElement("div");i.className="contentTableWrapper",t.insertBefore(i,e),i.appendChild(e)}function Xl(e){const t=e.parentElement;if(!t||!t.classList.contains("contentTableWrapper"))return;const i=t.parentElement;i&&(i.insertBefore(e,t),t.remove())}function Zl(e){return(e||window.matchMedia(Yl)).matches}function ec(e,t){e.addEventListener("change",t)}function tc(e,t){e.removeEventListener("change",t)}function ic(e,t){e.classList.add("card","card-table","entityTable"),Zl(t)?Jl(e):Xl(e)}function oc(e){const t=Ql.get(e);t&&(tc(t.mediaQuery,t.listener),Ql.delete(e)),Xl(e)}function nc(e){const t=Ql.get(e);if(t)return void ic(e,t.mediaQuery);const i=window.matchMedia(Yl),o=()=>{e.isConnected?ic(e,i):oc(e)};ec(i,o),Ql.set(e,{mediaQuery:i,listener:o}),ic(e,i)} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var ic={mounted(e,t){var i;null!==t&&void 0!==t&&null!==(i=t.value)&&void 0!==i&&i.off||tc(e)},updated(e,t){var i;null!==t&&void 0!==t&&null!==(i=t.value)&&void 0!==i&&i.off?ec(e):Object(D["nextTick"])(()=>{tc(e)})},beforeUnmount(e){ec(e)}};const oc={ref:"root"};function nc(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",oc,[Object(D["renderSlot"])(e.$slots,"default",{formData:e.formData,submitApiMethod:e.submitApiMethod,sendJsonPayload:e.sendJsonPayload,noErrorNotification:e.noErrorNotification,noSuccessNotification:e.noSuccessNotification,submitForm:e.submitForm,isSubmitting:e.isSubmitting,successfulPostResponse:e.successfulPostResponse,errorPostResponse:e.errorPostResponse})],512)}const{$:ac}=window;var rc=Object(D["defineComponent"])({props:{formData:{type:Object,required:!0},submitApiMethod:{type:String,required:!0},sendJsonPayload:Boolean,noErrorNotification:Boolean,noSuccessNotification:Boolean},data(){return{isSubmitting:!1,successfulPostResponse:null,errorPostResponse:null}},emits:["update:modelValue"],mounted(){ac(this.$refs.root).on("click","input[type=submit]",()=>{this.submitForm()})},methods:{submitForm(){this.successfulPostResponse=null,this.errorPostResponse=null;let e=this.formData;this.sendJsonPayload&&(e={data:JSON.stringify(this.formData)}),this.isSubmitting=!0,te.post({module:"API",method:this.submitApiMethod},e,{createErrorNotification:!this.noErrorNotification}).then(e=>{if(this.successfulPostResponse=e,!this.noSuccessNotification){const e=$o.show({message:a("General_YourChangesHaveBeenSaved"),context:"success",type:"toast",id:"ajaxHelper"});$o.scrollToNotification(e)}}).catch(e=>{this.errorPostResponse=e.message}).finally(()=>{this.isSubmitting=!1})}}});rc.render=nc;var sc=rc;function lc(e,t,i,o,n,a){return Object(D["renderSlot"])(e.$slots,"default")}var cc=Object(D["defineComponent"])({});cc.render=lc;var dc=cc;const uc={key:0},mc=["data-target","title"],pc=Object(D["createElementVNode"])("span",{class:"icon-configure"},null,-1),hc=[pc],gc=["data-target"],bc=["title"],fc=["title","src"],vc=["id"],Oc=["data-footer-icon-id"],yc=["title"],jc=["title","src"],wc={key:2},Sc=Object(D["createElementVNode"])("li",{class:"divider"},null,-1),Cc=Object(D["createElementVNode"])("li",{class:"divider"},null,-1),kc=["title"],Dc=Object(D["createElementVNode"])("span",{class:"icon-export"},null,-1),Ec=[Dc],Pc=["title"],Tc=Object(D["createElementVNode"])("span",{class:"icon-image"},null,-1),Vc=[Tc],xc=["title"],Nc=Object(D["createElementVNode"])("span",{class:"icon-annotation"},null,-1),Bc=[Nc],Mc=["title"],Ic=Object(D["createElementVNode"])("span",{class:"icon-search",draggable:"false"},null,-1),Fc=["title"],Lc=["id","title"],Rc=["title"],Ac=["title","src"],_c=["id"],Hc={key:0},$c=["innerHTML"],Uc={key:1},qc=["innerHTML"],Wc={key:2},zc=["innerHTML"],Gc={key:3},Kc=["innerHTML"],Yc={key:4},Qc=["innerHTML"],Jc={key:5},Xc=["innerHTML"],Zc=["title","data-target"],ed=Object(D["createElementVNode"])("span",{class:"icon-calendar"},null,-1),td={class:"periodName"},id=["id"],od=["data-period"];function nd(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Passthrough"),s=Object(D["resolveDirective"])("dropdown-button"),l=Object(D["resolveDirective"])("report-export");return e.showFooter&&e.showFooterIcons?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",uc,[e.hasConfigItems&&(e.isAnyConfigureIconHighlighted||e.isTableView)?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:Object(D["normalizeClass"])(["dropdown-button dropdownConfigureIcon dataTableAction",{highlighted:e.isAnyConfigureIconHighlighted}]),href:"",onClick:t[0]||(t[0]=Object(D["withModifiers"])(()=>{},["prevent"])),"data-target":"dropdownConfigure"+e.randomIdForDropdown,title:e.translate("CoreHome_ReportConfigure"),style:{"margin-right":"3.5px"}},hc,10,mc)),[[s]]):Object(D["createCommentVNode"])("",!0),e.hasFooterIconsToShow?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"dropdown-button dataTableAction activateVisualizationSelection",href:"","data-target":"dropdownVisualizations"+e.randomIdForDropdown,style:{"margin-right":"3.5px"},onClick:t[1]||(t[1]=Object(D["withModifiers"])(()=>{},["prevent"]))},[/^icon-/.test(e.activeFooterIcon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,title:e.translate("CoreHome_ChangeVisualization"),class:Object(D["normalizeClass"])(e.activeFooterIcon)},null,10,bc)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,title:e.translate("CoreHome_ChangeVisualization"),width:"16",height:"16",src:e.activeFooterIcon},null,8,fc))],8,gc)),[[s]]):Object(D["createCommentVNode"])("",!0),e.showFooterIcons?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:2,id:"dropdownVisualizations"+e.randomIdForDropdown,class:"dropdown-content dataTableFooterIcons"},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.footerIcons,(t,i)=>(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:i},{default:Object(D["withCtx"])(()=>[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.buttons.filter(e=>!!e.icon),i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i.id},[Object(D["createElementVNode"])("a",{class:Object(D["normalizeClass"])(`${t.class} tableIcon\n ${-1!==e.activeFooterIconIds.indexOf(i.id)?"activeIcon":""}`),"data-footer-icon-id":i.id},[/^icon-/.test(i.icon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,title:i.title,class:Object(D["normalizeClass"])(i.icon),style:{"margin-right":"5.5px"}},null,10,yc)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,width:"16",height:"16",title:i.title,src:i.icon,style:{"margin-right":"5.5px"}},null,8,jc)),i.title?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",wc,Object(D["toDisplayString"])(i.title),1)):Object(D["createCommentVNode"])("",!0)],10,Oc)]))),128)),Sc]),_:2},1024))),128)),Cc],8,vc)):Object(D["createCommentVNode"])("",!0),e.showExport?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:3,class:"dataTableAction activateExportSelection",title:e.translate("General_ExportThisReport"),href:"",style:{"margin-right":"3.5px"},onClick:t[2]||(t[2]=Object(D["withModifiers"])(()=>{},["prevent"]))},Ec,8,kc)),[[l,{reportTitle:e.reportTitle,requestParams:e.requestParams,apiMethod:e.apiMethodToRequestDataTable,reportFormats:e.reportFormats,maxFilterLimit:e.maxFilterLimit}]]):Object(D["createCommentVNode"])("",!0),e.showExportAsImageIcon?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:4,class:"dataTableAction tableIcon",href:"",id:"dataTableFooterExportAsImageIcon",onClick:t[3]||(t[3]=Object(D["withModifiers"])(t=>e.showExportImage(t),["prevent"])),title:e.translate("General_ExportAsImage"),style:{"margin-right":"3.5px"}},Vc,8,Pc)):Object(D["createCommentVNode"])("",!0),e.showAnnotations?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:5,class:"dataTableAction annotationView",href:"",title:e.translate("Annotations_Annotations"),onClick:t[4]||(t[4]=Object(D["withModifiers"])(()=>{},["prevent"])),style:{"margin-right":"3.5px"}},Bc,8,xc)):Object(D["createCommentVNode"])("",!0),e.showSearch?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:6,class:"dropdown-button dataTableAction searchAction",href:"",title:e.translate("General_Search"),style:{"margin-right":"3.5px"},draggable:"false",onClick:t[5]||(t[5]=Object(D["withModifiers"])(()=>{},["prevent"]))},[Ic,Object(D["createElementVNode"])("span",{class:"icon-close",draggable:"false",title:e.translate("CoreHome_CloseSearch")},null,8,Fc),Object(D["createElementVNode"])("input",{id:`widgetSearch_${e.reportId}_${e.placement}`,title:e.translate("CoreHome_DataTableHowToSearch"),type:"text",class:"dataTableSearchInput"},null,8,Lc)],8,Mc)):Object(D["createCommentVNode"])("",!0),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.dataTableActions,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:e.id,class:Object(D["normalizeClass"])("dataTableAction "+e.id),href:"",onClick:t[6]||(t[6]=Object(D["withModifiers"])(()=>{},["prevent"])),title:e.title,style:{"margin-right":"3.5px"}},[/^icon-/.test(e.icon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,class:Object(D["normalizeClass"])(e.icon)},null,2)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,width:"16",height:"16",title:e.title,src:e.icon},null,8,Ac))],10,Rc))),128)),Object(D["createElementVNode"])("ul",{id:"dropdownConfigure"+e.randomIdForDropdown,class:"dropdown-content tableConfiguration"},[e.showFlattenTable?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Hc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableFlatten",innerHTML:e.$sanitize(e.flattenItemText)},null,8,$c)])):Object(D["createCommentVNode"])("",!0),e.showDimensionsConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Uc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableShowDimensions",innerHTML:e.$sanitize(e.showDimensionsText)},null,8,qc)])):Object(D["createCommentVNode"])("",!0),e.showFlatConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Wc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableIncludeAggregateRows",innerHTML:e.$sanitize(e.includeAggregateRowsText)},null,8,zc)])):Object(D["createCommentVNode"])("",!0),e.showTotalsConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Gc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableShowTotalsRow",innerHTML:e.$sanitize(e.keepTotalsRowText)},null,8,Kc)])):Object(D["createCommentVNode"])("",!0),e.showExcludeLowPopulation?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Yc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableExcludeLowPopulation",innerHTML:e.$sanitize(e.excludeLowPopText)},null,8,Qc)])):Object(D["createCommentVNode"])("",!0),e.showPivotBySubtable?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Jc,[Object(D["createElementVNode"])("div",{class:"configItem dataTablePivotBySubtable",innerHTML:e.$sanitize(e.pivotByText)},null,8,Xc)])):Object(D["createCommentVNode"])("",!0)],8,_c),e.showPeriods?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:7,class:"dropdown-button dataTableAction activatePeriodsSelection",href:"",onClick:t[7]||(t[7]=Object(D["withModifiers"])(()=>{},["prevent"])),title:e.translate("CoreHome_ChangePeriod"),"data-target":"dropdownPeriods"+e.randomIdForDropdown},[Object(D["createElementVNode"])("div",null,[ed,Object(D["createElementVNode"])("span",td,Object(D["toDisplayString"])(e.translations[e.clientSideParameters.period]||e.clientSideParameters.period),1)])],8,Zc)),[[s]]):Object(D["createCommentVNode"])("",!0),e.showPeriods?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:8,id:"dropdownPeriods"+e.randomIdForDropdown,class:"dropdown-content dataTablePeriods"},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.selectablePeriods,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t},[Object(D["createElementVNode"])("a",{"data-period":t,class:Object(D["normalizeClass"])("tableIcon "+(e.clientSideParameters.period===t?"activeIcon":""))},[Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translations[t]||t),1)],10,od)]))),128))],8,id)):Object(D["createCommentVNode"])("",!0)])):Object(D["createCommentVNode"])("",!0)}const{$:ad}=window;function rd(e,t,i){if(/(%(.\$)?s+)/g.test(a(e))){const o=['
'];i&&o.push(i);let n=a(e,...o);return t&&(n+=` (${a("CoreHome_Default")})`),n+="",n}return a(e)}function sd(e,t,i){return e?rd(t,!0):rd(i)}function ld(e){return!!e&&"0"!==e}var cd=Object(D["defineComponent"])({props:{showPeriods:Boolean,showFooter:Boolean,showFooterIcons:Boolean,showSearch:Boolean,showFlattenTable:Boolean,footerIcons:{type:Array,required:!0},viewDataTable:{type:String,required:!0},reportTitle:String,requestParams:{type:Object,required:!0},apiMethodToRequestDataTable:{type:String,required:!0},maxFilterLimit:{type:Number,required:!0},showExport:Boolean,showExportAsImageIcon:Boolean,showAnnotations:Boolean,reportId:{type:String,required:!0},dataTableActions:{type:Array,required:!0},clientSideParameters:{type:Object,required:!0},hasMultipleDimensions:Boolean,isDataTableEmpty:Boolean,showTotalsRow:Boolean,showExcludeLowPopulation:Boolean,showPivotBySubtable:Boolean,selectablePeriods:Array,translations:{type:Object,required:!0},pivotDimensionName:String,placement:{type:String,default:"footer"}},components:{Passthrough:dc},directives:{DropdownButton:Vt,ReportExport:Ml},methods:{showExportImage(e){ad(e.target).closest(".dataTable").find("div.jqplot-target").trigger("piwikExportAsImage")}},computed:{randomIdForDropdown(){return Math.floor(999999*Math.random())},allFooterIcons(){return this.footerIcons.reduce((e,t)=>(e.push(...t.buttons),e),[])},activeFooterIcons(){const e=this.clientSideParameters,t=[this.viewDataTable];return 0===e.abandonedCarts||"0"===e.abandonedCarts?t.push("ecommerceOrder"):1!==e.abandonedCarts&&"1"!==e.abandonedCarts||t.push("ecommerceAbandonedCart"),t.map(e=>this.allFooterIcons.find(t=>t.id===e)).filter(e=>!!e)},activeFooterIcon(){var e;return null===(e=this.activeFooterIcons[0])||void 0===e?void 0:e.icon},activeFooterIconIds(){return this.activeFooterIcons.map(e=>e.id)},numIcons(){return this.allFooterIcons.length},hasFooterIconsToShow(){return!!this.activeFooterIcons.length&&this.numIcons>1},reportFormats(){const e={TSV:"TSV (Excel)",HTML:"HTML",JSON:"JSON",XML:"XML",CSV:"CSV",RSS:"RSS"};return e},showDimensionsConfigItem(){return this.showFlattenTable&&""+this.clientSideParameters.flat==="1"&&this.hasMultipleDimensions},showFlatConfigItem(){return this.showFlattenTable&&""+this.clientSideParameters.flat==="1"},showTotalsConfigItem(){return!this.isDataTableEmpty&&this.showTotalsRow},hasConfigItems(){return this.showFlattenTable||this.showDimensionsConfigItem||this.showFlatConfigItem||this.showTotalsConfigItem||this.showExcludeLowPopulation||this.showPivotBySubtable},flattenItemText(){const e=this.clientSideParameters;return sd(ld(e.flat),"CoreHome_UnFlattenDataTable","CoreHome_FlattenDataTable")},keepTotalsRowText(){const e=this.clientSideParameters;return sd(ld(e.keep_totals_row),"CoreHome_RemoveTotalsRowDataTable","CoreHome_AddTotalsRowDataTable")},includeAggregateRowsText(){const e=this.clientSideParameters;return sd(ld(e.include_aggregate_rows),"CoreHome_DataTableExcludeAggregateRows","CoreHome_DataTableIncludeAggregateRows")},showDimensionsText(){const e=this.clientSideParameters;return sd(ld(e.show_dimensions),"CoreHome_DataTableCombineDimensions","CoreHome_DataTableShowDimensions")},pivotByText(){const e=this.clientSideParameters;return ld(e.pivotBy)?rd("CoreHome_UndoPivotBySubtable",!0):rd("CoreHome_PivotBySubtable",!1,this.pivotDimensionName)},excludeLowPopText(){const e=this.clientSideParameters;return sd(ld(e.enable_filter_excludelowpop),"CoreHome_IncludeRowsWithLowPopulation","CoreHome_ExcludeRowsWithLowPopulation")},isAnyConfigureIconHighlighted(){const e=this.clientSideParameters;return ld(e.flat)||ld(e.keep_totals_row)||ld(e.include_aggregate_rows)||ld(e.show_dimensions)||ld(e.pivotBy)||ld(e.enable_filter_excludelowpop)},isTableView(){return"table"===this.viewDataTable||"tableAllColumns"===this.viewDataTable||"tableGoals"===this.viewDataTable}}});cd.render=nd;var dd=cd;const ud={key:0,class:"title",style:{cursor:"pointer"},ref:"expander"},md=Object(D["createElementVNode"])("span",{class:"icon-warning"},null,-1),pd={key:1,class:"title",href:"?module=CoreUpdater&action=newVersionAvailable",style:{cursor:"pointer"},ref:"expander"},hd=Object(D["createElementVNode"])("span",{class:"icon-warning"},null,-1),gd=["innerHTML"],bd=["href"],fd={id:"updateCheckLinkContainer"},vd={class:"dropdown positionInViewport"},Od=["innerHTML"],yd=["innerHTML"];function jd(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Passthrough"),s=Object(D["resolveDirective"])("expand-on-hover");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{id:"header_message",class:Object(D["normalizeClass"])(["piwikSelector",{header_info:!e.latestVersionAvailable||e.lastUpdateCheckFailed,update_available:e.latestVersionAvailable}])},[e.latestVersionAvailable?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0},{default:Object(D["withCtx"])(()=>[e.isMultiServerEnvironment?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",ud,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),md],512)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",pd,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),hd],512))]),_:1})):e.isSuperUser&&(e.isAdminArea||e.lastUpdateCheckFailed)?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:1},{default:Object(D["withCtx"])(()=>[e.isInternetEnabled?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:"title",innerHTML:e.$sanitize(e.updateCheck)},null,8,gd)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"title",href:e.externalRawLink("https://matomo.org/changelog/"),target:"_blank",rel:"noreferrer noopener"},[Object(D["createElementVNode"])("span",fd,Object(D["toDisplayString"])(e.translate("CoreHome_SeeAvailableVersions")),1)],8,bd))]),_:1})):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",vd,[e.latestVersionAvailable&&e.isSuperUser?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.updateNowText)},null,8,Od)):e.latestVersionAvailable&&e.hasSomeViewAccess&&!e.isAnonymous?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:1,innerHTML:e.$sanitize(e.updateAvailableText)},null,8,yd)):Object(D["createCommentVNode"])("",!0),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.translate("General_YouAreCurrentlyUsing",e.piwikVersion)),1)])],2)),[[s,{expander:"expander"}]])}var wd=Object(D["defineComponent"])({props:{isMultiServerEnvironment:Boolean,lastUpdateCheckFailed:Boolean,latestVersionAvailable:String,isSuperUser:Boolean,isAdminArea:Boolean,isInternetEnabled:Boolean,updateCheck:String,isAnonymous:Boolean,hasSomeViewAccess:Boolean,contactEmail:String,piwikVersion:String},components:{Passthrough:dc},directives:{ExpandOnHover:Dt},computed:{updateNowText(){let e="";if(this.isMultiServerEnvironment){const t=ue(`https://builds.matomo.org/matomo-${this.latestVersionAvailable}.zip`);e=a("CoreHome_OneClickUpdateNotPossibleAsMultiServerEnvironment",`builds.matomo.org`)}else e=a("General_PiwikXIsAvailablePleaseUpdateNow",this.latestVersionAvailable||"",'
',"",me("https://matomo.org/changelog/"),"");return e+"
"},updateAvailableText(){const e=a("General_NewUpdatePiwikX",this.latestVersionAvailable||""),t=me("https://matomo.org/")+"Matomo",i=me("https://matomo.org/changelog/"),o=a("General_PiwikXIsAvailablePleaseNotifyPiwikAdmin",`${t} ${i}${this.latestVersionAvailable}`,``,"");return o+"
"}}});wd.render=jd;var Sd=wd;const Cd={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},kd={class:"collapsible collapsible-accordion"},Dd={class:"collapsible-header"},Ed={class:"collapsible-body"},Pd=["title","href"];function Td(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("side-nav");return Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Cd,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menuWithSubmenuItems,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:"no-padding",key:i},[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",kd,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("a",Dd,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translateOrDefault(i)),1),Object(D["createElementVNode"])("i",{class:Object(D["normalizeClass"])(t._icon||"icon-chevron-down")},null,2)]),Object(D["createElementVNode"])("div",Ed,[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(Object.entries(t).filter(([e])=>"_"!==e[0]),([t,i])=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t},[Object(D["createElementVNode"])("a",{title:i._tooltip?e.translateIfNecessary(i._tooltip):"",target:"_self",href:e.getMenuUrl(i._url)},Object(D["toDisplayString"])(e.translateIfNecessary(t)),9,Pd)]))),128))])])])])),[[r,{activator:e.activateLeftMenu}]])]))),128))])}const{$:Vd}=window;var xd=Object(D["defineComponent"])({props:{menu:{type:Object,required:!0}},directives:{SideNav:Ht},methods:{getMenuUrl(e){return"?"+U.stringify(Object.assign(Object.assign({},U.urlParsed.value),e))},translateIfNecessary(e){return e.includes("_")?a(e):e}},computed:{menuWithSubmenuItems(){const e=this.menu||{};return Object.fromEntries(Object.entries(e).filter(([,e])=>{const t=Object.entries(e).filter(([e])=>"_"!==e[0]);return Object.keys(t).length}))},activateLeftMenu(){return Vd("nav .activateLeftMenu")[0]}}});xd.render=Td;var Nd=xd; + */var ac={mounted(e,t){var i;null!==t&&void 0!==t&&null!==(i=t.value)&&void 0!==i&&i.off||nc(e)},updated(e,t){var i;null!==t&&void 0!==t&&null!==(i=t.value)&&void 0!==i&&i.off?oc(e):Object(D["nextTick"])(()=>{nc(e)})},beforeUnmount(e){oc(e)}};const rc={ref:"root"};function sc(e,t,i,o,n,a){return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",rc,[Object(D["renderSlot"])(e.$slots,"default",{formData:e.formData,submitApiMethod:e.submitApiMethod,sendJsonPayload:e.sendJsonPayload,noErrorNotification:e.noErrorNotification,noSuccessNotification:e.noSuccessNotification,submitForm:e.submitForm,isSubmitting:e.isSubmitting,successfulPostResponse:e.successfulPostResponse,errorPostResponse:e.errorPostResponse})],512)}const{$:lc}=window;var cc=Object(D["defineComponent"])({props:{formData:{type:Object,required:!0},submitApiMethod:{type:String,required:!0},sendJsonPayload:Boolean,noErrorNotification:Boolean,noSuccessNotification:Boolean},data(){return{isSubmitting:!1,successfulPostResponse:null,errorPostResponse:null}},emits:["update:modelValue"],mounted(){lc(this.$refs.root).on("click","input[type=submit]",()=>{this.submitForm()})},methods:{submitForm(){this.successfulPostResponse=null,this.errorPostResponse=null;let e=this.formData;this.sendJsonPayload&&(e={data:JSON.stringify(this.formData)}),this.isSubmitting=!0,te.post({module:"API",method:this.submitApiMethod},e,{createErrorNotification:!this.noErrorNotification}).then(e=>{if(this.successfulPostResponse=e,!this.noSuccessNotification){const e=$o.show({message:a("General_YourChangesHaveBeenSaved"),context:"success",type:"toast",id:"ajaxHelper"});$o.scrollToNotification(e)}}).catch(e=>{this.errorPostResponse=e.message}).finally(()=>{this.isSubmitting=!1})}}});cc.render=sc;var dc=cc;function uc(e,t,i,o,n,a){return Object(D["renderSlot"])(e.$slots,"default")}var mc=Object(D["defineComponent"])({});mc.render=uc;var pc=mc;const hc={key:0},gc=["data-target","title"],bc=Object(D["createElementVNode"])("span",{class:"icon-configure"},null,-1),fc=[bc],vc=["data-target"],Oc=["title"],yc=["title","src"],jc=["id"],wc=["data-footer-icon-id"],Sc=["title"],Cc=["title","src"],kc={key:2},Dc=Object(D["createElementVNode"])("li",{class:"divider"},null,-1),Ec=Object(D["createElementVNode"])("li",{class:"divider"},null,-1),Pc=["title"],Tc=Object(D["createElementVNode"])("span",{class:"icon-export"},null,-1),Vc=[Tc],xc=["title"],Nc=Object(D["createElementVNode"])("span",{class:"icon-image"},null,-1),Bc=[Nc],Ic=["title"],Mc=Object(D["createElementVNode"])("span",{class:"icon-annotation"},null,-1),Fc=[Mc],Lc=["title"],Rc=Object(D["createElementVNode"])("span",{class:"icon-search",draggable:"false"},null,-1),Ac=["title"],_c=["id","title"],Hc=["title"],$c=["title","src"],Uc=["id"],qc={key:0},Wc=["innerHTML"],zc={key:1},Gc=["innerHTML"],Kc={key:2},Yc=["innerHTML"],Qc={key:3},Jc=["innerHTML"],Xc={key:4},Zc=["innerHTML"],ed={key:5},td=["innerHTML"],id=["title","data-target"],od=Object(D["createElementVNode"])("span",{class:"icon-calendar"},null,-1),nd={class:"periodName"},ad=["id"],rd=["data-period"];function sd(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Passthrough"),s=Object(D["resolveDirective"])("dropdown-button"),l=Object(D["resolveDirective"])("report-export");return e.showFooter&&e.showFooterIcons?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",hc,[e.hasConfigItems&&(e.isAnyConfigureIconHighlighted||e.isTableView)?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:Object(D["normalizeClass"])(["dropdown-button dropdownConfigureIcon dataTableAction",{highlighted:e.isAnyConfigureIconHighlighted}]),href:"",onClick:t[0]||(t[0]=Object(D["withModifiers"])(()=>{},["prevent"])),"data-target":"dropdownConfigure"+e.randomIdForDropdown,title:e.translate("CoreHome_ReportConfigure"),style:{"margin-right":"3.5px"}},fc,10,gc)),[[s]]):Object(D["createCommentVNode"])("",!0),e.hasFooterIconsToShow?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"dropdown-button dataTableAction activateVisualizationSelection",href:"","data-target":"dropdownVisualizations"+e.randomIdForDropdown,style:{"margin-right":"3.5px"},onClick:t[1]||(t[1]=Object(D["withModifiers"])(()=>{},["prevent"]))},[/^icon-/.test(e.activeFooterIcon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,title:e.translate("CoreHome_ChangeVisualization"),class:Object(D["normalizeClass"])(e.activeFooterIcon)},null,10,Oc)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,title:e.translate("CoreHome_ChangeVisualization"),width:"16",height:"16",src:e.activeFooterIcon},null,8,yc))],8,vc)),[[s]]):Object(D["createCommentVNode"])("",!0),e.showFooterIcons?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:2,id:"dropdownVisualizations"+e.randomIdForDropdown,class:"dropdown-content dataTableFooterIcons"},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.footerIcons,(t,i)=>(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:i},{default:Object(D["withCtx"])(()=>[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.buttons.filter(e=>!!e.icon),i=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i.id},[Object(D["createElementVNode"])("a",{class:Object(D["normalizeClass"])(`${t.class} tableIcon\n ${-1!==e.activeFooterIconIds.indexOf(i.id)?"activeIcon":""}`),"data-footer-icon-id":i.id},[/^icon-/.test(i.icon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,title:i.title,class:Object(D["normalizeClass"])(i.icon),style:{"margin-right":"5.5px"}},null,10,Sc)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,width:"16",height:"16",title:i.title,src:i.icon,style:{"margin-right":"5.5px"}},null,8,Cc)),i.title?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",kc,Object(D["toDisplayString"])(i.title),1)):Object(D["createCommentVNode"])("",!0)],10,wc)]))),128)),Dc]),_:2},1024))),128)),Ec],8,jc)):Object(D["createCommentVNode"])("",!0),e.showExport?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:3,class:"dataTableAction activateExportSelection",title:e.translate("General_ExportThisReport"),href:"",style:{"margin-right":"3.5px"},onClick:t[2]||(t[2]=Object(D["withModifiers"])(()=>{},["prevent"]))},Vc,8,Pc)),[[l,{reportTitle:e.reportTitle,requestParams:e.requestParams,apiMethod:e.apiMethodToRequestDataTable,reportFormats:e.reportFormats,maxFilterLimit:e.maxFilterLimit}]]):Object(D["createCommentVNode"])("",!0),e.showExportAsImageIcon?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:4,class:"dataTableAction tableIcon",href:"",id:"dataTableFooterExportAsImageIcon",onClick:t[3]||(t[3]=Object(D["withModifiers"])(t=>e.showExportImage(t),["prevent"])),title:e.translate("General_ExportAsImage"),style:{"margin-right":"3.5px"}},Bc,8,xc)):Object(D["createCommentVNode"])("",!0),e.showAnnotations?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:5,class:"dataTableAction annotationView",href:"",title:e.translate("Annotations_Annotations"),onClick:t[4]||(t[4]=Object(D["withModifiers"])(()=>{},["prevent"])),style:{"margin-right":"3.5px"}},Fc,8,Ic)):Object(D["createCommentVNode"])("",!0),e.showSearch?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:6,class:"dropdown-button dataTableAction searchAction",href:"",title:e.translate("General_Search"),style:{"margin-right":"3.5px"},draggable:"false",onClick:t[5]||(t[5]=Object(D["withModifiers"])(()=>{},["prevent"]))},[Rc,Object(D["createElementVNode"])("span",{class:"icon-close",draggable:"false",title:e.translate("CoreHome_CloseSearch")},null,8,Ac),Object(D["createElementVNode"])("input",{id:`widgetSearch_${e.reportId}_${e.placement}`,title:e.translate("CoreHome_DataTableHowToSearch"),type:"text",class:"dataTableSearchInput"},null,8,_c)],8,Lc)):Object(D["createCommentVNode"])("",!0),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.dataTableActions,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:e.id,class:Object(D["normalizeClass"])("dataTableAction "+e.id),href:"",onClick:t[6]||(t[6]=Object(D["withModifiers"])(()=>{},["prevent"])),title:e.title,style:{"margin-right":"3.5px"}},[/^icon-/.test(e.icon||"")?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,class:Object(D["normalizeClass"])(e.icon)},null,2)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("img",{key:1,width:"16",height:"16",title:e.title,src:e.icon},null,8,$c))],10,Hc))),128)),Object(D["createElementVNode"])("ul",{id:"dropdownConfigure"+e.randomIdForDropdown,class:"dropdown-content tableConfiguration"},[e.showFlattenTable?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",qc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableFlatten",innerHTML:e.$sanitize(e.flattenItemText)},null,8,Wc)])):Object(D["createCommentVNode"])("",!0),e.showDimensionsConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",zc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableShowDimensions",innerHTML:e.$sanitize(e.showDimensionsText)},null,8,Gc)])):Object(D["createCommentVNode"])("",!0),e.showFlatConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Kc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableIncludeAggregateRows",innerHTML:e.$sanitize(e.includeAggregateRowsText)},null,8,Yc)])):Object(D["createCommentVNode"])("",!0),e.showTotalsConfigItem?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Qc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableShowTotalsRow",innerHTML:e.$sanitize(e.keepTotalsRowText)},null,8,Jc)])):Object(D["createCommentVNode"])("",!0),e.showExcludeLowPopulation?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",Xc,[Object(D["createElementVNode"])("div",{class:"configItem dataTableExcludeLowPopulation",innerHTML:e.$sanitize(e.excludeLowPopText)},null,8,Zc)])):Object(D["createCommentVNode"])("",!0),e.showPivotBySubtable?(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",ed,[Object(D["createElementVNode"])("div",{class:"configItem dataTablePivotBySubtable",innerHTML:e.$sanitize(e.pivotByText)},null,8,td)])):Object(D["createCommentVNode"])("",!0)],8,Uc),e.showPeriods?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:7,class:"dropdown-button dataTableAction activatePeriodsSelection",href:"",onClick:t[7]||(t[7]=Object(D["withModifiers"])(()=>{},["prevent"])),title:e.translate("CoreHome_ChangePeriod"),"data-target":"dropdownPeriods"+e.randomIdForDropdown},[Object(D["createElementVNode"])("div",null,[od,Object(D["createElementVNode"])("span",nd,Object(D["toDisplayString"])(e.translations[e.clientSideParameters.period]||e.clientSideParameters.period),1)])],8,id)),[[s]]):Object(D["createCommentVNode"])("",!0),e.showPeriods?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",{key:8,id:"dropdownPeriods"+e.randomIdForDropdown,class:"dropdown-content dataTablePeriods"},[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.selectablePeriods,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t},[Object(D["createElementVNode"])("a",{"data-period":t,class:Object(D["normalizeClass"])("tableIcon "+(e.clientSideParameters.period===t?"activeIcon":""))},[Object(D["createElementVNode"])("span",null,Object(D["toDisplayString"])(e.translations[t]||t),1)],10,rd)]))),128))],8,ad)):Object(D["createCommentVNode"])("",!0)])):Object(D["createCommentVNode"])("",!0)}const{$:ld}=window;function cd(e,t,i){if(/(%(.\$)?s+)/g.test(a(e))){const o=['
'];i&&o.push(i);let n=a(e,...o);return t&&(n+=` (${a("CoreHome_Default")})`),n+="",n}return a(e)}function dd(e,t,i){return e?cd(t,!0):cd(i)}function ud(e){return!!e&&"0"!==e}var md=Object(D["defineComponent"])({props:{showPeriods:Boolean,showFooter:Boolean,showFooterIcons:Boolean,showSearch:Boolean,showFlattenTable:Boolean,footerIcons:{type:Array,required:!0},viewDataTable:{type:String,required:!0},reportTitle:String,requestParams:{type:Object,required:!0},apiMethodToRequestDataTable:{type:String,required:!0},maxFilterLimit:{type:Number,required:!0},showExport:Boolean,showExportAsImageIcon:Boolean,showAnnotations:Boolean,reportId:{type:String,required:!0},dataTableActions:{type:Array,required:!0},clientSideParameters:{type:Object,required:!0},hasMultipleDimensions:Boolean,isDataTableEmpty:Boolean,showTotalsRow:Boolean,showExcludeLowPopulation:Boolean,showPivotBySubtable:Boolean,selectablePeriods:Array,translations:{type:Object,required:!0},pivotDimensionName:String,placement:{type:String,default:"footer"}},components:{Passthrough:pc},directives:{DropdownButton:Vt,ReportExport:Ll},methods:{showExportImage(e){ld(e.target).closest(".dataTable").find("div.jqplot-target").trigger("piwikExportAsImage")}},computed:{randomIdForDropdown(){return Math.floor(999999*Math.random())},allFooterIcons(){return this.footerIcons.reduce((e,t)=>(e.push(...t.buttons),e),[])},activeFooterIcons(){const e=this.clientSideParameters,t=[this.viewDataTable];return 0===e.abandonedCarts||"0"===e.abandonedCarts?t.push("ecommerceOrder"):1!==e.abandonedCarts&&"1"!==e.abandonedCarts||t.push("ecommerceAbandonedCart"),t.map(e=>this.allFooterIcons.find(t=>t.id===e)).filter(e=>!!e)},activeFooterIcon(){var e;return null===(e=this.activeFooterIcons[0])||void 0===e?void 0:e.icon},activeFooterIconIds(){return this.activeFooterIcons.map(e=>e.id)},numIcons(){return this.allFooterIcons.length},hasFooterIconsToShow(){return!!this.activeFooterIcons.length&&this.numIcons>1},reportFormats(){const e={TSV:"TSV (Excel)",HTML:"HTML",JSON:"JSON",XML:"XML",CSV:"CSV",RSS:"RSS"};return e},showDimensionsConfigItem(){return this.showFlattenTable&&""+this.clientSideParameters.flat==="1"&&this.hasMultipleDimensions},showFlatConfigItem(){return this.showFlattenTable&&""+this.clientSideParameters.flat==="1"},showTotalsConfigItem(){return!this.isDataTableEmpty&&this.showTotalsRow},hasConfigItems(){return this.showFlattenTable||this.showDimensionsConfigItem||this.showFlatConfigItem||this.showTotalsConfigItem||this.showExcludeLowPopulation||this.showPivotBySubtable},flattenItemText(){const e=this.clientSideParameters;return dd(ud(e.flat),"CoreHome_UnFlattenDataTable","CoreHome_FlattenDataTable")},keepTotalsRowText(){const e=this.clientSideParameters;return dd(ud(e.keep_totals_row),"CoreHome_RemoveTotalsRowDataTable","CoreHome_AddTotalsRowDataTable")},includeAggregateRowsText(){const e=this.clientSideParameters;return dd(ud(e.include_aggregate_rows),"CoreHome_DataTableExcludeAggregateRows","CoreHome_DataTableIncludeAggregateRows")},showDimensionsText(){const e=this.clientSideParameters;return dd(ud(e.show_dimensions),"CoreHome_DataTableCombineDimensions","CoreHome_DataTableShowDimensions")},pivotByText(){const e=this.clientSideParameters;return ud(e.pivotBy)?cd("CoreHome_UndoPivotBySubtable",!0):cd("CoreHome_PivotBySubtable",!1,this.pivotDimensionName)},excludeLowPopText(){const e=this.clientSideParameters;return dd(ud(e.enable_filter_excludelowpop),"CoreHome_IncludeRowsWithLowPopulation","CoreHome_ExcludeRowsWithLowPopulation")},isAnyConfigureIconHighlighted(){const e=this.clientSideParameters;return ud(e.flat)||ud(e.keep_totals_row)||ud(e.include_aggregate_rows)||ud(e.show_dimensions)||ud(e.pivotBy)||ud(e.enable_filter_excludelowpop)},isTableView(){return"table"===this.viewDataTable||"tableAllColumns"===this.viewDataTable||"tableGoals"===this.viewDataTable}}});md.render=sd;var pd=md;const hd={key:0,class:"title",style:{cursor:"pointer"},ref:"expander"},gd=Object(D["createElementVNode"])("span",{class:"icon-warning"},null,-1),bd={key:1,class:"title",href:"?module=CoreUpdater&action=newVersionAvailable",style:{cursor:"pointer"},ref:"expander"},fd=Object(D["createElementVNode"])("span",{class:"icon-warning"},null,-1),vd=["innerHTML"],Od=["href"],yd={id:"updateCheckLinkContainer"},jd={class:"dropdown positionInViewport"},wd=["innerHTML"],Sd=["innerHTML"];function Cd(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Passthrough"),s=Object(D["resolveDirective"])("expand-on-hover");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{id:"header_message",class:Object(D["normalizeClass"])(["piwikSelector",{header_info:!e.latestVersionAvailable||e.lastUpdateCheckFailed,update_available:e.latestVersionAvailable}])},[e.latestVersionAvailable?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0},{default:Object(D["withCtx"])(()=>[e.isMultiServerEnvironment?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",hd,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),gd],512)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",bd,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),fd],512))]),_:1})):e.isSuperUser&&(e.isAdminArea||e.lastUpdateCheckFailed)?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:1},{default:Object(D["withCtx"])(()=>[e.isInternetEnabled?(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:0,class:"title",innerHTML:e.$sanitize(e.updateCheck)},null,8,vd)):(Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{key:1,class:"title",href:e.externalRawLink("https://matomo.org/changelog/"),target:"_blank",rel:"noreferrer noopener"},[Object(D["createElementVNode"])("span",yd,Object(D["toDisplayString"])(e.translate("CoreHome_SeeAvailableVersions")),1)],8,Od))]),_:1})):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("div",jd,[e.latestVersionAvailable&&e.isSuperUser?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.updateNowText)},null,8,wd)):e.latestVersionAvailable&&e.hasSomeViewAccess&&!e.isAnonymous?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:1,innerHTML:e.$sanitize(e.updateAvailableText)},null,8,Sd)):Object(D["createCommentVNode"])("",!0),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(e.translate("General_YouAreCurrentlyUsing",e.piwikVersion)),1)])],2)),[[s,{expander:"expander"}]])}var kd=Object(D["defineComponent"])({props:{isMultiServerEnvironment:Boolean,lastUpdateCheckFailed:Boolean,latestVersionAvailable:String,isSuperUser:Boolean,isAdminArea:Boolean,isInternetEnabled:Boolean,updateCheck:String,isAnonymous:Boolean,hasSomeViewAccess:Boolean,contactEmail:String,piwikVersion:String},components:{Passthrough:pc},directives:{ExpandOnHover:Dt},computed:{updateNowText(){let e="";if(this.isMultiServerEnvironment){const t=ue(`https://builds.matomo.org/matomo-${this.latestVersionAvailable}.zip`);e=a("CoreHome_OneClickUpdateNotPossibleAsMultiServerEnvironment",`builds.matomo.org`)}else e=a("General_PiwikXIsAvailablePleaseUpdateNow",this.latestVersionAvailable||"",'
',"",me("https://matomo.org/changelog/"),"");return e+"
"},updateAvailableText(){const e=a("General_NewUpdatePiwikX",this.latestVersionAvailable||""),t=me("https://matomo.org/")+"Matomo",i=me("https://matomo.org/changelog/"),o=a("General_PiwikXIsAvailablePleaseNotifyPiwikAdmin",`${t} ${i}${this.latestVersionAvailable}`,``,"");return o+"
"}}});kd.render=Cd;var Dd=kd;const Ed={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},Pd={class:"collapsible collapsible-accordion"},Td={class:"collapsible-header"},Vd={class:"collapsible-body"},xd=["title","href"];function Nd(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("side-nav");return Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Ed,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.menuWithSubmenuItems,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:"no-padding",key:i},[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Pd,[Object(D["createElementVNode"])("li",null,[Object(D["createElementVNode"])("a",Td,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translateOrDefault(i)),1),Object(D["createElementVNode"])("i",{class:Object(D["normalizeClass"])(t._icon||"icon-chevron-down")},null,2)]),Object(D["createElementVNode"])("div",Vd,[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(Object.entries(t).filter(([e])=>"_"!==e[0]),([t,i])=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t},[Object(D["createElementVNode"])("a",{title:i._tooltip?e.translateIfNecessary(i._tooltip):"",target:"_self",href:e.getMenuUrl(i._url)},Object(D["toDisplayString"])(e.translateIfNecessary(t)),9,xd)]))),128))])])])])),[[r,{activator:e.activateLeftMenu}]])]))),128))])}const{$:Bd}=window;var Id=Object(D["defineComponent"])({props:{menu:{type:Object,required:!0}},directives:{SideNav:Ht},methods:{getMenuUrl(e){return"?"+U.stringify(Object.assign(Object.assign({},U.urlParsed.value),e))},translateIfNecessary(e){return e.includes("_")?a(e):e}},computed:{menuWithSubmenuItems(){const e=this.menu||{};return Object.fromEntries(Object.entries(e).filter(([,e])=>{const t=Object.entries(e).filter(([e])=>"_"!==e[0]);return Object.keys(t).length}))},activateLeftMenu(){return Bd("nav .activateLeftMenu")[0]}}});Id.render=Nd;var Md=Id; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const{$:Bd}=window;function Md(e){Bd.scrollTo(e,20)}function Id(e){e&&e.preventDefault()}function Fd(e,t){var i,o;if(!e)return;if(-1!==e.indexOf("&"))return;let n=null;try{n=Bd("#"+e)}catch(a){return}if(null!==(i=n)&&void 0!==i&&i.length)return Md(n),void Id(t);n=Bd(`a[name=${e}]`),null!==(o=n)&&void 0!==o&&o.length&&(Md(n),Id(t))}function Ld(e,t){return(!e||!e.origin||-1!==t.indexOf(e.origin))&&((!e||!e.pathname||-1!==t.indexOf(e.pathname))&&(!e||!e.search||-1!==t.indexOf(e.search)))}function Rd(){if("#/"===window.location.hash.slice(0,2)){const e=window.location.hash.slice(2);Fd(e,null)}}function Ad(){Object(D["watch"])(()=>U.url.value,(e,t)=>{if(!e)return;const i=e.href.indexOf("#/");if(-1===i)return;if(t&&!Ld(t,e.href))return;const o=e.href.slice(i+2);Fd(o,null)})}function _d(){Object(D["nextTick"])(Rd)} + */const{$:Fd}=window;function Ld(e){Fd.scrollTo(e,20)}function Rd(e){e&&e.preventDefault()}function Ad(e,t){var i,o;if(!e)return;if(-1!==e.indexOf("&"))return;let n=null;try{n=Fd("#"+e)}catch(a){return}if(null!==(i=n)&&void 0!==i&&i.length)return Ld(n),void Rd(t);n=Fd(`a[name=${e}]`),null!==(o=n)&&void 0!==o&&o.length&&(Ld(n),Rd(t))}function _d(e,t){return(!e||!e.origin||-1!==t.indexOf(e.origin))&&((!e||!e.pathname||-1!==t.indexOf(e.pathname))&&(!e||!e.search||-1!==t.indexOf(e.search)))}function Hd(){if("#/"===window.location.hash.slice(0,2)){const e=window.location.hash.slice(2);Ad(e,null)}}function $d(){Object(D["watch"])(()=>U.url.value,(e,t)=>{if(!e)return;const i=e.href.indexOf("#/");if(-1===i)return;if(t&&!_d(t,e.href))return;const o=e.href.slice(i+2);Ad(o,null)})}function Ud(){Object(D["nextTick"])(Hd)} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Hd(e){const t=[];if("INPUT"===e.tagName&&"password"===e.type)t.push(e);else{const i=e.querySelectorAll('input[type="password"]');i.forEach(e=>t.push(e))}return t}function $d(e,t){let i,o=e.value;const n=()=>{e.value="",e.dispatchEvent(new Event("input"))},a=()=>{i&&clearTimeout(i),i=setTimeout(n,1e3*t)},r=()=>a(),s=()=>a();e.addEventListener("input",r),e.addEventListener("change",s),e.dataset.autoClearEnabled="true";const l=setInterval(()=>{e.value!==o&&(o=e.value,a())},300);e.onUmounted={cleanup(){clearTimeout(i),clearInterval(l),e.removeEventListener("input",r),e.removeEventListener("change",s),delete e.dataset.autoClearEnabled}}}Ad(),Bd(Rd);var Ud={mounted(e,t){const i=t.value&&t.value.delay||600,o=Hd(e);o.forEach(e=>$d(e,i))},unmounted(e){const t=Hd(e);t.forEach(e=>{e.onUmounted&&"function"===typeof e.onUmounted.cleanup&&(e.onUmounted.cleanup(),delete e.onUmounted)})}};const qd={key:0,class:"password-strength row"};function Wd(e,t,i,o,n,a){return e.rules.length?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",qd,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.rules,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t.ruleText,class:Object(D["normalizeClass"])("col s12 xl6 rule rule-"+e.ruleStatus(t))},[Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])({icon:!0,"icon-ok":"valid"===e.ruleStatus(t),"icon-close":"invalid"===e.ruleStatus(t),"icon-circle":"undefined"===e.ruleStatus(t)})},null,2),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(t.ruleText),1)],2))),128))])):Object(D["createCommentVNode"])("",!0)}var zd=Object(D["defineComponent"])({props:{validationRules:{type:Array,required:!0},password:{type:String,default:""},externalInputSelector:{type:String,default:""}},data(){return{pwd:"",rules:[]}},emits:["check:isValid"],watch:{pwdValue:{immediate:!0,handler(e){const t=[];this.rules.forEach(i=>{if(e.length||"undefined"===typeof i.passed)try{const o=new RegExp(i.validationRegex.replace(/^\/|\/$/g,""));o.test(e)?(i.passed=!0,t.push(!0)):i.passed=!1}catch(o){console.log("Invalid password validation pattern:",o)}else delete i.passed}),this.rules.length>0&&t.length===this.rules.length&&this.$emit("check:isValid",!0)}}},computed:{pwdValue(){var e;return null!==(e=this.externalInputSelector)&&void 0!==e&&e.length?this.pwd:this.password}},mounted(){var e;if(this.rules=this.validationRules.length?this.validationRules.map(e=>Object.assign({},e)):[],null!==(e=this.externalInputSelector)&&void 0!==e&&e.length){const e=document.querySelector(this.externalInputSelector);e&&(e.addEventListener("input",this.handleExternalInput),this.pwd=e.value)}},unmounted(){var e;if(null!==(e=this.externalInputSelector)&&void 0!==e&&e.length){const e=document.querySelector(this.externalInputSelector);e&&e.removeEventListener("input",this.handleExternalInput)}},methods:{ruleStatus(e){return"undefined"===typeof e.passed?"undefined":e.passed?"valid":"invalid"},handleExternalInput(e){const t=e.target;this.pwd=t.value}}});zd.render=Wd;var Gd=zd; + */function qd(e){const t=[];if("INPUT"===e.tagName&&"password"===e.type)t.push(e);else{const i=e.querySelectorAll('input[type="password"]');i.forEach(e=>t.push(e))}return t}function Wd(e,t){let i,o=e.value;const n=()=>{e.value="",e.dispatchEvent(new Event("input"))},a=()=>{i&&clearTimeout(i),i=setTimeout(n,1e3*t)},r=()=>a(),s=()=>a();e.addEventListener("input",r),e.addEventListener("change",s),e.dataset.autoClearEnabled="true";const l=setInterval(()=>{e.value!==o&&(o=e.value,a())},300);e.onUmounted={cleanup(){clearTimeout(i),clearInterval(l),e.removeEventListener("input",r),e.removeEventListener("change",s),delete e.dataset.autoClearEnabled}}}$d(),Fd(Hd);var zd={mounted(e,t){const i=t.value&&t.value.delay||600,o=qd(e);o.forEach(e=>Wd(e,i))},unmounted(e){const t=qd(e);t.forEach(e=>{e.onUmounted&&"function"===typeof e.onUmounted.cleanup&&(e.onUmounted.cleanup(),delete e.onUmounted)})}};const Gd={key:0,class:"password-strength row"};function Kd(e,t,i,o,n,a){return e.rules.length?(Object(D["openBlock"])(),Object(D["createElementBlock"])("ul",Gd,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.rules,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:t.ruleText,class:Object(D["normalizeClass"])("col s12 xl6 rule rule-"+e.ruleStatus(t))},[Object(D["createElementVNode"])("span",{class:Object(D["normalizeClass"])({icon:!0,"icon-ok":"valid"===e.ruleStatus(t),"icon-close":"invalid"===e.ruleStatus(t),"icon-circle":"undefined"===e.ruleStatus(t)})},null,2),Object(D["createTextVNode"])(" "+Object(D["toDisplayString"])(t.ruleText),1)],2))),128))])):Object(D["createCommentVNode"])("",!0)}var Yd=Object(D["defineComponent"])({props:{validationRules:{type:Array,required:!0},password:{type:String,default:""},externalInputSelector:{type:String,default:""}},data(){return{pwd:"",rules:[]}},emits:["check:isValid"],watch:{pwdValue:{immediate:!0,handler(e){const t=[];this.rules.forEach(i=>{if(e.length||"undefined"===typeof i.passed)try{const o=new RegExp(i.validationRegex.replace(/^\/|\/$/g,""));o.test(e)?(i.passed=!0,t.push(!0)):i.passed=!1}catch(o){console.log("Invalid password validation pattern:",o)}else delete i.passed}),this.rules.length>0&&t.length===this.rules.length&&this.$emit("check:isValid",!0)}}},computed:{pwdValue(){var e;return null!==(e=this.externalInputSelector)&&void 0!==e&&e.length?this.pwd:this.password}},mounted(){var e;if(this.rules=this.validationRules.length?this.validationRules.map(e=>Object.assign({},e)):[],null!==(e=this.externalInputSelector)&&void 0!==e&&e.length){const e=document.querySelector(this.externalInputSelector);e&&(e.addEventListener("input",this.handleExternalInput),this.pwd=e.value)}},unmounted(){var e;if(null!==(e=this.externalInputSelector)&&void 0!==e&&e.length){const e=document.querySelector(this.externalInputSelector);e&&e.removeEventListener("input",this.handleExternalInput)}},methods:{ruleStatus(e){return"undefined"===typeof e.passed?"undefined":e.passed?"valid":"invalid"},handleExternalInput(e){const t=e.target;this.pwd=t.value}}});Yd.render=Kd;var Qd=Yd; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */const Kd={class:"main-duplicator-modal-content"},Yd={class:"modal-header"},Qd=Object(D["createElementVNode"])("span",{class:"btn-close modal-close"},[Object(D["createElementVNode"])("i",{class:"icon-close"})],-1),Jd={key:0,class:"modal-sub-header"},Xd={class:"loading-message"},Zd={key:0,class:"modal-sub-header"},eu=["innerHTML"],tu={class:"modal-content"},iu={class:"modal-inputs"},ou={class:"modal-sub-footer"},nu=["innerHTML"],au=["innerHTML"],ru={class:"modal-footer"},su=["disabled"];function lu(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader"),s=Object(D["resolveComponent"])("Field"),l=Object(D["resolveDirective"])("form");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])({modal:!0,"entity-duplicator-modal":!0,"slot-configured":e.$slots.default}),ref:"root"},[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Kd,[Object(D["createElementVNode"])("div",Yd,[Qd,Object(D["createElementVNode"])("h2",null,Object(D["toDisplayString"])(e.getModalTitle),1)]),e.isLoading?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Jd,[Object(D["createVNode"])(r),Object(D["createElementVNode"])("span",Xd,Object(D["toDisplayString"])(e.translate("General_Loading")),1)])):(Object(D["openBlock"])(),Object(D["createElementBlock"])(D["Fragment"],{key:1},[e.hideSiteSelector?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Zd,[Object(D["createElementVNode"])("p",null,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.getDuplicateDescription)+" ",1),e.descriptionLearnMoreLink?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.getLearnMoreLink)},null,8,eu)):Object(D["createCommentVNode"])("",!0)]),Object(D["createVNode"])(s,{uicontrol:"site",name:"siteSelector",title:e.translate("CoreHome_ChooseWebsite"),modelValue:e.destinationSite,"onUpdate:modelValue":t[0]||(t[0]=t=>e.destinationSite=t),"ui-control-attributes":{onlySitesWithAtLeastWriteAccess:!0,siteTypesToExclude:["rollup"]}},null,8,["title","modelValue"])])),Object(D["createElementVNode"])("div",tu,[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",iu,[Object(D["renderSlot"])(e.$slots,"default")])),[[l]])]),Object(D["createElementVNode"])("div",ou,[e.duplicationErrors.length>0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])({alert:!0,"alert-danger":!0,"error-list":e.duplicationErrors.length>1})},[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.duplicationErrors,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i,innerHTML:e.$sanitize(t)},null,8,nu))),128))])],2)):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("p",{class:"note-text",innerHTML:e.$sanitize(e.getNoteText)},null,8,au)]),Object(D["createElementVNode"])("div",ru,[Object(D["withDirectives"])(Object(D["createVNode"])(r,null,null,512),[[D["vShow"],e.hasBeenSubmitted]]),Object(D["createElementVNode"])("button",{class:"btn",disabled:!e.getIsValid||e.hasBeenSubmitted,onClick:t[1]||(t[1]=t=>e.submitRequest())},Object(D["toDisplayString"])(e.translate("General_Copy")),9,su)])],64))],512),[[D["vShow"],e.isModalVisible]])],2)}const cu=Ce("CorePluginsAdmin","Field"),du=Ce("CorePluginsAdmin","Form"),{$:uu}=window;var mu=Object(D["defineComponent"])({directives:{Form:du},components:{Field:cu,MatomoLoader:Ue},props:{modalStore:{type:Object,required:!0},hideSiteSelector:{type:Boolean,default:!1},descriptionLearnMoreLink:{type:String,default:""}},data(){return{isLoading:!0,isValidated:!1,duplicationErrors:[],destinationSite:null,hasBeenSubmitted:!1}},watch:{isModalVisible(e){if(!e)return;let t;this.modalStore.adapter.beforeShowModal&&(t=this.modalStore.adapter.beforeShowModal()),t&&"undefined"!==typeof t||(t=new Promise(e=>e())),this.showModal(),t.then(()=>{this.isLoading=!1})},destinationSite(){this.isValidated=!1}},methods:{closeModal(){const e=this.$refs.root,t=uu(e);t.modal("close")},resetModal(){this.modalStore.hideModal(),this.destinationSite=null,this.isLoading=!0,this.isValidated=!1,this.duplicationErrors=[],this.hasBeenSubmitted=!1},showModal(){const e=this.$refs.root,t=uu(e);t.modal({dismissible:!0,onCloseEnd:()=>{this.resetModal()}}).modal("open")},submitRequest(){this.hasBeenSubmitted=!0,this.getValidationResultPromise().then(e=>{var t;if(!e.isValid&&e.errorMessages.length>0)return this.isValidated=!0,this.hasBeenSubmitted=!1,void(this.duplicationErrors=e.errorMessages);const i=this.modalStore.adapter.prepareApiParams(this.modalStore.getFormValues(null===(t=this.destinationSite)||void 0===t?void 0:t.id));this.modalStore.adapter.submitRequest(i).then(e=>{e&&e.success?(this.modalStore.adapter.onSuccess&&this.modalStore.adapter.onSuccess(e),this.closeModal()):this.setErrorMessages(e)}).catch(e=>{this.setErrorMessages(),this.modalStore.adapter.onFailure&&this.modalStore.adapter.onFailure(e),console.log("Unexpected server error during request.",e)}).finally(()=>{this.hasBeenSubmitted=!1})})},getValidationResultPromise(){var e;this.duplicationErrors=[];const t=this.modalStore.adapter.validateFormFields(this.modalStore.getFormValues(null===(e=this.destinationSite)||void 0===e?void 0:e.id));return"isValid"in t?new Promise(e=>e(t)):t},setErrorMessages(e=null){let t=(null===e||void 0===e?void 0:e.message)||"";t&&0!==t.length||(t=a("General_ErrorRequest","","")),this.duplicationErrors=[],this.duplicationErrors.push(t)}},mounted(){Object(D["watch"])(()=>this.modalStore.state.entityFormData,()=>{this.isValidated=!1},{deep:!0})},computed:{isModalVisible(){var e;return null!==(e=this.modalStore.state.isModalVisible)&&void 0!==e&&e},getModalTitle(){return a("CoreHome_CopyX",this.modalStore.getEntityTypeTranslation)},getNoteText(){const e=a("CoreHome_CopyModalNote","","",this.modalStore.getEntityTypeTranslation);return""+e},getDuplicateDescription(){return a("CoreHome_CopyXDescription",this.modalStore.getEntityTypeTranslation)},getLearnMoreLink(){if(!this.descriptionLearnMoreLink)return"";const e=me(this.descriptionLearnMoreLink);return a("CoreHome_LearnMoreFullStop",e,"")},getIsValid(){return!this.isValidated||Array.isArray(this.duplicationErrors)&&0===this.duplicationErrors.length}}});mu.render=lu;var pu=mu;const hu=["title","aria-disabled"];function gu(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("tooltips");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{class:Object(D["normalizeClass"])([{"entity-duplicator-action":!0,"table-action":!0,"icon-content-copy":!0,"is-disabled":!e.isActionEnabled},e.extraClasses]),title:e.getActionTooltip,"aria-disabled":!e.isActionEnabled,onClick:t[0]||(t[0]=t=>!e.isActionEnabled||e.handleClick())},null,10,hu)),[[r],[D["vShow"],e.isActionVisible]])}var bu=Object(D["defineComponent"])({props:{actionFormData:{type:Object,required:!0},modalStore:{type:Object,required:!0},isActionVisible:{type:Boolean,required:!0},isActionEnabled:{type:Boolean,default:!1},tooltipTextOverride:{type:String,default:""},tooltipTextOverrideDisabled:{type:String,default:""},extraClasses:{type:[String,Array,Object],default:""}},directives:{Tooltips:st},methods:{handleClick(){this.modalStore.showModal(this.actionFormData)}},computed:{getActionTooltip(){return this.isActionEnabled&&this.tooltipTextOverride.length?r(this.tooltipTextOverride):!this.isActionEnabled&&this.tooltipTextOverrideDisabled.length?r(this.tooltipTextOverrideDisabled):a("CoreHome_CopyX",this.modalStore.getEntityTypeTranslation)}}});bu.render=gu;var fu=bu;function vu(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */const Jd={class:"main-duplicator-modal-content"},Xd={class:"modal-header"},Zd=Object(D["createElementVNode"])("span",{class:"btn-close modal-close"},[Object(D["createElementVNode"])("i",{class:"icon-close"})],-1),eu={key:0,class:"modal-sub-header"},tu={class:"loading-message"},iu={key:0,class:"modal-sub-header"},ou=["innerHTML"],nu={class:"modal-content"},au={class:"modal-inputs"},ru={class:"modal-sub-footer"},su=["innerHTML"],lu=["innerHTML"],cu={class:"modal-footer"},du=["disabled"];function uu(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("MatomoLoader"),s=Object(D["resolveComponent"])("Field"),l=Object(D["resolveDirective"])("form");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:Object(D["normalizeClass"])({modal:!0,"entity-duplicator-modal":!0,"slot-configured":e.$slots.default}),ref:"root"},[Object(D["withDirectives"])(Object(D["createElementVNode"])("div",Jd,[Object(D["createElementVNode"])("div",Xd,[Zd,Object(D["createElementVNode"])("h2",null,Object(D["toDisplayString"])(e.getModalTitle),1)]),e.isLoading?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",eu,[Object(D["createVNode"])(r),Object(D["createElementVNode"])("span",tu,Object(D["toDisplayString"])(e.translate("General_Loading")),1)])):(Object(D["openBlock"])(),Object(D["createElementBlock"])(D["Fragment"],{key:1},[e.hideSiteSelector?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",iu,[Object(D["createElementVNode"])("p",null,[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.getDuplicateDescription)+" ",1),e.descriptionLearnMoreLink?(Object(D["openBlock"])(),Object(D["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.getLearnMoreLink)},null,8,ou)):Object(D["createCommentVNode"])("",!0)]),Object(D["createVNode"])(s,{uicontrol:"site",name:"siteSelector",title:e.translate("CoreHome_ChooseWebsite"),modelValue:e.destinationSite,"onUpdate:modelValue":t[0]||(t[0]=t=>e.destinationSite=t),"ui-control-attributes":{onlySitesWithAtLeastWriteAccess:!0,siteTypesToExclude:["rollup"]}},null,8,["title","modelValue"])])),Object(D["createElementVNode"])("div",nu,[Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",au,[Object(D["renderSlot"])(e.$slots,"default")])),[[l]])]),Object(D["createElementVNode"])("div",ru,[e.duplicationErrors.length>0?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])({alert:!0,"alert-danger":!0,"error-list":e.duplicationErrors.length>1})},[Object(D["createElementVNode"])("ul",null,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.duplicationErrors,(t,i)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{key:i,innerHTML:e.$sanitize(t)},null,8,su))),128))])],2)):Object(D["createCommentVNode"])("",!0),Object(D["createElementVNode"])("p",{class:"note-text",innerHTML:e.$sanitize(e.getNoteText)},null,8,lu)]),Object(D["createElementVNode"])("div",cu,[Object(D["withDirectives"])(Object(D["createVNode"])(r,null,null,512),[[D["vShow"],e.hasBeenSubmitted]]),Object(D["createElementVNode"])("button",{class:"btn",disabled:!e.getIsValid||e.hasBeenSubmitted,onClick:t[1]||(t[1]=t=>e.submitRequest())},Object(D["toDisplayString"])(e.translate("General_Copy")),9,du)])],64))],512),[[D["vShow"],e.isModalVisible]])],2)}const mu=Ce("CorePluginsAdmin","Field"),pu=Ce("CorePluginsAdmin","Form"),{$:hu}=window;var gu=Object(D["defineComponent"])({directives:{Form:pu},components:{Field:mu,MatomoLoader:Ue},props:{modalStore:{type:Object,required:!0},hideSiteSelector:{type:Boolean,default:!1},descriptionLearnMoreLink:{type:String,default:""}},data(){return{isLoading:!0,isValidated:!1,duplicationErrors:[],destinationSite:null,hasBeenSubmitted:!1}},watch:{isModalVisible(e){if(!e)return;let t;this.modalStore.adapter.beforeShowModal&&(t=this.modalStore.adapter.beforeShowModal()),t&&"undefined"!==typeof t||(t=new Promise(e=>e())),this.showModal(),t.then(()=>{this.isLoading=!1})},destinationSite(){this.isValidated=!1}},methods:{closeModal(){const e=this.$refs.root,t=hu(e);t.modal("close")},resetModal(){this.modalStore.hideModal(),this.destinationSite=null,this.isLoading=!0,this.isValidated=!1,this.duplicationErrors=[],this.hasBeenSubmitted=!1},showModal(){const e=this.$refs.root,t=hu(e);t.modal({dismissible:!0,onCloseEnd:()=>{this.resetModal()}}).modal("open")},submitRequest(){this.hasBeenSubmitted=!0,this.getValidationResultPromise().then(e=>{var t;if(!e.isValid&&e.errorMessages.length>0)return this.isValidated=!0,this.hasBeenSubmitted=!1,void(this.duplicationErrors=e.errorMessages);const i=this.modalStore.adapter.prepareApiParams(this.modalStore.getFormValues(null===(t=this.destinationSite)||void 0===t?void 0:t.id));this.modalStore.adapter.submitRequest(i).then(e=>{e&&e.success?(this.modalStore.adapter.onSuccess&&this.modalStore.adapter.onSuccess(e),this.closeModal()):this.setErrorMessages(e)}).catch(e=>{this.setErrorMessages(),this.modalStore.adapter.onFailure&&this.modalStore.adapter.onFailure(e),console.log("Unexpected server error during request.",e)}).finally(()=>{this.hasBeenSubmitted=!1})})},getValidationResultPromise(){var e;this.duplicationErrors=[];const t=this.modalStore.adapter.validateFormFields(this.modalStore.getFormValues(null===(e=this.destinationSite)||void 0===e?void 0:e.id));return"isValid"in t?new Promise(e=>e(t)):t},setErrorMessages(e=null){let t=(null===e||void 0===e?void 0:e.message)||"";t&&0!==t.length||(t=a("General_ErrorRequest","","")),this.duplicationErrors=[],this.duplicationErrors.push(t)}},mounted(){Object(D["watch"])(()=>this.modalStore.state.entityFormData,()=>{this.isValidated=!1},{deep:!0})},computed:{isModalVisible(){var e;return null!==(e=this.modalStore.state.isModalVisible)&&void 0!==e&&e},getModalTitle(){return a("CoreHome_CopyX",this.modalStore.getEntityTypeTranslation)},getNoteText(){const e=a("CoreHome_CopyModalNote","","",this.modalStore.getEntityTypeTranslation);return""+e},getDuplicateDescription(){return a("CoreHome_CopyXDescription",this.modalStore.getEntityTypeTranslation)},getLearnMoreLink(){if(!this.descriptionLearnMoreLink)return"";const e=me(this.descriptionLearnMoreLink);return a("CoreHome_LearnMoreFullStop",e,"")},getIsValid(){return!this.isValidated||Array.isArray(this.duplicationErrors)&&0===this.duplicationErrors.length}}});gu.render=uu;var bu=gu;const fu=["title","aria-disabled"];function vu(e,t,i,o,n,a){const r=Object(D["resolveDirective"])("tooltips");return Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("a",{class:Object(D["normalizeClass"])([{"entity-duplicator-action":!0,"table-action":!0,"icon-content-copy":!0,"is-disabled":!e.isActionEnabled},e.extraClasses]),title:e.getActionTooltip,"aria-disabled":!e.isActionEnabled,onClick:t[0]||(t[0]=t=>!e.isActionEnabled||e.handleClick())},null,10,fu)),[[r],[D["vShow"],e.isActionVisible]])}var Ou=Object(D["defineComponent"])({props:{actionFormData:{type:Object,required:!0},modalStore:{type:Object,required:!0},isActionVisible:{type:Boolean,required:!0},isActionEnabled:{type:Boolean,default:!1},tooltipTextOverride:{type:String,default:""},tooltipTextOverrideDisabled:{type:String,default:""},extraClasses:{type:[String,Array,Object],default:""}},directives:{Tooltips:st},methods:{handleClick(){this.modalStore.showModal(this.actionFormData)}},computed:{getActionTooltip(){return this.isActionEnabled&&this.tooltipTextOverride.length?r(this.tooltipTextOverride):!this.isActionEnabled&&this.tooltipTextOverrideDisabled.length?r(this.tooltipTextOverrideDisabled):a("CoreHome_CopyX",this.modalStore.getEntityTypeTranslation)}}});Ou.render=vu;var yu=Ou;function ju(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class Ou{constructor(e){vu(this,"module",void 0),vu(this,"method",void 0),vu(this,"format",void 0),vu(this,"requiredFields",void 0),this.module=e.module||"API",this.method=e.method,this.format=e.format||"json",this.requiredFields=e.requiredFields||["idSite","idDestinationSites"]}async validateFormFields(e){const t=[];return this.requiredFields.forEach(i=>{i in e&&e[i]||t.push(a("General_Required",i))}),new Promise(e=>e({errorMessages:t,isValid:0===t.length}))}prepareApiParams(e){return Object.assign({idSite:I.idSite||U.parsed.value.idSite,idDestinationSites:[e.idDestinationSite]},e)}async submitRequest(e){this.module=e.module||this.module,this.method=e.method||this.method,this.format=e.format||this.format;const t=e;if(!this.method||this.method.length<1)throw new Error("The POST method cannot be empty!");const i=new te;return i.useCallbackInCaseOfError(),i.setErrorCallback(null),i.removeDefaultParameter("date"),i.removeDefaultParameter("period"),i.removeDefaultParameter("segment"),i.addParams({module:this.module,method:this.method,format:this.format},"GET"),i.addParams(t,"POST"),i.setFormat(this.format),i.send()}onSuccess(e){let t=new Promise(e=>e());this.onSuccessCallback&&(t=this.onSuccessCallback(e)),t.then(()=>{setTimeout(()=>{const t=$o.show({message:e.message,context:e.success?"success":"error",type:"toast",id:"entityDuplicationResult"});$o.scrollToNotification(t)})})}}function yu(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */class wu{constructor(e){ju(this,"module",void 0),ju(this,"method",void 0),ju(this,"format",void 0),ju(this,"requiredFields",void 0),this.module=e.module||"API",this.method=e.method,this.format=e.format||"json",this.requiredFields=e.requiredFields||["idSite","idDestinationSites"]}async validateFormFields(e){const t=[];return this.requiredFields.forEach(i=>{i in e&&e[i]||t.push(a("General_Required",i))}),new Promise(e=>e({errorMessages:t,isValid:0===t.length}))}prepareApiParams(e){return Object.assign({idSite:M.idSite||U.parsed.value.idSite,idDestinationSites:[e.idDestinationSite]},e)}async submitRequest(e){this.module=e.module||this.module,this.method=e.method||this.method,this.format=e.format||this.format;const t=e;if(!this.method||this.method.length<1)throw new Error("The POST method cannot be empty!");const i=new te;return i.useCallbackInCaseOfError(),i.setErrorCallback(null),i.removeDefaultParameter("date"),i.removeDefaultParameter("period"),i.removeDefaultParameter("segment"),i.addParams({module:this.module,method:this.method,format:this.format},"GET"),i.addParams(t,"POST"),i.setFormat(this.format),i.send()}onSuccess(e){let t=new Promise(e=>e());this.onSuccessCallback&&(t=this.onSuccessCallback(e)),t.then(()=>{setTimeout(()=>{const t=$o.show({message:e.message,context:e.success?"success":"error",type:"toast",id:"entityDuplicationResult"});$o.scrollToNotification(t)})})}}function Su(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class ju{constructor(e,t,i){yu(this,"state",Object(D["reactive"])({isModalVisible:!1,commonFormData:{},entityFormData:{},entityTypeTranslation:""})),yu(this,"adapter",void 0),this.state.entityTypeTranslation=e,this.adapter="validateFormFields"in t?t:new Ou(t),this.state.commonFormData=null!==i&&void 0!==i?i:{}}static buildStoreInstance(e,t,i){return Object(D["reactive"])(new ju(e,t,i))}showModal(e){this.resetFormData(),Object.entries(null!==e&&void 0!==e?e:{}).forEach(([e,t])=>{this.state.entityFormData[e]=t}),this.state.isModalVisible=!0}hideModal(){this.state.isModalVisible=!1,this.resetFormData()}resetFormData(){Object.keys(this.state.entityFormData).forEach(e=>{delete this.state.entityFormData[e]})}getFormValues(e){const t=Array.isArray(e)?e:[];return e&&!Array.isArray(e)&&t.push(e),Object.assign(Object.assign({idSite:I.idSite||U.parsed.value.idSite,idDestinationSites:t},this.state.commonFormData),this.state.entityFormData)}get getEntityTypeTranslation(){let e="CoreHome_ReportLowercase";return this.state.entityTypeTranslation&&(e=this.state.entityTypeTranslation),r(e)}} + */class Cu{constructor(e,t,i){Su(this,"state",Object(D["reactive"])({isModalVisible:!1,commonFormData:{},entityFormData:{},entityTypeTranslation:""})),Su(this,"adapter",void 0),this.state.entityTypeTranslation=e,this.adapter="validateFormFields"in t?t:new wu(t),this.state.commonFormData=null!==i&&void 0!==i?i:{}}static buildStoreInstance(e,t,i){return Object(D["reactive"])(new Cu(e,t,i))}showModal(e){this.resetFormData(),Object.entries(null!==e&&void 0!==e?e:{}).forEach(([e,t])=>{this.state.entityFormData[e]=t}),this.state.isModalVisible=!0}hideModal(){this.state.isModalVisible=!1,this.resetFormData()}resetFormData(){Object.keys(this.state.entityFormData).forEach(e=>{delete this.state.entityFormData[e]})}getFormValues(e){const t=Array.isArray(e)?e:[];return e&&!Array.isArray(e)&&t.push(e),Object.assign(Object.assign({idSite:M.idSite||U.parsed.value.idSite,idDestinationSites:t},this.state.commonFormData),this.state.entityFormData)}get getEntityTypeTranslation(){let e="CoreHome_ReportLowercase";return this.state.entityTypeTranslation&&(e=this.state.entityTypeTranslation),r(e)}} /*! * Matomo - free/libre analytics platform * diff --git a/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue b/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue new file mode 100644 index 00000000000..bbe96f105a2 --- /dev/null +++ b/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/plugins/CoreHome/vue/src/Widget/Widget.vue b/plugins/CoreHome/vue/src/Widget/Widget.vue index c4dc2529fd6..a02dd9559a1 100644 --- a/plugins/CoreHome/vue/src/Widget/Widget.vue +++ b/plugins/CoreHome/vue/src/Widget/Widget.vue @@ -14,10 +14,15 @@ v-tooltips="{ content: tooltipContent }" > +
; +} + export interface Widget extends Orderable { uniqueId?: string; + name?: string; module?: string; action?: string; viewDataTable?: string; @@ -18,6 +25,7 @@ export interface Widget extends Orderable { isContainer?: boolean; isReport?: boolean; middlewareParameters?: Record; + clientComponent?: ClientComponent; documentation?: string; layout?: string; isWide?: boolean; diff --git a/plugins/CoreHome/vue/src/index.ts b/plugins/CoreHome/vue/src/index.ts index da753d8462b..01c3705d516 100644 --- a/plugins/CoreHome/vue/src/index.ts +++ b/plugins/CoreHome/vue/src/index.ts @@ -72,6 +72,7 @@ export { default as ReportingPagesStore } from './ReportingPages/ReportingPages. export { default as ReportMetadataStore } from './ReportMetadata/ReportMetadata.store'; export { default as WidgetsStore } from './Widget/Widgets.store'; export { default as WidgetLoader } from './WidgetLoader/WidgetLoader.vue'; +export { default as ClientWidgetRenderer } from './Widget/ClientWidgetRenderer.vue'; export { default as WidgetContainer } from './WidgetContainer/WidgetContainer.vue'; export { default as WidgetByDimensionContainer, diff --git a/plugins/Dashboard/javascripts/widgetMenu.js b/plugins/Dashboard/javascripts/widgetMenu.js index 5cf2e35b0bd..c0fe5b498c9 100644 --- a/plugins/Dashboard/javascripts/widgetMenu.js +++ b/plugins/Dashboard/javascripts/widgetMenu.js @@ -174,6 +174,42 @@ widgetsHelper.loadWidgetAjax = function (widgetUniqueId, widgetParameters, onWid widgetParameters['widget'] = 1; + var clientWidgetRequest = { + abort: function () {} + }; + + var clientWidget = null; + if (widgetsHelper.availableWidgets) { + for (var widgetCategory in widgetsHelper.availableWidgets) { + if (!widgetsHelper.availableWidgets.hasOwnProperty(widgetCategory)) { + continue; + } + + var widgets = widgetsHelper.availableWidgets[widgetCategory]; + for (var index in widgets) { + if (widgets.hasOwnProperty(index) && widgets[index]["uniqueId"] == widgetUniqueId) { + clientWidget = widgets[index]; + break; + } + } + + if (clientWidget) { + break; + } + } + } + + if (clientWidget && clientWidget.clientComponent) { + clientWidget = $.extend(true, {}, clientWidget); + clientWidget.parameters = $.extend({}, clientWidget.parameters, widgetParameters); + + var html = '
'; + onWidgetLoadedCallback(html); + return clientWidgetRequest; + } + var ajaxRequest = new ajaxHelper(); ajaxRequest.addParams(widgetParameters, 'get'); ajaxRequest.setCallback(onWidgetLoadedCallback); diff --git a/plugins/Transitions/Widgets/GetTransitions.php b/plugins/Transitions/Widgets/GetTransitions.php index 4628b9eb8ed..3f75b53eba3 100644 --- a/plugins/Transitions/Widgets/GetTransitions.php +++ b/plugins/Transitions/Widgets/GetTransitions.php @@ -9,8 +9,8 @@ namespace Piwik\Plugins\Transitions\Widgets; -use Piwik\Common; use Piwik\Piwik; +use Piwik\Request; use Piwik\Widget\Widget; use Piwik\Widget\WidgetConfig; @@ -22,6 +22,7 @@ public static function configure(WidgetConfig $config) $config->setSubcategoryId('Transitions_Transitions'); $config->setName('Transitions_Transitions'); $config->setOrder(99); + $config->setClientSideComponent('Transitions', 'TransitionsPage'); $idSite = self::getIdSite(); if (!$idSite || !Piwik::isUserHasViewAccess($idSite)) { $config->disable(); @@ -30,17 +31,6 @@ public static function configure(WidgetConfig $config) private static function getIdSite() { - return Common::getRequestVar('idSite', 0, 'int'); - } - - public function render() - { - Piwik::checkUserHasViewAccess(self::getIdSite()); - - $isWidgetized = Common::getRequestVar('widget', 0, 'int') === 1; - - return $this->renderTemplate('transitions', array( - 'isWidget' => $isWidgetized, - )); + return Request::fromRequest()->getIntegerParameter('idSite', 0); } } diff --git a/plugins/Transitions/templates/transitions.twig b/plugins/Transitions/templates/transitions.twig deleted file mode 100644 index 22ca2d51202..00000000000 --- a/plugins/Transitions/templates/transitions.twig +++ /dev/null @@ -1,5 +0,0 @@ - -
\ No newline at end of file diff --git a/plugins/Widgetize/Controller.php b/plugins/Widgetize/Controller.php index 1c904675980..e3be66c6d3e 100644 --- a/plugins/Widgetize/Controller.php +++ b/plugins/Widgetize/Controller.php @@ -15,8 +15,10 @@ use Piwik\Container\StaticContainer; use Piwik\FrontController; use Piwik\Piwik; +use Piwik\Plugins\API\WidgetMetadata; use Piwik\Url; use Piwik\View; +use Piwik\Widget\WidgetsList; class Controller extends \Piwik\Plugin\Controller { @@ -85,8 +87,36 @@ public function iframe() $this->setGeneralVariablesView($view); $view->setXFrameOptions('allow'); - $view->content = FrontController::getInstance()->fetchDispatch($controllerName, $actionName); + + $clientWidget = $this->findClientWidgetMetadata($controllerName, $actionName); + if (!empty($clientWidget)) { + $widgetView = new View('@Widgetize/clientWidget'); + $widgetView->widget = $clientWidget; + $view->content = $widgetView->render(); + } else { + $view->content = FrontController::getInstance()->fetchDispatch($controllerName, $actionName); + } return $view->render(); } + + private function findClientWidgetMetadata(string $module, string $action): ?array + { + $widgetsList = WidgetsList::get(); + + foreach ($widgetsList->getWidgetConfigs() as $config) { + if ($config->getModule() !== $module || $config->getAction() !== $action) { + continue; + } + + if (empty($config->getClientSideComponent())) { + return null; + } + + $metadata = new WidgetMetadata(); + return $metadata->buildWidgetMetadata($config); + } + + return null; + } } diff --git a/plugins/Widgetize/templates/clientWidget.twig b/plugins/Widgetize/templates/clientWidget.twig new file mode 100644 index 00000000000..537d7cb6eea --- /dev/null +++ b/plugins/Widgetize/templates/clientWidget.twig @@ -0,0 +1,5 @@ +
diff --git a/plugins/Widgetize/tests/Integration/ControllerTest.php b/plugins/Widgetize/tests/Integration/ControllerTest.php new file mode 100644 index 00000000000..94dfb54ff4b --- /dev/null +++ b/plugins/Widgetize/tests/Integration/ControllerTest.php @@ -0,0 +1,86 @@ +backupGet = $_GET; + $this->backupRequest = $_REQUEST; + + Fixture::createSuperUser(); + if (!Fixture::siteCreated(1)) { + Fixture::createWebsite('2012-01-01 00:00:00'); + } + + FakeAccess::clearAccess( + $superUser = true, + $idSitesAdmin = [1], + $idSitesView = [1], + $identity = 'superUserLogin' + ); + + $_GET = [ + 'moduleToWidgetize' => 'Transitions', + 'actionToWidgetize' => 'getTransitions', + 'idSite' => 1, + 'period' => 'day', + 'date' => 'today', + 'widget' => 1, + ]; + $_REQUEST = $_GET; + + $this->controller = new Controller(); + } + + public function tearDown(): void + { + $_GET = $this->backupGet; + $_REQUEST = $this->backupRequest; + + parent::tearDown(); + } + + public function testIframeShouldBootstrapClientRenderedWidgetForLegacyWidgetizeUrls(): void + { + $html = $this->controller->iframe(); + + $this->assertStringContainsString('vue-entry="CoreHome.Widget"', $html); + $this->assertStringContainsString('widgetized="true"', $html); + $this->assertStringContainsString('clientComponent', $html); + $this->assertStringContainsString('TransitionsPage', $html); + } +} From 32c8fa6ffc2ebe897272e93517569e19fe4c2e2a Mon Sep 17 00:00:00 2001 From: sgiehl Date: Sat, 11 Apr 2026 00:00:08 +0200 Subject: [PATCH 2/5] fix initial dashboard widget loading --- core/Widget/WidgetConfig.php | 21 ++- plugins/CoreHome/vue/dist/CoreHome.umd.js | 9 +- plugins/CoreHome/vue/dist/CoreHome.umd.min.js | 2 +- .../vue/src/Widget/ClientWidgetRenderer.vue | 1 + plugins/Dashboard/javascripts/widgetMenu.js | 132 ++++++++++++------ 5 files changed, 116 insertions(+), 49 deletions(-) diff --git a/core/Widget/WidgetConfig.php b/core/Widget/WidgetConfig.php index 8bf5e34d4bc..e64a20c2f63 100644 --- a/core/Widget/WidgetConfig.php +++ b/core/Widget/WidgetConfig.php @@ -126,6 +126,10 @@ public function getAction() * Sets (overwrites) the parameters of the widget. These parameters will be added to the URL when rendering the * widget. You can access these parameters via `Piwik\Common::getRequestVar(...)`. * + * This applies to widgets rendered through their controller/action request. Client-rendered widgets do not receive + * these parameters automatically and should instead derive request state from the browser context or load data via + * API requests. + * * @param array $parameters eg. ('urlparam' => 'urlvalue') * @return static */ @@ -139,6 +143,9 @@ public function setParameters($parameters) /** * Add new parameters and only overwrite parameters that have the same name. See {@link setParameters()} * + * Like {@link setParameters()}, these parameters are only used for widgets rendered through their + * controller/action request and are not forwarded automatically to client-rendered widgets. + * * @param array $parameters eg. ('urlparam' => 'urlvalue') * @return static */ @@ -357,9 +364,13 @@ public function getMiddlewareParameters() /** * Marks this widget as client-rendered by a Vue component exported by the given plugin bundle. * + * Client-rendered widgets do not execute the widget controller/action in a separate request before rendering. + * They should derive dynamic state from the current browser request or load data through API requests instead. + * * @param string $plugin eg 'Transitions' * @param string $component eg 'TransitionsPage' * @return static + * @since 5.10.0 */ public function setClientSideComponent(string $plugin, string $component) { @@ -373,6 +384,8 @@ public function setClientSideComponent(string $plugin, string $component) /** * Returns the configured client-rendered component definition. + * @return array{}|array{plugin: string, name: string} + * @since 5.10.0 */ public function getClientSideComponent(): array { @@ -380,10 +393,14 @@ public function getClientSideComponent(): array } /** - * Sets props that should be passed to the client-rendered Vue widget. + * Sets static props that should be passed to the client-rendered Vue widget. + * + * Use this for configuration known when the widget is registered. Request-specific widget parameters are not + * forwarded to client-rendered widgets through this mechanism. * * @param array $props * @return static + * @since 5.10.0 */ public function setClientSideProps(array $props) { @@ -394,6 +411,8 @@ public function setClientSideProps(array $props) /** * Returns props configured for the client-rendered Vue widget. + * @return array + * @since 5.10.0 */ public function getClientSideProps(): array { diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js index 81a3fdbdf88..5762b35daac 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js @@ -9671,9 +9671,9 @@ class SearchFiltersPersistence_store_SearchFiltersPersistenceStore { WidgetLoadervue_type_script_lang_ts.render = WidgetLoadervue_type_template_id_09c1f6f2_render /* harmony default export */ var WidgetLoader = (WidgetLoadervue_type_script_lang_ts); -// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=8a7f5520 +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=d4ca1a74 -function ClientWidgetRenderervue_type_template_id_8a7f5520_render(_ctx, _cache, $props, $setup, $data, $options) { +function ClientWidgetRenderervue_type_template_id_d4ca1a74_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator"); const _component_Alert = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Alert"); return _ctx.loading ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_ActivityIndicator, { @@ -9690,7 +9690,7 @@ function ClientWidgetRenderervue_type_template_id_8a7f5520_render(_ctx, _cache, key: 2 }, _ctx.componentProps)), null, 16)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true); } -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=8a7f5520 +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=template&id=d4ca1a74 // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--15-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue?vue&type=script&lang=ts @@ -9757,6 +9757,7 @@ function ClientWidgetRenderervue_type_template_id_8a7f5520_render(_ctx, _cache, } this.componentToRender = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["markRaw"])(component); } catch (e) { + console.error(e); this.loadingFailed = true; } finally { this.loading = false; @@ -9770,7 +9771,7 @@ function ClientWidgetRenderervue_type_template_id_8a7f5520_render(_ctx, _cache, -ClientWidgetRenderervue_type_script_lang_ts.render = ClientWidgetRenderervue_type_template_id_8a7f5520_render +ClientWidgetRenderervue_type_script_lang_ts.render = ClientWidgetRenderervue_type_template_id_d4ca1a74_render /* harmony default export */ var ClientWidgetRenderer = (ClientWidgetRenderervue_type_script_lang_ts); // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-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--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue?vue&type=template&id=73071e47 diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js index e24e49279ed..ce386cc0bea 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js @@ -320,7 +320,7 @@ function Qe(e,t,i){const o=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMo * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */class js{constructor(){ys(this,"privateState",Object(D["reactive"])({module:"",action:"",category:"",subcategory:"",idSite:"",widgetSearchFilters:{}})),ys(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),M.on("matomoPageChange",()=>{this.isCurrentPage()||this.resetSearchFilters(),this.updateCurrentRoutingFromUrl()})}resetSearchFilters(){this.privateState.widgetSearchFilters={}}getSearchFilters(e){return this.state.value.widgetSearchFilters[e]||{}}setSearchFilters(e,t){e&&(this.privateState.widgetSearchFilters[e]=t)}updateCurrentRoutingFromUrl(){const e=U.parsed.value;this.privateState.module=e.module,this.privateState.action=e.action,this.privateState.category=e.category,this.privateState.subcategory=e.subcategory,this.privateState.idSite=e.idSite}isCurrentPage(){const e=U.parsed.value;return this.state.value.module===e.module&&this.state.value.action===e.action&&this.state.value.category===e.category&&this.state.value.subcategory===e.subcategory&&this.state.value.idSite===e.idSite}}var ws=new js,Ss=Object(D["defineComponent"])({props:{widgetParams:Object,widgetName:String,loadingMessage:String},components:{ActivityIndicator:We},data(){return{loading:!1,loadingFailed:!1,loadingFailedRateLimit:!1,changeCounter:0,lastWidgetAbortController:null}},watch:{widgetParams(e){e&&this.loadWidgetUrl(e,this.changeCounter+=1)}},computed:{finalLoadingMessage(){return this.loadingMessage?this.loadingMessage:this.widgetName?a("General_LoadingPopover",this.widgetName):a("General_LoadingData")},hasErrorFaqLink(){const e=M.config.enable_general_settings_admin,t=M.config.enable_plugins_admin;return M.hasSuperUserAccess&&(e||t)}},mounted(){this.widgetParams&&this.loadWidgetUrl(this.widgetParams,this.changeCounter+=1)},beforeUnmount(){this.cleanupLastWidgetContent()},methods:{abortHttpRequestIfNeeded(){this.lastWidgetAbortController&&(this.lastWidgetAbortController.abort(),this.lastWidgetAbortController=null)},cleanupLastWidgetContent(){const e=this.$refs.widgetContent;M.helper.destroyVueComponent(e),e&&(e.innerHTML="")},getWidgetUrl(e){const t=U.parsed.value;let i=Object.assign({},e||{});const o=Object.keys(Object.assign(Object.assign({},U.hashParsed.value),{},{idSite:"",period:"",date:"",segment:"",widget:""}));return o.forEach(e=>{"category"!==e&&"subcategory"!==e&&(e in i||(i[e]=t[e]))}),Ii.isComparisonEnabled()&&(i=Object.assign(Object.assign({},i),{},{comparePeriods:t.comparePeriods,compareDates:t.compareDates,compareSegments:t.compareSegments})),e&&"showtitle"in e||(i.showtitle="1"),M.shouldPropagateTokenAuth&&t.token_auth&&(M.broadcast.isWidgetizeRequestWithoutSession()||(i.force_api_session="1"),i.token_auth=t.token_auth),i.random=Math.floor(1e4*Math.random()),i},loadWidgetUrl(e,t){this.loading=!0,this.abortHttpRequestIfNeeded(),this.cleanupLastWidgetContent(),this.lastWidgetAbortController=new AbortController;let i={};e.uniqueId&&(i=ws.getSearchFilters(e.uniqueId)),te.fetch(this.getWidgetUrl(Object.assign(e,i)),{format:"html",abortController:this.lastWidgetAbortController}).then(i=>{if(t!==this.changeCounter||"string"!==typeof i)return;this.lastWidgetAbortController=null,this.loading=!1,this.loadingFailed=!1;const o=this.$refs.widgetContent;window.$(o).html(i);const n=window.$(o).children();if(this.widgetName){let e=n.find("> .card-content .card-title");e.length||(e=n.find("> h2")),e.length&&e.html(M.helper.htmlEntities(this.widgetName))}M.helper.compileVueEntryComponents(n),$o.parseNotificationDivs(),setTimeout(()=>{M.postEvent("widget:loaded",{parameters:e,element:n})})}).catch(e=>{t===this.changeCounter&&(this.lastWidgetAbortController=null,this.cleanupLastWidgetContent(),this.loading=!1,"abort"!==e.xhrStatus&&(429===e.status&&(this.loadingFailedRateLimit=!0),this.loadingFailed=!0))})}}});Ss.render=Os;var Cs=Ss;function ks(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Alert");return e.loading?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,loading:!0,"loading-message":e.translate("General_LoadingData")},null,8,["loading-message"])):e.loadingFailed?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,severity:"danger"},{default:Object(D["withCtx"])(()=>[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_ErrorRequest","","")),1)]),_:1})):e.componentToRender?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.componentToRender),Object(D["normalizeProps"])(Object(D["mergeProps"])({key:2},e.componentProps)),null,16)):Object(D["createCommentVNode"])("",!0)}var Ds=Object(D["defineComponent"])({props:{widget:{type:Object,required:!0},widgetized:Boolean},components:{ActivityIndicator:We,Alert:Ke},data(){return{componentToRender:null,loading:!1,loadingFailed:!1}},watch:{widget:{handler(){this.loadComponent()},immediate:!0}},computed:{componentProps(){var e;const t=this.widget;return Object.assign(Object.assign({},(null===(e=t.clientComponent)||void 0===e?void 0:e.props)||{}),{},{uniqueId:t.uniqueId,widgetName:t.name,widgetized:this.widgetized,isWidget:this.widgetized,isWide:t.isWide})}},methods:{async loadComponent(){const e=this.widget,{clientComponent:t}=e;this.loading=!0,this.loadingFailed=!1,this.componentToRender=null;try{if(!t)throw new Error("Missing client-rendered widget metadata");const e=await Se(t.plugin),i=null===e||void 0===e?void 0:e[t.name];if(!i)throw new Error(`Unknown widget component ${t.plugin}.${t.name}`);this.componentToRender=Object(D["markRaw"])(i)}catch(i){this.loadingFailed=!0}finally{this.loading=!1}}}});Ds.render=ks;var Es=Ds;const Ps={class:"widget-container"};function Ts(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ps,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.actualContainer,(e,t)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:t},[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{widget:e,"prevent-recursion":!0},null,8,["widget"])])]))),128))])}const Vs=Ce("CoreHome","Widget");var xs=Object(D["defineComponent"])({props:{container:{type:Array,required:!0}},components:{Widget:Vs},computed:{actualContainer(){var e,t,i;const o=this.container;if(null===o||void 0===o||null===(e=o[0])||void 0===e||!e.parameters)return o;const[n]=o,a="1"===(null===(t=n.parameters)||void 0===t?void 0:t.widget)||1===(null===(i=n.parameters)||void 0===i?void 0:i.widget),r=a&&"graphEvolution"===n.viewDataTable,s=r?Object.assign(Object.assign({},n),{},{parameters:Object.assign(Object.assign({},n.parameters),{},{showtitle:"0"})}):n;return[s,...o.slice(1)]}}});xs.render=Ts;var Ns=xs;const Bs={class:"reportsByDimensionView"},Is={class:"entityList"},Ms={class:"listCircle"},Fs=["onClick"],Ls={class:"dimension"},Rs={class:"reportContainer"},As=Object(D["createElementVNode"])("div",{class:"clear"},null,-1);function _s(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Bs,[Object(D["createElementVNode"])("div",Is,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgetsByCategory,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("ul",Ms,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.widgets,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:i=>e.selectWidget(t)},[Object(D["createElementVNode"])("span",Ls,Object(D["toDisplayString"])(t.name),1)],10,Fs))),128))])]))),128))]),Object(D["createElementVNode"])("div",Rs,[e.selectedWidget.parameters?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(D["createCommentVNode"])("",!0)]),As])}var Hs=Object(D["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:Cs},data(){return{selectedWidget:null}},created(){[this.selectedWidget]=this.widgetsSorted},computed:{widgetsSorted(){return Qr(this.widgets)},widgetsByCategory(){const e={};return this.widgetsSorted.forEach(t=>{var i;const o=null===(i=t.subcategory)||void 0===i?void 0:i.name;o&&(e[o]||(e[o]={name:o,order:t.order,widgets:[]}),e[o].widgets.push(t))}),Qr(Object.values(e))}},methods:{selectWidget(e){this.selectedWidget=Object.assign({},e)}}});Hs.render=_s;var $s=Hs;const Us=["id"],qs={key:2},Ws={key:3};function zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader"),s=Object(D["resolveComponent"])("ClientWidgetRenderer"),l=Object(D["resolveComponent"])("WidgetContainer"),c=Object(D["resolveComponent"])("WidgetByDimensionContainer"),d=Object(D["resolveDirective"])("tooltips");return e.actualWidget&&e.showWidget?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[e.actualWidget.isContainer||!e.actualWidget.parameters||e.actualWidget.clientComponent?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])),!e.actualWidget.isContainer&&e.actualWidget.clientComponent?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,widget:e.actualWidget,widgetized:e.widgetized},null,8,["widget","widgetized"])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",qs,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(l,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ws,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(c,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(D["createCommentVNode"])("",!0)],10,Us)),[[d,{content:e.tooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function Gs(e,t){let i=void 0;return Object.values(e||{}).some(e=>(i=e.find(e=>{var i;return e&&e.isContainer&&(null===(i=e.parameters)||void 0===i?void 0:i.containerId)===t}),i)),i}var Ks=Object(D["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:Cs,WidgetContainer:Ns,WidgetByDimensionContainer:$s,ClientWidgetRenderer:Es},directives:{Tooltips:st},data(){return{showWidget:!1}},setup(){function e(){const e=window.$(this);if(e.hasClass("matomo-form-field"))return"";const t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"
"))}return{tooltipContent:e}},created(){const{actualWidget:e}=this;if(e&&e.middlewareParameters){const t=e.middlewareParameters;te.fetch(t).then(e=>{this.showWidget=!!e})}else this.showWidget=!0},computed:{allWidgets(){return rs.widgets.value},actualWidget(){const e=this.widget;if(e){const t=Object.assign({},e);if(e&&e.isReport&&!e.documentation){const i=ms.findReport(e.module,e.action);i&&i.documentation&&(t.documentation=i.documentation)}return e.uniqueId&&(t.parameters=Object.assign(Object.assign({},t.parameters),{},{uniqueId:e.uniqueId})),t}if(this.containerid){const e=Gs(this.allWidgets,this.containerid);if(e){const t=Object.assign({},e);if(this.widgetized){t.isFirstInPage=!0,t.parameters=Object.assign(Object.assign({},t.parameters),{},{widget:"1"});const e=ns(t);e&&(t.widgets=e.map(e=>Object.assign(Object.assign({},e),{},{parameters:Object.assign(Object.assign({},e.parameters),{},{widget:"1",containerId:this.containerid})})))}return t}}return null}}});Ks.render=zs;var Ys=Ks;const Qs={class:"reporting-page"},Js={key:1,class:"col s12 l6 leftWidgetColumn"},Xs={key:2,class:"col s12 l6 rightWidgetColumn"};function Zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Qs,[Object(D["createVNode"])(r,{loading:e.loading},null,8,["loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,Object(D["toDisplayString"])(e.translate("CoreHome_NoSuchPage")),513),[[D["vShow"],e.hasNoPage]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgets,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"row",key:e.uniqueId},[e.group?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:0,class:"col s12 fullWidgetColumn",widget:e},null,8,["widget"])),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Js,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.left,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Xs,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.right,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0)]))),128))])}function el(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */class js{constructor(){ys(this,"privateState",Object(D["reactive"])({module:"",action:"",category:"",subcategory:"",idSite:"",widgetSearchFilters:{}})),ys(this,"state",Object(D["computed"])(()=>Object(D["readonly"])(this.privateState))),M.on("matomoPageChange",()=>{this.isCurrentPage()||this.resetSearchFilters(),this.updateCurrentRoutingFromUrl()})}resetSearchFilters(){this.privateState.widgetSearchFilters={}}getSearchFilters(e){return this.state.value.widgetSearchFilters[e]||{}}setSearchFilters(e,t){e&&(this.privateState.widgetSearchFilters[e]=t)}updateCurrentRoutingFromUrl(){const e=U.parsed.value;this.privateState.module=e.module,this.privateState.action=e.action,this.privateState.category=e.category,this.privateState.subcategory=e.subcategory,this.privateState.idSite=e.idSite}isCurrentPage(){const e=U.parsed.value;return this.state.value.module===e.module&&this.state.value.action===e.action&&this.state.value.category===e.category&&this.state.value.subcategory===e.subcategory&&this.state.value.idSite===e.idSite}}var ws=new js,Ss=Object(D["defineComponent"])({props:{widgetParams:Object,widgetName:String,loadingMessage:String},components:{ActivityIndicator:We},data(){return{loading:!1,loadingFailed:!1,loadingFailedRateLimit:!1,changeCounter:0,lastWidgetAbortController:null}},watch:{widgetParams(e){e&&this.loadWidgetUrl(e,this.changeCounter+=1)}},computed:{finalLoadingMessage(){return this.loadingMessage?this.loadingMessage:this.widgetName?a("General_LoadingPopover",this.widgetName):a("General_LoadingData")},hasErrorFaqLink(){const e=M.config.enable_general_settings_admin,t=M.config.enable_plugins_admin;return M.hasSuperUserAccess&&(e||t)}},mounted(){this.widgetParams&&this.loadWidgetUrl(this.widgetParams,this.changeCounter+=1)},beforeUnmount(){this.cleanupLastWidgetContent()},methods:{abortHttpRequestIfNeeded(){this.lastWidgetAbortController&&(this.lastWidgetAbortController.abort(),this.lastWidgetAbortController=null)},cleanupLastWidgetContent(){const e=this.$refs.widgetContent;M.helper.destroyVueComponent(e),e&&(e.innerHTML="")},getWidgetUrl(e){const t=U.parsed.value;let i=Object.assign({},e||{});const o=Object.keys(Object.assign(Object.assign({},U.hashParsed.value),{},{idSite:"",period:"",date:"",segment:"",widget:""}));return o.forEach(e=>{"category"!==e&&"subcategory"!==e&&(e in i||(i[e]=t[e]))}),Ii.isComparisonEnabled()&&(i=Object.assign(Object.assign({},i),{},{comparePeriods:t.comparePeriods,compareDates:t.compareDates,compareSegments:t.compareSegments})),e&&"showtitle"in e||(i.showtitle="1"),M.shouldPropagateTokenAuth&&t.token_auth&&(M.broadcast.isWidgetizeRequestWithoutSession()||(i.force_api_session="1"),i.token_auth=t.token_auth),i.random=Math.floor(1e4*Math.random()),i},loadWidgetUrl(e,t){this.loading=!0,this.abortHttpRequestIfNeeded(),this.cleanupLastWidgetContent(),this.lastWidgetAbortController=new AbortController;let i={};e.uniqueId&&(i=ws.getSearchFilters(e.uniqueId)),te.fetch(this.getWidgetUrl(Object.assign(e,i)),{format:"html",abortController:this.lastWidgetAbortController}).then(i=>{if(t!==this.changeCounter||"string"!==typeof i)return;this.lastWidgetAbortController=null,this.loading=!1,this.loadingFailed=!1;const o=this.$refs.widgetContent;window.$(o).html(i);const n=window.$(o).children();if(this.widgetName){let e=n.find("> .card-content .card-title");e.length||(e=n.find("> h2")),e.length&&e.html(M.helper.htmlEntities(this.widgetName))}M.helper.compileVueEntryComponents(n),$o.parseNotificationDivs(),setTimeout(()=>{M.postEvent("widget:loaded",{parameters:e,element:n})})}).catch(e=>{t===this.changeCounter&&(this.lastWidgetAbortController=null,this.cleanupLastWidgetContent(),this.loading=!1,"abort"!==e.xhrStatus&&(429===e.status&&(this.loadingFailedRateLimit=!0),this.loadingFailed=!0))})}}});Ss.render=Os;var Cs=Ss;function ks(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Alert");return e.loading?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,loading:!0,"loading-message":e.translate("General_LoadingData")},null,8,["loading-message"])):e.loadingFailed?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,severity:"danger"},{default:Object(D["withCtx"])(()=>[Object(D["createTextVNode"])(Object(D["toDisplayString"])(e.translate("General_ErrorRequest","","")),1)]),_:1})):e.componentToRender?(Object(D["openBlock"])(),Object(D["createBlock"])(Object(D["resolveDynamicComponent"])(e.componentToRender),Object(D["normalizeProps"])(Object(D["mergeProps"])({key:2},e.componentProps)),null,16)):Object(D["createCommentVNode"])("",!0)}var Ds=Object(D["defineComponent"])({props:{widget:{type:Object,required:!0},widgetized:Boolean},components:{ActivityIndicator:We,Alert:Ke},data(){return{componentToRender:null,loading:!1,loadingFailed:!1}},watch:{widget:{handler(){this.loadComponent()},immediate:!0}},computed:{componentProps(){var e;const t=this.widget;return Object.assign(Object.assign({},(null===(e=t.clientComponent)||void 0===e?void 0:e.props)||{}),{},{uniqueId:t.uniqueId,widgetName:t.name,widgetized:this.widgetized,isWidget:this.widgetized,isWide:t.isWide})}},methods:{async loadComponent(){const e=this.widget,{clientComponent:t}=e;this.loading=!0,this.loadingFailed=!1,this.componentToRender=null;try{if(!t)throw new Error("Missing client-rendered widget metadata");const e=await Se(t.plugin),i=null===e||void 0===e?void 0:e[t.name];if(!i)throw new Error(`Unknown widget component ${t.plugin}.${t.name}`);this.componentToRender=Object(D["markRaw"])(i)}catch(i){console.error(i),this.loadingFailed=!0}finally{this.loading=!1}}}});Ds.render=ks;var Es=Ds;const Ps={class:"widget-container"};function Ts(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ps,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.actualContainer,(e,t)=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:t},[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(r,{widget:e,"prevent-recursion":!0},null,8,["widget"])])]))),128))])}const Vs=Ce("CoreHome","Widget");var xs=Object(D["defineComponent"])({props:{container:{type:Array,required:!0}},components:{Widget:Vs},computed:{actualContainer(){var e,t,i;const o=this.container;if(null===o||void 0===o||null===(e=o[0])||void 0===e||!e.parameters)return o;const[n]=o,a="1"===(null===(t=n.parameters)||void 0===t?void 0:t.widget)||1===(null===(i=n.parameters)||void 0===i?void 0:i.widget),r=a&&"graphEvolution"===n.viewDataTable,s=r?Object.assign(Object.assign({},n),{},{parameters:Object.assign(Object.assign({},n.parameters),{},{showtitle:"0"})}):n;return[s,...o.slice(1)]}}});xs.render=Ts;var Ns=xs;const Bs={class:"reportsByDimensionView"},Is={class:"entityList"},Ms={class:"listCircle"},Fs=["onClick"],Ls={class:"dimension"},Rs={class:"reportContainer"},As=Object(D["createElementVNode"])("div",{class:"clear"},null,-1);function _s(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Bs,[Object(D["createElementVNode"])("div",Is,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgetsByCategory,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(D["createTextVNode"])(Object(D["toDisplayString"])(t.name)+" ",1),Object(D["createElementVNode"])("ul",Ms,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(t.widgets,t=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("li",{class:Object(D["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:i=>e.selectWidget(t)},[Object(D["createElementVNode"])("span",Ls,Object(D["toDisplayString"])(t.name),1)],10,Fs))),128))])]))),128))]),Object(D["createElementVNode"])("div",Rs,[e.selectedWidget.parameters?(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(D["createCommentVNode"])("",!0)]),As])}var Hs=Object(D["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:Cs},data(){return{selectedWidget:null}},created(){[this.selectedWidget]=this.widgetsSorted},computed:{widgetsSorted(){return Qr(this.widgets)},widgetsByCategory(){const e={};return this.widgetsSorted.forEach(t=>{var i;const o=null===(i=t.subcategory)||void 0===i?void 0:i.name;o&&(e[o]||(e[o]={name:o,order:t.order,widgets:[]}),e[o].widgets.push(t))}),Qr(Object.values(e))}},methods:{selectWidget(e){this.selectedWidget=Object.assign({},e)}}});Hs.render=_s;var $s=Hs;const Us=["id"],qs={key:2},Ws={key:3};function zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("WidgetLoader"),s=Object(D["resolveComponent"])("ClientWidgetRenderer"),l=Object(D["resolveComponent"])("WidgetContainer"),c=Object(D["resolveComponent"])("WidgetByDimensionContainer"),d=Object(D["resolveDirective"])("tooltips");return e.actualWidget&&e.showWidget?Object(D["withDirectives"])((Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{key:0,class:Object(D["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[e.actualWidget.isContainer||!e.actualWidget.parameters||e.actualWidget.clientComponent?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(r,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])),!e.actualWidget.isContainer&&e.actualWidget.clientComponent?(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:1,widget:e.actualWidget,widgetized:e.widgetized},null,8,["widget","widgetized"])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",qs,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(l,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(D["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Ws,[Object(D["createElementVNode"])("div",null,[Object(D["createVNode"])(c,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(D["createCommentVNode"])("",!0)],10,Us)),[[d,{content:e.tooltipContent}]]):Object(D["createCommentVNode"])("",!0)}function Gs(e,t){let i=void 0;return Object.values(e||{}).some(e=>(i=e.find(e=>{var i;return e&&e.isContainer&&(null===(i=e.parameters)||void 0===i?void 0:i.containerId)===t}),i)),i}var Ks=Object(D["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:Cs,WidgetContainer:Ns,WidgetByDimensionContainer:$s,ClientWidgetRenderer:Es},directives:{Tooltips:st},data(){return{showWidget:!1}},setup(){function e(){const e=window.$(this);if(e.hasClass("matomo-form-field"))return"";const t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"
"))}return{tooltipContent:e}},created(){const{actualWidget:e}=this;if(e&&e.middlewareParameters){const t=e.middlewareParameters;te.fetch(t).then(e=>{this.showWidget=!!e})}else this.showWidget=!0},computed:{allWidgets(){return rs.widgets.value},actualWidget(){const e=this.widget;if(e){const t=Object.assign({},e);if(e&&e.isReport&&!e.documentation){const i=ms.findReport(e.module,e.action);i&&i.documentation&&(t.documentation=i.documentation)}return e.uniqueId&&(t.parameters=Object.assign(Object.assign({},t.parameters),{},{uniqueId:e.uniqueId})),t}if(this.containerid){const e=Gs(this.allWidgets,this.containerid);if(e){const t=Object.assign({},e);if(this.widgetized){t.isFirstInPage=!0,t.parameters=Object.assign(Object.assign({},t.parameters),{},{widget:"1"});const e=ns(t);e&&(t.widgets=e.map(e=>Object.assign(Object.assign({},e),{},{parameters:Object.assign(Object.assign({},e.parameters),{},{widget:"1",containerId:this.containerid})})))}return t}}return null}}});Ks.render=zs;var Ys=Ks;const Qs={class:"reporting-page"},Js={key:1,class:"col s12 l6 leftWidgetColumn"},Xs={key:2,class:"col s12 l6 rightWidgetColumn"};function Zs(e,t,i,o,n,a){const r=Object(D["resolveComponent"])("ActivityIndicator"),s=Object(D["resolveComponent"])("Widget");return Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Qs,[Object(D["createVNode"])(r,{loading:e.loading},null,8,["loading"]),Object(D["withDirectives"])(Object(D["createElementVNode"])("div",null,Object(D["toDisplayString"])(e.translate("CoreHome_NoSuchPage")),513),[[D["vShow"],e.hasNoPage]]),(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.widgets,e=>(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",{class:"row",key:e.uniqueId},[e.group?Object(D["createCommentVNode"])("",!0):(Object(D["openBlock"])(),Object(D["createBlock"])(s,{key:0,class:"col s12 fullWidgetColumn",widget:e},null,8,["widget"])),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Js,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.left,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0),e.group?(Object(D["openBlock"])(),Object(D["createElementBlock"])("div",Xs,[(Object(D["openBlock"])(!0),Object(D["createElementBlock"])(D["Fragment"],null,Object(D["renderList"])(e.right,e=>(Object(D["openBlock"])(),Object(D["createBlock"])(s,{widget:e,key:e.uniqueId},null,8,["widget"]))),128))])):Object(D["createCommentVNode"])("",!0)]))),128))])}function el(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} /*! * Matomo - free/libre analytics platform * diff --git a/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue b/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue index bbe96f105a2..76d881e100c 100644 --- a/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue +++ b/plugins/CoreHome/vue/src/Widget/ClientWidgetRenderer.vue @@ -107,6 +107,7 @@ export default defineComponent({ this.componentToRender = markRaw(component as Component); } catch (e) { + console.error(e); this.loadingFailed = true; } finally { this.loading = false; diff --git a/plugins/Dashboard/javascripts/widgetMenu.js b/plugins/Dashboard/javascripts/widgetMenu.js index c0fe5b498c9..b948b413703 100644 --- a/plugins/Dashboard/javascripts/widgetMenu.js +++ b/plugins/Dashboard/javascripts/widgetMenu.js @@ -20,6 +20,16 @@ widgetsHelper.firstGetAvailableWidgetsCall = null; */ widgetsHelper.getAvailableWidgets = function (callback) { + if (!widgetsHelper.availableWidgets && widgetsHelper.firstGetAvailableWidgetsCall) { + widgetsHelper.firstGetAvailableWidgetsCall.then(function () { + if (callback) { + callback(widgetsHelper.availableWidgets); + } + }); + + return widgetsHelper.firstGetAvailableWidgetsCall; + } + function mergeCategoriesAndSubCategories(availableWidgets) { var categorized = {}; @@ -113,6 +123,8 @@ widgetsHelper.getAvailableWidgets = function (callback) { callback(widgetsHelper.availableWidgets); } }); + + return promise; }; /** @@ -121,6 +133,7 @@ widgetsHelper.getAvailableWidgets = function (callback) { */ widgetsHelper.clearAvailableWidgets = function () { delete widgetsHelper.availableWidgets; + widgetsHelper.firstGetAvailableWidgetsCall = null; }; /** @@ -131,17 +144,25 @@ widgetsHelper.clearAvailableWidgets = function () { */ widgetsHelper.getWidgetObjectFromUniqueId = function (uniqueId, callback) { widgetsHelper.getAvailableWidgets(function(widgets){ - for (var widgetCategory in widgets) { - var widgetInCategory = widgets[widgetCategory]; - for (var i in widgetInCategory) { - if (widgetInCategory[i]["uniqueId"] == uniqueId) { - callback(widgetInCategory[i]); - return; - } + callback(widgetsHelper.findWidgetObjectFromUniqueId(uniqueId, widgets)); + }); +}; + +widgetsHelper.findWidgetObjectFromUniqueId = function (uniqueId, widgets) { + if (!widgets) { + return false; + } + + for (var widgetCategory in widgets) { + var widgetInCategory = widgets[widgetCategory]; + for (var i in widgetInCategory) { + if (widgetInCategory[i]["uniqueId"] == uniqueId) { + return widgetInCategory[i]; } } - callback(false); - }); + } + + return false; }; /** @@ -174,51 +195,76 @@ widgetsHelper.loadWidgetAjax = function (widgetUniqueId, widgetParameters, onWid widgetParameters['widget'] = 1; - var clientWidgetRequest = { - abort: function () {} + var widgetRequest = { + aborted: false, + ajaxRequest: null, + abort: function () { + this.aborted = true; + if (this.ajaxRequest) { + this.ajaxRequest.abort(); + } + } }; - var clientWidget = null; - if (widgetsHelper.availableWidgets) { - for (var widgetCategory in widgetsHelper.availableWidgets) { - if (!widgetsHelper.availableWidgets.hasOwnProperty(widgetCategory)) { - continue; + function loadLegacyWidget() { + if (widgetRequest.aborted) { + return; + } + + var ajaxRequest = new ajaxHelper(); + ajaxRequest.addParams(widgetParameters, 'get'); + ajaxRequest.setCallback(function () { + if (widgetRequest.aborted) { + return; } - var widgets = widgetsHelper.availableWidgets[widgetCategory]; - for (var index in widgets) { - if (widgets.hasOwnProperty(index) && widgets[index]["uniqueId"] == widgetUniqueId) { - clientWidget = widgets[index]; - break; + onWidgetLoadedCallback.apply(this, arguments); + }); + if (onWidgetErrorCallback) { + ajaxRequest.setErrorCallback(function () { + if (widgetRequest.aborted) { + return; } - } - if (clientWidget) { - break; - } + onWidgetErrorCallback.apply(this, arguments); + }); } + ajaxRequest.setFormat('html'); + ajaxRequest.send(); + widgetRequest.ajaxRequest = ajaxRequest; } - if (clientWidget && clientWidget.clientComponent) { - clientWidget = $.extend(true, {}, clientWidget); - clientWidget.parameters = $.extend({}, clientWidget.parameters, widgetParameters); + var metadataReady = widgetsHelper.availableWidgets + ? Promise.resolve() + : widgetsHelper.getAvailableWidgets(); - var html = '
'; - onWidgetLoadedCallback(html); - return clientWidgetRequest; - } + metadataReady.then(function () { + if (widgetRequest.aborted) { + return; + } - var ajaxRequest = new ajaxHelper(); - ajaxRequest.addParams(widgetParameters, 'get'); - ajaxRequest.setCallback(onWidgetLoadedCallback); - if (onWidgetErrorCallback) { - ajaxRequest.setErrorCallback(onWidgetErrorCallback); - } - ajaxRequest.setFormat('html'); - ajaxRequest.send(); - return ajaxRequest; + var clientWidget = widgetsHelper.findWidgetObjectFromUniqueId( + widgetUniqueId, + widgetsHelper.availableWidgets + ); + + if (clientWidget && clientWidget.clientComponent) { + clientWidget = $.extend(true, {}, clientWidget); + clientWidget.parameters = $.extend({}, clientWidget.parameters, widgetParameters); + + var html = '
'; + onWidgetLoadedCallback(html); + return; + } + + loadLegacyWidget(); + }).catch(function () { + loadLegacyWidget(); + }); + + return widgetRequest; }; (function ($, require) { From 2158aefb8930fc756b98dfaa5673f454c91df460 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Mon, 13 Apr 2026 15:26:24 +0200 Subject: [PATCH 3/5] update expected test files --- .../System/expected/test___API.getReportPagesMetadata.xml | 4 ++++ .../test_apiGetReportMetadata__API.getReportPagesMetadata.xml | 4 ++++ .../test_apiGetReportMetadata__API.getWidgetMetadata.xml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/plugins/CustomDimensions/tests/System/expected/test___API.getReportPagesMetadata.xml b/plugins/CustomDimensions/tests/System/expected/test___API.getReportPagesMetadata.xml index 290801a4ee7..ec4e25171aa 100644 --- a/plugins/CustomDimensions/tests/System/expected/test___API.getReportPagesMetadata.xml +++ b/plugins/CustomDimensions/tests/System/expected/test___API.getReportPagesMetadata.xml @@ -203,6 +203,10 @@ widgetTransitionsgetTransitions 0 + + Transitions + TransitionsPage + diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportPagesMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportPagesMetadata.xml index 0c8b4afeb4b..34d38ef45f0 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportPagesMetadata.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportPagesMetadata.xml @@ -267,6 +267,10 @@ widgetTransitionsgetTransitions 0 + + Transitions + TransitionsPage + diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml index 1f4e49f2af8..9ac1c19ccd4 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml @@ -1612,6 +1612,10 @@ widgetTransitionsgetTransitions 0 + + Transitions + TransitionsPage + Returning Visits Over Time From b8df1180e5775b849620ebf58fb290961b68bbb5 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Wed, 22 Apr 2026 23:49:12 +0200 Subject: [PATCH 4/5] apply further fixes --- plugins/Dashboard/javascripts/widgetMenu.js | 28 +++++++++++++------ plugins/Widgetize/Controller.php | 16 +++++++++-- .../tests/Integration/ControllerTest.php | 27 ++++++++++++++++++ 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/plugins/Dashboard/javascripts/widgetMenu.js b/plugins/Dashboard/javascripts/widgetMenu.js index b948b413703..83fa5347c24 100644 --- a/plugins/Dashboard/javascripts/widgetMenu.js +++ b/plugins/Dashboard/javascripts/widgetMenu.js @@ -20,14 +20,18 @@ widgetsHelper.firstGetAvailableWidgetsCall = null; */ widgetsHelper.getAvailableWidgets = function (callback) { + function resetFirstGetAvailableWidgetsCall(promise) { + if (widgetsHelper.firstGetAvailableWidgetsCall === promise) { + widgetsHelper.firstGetAvailableWidgetsCall = null; + } + } + if (!widgetsHelper.availableWidgets && widgetsHelper.firstGetAvailableWidgetsCall) { - widgetsHelper.firstGetAvailableWidgetsCall.then(function () { + return widgetsHelper.firstGetAvailableWidgetsCall.then(function () { if (callback) { callback(widgetsHelper.availableWidgets); } }); - - return widgetsHelper.firstGetAvailableWidgetsCall; } function mergeCategoriesAndSubCategories(availableWidgets) @@ -97,15 +101,25 @@ widgetsHelper.getAvailableWidgets = function (callback) { function (data) { widgetsHelper.availableWidgets = mergeCategoriesAndSubCategories(data); + resetFirstGetAvailableWidgetsCall(promise); resolve(); } ); ajaxRequest.setErrorCallback(function (deferred, status) { - if (status == 'abort' || !deferred || deferred.status < 400 || deferred.status >= 600) { + resetFirstGetAvailableWidgetsCall(promise); + + if (status == 'abort') { + reject(new Error('Loading widget metadata was aborted')); return; } + + if (!deferred || deferred.status < 400 || deferred.status >= 600) { + reject(new Error('Loading widget metadata failed')); + return; + } + $('#loadingError').show(); - reject(); + reject(new Error('Loading widget metadata failed')); }); ajaxRequest.send(); return; @@ -118,13 +132,11 @@ widgetsHelper.getAvailableWidgets = function (callback) { widgetsHelper.firstGetAvailableWidgetsCall = promise; } - promise.then(function () { + return promise.then(function () { if (callback) { callback(widgetsHelper.availableWidgets); } }); - - return promise; }; /** diff --git a/plugins/Widgetize/Controller.php b/plugins/Widgetize/Controller.php index e3be66c6d3e..8ec65e0b853 100644 --- a/plugins/Widgetize/Controller.php +++ b/plugins/Widgetize/Controller.php @@ -18,6 +18,7 @@ use Piwik\Plugins\API\WidgetMetadata; use Piwik\Url; use Piwik\View; +use Piwik\Widget\WidgetConfig; use Piwik\Widget\WidgetsList; class Controller extends \Piwik\Plugin\Controller @@ -113,10 +114,21 @@ private function findClientWidgetMetadata(string $module, string $action): ?arra return null; } - $metadata = new WidgetMetadata(); - return $metadata->buildWidgetMetadata($config); + return $this->buildClientWidgetMetadata($config); } return null; } + + private function buildClientWidgetMetadata(WidgetConfig $config): ?array + { + if (!$config->isWidgetizeable()) { + return null; + } + + $config->checkIsEnabled(); + + $metadata = new WidgetMetadata(); + return $metadata->buildWidgetMetadata($config); + } } diff --git a/plugins/Widgetize/tests/Integration/ControllerTest.php b/plugins/Widgetize/tests/Integration/ControllerTest.php index 94dfb54ff4b..aaa77396094 100644 --- a/plugins/Widgetize/tests/Integration/ControllerTest.php +++ b/plugins/Widgetize/tests/Integration/ControllerTest.php @@ -13,6 +13,7 @@ use Piwik\Tests\Framework\Fixture; use Piwik\Tests\Framework\Mock\FakeAccess; use Piwik\Tests\Framework\TestCase\IntegrationTestCase; +use Piwik\Widget\WidgetConfig; /** * @group Widgetize @@ -83,4 +84,30 @@ public function testIframeShouldBootstrapClientRenderedWidgetForLegacyWidgetizeU $this->assertStringContainsString('clientComponent', $html); $this->assertStringContainsString('TransitionsPage', $html); } + + public function testBuildClientWidgetMetadataShouldRejectDisabledWidgets(): void + { + $config = new WidgetConfig(); + $config->setClientSideComponent('Transitions', 'TransitionsPage'); + $config->disable(); + + $this->expectException(\Exception::class); + $this->expectExceptionMessage('General_ExceptionWidgetNotEnabled'); + + $method = new \ReflectionMethod(Controller::class, 'buildClientWidgetMetadata'); + $method->setAccessible(true); + $method->invoke($this->controller, $config); + } + + public function testBuildClientWidgetMetadataShouldIgnoreNonWidgetizableWidgets(): void + { + $config = new WidgetConfig(); + $config->setClientSideComponent('Transitions', 'TransitionsPage'); + $config->setIsNotWidgetizable(); + + $method = new \ReflectionMethod(Controller::class, 'buildClientWidgetMetadata'); + $method->setAccessible(true); + + $this->assertNull($method->invoke($this->controller, $config)); + } } From 30aad041ccab6fce00c6f1d27ea2f57aa4de6ac8 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Thu, 23 Apr 2026 15:28:25 +0200 Subject: [PATCH 5/5] add changelog entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97220811ca4..f7035530c42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ The Product Changelog at **[matomo.org/changelog](https://matomo.org/changelog)* ## Matomo 5.10.0 +### New APIs +* Widgets can now be declared as client-rendered through `WidgetConfig::setClientSideComponent()` and `WidgetConfig::setClientSideProps()`. `API.getWidgetMetadata` and `API.getReportPagesMetadata` now expose a `clientComponent` field for these widgets, and Widgetize/dashboard rendering supports bootstrapping them without an extra widget controller request. + ### Deprecations * The methods `ArchiveTableCreator::getNumericTable()` and `ArchiveTableCreator::getBlobTable()` now support a `$createIfMissing` parameter. Omitting this parameter is deprecated; pass `true` to create missing archive tables or `false` to return only existing tables. In Matomo 6 the default behavior for omitted calls will change to lookup-only.