diff options
54 files changed, 2639 insertions, 988 deletions
diff --git a/package-lock.json b/package-lock.json index 4c59f2a872..3f71aad098 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,7 @@ "@types/angular": "^1.8.2", "@types/jest": "^26.0.24", "@types/materialize-css": "^1.0.11", + "@types/mousetrap": "^1.6.8", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", "@vue/cli-plugin-babel": "^4.5.13", @@ -4125,6 +4126,12 @@ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, + "node_modules/@types/mousetrap": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.8.tgz", + "integrity": "sha512-zTqjvgCUT5EoXqbqmd8iJMb4NJqyV/V7pK7AIKq7qcaAsJIpGlTVJS1HQM6YkdHCdnkNSbhcQI7MXYxFfE3iCA==", + "dev": true + }, "node_modules/@types/node": { "version": "16.7.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", @@ -37895,6 +37902,12 @@ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, + "@types/mousetrap": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.8.tgz", + "integrity": "sha512-zTqjvgCUT5EoXqbqmd8iJMb4NJqyV/V7pK7AIKq7qcaAsJIpGlTVJS1HQM6YkdHCdnkNSbhcQI7MXYxFfE3iCA==", + "dev": true + }, "@types/node": { "version": "16.7.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", diff --git a/package.json b/package.json index e3bf6380ac..8682c74482 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@types/angular": "^1.8.2", "@types/jest": "^26.0.24", "@types/materialize-css": "^1.0.11", + "@types/mousetrap": "^1.6.8", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", "@vue/cli-plugin-babel": "^4.5.13", diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php index 4464aa1cd8..818db16504 100644 --- a/plugins/CoreHome/CoreHome.php +++ b/plugins/CoreHome/CoreHome.php @@ -138,7 +138,7 @@ class CoreHome extends \Piwik\Plugin $stylesheets[] = "plugins/CoreHome/stylesheets/layout.less"; $stylesheets[] = "plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.less"; $stylesheets[] = "plugins/CoreHome/vue/src/Notification/Notification.less"; - $stylesheets[] = "plugins/CoreHome/angularjs/quick-access/quick-access.directive.less"; + $stylesheets[] = "plugins/CoreHome/vue/src/QuickAccess/QuickAccess.less"; $stylesheets[] = "plugins/CoreHome/stylesheets/selector.less"; $stylesheets[] = "plugins/CoreHome/angularjs/reporting-page/reportingpage.directive.less"; $stylesheets[] = "plugins/CoreHome/angularjs/report-export/reportexport.popover.less"; @@ -229,9 +229,6 @@ class CoreHome extends \Piwik\Plugin $jsFiles[] = "plugins/CoreHome/angularjs/progressbar/progressbar.directive.js"; $jsFiles[] = "plugins/CoreHome/angularjs/sparkline/sparkline.component.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector.controller.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector.directive.js"; $jsFiles[] = "plugins/CoreHome/angularjs/content-intro/content-intro.directive.js"; @@ -257,9 +254,6 @@ class CoreHome extends \Piwik\Plugin $jsFiles[] = "plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js"; $jsFiles[] = "plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/quick-access/quick-access.controller.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/quick-access/quick-access.directive.js"; - $jsFiles[] = "plugins/CoreHome/angularjs/content-table/content-table.directive.js"; diff --git a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js index 867e0c58ec..faad0b04da 100644 --- a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js +++ b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js @@ -14,6 +14,8 @@ * * <div piwik-autocomplete-matched="searchTerm">{{ name }}</div> * <input type="text" ng-model="searchTerm"> + * + * @deprecated */ (function () { angular.module('piwikApp.directive').directive('piwikAutocompleteMatched', piwikAutocompleteMatched); diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js b/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js deleted file mode 100644 index f9f28c923c..0000000000 --- a/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js +++ /dev/null @@ -1,90 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ -(function () { - angular.module('piwikApp').controller('QuickAccessController', QuickAccessController); - - QuickAccessController.$inject = ['$scope', '$filter', 'siteSelectorModel']; - - function QuickAccessController($scope, $filter, siteSelectorModel){ - - this.menuItems = []; - this.numMenuItems = 0; - this.sitesModel = siteSelectorModel; - - this.onKeypress = function (event) { - var areSearchResultsDisplayed = $scope.search && $scope.search.term && $scope.view && $scope.view.searchActive; - var isTabKey = 9 == event.which; - var isEscKey = 27 == event.which; - - if (38 == event.which) { - $scope.highlightPreviousItem(); - event.preventDefault(); - } else if (40 == event.which) { - $scope.highlightNextItem(); - event.preventDefault(); - } else if (13 == event.which) { - $scope.clickQuickAccessMenuItem(); - } else if (isTabKey && areSearchResultsDisplayed) { - $scope.deactivateSearch(); - } else if (isEscKey && areSearchResultsDisplayed) { - $scope.deactivateSearch(); - } - }; - - this.searchMenu = function (searchTerm) { - searchTerm = searchTerm.toLowerCase(); - - var index = -1; - var menuItemsIndex = {}; - var menuItems = []; - - var moveToCategory = function (i, submenuItem) { - submenuItem = angular.copy(submenuItem); // force rerender of element to prevent weird side effects - submenuItem.menuIndex = ++index; // needed for proper highlighting with arrow keys - - var category = submenuItem.category; - if (!(category in menuItemsIndex)) { - menuItems.push({title: category, items: []}); - menuItemsIndex[category] = menuItems.length - 1; - } - - var indexOfCategory = menuItemsIndex[category]; - menuItems[indexOfCategory].items.push(submenuItem); - }; - - $scope.resetSearchIndex(); - - if ($scope.hasSitesSelector) { - this.sitesModel.searchSite(searchTerm); - } - - var topMenuItems = $filter('filter')($scope.getTopMenuItems(), searchTerm); - var leftMenuItems = $filter('filter')($scope.getLeftMenuItems(), searchTerm); - var segmentItems = $filter('filter')($scope.getSegmentItems(), searchTerm); - - $.each(topMenuItems, moveToCategory); - $.each(leftMenuItems, moveToCategory); - $.each(segmentItems, moveToCategory); - - this.numMenuItems = topMenuItems.length + leftMenuItems.length + segmentItems.length; - this.menuItems = menuItems; - }; - - this.selectSite = function (idsite) { - this.sitesModel.loadSite(idsite); - }; - - this.selectMenuItem = function (index) { - $scope.selectMenuItem(index); - }; - - if (typeof initTopControls !== 'undefined' && initTopControls) { - initTopControls(); - } - - } -})(); diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html deleted file mode 100644 index c28c8f1d1f..0000000000 --- a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html +++ /dev/null @@ -1,48 +0,0 @@ -<div class="quick-access piwikSelector" - ng-class="{active: view.searchActive, expanded: view.searchActive}" - piwik-focus-anywhere-but-here="view.searchActive = false;"> - <span class="icon-search" ng-hide="search.term || view.searchActive" - ng-mouseenter="view.searchActive=true"></span> - <input class="s" - title="{{ quickAccessTitle }}" - ng-keydown="quickAccess.onKeypress($event)" - ng-change="view.searchActive=true;quickAccess.searchMenu(search.term)" - ng-focus="view.searchActive=true" - ng-model="search.term" piwik-focus-if="view.searchActive" - type="text" tabindex="2"/> - <div class="dropdown" ng-show="search.term && view.searchActive"> - <ul ng-hide="(quickAccess.numMenuItems > 0) || (quickAccess.sitesModel.sites | length)"> - <li class="no-result">{{ 'General_SearchNoResults' | translate }}</li> - </ul> - <ul ng-repeat="subcategory in quickAccess.menuItems"> - <li class="quick-access-category" - ng-click="search.term = subcategory.title;quickAccess.searchMenu(search.term)">{{ subcategory.title }}</li> - <li class="result" - ng-class="{selected: submenuEntry.menuIndex == search.index}" - ng-mouseenter="search.index=submenuEntry.menuIndex" - ng-click="quickAccess.selectMenuItem(submenuEntry.index)" - ng-repeat="submenuEntry in subcategory.items"><a>{{ submenuEntry.name | trim }}</a></li> - </ul> - <ul class="quickAccessMatomoSearch"> - <li class="quick-access-category websiteCategory" - ng-show="hasSitesSelector && ((quickAccess.sitesModel.sites | length) || quickAccess.sitesModel.isLoading)" - >{{ 'SitesManager_Sites' | translate }}</li> - <li class="no-result" - ng-show="hasSitesSelector && quickAccess.sitesModel.isLoading">{{ 'MultiSites_LoadingWebsites' | translate }}</li> - <li class="result" - ng-show="hasSitesSelector && !quickAccess.sitesModel.isLoading" - ng-mouseenter="search.index=(quickAccess.numMenuItems + $index)" - ng-class="{selected: (quickAccess.numMenuItems + $index) == search.index}" - ng-click="quickAccess.selectSite(site.idsite)" - ng-repeat="site in quickAccess.sitesModel.sites"><a ng-bind="site.name"></a></li> - </ul> - <ul> - <li class="quick-access-category helpCategory">{{ 'General_HelpResources' | translate }}</li> - <li ng-class="{selected: search.index == 'help'}" - class="quick-access-help" - ng-mouseenter="search.index='help'"> - <a ng-href="https://matomo.org?s={{ urlEncode(search.term) }}" target="_blank">{{'CoreHome_SearchOnMatomo' | translate:(search.term)}}</a> - </li> - </ul> - </div> -</div> diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js deleted file mode 100644 index 7417261c8e..0000000000 --- a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js +++ /dev/null @@ -1,287 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ - -/** - * Usage: - * <div piwik-dialog="showDialog">...</div> - * Will show dialog once showDialog evaluates to true. - * - * Will execute the "executeMyFunction" function in the current scope once the yes button is pressed. - */ -(function () { - angular.module('piwikApp').directive('piwikQuickAccess', QuickAccessDirective); - - QuickAccessDirective.$inject = ['$rootElement', '$timeout', 'piwik', '$filter']; - - function QuickAccessDirective ($rootElement, $timeout, piwik, $filter) { - - return { - restrict: 'A', - replace: true, - scope: {}, - templateUrl: 'plugins/CoreHome/angularjs/quick-access/quick-access.directive.html?cb=' + piwik.cacheBuster, - controller: 'QuickAccessController', - controllerAs: 'quickAccess', - link: function (scope, element, attrs) { - - var menuIndex = -1; // the menu index is used to identify which element to click - var topMenuItems = []; // cache for top menu items - var leftMenuItems = []; // cache for left menu items - var segmentItems = []; // cache for segment items - var hasSegmentSelector = angular.element('.segmentEditorPanel').length; - scope.hasSitesSelector = angular.element('.top_controls [piwik-siteselector]').length; - - - var translate = $filter('translate'); - var searchAreasTitle = ''; - var searchAreas = [translate('CoreHome_MenuEntries')]; - - if (hasSegmentSelector) { - searchAreas.push(translate('CoreHome_Segments')); - } - - if (scope.hasSitesSelector) { - searchAreas.push(translate('SitesManager_Sites')); - } - - while (searchAreas.length) { - searchAreasTitle += searchAreas.shift(); - if (searchAreas.length >= 2) { - searchAreasTitle += ', '; - } else if (searchAreas.length === 1) { - searchAreasTitle += ' ' + translate('General_And') + ' '; - } - } - - scope.quickAccessTitle = translate('CoreHome_QuickAccessTitle', searchAreasTitle); - - function trim(str) { - if (str) { - return str.replace(/^\s+|\s+$/g,''); - } - return str; - } - - scope.getTopMenuItems = function() - { - if (topMenuItems && topMenuItems.length) { - return topMenuItems; - } - - var category = _pk_translate('CoreHome_Menu'); - - $rootElement.find('nav .sidenav li > a').each(function (index, element) { - var $element = $(element); - - var text = trim($element.text()); - - if (!text) { - text = trim($element.attr('title')); // possibly a icon, use title instead - } - - if (text) { - topMenuItems.push({name: text, index: ++menuIndex, category: category}); - $element.attr('quick_access', menuIndex); - } - }); - - return topMenuItems; - }; - - scope.getLeftMenuItems = function () - { - if (leftMenuItems && leftMenuItems.length) { - return leftMenuItems; - } - - $rootElement.find('#secondNavBar .menuTab').each(function (index, element) { - var $element = angular.element(element); - var category = trim($element.find('> .item').text()); - - if (category && -1 !== category.lastIndexOf("\n")) { - // remove "\n\nMenu" - category = trim(category.substr(0, category.lastIndexOf("\n"))); - } - - $element.find('li .item').each(function (i, element) { - var $element = angular.element(element); - var text = trim($element.text()); - if (text) { - leftMenuItems.push({name: text, category: category, index: ++menuIndex}); - $element.attr('quick_access', menuIndex); - } - }); - - }); - - return leftMenuItems; - }; - - scope.getSegmentItems = function() - { - if (!hasSegmentSelector) { - return []; - } - - if (segmentItems && segmentItems.length) { - return segmentItems; - } - - var category = _pk_translate('CoreHome_Segments'); - - $rootElement.find('.segmentList [data-idsegment]').each(function (index, element) { - var $element = angular.element(element); - var text = trim($element.find('.segname').text()); - - if (text) { - segmentItems.push({name: text, category: category, index: ++menuIndex}); - $element.attr('quick_access', menuIndex); - } - }); - - return segmentItems; - }; - - scope.activateSearch = function() - { - scope.$eval('view.searchActive = true'); - $timeout(function () { - scope.$apply(); - }, 0); - }; - - scope.deactivateSearch = function() - { - scope.$eval('search.term = ""'); - scope.$eval('view.searchActive = false'); - element.find('input').blur(); - $timeout(function () { - scope.$apply(); - }, 0); - }; - - function isElementInViewport(element) { - - var rect = element.getBoundingClientRect(); - - return ( - rect.top >= 0 && - rect.left >= 0 && - rect.bottom <= $(window).height() && - rect.right <= $(window).width() - ); - } - - function getCurrentlySelectedElement(index) - { - var results = element.find('li.result'); - if (results && results.length && results[scope.search.index]) { - return $(results[scope.search.index]); - } - } - - function makeSureSelectedItemIsInViewport() { - var element = getCurrentlySelectedElement(); - - if (element && element[0] && !isElementInViewport(element[0])) { - scrollFirstElementIntoView(element); - } - } - - function scrollFirstElementIntoView(element) - { - if (element && element[0] && element[0].scrollIntoView) { - // make sure search is visible - element[0].scrollIntoView(); - } - } - - scope.highlightPreviousItem = function() - { - if (0 >= (scope.search.index - 1)) { - scope.search.index = 0; - } else { - scope.search.index--; - } - makeSureSelectedItemIsInViewport(); - }; - - scope.resetSearchIndex = function () { - scope.search.index = 0; - makeSureSelectedItemIsInViewport(); - }; - - scope.highlightNextItem = function() - { - var numTotal = element.find('li.result').length; - - if (numTotal <= (scope.search.index + 1)) { - scope.search.index = numTotal - 1; - } else { - scope.search.index++; - } - - makeSureSelectedItemIsInViewport(); - }; - - scope.clickQuickAccessMenuItem = function() - { - var selectedMenuElement = getCurrentlySelectedElement(); - if (selectedMenuElement) { - $timeout(function () { - selectedMenuElement.click(); - }, 20); - } - }; - - scope.selectMenuItem = function(index) - { - var target = $rootElement.find('[quick_access=' + index + ']'); - - if (target && target.length && target[0]) { - scope.deactivateSearch(); - - var actualTarget = target[0]; - - var href = $(actualTarget).attr('href'); - - if (href && href.length > 10 && actualTarget && actualTarget.click) { - try { - actualTarget.click(); - } catch (e) { - $(actualTarget).click(); - } - } else { - $(actualTarget).click(); - } - } - }; - - scope.urlEncode = function(term) - { - return encodeURIComponent(term); - }; - - piwikHelper.registerShortcut('f', _pk_translate('CoreHome_ShortcutSearch'), function(event) { - if (event.altKey) { - return; - } - if (event.preventDefault) { - event.preventDefault(); - } else { - event.returnValue = false; // IE - } - - scrollFirstElementIntoView(element); - - scope.activateSearch(); - }); - - } - }; - } -})(); diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js b/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js deleted file mode 100644 index 19cc732af5..0000000000 --- a/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js +++ /dev/null @@ -1,137 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ -(function () { - angular.module('piwikApp').factory('siteSelectorModel', siteSelectorModel); - - siteSelectorModel.$inject = ['piwikApi', '$filter', 'piwik', '$q']; - - function siteSelectorModel(piwikApi, $filter, piwik, $q) { - - var initialSites = null; - var limitPromise = null; - - var model = { - sites : [], - hasMultipleWebsites : false, - isLoading : false, - firstSiteName : '', - onlySitesWithAdminAccess: false, - updateWebsitesList: updateWebsitesList, - searchSite: searchSite, - loadSite: loadSite, - loadInitialSites: loadInitialSites, - hasMultipleSites: hasMultipleSites - }; - - return model; - - function updateWebsitesList(sites) { - - if (!sites || !sites.length) { - model.sites = []; - return []; - } - - angular.forEach(sites, function (site) { - if (site.group) site.name = '[' + site.group + '] ' + site.name; - }); - - model.sites = sortSites(sites); - - if (!model.firstSiteName) { - model.firstSiteName = model.sites[0].name; - } - - model.hasMultipleWebsites = model.hasMultipleWebsites || sites.length > 1; - - return model.sites; - } - - function searchSite(term) { - - if (!term) { - loadInitialSites(); - return; - } - - if (model.isLoading) { - if (model.currentRequest) { - model.currentRequest.abort(); - } else if (limitPromise) { - limitPromise.abort(); - limitPromise = null; - } - } - - model.isLoading = true; - - if (!limitPromise) { - limitPromise = piwikApi.fetch({method: 'SitesManager.getNumWebsitesToDisplayPerPage'}); - } - - return limitPromise.then(function (response) { - var limit = response.value; - - var methodToCall = 'SitesManager.getPatternMatchSites'; - if (model.onlySitesWithAdminAccess) { - methodToCall = 'SitesManager.getSitesWithAdminAccess'; - } - - model.currentRequest = piwikApi.fetch({ - method: methodToCall, - limit: limit, - pattern: term - }); - - return model.currentRequest; - }).then(function (response) { - if (angular.isDefined(response)) { - return updateWebsitesList(response); - } - }).finally(function () { - model.isLoading = false; - model.currentRequest = null; - }); - } - - function loadSite(idsite) { - if (idsite == 'all') { - document.location.href = piwikHelper.getCurrentQueryStringWithParametersModified(piwikHelper.getQueryStringFromParameters({ - module: 'MultiSites', - action: 'index', - date: piwik.currentDateString, - period: piwik.period - })); - } else { - piwik.broadcast.propagateNewPage('segment=&idSite=' + idsite, false); - } - } - - function sortSites(websites) - { - return $filter('orderBy')(websites, '+name'); - } - - function loadInitialSites() { - if (initialSites) { - model.sites = initialSites; - var deferred = $q.defer(); - deferred.resolve(); - return deferred.promise; - } - - return searchSite('%').then(function () { - initialSites = model.sites; - model.isInitialized = true - }); - } - - function hasMultipleSites() { - return initialSites && initialSites.length > 1; - } - } -})();
\ No newline at end of file diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.controller.js b/plugins/CoreHome/angularjs/siteselector/siteselector.controller.js deleted file mode 100644 index 8c5760a295..0000000000 --- a/plugins/CoreHome/angularjs/siteselector/siteselector.controller.js +++ /dev/null @@ -1,69 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ -(function () { - angular.module('piwikApp').controller('SiteSelectorController', SiteSelectorController); - - SiteSelectorController.$inject = ['$scope', 'siteSelectorModel', 'piwik', 'AUTOCOMPLETE_MIN_SITES']; - - function SiteSelectorController($scope, siteSelectorModel, piwik, AUTOCOMPLETE_MIN_SITES){ - - $scope.model = siteSelectorModel; - - $scope.model.loadInitialSites().then(function(){ - if (!$scope.selectedSite && !$scope.model.hasMultipleSites() && $scope.model.sites[0]) { - $scope.selectedSite = {id: $scope.model.sites[0].idsite, name: $scope.model.sites[0].name}; - } - }); - - $scope.autocompleteMinSites = AUTOCOMPLETE_MIN_SITES; - $scope.activeSiteId = piwik.idSite; - - $scope.switchSite = function (site, $event) { - - // for Mac OS cmd key needs to be pressed, ctrl key on other systems - var controlKey = navigator.userAgent.indexOf("Mac OS X") !== -1 ? $event.metaKey : $event.ctrlKey; - - if ($event && controlKey && $event.target && $event.target.href) { - window.open($event.target.href, "_blank"); - return; - } - - $scope.selectedSite = {id: site.idsite, name: site.name}; - - if (!$scope.switchSiteOnSelect || $scope.activeSiteId == site.idsite) { - return; - } - - $scope.model.loadSite(site.idsite); - }; - - $scope.getUrlAllSites = function () { - var newParameters = 'module=MultiSites&action=index'; - return piwik.helper.getCurrentQueryStringWithParametersModified(newParameters); - }; - $scope.getUrlForSiteId = function (idSite) { - var idSiteParam = 'idSite=' + idSite; - var newParameters = 'segment=&' + idSiteParam; - var hash = piwik.broadcast.isHashExists() ? piwik.broadcast.getHashFromUrl() : ""; - return piwik.helper.getCurrentQueryStringWithParametersModified(newParameters) + - '#' + piwik.helper.getQueryStringWithParametersModified(hash.substring(1), newParameters); - }; - - piwikHelper.registerShortcut('w', _pk_translate('CoreHome_ShortcutWebsiteSelector'), function(event) { - if (event.altKey) { - return; - } - if (event.preventDefault) { - event.preventDefault(); - } else { - event.returnValue = false; // IE - } - $('.siteSelector .title').trigger('click').focus(); - }); - } - -})(); diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html deleted file mode 100644 index 8954b20426..0000000000 --- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html +++ /dev/null @@ -1,73 +0,0 @@ -<div piwik-focus-anywhere-but-here="view.showSitesList=false" - class="siteSelector piwikSelector borderedControl" - ng-class="{'expanded': view.showSitesList, 'disabled': !model.hasMultipleSites()}"> - - <script type="text/ng-template" id="siteselector_allsiteslink.html"> - <div ng-click="switchSite({idsite: 'all', name: allSitesText}, $event);view.showSitesList=false;" - class="custom_select_all"> - <a href="{{ getUrlAllSites() }}" - piwik-ignore-click - ng-bind-html="allSitesText" tabindex="4"></a> - </div> - </script> - - <input ng-if="inputName" type="hidden" name="{{ inputName }}" ng-value="selectedSite.id"/> - - <a ng-click="model.hasMultipleSites() && (view.showSitesList=!view.showSitesList) && !model.isLoading && model.loadInitialSites();" - piwik-onenter="view.showSitesList=!view.showSitesList; view.showSitesList && !model.isLoading && model.loadInitialSites();" - href="javascript:void(0)" - ng-attr-title="{{ model.hasMultipleSites() ? _pk_translate('CoreHome_ChangeCurrentWebsite', (selectedSite.name || model.firstSiteName)) : '' }}" - ng-class="{'loading': model.isLoading}" - class="title" tabindex="4"> - <span class="icon icon-arrow-bottom" - ng-class="{'iconHidden': model.isLoading, 'collapsed': !view.showSitesList}"></span> - <span> - <span ng-bind="selectedSite.name || model.firstSiteName" ng-if="selectedSite.name || !placeholder">?</span> - <span ng-if="!selectedSite.name && placeholder" class="placeholder">{{ placeholder }}</span> - </span> - </a> - - <div ng-show="view.showSitesList" class="dropdown"> - - <div class="custom_select_search" ng-show="autocompleteMinSites <= model.sites.length || view.searchTerm"> - <input type="text" - piwik-focus-if="view.showSitesList && (autocompleteMinSites <= model.sites.length || view.searchTerm)" - ng-click="view.searchTerm=''" - ng-model="view.searchTerm" - ng-change="model.searchSite(view.searchTerm)" - placeholder="{{ 'General_Search' | translate }}" - tabindex="4" - class="websiteSearch inp browser-default"/> - <img title="Clear" - ng-show="view.searchTerm" - ng-click="view.searchTerm=''; model.loadInitialSites()" - class="reset" - src="plugins/CoreHome/images/reset_search.png"/> - </div> - - <div ng-if="allSitesLocation=='top' && showAllSitesItem" - ng-include="'siteselector_allsiteslink.html'"></div> - - <div class="custom_select_container"> - <ul class="custom_select_ul_list" ng-click="view.showSitesList=false;"> - <li ng-click="switchSite(site, $event)" - ng-repeat="site in model.sites" - ng-hide="!showSelectedSite && activeSiteId==site.idsite"> - <a piwik-ignore-click href="{{ getUrlForSiteId(site.idsite) }}" - piwik-autocomplete-matched="view.searchTerm" - title="{{ site.name }}" - ng-bind="site.name" tabindex="4"></a> - </li> - </ul> - <ul ng-show="!model.sites.length && view.searchTerm" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all siteSelect"> - <li class="ui-menu-item"> - <a class="ui-corner-all" tabindex="-1">{{ ('SitesManager_NotFound' | translate) + ' ' + view.searchTerm }}</a> - </li> - </ul> - </div> - - <div ng-if="allSitesLocation=='bottom' && showAllSitesItem" - ng-include="'siteselector_allsiteslink.html'"></div> - - </div> -</div> diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js deleted file mode 100644 index 945b70c145..0000000000 --- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js +++ /dev/null @@ -1,112 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ - -/** - * Usage: - * <div piwik-siteselector> - * - * More advanced example - * <div piwik-siteselector - * show-selected-site="true" show-all-sites-item="true" switch-site-on-select="true" - * all-sites-location="top|bottom" all-sites-text="test" show-selected-site="true" - * show-all-sites-item="true" only-sites-with-admin-access="true"> - * - * Within a form - * <div piwik-siteselector input-name="siteId"> - * - * Events: - * Triggers a `change` event on any change - * <div piwik-siteselector id="mySelector"> - * $('#mySelector').on('change', function (event) { event.id/event.name }) - */ -(function () { - angular.module('piwikApp').directive('piwikSiteselector', piwikSiteselector); - - piwikSiteselector.$inject = ['$document', 'piwik', '$filter', '$timeout']; - - function piwikSiteselector($document, piwik, $filter, $timeout){ - var defaults = { - name: '', - siteid: piwik.idSite, - sitename: piwik.helper.htmlDecode(piwik.siteName), - allSitesLocation: 'bottom', - allSitesText: $filter('translate')('General_MultiSitesSummary'), - showSelectedSite: 'false', - showAllSitesItem: 'true', - switchSiteOnSelect: 'true', - onlySitesWithAdminAccess: 'false' - }; - - return { - restrict: 'A', - scope: { - showSelectedSite: '=', - showAllSitesItem: '=', - switchSiteOnSelect: '=', - onlySitesWithAdminAccess: '=', - inputName: '@name', - allSitesText: '@', - allSitesLocation: '@', - placeholder: '@' - }, - require: "?ngModel", - templateUrl: 'plugins/CoreHome/angularjs/siteselector/siteselector.directive.html?cb=' + piwik.cacheBuster, - controller: 'SiteSelectorController', - compile: function (element, attrs) { - - for (var index in defaults) { - if (attrs[index] === undefined) { - attrs[index] = defaults[index]; - } - } - - return function (scope, element, attrs, ngModel) { - scope.model.onlySitesWithAdminAccess = scope.onlySitesWithAdminAccess; - - if (ngModel) { - ngModel.$setViewValue(scope.selectedSite); - } - - scope.$watch('selectedSite.id', function (newValue, oldValue, scope) { - if (newValue != oldValue) { - element.attr('siteid', newValue); - element.trigger('change', scope.selectedSite); - } - }); - - if (ngModel) { - ngModel.$render = function() { - if (angular.isString(ngModel.$viewValue)) { - scope.selectedSite = JSON.parse(ngModel.$viewValue); - } else { - scope.selectedSite = ngModel.$viewValue; - } - }; - } - - scope.$watch('selectedSite', function (newValue) { - if (ngModel) { - ngModel.$setViewValue(newValue); - } - }); - - scope.$watch('view.showSitesList', function (newValue) { - element.toggleClass('expanded', !! newValue); - }); - - $timeout(function () { - if (attrs.siteid && attrs.sitename) { - scope.selectedSite = {id: attrs.siteid, name: piwik.helper.htmlDecode(attrs.sitename)}; - } - - initTopControls(); - }); - }; - } - }; - } -})();
\ No newline at end of file diff --git a/plugins/CoreHome/javascripts/broadcast.js b/plugins/CoreHome/javascripts/broadcast.js index de6af9a996..fe3b262b32 100644 --- a/plugins/CoreHome/javascripts/broadcast.js +++ b/plugins/CoreHome/javascripts/broadcast.js @@ -314,7 +314,7 @@ var broadcast = { * @param {array} paramsToRemove Optional parameters to remove from the URL. * @return {void} */ - propagateNewPage: function (str, showAjaxLoading, strHash, paramsToRemove) { + propagateNewPage: function (str, showAjaxLoading, strHash, paramsToRemove, wholeNewUrl) { // abort all existing ajax requests globalAjaxQueue.abort(); @@ -337,61 +337,66 @@ var broadcast = { } var oldUrl = currentSearchStr + currentHashStr; + var newUrl; - // remove all array query params that are currently set. if we don't do this the array parameters we add - // just get added to the existing parameters. - params_vals.forEach(function (param) { + if (!wholeNewUrl) { + // remove all array query params that are currently set. if we don't do this the array parameters we add + // just get added to the existing parameters. + params_vals.forEach(function (param) { if (/\[]=/.test(decodeURIComponent(param))) { - var paramName = decodeURIComponent(param).split('[]=')[0]; - removeParam(paramName); + var paramName = decodeURIComponent(param).split('[]=')[0]; + removeParam(paramName); } - }); + }); - // remove parameters if needed - paramsToRemove.forEach(function (paramName) { + // remove parameters if needed + paramsToRemove.forEach(function (paramName) { removeParam(paramName); - }); + }); - // update/add parameters based on whether the parameter is an array param or not - params_vals.forEach(function (param) { - if(!param.length) { - return; // updating with empty string would destroy some values + // update/add parameters based on whether the parameter is an array param or not + params_vals.forEach(function (param) { + if (!param.length) { + return; // updating with empty string would destroy some values } if (/\[]=/.test(decodeURIComponent(param))) { // array param value - currentSearchStr = broadcast.addArrayParamValue(param, currentSearchStr); + currentSearchStr = broadcast.addArrayParamValue(param, currentSearchStr); - if (currentHashStr.length !== 0) { - currentHashStr = broadcast.addArrayParamValue(param, currentHashStr); - } + if (currentHashStr.length !== 0) { + currentHashStr = broadcast.addArrayParamValue(param, currentHashStr); + } } else { - // update both the current search query and hash string - currentSearchStr = broadcast.updateParamValue(param, currentSearchStr); + // update both the current search query and hash string + currentSearchStr = broadcast.updateParamValue(param, currentSearchStr); - if (currentHashStr.length !== 0) { - currentHashStr = broadcast.updateParamValue(param, currentHashStr); - } + if (currentHashStr.length !== 0) { + currentHashStr = broadcast.updateParamValue(param, currentHashStr); + } } - }); + }); - var updatedUrl = new RegExp('&updated=([0-9]+)'); - var updatedCounter = updatedUrl.exec(currentSearchStr); - if (!updatedCounter) { + var updatedUrl = new RegExp('&updated=([0-9]+)'); + var updatedCounter = updatedUrl.exec(currentSearchStr); + if (!updatedCounter) { currentSearchStr += '&updated=1'; - } else { + } else { updatedCounter = 1 + parseInt(updatedCounter[1]); currentSearchStr = currentSearchStr.replace(new RegExp('(&updated=[0-9]+)'), '&updated=' + updatedCounter); - } + } - if (strHash && currentHashStr.length != 0) { + if (strHash && currentHashStr.length != 0) { var params_hash_vals = strHash.split("&"); for (var i = 0; i < params_hash_vals.length; i++) { - currentHashStr = broadcast.updateParamValue(params_hash_vals[i], currentHashStr); + currentHashStr = broadcast.updateParamValue(params_hash_vals[i], currentHashStr); } - } + } - // Now load the new page. - var newUrl = currentSearchStr + currentHashStr; + // Now load the new page. + newUrl = currentSearchStr + currentHashStr; + } else { + newUrl = wholeNewUrl; + } var $rootScope = piwikHelper.getAngularDependency('$rootScope'); if ($rootScope) { diff --git a/plugins/CoreHome/javascripts/top_controls.js b/plugins/CoreHome/javascripts/top_controls.js index c215e70f0f..f4a793b4b5 100644 --- a/plugins/CoreHome/javascripts/top_controls.js +++ b/plugins/CoreHome/javascripts/top_controls.js @@ -51,7 +51,7 @@ function initTopControls() { } } -//Keyboard controls for Top Controls Calendar through tab and enter. +//Keyboard controls for Top Controls Calendar through tab and enter. $( document ).ready(function() { $('.periodSelector').keydown(function(e){ toggleCalendar(e); @@ -67,7 +67,7 @@ $( document ).ready(function() { }) }); -//Keyboard controls for Top Controls Calendar through tab and enter. +//Keyboard controls for Top Controls Calendar through tab and enter. $( document ).ready(function() { $('.periodSelector').keydown(function(e){ toggleCalendar(e); @@ -85,7 +85,7 @@ $( document ).ready(function() { function toggleCalendar(e){ var calendarOpen = $('.periodSelector').hasClass('expanded'); - + if(e.which==13){ if(calendarOpen){ $('.periodSelector').removeClass('expanded'); @@ -107,4 +107,4 @@ function blockPropegation(){ $('.ui-datepicker-month, .ui-datepicker-year, .periodSelector td a').keydown(function(e){ e.stopPropagation(); }) -}
\ No newline at end of file +} diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js index 83a95674b5..a0f4f9060b 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js @@ -128,6 +128,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__; __webpack_require__.r(__webpack_exports__); // EXPORTS +__webpack_require__.d(__webpack_exports__, "debounce", function() { return /* reexport */ debounce; }); __webpack_require__.d(__webpack_exports__, "createAngularJsAdapter", function() { return /* reexport */ createAngularJsAdapter; }); __webpack_require__.d(__webpack_exports__, "activityIndicatorAdapter", function() { return /* reexport */ ActivityIndicator_adapter; }); __webpack_require__.d(__webpack_exports__, "ActivityIndicator", function() { return /* reexport */ ActivityIndicator; }); @@ -158,13 +159,15 @@ __webpack_require__.d(__webpack_exports__, "ExpandOnHover", function() { return __webpack_require__.d(__webpack_exports__, "EnrichedHeadline", function() { return /* reexport */ EnrichedHeadline; }); __webpack_require__.d(__webpack_exports__, "ContentBlock", function() { return /* reexport */ ContentBlock; }); __webpack_require__.d(__webpack_exports__, "Comparisons", function() { return /* reexport */ Comparisons; }); -__webpack_require__.d(__webpack_exports__, "Menudropdown", function() { return /* reexport */ Menudropdown; }); +__webpack_require__.d(__webpack_exports__, "MenuDropdown", function() { return /* reexport */ MenuDropdown; }); __webpack_require__.d(__webpack_exports__, "DatePicker", function() { return /* reexport */ DatePicker; }); __webpack_require__.d(__webpack_exports__, "DateRangePicker", function() { return /* reexport */ DateRangePicker; }); __webpack_require__.d(__webpack_exports__, "PeriodDatePicker", function() { return /* reexport */ PeriodDatePicker; }); __webpack_require__.d(__webpack_exports__, "Notification", function() { return /* reexport */ Notification; }); __webpack_require__.d(__webpack_exports__, "NotificationGroup", function() { return /* reexport */ Notification_NotificationGroup; }); __webpack_require__.d(__webpack_exports__, "NotificationsStore", function() { return /* reexport */ Notifications_store; }); +__webpack_require__.d(__webpack_exports__, "SiteSelector", function() { return /* reexport */ SiteSelector; }); +__webpack_require__.d(__webpack_exports__, "QuickAccess", function() { return /* reexport */ QuickAccess; }); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js // This file is imported into lib/wc client bundles. @@ -1102,6 +1105,20 @@ var MatomoUrl_MatomoUrl = /*#__PURE__*/function () { $location.search(serializedParams); } }, { + key: "updateUrl", + value: function updateUrl(params) { + var hashParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var serializedParams = typeof params !== 'string' ? this.stringify(params) : params; + var serializedHashParams = typeof hashParams !== 'string' ? this.stringify(hashParams) : hashParams; + var url = "?".concat(serializedParams); + + if (serializedHashParams.length) { + url = "".concat(url, "#?").concat(serializedHashParams); + } + + window.broadcast.propagateNewPage('', undefined, undefined, undefined, url); + } + }, { key: "getSearchParam", value: function getSearchParam(paramName) { var hash = window.location.href.split('#'); @@ -1581,7 +1598,7 @@ var AjaxHelper_AjaxHelper = /*#__PURE__*/function () { this.requestHandle = this.buildAjaxCall(); window.globalAjaxQueue.push(this.requestHandle); - return new Promise(function (resolve, reject) { + var result = new Promise(function (resolve, reject) { _this2.requestHandle.then(resolve).fail(function (xhr) { if (xhr.statusText !== 'abort') { console.log("Warning: the ".concat($.param(_this2.getParams), " request failed!")); @@ -1589,6 +1606,14 @@ var AjaxHelper_AjaxHelper = /*#__PURE__*/function () { } }); }); + + result.abort = function () { + if (_this2.requestHandle) { + _this2.requestHandle.abort(); + } + }; + + return result; } /** * Aborts the current request if it is (still) running @@ -2456,6 +2481,7 @@ function toAngularJsCamelCase(arg) { function createAngularJsAdapter(options) { var component = options.component, + require = options.require, _options$scope = options.scope, scope = _options$scope === void 0 ? {} : _options$scope, _options$events = options.events, @@ -2496,10 +2522,11 @@ function createAngularJsAdapter(options) { var adapter = { restrict: restrict, + require: require, scope: noScope ? undefined : angularJsScope, compile: function angularJsAdapterCompile() { return { - post: function angularJsAdapterLink(ngScope, ngElement, ngAttrs) { + post: function angularJsAdapterLink(ngScope, ngElement, ngAttrs, ngController) { var clone = transclude ? ngElement.find("[ng-transclude][counter=".concat(currentTranscludeCounter, "]")) : null; // build the root vue template var rootVueTemplate = '<root-component'; @@ -2575,7 +2602,7 @@ function createAngularJsAdapter(options) { } if (events[name]) { - events[name].apply(events, [$event, ngScope, ngElement, ngAttrs].concat(injectedServices)); + events[name].apply(events, [$event, this, ngScope, ngElement, ngAttrs, ngController].concat(injectedServices)); } } } @@ -2616,7 +2643,7 @@ function createAngularJsAdapter(options) { } if (postCreate) { - postCreate.apply(void 0, [vm, ngScope, ngElement, ngAttrs].concat(injectedServices)); + postCreate.apply(void 0, [vm, ngScope, ngElement, ngAttrs, ngController].concat(injectedServices)); } ngElement.on('$destroy', function () { @@ -2662,7 +2689,7 @@ function createAngularJsAdapter(options) { } }, events: { - yes: function yes($event, scope, element, attrs) { + yes: function yes($event, vm, scope, element, attrs) { if (attrs.yes) { scope.$eval(attrs.yes); setTimeout(function () { @@ -2670,7 +2697,7 @@ function createAngularJsAdapter(options) { }, 0); } }, - no: function no($event, scope, element, attrs) { + no: function no($event, vm, scope, element, attrs) { if (attrs.no) { scope.$eval(attrs.no); setTimeout(function () { @@ -2678,7 +2705,7 @@ function createAngularJsAdapter(options) { }, 0); } }, - validation: function validation($event, scope, element, attrs) { + validation: function validation($event, vm, scope, element, attrs) { if (attrs.no) { scope.$eval(attrs.no); setTimeout(function () { @@ -2694,7 +2721,7 @@ function createAngularJsAdapter(options) { }, 0); } }, - 'update:modelValue': function updateModelValue(newValue, scope, element, attrs, $parse) { + 'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, controller, $parse) { setTimeout(function () { scope.$apply($parse(attrs.piwikDialog).assign(scope, newValue)); }, 0); @@ -3850,35 +3877,35 @@ angular.module('piwikApp.service').factory('piwikComparisonsService', Comparison directiveName: 'piwikComparisons', restrict: 'E' })); -// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue?vue&type=template&id=0349d645 +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue?vue&type=template&id=054f8a45 -var Menudropdownvue_type_template_id_0349d645_hoisted_1 = { +var MenuDropdownvue_type_template_id_054f8a45_hoisted_1 = { ref: "root", class: "menuDropdown" }; -var Menudropdownvue_type_template_id_0349d645_hoisted_2 = ["title"]; -var Menudropdownvue_type_template_id_0349d645_hoisted_3 = ["innerHTML"]; +var MenuDropdownvue_type_template_id_054f8a45_hoisted_2 = ["title"]; +var MenuDropdownvue_type_template_id_054f8a45_hoisted_3 = ["innerHTML"]; -var Menudropdownvue_type_template_id_0349d645_hoisted_4 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { +var MenuDropdownvue_type_template_id_054f8a45_hoisted_4 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { class: "icon-arrow-bottom" }, null, -1); -var Menudropdownvue_type_template_id_0349d645_hoisted_5 = { +var MenuDropdownvue_type_template_id_054f8a45_hoisted_5 = { class: "items" }; -var Menudropdownvue_type_template_id_0349d645_hoisted_6 = { +var MenuDropdownvue_type_template_id_054f8a45_hoisted_6 = { key: 0, class: "search" }; -var Menudropdownvue_type_template_id_0349d645_hoisted_7 = ["placeholder"]; -var Menudropdownvue_type_template_id_0349d645_hoisted_8 = ["title"]; -var Menudropdownvue_type_template_id_0349d645_hoisted_9 = ["title"]; -function Menudropdownvue_type_template_id_0349d645_render(_ctx, _cache, $props, $setup, $data, $options) { +var MenuDropdownvue_type_template_id_054f8a45_hoisted_7 = ["placeholder"]; +var MenuDropdownvue_type_template_id_054f8a45_hoisted_8 = ["title"]; +var MenuDropdownvue_type_template_id_054f8a45_hoisted_9 = ["title"]; +function MenuDropdownvue_type_template_id_054f8a45_render(_ctx, _cache, $props, $setup, $data, $options) { var _directive_focus_if = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-if"); var _directive_focus_anywhere_but_here = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-anywhere-but-here"); - return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Menudropdownvue_type_template_id_0349d645_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MenuDropdownvue_type_template_id_054f8a45_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { class: "title", onClick: _cache[0] || (_cache[0] = function ($event) { return _ctx.showItems = !_ctx.showItems; @@ -3886,7 +3913,7 @@ function Menudropdownvue_type_template_id_0349d645_render(_ctx, _cache, $props, title: _ctx.tooltip }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { innerHTML: _ctx.$sanitize(this.actualMenuTitle) - }, null, 8, Menudropdownvue_type_template_id_0349d645_hoisted_3), Menudropdownvue_type_template_id_0349d645_hoisted_4], 8, Menudropdownvue_type_template_id_0349d645_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Menudropdownvue_type_template_id_0349d645_hoisted_5, [_ctx.showSearch && _ctx.showItems ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Menudropdownvue_type_template_id_0349d645_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { + }, null, 8, MenuDropdownvue_type_template_id_054f8a45_hoisted_3), MenuDropdownvue_type_template_id_054f8a45_hoisted_4], 8, MenuDropdownvue_type_template_id_054f8a45_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", MenuDropdownvue_type_template_id_054f8a45_hoisted_5, [_ctx.showSearch && _ctx.showItems ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MenuDropdownvue_type_template_id_054f8a45_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { type: "text", "onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) { return _ctx.searchTerm = $event; @@ -3895,11 +3922,11 @@ function Menudropdownvue_type_template_id_0349d645_render(_ctx, _cache, $props, return _ctx.onSearchTermKeydown($event); }), placeholder: _ctx.translate('General_Search') - }, null, 40, Menudropdownvue_type_template_id_0349d645_hoisted_7), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {}, _ctx.showItems]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { + }, null, 40, MenuDropdownvue_type_template_id_054f8a45_hoisted_7), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {}, _ctx.showItems]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { class: "search_ico", src: "plugins/Morpheus/images/search_ico.png", title: _ctx.translate('General_Search') - }, null, 8, Menudropdownvue_type_template_id_0349d645_hoisted_8), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.searchTerm]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { + }, null, 8, MenuDropdownvue_type_template_id_054f8a45_hoisted_8), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.searchTerm]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { onClick: _cache[3] || (_cache[3] = function ($event) { _ctx.searchTerm = ''; @@ -3908,7 +3935,7 @@ function Menudropdownvue_type_template_id_0349d645_render(_ctx, _cache, $props, class: "reset", src: "plugins/CoreHome/images/reset_search.png", title: _ctx.translate('General_Clear') - }, null, 8, Menudropdownvue_type_template_id_0349d645_hoisted_9), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm]])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", { + }, null, 8, MenuDropdownvue_type_template_id_054f8a45_hoisted_9), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm]])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", { onClick: _cache[4] || (_cache[4] = function ($event) { return _ctx.selectItem($event); }) @@ -3916,15 +3943,15 @@ function Menudropdownvue_type_template_id_0349d645_render(_ctx, _cache, $props, blur: _ctx.lostFocus }]]); } -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue?vue&type=template&id=0349d645 +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue?vue&type=template&id=054f8a45 -// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue?vue&type=script&lang=ts +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue?vue&type=script&lang=ts -var Menudropdownvue_type_script_lang_ts_window = window, - Menudropdownvue_type_script_lang_ts_$ = Menudropdownvue_type_script_lang_ts_window.$; -/* harmony default export */ var Menudropdownvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ +var MenuDropdownvue_type_script_lang_ts_window = window, + MenuDropdownvue_type_script_lang_ts_$ = MenuDropdownvue_type_script_lang_ts_window.$; +/* harmony default export */ var MenuDropdownvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ props: { menuTitle: String, tooltip: String, @@ -3966,7 +3993,7 @@ var Menudropdownvue_type_script_lang_ts_window = window, } this.showItems = false; - Menudropdownvue_type_script_lang_ts_$(this.$slots.default()).find('.item').removeClass('active'); + MenuDropdownvue_type_script_lang_ts_$(this.$slots.default()).find('.item').removeClass('active'); targetClasses.add('active'); this.$emit('afterSelect'); }, @@ -3979,8 +4006,8 @@ var Menudropdownvue_type_script_lang_ts_window = window, }, searchItems: function searchItems(unprocessedSearchTerm) { var searchTerm = unprocessedSearchTerm.toLowerCase(); - Menudropdownvue_type_script_lang_ts_$(this.$refs.root).find('.item').each(function (index, node) { - var $node = Menudropdownvue_type_script_lang_ts_$(node); + MenuDropdownvue_type_script_lang_ts_$(this.$refs.root).find('.item').each(function (index, node) { + var $node = MenuDropdownvue_type_script_lang_ts_$(node); if ($node.text().toLowerCase().indexOf(searchTerm) === -1) { $node.hide(); @@ -3991,16 +4018,16 @@ var Menudropdownvue_type_script_lang_ts_window = window, } } })); -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue?vue&type=script&lang=ts +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue?vue&type=script&lang=ts -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue -Menudropdownvue_type_script_lang_ts.render = Menudropdownvue_type_template_id_0349d645_render +MenuDropdownvue_type_script_lang_ts.render = MenuDropdownvue_type_template_id_054f8a45_render -/* harmony default export */ var Menudropdown = (Menudropdownvue_type_script_lang_ts); -// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Menudropdown/Menudropdown.adapter.ts +/* harmony default export */ var MenuDropdown = (MenuDropdownvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.adapter.ts /*! * Matomo - free/libre analytics platform * @@ -4009,8 +4036,8 @@ Menudropdownvue_type_script_lang_ts.render = Menudropdownvue_type_template_id_03 */ -/* harmony default export */ var Menudropdown_adapter = (createAngularJsAdapter({ - component: Menudropdown, +/* harmony default export */ var MenuDropdown_adapter = (createAngularJsAdapter({ + component: MenuDropdown, scope: { menuTitle: { angularJsBind: '@' @@ -4792,6 +4819,1224 @@ PeriodDatePickervue_type_script_lang_ts.render = PeriodDatePickervue_type_templa directiveName: 'piwikPeriodDatePicker', restrict: 'E' })); +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=template&id=0804f097 + +var SiteSelectorvue_type_template_id_0804f097_hoisted_1 = ["value", "name"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_2 = ["title"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_3 = ["textContent"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_4 = { + key: 1, + class: "placeholder" +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_5 = { + class: "dropdown" +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_6 = { + class: "custom_select_search" +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_7 = ["placeholder"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_8 = { + key: 0 +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_9 = { + class: "custom_select_container" +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_10 = ["onClick"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_11 = ["innerHTML", "href", "title"]; +var SiteSelectorvue_type_template_id_0804f097_hoisted_12 = { + class: "ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all\n siteSelect" +}; +var SiteSelectorvue_type_template_id_0804f097_hoisted_13 = { + class: "ui-menu-item" +}; +var _hoisted_14 = { + class: "ui-corner-all", + tabindex: "-1" +}; +var _hoisted_15 = { + key: 1 +}; +function SiteSelectorvue_type_template_id_0804f097_render(_ctx, _cache, $props, $setup, $data, $options) { + var _ctx$selectedSite, _ctx$selectedSite2, _ctx$selectedSite3, _ctx$selectedSite4; + + var _component_AllSitesLink = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("AllSitesLink"); + + var _directive_focus_if = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-if"); + + var _directive_focus_anywhere_but_here = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-anywhere-but-here"); + + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["siteSelector piwikSelector borderedControl", { + 'expanded': _ctx.showSitesList, + 'disabled': !_ctx.hasMultipleSites + }]) + }, [_ctx.name ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("input", { + key: 0, + type: "hidden", + value: (_ctx$selectedSite = _ctx.selectedSite) === null || _ctx$selectedSite === void 0 ? void 0 : _ctx$selectedSite.id, + name: _ctx.name + }, null, 8, SiteSelectorvue_type_template_id_0804f097_hoisted_1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + ref: "selectorLink", + onClick: _cache[0] || (_cache[0] = function () { + return _ctx.onClickSelector && _ctx.onClickSelector.apply(_ctx, arguments); + }), + onKeydown: _cache[1] || (_cache[1] = function ($event) { + return _ctx.onPressEnter($event); + }), + href: "javascript:void(0)", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([{ + 'loading': _ctx.isLoading + }, "title"]), + tabindex: "4", + title: _ctx.selectorLinkTitle + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["icon icon-arrow-bottom", { + 'iconHidden': _ctx.isLoading, + 'collapsed': !_ctx.showSitesList + }]) + }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, [(_ctx$selectedSite2 = _ctx.selectedSite) !== null && _ctx$selectedSite2 !== void 0 && _ctx$selectedSite2.name || !_ctx.placeholder ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", { + key: 0, + textContent: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(((_ctx$selectedSite3 = _ctx.selectedSite) === null || _ctx$selectedSite3 === void 0 ? void 0 : _ctx$selectedSite3.name) || _ctx.firstSiteName) + }, null, 8, SiteSelectorvue_type_template_id_0804f097_hoisted_3)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !((_ctx$selectedSite4 = _ctx.selectedSite) !== null && _ctx$selectedSite4 !== void 0 && _ctx$selectedSite4.name) && _ctx.placeholder ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", SiteSelectorvue_type_template_id_0804f097_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.placeholder), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 42, SiteSelectorvue_type_template_id_0804f097_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SiteSelectorvue_type_template_id_0804f097_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SiteSelectorvue_type_template_id_0804f097_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { + type: "text", + onClick: _cache[2] || (_cache[2] = function ($event) { + _ctx.searchTerm = ''; + + _ctx.loadInitialSites(); + }), + "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) { + return _ctx.searchTerm = $event; + }), + onKeydown: _cache[4] || (_cache[4] = function ($event) { + return _ctx.onSearchInputKeydown(); + }), + tabindex: "4", + class: "websiteSearch inp browser-default", + placeholder: _ctx.translate('General_Search') + }, null, 40, SiteSelectorvue_type_template_id_0804f097_hoisted_7), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {}, _ctx.shouldFocusOnSearch]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { + title: "Clear", + onClick: _cache[5] || (_cache[5] = function ($event) { + _ctx.searchTerm = ''; + + _ctx.loadInitialSites(); + }), + class: "reset", + src: "plugins/CoreHome/images/reset_search.png" + }, null, 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm]])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.autocompleteMinSites <= _ctx.sites.length || _ctx.searchTerm]]), _ctx.allSitesLocation === 'top' && _ctx.showAllSitesItem ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", SiteSelectorvue_type_template_id_0804f097_hoisted_8, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_AllSitesLink, { + href: _ctx.urlAllSites, + "all-sites-text": _ctx.allSitesText, + onClick: _cache[6] || (_cache[6] = function ($event) { + return _ctx.onAllSitesClick($event); + }) + }, null, 8, ["href", "all-sites-text"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SiteSelectorvue_type_template_id_0804f097_hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", { + class: "custom_select_ul_list", + onClick: _cache[8] || (_cache[8] = function ($event) { + return _ctx.showSitesList = false; + }) + }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.sites, function (site) { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", { + onClick: function onClick($event) { + return _ctx.switchSite(site, $event); + }, + key: site.idsite + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + onClick: _cache[7] || (_cache[7] = function ($event) { + return $event.preventDefault(); + }), + innerHTML: _ctx.$sanitize(_ctx.getMatchedSiteName(site.name)), + tabindex: "4", + href: _ctx.getUrlForSiteId(site.idsite), + title: site.name + }, null, 8, SiteSelectorvue_type_template_id_0804f097_hoisted_11)], 8, SiteSelectorvue_type_template_id_0804f097_hoisted_10)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(!_ctx.showSelectedSite && _ctx.activeSiteId === site.idsite)]]); + }), 128))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", SiteSelectorvue_type_template_id_0804f097_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", SiteSelectorvue_type_template_id_0804f097_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", _hoisted_14, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_NotFound') + ' ' + _ctx.searchTerm), 1)])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.sites.length && _ctx.searchTerm]])]), _ctx.allSitesLocation === 'bottom' && _ctx.showAllSitesItem ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_15, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_AllSitesLink, { + href: _ctx.urlAllSites, + "all-sites-text": _ctx.allSitesText, + onClick: _cache[9] || (_cache[9] = function ($event) { + return _ctx.onAllSitesClick($event); + }) + }, null, 8, ["href", "all-sites-text"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showSitesList]])], 2)), [[_directive_focus_anywhere_but_here, { + blur: _ctx.onBlur + }]]); +} +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=template&id=0804f097 + +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=template&id=45607d28 + +var AllSitesLinkvue_type_template_id_45607d28_hoisted_1 = ["innerHTML", "href"]; +function AllSitesLinkvue_type_template_id_45607d28_render(_ctx, _cache, $props, $setup, $data, $options) { + var _this = this; + + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", { + onClick: _cache[1] || (_cache[1] = function ($event) { + return _this.onClick($event); + }), + class: "custom_select_all" + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + onClick: _cache[0] || (_cache[0] = function ($event) { + return $event.preventDefault(); + }), + innerHTML: _ctx.$sanitize(_ctx.allSitesText), + tabindex: "4", + href: _ctx.href + }, null, 8, AllSitesLinkvue_type_template_id_45607d28_hoisted_1)]); +} +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=template&id=45607d28 + +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=script&lang=ts + +/* harmony default export */ var AllSitesLinkvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + props: { + href: String, + allSitesText: String + }, + emits: ['click'], + methods: { + onClick: function onClick(event) { + this.$emit('click', event); + } + } +})); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=script&lang=ts + +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue + + + +AllSitesLinkvue_type_script_lang_ts.render = AllSitesLinkvue_type_template_id_45607d28_render + +/* harmony default export */ var AllSitesLink = (AllSitesLinkvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SitesStore.ts +function SitesStore_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + +function SitesStore_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { SitesStore_ownKeys(Object(source), true).forEach(function (key) { SitesStore_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { SitesStore_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function SitesStore_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function SitesStore_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function SitesStore_createClass(Constructor, protoProps, staticProps) { if (protoProps) SitesStore_defineProperties(Constructor.prototype, protoProps); if (staticProps) SitesStore_defineProperties(Constructor, staticProps); return Constructor; } + +function SitesStore_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + + + + +var SitesStore_SitesStore = /*#__PURE__*/function () { + function SitesStore() { + var _this = this; + + SitesStore_classCallCheck(this, SitesStore); + + SitesStore_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({ + initialSites: [], + isInitialized: false + })); + + SitesStore_defineProperty(this, "currentRequest", void 0); + + SitesStore_defineProperty(this, "limitRequest", void 0); + + SitesStore_defineProperty(this, "initialSites", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.state.initialSites); + })); + } + + SitesStore_createClass(SitesStore, [{ + key: "loadInitialSites", + value: function loadInitialSites() { + var _this2 = this; + + if (this.state.isInitialized) { + return Promise.resolve(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.state.initialSites)); + } + + return this.searchSite('%').then(function (sites) { + _this2.state.isInitialized = true; + _this2.state.initialSites = sites; + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(sites); + }); + } + }, { + key: "loadSite", + value: function loadSite(idSite) { + if (idSite === 'all') { + src_MatomoUrl_MatomoUrl.updateUrl(SitesStore_objectSpread(SitesStore_objectSpread({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, { + module: 'MultiSites', + action: 'index', + date: src_MatomoUrl_MatomoUrl.parsed.value.date, + period: src_MatomoUrl_MatomoUrl.parsed.value.period + })); + } else { + src_MatomoUrl_MatomoUrl.updateUrl(SitesStore_objectSpread(SitesStore_objectSpread({}, src_MatomoUrl_MatomoUrl.parsed.value), {}, { + segment: '', + idSite: idSite + })); + } + } + }, { + key: "searchSite", + value: function searchSite(term) { + var _this3 = this; + + var onlySitesWithAdminAccess = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!term) { + return this.loadInitialSites(); + } + + if (this.currentRequest) { + this.currentRequest.abort(); + } + + if (this.limitRequest) { + this.limitRequest.abort(); + this.limitRequest = null; + } + + if (!this.limitRequest) { + this.limitRequest = AjaxHelper_AjaxHelper.fetch({ + method: 'SitesManager.getNumWebsitesToDisplayPerPage' + }); + } + + return this.limitRequest.then(function (response) { + var limit = response.value; + var methodToCall = 'SitesManager.getPatternMatchSites'; + + if (onlySitesWithAdminAccess) { + methodToCall = 'SitesManager.getSitesWithAdminAccess'; + } + + _this3.currentRequest = AjaxHelper_AjaxHelper.fetch({ + method: methodToCall, + limit: limit, + pattern: term + }); + return _this3.currentRequest; + }).then(function (response) { + if (response) { + return _this3.processWebsitesList(response); + } + + return null; + }).finally(function () { + _this3.currentRequest = null; + }); + } + }, { + key: "processWebsitesList", + value: function processWebsitesList(response) { + var sites = response; + + if (!sites || !sites.length) { + return []; + } + + sites = sites.map(function (s) { + return SitesStore_objectSpread(SitesStore_objectSpread({}, s), {}, { + name: s.group ? "[".concat(s.group, "] ").concat(s.name) : s.name + }); + }); + sites.sort(function (lhs, rhs) { + if (lhs.name.toLowerCase() < rhs.name.toLowerCase()) { + return -1; + } + + return lhs.name.toLowerCase() > rhs.name.toLowerCase() ? 1 : 0; + }); + return sites; + } + }]); + + return SitesStore; +}(); + +/* harmony default export */ var SiteSelector_SitesStore = (new SitesStore_SitesStore()); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/debounce.ts +var DEFAULT_DEBOUNCE_DELAY = 300; +function debounce(fn) { + var delayInMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_DEBOUNCE_DELAY; + var timeout; + return function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + if (timeout) { + clearTimeout(timeout); + } + + timeout = setTimeout(function () { + fn.apply(void 0, args); + }, delayInMs); + }; +} +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=script&lang=ts +function SiteSelectorvue_type_script_lang_ts_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + +function SiteSelectorvue_type_script_lang_ts_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { SiteSelectorvue_type_script_lang_ts_ownKeys(Object(source), true).forEach(function (key) { SiteSelectorvue_type_script_lang_ts_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { SiteSelectorvue_type_script_lang_ts_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function SiteSelectorvue_type_script_lang_ts_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + + + + + + + + + +/* harmony default export */ var SiteSelectorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + props: { + modelValue: { + Object: Object, + default: { + id: Matomo_Matomo.idSite, + name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName) + } + }, + showSelectedSite: { + type: Boolean, + default: false + }, + showAllSitesItem: { + type: Boolean, + default: true + }, + switchSiteOnSelect: { + type: Boolean, + default: true + }, + onlySitesWithAdminAccess: { + type: Boolean, + default: false + }, + name: { + type: String, + default: '' + }, + allSitesText: { + type: String, + default: translate('General_MultiSitesSummary') + }, + allSitesLocation: { + type: String, + default: 'bottom' + }, + placeholder: String + }, + emits: ['update:modelValue', 'blur'], + components: { + AllSitesLink: AllSitesLink + }, + directives: { + FocusAnywhereButHere: FocusAnywhereButHere, + FocusIf: FocusIf + }, + watch: { + modelValue: { + handler: function handler(newValue) { + this.selectedSite = SiteSelectorvue_type_script_lang_ts_objectSpread({}, newValue); + }, + deep: true + } + }, + data: function data() { + return { + searchTerm: '', + activeSiteId: Matomo_Matomo.idSite, + showSitesList: false, + isLoading: false, + sites: [], + selectedSite: { + id: Matomo_Matomo.idSite, + name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName) + }, + autocompleteMinSites: parseInt(Matomo_Matomo.config.autocomplete_min_sites, 10) + }; + }, + mounted: function mounted() { + var _this = this; + + window.initTopControls(); + this.loadInitialSites().then(function () { + if ((!_this.selectedSite || !_this.selectedSite.id) && _this.sites[0]) { + _this.selectedSite = { + id: _this.sites[0].idsite, + name: _this.sites[0].name + }; + + _this.$emit('update:modelValue', SiteSelectorvue_type_script_lang_ts_objectSpread({}, _this.selectedSite)); + } + }); + var shortcutTitle = translate('CoreHome_ShortcutWebsiteSelector'); + Matomo_Matomo.helper.registerShortcut('w', shortcutTitle, function (event) { + if (event.altKey) { + return; + } + + if (event.preventDefault) { + event.preventDefault(); + } else { + event.returnValue = false; // IE + } + + _this.$refs.selectorLink.click(); + + _this.$refs.selectorLink.focus(); + }); + }, + created: function created() { + this.onSearchInputKeydown = debounce(this.onSearchInputKeydown.bind(this)); + }, + computed: { + shouldFocusOnSearch: function shouldFocusOnSearch() { + return this.showSitesList && this.autocompleteMinSites <= this.sites.length || this.searchTerm; + }, + selectorLinkTitle: function selectorLinkTitle() { + var _this$selectedSite; + + return this.hasMultipleSites ? translate('CoreHome_ChangeCurrentWebsite', ((_this$selectedSite = this.selectedSite) === null || _this$selectedSite === void 0 ? void 0 : _this$selectedSite.name) || this.firstSiteName) : ''; + }, + hasMultipleSites: function hasMultipleSites() { + return SiteSelector_SitesStore.initialSites.value && SiteSelector_SitesStore.initialSites.value.length > 1; + }, + firstSiteName: function firstSiteName() { + return this.sites && this.sites.length > 0 ? this.sites[0].name : ''; + }, + urlAllSites: function urlAllSites() { + var newQuery = src_MatomoUrl_MatomoUrl.stringify(SiteSelectorvue_type_script_lang_ts_objectSpread(SiteSelectorvue_type_script_lang_ts_objectSpread({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, { + module: 'MultiSites', + action: 'index', + date: src_MatomoUrl_MatomoUrl.parsed.value.date, + period: src_MatomoUrl_MatomoUrl.parsed.value.period + })); + return "?".concat(newQuery); + } + }, + methods: { + onAllSitesClick: function onAllSitesClick(event) { + this.switchSite({ + idsite: 'all', + name: this.allSitesText + }, event); + this.showSitesList = false; + }, + switchSite: function switchSite(site, event) { + // for Mac OS cmd key needs to be pressed, ctrl key on other systems + var controlKey = navigator.userAgent.indexOf('Mac OS X') !== -1 ? event.metaKey : event.ctrlKey; + + if (event && controlKey && event.target && event.target.href) { + window.open(event.target.href, '_blank'); + return; + } + + this.selectedSite = { + id: site.idsite, + name: site.name + }; + this.$emit('update:modelValue', SiteSelectorvue_type_script_lang_ts_objectSpread({}, this.selectedSite)); + + if (!this.switchSiteOnSelect || this.activeSiteId === site.idsite) { + return; + } + + SiteSelector_SitesStore.loadSite(site.idsite); + }, + onBlur: function onBlur() { + this.showSitesList = false; + this.$emit('blur'); + }, + onClickSelector: function onClickSelector() { + if (this.hasMultipleSites) { + this.showSitesList = !this.showSitesList; + + if (!this.isLoading && !this.searchTerm) { + this.loadInitialSites(); + } + } + }, + onPressEnter: function onPressEnter(event) { + if (event.key !== 'Enter') { + return; + } + + event.preventDefault(); + this.showSitesList = !this.showSitesList; + + if (this.showSitesList && !this.isLoading) { + this.loadInitialSites(); + } + }, + onSearchInputKeydown: function onSearchInputKeydown() { + var _this2 = this; + + setTimeout(function () { + _this2.searchSite(_this2.searchTerm); + }); + }, + getMatchedSiteName: function getMatchedSiteName(siteName) { + var index = siteName.toUpperCase().indexOf(this.searchTerm.toUpperCase()); + + if (index === -1) { + return Matomo_Matomo.helper.htmlEntities(siteName); + } + + var previousPart = Matomo_Matomo.helper.htmlEntities(siteName.substring(0, index)); + var lastPart = Matomo_Matomo.helper.htmlEntities(siteName.substring(index + this.searchTerm.length)); + return "".concat(previousPart, "<span class=\"autocompleteMatched\">").concat(this.searchTerm, "</span>").concat(lastPart); + }, + loadInitialSites: function loadInitialSites() { + var _this3 = this; + + return SiteSelector_SitesStore.loadInitialSites().then(function (sites) { + _this3.sites = sites || []; + }); + }, + searchSite: function searchSite(term) { + var _this4 = this; + + this.isLoading = true; + SiteSelector_SitesStore.searchSite(term, this.onlySitesWithAdminAccess).then(function (sites) { + if (sites) { + _this4.sites = sites; + } + }).finally(function () { + _this4.isLoading = false; + }); + }, + getUrlForSiteId: function getUrlForSiteId(idSite) { + var newQuery = src_MatomoUrl_MatomoUrl.stringify(SiteSelectorvue_type_script_lang_ts_objectSpread(SiteSelectorvue_type_script_lang_ts_objectSpread({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, { + segment: '', + idSite: idSite + })); + var newHash = src_MatomoUrl_MatomoUrl.stringify(SiteSelectorvue_type_script_lang_ts_objectSpread(SiteSelectorvue_type_script_lang_ts_objectSpread({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, { + segment: '', + idSite: idSite + })); + return "?".concat(newQuery, "#?").concat(newHash); + } + } +})); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=script&lang=ts + +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue + + + +SiteSelectorvue_type_script_lang_ts.render = SiteSelectorvue_type_template_id_0804f097_render + +/* harmony default export */ var SiteSelector = (SiteSelectorvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts +function SiteSelector_adapter_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + +function SiteSelector_adapter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { SiteSelector_adapter_ownKeys(Object(source), true).forEach(function (key) { SiteSelector_adapter_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { SiteSelector_adapter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function SiteSelector_adapter_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + + + +/* harmony default export */ var SiteSelector_adapter = (createAngularJsAdapter({ + component: SiteSelector, + require: '?ngModel', + scope: { + showSelectedSite: { + angularJsBind: '=' + }, + showAllSitesItem: { + angularJsBind: '=' + }, + switchSiteOnSelect: { + angularJsBind: '=' + }, + onlySitesWithAdminAccess: { + angularJsBind: '=' + }, + name: { + angularJsBind: '@' + }, + allSitesText: { + angularJsBind: '@' + }, + allSitesLocation: { + angularJsBind: '@' + }, + placeholder: { + angularJsBind: '@' + }, + modelValue: {} + }, + $inject: ['$timeout'], + directiveName: 'piwikSiteselector', + events: { + 'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, ngModel) { + if (newValue && !vm.modelValue || !newValue && vm.modelValue || newValue.id !== vm.modelValue.id) { + element.attr('siteid', newValue.id); + element.trigger('change', newValue); + + if (ngModel) { + ngModel.$setViewValue(newValue); + } + } + }, + blur: function blur(event, vm, scope) { + setTimeout(function () { + return scope.$apply(); + }); + } + }, + postCreate: function postCreate(vm, scope, element, attrs, controller, $timeout) { + var ngModel = controller; // setup ng-model mapping + + if (ngModel) { + ngModel.$setViewValue(vm.modelValue); + + ngModel.$render = function () { + if (angular.isString(ngModel.$viewValue)) { + vm.modelValue = JSON.parse(ngModel.$viewValue); + } else { + vm.modelValue = ngModel.$viewValue; + } + }; + } + + $timeout(function () { + if (attrs.siteid && attrs.sitename) { + vm.modelValue = { + id: attrs.siteid, + name: Matomo_Matomo.helper.htmlDecode(attrs.sitename) + }; + ngModel.$setViewValue(SiteSelector_adapter_objectSpread({}, vm.modelValue)); + } + }); + } +})); +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=template&id=d1e03d32 + +var QuickAccessvue_type_template_id_d1e03d32_hoisted_1 = { + ref: "root", + class: "quickAccessInside" +}; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_2 = ["title"]; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_3 = { + class: "dropdown" +}; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_4 = { + class: "no-result" +}; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_5 = ["onClick"]; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_6 = ["onMouseenter", "onClick"]; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_7 = { + class: "quickAccessMatomoSearch" +}; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_8 = ["onMouseenter", "onClick"]; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_9 = ["textContent"]; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_10 = { + class: "quick-access-category helpCategory" +}; +var QuickAccessvue_type_template_id_d1e03d32_hoisted_11 = ["href"]; +function QuickAccessvue_type_template_id_d1e03d32_render(_ctx, _cache, $props, $setup, $data, $options) { + var _directive_focus_if = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-if"); + + var _directive_focus_anywhere_but_here = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-anywhere-but-here"); + + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", QuickAccessvue_type_template_id_d1e03d32_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: "icon-search", + onMouseenter: _cache[0] || (_cache[0] = function ($event) { + return _ctx.searchActive = true; + }) + }, null, 544), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.searchTerm || _ctx.searchActive)]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { + class: "s", + onKeydown: _cache[1] || (_cache[1] = function ($event) { + return _ctx.onKeypress($event); + }), + onFocus: _cache[2] || (_cache[2] = function ($event) { + return _ctx.searchActive = true; + }), + "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) { + return _ctx.searchTerm = $event; + }), + type: "text", + tabindex: "2", + title: _ctx.quickAccessTitle + }, null, 40, QuickAccessvue_type_template_id_d1e03d32_hoisted_2), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {}, _ctx.searchActive]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", QuickAccessvue_type_template_id_d1e03d32_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", QuickAccessvue_type_template_id_d1e03d32_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_SearchNoResults')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.numMenuItems > 0 || _ctx.sites.length)]]), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.menuItems, function (subcategory) { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("ul", { + key: subcategory.title + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", { + class: "quick-access-category", + onClick: function onClick($event) { + _ctx.searchTerm = subcategory.title; + + _ctx.searchMenu(_ctx.searchTerm); + } + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcategory.title), 9, QuickAccessvue_type_template_id_d1e03d32_hoisted_5), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(subcategory.items, function (submenuEntry) { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["result", { + selected: submenuEntry.menuIndex === _ctx.searchIndex + }]), + onMouseenter: function onMouseenter($event) { + return _ctx.searchIndex = submenuEntry.menuIndex; + }, + onClick: function onClick($event) { + return _ctx.selectMenuItem(submenuEntry.index); + }, + key: submenuEntry.index + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(submenuEntry.name.trim()), 1)], 42, QuickAccessvue_type_template_id_d1e03d32_hoisted_6); + }), 128))]); + }), 128)), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", QuickAccessvue_type_template_id_d1e03d32_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", { + class: "quick-access-category websiteCategory" + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_Sites')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && _ctx.sites.length || _ctx.isLoading]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", { + class: "no-result" + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('MultiSites_LoadingWebsites')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && _ctx.isLoading]]), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.sites, function (site, index) { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["result", { + selected: _ctx.numMenuItems + index === _ctx.searchIndex + }]), + onMouseenter: function onMouseenter($event) { + return _ctx.searchIndex = _ctx.numMenuItems + index; + }, + onClick: function onClick($event) { + return _ctx.selectSite(site.idsite); + }, + key: site.idsite + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + textContent: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(site.name) + }, null, 8, QuickAccessvue_type_template_id_d1e03d32_hoisted_9)], 42, QuickAccessvue_type_template_id_d1e03d32_hoisted_8)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && !_ctx.isLoading]]); + }), 128))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", QuickAccessvue_type_template_id_d1e03d32_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_HelpResources')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([{ + selected: _ctx.searchIndex === 'help' + }, "quick-access-help"]), + onMouseenter: _cache[4] || (_cache[4] = function ($event) { + return _ctx.searchIndex = 'help'; + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + href: "https://matomo.org?s=".concat(encodeURIComponent(_ctx.searchTerm)), + target: "_blank" + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_SearchOnMatomo', _ctx.searchTerm)), 9, QuickAccessvue_type_template_id_d1e03d32_hoisted_11)], 34)])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm && _ctx.searchActive]])], 512)), [[_directive_focus_anywhere_but_here, { + blur: _ctx.onBlur + }]]); +} +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=template&id=d1e03d32 + +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=script&lang=ts +function QuickAccessvue_type_script_lang_ts_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + +function QuickAccessvue_type_script_lang_ts_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { QuickAccessvue_type_script_lang_ts_ownKeys(Object(source), true).forEach(function (key) { QuickAccessvue_type_script_lang_ts_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { QuickAccessvue_type_script_lang_ts_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function QuickAccessvue_type_script_lang_ts_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + + + + + + + + +function isElementInViewport(element) { + var rect = element.getBoundingClientRect(); + return rect.top >= 0 && rect.left >= 0 && rect.bottom <= window.$(window).height() && rect.right <= window.$(window).width(); +} + +function scrollFirstElementIntoView(element) { + if (element && element.scrollIntoView) { + // make sure search is visible + element.scrollIntoView(); + } +} + +/* harmony default export */ var QuickAccessvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + props: {}, + directives: { + FocusAnywhereButHere: FocusAnywhereButHere, + FocusIf: FocusIf + }, + watch: { + searchActive: function searchActive(newValue) { + var classes = this.$refs.root.parentElement.classList; + classes.toggle('active', newValue); + classes.toggle('expanded', newValue); + } + }, + mounted: function mounted() { + var _this = this; + + // TODO: temporary, remove after angularjs is removed. + // this is currently needed since angularjs will render a div, then vue will render a div + // within it, but the top controls and CSS expect to have certain CSS classes in the root + // element. + // same applies to above watch for searchActive() + this.$refs.root.parentElement.classList.add('quick-access', 'piwikSelector'); + + if (typeof window.initTopControls !== 'undefined' && window.initTopControls) { + window.initTopControls(); + } + + Matomo_Matomo.helper.registerShortcut('f', translate('CoreHome_ShortcutSearch'), function (event) { + if (event.altKey) { + return; + } + + event.preventDefault(); + scrollFirstElementIntoView(_this.$refs.root); + + _this.activateSearch(); + }); + }, + data: function data() { + var hasSegmentSelector = !!document.querySelector('.segmentEditorPanel'); + return { + menuItems: [], + numMenuItems: 0, + searchActive: false, + searchTerm: '', + searchIndex: 0, + menuIndexCounter: -1, + topMenuItems: null, + leftMenuItems: null, + segmentItems: null, + hasSegmentSelector: hasSegmentSelector, + sites: [], + isLoading: false + }; + }, + created: function created() { + this.searchMenu = debounce(this.searchMenu.bind(this)); + }, + computed: { + hasSitesSelector: function hasSitesSelector() { + return !!document.querySelector('.top_controls [piwik-siteselector]'); + }, + quickAccessTitle: function quickAccessTitle() { + var searchAreasTitle = ''; + var searchAreas = [translate('CoreHome_MenuEntries')]; + + if (this.hasSegmentSelector) { + searchAreas.push(translate('CoreHome_Segments')); + } + + if (this.hasSitesSelector) { + searchAreas.push(translate('SitesManager_Sites')); + } + + while (searchAreas.length) { + searchAreasTitle += searchAreas.shift(); + + if (searchAreas.length >= 2) { + searchAreasTitle += ', '; + } else if (searchAreas.length === 1) { + searchAreasTitle += " ".concat(translate('General_And'), " "); + } + } + + return translate('CoreHome_QuickAccessTitle', searchAreasTitle); + } + }, + emits: ['itemSelected', 'blur'], + methods: { + onKeypress: function onKeypress(event) { + var _this2 = this; + + var areSearchResultsDisplayed = this.searchTerm && this.searchActive; + var isTabKey = event.which === 9; + var isEscKey = event.which === 27; + + if (event.which === 38) { + this.highlightPreviousItem(); + event.preventDefault(); + } else if (event.which === 40) { + this.highlightNextItem(); + event.preventDefault(); + } else if (event.which === 13) { + this.clickQuickAccessMenuItem(); + } else if (isTabKey && areSearchResultsDisplayed) { + this.deactivateSearch(); + } else if (isEscKey && areSearchResultsDisplayed) { + this.deactivateSearch(); + } else { + setTimeout(function () { + _this2.searchActive = true; + + _this2.searchMenu(_this2.searchTerm); + }); + } + }, + highlightPreviousItem: function highlightPreviousItem() { + if (this.searchIndex - 1 < 0) { + this.searchIndex = 0; + } else { + this.searchIndex -= 1; + } + + this.makeSureSelectedItemIsInViewport(); + }, + highlightNextItem: function highlightNextItem() { + var numTotal = this.$refs.root.querySelectorAll('li.result').length; + + if (numTotal <= this.searchIndex + 1) { + this.searchIndex = numTotal - 1; + } else { + this.searchIndex += 1; + } + + this.makeSureSelectedItemIsInViewport(); + }, + clickQuickAccessMenuItem: function clickQuickAccessMenuItem() { + var _this3 = this; + + var selectedMenuElement = this.getCurrentlySelectedElement(); + + if (selectedMenuElement) { + setTimeout(function () { + selectedMenuElement.click(); + + _this3.$emit('itemSelected', selectedMenuElement); + }, 20); + } + }, + deactivateSearch: function deactivateSearch() { + this.searchTerm = ''; + this.searchActive = false; + this.$refs.root.querySelector('input').blur(); + }, + makeSureSelectedItemIsInViewport: function makeSureSelectedItemIsInViewport() { + var element = this.getCurrentlySelectedElement(); + + if (element && !isElementInViewport(element)) { + scrollFirstElementIntoView(element); + } + }, + getCurrentlySelectedElement: function getCurrentlySelectedElement() { + var results = this.$refs.root.querySelectorAll('li.result'); + + if (results && results.length && results.item(this.searchIndex)) { + return results.item(this.searchIndex); + } + + return null; + }, + searchMenu: function searchMenu(unprocessedSearchTerm) { + var _this4 = this; + + var searchTerm = unprocessedSearchTerm.toLowerCase(); + var index = -1; + var menuItemsIndex = {}; + var menuItems = []; + + var moveToCategory = function moveToCategory(theSubmenuItem) { + // force rerender of element to prevent weird side effects + var submenuItem = QuickAccessvue_type_script_lang_ts_objectSpread({}, theSubmenuItem); // needed for proper highlighting with arrow keys + + + index += 1; + submenuItem.menuIndex = index; + var category = submenuItem.category; + + if (!(category in menuItemsIndex)) { + menuItems.push({ + title: category, + items: [] + }); + menuItemsIndex[category] = menuItems.length - 1; + } + + var indexOfCategory = menuItemsIndex[category]; + menuItems[indexOfCategory].items.push(submenuItem); + }; + + this.resetSearchIndex(); + + if (this.hasSitesSelector) { + this.isLoading = true; + SiteSelector_SitesStore.searchSite(searchTerm).then(function (sites) { + _this4.sites = sites; + }).finally(function () { + _this4.isLoading = false; + }); + } + + var menuItemMatches = function menuItemMatches(i) { + return i.name.toLowerCase().indexOf(searchTerm) !== -1 || i.category.toLowerCase().indexOf(searchTerm) !== -1; + }; // get the menu items on first search since this component can be mounted + // before the menus are + + + if (this.topMenuItems === null) { + this.topMenuItems = this.getTopMenuItems(); + } + + if (this.leftMenuItems === null) { + this.leftMenuItems = this.getLeftMenuItems(); + } + + if (this.segmentItems === null) { + this.segmentItems = this.getSegmentItems(); + } + + var topMenuItems = this.topMenuItems.filter(menuItemMatches); + var leftMenuItems = this.leftMenuItems.filter(menuItemMatches); + var segmentItems = this.segmentItems.filter(menuItemMatches); + topMenuItems.forEach(moveToCategory); + leftMenuItems.forEach(moveToCategory); + segmentItems.forEach(moveToCategory); + this.numMenuItems = topMenuItems.length + leftMenuItems.length + segmentItems.length; + this.menuItems = menuItems; + }, + resetSearchIndex: function resetSearchIndex() { + this.searchIndex = 0; + this.makeSureSelectedItemIsInViewport(); + }, + selectSite: function selectSite(idSite) { + SiteSelector_SitesStore.loadSite(idSite); + }, + selectMenuItem: function selectMenuItem(index) { + var target = document.querySelector("[quick_access='".concat(index, "']")); + + if (target) { + this.deactivateSearch(); + var href = target.getAttribute('href'); + + if (href && href.length > 10 && target && target.click) { + try { + target.click(); + } catch (e) { + window.$(target).click(); + } + } else { + // not sure why jquery is used here and above, but only sometimes. keeping for BC. + window.$(target).click(); + } + } + }, + onBlur: function onBlur() { + this.searchActive = false; + this.$emit('blur'); + }, + activateSearch: function activateSearch() { + this.searchActive = true; + }, + getTopMenuItems: function getTopMenuItems() { + var _this5 = this; + + var category = translate('CoreHome_Menu'); + var topMenuItems = []; + document.querySelectorAll('nav .sidenav li > a').forEach(function (element) { + var text = element.textContent.trim(); + + if (!text) { + text = element.getAttribute('title').trim(); // possibly a icon, use title instead + } + + if (text) { + topMenuItems.push({ + name: text, + index: _this5.menuIndexCounter += 1, + category: category + }); + element.setAttribute('quick_access', "".concat(_this5.menuIndexCounter)); + } + }); + return topMenuItems; + }, + getLeftMenuItems: function getLeftMenuItems() { + var _this6 = this; + + var leftMenuItems = []; + document.querySelectorAll('#secondNavBar .menuTab').forEach(function (element) { + var category = window.$(element).find('> .item').text().trim(); + + if (category && category.lastIndexOf('\n') !== -1) { + // remove "\n\nMenu" + category = category.substr(0, category.lastIndexOf('\n')).trim(); + } + + window.$(element).find('li .item').each(function (i, subElement) { + var text = subElement.textContent.trim(); + + if (text) { + leftMenuItems.push({ + name: text, + category: category, + index: _this6.menuIndexCounter += 1 + }); + subElement.setAttribute('quick_access', "".concat(_this6.menuIndexCounter)); + } + }); + }); + return leftMenuItems; + }, + getSegmentItems: function getSegmentItems() { + var _this7 = this; + + if (!this.hasSegmentSelector) { + return []; + } + + var category = translate('CoreHome_Segments'); + var segmentItems = []; + document.querySelectorAll('.segmentList [data-idsegment]').forEach(function (element) { + var text = element.querySelector('.segname').textContent.trim(); + + if (text) { + segmentItems.push({ + name: text, + category: category, + index: _this7.menuIndexCounter += 1 + }); + element.setAttribute('quick_access', "".concat(_this7.menuIndexCounter)); + } + }); + return segmentItems; + } + } +})); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=script&lang=ts + +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue + + + +QuickAccessvue_type_script_lang_ts.render = QuickAccessvue_type_template_id_d1e03d32_render + +/* harmony default export */ var QuickAccess = (QuickAccessvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.adapter.ts +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + + +/* harmony default export */ var QuickAccess_adapter = (createAngularJsAdapter({ + component: QuickAccess, + directiveName: 'piwikQuickAccess', + events: { + itemSelected: function itemSelected(event, vm, scope, elem, attrs, controller, $timeout) { + $timeout(); + }, + blur: function blur(event, vm, scope) { + setTimeout(function () { + return scope.$apply(); + }); + } + } +})); // CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=6af4d064 var ActivityIndicatorvue_type_template_id_6af4d064_hoisted_1 = { @@ -5556,6 +6801,11 @@ NotificationGroupvue_type_script_lang_ts.render = NotificationGroupvue_type_temp + + + + + // 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 3ef044bf58..0edd13cf44 100644 --- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js +++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js @@ -1,151 +1,151 @@ -(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["CoreHome"]=t(require("vue")):e["CoreHome"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CoreHome/vue/dist/",n(n.s="fae3")}({2342:function(e,t,n){"use strict"; +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["CoreHome"]=t(require("vue")):e["CoreHome"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CoreHome/vue/dist/",n(n.s="fae3")}({2342:function(e,t,n){"use strict"; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */window.hasBlockedContent=!1},"8bbf":function(t,n){t.exports=e},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"createAngularJsAdapter",(function(){return wt})),n.d(t,"activityIndicatorAdapter",(function(){return yr})),n.d(t,"ActivityIndicator",(function(){return br})),n.d(t,"translate",(function(){return C})),n.d(t,"alertAdapter",(function(){return Dr})),n.d(t,"AjaxHelper",(function(){return Ne})),n.d(t,"setCookie",(function(){return Cr})),n.d(t,"getCookie",(function(){return Sr})),n.d(t,"deleteCookie",(function(){return Pr})),n.d(t,"MatomoUrl",(function(){return ke})),n.d(t,"Matomo",(function(){return D})),n.d(t,"Periods",(function(){return p})),n.d(t,"Day",(function(){return z})),n.d(t,"Week",(function(){return X})),n.d(t,"Month",(function(){return re})),n.d(t,"Year",(function(){return se})),n.d(t,"Range",(function(){return R})),n.d(t,"format",(function(){return S})),n.d(t,"getToday",(function(){return P})),n.d(t,"parseDate",(function(){return E})),n.d(t,"todayIsInRange",(function(){return T})),n.d(t,"Dropdown",(function(){return Be})),n.d(t,"FocusAnywhereButHere",(function(){return Re})),n.d(t,"FocusIf",(function(){return Je})),n.d(t,"MatomoDialog",(function(){return ut})),n.d(t,"ExpandOnClick",(function(){return Xe})),n.d(t,"ExpandOnHover",(function(){return ot})),n.d(t,"EnrichedHeadline",(function(){return Mt})),n.d(t,"ContentBlock",(function(){return qt})),n.d(t,"Comparisons",(function(){return Nn})),n.d(t,"Menudropdown",(function(){return zn})),n.d(t,"DatePicker",(function(){return rr})),n.d(t,"DateRangePicker",(function(){return sr})),n.d(t,"PeriodDatePicker",(function(){return fr})),n.d(t,"Notification",(function(){return Fr})),n.d(t,"NotificationGroup",(function(){return Xr})),n.d(t,"NotificationsStore",(function(){return zr})),"undefined"!==typeof window){var r=window.document.currentScript,a=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);a&&(n.p=a[1])}n("2342");var o=n("8bbf");function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */window.hasBlockedContent=!1},"8bbf":function(t,n){t.exports=e},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"debounce",(function(){return Ur})),n.d(t,"createAngularJsAdapter",(function(){return wt})),n.d(t,"activityIndicatorAdapter",(function(){return ki})),n.d(t,"ActivityIndicator",(function(){return Oi})),n.d(t,"translate",(function(){return D})),n.d(t,"alertAdapter",(function(){return Ei})),n.d(t,"AjaxHelper",(function(){return Ne})),n.d(t,"setCookie",(function(){return Pi})),n.d(t,"getCookie",(function(){return Ti})),n.d(t,"deleteCookie",(function(){return Ii})),n.d(t,"MatomoUrl",(function(){return Oe})),n.d(t,"Matomo",(function(){return j})),n.d(t,"Periods",(function(){return f})),n.d(t,"Day",(function(){return z})),n.d(t,"Week",(function(){return X})),n.d(t,"Month",(function(){return re})),n.d(t,"Year",(function(){return se})),n.d(t,"Range",(function(){return _})),n.d(t,"format",(function(){return C})),n.d(t,"getToday",(function(){return E})),n.d(t,"parseDate",(function(){return P})),n.d(t,"todayIsInRange",(function(){return T})),n.d(t,"Dropdown",(function(){return Me})),n.d(t,"FocusAnywhereButHere",(function(){return _e})),n.d(t,"FocusIf",(function(){return qe})),n.d(t,"MatomoDialog",(function(){return ut})),n.d(t,"ExpandOnClick",(function(){return Xe})),n.d(t,"ExpandOnHover",(function(){return at})),n.d(t,"EnrichedHeadline",(function(){return Vt})),n.d(t,"ContentBlock",(function(){return Gt})),n.d(t,"Comparisons",(function(){return Nn})),n.d(t,"MenuDropdown",(function(){return zn})),n.d(t,"DatePicker",(function(){return rr})),n.d(t,"DateRangePicker",(function(){return sr})),n.d(t,"PeriodDatePicker",(function(){return pr})),n.d(t,"Notification",(function(){return _i})),n.d(t,"NotificationGroup",(function(){return ta})),n.d(t,"NotificationsStore",(function(){return Wi})),n.d(t,"SiteSelector",(function(){return Qr})),n.d(t,"QuickAccess",(function(){return vi})),"undefined"!==typeof window){var r=window.document.currentScript,i=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}n("2342");var a=n("8bbf");function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var u,d=function(){function e(){i(this,e),l(this,"periods",{}),l(this,"periodOrder",[])}return s(e,[{key:"addCustomPeriod",value:function(e,t){if(this.periods[e])throw new Error('The "'.concat(e,'" period already exists! It cannot be overridden.'));this.periods[e]=t,this.periodOrder.push(e)}},{key:"getAllLabels",value:function(){return Array().concat(this.periodOrder)}},{key:"get",value:function(e){var t=this.periods[e];if(!t)throw new Error("Invalid period label: ".concat(e));return t}},{key:"parse",value:function(e,t){return this.get(e).parse(t)}},{key:"isRecognizedPeriod",value:function(e){return!!this.periods[e]}}]),e}(),p=new d;function f(e){return g(e)||v(e)||h(e)||m()}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){if(e){if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}function v(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function g(e){if(Array.isArray(e))return b(e)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r} + */var u,d=function(){function e(){o(this,e),l(this,"periods",{}),l(this,"periodOrder",[])}return s(e,[{key:"addCustomPeriod",value:function(e,t){if(this.periods[e])throw new Error('The "'.concat(e,'" period already exists! It cannot be overridden.'));this.periods[e]=t,this.periodOrder.push(e)}},{key:"getAllLabels",value:function(){return Array().concat(this.periodOrder)}},{key:"get",value:function(e){var t=this.periods[e];if(!t)throw new Error("Invalid period label: ".concat(e));return t}},{key:"parse",value:function(e,t){return this.get(e).parse(t)}},{key:"isRecognizedPeriod",value:function(e){return!!this.periods[e]}}]),e}(),f=new d;function p(e){return g(e)||v(e)||h(e)||m()}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){if(e){if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}function v(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function g(e){if(Array.isArray(e))return b(e)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var y=window,w=y.piwik,k=y.broadcast,O=y.piwikHelper;w.helper=O,w.broadcast=k,w.updateDateInTitle=function(e,t){if($(".top_controls #periodString").length&&(u=u||document.title,0===u.indexOf(w.siteName))){var n=" - ".concat(p.parse(t,e).getPrettyString()," ");document.title="".concat(w.siteName).concat(n).concat(u.substr(w.siteName.length))}},w.hasUserCapability=function(e){return window.angular.isArray(w.userCapabilities)&&-1!==w.userCapabilities.indexOf(e)},w.on=function(e,t){function n(e){t.apply(void 0,f(e.detail))}t.wrapper=n,window.addEventListener(e,n)},w.off=function(e,t){t.wrapper&&window.removeEventListener(e,t.wrapper)},w.postEventNoEmit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=new CustomEvent(e,{detail:n});window.dispatchEvent(a)},w.postEvent=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];w.postEventNoEmit.apply(w,[e].concat(n)),window.angular.element((function(){var t=w.helper.getAngularDependency("$rootScope");t.$oldEmit.apply(t,[e].concat(n))}))};var j=w,D=j; + */var y=window,w=y.piwik,O=y.broadcast,k=y.piwikHelper;w.helper=k,w.broadcast=O,w.updateDateInTitle=function(e,t){if($(".top_controls #periodString").length&&(u=u||document.title,0===u.indexOf(w.siteName))){var n=" - ".concat(f.parse(t,e).getPrettyString()," ");document.title="".concat(w.siteName).concat(n).concat(u.substr(w.siteName.length))}},w.hasUserCapability=function(e){return window.angular.isArray(w.userCapabilities)&&-1!==w.userCapabilities.indexOf(e)},w.on=function(e,t){function n(e){t.apply(void 0,p(e.detail))}t.wrapper=n,window.addEventListener(e,n)},w.off=function(e,t){t.wrapper&&window.removeEventListener(e,t.wrapper)},w.postEventNoEmit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=new CustomEvent(e,{detail:n});window.dispatchEvent(i)},w.postEvent=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];w.postEventNoEmit.apply(w,[e].concat(n)),window.angular.element((function(){var t=w.helper.getAngularDependency("$rootScope");t.$oldEmit.apply(t,[e].concat(n))}))};var S=w,j=S; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function C(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n;return 1===n.length&&n[0]&&n[0]instanceof Array&&(a=n[0]),window._pk_translate(e,a)} +function D(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=n;return 1===n.length&&n[0]&&n[0]instanceof Array&&(i=n[0]),window._pk_translate(e,i)} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function S(e){return $.datepicker.formatDate("yy-mm-dd",e)}function P(){var e=new Date(Date.now());return e.setTime(e.getTime()+60*e.getTimezoneOffset()*1e3),e.setHours(e.getHours()+(window.piwik.timezoneOffset||0)/3600),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0),e}function E(e){if(e instanceof Date)return e;var t=decodeURIComponent(e).trim();if(""===t)throw new Error("Invalid date, empty string.");if("today"===t||"now"===t)return P();if("yesterday"===t||"yesterdaySameTime"===t){var n=P();return n.setDate(n.getDate()-1),n}if(t.match(/last[ -]?week/i)){var r=P();return r.setDate(r.getDate()-7),r}if(t.match(/last[ -]?month/i)){var a=P();return a.setDate(1),a.setMonth(a.getMonth()-1),a}if(t.match(/last[ -]?year/i)){var o=P();return o.setFullYear(o.getFullYear()-1),o}return $.datepicker.parseDate("yy-mm-dd",t)}function T(e){return 2===e.length&&(P()>=e[0]&&P()<=e[1])}function x(e,t){return A(e)||H(e,t)||N(e,t)||I()}function I(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function N(e,t){if(e){if("string"===typeof e)return B(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function H(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(o.push(r.value),t&&o.length===t)break}catch(s){c=!0,a=s}finally{try{i||null==n["return"]||n["return"]()}finally{if(c)throw a}}return o}}function A(e){if(Array.isArray(e))return e}function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function V(e,t,n){return t&&F(e.prototype,t),n&&F(e,n),e}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */function C(e){return $.datepicker.formatDate("yy-mm-dd",e)}function E(){var e=new Date(Date.now());return e.setTime(e.getTime()+60*e.getTimezoneOffset()*1e3),e.setHours(e.getHours()+(window.piwik.timezoneOffset||0)/3600),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0),e}function P(e){if(e instanceof Date)return e;var t=decodeURIComponent(e).trim();if(""===t)throw new Error("Invalid date, empty string.");if("today"===t||"now"===t)return E();if("yesterday"===t||"yesterdaySameTime"===t){var n=E();return n.setDate(n.getDate()-1),n}if(t.match(/last[ -]?week/i)){var r=E();return r.setDate(r.getDate()-7),r}if(t.match(/last[ -]?month/i)){var i=E();return i.setDate(1),i.setMonth(i.getMonth()-1),i}if(t.match(/last[ -]?year/i)){var a=E();return a.setFullYear(a.getFullYear()-1),a}return $.datepicker.parseDate("yy-mm-dd",t)}function T(e){return 2===e.length&&(E()>=e[0]&&E()<=e[1])}function I(e,t){return A(e)||M(e,t)||N(e,t)||x()}function x(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function N(e,t){if(e){if("string"===typeof e)return B(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function M(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,c=!1;try{for(n=n.call(e);!(o=(r=n.next()).done);o=!0)if(a.push(r.value),t&&a.length===t)break}catch(s){c=!0,i=s}finally{try{o||null==n["return"]||n["return"]()}finally{if(c)throw i}}return a}}function A(e){if(Array.isArray(e))return e}function V(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function H(e,t,n){return t&&L(e.prototype,t),n&&L(e,n),e}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var R=function(){function e(t,n,r){M(this,e),L(this,"startDate",void 0),L(this,"endDate",void 0),L(this,"childPeriodType",void 0),this.startDate=t,this.endDate=n,this.childPeriodType=r}return V(e,[{key:"getPrettyString",value:function(){var e=S(this.startDate),t=S(this.endDate);return C("General_DateRangeFromTo",[e,t])}},{key:"getDateRange",value:function(){return[this.startDate,this.endDate]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"getLastNRange",value:function(t,n,r){var a=Math.max(parseInt(n.toString(),10)-1,0);if(Number.isNaN(a))throw new Error("Invalid range strAmount");var o=r?E(r):P(),i=new Date(o.getTime());if("day"===t)i.setDate(i.getDate()-a);else if("week"===t)i.setDate(i.getDate()-7*a);else if("month"===t)i.setDate(1),i.setMonth(i.getMonth()-a);else{if("year"!==t)throw new Error("Unknown period type '".concat(t,"'."));i.setFullYear(i.getFullYear()-a)}if("day"!==t){var c=p.periods[t].parse(i),s=p.periods[t].parse(o),l=c.getDateRange(),u=x(l,1);i=u[0];var d=s.getDateRange(),f=x(d,2);o=f[1]}var m=new Date(1991,7,6);if(i.getTime()-m.getTime()<0)switch(t){case"year":i=new Date(1992,0,1);break;case"month":i=new Date(1991,8,1);break;case"week":i=new Date(1991,8,12);break;case"day":default:i=m;break}return new e(i,o,t)}},{key:"getLastNRangeChild",value:function(t,n,r){var a=n?E(n):P(),o=new Date(a.getTime()),i=new Date(a.getTime());if("day"===t)o.setDate(o.getDate()-r),i.setDate(i.getDate()-r);else if("week"===t)o.setDate(o.getDate()-7*r),i.setDate(i.getDate()-7*r);else if("month"===t)o.setDate(1),o.setMonth(o.getMonth()-r),i.setDate(1),i.setMonth(i.getMonth()-r);else{if("year"!==t)throw new Error("Unknown period type '".concat(t,"'."));o.setFullYear(o.getFullYear()-r),i.setFullYear(i.getFullYear()-r)}if("day"!==t){var c=p.periods[t].parse(o),s=p.periods[t].parse(i),l=c.getDateRange(),u=x(l,1);o=u[0];var d=s.getDateRange(),f=x(d,2);i=f[1]}var m=new Date(1991,7,6);if(o.getTime()-m.getTime()<0)switch(t){case"year":o=new Date(1992,0,1);break;case"month":o=new Date(1991,8,1);break;case"week":o=new Date(1991,8,12);break;case"day":default:o=m;break}return new e(o,i,t)}},{key:"parse",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"day";if(/^previous/.test(t)){var r=e.getLastNRange(n,"2").startDate;return e.getLastNRange(n,t.substring(8),r)}if(/^last/.test(t))return e.getLastNRange(n,t.substring(4));var a=decodeURIComponent(t).split(",");return new e(E(a[0]),E(a[1]),n)}},{key:"getDisplayText",value:function(){return C("General_DateRangeInPeriodList")}}]),e}();function U(){return{getAllLabels:p.getAllLabels.bind(p),isRecognizedPeriod:p.isRecognizedPeriod.bind(p),get:p.get.bind(p),parse:p.parse.bind(p),parseDate:E,format:S,RangePeriod:R,todayIsInRange:T}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function G(e,t,n){return t&&J(e.prototype,t),n&&J(e,n),e}function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */var _=function(){function e(t,n,r){V(this,e),F(this,"startDate",void 0),F(this,"endDate",void 0),F(this,"childPeriodType",void 0),this.startDate=t,this.endDate=n,this.childPeriodType=r}return H(e,[{key:"getPrettyString",value:function(){var e=C(this.startDate),t=C(this.endDate);return D("General_DateRangeFromTo",[e,t])}},{key:"getDateRange",value:function(){return[this.startDate,this.endDate]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"getLastNRange",value:function(t,n,r){var i=Math.max(parseInt(n.toString(),10)-1,0);if(Number.isNaN(i))throw new Error("Invalid range strAmount");var a=r?P(r):E(),o=new Date(a.getTime());if("day"===t)o.setDate(o.getDate()-i);else if("week"===t)o.setDate(o.getDate()-7*i);else if("month"===t)o.setDate(1),o.setMonth(o.getMonth()-i);else{if("year"!==t)throw new Error("Unknown period type '".concat(t,"'."));o.setFullYear(o.getFullYear()-i)}if("day"!==t){var c=f.periods[t].parse(o),s=f.periods[t].parse(a),l=c.getDateRange(),u=I(l,1);o=u[0];var d=s.getDateRange(),p=I(d,2);a=p[1]}var m=new Date(1991,7,6);if(o.getTime()-m.getTime()<0)switch(t){case"year":o=new Date(1992,0,1);break;case"month":o=new Date(1991,8,1);break;case"week":o=new Date(1991,8,12);break;case"day":default:o=m;break}return new e(o,a,t)}},{key:"getLastNRangeChild",value:function(t,n,r){var i=n?P(n):E(),a=new Date(i.getTime()),o=new Date(i.getTime());if("day"===t)a.setDate(a.getDate()-r),o.setDate(o.getDate()-r);else if("week"===t)a.setDate(a.getDate()-7*r),o.setDate(o.getDate()-7*r);else if("month"===t)a.setDate(1),a.setMonth(a.getMonth()-r),o.setDate(1),o.setMonth(o.getMonth()-r);else{if("year"!==t)throw new Error("Unknown period type '".concat(t,"'."));a.setFullYear(a.getFullYear()-r),o.setFullYear(o.getFullYear()-r)}if("day"!==t){var c=f.periods[t].parse(a),s=f.periods[t].parse(o),l=c.getDateRange(),u=I(l,1);a=u[0];var d=s.getDateRange(),p=I(d,2);o=p[1]}var m=new Date(1991,7,6);if(a.getTime()-m.getTime()<0)switch(t){case"year":a=new Date(1992,0,1);break;case"month":a=new Date(1991,8,1);break;case"week":a=new Date(1991,8,12);break;case"day":default:a=m;break}return new e(a,o,t)}},{key:"parse",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"day";if(/^previous/.test(t)){var r=e.getLastNRange(n,"2").startDate;return e.getLastNRange(n,t.substring(8),r)}if(/^last/.test(t))return e.getLastNRange(n,t.substring(4));var i=decodeURIComponent(t).split(",");return new e(P(i[0]),P(i[1]),n)}},{key:"getDisplayText",value:function(){return D("General_DateRangeInPeriodList")}}]),e}();function R(){return{getAllLabels:f.getAllLabels.bind(f),isRecognizedPeriod:f.isRecognizedPeriod.bind(f),get:f.get.bind(f),parse:f.parse.bind(f),parseDate:P,format:C,RangePeriod:_,todayIsInRange:T}}function U(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function q(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function J(e,t,n){return t&&q(e.prototype,t),n&&q(e,n),e}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */p.addCustomPeriod("range",R), + */f.addCustomPeriod("range",_), /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -window.piwik.addCustomPeriod=p.addCustomPeriod.bind(p),window.angular.module("piwikApp.service").factory("piwikPeriods",U);var z=function(){function e(t){_(this,e),q(this,"dateInPeriod",void 0),this.dateInPeriod=t}return G(e,[{key:"getPrettyString",value:function(){return S(this.dateInPeriod)}},{key:"getDateRange",value:function(){return[new Date(this.dateInPeriod.getTime()),new Date(this.dateInPeriod.getTime())]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(E(t))}},{key:"getDisplayText",value:function(){return C("Intl_PeriodDay")}}]),e}();function Q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function W(e,t,n){return t&&Y(e.prototype,t),n&&Y(e,n),e}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} +window.piwik.addCustomPeriod=f.addCustomPeriod.bind(f),window.angular.module("piwikApp.service").factory("piwikPeriods",R);var z=function(){function e(t){U(this,e),G(this,"dateInPeriod",void 0),this.dateInPeriod=t}return J(e,[{key:"getPrettyString",value:function(){return C(this.dateInPeriod)}},{key:"getDateRange",value:function(){return[new Date(this.dateInPeriod.getTime()),new Date(this.dateInPeriod.getTime())]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(P(t))}},{key:"getDisplayText",value:function(){return D("Intl_PeriodDay")}}]),e}();function Q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function K(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function W(e,t,n){return t&&K(e.prototype,t),n&&K(e,n),e}function Y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */p.addCustomPeriod("day",z);var X=function(){function e(t){Q(this,e),K(this,"dateInPeriod",void 0),this.dateInPeriod=t}return W(e,[{key:"getPrettyString",value:function(){var e=this.getDateRange(),t=S(e[0]),n=S(e[1]);return C("General_DateRangeFromTo",[t,n])}},{key:"getDateRange",value:function(){var e=(this.dateInPeriod.getDay()+6)%7,t=new Date(this.dateInPeriod.getTime());t.setDate(this.dateInPeriod.getDate()-e);var n=new Date(t.getTime());return n.setDate(t.getDate()+6),[t,n]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(E(t))}},{key:"getDisplayText",value:function(){return C("Intl_PeriodWeek")}}]),e}();function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function te(e,t,n){return t&&ee(e.prototype,t),n&&ee(e,n),e}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */f.addCustomPeriod("day",z);var X=function(){function e(t){Q(this,e),Y(this,"dateInPeriod",void 0),this.dateInPeriod=t}return W(e,[{key:"getPrettyString",value:function(){var e=this.getDateRange(),t=C(e[0]),n=C(e[1]);return D("General_DateRangeFromTo",[t,n])}},{key:"getDateRange",value:function(){var e=(this.dateInPeriod.getDay()+6)%7,t=new Date(this.dateInPeriod.getTime());t.setDate(this.dateInPeriod.getDate()-e);var n=new Date(t.getTime());return n.setDate(t.getDate()+6),[t,n]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(P(t))}},{key:"getDisplayText",value:function(){return D("Intl_PeriodWeek")}}]),e}();function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function te(e,t,n){return t&&ee(e.prototype,t),n&&ee(e,n),e}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */p.addCustomPeriod("week",X);var re=function(){function e(t){Z(this,e),ne(this,"dateInPeriod",void 0),this.dateInPeriod=t}return te(e,[{key:"getPrettyString",value:function(){var e=C("Intl_Month_Long_StandAlone_".concat(this.dateInPeriod.getMonth()+1));return"".concat(e," ").concat(this.dateInPeriod.getFullYear())}},{key:"getDateRange",value:function(){var e=new Date(this.dateInPeriod.getTime());e.setDate(1);var t=new Date(this.dateInPeriod.getTime());return t.setDate(1),t.setMonth(t.getMonth()+1),t.setDate(0),[e,t]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(E(t))}},{key:"getDisplayText",value:function(){return C("Intl_PeriodMonth")}}]),e}();function ae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function oe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ie(e,t,n){return t&&oe(e.prototype,t),n&&oe(e,n),e}function ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */f.addCustomPeriod("week",X);var re=function(){function e(t){Z(this,e),ne(this,"dateInPeriod",void 0),this.dateInPeriod=t}return te(e,[{key:"getPrettyString",value:function(){var e=D("Intl_Month_Long_StandAlone_".concat(this.dateInPeriod.getMonth()+1));return"".concat(e," ").concat(this.dateInPeriod.getFullYear())}},{key:"getDateRange",value:function(){var e=new Date(this.dateInPeriod.getTime());e.setDate(1);var t=new Date(this.dateInPeriod.getTime());return t.setDate(1),t.setMonth(t.getMonth()+1),t.setDate(0),[e,t]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(P(t))}},{key:"getDisplayText",value:function(){return D("Intl_PeriodMonth")}}]),e}();function ie(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function oe(e,t,n){return t&&ae(e.prototype,t),n&&ae(e,n),e}function ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */p.addCustomPeriod("month",re);var se=function(){function e(t){ae(this,e),ce(this,"dateInPeriod",void 0),this.dateInPeriod=t}return ie(e,[{key:"getPrettyString",value:function(){return this.dateInPeriod.getFullYear().toString()}},{key:"getDateRange",value:function(){var e=new Date(this.dateInPeriod.getTime());e.setMonth(0),e.setDate(1);var t=new Date(this.dateInPeriod.getTime());return t.setMonth(12),t.setDate(0),[e,t]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(E(t))}},{key:"getDisplayText",value:function(){return C("Intl_PeriodYear")}}]),e}(); + */f.addCustomPeriod("month",re);var se=function(){function e(t){ie(this,e),ce(this,"dateInPeriod",void 0),this.dateInPeriod=t}return oe(e,[{key:"getPrettyString",value:function(){return this.dateInPeriod.getFullYear().toString()}},{key:"getDateRange",value:function(){var e=new Date(this.dateInPeriod.getTime());e.setMonth(0),e.setDate(1);var t=new Date(this.dateInPeriod.getTime());return t.setMonth(12),t.setDate(0),[e,t]}},{key:"containsToday",value:function(){return T(this.getDateRange())}}],[{key:"parse",value:function(t){return new e(P(t))}},{key:"getDisplayText",value:function(){return D("Intl_PeriodYear")}}]),e}(); /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?le(Object(n),!0).forEach((function(t){me(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fe(e,t,n){return t&&pe(e.prototype,t),n&&pe(e,n),e}function me(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} +function le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?le(Object(n),!0).forEach((function(t){me(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function pe(e,t,n){return t&&fe(e.prototype,t),n&&fe(e,n),e}function me(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */p.addCustomPeriod("year",se);var he=window,ve=he.piwik,ge=he.broadcast;function be(e,t){try{return p.parse(e,t),!0}catch(n){return!1}}var ye=function(){function e(){var t=this;de(this,e),me(this,"urlQuery",Object(o["ref"])("")),me(this,"hashQuery",Object(o["ref"])("")),me(this,"urlParsed",Object(o["computed"])((function(){return Object(o["readonly"])(ge.getValuesFromUrl("?".concat(t.urlQuery.value),!0))}))),me(this,"hashParsed",Object(o["computed"])((function(){return Object(o["readonly"])(ge.getValuesFromUrl("?".concat(t.hashQuery.value),!0))}))),me(this,"parsed",Object(o["computed"])((function(){return Object(o["readonly"])(ue(ue({},t.urlParsed.value),t.hashParsed.value))}))),this.setUrlQuery(window.location.search),this.setHashQuery(window.location.hash),D.on("$locationChangeSuccess",(function(e){var n=new URL(e);t.setUrlQuery(n.search.replace(/^\?/,"")),t.setHashQuery(n.hash.replace(/^#/,""))})),this.updatePeriodParamsFromUrl()}return fe(e,[{key:"updateHash",value:function(e){var t="string"!==typeof e?this.stringify(e):e,n=D.helper.getAngularDependency("$location");n.search(t)}},{key:"getSearchParam",value:function(e){var t=window.location.href.split("#"),n=new RegExp("".concat(e,"(\\[]|=)"));if(t&&t[1]&&n.test(decodeURIComponent(t[1]))){var r=window.broadcast.getValueFromHash(e,window.location.href);if(r||"date"!==e&&"period"!==e&&"idSite"!==e)return r}return window.broadcast.getValueFromUrl(e,window.location.search)}},{key:"stringify",value:function(e){return $.param(e).replace(/%5B%5D/g,"[]")}},{key:"updatePeriodParamsFromUrl",value:function(){var e=this.getSearchParam("date"),t=this.getSearchParam("period");if(be(t,e)&&(ve.period!==t||ve.currentDateString!==e)){ve.period=t;var n=p.parse(t,e).getDateRange();ve.startDateString=S(n[0]),ve.endDateString=S(n[1]),ve.updateDateInTitle(e,t),"range"===ve.period&&(e="".concat(ve.startDateString,",").concat(ve.endDateString)),ve.currentDateString=e}}},{key:"setUrlQuery",value:function(e){this.urlQuery.value=e.replace(/^\?/,"")}},{key:"setHashQuery",value:function(e){this.hashQuery.value=e.replace(/^[#/?]+/,"")}}]),e}(),we=new ye,ke=we; + */f.addCustomPeriod("year",se);var he=window,ve=he.piwik,ge=he.broadcast;function be(e,t){try{return f.parse(e,t),!0}catch(n){return!1}}var ye=function(){function e(){var t=this;de(this,e),me(this,"urlQuery",Object(a["ref"])("")),me(this,"hashQuery",Object(a["ref"])("")),me(this,"urlParsed",Object(a["computed"])((function(){return Object(a["readonly"])(ge.getValuesFromUrl("?".concat(t.urlQuery.value),!0))}))),me(this,"hashParsed",Object(a["computed"])((function(){return Object(a["readonly"])(ge.getValuesFromUrl("?".concat(t.hashQuery.value),!0))}))),me(this,"parsed",Object(a["computed"])((function(){return Object(a["readonly"])(ue(ue({},t.urlParsed.value),t.hashParsed.value))}))),this.setUrlQuery(window.location.search),this.setHashQuery(window.location.hash),j.on("$locationChangeSuccess",(function(e){var n=new URL(e);t.setUrlQuery(n.search.replace(/^\?/,"")),t.setHashQuery(n.hash.replace(/^#/,""))})),this.updatePeriodParamsFromUrl()}return pe(e,[{key:"updateHash",value:function(e){var t="string"!==typeof e?this.stringify(e):e,n=j.helper.getAngularDependency("$location");n.search(t)}},{key:"updateUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="string"!==typeof e?this.stringify(e):e,r="string"!==typeof t?this.stringify(t):t,i="?".concat(n);r.length&&(i="".concat(i,"#?").concat(r)),window.broadcast.propagateNewPage("",void 0,void 0,void 0,i)}},{key:"getSearchParam",value:function(e){var t=window.location.href.split("#"),n=new RegExp("".concat(e,"(\\[]|=)"));if(t&&t[1]&&n.test(decodeURIComponent(t[1]))){var r=window.broadcast.getValueFromHash(e,window.location.href);if(r||"date"!==e&&"period"!==e&&"idSite"!==e)return r}return window.broadcast.getValueFromUrl(e,window.location.search)}},{key:"stringify",value:function(e){return $.param(e).replace(/%5B%5D/g,"[]")}},{key:"updatePeriodParamsFromUrl",value:function(){var e=this.getSearchParam("date"),t=this.getSearchParam("period");if(be(t,e)&&(ve.period!==t||ve.currentDateString!==e)){ve.period=t;var n=f.parse(t,e).getDateRange();ve.startDateString=C(n[0]),ve.endDateString=C(n[1]),ve.updateDateInTitle(e,t),"range"===ve.period&&(e="".concat(ve.startDateString,",").concat(ve.endDateString)),ve.currentDateString=e}}},{key:"setUrlQuery",value:function(e){this.urlQuery.value=e.replace(/^\?/,"")}},{key:"setHashQuery",value:function(e){this.hashQuery.value=e.replace(/^[#/?]+/,"")}}]),e}(),we=new ye,Oe=we; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function Oe(){var e={getSearchParam:ke.getSearchParam.bind(ke)};return e} +function ke(){var e={getSearchParam:Oe.getSearchParam.bind(Oe)};return e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function je(){return D}function De(e,t){t.$oldEmit=t.$emit,t.$emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return D.postEvent.apply(D,[e].concat(n)),null},t.$oldBroadcast=t.$broadcast,t.$broadcast=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];return D.postEventNoEmit.apply(D,[e].concat(r)),t.$oldBroadcast.apply(t,[e].concat(r))},t.$on("$locationChangeSuccess",e.updatePeriodParamsFromUrl)}function Ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Se(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(n),!0).forEach((function(t){xe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ce(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Te(e,t,n){return t&&Ee(e.prototype,t),n&&Ee(e,n),e}function xe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} +function Se(){return j}function je(e,t){t.$oldEmit=t.$emit,t.$emit=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return j.postEvent.apply(j,[e].concat(n)),null},t.$oldBroadcast=t.$broadcast,t.$broadcast=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return j.postEventNoEmit.apply(j,[e].concat(r)),t.$oldBroadcast.apply(t,[e].concat(r))},t.$on("$locationChangeSuccess",e.updatePeriodParamsFromUrl)}function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?De(Object(n),!0).forEach((function(t){Ie(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Te(e,t,n){return t&&Pe(e.prototype,t),n&&Pe(e,n),e}function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Ie(e,t){if("abort"!==t)if("undefined"!==typeof Piwik_Popover){var n=$("#loadingError");Piwik_Popover.isOpen()&&e&&500===e.status?e&&500===e.status&&$(document.body).html(piwikHelper.escape(e.responseText)):n.show()}else console.log("Request failed: ".concat(e.responseText))}ve.updatePeriodParamsFromUrl=we.updatePeriodParamsFromUrl.bind(we),Oe.$inject=[],angular.module("piwikApp.service").service("piwikUrl",Oe),window.angular.module("piwikApp.service").service("piwik",je),De.$inject=["piwik","$rootScope"],window.angular.module("piwikApp.service").run(De),window.globalAjaxQueue=[],window.globalAjaxQueue.active=0,window.globalAjaxQueue.clean=function(){for(var e=this.length;e>=0;e-=1)this[e]&&4!==this[e].readyState||this.splice(e,1)},window.globalAjaxQueue.push=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.active+=n.length,this.clean(),(e=Array.prototype.push).call.apply(e,[this].concat(n))},window.globalAjaxQueue.abort=function(){this.forEach((function(e){return e&&e.abort&&e.abort()})),this.splice(0,this.length),this.active=0};var Ne=function(){function e(){Pe(this,e),xe(this,"format","json"),xe(this,"timeout",null),xe(this,"callback",null),xe(this,"useRegularCallbackInCaseOfError",!1),xe(this,"errorCallback",void 0),xe(this,"withToken",!1),xe(this,"completeCallback",void 0),xe(this,"getParams",{}),xe(this,"getUrl","?"),xe(this,"postParams",{}),xe(this,"loadingElement",null),xe(this,"errorElement","#ajaxError"),xe(this,"requestHandle",null),xe(this,"defaultParams",["idSite","period","date","segment"]),this.errorCallback=Ie}return Te(e,[{key:"addParams",value:function(e,t){var n=this,r="string"===typeof e?window.broadcast.getValuesFromUrl(e):e,a=["compareSegments","comparePeriods","compareDates"];Object.keys(r).forEach((function(e){var o=r[e];(-1===a.indexOf(e)||o)&&("get"===t.toLowerCase()?n.getParams[e]=o:"post"===t.toLowerCase()&&(n.postParams[e]=o))}))}},{key:"withTokenInUrl",value:function(){this.withToken=!0}},{key:"setUrl",value:function(e){this.addParams(broadcast.getValuesFromUrl(e),"GET")}},{key:"setBulkRequests",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.map((function(e){return"string"===typeof e?e:$.param(e)}));this.addParams({module:"API",method:"API.getBulkRequest",urls:r,format:"json"},"post")}},{key:"setTimeout",value:function(e){this.timeout=e}},{key:"setCallback",value:function(e){this.callback=e}},{key:"useCallbackInCaseOfError",value:function(){this.useRegularCallbackInCaseOfError=!0}},{key:"redirectOnSuccess",value:function(e){this.setCallback((function(){piwikHelper.redirect(e)}))}},{key:"setErrorCallback",value:function(e){this.errorCallback=e}},{key:"setCompleteCallback",value:function(e){this.completeCallback=e}},{key:"setFormat",value:function(e){this.format=e}},{key:"setLoadingElement",value:function(e){this.loadingElement=e||"#ajaxLoadingDiv"}},{key:"setErrorElement",value:function(e){e&&(this.errorElement=e)}},{key:"useGETDefaultParameter",value:function(e){if(e&&this.defaultParams)for(var t=0;t<this.defaultParams.length;t+=1)if(this.defaultParams[t]===e)return!0;return!1}},{key:"removeDefaultParameter",value:function(e){if(e&&this.defaultParams)for(var t=0;t<this.defaultParams.length;t+=1)this.defaultParams[t]===e&&this.defaultParams.splice(t,1)}},{key:"send",value:function(){var e=this;return $(this.errorElement).length&&$(this.errorElement).hide(),this.loadingElement&&$(this.loadingElement).fadeIn(),this.requestHandle=this.buildAjaxCall(),window.globalAjaxQueue.push(this.requestHandle),new Promise((function(t,n){e.requestHandle.then(t).fail((function(t){"abort"!==t.statusText&&(console.log("Warning: the ".concat($.param(e.getParams)," request failed!")),n(t))}))}))}},{key:"abort",value:function(){this.requestHandle&&"function"===typeof this.requestHandle.abort&&(this.requestHandle.abort(),this.requestHandle=null)}},{key:"buildAjaxCall",value:function(){var e=this,t=this,n=this.mixinDefaultGetParams(this.getParams),r=this.getUrl;"?"!==r[r.length-1]&&(r+="&"),n.segment&&(r="".concat(r,"segment=").concat(n.segment,"&"),delete n.segment),n.date&&(r="".concat(r,"date=").concat(decodeURIComponent(n.date.toString()),"&"),delete n.date),r+=$.param(n);var a={type:"POST",async:!0,url:r,dataType:this.format||"json",complete:this.completeCallback,error:function(){if(window.globalAjaxQueue.active-=1,t.errorCallback){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.errorCallback.apply(this,n)}},success:function(t,n,r){if(e.loadingElement&&$(e.loadingElement).hide(),t&&"error"===t.result&&!e.useRegularCallbackInCaseOfError){var a=null,o="toast";if($(e.errorElement).length&&t.message&&($(e.errorElement).show(),a=e.errorElement,o=null),t.message){var i=window["require"]("piwik/UI"),c=new i.Notification;c.show(t.message,{placeat:a,context:"error",type:o,id:"ajaxHelper"}),c.scrollToNotification()}}else e.callback&&e.callback(t,n,r);window.globalAjaxQueue.active-=1,D.ajaxRequestFinished&&D.ajaxRequestFinished()},data:this.mixinDefaultPostParams(this.postParams),timeout:null!==this.timeout?this.timeout:void 0};return $.ajax(a)}},{key:"isRequestToApiMethod",value:function(){return this.getParams&&"API"===this.getParams.module&&this.getParams.method||this.postParams&&"API"===this.postParams.module&&this.postParams.method}},{key:"isWidgetizedRequest",value:function(){return"Widgetize"===broadcast.getValueFromUrl("module")}},{key:"getDefaultPostParams",value:function(){return this.withToken||this.isRequestToApiMethod()||D.shouldPropagateTokenAuth?{token_auth:D.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}},{key:"mixinDefaultPostParams",value:function(e){var t=this.getDefaultPostParams(),n=Se(Se({},t),e);return n}},{key:"mixinDefaultGetParams",value:function(e){var t=this,n=ke.getSearchParam("segment"),r={idSite:D.idSite?D.idSite.toString():broadcast.getValueFromUrl("idSite"),period:D.period||broadcast.getValueFromUrl("period"),segment:n},a=e;return a.token_auth&&(a.token_auth=null,delete a.token_auth),Object.keys(r).forEach((function(e){t.useGETDefaultParameter(e)&&!a[e]&&!t.postParams[e]&&r[e]&&(a[e]=r[e])})),!this.useGETDefaultParameter("date")||a.date||this.postParams.date||(a.date=D.currentDateString),a}}],[{key:"fetch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new e;return n.withTokenInUrl&&r.withTokenInUrl(),r.setFormat("json"),r.addParams(Se({module:"API",format:"json"},t),"get"),n.postParams&&r.addParams(n.postParams,"post"),r.send()}}]),e}();function $e(){return globalAjaxQueue}window.ajaxHelper=Ne,angular.module("piwikApp.service").service("globalAjaxQueue",$e); + */function xe(e,t){if("abort"!==t)if("undefined"!==typeof Piwik_Popover){var n=$("#loadingError");Piwik_Popover.isOpen()&&e&&500===e.status?e&&500===e.status&&$(document.body).html(piwikHelper.escape(e.responseText)):n.show()}else console.log("Request failed: ".concat(e.responseText))}ve.updatePeriodParamsFromUrl=we.updatePeriodParamsFromUrl.bind(we),ke.$inject=[],angular.module("piwikApp.service").service("piwikUrl",ke),window.angular.module("piwikApp.service").service("piwik",Se),je.$inject=["piwik","$rootScope"],window.angular.module("piwikApp.service").run(je),window.globalAjaxQueue=[],window.globalAjaxQueue.active=0,window.globalAjaxQueue.clean=function(){for(var e=this.length;e>=0;e-=1)this[e]&&4!==this[e].readyState||this.splice(e,1)},window.globalAjaxQueue.push=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.active+=n.length,this.clean(),(e=Array.prototype.push).call.apply(e,[this].concat(n))},window.globalAjaxQueue.abort=function(){this.forEach((function(e){return e&&e.abort&&e.abort()})),this.splice(0,this.length),this.active=0};var Ne=function(){function e(){Ee(this,e),Ie(this,"format","json"),Ie(this,"timeout",null),Ie(this,"callback",null),Ie(this,"useRegularCallbackInCaseOfError",!1),Ie(this,"errorCallback",void 0),Ie(this,"withToken",!1),Ie(this,"completeCallback",void 0),Ie(this,"getParams",{}),Ie(this,"getUrl","?"),Ie(this,"postParams",{}),Ie(this,"loadingElement",null),Ie(this,"errorElement","#ajaxError"),Ie(this,"requestHandle",null),Ie(this,"defaultParams",["idSite","period","date","segment"]),this.errorCallback=xe}return Te(e,[{key:"addParams",value:function(e,t){var n=this,r="string"===typeof e?window.broadcast.getValuesFromUrl(e):e,i=["compareSegments","comparePeriods","compareDates"];Object.keys(r).forEach((function(e){var a=r[e];(-1===i.indexOf(e)||a)&&("get"===t.toLowerCase()?n.getParams[e]=a:"post"===t.toLowerCase()&&(n.postParams[e]=a))}))}},{key:"withTokenInUrl",value:function(){this.withToken=!0}},{key:"setUrl",value:function(e){this.addParams(broadcast.getValuesFromUrl(e),"GET")}},{key:"setBulkRequests",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.map((function(e){return"string"===typeof e?e:$.param(e)}));this.addParams({module:"API",method:"API.getBulkRequest",urls:r,format:"json"},"post")}},{key:"setTimeout",value:function(e){this.timeout=e}},{key:"setCallback",value:function(e){this.callback=e}},{key:"useCallbackInCaseOfError",value:function(){this.useRegularCallbackInCaseOfError=!0}},{key:"redirectOnSuccess",value:function(e){this.setCallback((function(){piwikHelper.redirect(e)}))}},{key:"setErrorCallback",value:function(e){this.errorCallback=e}},{key:"setCompleteCallback",value:function(e){this.completeCallback=e}},{key:"setFormat",value:function(e){this.format=e}},{key:"setLoadingElement",value:function(e){this.loadingElement=e||"#ajaxLoadingDiv"}},{key:"setErrorElement",value:function(e){e&&(this.errorElement=e)}},{key:"useGETDefaultParameter",value:function(e){if(e&&this.defaultParams)for(var t=0;t<this.defaultParams.length;t+=1)if(this.defaultParams[t]===e)return!0;return!1}},{key:"removeDefaultParameter",value:function(e){if(e&&this.defaultParams)for(var t=0;t<this.defaultParams.length;t+=1)this.defaultParams[t]===e&&this.defaultParams.splice(t,1)}},{key:"send",value:function(){var e=this;$(this.errorElement).length&&$(this.errorElement).hide(),this.loadingElement&&$(this.loadingElement).fadeIn(),this.requestHandle=this.buildAjaxCall(),window.globalAjaxQueue.push(this.requestHandle);var t=new Promise((function(t,n){e.requestHandle.then(t).fail((function(t){"abort"!==t.statusText&&(console.log("Warning: the ".concat($.param(e.getParams)," request failed!")),n(t))}))}));return t.abort=function(){e.requestHandle&&e.requestHandle.abort()},t}},{key:"abort",value:function(){this.requestHandle&&"function"===typeof this.requestHandle.abort&&(this.requestHandle.abort(),this.requestHandle=null)}},{key:"buildAjaxCall",value:function(){var e=this,t=this,n=this.mixinDefaultGetParams(this.getParams),r=this.getUrl;"?"!==r[r.length-1]&&(r+="&"),n.segment&&(r="".concat(r,"segment=").concat(n.segment,"&"),delete n.segment),n.date&&(r="".concat(r,"date=").concat(decodeURIComponent(n.date.toString()),"&"),delete n.date),r+=$.param(n);var i={type:"POST",async:!0,url:r,dataType:this.format||"json",complete:this.completeCallback,error:function(){if(window.globalAjaxQueue.active-=1,t.errorCallback){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.errorCallback.apply(this,n)}},success:function(t,n,r){if(e.loadingElement&&$(e.loadingElement).hide(),t&&"error"===t.result&&!e.useRegularCallbackInCaseOfError){var i=null,a="toast";if($(e.errorElement).length&&t.message&&($(e.errorElement).show(),i=e.errorElement,a=null),t.message){var o=window["require"]("piwik/UI"),c=new o.Notification;c.show(t.message,{placeat:i,context:"error",type:a,id:"ajaxHelper"}),c.scrollToNotification()}}else e.callback&&e.callback(t,n,r);window.globalAjaxQueue.active-=1,j.ajaxRequestFinished&&j.ajaxRequestFinished()},data:this.mixinDefaultPostParams(this.postParams),timeout:null!==this.timeout?this.timeout:void 0};return $.ajax(i)}},{key:"isRequestToApiMethod",value:function(){return this.getParams&&"API"===this.getParams.module&&this.getParams.method||this.postParams&&"API"===this.postParams.module&&this.postParams.method}},{key:"isWidgetizedRequest",value:function(){return"Widgetize"===broadcast.getValueFromUrl("module")}},{key:"getDefaultPostParams",value:function(){return this.withToken||this.isRequestToApiMethod()||j.shouldPropagateTokenAuth?{token_auth:j.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}},{key:"mixinDefaultPostParams",value:function(e){var t=this.getDefaultPostParams(),n=Ce(Ce({},t),e);return n}},{key:"mixinDefaultGetParams",value:function(e){var t=this,n=Oe.getSearchParam("segment"),r={idSite:j.idSite?j.idSite.toString():broadcast.getValueFromUrl("idSite"),period:j.period||broadcast.getValueFromUrl("period"),segment:n},i=e;return i.token_auth&&(i.token_auth=null,delete i.token_auth),Object.keys(r).forEach((function(e){t.useGETDefaultParameter(e)&&!i[e]&&!t.postParams[e]&&r[e]&&(i[e]=r[e])})),!this.useGETDefaultParameter("date")||i.date||this.postParams.date||(i.date=j.currentDateString),i}}],[{key:"fetch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new e;return n.withTokenInUrl&&r.withTokenInUrl(),r.setFormat("json"),r.addParams(Ce({module:"API",format:"json"},t),"get"),n.postParams&&r.addParams(n.postParams,"post"),r.send()}}]),e}();function Be(){return globalAjaxQueue}window.ajaxHelper=Ne,angular.module("piwikApp.service").service("globalAjaxQueue",Be); /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var Be={mounted:function(e,t){var n={};$(e).addClass("matomo-dropdown-menu");var r=!!$(e).parent().closest(".dropdown-content").length;r&&(n={hover:!0},$(e).addClass("submenu"),$(t.value.activates).addClass("submenu-dropdown-content"),$(e).parents(".dropdown-content").addClass("submenu-container")),$(e).dropdown(n)}}; + */var Me={mounted:function(e,t){var n={};$(e).addClass("matomo-dropdown-menu");var r=!!$(e).parent().closest(".dropdown-content").length;r&&(n={hover:!0},$(e).addClass("submenu"),$(t.value.activates).addClass("submenu-dropdown-content"),$(e).parents(".dropdown-content").addClass("submenu-container")),$(e).dropdown(n)}}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function He(e){return{restrict:"A",link:function(t,n,r){var a={instance:null,value:{activates:$("#".concat(r.activates))[0]},oldValue:null,modifiers:{},dir:{}};e((function(){Be.mounted(n[0],a)}))}}} + */function Ae(e){return{restrict:"A",link:function(t,n,r){var i={instance:null,value:{activates:$("#".concat(r.activates))[0]},oldValue:null,modifiers:{},dir:{}};e((function(){Me.mounted(n[0],i)}))}}} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function Ae(e,t,n){var r=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,r||e.contains(n.target)||t.value&&t.value.blur()}function Me(e,t){t.value.hasScrolled=!0}function Fe(e,t){t.value.isMouseDown=!0,t.value.hasScrolled=!1}function Ve(e,t,n){27===n.which&&setTimeout((function(){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.blur&&t.value.blur()}),0)}He.$inject=["$timeout"],angular.module("piwikApp").directive("piwikDropdownMenu",He);var Le=document.documentElement,Re={mounted:function(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onEscapeHandler=Ve.bind(null,e,t),t.value.onMouseDown=Fe.bind(null,e,t),t.value.onClickOutsideElement=Ae.bind(null,e,t),t.value.onScroll=Me.bind(null,e,t),Le.addEventListener("keyup",t.value.onEscapeHandler),Le.addEventListener("mousedown",t.value.onMouseDown),Le.addEventListener("mouseup",t.value.onClickOutsideElement),Le.addEventListener("scroll",t.value.onScroll)},unmounted:function(e,t){Le.removeEventListener("keyup",t.value.onEscapeHandler),Le.removeEventListener("mousedown",t.value.onMouseDown),Le.removeEventListener("mouseup",t.value.onClickOutsideElement),Le.removeEventListener("scroll",t.value.onScroll)}}; +function $e(e,t,n){var r=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,r||e.contains(n.target)||t.value&&t.value.blur()}function Ve(e,t){t.value.hasScrolled=!0}function Le(e,t){t.value.isMouseDown=!0,t.value.hasScrolled=!1}function He(e,t,n){27===n.which&&setTimeout((function(){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.blur&&t.value.blur()}),0)}Ae.$inject=["$timeout"],angular.module("piwikApp").directive("piwikDropdownMenu",Ae);var Fe=document.documentElement,_e={mounted:function(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onEscapeHandler=He.bind(null,e,t),t.value.onMouseDown=Le.bind(null,e,t),t.value.onClickOutsideElement=$e.bind(null,e,t),t.value.onScroll=Ve.bind(null,e,t),Fe.addEventListener("keyup",t.value.onEscapeHandler),Fe.addEventListener("mousedown",t.value.onMouseDown),Fe.addEventListener("mouseup",t.value.onClickOutsideElement),Fe.addEventListener("scroll",t.value.onScroll)},unmounted:function(e,t){Fe.removeEventListener("keyup",t.value.onEscapeHandler),Fe.removeEventListener("mousedown",t.value.onMouseDown),Fe.removeEventListener("mouseup",t.value.onClickOutsideElement),Fe.removeEventListener("scroll",t.value.onScroll)}}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function Ue(){return{restrict:"A",link:function(e,t,n){var r={instance:null,value:{blur:function(){setTimeout((function(){e.$apply(n.piwikFocusAnywhereButHere)}),0)}},oldValue:null,modifiers:{},dir:{}};Re.mounted(t[0],r),t.on("$destroy",(function(){return Re.unmounted(t[0],r)}))}}} +function Re(){return{restrict:"A",link:function(e,t,n){var r={instance:null,value:{blur:function(){setTimeout((function(){e.$apply(n.piwikFocusAnywhereButHere)}),0)}},oldValue:null,modifiers:{},dir:{}};_e.mounted(t[0],r),t.on("$destroy",(function(){return _e.unmounted(t[0],r)}))}}} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function _e(e,t){t.arg&&setTimeout((function(){e.focus(),t.value.afterFocus&&t.value.afterFocus()}),5)}Ue.$inject=[],angular.module("piwikApp.directive").directive("piwikFocusAnywhereButHere",Ue);var Je={mounted:function(e,t){_e(e,t)},updated:function(e,t){_e(e,t)}}; +function Ue(e,t){t.arg&&setTimeout((function(){e.focus(),t.value.afterFocus&&t.value.afterFocus()}),5)}Re.$inject=[],angular.module("piwikApp.directive").directive("piwikFocusAnywhereButHere",Re);var qe={mounted:function(e,t){Ue(e,t)},updated:function(e,t){Ue(e,t)}}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Ge(){return{restrict:"A",link:function(e,t,n){e.$watch(n.piwikFocusIf,(function(n){var r={instance:null,arg:n?"1":void 0,value:{afterFocus:function(){return e.$apply()}},oldValue:null,modifiers:{},dir:{}};Je.updated(t[0],r)}))}}} + */function Je(){return{restrict:"A",link:function(e,t,n){e.$watch(n.piwikFocusIf,(function(n){var r={instance:null,arg:n?"1":void 0,value:{afterFocus:function(){return e.$apply()}},oldValue:null,modifiers:{},dir:{}};qe.updated(t[0],r)}))}}} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function qe(e){e.classList.toggle("expanded");var t=e.querySelector(".dropdown.positionInViewport");t&&D.helper.setMarginLeftToBeInViewport(t)}function ze(e,t,n){var r=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,r||e.contains(n.target)||e.classList.remove("expanded")}function Qe(e){e.value.hasScrolled=!0}function Ye(e){e.value.isMouseDown=!0,e.value.hasScrolled=!1}function We(e,t,n){27===n.which&&(t.value.isMouseDown=!1,t.value.hasScrolled=!1,e.classList.remove("expanded"))}angular.module("piwikApp.directive").directive("piwikFocusIf",Ge);var Ke=document.documentElement,Xe={mounted:function(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onExpand=qe.bind(null,e),t.value.onEscapeHandler=We.bind(null,e,t),t.value.onMouseDown=Ye.bind(null,t),t.value.onClickOutsideElement=ze.bind(null,e,t),t.value.onScroll=Qe.bind(null,t),t.value.expander.addEventListener("click",t.value.onExpand),Ke.addEventListener("keyup",t.value.onEscapeHandler),Ke.addEventListener("mousedown",t.value.onMouseDown),Ke.addEventListener("mouseup",t.value.onClickOutsideElement),Ke.addEventListener("scroll",t.value.onScroll)},unmounted:function(e,t){t.value.expander.removeEventListener("click",t.value.onExpand),Ke.removeEventListener("keyup",t.value.onEscapeHandler),Ke.removeEventListener("mousedown",t.value.onMouseDown),Ke.removeEventListener("mouseup",t.value.onClickOutsideElement),Ke.removeEventListener("scroll",t.value.onScroll)}}; +function Ge(e){e.classList.toggle("expanded");var t=e.querySelector(".dropdown.positionInViewport");t&&j.helper.setMarginLeftToBeInViewport(t)}function ze(e,t,n){var r=t.value.isMouseDown&&t.value.hasScrolled;t.value.isMouseDown=!1,t.value.hasScrolled=!1,r||e.contains(n.target)||e.classList.remove("expanded")}function Qe(e){e.value.hasScrolled=!0}function Ke(e){e.value.isMouseDown=!0,e.value.hasScrolled=!1}function We(e,t,n){27===n.which&&(t.value.isMouseDown=!1,t.value.hasScrolled=!1,e.classList.remove("expanded"))}angular.module("piwikApp.directive").directive("piwikFocusIf",Je);var Ye=document.documentElement,Xe={mounted:function(e,t){t.value.isMouseDown=!1,t.value.hasScrolled=!1,t.value.onExpand=Ge.bind(null,e),t.value.onEscapeHandler=We.bind(null,e,t),t.value.onMouseDown=Ke.bind(null,t),t.value.onClickOutsideElement=ze.bind(null,e,t),t.value.onScroll=Qe.bind(null,t),t.value.expander.addEventListener("click",t.value.onExpand),Ye.addEventListener("keyup",t.value.onEscapeHandler),Ye.addEventListener("mousedown",t.value.onMouseDown),Ye.addEventListener("mouseup",t.value.onClickOutsideElement),Ye.addEventListener("scroll",t.value.onScroll)},unmounted:function(e,t){t.value.expander.removeEventListener("click",t.value.onExpand),Ye.removeEventListener("keyup",t.value.onEscapeHandler),Ye.removeEventListener("mousedown",t.value.onMouseDown),Ye.removeEventListener("mouseup",t.value.onClickOutsideElement),Ye.removeEventListener("scroll",t.value.onScroll)}}; /*! * Matomo - free/libre analytics platform * @@ -159,111 +159,129 @@ function Ze(){return{restrict:"A",link:function(e,t){var n={instance:null,value: * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function et(e){e.classList.add("expanded");var t=e.querySelector(".dropdown.positionInViewport");t&&D.helper.setMarginLeftToBeInViewport(t)}function tt(e){e.classList.remove("expanded")}function nt(e,t){e.contains(t.target)||e.classList.remove("expanded")}function rt(e,t){27===t.which&&e.classList.remove("expanded")}Ze.$inject=[],angular.module("piwikApp").directive("piwikExpandOnClick",Ze);var at=document.documentElement,ot={mounted:function(e,t){t.value.onMouseEnter=et.bind(null,e),t.value.onMouseLeave=tt.bind(null,e),t.value.onClickOutsideElement=nt.bind(null,e),t.value.onEscapeHandler=rt.bind(null,e),t.value.expander.addEventListener("mouseenter",t.value.onMouseEnter),e.addEventListener("mouseleave",t.value.onMouseLeave),at.addEventListener("keyup",t.value.onEscapeHandler),at.addEventListener("mouseup",t.value.onClickOutsideElement)},unmounted:function(e,t){t.value.expander.removeEventListener("mouseenter",t.value.onMouseEnter),e.removeEventListener("mouseleave",t.value.onMouseLeave),document.removeEventListener("keyup",t.value.onEscapeHandler),document.removeEventListener("mouseup",t.value.onClickOutsideElement)}}; +function et(e){e.classList.add("expanded");var t=e.querySelector(".dropdown.positionInViewport");t&&j.helper.setMarginLeftToBeInViewport(t)}function tt(e){e.classList.remove("expanded")}function nt(e,t){e.contains(t.target)||e.classList.remove("expanded")}function rt(e,t){27===t.which&&e.classList.remove("expanded")}Ze.$inject=[],angular.module("piwikApp").directive("piwikExpandOnClick",Ze);var it=document.documentElement,at={mounted:function(e,t){t.value.onMouseEnter=et.bind(null,e),t.value.onMouseLeave=tt.bind(null,e),t.value.onClickOutsideElement=nt.bind(null,e),t.value.onEscapeHandler=rt.bind(null,e),t.value.expander.addEventListener("mouseenter",t.value.onMouseEnter),e.addEventListener("mouseleave",t.value.onMouseLeave),it.addEventListener("keyup",t.value.onEscapeHandler),it.addEventListener("mouseup",t.value.onClickOutsideElement)},unmounted:function(e,t){t.value.expander.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 * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -function it(){return{restrict:"A",link:function(e,t){var n={instance:null,value:{expander:t.find(".title").first()[0]},oldValue:null,modifiers:{},dir:{}};ot.mounted(t[0],n),t.on("$destroy",(function(){return ot.unmounted(t[0],n)}))}}}it.$inject=[],angular.module("piwikApp").directive("piwikExpandOnHover",it);var ct={ref:"root"};function st(e,t,n,r,a,i){return Object(o["withDirectives"])((Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ct,[Object(o["renderSlot"])(e.$slots,"default")],512)),[[o["vShow"],e.modelValue]])}var lt=Object(o["defineComponent"])({props:{modelValue:{type:Boolean,required:!0},element:{type:HTMLElement,required:!1}},emits:["yes","no","closeEnd","close","validation","update:modelValue"],activated:function(){this.$emit("update:modelValue",!1)},watch:{modelValue:function(e,t){var n=this;if(e){var r=this.element||this.$refs.root.firstElementChild;D.helper.modalConfirm(r,{yes:function(){n.$emit("yes")},no:function(){n.$emit("no")},validation:function(){n.$emit("validation")}},{onCloseEnd:function(){n.element||n.$refs.root.appendChild(r),n.$emit("update:modelValue",!1),n.$emit("closeEnd")}})}else!1===e&&!0===t&&this.$emit("close")}}});lt.render=st;var ut=lt;function dt(e,t){return vt(e)||ht(e,t)||ft(e,t)||pt()}function pt(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ft(e,t){if(e){if("string"===typeof e)return mt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mt(e,t):void 0}}function mt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ht(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(o.push(r.value),t&&o.length===t)break}catch(s){c=!0,a=s}finally{try{i||null==n["return"]||n["return"]()}finally{if(c)throw a}}return o}}function vt(e){if(Array.isArray(e))return e} +function ot(){return{restrict:"A",link:function(e,t){var n={instance:null,value:{expander:t.find(".title").first()[0]},oldValue:null,modifiers:{},dir:{}};at.mounted(t[0],n),t.on("$destroy",(function(){return at.unmounted(t[0],n)}))}}}ot.$inject=[],angular.module("piwikApp").directive("piwikExpandOnHover",ot);var ct={ref:"root"};function st(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",ct,[Object(a["renderSlot"])(e.$slots,"default")],512)),[[a["vShow"],e.modelValue]])}var lt=Object(a["defineComponent"])({props:{modelValue:{type:Boolean,required:!0},element:{type:HTMLElement,required:!1}},emits:["yes","no","closeEnd","close","validation","update:modelValue"],activated:function(){this.$emit("update:modelValue",!1)},watch:{modelValue:function(e,t){var n=this;if(e){var r=this.element||this.$refs.root.firstElementChild;j.helper.modalConfirm(r,{yes:function(){n.$emit("yes")},no:function(){n.$emit("no")},validation:function(){n.$emit("validation")}},{onCloseEnd:function(){n.element||n.$refs.root.appendChild(r),n.$emit("update:modelValue",!1),n.$emit("closeEnd")}})}else!1===e&&!0===t&&this.$emit("close")}}});lt.render=st;var ut=lt;function dt(e,t){return vt(e)||ht(e,t)||pt(e,t)||ft()}function ft(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function pt(e,t){if(e){if("string"===typeof e)return mt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mt(e,t):void 0}}function mt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ht(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,c=!1;try{for(n=n.call(e);!(o=(r=n.next()).done);o=!0)if(a.push(r.value),t&&a.length===t)break}catch(s){c=!0,i=s}finally{try{o||null==n["return"]||n["return"]()}finally{if(c)throw i}}return a}}function vt(e){if(Array.isArray(e))return e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var gt=0;function bt(e){return e.substring(0,1).toLowerCase()+e.substring(1).replace(/[A-Z]/g,(function(e){return"-".concat(e.toLowerCase())}))}function yt(e){return e.substring(0,1).toLowerCase()+e.substring(1).replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))}function wt(e){var t=e.component,n=e.scope,r=void 0===n?{}:n,a=e.events,i=void 0===a?{}:a,c=e.$inject,s=e.directiveName,l=e.transclude,u=e.mountPointFactory,d=e.postCreate,p=e.noScope,f=e.restrict,m=void 0===f?"A":f,h=gt;l&&(gt+=1);var v={};function g(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var c={restrict:m,scope:p?void 0:v,compile:function(){return{post:function(e,a,c){var s=l?a.find("[ng-transclude][counter=".concat(h,"]")):null,p="<root-component";Object.entries(i).forEach((function(e){var t=dt(e,1),n=t[0];p+=" @".concat(n,"=\"onEventHandler('").concat(n,"', $event)\"")})),Object.entries(r).forEach((function(e){var t=dt(e,2),n=t[0],r=t[1];if("&"===r.angularJsBind){var a=bt(n);i[a]||(p+=" @".concat(a,"=\"onEventHandler('").concat(a,"', $event)\""))}else p+=" :".concat(r.vue,'="').concat(r.vue,'"')})),p+=">",l&&(p+='<div ref="transcludeTarget"/>'),p+="</root-component>";var f=Object(o["createApp"])({template:p,data:function(){var t={};return Object.entries(r).forEach((function(r){var o=dt(r,2),i=o[0],s=o[1],l=e[i];"undefined"===typeof l&&"undefined"!==typeof s.default&&(l=s.default instanceof Function?s.default.apply(s,[e,a,c].concat(n)):s.default),s.transform&&(l=s.transform(l)),t[s.vue]=l})),t},setup:function(){if(l){var e=Object(o["ref"])(null);return{transcludeTarget:e}}},methods:{onEventHandler:function(t,r){var o=yt(t);e[o]&&e[o](r),i[t]&&i[t].apply(i,[r,e,a,c].concat(n))}}});f.config.globalProperties.$sanitize=window.vueSanitize,f.config.globalProperties.translate=C,f.component("root-component",t);var m=u?u.apply(void 0,[e,a,c].concat(n)):a[0],v=f.mount(m);Object.entries(r).forEach((function(t){var r=dt(t,2),o=r[0],i=r[1];i.angularJsBind&&"&"!==i.angularJsBind&&e.$watch(o,(function(t){var r=t;"undefined"!==typeof i.default&&"undefined"===typeof t&&(r=i.default instanceof Function?i.default.apply(i,[e,a,c].concat(n)):i.default),i.transform&&(r=i.transform(r)),v[o]=r}))})),l&&$(v.transcludeTarget).append(s),d&&d.apply(void 0,[v,e,a,c].concat(n)),a.on("$destroy",(function(){f.unmount()}))}}}};return l&&(c.transclude=!0,c.template='<div ng-transclude counter="'.concat(h,'"/>')),c}return Object.entries(r).forEach((function(e){var t=dt(e,2),n=t[0],r=t[1];r.vue||(r.vue=n),r.angularJsBind&&(v[n]=r.angularJsBind)})),g.$inject=c||[],angular.module("piwikApp").directive(s,g),g} + */var gt=0;function bt(e){return e.substring(0,1).toLowerCase()+e.substring(1).replace(/[A-Z]/g,(function(e){return"-".concat(e.toLowerCase())}))}function yt(e){return e.substring(0,1).toLowerCase()+e.substring(1).replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))}function wt(e){var t=e.component,n=e.require,r=e.scope,i=void 0===r?{}:r,o=e.events,c=void 0===o?{}:o,s=e.$inject,l=e.directiveName,u=e.transclude,d=e.mountPointFactory,f=e.postCreate,p=e.noScope,m=e.restrict,h=void 0===m?"A":m,v=gt;u&&(gt+=1);var g={};function b(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];var s={restrict:h,require:n,scope:p?void 0:g,compile:function(){return{post:function(e,n,o,s){var l=u?n.find("[ng-transclude][counter=".concat(v,"]")):null,p="<root-component";Object.entries(c).forEach((function(e){var t=dt(e,1),n=t[0];p+=" @".concat(n,"=\"onEventHandler('").concat(n,"', $event)\"")})),Object.entries(i).forEach((function(e){var t=dt(e,2),n=t[0],r=t[1];if("&"===r.angularJsBind){var i=bt(n);c[i]||(p+=" @".concat(i,"=\"onEventHandler('").concat(i,"', $event)\""))}else p+=" :".concat(r.vue,'="').concat(r.vue,'"')})),p+=">",u&&(p+='<div ref="transcludeTarget"/>'),p+="</root-component>";var m=Object(a["createApp"])({template:p,data:function(){var t={};return Object.entries(i).forEach((function(i){var a=dt(i,2),c=a[0],s=a[1],l=e[c];"undefined"===typeof l&&"undefined"!==typeof s.default&&(l=s.default instanceof Function?s.default.apply(s,[e,n,o].concat(r)):s.default),s.transform&&(l=s.transform(l)),t[s.vue]=l})),t},setup:function(){if(u){var e=Object(a["ref"])(null);return{transcludeTarget:e}}},methods:{onEventHandler:function(t,i){var a=yt(t);e[a]&&e[a](i),c[t]&&c[t].apply(c,[i,this,e,n,o,s].concat(r))}}});m.config.globalProperties.$sanitize=window.vueSanitize,m.config.globalProperties.translate=D,m.component("root-component",t);var h=d?d.apply(void 0,[e,n,o].concat(r)):n[0],g=m.mount(h);Object.entries(i).forEach((function(t){var i=dt(t,2),a=i[0],c=i[1];c.angularJsBind&&"&"!==c.angularJsBind&&e.$watch(a,(function(t){var i=t;"undefined"!==typeof c.default&&"undefined"===typeof t&&(i=c.default instanceof Function?c.default.apply(c,[e,n,o].concat(r)):c.default),c.transform&&(i=c.transform(i)),g[a]=i}))})),u&&$(g.transcludeTarget).append(l),f&&f.apply(void 0,[g,e,n,o,s].concat(r)),n.on("$destroy",(function(){m.unmount()}))}}}};return u&&(s.transclude=!0,s.template='<div ng-transclude counter="'.concat(v,'"/>')),s}return Object.entries(i).forEach((function(e){var t=dt(e,2),n=t[0],r=t[1];r.vue||(r.vue=n),r.angularJsBind&&(g[n]=r.angularJsBind)})),b.$inject=s||[],angular.module("piwikApp").directive(l,b),b} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */wt({component:ut,scope:{show:{vue:"modelValue",default:!1},element:{default:function(e,t){return t[0]}}},events:{yes:function(e,t,n,r){r.yes&&(t.$eval(r.yes),setTimeout((function(){t.$apply()}),0))},no:function(e,t,n,r){r.no&&(t.$eval(r.no),setTimeout((function(){t.$apply()}),0))},validation:function(e,t,n,r){r.no&&(t.$eval(r.no),setTimeout((function(){t.$apply()}),0))},close:function(e,t,n,r){r.close&&(t.$eval(r.close),setTimeout((function(){t.$apply()}),0))},"update:modelValue":function(e,t,n,r,a){setTimeout((function(){t.$apply(a(r.piwikDialog).assign(t,e))}),0)}},$inject:["$parse"],directiveName:"piwikDialog",transclude:!0,mountPointFactory:function(e,t){var n=$('<div class="vue-placeholder"/>');return n.appendTo(t),n[0]},postCreate:function(e,t,n,r){t.$watch(r.piwikDialog,(function(t,n){n!==t&&(e.modelValue=t||!1)}))},noScope:!0});var kt={key:0,class:"title",tabindex:"6"},Ot=["href","title"],jt={class:"iconsBar"},Dt=["href","title"],Ct=Object(o["createElementVNode"])("span",{class:"icon-help"},null,-1),St=[Ct],Pt=["title"],Et=Object(o["createElementVNode"])("span",{class:"icon-info"},null,-1),Tt=[Et],xt={class:"ratingIcons"},It={class:"inlineHelp"},Nt=["innerHTML"],$t=["href"];function Bt(e,t,n,r,a,i){var c=Object(o["resolveComponent"])("RateFeature");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"enrichedHeadline",onMouseenter:t[1]||(t[1]=function(t){return e.showIcons=!0}),onMouseleave:t[2]||(t[2]=function(t){return e.showIcons=!1}),ref:"root"},[e.editUrl?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",kt,[Object(o["renderSlot"])(e.$slots,"default")])),e.editUrl?(Object(o["openBlock"])(),Object(o["createElementBlock"])("a",{key:1,class:"title",href:e.editUrl,title:e.translate("CoreHome_ClickToEditX",e.$sanitize(e.actualFeatureName))},[Object(o["renderSlot"])(e.$slots,"default")],8,Ot)):Object(o["createCommentVNode"])("",!0),Object(o["withDirectives"])(Object(o["createElementVNode"])("span",jt,[e.helpUrl&&!e.actualInlineHelp?(Object(o["openBlock"])(),Object(o["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"helpIcon",href:e.helpUrl,title:e.translate("CoreHome_ExternalHelp")},St,8,Dt)):Object(o["createCommentVNode"])("",!0),e.actualInlineHelp?(Object(o["openBlock"])(),Object(o["createElementBlock"])("a",{key:1,onClick:t[0]||(t[0]=function(t){return e.showInlineHelp=!e.showInlineHelp}),class:Object(o["normalizeClass"])(["helpIcon",{active:e.showInlineHelp}]),title:e.translate(e.reportGenerated?"General_HelpReport":"General_Help")},Tt,10,Pt)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",xt,[Object(o["createVNode"])(c,{title:e.actualFeatureName},null,8,["title"])])],512),[[o["vShow"],e.showIcons||e.showInlineHelp]]),Object(o["withDirectives"])(Object(o["createElementVNode"])("div",It,[Object(o["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Nt),e.helpUrl?(Object(o["openBlock"])(),Object(o["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(o["toDisplayString"])(e.translate("General_MoreDetails")),9,$t)):Object(o["createCommentVNode"])("",!0)],512),[[o["vShow"],e.showInlineHelp]])],544)}var Ht=Object(o["defineAsyncComponent"])((function(){return new Promise((function(e){window.$(document).ready((function(){e(window.Feedback.RateFeature)}))}))})),At=Object(o["defineComponent"])({props:{helpUrl:{type:String,default:""},editUrl:{type:String,default:""},reportGenerated:String,featureName:String,inlineHelp:String},components:{RateFeature:Ht},data:function(){return{showIcons:!1,showInlineHelp:!1,actualFeatureName:this.featureName,actualInlineHelp:this.inlineHelp}},watch:{inlineHelp:function(e){this.actualInlineHelp=e},featureName:function(e){this.actualFeatureName=e}},mounted:function(){var e=this,t=this.$refs.root;setTimeout((function(){if(!e.actualInlineHelp){var n=t.querySelector(".title .inlineHelp");if(!n&&t.parentElement.nextElementSibling&&(n=t.parentElement.nextElementSibling.querySelector(".reportDocumentation")),n){var r=n.getAttribute("data-content").trim();r.length&&(e.actualInlineHelp="<p>".concat(r,"</p>"),setTimeout((function(){return n.remove()}),0))}}e.actualFeatureName||(e.actualFeatureName=t.querySelector(".title").textContent),e.reportGenerated&&p.parse(D.period,D.currentDateString).containsToday()&&window.$(t.querySelector(".report-generated")).tooltip({track:!0,content:e.reportGenerated,items:"div",show:!1,hide:!1})}))}});At.render=Bt;var Mt=At,Ft=(wt({component:Mt,scope:{helpUrl:{angularJsBind:"@"},editUrl:{angularJsBind:"@"},reportGenerated:{angularJsBind:"@?"},featureName:{angularJsBind:"@"},inlineHelp:{angularJsBind:"@?"}},directiveName:"piwikEnrichedHeadline",transclude:!0}),{class:"card",ref:"root"}),Vt={class:"card-content"},Lt={key:0,class:"card-title"},Rt={key:1,class:"card-title"},Ut={ref:"content"}; + */wt({component:ut,scope:{show:{vue:"modelValue",default:!1},element:{default:function(e,t){return t[0]}}},events:{yes:function(e,t,n,r,i){i.yes&&(n.$eval(i.yes),setTimeout((function(){n.$apply()}),0))},no:function(e,t,n,r,i){i.no&&(n.$eval(i.no),setTimeout((function(){n.$apply()}),0))},validation:function(e,t,n,r,i){i.no&&(n.$eval(i.no),setTimeout((function(){n.$apply()}),0))},close:function(e,t,n,r){r.close&&(t.$eval(r.close),setTimeout((function(){t.$apply()}),0))},"update:modelValue":function(e,t,n,r,i,a,o){setTimeout((function(){n.$apply(o(i.piwikDialog).assign(n,e))}),0)}},$inject:["$parse"],directiveName:"piwikDialog",transclude:!0,mountPointFactory:function(e,t){var n=$('<div class="vue-placeholder"/>');return n.appendTo(t),n[0]},postCreate:function(e,t,n,r){t.$watch(r.piwikDialog,(function(t,n){n!==t&&(e.modelValue=t||!1)}))},noScope:!0});var Ot={key:0,class:"title",tabindex:"6"},kt=["href","title"],St={class:"iconsBar"},jt=["href","title"],Dt=Object(a["createElementVNode"])("span",{class:"icon-help"},null,-1),Ct=[Dt],Et=["title"],Pt=Object(a["createElementVNode"])("span",{class:"icon-info"},null,-1),Tt=[Pt],It={class:"ratingIcons"},xt={class:"inlineHelp"},Nt=["innerHTML"],Bt=["href"];function Mt(e,t,n,r,i,o){var c=Object(a["resolveComponent"])("RateFeature");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"enrichedHeadline",onMouseenter:t[1]||(t[1]=function(t){return e.showIcons=!0}),onMouseleave:t[2]||(t[2]=function(t){return e.showIcons=!1}),ref:"root"},[e.editUrl?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ot,[Object(a["renderSlot"])(e.$slots,"default")])),e.editUrl?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,class:"title",href:e.editUrl,title:e.translate("CoreHome_ClickToEditX",e.$sanitize(e.actualFeatureName))},[Object(a["renderSlot"])(e.$slots,"default")],8,kt)):Object(a["createCommentVNode"])("",!0),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",St,[e.helpUrl&&!e.actualInlineHelp?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"helpIcon",href:e.helpUrl,title:e.translate("CoreHome_ExternalHelp")},Ct,8,jt)):Object(a["createCommentVNode"])("",!0),e.actualInlineHelp?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,onClick:t[0]||(t[0]=function(t){return e.showInlineHelp=!e.showInlineHelp}),class:Object(a["normalizeClass"])(["helpIcon",{active:e.showInlineHelp}]),title:e.translate(e.reportGenerated?"General_HelpReport":"General_Help")},Tt,10,Et)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",It,[Object(a["createVNode"])(c,{title:e.actualFeatureName},null,8,["title"])])],512),[[a["vShow"],e.showIcons||e.showInlineHelp]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",xt,[Object(a["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Nt),e.helpUrl?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:0,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(a["toDisplayString"])(e.translate("General_MoreDetails")),9,Bt)):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showInlineHelp]])],544)}var At=Object(a["defineAsyncComponent"])((function(){return new Promise((function(e){window.$(document).ready((function(){e(window.Feedback.RateFeature)}))}))})),$t=Object(a["defineComponent"])({props:{helpUrl:{type:String,default:""},editUrl:{type:String,default:""},reportGenerated:String,featureName:String,inlineHelp:String},components:{RateFeature:At},data:function(){return{showIcons:!1,showInlineHelp:!1,actualFeatureName:this.featureName,actualInlineHelp:this.inlineHelp}},watch:{inlineHelp:function(e){this.actualInlineHelp=e},featureName:function(e){this.actualFeatureName=e}},mounted:function(){var e=this,t=this.$refs.root;setTimeout((function(){if(!e.actualInlineHelp){var n=t.querySelector(".title .inlineHelp");if(!n&&t.parentElement.nextElementSibling&&(n=t.parentElement.nextElementSibling.querySelector(".reportDocumentation")),n){var r=n.getAttribute("data-content").trim();r.length&&(e.actualInlineHelp="<p>".concat(r,"</p>"),setTimeout((function(){return n.remove()}),0))}}e.actualFeatureName||(e.actualFeatureName=t.querySelector(".title").textContent),e.reportGenerated&&f.parse(j.period,j.currentDateString).containsToday()&&window.$(t.querySelector(".report-generated")).tooltip({track:!0,content:e.reportGenerated,items:"div",show:!1,hide:!1})}))}});$t.render=Mt;var Vt=$t,Lt=(wt({component:Vt,scope:{helpUrl:{angularJsBind:"@"},editUrl:{angularJsBind:"@"},reportGenerated:{angularJsBind:"@?"},featureName:{angularJsBind:"@"},inlineHelp:{angularJsBind:"@?"}},directiveName:"piwikEnrichedHeadline",transclude:!0}),{class:"card",ref:"root"}),Ht={class:"card-content"},Ft={key:0,class:"card-title"},_t={key:1,class:"card-title"},Rt={ref:"content"}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function _t(e,t,n,r,a,i){var c=Object(o["resolveComponent"])("EnrichedHeadline");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Ft,[Object(o["createElementVNode"])("div",Vt,[!e.contentTitle||e.actualFeature||e.helpUrl||e.actualHelpText?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("h2",Lt,Object(o["toDisplayString"])(e.contentTitle),1)),e.contentTitle&&(e.actualFeature||e.helpUrl||e.actualHelpText)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("h2",Rt,[Object(o["createVNode"])(c,{"feature-name":e.actualFeature,"help-url":e.helpUrl,"inline-help":e.actualHelpText},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.contentTitle),1)]})),_:1},8,["feature-name","help-url","inline-help"])])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",Ut,[Object(o["renderSlot"])(e.$slots,"default")],512)])],512)}var Jt=null,Gt=Object(o["defineComponent"])({props:{contentTitle:String,feature:String,helpUrl:String,helpText:String,anchor:String},components:{EnrichedHeadline:Mt},data:function(){return{actualFeature:this.feature,actualHelpText:this.helpText}},watch:{feature:function(e){this.actualFeature=e},helpText:function(e){this.actualHelpText=e}},mounted:function(){var e,t=this,n=this.$refs,r=n.root,a=n.content;if(this.anchor){var o=document.createElement("a");o.id=this.anchor,r.parentElement.prepend(o)}if(setTimeout((function(){var e=a.querySelector(".contentHelp");e&&(t.actualHelpText=e.innerHTML,e.remove())}),0),!this.actualFeature||!0!==this.actualFeature&&"true"!==this.actualFeature||(this.actualFeature=this.contentTitle),null===Jt&&(Jt=document.querySelector("#content.admin")),Jt&&(e=Jt.offsetTop),e||0===e){var i=r.closest("[piwik-widget-loader]"),c=i?i.offsetTop:r.offsetTop;c-e<17&&(r.style.marginTop=0)}}});Gt.render=_t;var qt=Gt; + */function Ut(e,t,n,r,i,o){var c=Object(a["resolveComponent"])("EnrichedHeadline");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Lt,[Object(a["createElementVNode"])("div",Ht,[!e.contentTitle||e.actualFeature||e.helpUrl||e.actualHelpText?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("h2",Ft,Object(a["toDisplayString"])(e.contentTitle),1)),e.contentTitle&&(e.actualFeature||e.helpUrl||e.actualHelpText)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("h2",_t,[Object(a["createVNode"])(c,{"feature-name":e.actualFeature,"help-url":e.helpUrl,"inline-help":e.actualHelpText},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.contentTitle),1)]})),_:1},8,["feature-name","help-url","inline-help"])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Rt,[Object(a["renderSlot"])(e.$slots,"default")],512)])],512)}var qt=null,Jt=Object(a["defineComponent"])({props:{contentTitle:String,feature:String,helpUrl:String,helpText:String,anchor:String},components:{EnrichedHeadline:Vt},data:function(){return{actualFeature:this.feature,actualHelpText:this.helpText}},watch:{feature:function(e){this.actualFeature=e},helpText:function(e){this.actualHelpText=e}},mounted:function(){var e,t=this,n=this.$refs,r=n.root,i=n.content;if(this.anchor){var a=document.createElement("a");a.id=this.anchor,r.parentElement.prepend(a)}if(setTimeout((function(){var e=i.querySelector(".contentHelp");e&&(t.actualHelpText=e.innerHTML,e.remove())}),0),!this.actualFeature||!0!==this.actualFeature&&"true"!==this.actualFeature||(this.actualFeature=this.contentTitle),null===qt&&(qt=document.querySelector("#content.admin")),qt&&(e=qt.offsetTop),e||0===e){var o=r.closest("[piwik-widget-loader]"),c=o?o.offsetTop:r.offsetTop;c-e<17&&(r.style.marginTop=0)}}});Jt.render=Ut;var Gt=Jt; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */wt({component:qt,scope:{contentTitle:{angularJsBind:"@"},feature:{angularJsBind:"@"},helpUrl:{angularJsBind:"@"},helpText:{angularJsBind:"@"},anchor:{angularJsBind:"@?"}},directiveName:"piwikContentBlock",transclude:!0});function zt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Qt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Yt(e,t,n){return t&&Qt(e.prototype,t),n&&Qt(e,n),e}function Wt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */wt({component:Gt,scope:{contentTitle:{angularJsBind:"@"},feature:{angularJsBind:"@"},helpUrl:{angularJsBind:"@"},helpText:{angularJsBind:"@"},anchor:{angularJsBind:"@?"}},directiveName:"piwikContentBlock",transclude:!0});function zt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Qt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Kt(e,t,n){return t&&Qt(e.prototype,t),n&&Qt(e,n),e}function Wt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var Kt=function(){function e(){var t=this;zt(this,e),Wt(this,"segmentState",Object(o["reactive"])({availableSegments:[]})),D.on("piwikSegmentationInited",(function(){return t.setSegmentState()}))}return Yt(e,[{key:"state",get:function(){return Object(o["readonly"])(this.segmentState)}},{key:"setSegmentState",value:function(){try{var e=$(".segmentEditorPanel").data("uiControlObject");this.segmentState.availableSegments=e.impl.availableSegments||[]}catch(t){}}}]),e}(),Xt=new Kt;function Zt(e){return rn(e)||nn(e)||tn(e)||en()}function en(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function tn(e,t){if(e){if("string"===typeof e)return an(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?an(e,t):void 0}}function nn(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function rn(e){if(Array.isArray(e))return an(e)}function an(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?on(Object(n),!0).forEach((function(t){dn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):on(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function sn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ln(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function un(e,t,n){return t&&ln(e.prototype,t),n&&ln(e,n),e}function dn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */var Yt=function(){function e(){var t=this;zt(this,e),Wt(this,"segmentState",Object(a["reactive"])({availableSegments:[]})),j.on("piwikSegmentationInited",(function(){return t.setSegmentState()}))}return Kt(e,[{key:"state",get:function(){return Object(a["readonly"])(this.segmentState)}},{key:"setSegmentState",value:function(){try{var e=$(".segmentEditorPanel").data("uiControlObject");this.segmentState.availableSegments=e.impl.availableSegments||[]}catch(t){}}}]),e}(),Xt=new Yt;function Zt(e){return rn(e)||nn(e)||tn(e)||en()}function en(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function tn(e,t){if(e){if("string"===typeof e)return an(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?an(e,t):void 0}}function nn(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function rn(e){if(Array.isArray(e))return an(e)}function an(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?on(Object(n),!0).forEach((function(t){dn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):on(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function sn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ln(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function un(e,t,n){return t&&ln(e.prototype,t),n&&ln(e,n),e}function dn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var pn=8,fn=3;function mn(e){return e?e instanceof Array?e:[e]:[]}var hn=function(){function e(){var t=this;sn(this,e),dn(this,"privateState",Object(o["reactive"])({comparisonsDisabledFor:[]})),dn(this,"state",Object(o["readonly"])(this.privateState)),dn(this,"colors",{}),dn(this,"segmentComparisons",Object(o["computed"])((function(){return t.parseSegmentComparisons()}))),dn(this,"periodComparisons",Object(o["computed"])((function(){return t.parsePeriodComparisons()}))),dn(this,"isEnabled",Object(o["computed"])((function(){return t.checkEnabledForCurrentPage()}))),this.loadComparisonsDisabledFor(),$((function(){t.colors=t.getAllSeriesColors()})),Object(o["watch"])((function(){return t.getComparisons()}),(function(){return D.postEvent("piwikComparisonsChanged")}),{deep:!0})}return un(e,[{key:"getComparisons",value:function(){return this.getSegmentComparisons().concat(this.getPeriodComparisons())}},{key:"isComparing",value:function(){return this.isComparisonEnabled()&&(this.segmentComparisons.value.length>1||this.periodComparisons.value.length>1)}},{key:"isComparingPeriods",value:function(){return this.getPeriodComparisons().length>1}},{key:"getSegmentComparisons",value:function(){return this.isComparisonEnabled()?this.segmentComparisons.value:[]}},{key:"getPeriodComparisons",value:function(){return this.isComparisonEnabled()?this.periodComparisons.value:[]}},{key:"getSeriesColor",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this.getComparisonSeriesIndex(t.index,e.index)%pn;if(0===n)return this.colors["series".concat(r)];var a=n%fn;return this.colors["series".concat(r,"-shade").concat(a)]}},{key:"getSeriesColorName",value:function(e,t){var n="series".concat(e%pn);return t>0&&(n+="-shade".concat(t%fn)),n}},{key:"isComparisonEnabled",value:function(){return this.isEnabled.value}},{key:"getIndividualComparisonRowIndices",value:function(e){var t=this.getSegmentComparisons().length,n=e%t,r=Math.floor(e/t);return{segmentIndex:n,periodIndex:r}}},{key:"getComparisonSeriesIndex",value:function(e,t){var n=this.getSegmentComparisons().length;return e*n+t}},{key:"getAllComparisonSeries",value:function(){var e=this,t=[],n=0;return this.getPeriodComparisons().forEach((function(r){e.getSegmentComparisons().forEach((function(a){t.push({index:n,params:cn(cn({},a.params),r.params),color:e.colors["series".concat(n)]}),n+=1}))})),t}},{key:"removeSegmentComparison",value:function(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");var t=Zt(this.segmentComparisons.value);t.splice(e,1);var n={};0===e&&(n.segment=t[0].params.segment),this.updateQueryParamsFromComparisons(t,this.periodComparisons.value,n)}},{key:"addSegmentComparison",value:function(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");var t=this.segmentComparisons.value.concat([{params:e,index:-1,title:""}]);this.updateQueryParamsFromComparisons(t,this.periodComparisons.value)}},{key:"updateQueryParamsFromComparisons",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},a={},o=!1,i=!1;e.forEach((function(e){o?r[e.params.segment]=!0:o=!0})),t.forEach((function(e){i?a["".concat(e.params.period,"|").concat(e.params.date)]=!0:i=!0}));var c=[],s=[];Object.keys(a).forEach((function(e){var t=e.split("|");c.push(t[0]),s.push(t[1])}));var l={compareSegments:Object.keys(r),comparePeriods:c,compareDates:s};if(D.helper.isAngularRenderingThePage()){var u=ke.hashParsed.value,d=cn(cn(cn({},u),l),n);return delete d["compareSegments[]"],delete d["comparePeriods[]"],delete d["compareDates[]"],void(JSON.stringify(d)!==JSON.stringify(u)&&ke.updateHash(d))}var p=[];["compareSegments","comparePeriods","compareDates"].forEach((function(e){l[e].length||p.push(e)}));var f=ke.stringify(n),m=ke.stringify(l);window.broadcast.propagateNewPage(f,void 0,m,p)}},{key:"getAllSeriesColors",value:function(){var e=D.ColorManager;if(!e)return[];for(var t=[],n=0;n<pn;n+=1){t.push("series".concat(n));for(var r=0;r<fn;r+=1)t.push("series".concat(n,"-shade").concat(r))}return e.getColors("comparison-series-color",t)}},{key:"loadComparisonsDisabledFor",value:function(){var e=this,t=ke.parsed.value.module;"CoreUpdater"!==t&&"Installation"!==t?Ne.fetch({module:"API",method:"API.getPagesComparisonsDisabledFor"}).then((function(t){e.privateState.comparisonsDisabledFor=t})):this.privateState.comparisonsDisabledFor=[]}},{key:"parseSegmentComparisons",value:function(){var e=Xt.state.availableSegments,t=Zt(mn(ke.parsed.value.compareSegments));t.unshift(ke.parsed.value.segment||"");var n=[];return t.forEach((function(t,r){var a;e.forEach((function(e){e.definition!==t&&e.definition!==decodeURIComponent(t)&&decodeURIComponent(e.definition)!==t||(a=e)}));var o=a?a.name:C("General_Unknown");""===t.trim()&&(o=C("SegmentEditor_DefaultAllVisits")),n.push({params:{segment:t},title:D.helper.htmlDecode(o),index:r})})),n}},{key:"parsePeriodComparisons",value:function(){var e=Zt(mn(ke.parsed.value.comparePeriods)),t=Zt(mn(ke.parsed.value.compareDates));e.unshift(ke.parsed.value.period),t.unshift(ke.parsed.value.date);for(var n=[],r=0;r<Math.min(t.length,e.length);r+=1){var a=void 0;try{a=p.parse(e[r],t[r]).getPrettyString()}catch(o){a=C("General_Error")}n.push({params:{date:t[r],period:e[r]},title:a,index:r})}return n}},{key:"checkEnabledForCurrentPage",value:function(){var e=ke.parsed.value.category||ke.parsed.value.module,t=ke.parsed.value.subcategory||ke.parsed.value.action,n="".concat(e,".").concat(t),r=-1===this.privateState.comparisonsDisabledFor.indexOf(n)&&-1===this.privateState.comparisonsDisabledFor.indexOf("".concat(e,".*"));return document.documentElement.classList.toggle("comparisonsDisabled",!r),r}}]),e}(),vn=new hn,gn={key:0,ref:"root",class:"matomo-comparisons"},bn={class:"comparison-type"},yn=["title"],wn=["href"],kn=["title"],On={class:"comparison-period-label"},jn=["onClick"],Dn=["title"],Cn={class:"loadingPiwik",style:{display:"none"}},Sn=["alt"];function Pn(e,t,n,r,a,i){return e.isComparing?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",gn,[Object(o["createElementVNode"])("h3",null,Object(o["toDisplayString"])(e.translate("General_Comparisons")),1),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.segmentComparisons,(function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"comparison card",key:t.index},[Object(o["createElementVNode"])("div",bn,Object(o["toDisplayString"])(e.translate("General_Segment")),1),Object(o["createElementVNode"])("div",{class:"title",title:t.title+"<br/>"+decodeURIComponent(t.params.segment)},[Object(o["createElementVNode"])("a",{target:"_blank",href:e.getUrlToSegment(t.params.segment)},Object(o["toDisplayString"])(t.title),9,wn)],8,yn),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.periodComparisons,(function(n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"comparison-period",key:n.index,title:e.getComparisonTooltip(t,n)},[Object(o["createElementVNode"])("span",{class:"comparison-dot",style:Object(o["normalizeStyle"])({"background-color":e.getSeriesColor(t,n)})},null,4),Object(o["createElementVNode"])("span",On,Object(o["toDisplayString"])(n.title)+" ("+Object(o["toDisplayString"])(e.getComparisonPeriodType(n))+") ",1)],8,kn)})),128)),e.segmentComparisons.length>1?(Object(o["openBlock"])(),Object(o["createElementBlock"])("a",{key:0,class:"remove-button",onClick:function(t){return e.removeSegmentComparison(n)}},[Object(o["createElementVNode"])("span",{class:"icon icon-close",title:e.translate("General_ClickToRemoveComp")},null,8,Dn)],8,jn)):Object(o["createCommentVNode"])("",!0)])})),128)),Object(o["createElementVNode"])("div",Cn,[Object(o["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:e.translate("General_LoadingData")},null,8,Sn),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(e.translate("General_LoadingData")),1)])],512)):Object(o["createCommentVNode"])("",!0)}function En(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?En(Object(n),!0).forEach((function(t){xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):En(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var In=Object(o["defineComponent"])({props:{},data:function(){return{comparisonTooltips:null}},setup:function(){var e=Object(o["computed"])((function(){return vn.isComparing()})),t=Object(o["computed"])((function(){return vn.getSegmentComparisons()})),n=Object(o["computed"])((function(){return vn.getPeriodComparisons()})),r=vn.getSeriesColor.bind(vn);return{isComparing:e,segmentComparisons:t,periodComparisons:n,getSeriesColor:r}},methods:{comparisonHasSegment:function(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison:function(e){window.$(this.$refs.root).tooltip("destroy"),vn.removeSegmentComparison(e)},getComparisonPeriodType:function(e){var t=e.params.period;if("range"===t)return C("CoreHome_PeriodRange");var n=C("Intl_Period".concat(t.substring(0,1).toUpperCase()).concat(t.substring(1)));return n.substring(0,1).toUpperCase()+n.substring(1)},getComparisonTooltip:function(e,t){if(this.comparisonTooltips&&Object.keys(this.comparisonTooltips).length)return(this.comparisonTooltips[t.index]||{})[e.index]},getUrlToSegment:function(e){var t=Tn({},ke.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,"".concat(window.location.search,"#?").concat(ke.stringify(t))},setUpTooltips:function(){var e=window,t=e.$;t(this.$refs.root).tooltip({track:!0,content:function(){var e=t(this).attr("title");return window.vueSanitize(e.replace(/\n/g,"<br />"))},show:{delay:200,duration:200},hide:!1})},onComparisonsChanged:function(){var e=this;if(this.comparisonTooltips=null,vn.isComparing()){var t=vn.getPeriodComparisons(),n=vn.getSegmentComparisons();Ne.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:ke.getSearchParam("compareSegments"),comparePeriods:ke.getSearchParam("comparePeriods"),compareDates:ke.getSearchParam("compareDates"),format_metrics:"1"}).then((function(r){e.comparisonTooltips={},t.forEach((function(t){e.comparisonTooltips[t.index]={},n.forEach((function(n){var a=e.generateComparisonTooltip(r,t,n);e.comparisonTooltips[t.index][n.index]=a}))}))}))}},generateComparisonTooltip:function(e,t,n){if(!e.reportData.comparisons)return"";var r=vn.getComparisonSeriesIndex(t.index,0),a=e.reportData.comparisons[r],o=vn.getComparisonSeriesIndex(t.index,n.index),i=e.reportData.comparisons[o],c=e.reportData.comparisons[n.index],s='<div class="comparison-card-tooltip">',l=(i.nb_visits/a.nb_visits*100).toFixed(2);return l="".concat(l,"%"),s+=C("General_ComparisonCardTooltip1",["'".concat(i.compareSegmentPretty,"'"),i.comparePeriodPretty,l,i.nb_visits.toString(),a.nb_visits.toString()]),t.index>0&&(s+="<br/><br/>",s+=C("General_ComparisonCardTooltip2",[i.nb_visits_change.toString(),c.compareSegmentPretty,c.comparePeriodPretty])),s+="</div>",s}},updated:function(){var e=this;setTimeout((function(){return e.setUpTooltips()}))},mounted:function(){var e=this;D.on("piwikComparisonsChanged",(function(){e.onComparisonsChanged()})),this.onComparisonsChanged(),setTimeout((function(){return e.setUpTooltips()}))},beforeUnmount:function(){try{window.$(this.refs.root).tooltip("destroy")}catch(e){}}});In.render=Pn;var Nn=In; + */var fn=8,pn=3;function mn(e){return e?e instanceof Array?e:[e]:[]}var hn=function(){function e(){var t=this;sn(this,e),dn(this,"privateState",Object(a["reactive"])({comparisonsDisabledFor:[]})),dn(this,"state",Object(a["readonly"])(this.privateState)),dn(this,"colors",{}),dn(this,"segmentComparisons",Object(a["computed"])((function(){return t.parseSegmentComparisons()}))),dn(this,"periodComparisons",Object(a["computed"])((function(){return t.parsePeriodComparisons()}))),dn(this,"isEnabled",Object(a["computed"])((function(){return t.checkEnabledForCurrentPage()}))),this.loadComparisonsDisabledFor(),$((function(){t.colors=t.getAllSeriesColors()})),Object(a["watch"])((function(){return t.getComparisons()}),(function(){return j.postEvent("piwikComparisonsChanged")}),{deep:!0})}return un(e,[{key:"getComparisons",value:function(){return this.getSegmentComparisons().concat(this.getPeriodComparisons())}},{key:"isComparing",value:function(){return this.isComparisonEnabled()&&(this.segmentComparisons.value.length>1||this.periodComparisons.value.length>1)}},{key:"isComparingPeriods",value:function(){return this.getPeriodComparisons().length>1}},{key:"getSegmentComparisons",value:function(){return this.isComparisonEnabled()?this.segmentComparisons.value:[]}},{key:"getPeriodComparisons",value:function(){return this.isComparisonEnabled()?this.periodComparisons.value:[]}},{key:"getSeriesColor",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this.getComparisonSeriesIndex(t.index,e.index)%fn;if(0===n)return this.colors["series".concat(r)];var i=n%pn;return this.colors["series".concat(r,"-shade").concat(i)]}},{key:"getSeriesColorName",value:function(e,t){var n="series".concat(e%fn);return t>0&&(n+="-shade".concat(t%pn)),n}},{key:"isComparisonEnabled",value:function(){return this.isEnabled.value}},{key:"getIndividualComparisonRowIndices",value:function(e){var t=this.getSegmentComparisons().length,n=e%t,r=Math.floor(e/t);return{segmentIndex:n,periodIndex:r}}},{key:"getComparisonSeriesIndex",value:function(e,t){var n=this.getSegmentComparisons().length;return e*n+t}},{key:"getAllComparisonSeries",value:function(){var e=this,t=[],n=0;return this.getPeriodComparisons().forEach((function(r){e.getSegmentComparisons().forEach((function(i){t.push({index:n,params:cn(cn({},i.params),r.params),color:e.colors["series".concat(n)]}),n+=1}))})),t}},{key:"removeSegmentComparison",value:function(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");var t=Zt(this.segmentComparisons.value);t.splice(e,1);var n={};0===e&&(n.segment=t[0].params.segment),this.updateQueryParamsFromComparisons(t,this.periodComparisons.value,n)}},{key:"addSegmentComparison",value:function(e){if(!this.isComparisonEnabled())throw new Error("Comparison disabled.");var t=this.segmentComparisons.value.concat([{params:e,index:-1,title:""}]);this.updateQueryParamsFromComparisons(t,this.periodComparisons.value)}},{key:"updateQueryParamsFromComparisons",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i={},a=!1,o=!1;e.forEach((function(e){a?r[e.params.segment]=!0:a=!0})),t.forEach((function(e){o?i["".concat(e.params.period,"|").concat(e.params.date)]=!0:o=!0}));var c=[],s=[];Object.keys(i).forEach((function(e){var t=e.split("|");c.push(t[0]),s.push(t[1])}));var l={compareSegments:Object.keys(r),comparePeriods:c,compareDates:s};if(j.helper.isAngularRenderingThePage()){var u=Oe.hashParsed.value,d=cn(cn(cn({},u),l),n);return delete d["compareSegments[]"],delete d["comparePeriods[]"],delete d["compareDates[]"],void(JSON.stringify(d)!==JSON.stringify(u)&&Oe.updateHash(d))}var f=[];["compareSegments","comparePeriods","compareDates"].forEach((function(e){l[e].length||f.push(e)}));var p=Oe.stringify(n),m=Oe.stringify(l);window.broadcast.propagateNewPage(p,void 0,m,f)}},{key:"getAllSeriesColors",value:function(){var e=j.ColorManager;if(!e)return[];for(var t=[],n=0;n<fn;n+=1){t.push("series".concat(n));for(var r=0;r<pn;r+=1)t.push("series".concat(n,"-shade").concat(r))}return e.getColors("comparison-series-color",t)}},{key:"loadComparisonsDisabledFor",value:function(){var e=this,t=Oe.parsed.value.module;"CoreUpdater"!==t&&"Installation"!==t?Ne.fetch({module:"API",method:"API.getPagesComparisonsDisabledFor"}).then((function(t){e.privateState.comparisonsDisabledFor=t})):this.privateState.comparisonsDisabledFor=[]}},{key:"parseSegmentComparisons",value:function(){var e=Xt.state.availableSegments,t=Zt(mn(Oe.parsed.value.compareSegments));t.unshift(Oe.parsed.value.segment||"");var n=[];return t.forEach((function(t,r){var i;e.forEach((function(e){e.definition!==t&&e.definition!==decodeURIComponent(t)&&decodeURIComponent(e.definition)!==t||(i=e)}));var a=i?i.name:D("General_Unknown");""===t.trim()&&(a=D("SegmentEditor_DefaultAllVisits")),n.push({params:{segment:t},title:j.helper.htmlDecode(a),index:r})})),n}},{key:"parsePeriodComparisons",value:function(){var e=Zt(mn(Oe.parsed.value.comparePeriods)),t=Zt(mn(Oe.parsed.value.compareDates));e.unshift(Oe.parsed.value.period),t.unshift(Oe.parsed.value.date);for(var n=[],r=0;r<Math.min(t.length,e.length);r+=1){var i=void 0;try{i=f.parse(e[r],t[r]).getPrettyString()}catch(a){i=D("General_Error")}n.push({params:{date:t[r],period:e[r]},title:i,index:r})}return n}},{key:"checkEnabledForCurrentPage",value:function(){var e=Oe.parsed.value.category||Oe.parsed.value.module,t=Oe.parsed.value.subcategory||Oe.parsed.value.action,n="".concat(e,".").concat(t),r=-1===this.privateState.comparisonsDisabledFor.indexOf(n)&&-1===this.privateState.comparisonsDisabledFor.indexOf("".concat(e,".*"));return document.documentElement.classList.toggle("comparisonsDisabled",!r),r}}]),e}(),vn=new hn,gn={key:0,ref:"root",class:"matomo-comparisons"},bn={class:"comparison-type"},yn=["title"],wn=["href"],On=["title"],kn={class:"comparison-period-label"},Sn=["onClick"],jn=["title"],Dn={class:"loadingPiwik",style:{display:"none"}},Cn=["alt"];function En(e,t,n,r,i,o){return e.isComparing?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",gn,[Object(a["createElementVNode"])("h3",null,Object(a["toDisplayString"])(e.translate("General_Comparisons")),1),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.segmentComparisons,(function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"comparison card",key:t.index},[Object(a["createElementVNode"])("div",bn,Object(a["toDisplayString"])(e.translate("General_Segment")),1),Object(a["createElementVNode"])("div",{class:"title",title:t.title+"<br/>"+decodeURIComponent(t.params.segment)},[Object(a["createElementVNode"])("a",{target:"_blank",href:e.getUrlToSegment(t.params.segment)},Object(a["toDisplayString"])(t.title),9,wn)],8,yn),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.periodComparisons,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"comparison-period",key:n.index,title:e.getComparisonTooltip(t,n)},[Object(a["createElementVNode"])("span",{class:"comparison-dot",style:Object(a["normalizeStyle"])({"background-color":e.getSeriesColor(t,n)})},null,4),Object(a["createElementVNode"])("span",kn,Object(a["toDisplayString"])(n.title)+" ("+Object(a["toDisplayString"])(e.getComparisonPeriodType(n))+") ",1)],8,On)})),128)),e.segmentComparisons.length>1?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:0,class:"remove-button",onClick:function(t){return e.removeSegmentComparison(n)}},[Object(a["createElementVNode"])("span",{class:"icon icon-close",title:e.translate("General_ClickToRemoveComp")},null,8,jn)],8,Sn)):Object(a["createCommentVNode"])("",!0)])})),128)),Object(a["createElementVNode"])("div",Dn,[Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:e.translate("General_LoadingData")},null,8,Cn),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("General_LoadingData")),1)])],512)):Object(a["createCommentVNode"])("",!0)}function Pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(n),!0).forEach((function(t){In(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function In(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var xn=Object(a["defineComponent"])({props:{},data:function(){return{comparisonTooltips:null}},setup:function(){var e=Object(a["computed"])((function(){return vn.isComparing()})),t=Object(a["computed"])((function(){return vn.getSegmentComparisons()})),n=Object(a["computed"])((function(){return vn.getPeriodComparisons()})),r=vn.getSeriesColor.bind(vn);return{isComparing:e,segmentComparisons:t,periodComparisons:n,getSeriesColor:r}},methods:{comparisonHasSegment:function(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison:function(e){window.$(this.$refs.root).tooltip("destroy"),vn.removeSegmentComparison(e)},getComparisonPeriodType:function(e){var t=e.params.period;if("range"===t)return D("CoreHome_PeriodRange");var n=D("Intl_Period".concat(t.substring(0,1).toUpperCase()).concat(t.substring(1)));return n.substring(0,1).toUpperCase()+n.substring(1)},getComparisonTooltip:function(e,t){if(this.comparisonTooltips&&Object.keys(this.comparisonTooltips).length)return(this.comparisonTooltips[t.index]||{})[e.index]},getUrlToSegment:function(e){var t=Tn({},Oe.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,"".concat(window.location.search,"#?").concat(Oe.stringify(t))},setUpTooltips:function(){var e=window,t=e.$;t(this.$refs.root).tooltip({track:!0,content:function(){var e=t(this).attr("title");return window.vueSanitize(e.replace(/\n/g,"<br />"))},show:{delay:200,duration:200},hide:!1})},onComparisonsChanged:function(){var e=this;if(this.comparisonTooltips=null,vn.isComparing()){var t=vn.getPeriodComparisons(),n=vn.getSegmentComparisons();Ne.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:Oe.getSearchParam("compareSegments"),comparePeriods:Oe.getSearchParam("comparePeriods"),compareDates:Oe.getSearchParam("compareDates"),format_metrics:"1"}).then((function(r){e.comparisonTooltips={},t.forEach((function(t){e.comparisonTooltips[t.index]={},n.forEach((function(n){var i=e.generateComparisonTooltip(r,t,n);e.comparisonTooltips[t.index][n.index]=i}))}))}))}},generateComparisonTooltip:function(e,t,n){if(!e.reportData.comparisons)return"";var r=vn.getComparisonSeriesIndex(t.index,0),i=e.reportData.comparisons[r],a=vn.getComparisonSeriesIndex(t.index,n.index),o=e.reportData.comparisons[a],c=e.reportData.comparisons[n.index],s='<div class="comparison-card-tooltip">',l=(o.nb_visits/i.nb_visits*100).toFixed(2);return l="".concat(l,"%"),s+=D("General_ComparisonCardTooltip1",["'".concat(o.compareSegmentPretty,"'"),o.comparePeriodPretty,l,o.nb_visits.toString(),i.nb_visits.toString()]),t.index>0&&(s+="<br/><br/>",s+=D("General_ComparisonCardTooltip2",[o.nb_visits_change.toString(),c.compareSegmentPretty,c.comparePeriodPretty])),s+="</div>",s}},updated:function(){var e=this;setTimeout((function(){return e.setUpTooltips()}))},mounted:function(){var e=this;j.on("piwikComparisonsChanged",(function(){e.onComparisonsChanged()})),this.onComparisonsChanged(),setTimeout((function(){return e.setUpTooltips()}))},beforeUnmount:function(){try{window.$(this.refs.root).tooltip("destroy")}catch(e){}}});xn.render=En;var Nn=xn; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function $n(){return vn}$n.$inject=[],angular.module("piwikApp.service").factory("piwikComparisonsService",$n);wt({component:Nn,directiveName:"piwikComparisons",restrict:"E"});var Bn={ref:"root",class:"menuDropdown"},Hn=["title"],An=["innerHTML"],Mn=Object(o["createElementVNode"])("span",{class:"icon-arrow-bottom"},null,-1),Fn={class:"items"},Vn={key:0,class:"search"},Ln=["placeholder"],Rn=["title"],Un=["title"];function _n(e,t,n,r,a,i){var c=Object(o["resolveDirective"])("focus-if"),s=Object(o["resolveDirective"])("focus-anywhere-but-here");return Object(o["withDirectives"])((Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Bn,[Object(o["createElementVNode"])("span",{class:"title",onClick:t[0]||(t[0]=function(t){return e.showItems=!e.showItems}),title:e.tooltip},[Object(o["createElementVNode"])("span",{innerHTML:e.$sanitize(this.actualMenuTitle)},null,8,An),Mn],8,Hn),Object(o["withDirectives"])(Object(o["createElementVNode"])("div",Fn,[e.showSearch&&e.showItems?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Vn,[Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),onKeydown:t[2]||(t[2]=function(t){return e.onSearchTermKeydown(t)}),placeholder:e.translate("General_Search")},null,40,Ln),[[o["vModelText"],e.searchTerm],[c,{},e.showItems]]),Object(o["withDirectives"])(Object(o["createElementVNode"])("img",{class:"search_ico",src:"plugins/Morpheus/images/search_ico.png",title:e.translate("General_Search")},null,8,Rn),[[o["vShow"],!e.searchTerm]]),Object(o["withDirectives"])(Object(o["createElementVNode"])("img",{onClick:t[3]||(t[3]=function(t){e.searchTerm="",e.searchItems("")}),class:"reset",src:"plugins/CoreHome/images/reset_search.png",title:e.translate("General_Clear")},null,8,Un),[[o["vShow"],e.searchTerm]])])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",{onClick:t[4]||(t[4]=function(t){return e.selectItem(t)})},[Object(o["renderSlot"])(e.$slots,"default")])],512),[[o["vShow"],e.showItems]])],512)),[[s,{blur:e.lostFocus}]])}var Jn=window,Gn=Jn.$,qn=Object(o["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:String},directives:{FocusAnywhereButHere:Re,FocusIf:Je},emits:["afterSelect"],watch:{menuTitle:function(){this.actualMenuTitle=this.menuTitle}},data:function(){return{showItems:!1,searchTerm:"",actualMenuTitle:this.menuTitle}},methods:{lostFocus:function(){this.showItems=!1},selectItem:function(e){var t=e.target.classList;!t.contains("item")||t.contains("disabled")||t.contains("separator")||(!1!==this.menuTitleChangeOnClick&&(this.actualMenuTitle=e.target.textContent.replace(/[\u0000-\u2666]/g,(function(e){return"&#".concat(e.charCodeAt(0),";")}))),this.showItems=!1,Gn(this.$slots.default()).find(".item").removeClass("active"),t.add("active"),this.$emit("afterSelect"))},onSearchTermKeydown:function(){var e=this;setTimeout((function(){e.searchItems(e.searchTerm)}))},searchItems:function(e){var t=e.toLowerCase();Gn(this.$refs.root).find(".item").each((function(e,n){var r=Gn(n);-1===r.text().toLowerCase().indexOf(t)?r.hide():r.show()}))}}});qn.render=_n;var zn=qn,Qn=(wt({component:zn,scope:{menuTitle:{angularJsBind:"@"},tooltip:{angularJsBind:"@"},showSearch:{angularJsBind:"="},menuTitleChangeOnClick:{angularJsBind:"="}},directiveName:"piwikMenudropdown",transclude:!0,events:{"after-select":function(e,t){setTimeout((function(){t.$apply()}),0)}}}),{ref:"root"}); + */function Bn(){return vn}Bn.$inject=[],angular.module("piwikApp.service").factory("piwikComparisonsService",Bn);wt({component:Nn,directiveName:"piwikComparisons",restrict:"E"});var Mn={ref:"root",class:"menuDropdown"},An=["title"],$n=["innerHTML"],Vn=Object(a["createElementVNode"])("span",{class:"icon-arrow-bottom"},null,-1),Ln={class:"items"},Hn={key:0,class:"search"},Fn=["placeholder"],_n=["title"],Rn=["title"];function Un(e,t,n,r,i,o){var c=Object(a["resolveDirective"])("focus-if"),s=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Mn,[Object(a["createElementVNode"])("span",{class:"title",onClick:t[0]||(t[0]=function(t){return e.showItems=!e.showItems}),title:e.tooltip},[Object(a["createElementVNode"])("span",{innerHTML:e.$sanitize(this.actualMenuTitle)},null,8,$n),Vn],8,An),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Ln,[e.showSearch&&e.showItems?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Hn,[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),onKeydown:t[2]||(t[2]=function(t){return e.onSearchTermKeydown(t)}),placeholder:e.translate("General_Search")},null,40,Fn),[[a["vModelText"],e.searchTerm],[c,{},e.showItems]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("img",{class:"search_ico",src:"plugins/Morpheus/images/search_ico.png",title:e.translate("General_Search")},null,8,_n),[[a["vShow"],!e.searchTerm]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("img",{onClick:t[3]||(t[3]=function(t){e.searchTerm="",e.searchItems("")}),class:"reset",src:"plugins/CoreHome/images/reset_search.png",title:e.translate("General_Clear")},null,8,Rn),[[a["vShow"],e.searchTerm]])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",{onClick:t[4]||(t[4]=function(t){return e.selectItem(t)})},[Object(a["renderSlot"])(e.$slots,"default")])],512),[[a["vShow"],e.showItems]])],512)),[[s,{blur:e.lostFocus}]])}var qn=window,Jn=qn.$,Gn=Object(a["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:String},directives:{FocusAnywhereButHere:_e,FocusIf:qe},emits:["afterSelect"],watch:{menuTitle:function(){this.actualMenuTitle=this.menuTitle}},data:function(){return{showItems:!1,searchTerm:"",actualMenuTitle:this.menuTitle}},methods:{lostFocus:function(){this.showItems=!1},selectItem:function(e){var t=e.target.classList;!t.contains("item")||t.contains("disabled")||t.contains("separator")||(!1!==this.menuTitleChangeOnClick&&(this.actualMenuTitle=e.target.textContent.replace(/[\u0000-\u2666]/g,(function(e){return"&#".concat(e.charCodeAt(0),";")}))),this.showItems=!1,Jn(this.$slots.default()).find(".item").removeClass("active"),t.add("active"),this.$emit("afterSelect"))},onSearchTermKeydown:function(){var e=this;setTimeout((function(){e.searchItems(e.searchTerm)}))},searchItems:function(e){var t=e.toLowerCase();Jn(this.$refs.root).find(".item").each((function(e,n){var r=Jn(n);-1===r.text().toLowerCase().indexOf(t)?r.hide():r.show()}))}}});Gn.render=Un;var zn=Gn,Qn=(wt({component:zn,scope:{menuTitle:{angularJsBind:"@"},tooltip:{angularJsBind:"@"},showSearch:{angularJsBind:"="},menuTitleChangeOnClick:{angularJsBind:"="}},directiveName:"piwikMenudropdown",transclude:!0,events:{"after-select":function(e,t){setTimeout((function(){t.$apply()}),0)}}}),{ref:"root"}); /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Yn(e,t,n,r,a,i){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Qn,null,512)}function Wn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Kn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wn(Object(n),!0).forEach((function(t){Xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Zn=1,er=window,tr=er.$,nr=Object(o["defineComponent"])({props:{selectedDateStart:Date,selectedDateEnd:Date,highlightedDateStart:Date,highlightedDateEnd:Date,viewDate:[String,Date],stepMonths:Number,disableMonthDropdown:Boolean,options:Object},emits:["cellHover","cellHoverLeave","dateSelect"],setup:function(e,t){var n=Object(o["ref"])(null);function r(t,n){var r=t.children("a");if(e.selectedDateStart&&e.selectedDateEnd&&n>=e.selectedDateStart&&n<=e.selectedDateEnd?t.addClass("ui-datepicker-current-period"):t.removeClass("ui-datepicker-current-period"),e.highlightedDateStart&&e.highlightedDateEnd&&n>=e.highlightedDateStart&&n<=e.highlightedDateEnd){var a=r.length?r:t;a.addClass("ui-state-hover")}else t.removeClass("ui-state-hover"),r.removeClass("ui-state-hover")}function a(e,t,n){if(e.hasClass("ui-datepicker-other-month"))return i(e,t,n);var r=parseInt(e.children("a,span").text(),10);return new Date(n,t,r)}function i(e,t,n){var r,o=e.parent(),i=o.children("td");if(o.is(":first-child")){var c=o.children("td:not(.ui-datepicker-other-month)").first();return r=a(c,t,n),r.setDate(i.index(e)-i.index(c)+1),r}var s=o.children("td:not(.ui-datepicker-other-month)").last();return r=a(s,t,n),r.setDate(r.getDate()+i.index(e)-i.index(s)),r}function c(){var e=tr(n.value),t=e.find("td[data-month]"),r=parseInt(t.attr("data-month"),10),a=parseInt(t.attr("data-year"),10);return[r,a]}function s(){var e=tr(n.value),t=e.find(".ui-datepicker-calendar"),o=c(),i=t.find("td"),s=i.first(),l=a(s,o[0],o[1]);i.each((function(){r(tr(this),l),l.setDate(l.getDate()+1)}))}function l(){var t=e.viewDate;if(!t)return!1;if(!(t instanceof Date))try{t=E(t)}catch(o){return!1}var r=tr(n.value),a=c();return(a[0]!==t.getMonth()||a[1]!==t.getFullYear())&&(r.datepicker("setDate",t),!0)}function u(){var e=tr(n.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","")}function d(){var t=tr(n.value),r=e.stepMonths||Zn;if(t.datepicker("option","stepMonths")===r)return!1;var a=tr(".ui-datepicker-month",t).val(),o=tr(".ui-datepicker-year",t).val();return t.datepicker("option","stepMonths",r).datepicker("setDate",new Date(o,a)),u(),!0}function p(){var t=tr(n.value);t.find(".ui-datepicker-month").attr("disabled",e.disableMonthDropdown)}function f(){if(tr(this).hasClass("ui-state-hover")){var e=tr(this).parent(),t=e.parent();e.is(":first-child")?t.find("a").first().click():t.find("a").last().click()}}function m(){p(),s()}return Object(o["watch"])((function(){return Kn({},e)}),(function(e,t){var n=!1;["selectedDateStart","selectedDateEnd","highlightedDateStart","highlightedDateEnd"].forEach((function(r){n||(!e[r]&&t[r]&&(n=!0),e[r]&&!t[r]&&(n=!0),e[r]&&t[r]&&e[r].getTime()!==t[r].getTime()&&(n=!0))})),e.viewDate!==t.viewDate&&l()&&(n=!0),e.stepMonths!==t.stepMonths&&d(),e.enableDisableMonthDropdown!==t.enableDisableMonthDropdown&&p(),n&&s()})),Object(o["onMounted"])((function(){var r=tr(n.value),o=e.options||{},i=Kn(Kn(Kn({},D.getBaseDatePickerOptions()),o),{},{onChangeMonthYear:function(){setTimeout((function(){u()}))}});r.datepicker(i),r.on("mouseover","tbody td a",(function(e){e.originalEvent&&s()})),r.on("mouseenter","tbody td",(function(){var e=c(),n=tr(this),r=a(n,e[0],e[1]);t.emit("cellHover",{date:r,$cell:n})})),r.on("mouseout","tbody td a",(function(){s()})),r.on("mouseleave","table",(function(){return t.emit("cellHoverLeave")})).on("mouseenter","thead",(function(){return t.emit("cellHoverLeave")})),r.on("click","tbody td.ui-datepicker-other-month",(function(){return f()})),r.on("click",(function(e){e.preventDefault();var t=tr(e.target).closest("a");(t.is(".ui-datepicker-next")||t.is(".ui-datepicker-prev"))&&m()})),r.on("click","td[data-month]",(function(e){var n=tr(e.target).closest("td"),r=parseInt(n.attr("data-month"),10),a=parseInt(n.attr("data-year"),10),o=parseInt(n.children("a,span").text(),10);t.emit("dateSelect",{date:new Date(a,r,o)})}));var h=d();l(),p(),h||u(),s()})),{root:n}}});nr.render=Yn;var rr=nr,ar=(wt({component:rr,scope:{selectedDateStart:{angularJsBind:"<"},selectedDateEnd:{angularJsBind:"<"},highlightedDateStart:{angularJsBind:"<"},highlightedDateEnd:{angularJsBind:"<"},viewDate:{angularJsBind:"<"},stepMonths:{angularJsBind:"<"},disableMonthDropdown:{angularJsBind:"<"},options:{angularJsBind:"<"},cellHover:{angularJsBind:"&"},cellHoverLeave:{angularJsBind:"&"},dateSelect:{angularJsBind:"&"}},directiveName:"piwikDatePicker",events:{"cell-hover":function(e,t,n,r,a){a()},"cell-hover-leave":function(e,t,n,r,a){a()},"date-select":function(e,t,n,r,a){a()}},$inject:["$timeout"]}),{id:"calendarRangeFrom"}),or={id:"calendarRangeTo"}; + */function Kn(e,t,n,r,i,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Qn,null,512)}function Wn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wn(Object(n),!0).forEach((function(t){Xn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Zn=1,er=window,tr=er.$,nr=Object(a["defineComponent"])({props:{selectedDateStart:Date,selectedDateEnd:Date,highlightedDateStart:Date,highlightedDateEnd:Date,viewDate:[String,Date],stepMonths:Number,disableMonthDropdown:Boolean,options:Object},emits:["cellHover","cellHoverLeave","dateSelect"],setup:function(e,t){var n=Object(a["ref"])(null);function r(t,n){var r=t.children("a");if(e.selectedDateStart&&e.selectedDateEnd&&n>=e.selectedDateStart&&n<=e.selectedDateEnd?t.addClass("ui-datepicker-current-period"):t.removeClass("ui-datepicker-current-period"),e.highlightedDateStart&&e.highlightedDateEnd&&n>=e.highlightedDateStart&&n<=e.highlightedDateEnd){var i=r.length?r:t;i.addClass("ui-state-hover")}else t.removeClass("ui-state-hover"),r.removeClass("ui-state-hover")}function i(e,t,n){if(e.hasClass("ui-datepicker-other-month"))return o(e,t,n);var r=parseInt(e.children("a,span").text(),10);return new Date(n,t,r)}function o(e,t,n){var r,a=e.parent(),o=a.children("td");if(a.is(":first-child")){var c=a.children("td:not(.ui-datepicker-other-month)").first();return r=i(c,t,n),r.setDate(o.index(e)-o.index(c)+1),r}var s=a.children("td:not(.ui-datepicker-other-month)").last();return r=i(s,t,n),r.setDate(r.getDate()+o.index(e)-o.index(s)),r}function c(){var e=tr(n.value),t=e.find("td[data-month]"),r=parseInt(t.attr("data-month"),10),i=parseInt(t.attr("data-year"),10);return[r,i]}function s(){var e=tr(n.value),t=e.find(".ui-datepicker-calendar"),a=c(),o=t.find("td"),s=o.first(),l=i(s,a[0],a[1]);o.each((function(){r(tr(this),l),l.setDate(l.getDate()+1)}))}function l(){var t=e.viewDate;if(!t)return!1;if(!(t instanceof Date))try{t=P(t)}catch(a){return!1}var r=tr(n.value),i=c();return(i[0]!==t.getMonth()||i[1]!==t.getFullYear())&&(r.datepicker("setDate",t),!0)}function u(){var e=tr(n.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","")}function d(){var t=tr(n.value),r=e.stepMonths||Zn;if(t.datepicker("option","stepMonths")===r)return!1;var i=tr(".ui-datepicker-month",t).val(),a=tr(".ui-datepicker-year",t).val();return t.datepicker("option","stepMonths",r).datepicker("setDate",new Date(a,i)),u(),!0}function f(){var t=tr(n.value);t.find(".ui-datepicker-month").attr("disabled",e.disableMonthDropdown)}function p(){if(tr(this).hasClass("ui-state-hover")){var e=tr(this).parent(),t=e.parent();e.is(":first-child")?t.find("a").first().click():t.find("a").last().click()}}function m(){f(),s()}return Object(a["watch"])((function(){return Yn({},e)}),(function(e,t){var n=!1;["selectedDateStart","selectedDateEnd","highlightedDateStart","highlightedDateEnd"].forEach((function(r){n||(!e[r]&&t[r]&&(n=!0),e[r]&&!t[r]&&(n=!0),e[r]&&t[r]&&e[r].getTime()!==t[r].getTime()&&(n=!0))})),e.viewDate!==t.viewDate&&l()&&(n=!0),e.stepMonths!==t.stepMonths&&d(),e.enableDisableMonthDropdown!==t.enableDisableMonthDropdown&&f(),n&&s()})),Object(a["onMounted"])((function(){var r=tr(n.value),a=e.options||{},o=Yn(Yn(Yn({},j.getBaseDatePickerOptions()),a),{},{onChangeMonthYear:function(){setTimeout((function(){u()}))}});r.datepicker(o),r.on("mouseover","tbody td a",(function(e){e.originalEvent&&s()})),r.on("mouseenter","tbody td",(function(){var e=c(),n=tr(this),r=i(n,e[0],e[1]);t.emit("cellHover",{date:r,$cell:n})})),r.on("mouseout","tbody td a",(function(){s()})),r.on("mouseleave","table",(function(){return t.emit("cellHoverLeave")})).on("mouseenter","thead",(function(){return t.emit("cellHoverLeave")})),r.on("click","tbody td.ui-datepicker-other-month",(function(){return p()})),r.on("click",(function(e){e.preventDefault();var t=tr(e.target).closest("a");(t.is(".ui-datepicker-next")||t.is(".ui-datepicker-prev"))&&m()})),r.on("click","td[data-month]",(function(e){var n=tr(e.target).closest("td"),r=parseInt(n.attr("data-month"),10),i=parseInt(n.attr("data-year"),10),a=parseInt(n.children("a,span").text(),10);t.emit("dateSelect",{date:new Date(i,r,a)})}));var h=d();l(),f(),h||u(),s()})),{root:n}}});nr.render=Kn;var rr=nr,ir=(wt({component:rr,scope:{selectedDateStart:{angularJsBind:"<"},selectedDateEnd:{angularJsBind:"<"},highlightedDateStart:{angularJsBind:"<"},highlightedDateEnd:{angularJsBind:"<"},viewDate:{angularJsBind:"<"},stepMonths:{angularJsBind:"<"},disableMonthDropdown:{angularJsBind:"<"},options:{angularJsBind:"<"},cellHover:{angularJsBind:"&"},cellHoverLeave:{angularJsBind:"&"},dateSelect:{angularJsBind:"&"}},directiveName:"piwikDatePicker",events:{"cell-hover":function(e,t,n,r,i){i()},"cell-hover-leave":function(e,t,n,r,i){i()},"date-select":function(e,t,n,r,i){i()}},$inject:["$timeout"]}),{id:"calendarRangeFrom"}),ar={id:"calendarRangeTo"}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function ir(e,t,n,r,a,i){var c=Object(o["resolveComponent"])("DatePicker");return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],null,[Object(o["createElementVNode"])("div",ar,[Object(o["createElementVNode"])("h6",null,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.translate("General_DateRangeFrom"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{type:"text",id:"inputCalendarFrom",name:"inputCalendarFrom",class:"browser-default","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.startDateText=t}),onChange:t[1]||(t[1]=function(t){return e.onRangeInputChanged("from",t)}),onKeyup:t[2]||(t[2]=function(t){return e.handleEnterPress(t)})},null,544),[[o["vModelText"],e.startDateText]])]),Object(o["createVNode"])(c,{id:"calendarFrom","view-date":e.startDate,"selected-date-start":e.fromPickerSelectedDates[0],"selected-date-end":e.fromPickerSelectedDates[1],"highlighted-date-start":e.fromPickerHighlightedDates[0],"highlighted-date-end":e.fromPickerHighlightedDates[1],onDateSelect:t[3]||(t[3]=function(t){return e.setStartRangeDate(t.date)}),onCellHover:t[4]||(t[4]=function(t){return e.fromPickerHighlightedDates=e.getNewHighlightedDates(t.date,t.$cell)}),onCellHoverLeave:t[5]||(t[5]=function(t){return e.fromPickerHighlightedDates=[null,null]})},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end"])]),Object(o["createElementVNode"])("div",or,[Object(o["createElementVNode"])("h6",null,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.translate("General_DateRangeTo"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{type:"text",id:"inputCalendarTo",name:"inputCalendarTo",class:"browser-default","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.endDateText=t}),onChange:t[7]||(t[7]=function(t){return e.onRangeInputChanged("to",t)}),onKeyup:t[8]||(t[8]=function(t){return e.handleEnterPress(t)})},null,544),[[o["vModelText"],e.endDateText]])]),Object(o["createVNode"])(c,{id:"calendarTo","view-date":e.endDate,"selected-date-start":e.toPickerSelectedDates[0],"selected-date-end":e.toPickerSelectedDates[1],"highlighted-date-start":e.toPickerHighlightedDates[0],"highlighted-date-end":e.toPickerHighlightedDates[1],onDateSelect:t[9]||(t[9]=function(t){return e.setEndRangeDate(t.date)}),onCellHover:t[10]||(t[10]=function(t){return e.toPickerHighlightedDates=e.getNewHighlightedDates(t.date,t.$cell)}),onCellHoverLeave:t[11]||(t[11]=function(t){return e.toPickerHighlightedDates=[null,null]})},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end"])])],64)}var cr=Object(o["defineComponent"])({props:{startDate:String,endDate:String},components:{DatePicker:rr},data:function(){var e=null;try{e=E(this.startDate)}catch(n){}var t=null;try{t=E(this.endDate)}catch(n){}return{fromPickerSelectedDates:[e,e],toPickerSelectedDates:[t,t],fromPickerHighlightedDates:[null,null],toPickerHighlightedDates:[null,null],startDateText:this.startDate,endDateText:this.endDate}},emits:["rangeChange","submit"],watch:{startDate:function(){this.startDateText=this.startDate,this.setStartRangeDateFromStr(this.startDate)},endDate:function(){this.endDateText=this.endDate,this.setEndRangeDateFromStr(this.endDate)}},mounted:function(){this.rangeChanged()},methods:{setStartRangeDate:function(e){this.fromPickerSelectedDates=[e,e],this.rangeChanged()},setEndRangeDate:function(e){this.toPickerSelectedDates=[e,e],this.rangeChanged()},onRangeInputChanged:function(e,t){"from"===e?this.setStartRangeDateFromStr(t.target.value):this.setEndRangeDateFromStr(t.target.value)},getNewHighlightedDates:function(e,t){return t.hasClass("ui-datepicker-unselectable")?null:[e,e]},handleEnterPress:function(e){13===e.keyCode&&this.$emit("submit",{start:this.startDate,end:this.endDate})},setStartRangeDateFromStr:function(e){var t;try{t=E(e)}catch(n){this.startDateText=this.startDate}t&&(this.fromPickerSelectedDates=[t,t]),this.rangeChanged()},setEndRangeDateFromStr:function(e){var t;try{t=E(e)}catch(n){this.endDateText=this.endDate}t&&(this.toPickerSelectedDates=[t,t]),this.rangeChanged()},rangeChanged:function(){this.$emit("rangeChange",{start:S(this.fromPickerSelectedDates[0]),end:S(this.toPickerSelectedDates[0])})}}});cr.render=ir;var sr=cr; + */function or(e,t,n,r,i,o){var c=Object(a["resolveComponent"])("DatePicker");return Object(a["openBlock"])(),Object(a["createElementBlock"])(a["Fragment"],null,[Object(a["createElementVNode"])("div",ir,[Object(a["createElementVNode"])("h6",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("General_DateRangeFrom"))+" ",1),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"text",id:"inputCalendarFrom",name:"inputCalendarFrom",class:"browser-default","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.startDateText=t}),onChange:t[1]||(t[1]=function(t){return e.onRangeInputChanged("from",t)}),onKeyup:t[2]||(t[2]=function(t){return e.handleEnterPress(t)})},null,544),[[a["vModelText"],e.startDateText]])]),Object(a["createVNode"])(c,{id:"calendarFrom","view-date":e.startDate,"selected-date-start":e.fromPickerSelectedDates[0],"selected-date-end":e.fromPickerSelectedDates[1],"highlighted-date-start":e.fromPickerHighlightedDates[0],"highlighted-date-end":e.fromPickerHighlightedDates[1],onDateSelect:t[3]||(t[3]=function(t){return e.setStartRangeDate(t.date)}),onCellHover:t[4]||(t[4]=function(t){return e.fromPickerHighlightedDates=e.getNewHighlightedDates(t.date,t.$cell)}),onCellHoverLeave:t[5]||(t[5]=function(t){return e.fromPickerHighlightedDates=[null,null]})},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end"])]),Object(a["createElementVNode"])("div",ar,[Object(a["createElementVNode"])("h6",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("General_DateRangeTo"))+" ",1),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"text",id:"inputCalendarTo",name:"inputCalendarTo",class:"browser-default","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.endDateText=t}),onChange:t[7]||(t[7]=function(t){return e.onRangeInputChanged("to",t)}),onKeyup:t[8]||(t[8]=function(t){return e.handleEnterPress(t)})},null,544),[[a["vModelText"],e.endDateText]])]),Object(a["createVNode"])(c,{id:"calendarTo","view-date":e.endDate,"selected-date-start":e.toPickerSelectedDates[0],"selected-date-end":e.toPickerSelectedDates[1],"highlighted-date-start":e.toPickerHighlightedDates[0],"highlighted-date-end":e.toPickerHighlightedDates[1],onDateSelect:t[9]||(t[9]=function(t){return e.setEndRangeDate(t.date)}),onCellHover:t[10]||(t[10]=function(t){return e.toPickerHighlightedDates=e.getNewHighlightedDates(t.date,t.$cell)}),onCellHoverLeave:t[11]||(t[11]=function(t){return e.toPickerHighlightedDates=[null,null]})},null,8,["view-date","selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end"])])],64)}var cr=Object(a["defineComponent"])({props:{startDate:String,endDate:String},components:{DatePicker:rr},data:function(){var e=null;try{e=P(this.startDate)}catch(n){}var t=null;try{t=P(this.endDate)}catch(n){}return{fromPickerSelectedDates:[e,e],toPickerSelectedDates:[t,t],fromPickerHighlightedDates:[null,null],toPickerHighlightedDates:[null,null],startDateText:this.startDate,endDateText:this.endDate}},emits:["rangeChange","submit"],watch:{startDate:function(){this.startDateText=this.startDate,this.setStartRangeDateFromStr(this.startDate)},endDate:function(){this.endDateText=this.endDate,this.setEndRangeDateFromStr(this.endDate)}},mounted:function(){this.rangeChanged()},methods:{setStartRangeDate:function(e){this.fromPickerSelectedDates=[e,e],this.rangeChanged()},setEndRangeDate:function(e){this.toPickerSelectedDates=[e,e],this.rangeChanged()},onRangeInputChanged:function(e,t){"from"===e?this.setStartRangeDateFromStr(t.target.value):this.setEndRangeDateFromStr(t.target.value)},getNewHighlightedDates:function(e,t){return t.hasClass("ui-datepicker-unselectable")?null:[e,e]},handleEnterPress:function(e){13===e.keyCode&&this.$emit("submit",{start:this.startDate,end:this.endDate})},setStartRangeDateFromStr:function(e){var t;try{t=P(e)}catch(n){this.startDateText=this.startDate}t&&(this.fromPickerSelectedDates=[t,t]),this.rangeChanged()},setEndRangeDateFromStr:function(e){var t;try{t=P(e)}catch(n){this.endDateText=this.endDate}t&&(this.toPickerSelectedDates=[t,t]),this.rangeChanged()},rangeChanged:function(){this.$emit("rangeChange",{start:C(this.fromPickerSelectedDates[0]),end:C(this.toPickerSelectedDates[0])})}}});cr.render=or;var sr=cr; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */wt({component:sr,scope:{startDate:{angularJsBind:"<"},endDate:{angularJsBind:"<"},rangeChange:{angularJsBind:"&"},submit:{angularJsBind:"&"}},directiveName:"piwikDateRangePicker",restrict:"E"});function lr(e,t,n,r,a,i){var c=Object(o["resolveComponent"])("DatePicker");return Object(o["openBlock"])(),Object(o["createBlock"])(c,{"selected-date-start":e.selectedDates[0],"selected-date-end":e.selectedDates[1],"highlighted-date-start":e.highlightedDates[0],"highlighted-date-end":e.highlightedDates[1],"view-date":e.viewDate,"step-months":"year"===e.period?12:1,"disable-month-dropdown":"year"===e.period,onCellHover:t[0]||(t[0]=function(t){return e.onHoverNormalCell(t.date,t.$cell)}),onCellHoverLeave:t[1]||(t[1]=function(t){return e.onHoverLeaveNormalCells()}),onDateSelect:t[2]||(t[2]=function(t){return e.onDateSelected(t.date)})},null,8,["selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","view-date","step-months","disable-month-dropdown"])}var ur=new Date(D.minDateYear,D.minDateMonth-1,D.minDateDay),dr=new Date(D.maxDateYear,D.maxDateMonth-1,D.maxDateDay),pr=Object(o["defineComponent"])({props:{period:String,date:[String,Date]},components:{DatePicker:rr},emits:["select"],setup:function(e,t){var n=Object(o["ref"])(e.date),r=Object(o["ref"])([null,null]),a=Object(o["ref"])([null,null]);function i(t){var n=p.get(e.period).parse(t).getDateRange();return n[0]=ur<n[0]?n[0]:ur,n[1]=dr>n[1]?n[1]:dr,n}function c(t,n){var r=t<ur||t>dr,o=n.hasClass("ui-datepicker-other-month")&&("month"===e.period||"day"===e.period);a.value=r||o?[null,null]:i(t)}function s(){a.value=[null,null]}function l(e){t.emit("select",{date:e})}function u(){e.period&&e.date?r.value=i(e.date):r.value=[null,null]}return Object(o["watch"])(e,u),u(),{selectedDates:r,highlightedDates:a,viewDate:n,onHoverNormalCell:c,onHoverLeaveNormalCells:s,onDateSelected:l}}});pr.render=lr;var fr=pr,mr=(wt({component:fr,scope:{period:{angularJsBind:"<"},date:{angularJsBind:"<"},select:{angularJsBind:"&"}},directiveName:"piwikPeriodDatePicker",restrict:"E"}),{class:"loadingPiwik"}),hr=Object(o["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1); + */wt({component:sr,scope:{startDate:{angularJsBind:"<"},endDate:{angularJsBind:"<"},rangeChange:{angularJsBind:"&"},submit:{angularJsBind:"&"}},directiveName:"piwikDateRangePicker",restrict:"E"});function lr(e,t,n,r,i,o){var c=Object(a["resolveComponent"])("DatePicker");return Object(a["openBlock"])(),Object(a["createBlock"])(c,{"selected-date-start":e.selectedDates[0],"selected-date-end":e.selectedDates[1],"highlighted-date-start":e.highlightedDates[0],"highlighted-date-end":e.highlightedDates[1],"view-date":e.viewDate,"step-months":"year"===e.period?12:1,"disable-month-dropdown":"year"===e.period,onCellHover:t[0]||(t[0]=function(t){return e.onHoverNormalCell(t.date,t.$cell)}),onCellHoverLeave:t[1]||(t[1]=function(t){return e.onHoverLeaveNormalCells()}),onDateSelect:t[2]||(t[2]=function(t){return e.onDateSelected(t.date)})},null,8,["selected-date-start","selected-date-end","highlighted-date-start","highlighted-date-end","view-date","step-months","disable-month-dropdown"])}var ur=new Date(j.minDateYear,j.minDateMonth-1,j.minDateDay),dr=new Date(j.maxDateYear,j.maxDateMonth-1,j.maxDateDay),fr=Object(a["defineComponent"])({props:{period:String,date:[String,Date]},components:{DatePicker:rr},emits:["select"],setup:function(e,t){var n=Object(a["ref"])(e.date),r=Object(a["ref"])([null,null]),i=Object(a["ref"])([null,null]);function o(t){var n=f.get(e.period).parse(t).getDateRange();return n[0]=ur<n[0]?n[0]:ur,n[1]=dr>n[1]?n[1]:dr,n}function c(t,n){var r=t<ur||t>dr,a=n.hasClass("ui-datepicker-other-month")&&("month"===e.period||"day"===e.period);i.value=r||a?[null,null]:o(t)}function s(){i.value=[null,null]}function l(e){t.emit("select",{date:e})}function u(){e.period&&e.date?r.value=o(e.date):r.value=[null,null]}return Object(a["watch"])(e,u),u(),{selectedDates:r,highlightedDates:i,viewDate:n,onHoverNormalCell:c,onHoverLeaveNormalCells:s,onDateSelected:l}}});fr.render=lr;var pr=fr,mr=(wt({component:pr,scope:{period:{angularJsBind:"<"},date:{angularJsBind:"<"},select:{angularJsBind:"&"}},directiveName:"piwikPeriodDatePicker",restrict:"E"}),["value","name"]),hr=["title"],vr=["textContent"],gr={key:1,class:"placeholder"},br={class:"dropdown"},yr={class:"custom_select_search"},wr=["placeholder"],Or={key:0},kr={class:"custom_select_container"},Sr=["onClick"],jr=["innerHTML","href","title"],Dr={class:"ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all\n siteSelect"},Cr={class:"ui-menu-item"},Er={class:"ui-corner-all",tabindex:"-1"},Pr={key:1}; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function vr(e,t,n,r,a,i){return Object(o["withDirectives"])((Object(o["openBlock"])(),Object(o["createElementBlock"])("div",mr,[hr,Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.loadingMessage),1)],512)),[[o["vShow"],e.loading]])}var gr=Object(o["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:C("General_LoadingData")}}});gr.render=vr;var br=gr,yr=wt({component:br,scope:{loading:{vue:"loading",angularJsBind:"<"},loadingMessage:{vue:"loadingMessage",angularJsBind:"<",default:function(){return C("General_LoadingData")}}},$inject:[],directiveName:"piwikActivityIndicator"}); + */function Tr(e,t,n,r,i,o){var c,s,l,u,d=Object(a["resolveComponent"])("AllSitesLink"),f=Object(a["resolveDirective"])("focus-if"),p=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])(["siteSelector piwikSelector borderedControl",{expanded:e.showSitesList,disabled:!e.hasMultipleSites}])},[e.name?(Object(a["openBlock"])(),Object(a["createElementBlock"])("input",{key:0,type:"hidden",value:null===(c=e.selectedSite)||void 0===c?void 0:c.id,name:e.name},null,8,mr)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("a",{ref:"selectorLink",onClick:t[0]||(t[0]=function(){return e.onClickSelector&&e.onClickSelector.apply(e,arguments)}),onKeydown:t[1]||(t[1]=function(t){return e.onPressEnter(t)}),href:"javascript:void(0)",class:Object(a["normalizeClass"])([{loading:e.isLoading},"title"]),tabindex:"4",title:e.selectorLinkTitle},[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])(["icon icon-arrow-bottom",{iconHidden:e.isLoading,collapsed:!e.showSitesList}])},null,2),Object(a["createElementVNode"])("span",null,[null!==(s=e.selectedSite)&&void 0!==s&&s.name||!e.placeholder?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,textContent:Object(a["toDisplayString"])((null===(l=e.selectedSite)||void 0===l?void 0:l.name)||e.firstSiteName)},null,8,vr)):Object(a["createCommentVNode"])("",!0),null!==(u=e.selectedSite)&&void 0!==u&&u.name||!e.placeholder?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",gr,Object(a["toDisplayString"])(e.placeholder),1))])],42,hr),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",br,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",yr,[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"text",onClick:t[2]||(t[2]=function(t){e.searchTerm="",e.loadInitialSites()}),"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.searchTerm=t}),onKeydown:t[4]||(t[4]=function(t){return e.onSearchInputKeydown()}),tabindex:"4",class:"websiteSearch inp browser-default",placeholder:e.translate("General_Search")},null,40,wr),[[a["vModelText"],e.searchTerm],[f,{},e.shouldFocusOnSearch]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("img",{title:"Clear",onClick:t[5]||(t[5]=function(t){e.searchTerm="",e.loadInitialSites()}),class:"reset",src:"plugins/CoreHome/images/reset_search.png"},null,512),[[a["vShow"],e.searchTerm]])],512),[[a["vShow"],e.autocompleteMinSites<=e.sites.length||e.searchTerm]]),"top"===e.allSitesLocation&&e.showAllSitesItem?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Or,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[6]||(t[6]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",kr,[Object(a["createElementVNode"])("ul",{class:"custom_select_ul_list",onClick:t[8]||(t[8]=function(t){return e.showSitesList=!1})},[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sites,(function(n){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{onClick:function(t){return e.switchSite(n,t)},key:n.idsite},[Object(a["createElementVNode"])("a",{onClick:t[7]||(t[7]=function(e){return e.preventDefault()}),innerHTML:e.$sanitize(e.getMatchedSiteName(n.name)),tabindex:"4",href:e.getUrlForSiteId(n.idsite),title:n.name},null,8,jr)],8,Sr)),[[a["vShow"],!(!e.showSelectedSite&&e.activeSiteId===n.idsite)]])})),128))]),Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",Dr,[Object(a["createElementVNode"])("li",Cr,[Object(a["createElementVNode"])("a",Er,Object(a["toDisplayString"])(e.translate("SitesManager_NotFound")+" "+e.searchTerm),1)])],512),[[a["vShow"],!e.sites.length&&e.searchTerm]])]),"bottom"===e.allSitesLocation&&e.showAllSitesItem?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Pr,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[9]||(t[9]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showSitesList]])],2)),[[p,{blur:e.onBlur}]])}var Ir=["innerHTML","href"];function xr(e,t,n,r,i,o){var c=this;return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{onClick:t[1]||(t[1]=function(e){return c.onClick(e)}),class:"custom_select_all"},[Object(a["createElementVNode"])("a",{onClick:t[0]||(t[0]=function(e){return e.preventDefault()}),innerHTML:e.$sanitize(e.allSitesText),tabindex:"4",href:e.href},null,8,Ir)])}var Nr=Object(a["defineComponent"])({props:{href:String,allSitesText:String},emits:["click"],methods:{onClick:function(e){this.$emit("click",e)}}});Nr.render=xr;var Br=Nr;function Mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ar(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mr(Object(n),!0).forEach((function(t){Hr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function $r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Vr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Lr(e,t,n){return t&&Vr(e.prototype,t),n&&Vr(e,n),e}function Hr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function wr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kr(e,t,n,r,a,i){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:Object(o["normalizeClass"])(["alert",wr({},"alert-".concat(e.severity),!0)])},[Object(o["renderSlot"])(e.$slots,"default")],2)}var Or=Object(o["defineComponent"])({props:{severity:{type:String,required:!0}}});Or.render=kr;var jr=Or,Dr=wt({component:jr,scope:{severity:{vue:"severity",angularJsBind:"@piwikAlert"}},directiveName:"piwikAlert",transclude:!0}); + */var Fr=function(){function e(){var t=this;$r(this,e),Hr(this,"state",Object(a["reactive"])({initialSites:[],isInitialized:!1})),Hr(this,"currentRequest",void 0),Hr(this,"limitRequest",void 0),Hr(this,"initialSites",Object(a["computed"])((function(){return Object(a["readonly"])(t.state.initialSites)})))}return Lr(e,[{key:"loadInitialSites",value:function(){var e=this;return this.state.isInitialized?Promise.resolve(Object(a["readonly"])(this.state.initialSites)):this.searchSite("%").then((function(t){return e.state.isInitialized=!0,e.state.initialSites=t,Object(a["readonly"])(t)}))}},{key:"loadSite",value:function(e){"all"===e?Oe.updateUrl(Ar(Ar({},Oe.urlParsed.value),{},{module:"MultiSites",action:"index",date:Oe.parsed.value.date,period:Oe.parsed.value.period})):Oe.updateUrl(Ar(Ar({},Oe.parsed.value),{},{segment:"",idSite:e}))}},{key:"searchSite",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?(this.currentRequest&&this.currentRequest.abort(),this.limitRequest&&(this.limitRequest.abort(),this.limitRequest=null),this.limitRequest||(this.limitRequest=Ne.fetch({method:"SitesManager.getNumWebsitesToDisplayPerPage"})),this.limitRequest.then((function(r){var i=r.value,a="SitesManager.getPatternMatchSites";return n&&(a="SitesManager.getSitesWithAdminAccess"),t.currentRequest=Ne.fetch({method:a,limit:i,pattern:e}),t.currentRequest})).then((function(e){return e?t.processWebsitesList(e):null})).finally((function(){t.currentRequest=null}))):this.loadInitialSites()}},{key:"processWebsitesList",value:function(e){var t=e;return t&&t.length?(t=t.map((function(e){return Ar(Ar({},e),{},{name:e.group?"[".concat(e.group,"] ").concat(e.name):e.name})})),t.sort((function(e,t){return e.name.toLowerCase()<t.name.toLowerCase()?-1:e.name.toLowerCase()>t.name.toLowerCase()?1:0})),t):[]}}]),e}(),_r=new Fr,Rr=300;function Ur(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Rr;return function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];t&&clearTimeout(t),t=setTimeout((function(){e.apply(void 0,i)}),n)}}function qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Jr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qr(Object(n),!0).forEach((function(t){Gr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Gr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var zr=Object(a["defineComponent"])({props:{modelValue:{Object:Object,default:{id:j.idSite,name:j.helper.htmlDecode(j.siteName)}},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:D("General_MultiSitesSummary")},allSitesLocation:{type:String,default:"bottom"},placeholder:String},emits:["update:modelValue","blur"],components:{AllSitesLink:Br},directives:{FocusAnywhereButHere:_e,FocusIf:qe},watch:{modelValue:{handler:function(e){this.selectedSite=Jr({},e)},deep:!0}},data:function(){return{searchTerm:"",activeSiteId:j.idSite,showSitesList:!1,isLoading:!1,sites:[],selectedSite:{id:j.idSite,name:j.helper.htmlDecode(j.siteName)},autocompleteMinSites:parseInt(j.config.autocomplete_min_sites,10)}},mounted:function(){var e=this;window.initTopControls(),this.loadInitialSites().then((function(){e.selectedSite&&e.selectedSite.id||!e.sites[0]||(e.selectedSite={id:e.sites[0].idsite,name:e.sites[0].name},e.$emit("update:modelValue",Jr({},e.selectedSite)))}));var t=D("CoreHome_ShortcutWebsiteSelector");j.helper.registerShortcut("w",t,(function(t){t.altKey||(t.preventDefault?t.preventDefault():t.returnValue=!1,e.$refs.selectorLink.click(),e.$refs.selectorLink.focus())}))},created:function(){this.onSearchInputKeydown=Ur(this.onSearchInputKeydown.bind(this))},computed:{shouldFocusOnSearch:function(){return this.showSitesList&&this.autocompleteMinSites<=this.sites.length||this.searchTerm},selectorLinkTitle:function(){var e;return this.hasMultipleSites?D("CoreHome_ChangeCurrentWebsite",(null===(e=this.selectedSite)||void 0===e?void 0:e.name)||this.firstSiteName):""},hasMultipleSites:function(){return _r.initialSites.value&&_r.initialSites.value.length>1},firstSiteName:function(){return this.sites&&this.sites.length>0?this.sites[0].name:""},urlAllSites:function(){var e=Oe.stringify(Jr(Jr({},Oe.urlParsed.value),{},{module:"MultiSites",action:"index",date:Oe.parsed.value.date,period:Oe.parsed.value.period}));return"?".concat(e)}},methods:{onAllSitesClick:function(e){this.switchSite({idsite:"all",name:this.allSitesText},e),this.showSitesList=!1},switchSite:function(e,t){var n=-1!==navigator.userAgent.indexOf("Mac OS X")?t.metaKey:t.ctrlKey;t&&n&&t.target&&t.target.href?window.open(t.target.href,"_blank"):(this.selectedSite={id:e.idsite,name:e.name},this.$emit("update:modelValue",Jr({},this.selectedSite)),this.switchSiteOnSelect&&this.activeSiteId!==e.idsite&&_r.loadSite(e.idsite))},onBlur:function(){this.showSitesList=!1,this.$emit("blur")},onClickSelector:function(){this.hasMultipleSites&&(this.showSitesList=!this.showSitesList,this.isLoading||this.searchTerm||this.loadInitialSites())},onPressEnter:function(e){"Enter"===e.key&&(e.preventDefault(),this.showSitesList=!this.showSitesList,this.showSitesList&&!this.isLoading&&this.loadInitialSites())},onSearchInputKeydown:function(){var e=this;setTimeout((function(){e.searchSite(e.searchTerm)}))},getMatchedSiteName:function(e){var t=e.toUpperCase().indexOf(this.searchTerm.toUpperCase());if(-1===t)return j.helper.htmlEntities(e);var n=j.helper.htmlEntities(e.substring(0,t)),r=j.helper.htmlEntities(e.substring(t+this.searchTerm.length));return"".concat(n,'<span class="autocompleteMatched">').concat(this.searchTerm,"</span>").concat(r)},loadInitialSites:function(){var e=this;return _r.loadInitialSites().then((function(t){e.sites=t||[]}))},searchSite:function(e){var t=this;this.isLoading=!0,_r.searchSite(e,this.onlySitesWithAdminAccess).then((function(e){e&&(t.sites=e)})).finally((function(){t.isLoading=!1}))},getUrlForSiteId:function(e){var t=Oe.stringify(Jr(Jr({},Oe.urlParsed.value),{},{segment:"",idSite:e})),n=Oe.stringify(Jr(Jr({},Oe.hashParsed.value),{},{segment:"",idSite:e}));return"?".concat(t,"#?").concat(n)}}});zr.render=Tr;var Qr=zr;function Kr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Kr(Object(n),!0).forEach((function(t){Yr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Kr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Yr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */function Cr(e,t,n){var r=new Date;n||(n=432e4),r.setTime(r.getTime()+n),document.cookie="".concat(e,"=").concat(t,"; expires=").concat(r.toUTCString(),"; path=/")}function Sr(e){var t="; ".concat(document.cookie),n=t.split("; ".concat(e,"="));if(2==n.length){var r=n.pop().split(";").shift();if("undefined"!==typeof r)return r}return null}function Pr(e){var t=new Date;t.setTime(t.getTime()+-864e5),document.cookie="".concat(e,"=; expires=").concat(t.toUTCString(),"; path=/")}var Er={key:0},Tr=["data-notification-instance-id"],xr={key:1},Ir={class:"notification-body"},Nr=["innerHTML"],$r={key:1};function Br(e,t,n,r,a,i){return Object(o["openBlock"])(),Object(o["createBlock"])(o["Transition"],{name:"toast"===e.type?"slow-fade-out":void 0,onAfterLeave:t[1]||(t[1]=function(t){return e.toastClosed()})},{default:Object(o["withCtx"])((function(){return[e.deleted?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Er,[Object(o["createVNode"])(o["Transition"],{name:"toast"===e.type?"toast-slide-up":void 0,appear:""},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("div",null,[Object(o["createVNode"])(o["Transition"],{name:e.animate?"fade-in":void 0,appear:""},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["notification system",e.cssClasses]),style:Object(o["normalizeStyle"])(e.style),ref:"root","data-notification-instance-id":e.notificationInstanceId},[e.canClose?(Object(o["openBlock"])(),Object(o["createElementBlock"])("button",{key:0,type:"button",class:"close","data-dismiss":"alert",onClick:t[0]||(t[0]=function(t){return e.closeNotification(t)})}," × ")):Object(o["createCommentVNode"])("",!0),e.title?(Object(o["openBlock"])(),Object(o["createElementBlock"])("strong",xr,Object(o["toDisplayString"])(e.title),1)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",Ir,[e.message?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,Nr)):Object(o["createCommentVNode"])("",!0),e.message?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",$r,[Object(o["renderSlot"])(e.$slots,"default")]))])],14,Tr)]})),_:3},8,["name"])])]})),_:3},8,["name"])]))]})),_:3},8,["name"])}var Hr=window,Ar=Hr.$,Mr=Object(o["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:function(){var e={};return this.context&&(e["notification-".concat(this.context)]=!0),this.cssClass&&(e[this.cssClass]=!0),e},canClose:function(){return"persistent"===this.type||!this.noclear}},emits:["closed"],data:function(){return{deleted:!1}},mounted:function(){var e=this,t=function(){setTimeout((function(){e.deleted=!0}),e.toastLength)};"toast"===this.type&&t(),this.style&&Ar(this.$refs.root).css(this.style)},methods:{toastClosed:function(){var e=this;Object(o["nextTick"])((function(){e.$emit("closed")}))},closeNotification:function(e){var t=this;this.canClose&&e&&e.target&&(this.deleted=!0,Object(o["nextTick"])((function(){t.$emit("closed")}))),this.markNotificationAsRead()},markNotificationAsRead:function(){this.notificationId&&Ne.fetch({module:"CoreHome",action:"markNotificationAsRead"},{postParams:{notificationId:this.notificationId}})}}});Mr.render=Br;var Fr=Mr; + */wt({component:Qr,require:"?ngModel",scope:{showSelectedSite:{angularJsBind:"="},showAllSitesItem:{angularJsBind:"="},switchSiteOnSelect:{angularJsBind:"="},onlySitesWithAdminAccess:{angularJsBind:"="},name:{angularJsBind:"@"},allSitesText:{angularJsBind:"@"},allSitesLocation:{angularJsBind:"@"},placeholder:{angularJsBind:"@"},modelValue:{}},$inject:["$timeout"],directiveName:"piwikSiteselector",events:{"update:modelValue":function(e,t,n,r,i,a){(e&&!t.modelValue||!e&&t.modelValue||e.id!==t.modelValue.id)&&(r.attr("siteid",e.id),r.trigger("change",e),a&&a.$setViewValue(e))},blur:function(e,t,n){setTimeout((function(){return n.$apply()}))}},postCreate:function(e,t,n,r,i,a){var o=i;o&&(o.$setViewValue(e.modelValue),o.$render=function(){angular.isString(o.$viewValue)?e.modelValue=JSON.parse(o.$viewValue):e.modelValue=o.$viewValue}),a((function(){r.siteid&&r.sitename&&(e.modelValue={id:r.siteid,name:j.helper.htmlDecode(r.sitename)},o.$setViewValue(Wr({},e.modelValue)))}))}});var Xr={ref:"root",class:"quickAccessInside"},Zr=["title"],ei={class:"dropdown"},ti={class:"no-result"},ni=["onClick"],ri=["onMouseenter","onClick"],ii={class:"quickAccessMatomoSearch"},ai=["onMouseenter","onClick"],oi=["textContent"],ci={class:"quick-access-category helpCategory"},si=["href"];function li(e,t,n,r,i,o){var c=Object(a["resolveDirective"])("focus-if"),s=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Xr,[Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{class:"icon-search",onMouseenter:t[0]||(t[0]=function(t){return e.searchActive=!0})},null,544),[[a["vShow"],!(e.searchTerm||e.searchActive)]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{class:"s",onKeydown:t[1]||(t[1]=function(t){return e.onKeypress(t)}),onFocus:t[2]||(t[2]=function(t){return e.searchActive=!0}),"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.searchTerm=t}),type:"text",tabindex:"2",title:e.quickAccessTitle},null,40,Zr),[[a["vModelText"],e.searchTerm],[c,{},e.searchActive]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",ei,[Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",ti,Object(a["toDisplayString"])(e.translate("General_SearchNoResults")),1)],512),[[a["vShow"],!(e.numMenuItems>0||e.sites.length)]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.menuItems,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("ul",{key:t.title},[Object(a["createElementVNode"])("li",{class:"quick-access-category",onClick:function(n){e.searchTerm=t.title,e.searchMenu(e.searchTerm)}},Object(a["toDisplayString"])(t.title),9,ni),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.items,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["result",{selected:t.menuIndex===e.searchIndex}]),onMouseenter:function(n){return e.searchIndex=t.menuIndex},onClick:function(n){return e.selectMenuItem(t.index)},key:t.index},[Object(a["createElementVNode"])("a",null,Object(a["toDisplayString"])(t.name.trim()),1)],42,ri)})),128))])})),128)),Object(a["createElementVNode"])("ul",ii,[Object(a["withDirectives"])(Object(a["createElementVNode"])("li",{class:"quick-access-category websiteCategory"},Object(a["toDisplayString"])(e.translate("SitesManager_Sites")),513),[[a["vShow"],e.hasSitesSelector&&e.sites.length||e.isLoading]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("li",{class:"no-result"},Object(a["toDisplayString"])(e.translate("MultiSites_LoadingWebsites")),513),[[a["vShow"],e.hasSitesSelector&&e.isLoading]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sites,(function(t,n){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["result",{selected:e.numMenuItems+n===e.searchIndex}]),onMouseenter:function(t){return e.searchIndex=e.numMenuItems+n},onClick:function(n){return e.selectSite(t.idsite)},key:t.idsite},[Object(a["createElementVNode"])("a",{textContent:Object(a["toDisplayString"])(t.name)},null,8,oi)],42,ai)),[[a["vShow"],e.hasSitesSelector&&!e.isLoading]])})),128))]),Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",ci,Object(a["toDisplayString"])(e.translate("General_HelpResources")),1),Object(a["createElementVNode"])("li",{class:Object(a["normalizeClass"])([{selected:"help"===e.searchIndex},"quick-access-help"]),onMouseenter:t[4]||(t[4]=function(t){return e.searchIndex="help"})},[Object(a["createElementVNode"])("a",{href:"https://matomo.org?s=".concat(encodeURIComponent(e.searchTerm)),target:"_blank"},Object(a["toDisplayString"])(e.translate("CoreHome_SearchOnMatomo",e.searchTerm)),9,si)],34)])],512),[[a["vShow"],e.searchTerm&&e.searchActive]])],512)),[[s,{blur:e.onBlur}]])}function ui(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function di(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ui(Object(n),!0).forEach((function(t){fi(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ui(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pi(e){var t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=window.$(window).height()&&t.right<=window.$(window).width()}function mi(e){e&&e.scrollIntoView&&e.scrollIntoView()}var hi=Object(a["defineComponent"])({props:{},directives:{FocusAnywhereButHere:_e,FocusIf:qe},watch:{searchActive:function(e){var t=this.$refs.root.parentElement.classList;t.toggle("active",e),t.toggle("expanded",e)}},mounted:function(){var e=this;this.$refs.root.parentElement.classList.add("quick-access","piwikSelector"),"undefined"!==typeof window.initTopControls&&window.initTopControls&&window.initTopControls(),j.helper.registerShortcut("f",D("CoreHome_ShortcutSearch"),(function(t){t.altKey||(t.preventDefault(),mi(e.$refs.root),e.activateSearch())}))},data:function(){var 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:function(){this.searchMenu=Ur(this.searchMenu.bind(this))},computed:{hasSitesSelector:function(){return!!document.querySelector(".top_controls [piwik-siteselector]")},quickAccessTitle:function(){var e="",t=[D("CoreHome_MenuEntries")];this.hasSegmentSelector&&t.push(D("CoreHome_Segments")),this.hasSitesSelector&&t.push(D("SitesManager_Sites"));while(t.length)e+=t.shift(),t.length>=2?e+=", ":1===t.length&&(e+=" ".concat(D("General_And")," "));return D("CoreHome_QuickAccessTitle",e)}},emits:["itemSelected","blur"],methods:{onKeypress:function(e){var t=this,n=this.searchTerm&&this.searchActive,r=9===e.which,i=27===e.which;38===e.which?(this.highlightPreviousItem(),e.preventDefault()):40===e.which?(this.highlightNextItem(),e.preventDefault()):13===e.which?this.clickQuickAccessMenuItem():r&&n||i&&n?this.deactivateSearch():setTimeout((function(){t.searchActive=!0,t.searchMenu(t.searchTerm)}))},highlightPreviousItem:function(){this.searchIndex-1<0?this.searchIndex=0:this.searchIndex-=1,this.makeSureSelectedItemIsInViewport()},highlightNextItem:function(){var e=this.$refs.root.querySelectorAll("li.result").length;e<=this.searchIndex+1?this.searchIndex=e-1:this.searchIndex+=1,this.makeSureSelectedItemIsInViewport()},clickQuickAccessMenuItem:function(){var e=this,t=this.getCurrentlySelectedElement();t&&setTimeout((function(){t.click(),e.$emit("itemSelected",t)}),20)},deactivateSearch:function(){this.searchTerm="",this.searchActive=!1,this.$refs.root.querySelector("input").blur()},makeSureSelectedItemIsInViewport:function(){var e=this.getCurrentlySelectedElement();e&&!pi(e)&&mi(e)},getCurrentlySelectedElement:function(){var e=this.$refs.root.querySelectorAll("li.result");return e&&e.length&&e.item(this.searchIndex)?e.item(this.searchIndex):null},searchMenu:function(e){var t=this,n=e.toLowerCase(),r=-1,i={},a=[],o=function(e){var t=di({},e);r+=1,t.menuIndex=r;var n=t.category;n in i||(a.push({title:n,items:[]}),i[n]=a.length-1);var o=i[n];a[o].items.push(t)};this.resetSearchIndex(),this.hasSitesSelector&&(this.isLoading=!0,_r.searchSite(n).then((function(e){t.sites=e})).finally((function(){t.isLoading=!1})));var c=function(e){return-1!==e.name.toLowerCase().indexOf(n)||-1!==e.category.toLowerCase().indexOf(n)};null===this.topMenuItems&&(this.topMenuItems=this.getTopMenuItems()),null===this.leftMenuItems&&(this.leftMenuItems=this.getLeftMenuItems()),null===this.segmentItems&&(this.segmentItems=this.getSegmentItems());var s=this.topMenuItems.filter(c),l=this.leftMenuItems.filter(c),u=this.segmentItems.filter(c);s.forEach(o),l.forEach(o),u.forEach(o),this.numMenuItems=s.length+l.length+u.length,this.menuItems=a},resetSearchIndex:function(){this.searchIndex=0,this.makeSureSelectedItemIsInViewport()},selectSite:function(e){_r.loadSite(e)},selectMenuItem:function(e){var t=document.querySelector("[quick_access='".concat(e,"']"));if(t){this.deactivateSearch();var n=t.getAttribute("href");if(n&&n.length>10&&t&&t.click)try{t.click()}catch(r){window.$(t).click()}else window.$(t).click()}},onBlur:function(){this.searchActive=!1,this.$emit("blur")},activateSearch:function(){this.searchActive=!0},getTopMenuItems:function(){var e=this,t=D("CoreHome_Menu"),n=[];return document.querySelectorAll("nav .sidenav li > a").forEach((function(r){var i=r.textContent.trim();i||(i=r.getAttribute("title").trim()),i&&(n.push({name:i,index:e.menuIndexCounter+=1,category:t}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))})),n},getLeftMenuItems:function(){var e=this,t=[];return document.querySelectorAll("#secondNavBar .menuTab").forEach((function(n){var r=window.$(n).find("> .item").text().trim();r&&-1!==r.lastIndexOf("\n")&&(r=r.substr(0,r.lastIndexOf("\n")).trim()),window.$(n).find("li .item").each((function(n,i){var a=i.textContent.trim();a&&(t.push({name:a,category:r,index:e.menuIndexCounter+=1}),i.setAttribute("quick_access","".concat(e.menuIndexCounter)))}))})),t},getSegmentItems:function(){var e=this;if(!this.hasSegmentSelector)return[];var t=D("CoreHome_Segments"),n=[];return document.querySelectorAll(".segmentList [data-idsegment]").forEach((function(r){var i=r.querySelector(".segname").textContent.trim();i&&(n.push({name:i,category:t,index:e.menuIndexCounter+=1}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))})),n}}});hi.render=li;var vi=hi,gi=(wt({component:vi,directiveName:"piwikQuickAccess",events:{itemSelected:function(e,t,n,r,i,a,o){o()},blur:function(e,t,n){setTimeout((function(){return n.$apply()}))}}}),{class:"loadingPiwik"}),bi=Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1); /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */wt({component:Fr,scope:{notificationId:{angularJsBind:"@?"},title:{angularJsBind:"@?notificationTitle"},context:{angularJsBind:"@?"},type:{angularJsBind:"@?"},noclear:{angularJsBind:"@?",transform:function(e){return!!e}},toastLength:{angularJsBind:"@?"}},directiveName:"piwikNotification",transclude:!0});function Vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Lr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vr(Object(n),!0).forEach((function(t){Jr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Rr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ur(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _r(e,t,n){return t&&Ur(e.prototype,t),n&&Ur(e,n),e}function Jr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} + */function yi(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",gi,[bi,Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.loadingMessage),1)],512)),[[a["vShow"],e.loading]])}var wi=Object(a["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:D("General_LoadingData")}}});wi.render=yi;var Oi=wi,ki=wt({component:Oi,scope:{loading:{vue:"loading",angularJsBind:"<"},loadingMessage:{vue:"loadingMessage",angularJsBind:"<",default:function(){return D("General_LoadingData")}}},$inject:[],directiveName:"piwikActivityIndicator"}); /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var Gr=function(){function e(){Rr(this,e),Jr(this,"privateState",Object(o["reactive"])({notifications:[]})),Jr(this,"nextNotificationId",0)}return _r(e,[{key:"state",get:function(){return this.privateState}},{key:"appendNotification",value:function(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.push(e)}},{key:"prependNotification",value:function(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.unshift(e)}},{key:"remove",value:function(e){this.privateState.notifications=this.privateState.notifications.filter((function(t){return t.id!==e}))}},{key:"parseNotificationDivs",value:function(){var e=this,t=$('[data-role="notification"]'),n=[];t.each((function(e,r){var a=$(r),o=a.data(),i=a.html();i&&n.push(Lr(Lr({},o),{},{message:i,animate:!1})),t.remove()})),n.forEach((function(t){return e.show(t)}))}},{key:"clearTransientNotifications",value:function(){this.privateState.notifications=this.privateState.notifications.filter((function(e){return"transient"!==e.type}))}},{key:"show",value:function(e){this.checkMessage(e.message);var t=this.appendNotification,n="#notificationContainer";if(e.placeat)n=e.placeat;else{var r=".modal.open .modal-content";document.querySelector(r)&&(n=r,t=this.prependNotification)}var a=e.group||(e.placeat?e.placeat.toString():"");this.initializeNotificationContainer(n,a);var o=(this.nextNotificationId+=1).toString();return t.call(this,Lr(Lr({},e),{},{noclear:!!e.noclear,group:a,notificationId:e.id,notificationInstanceId:o,type:e.type||"transient"})),o}},{key:"scrollToNotification",value:function(e){setTimeout((function(){var t=document.querySelector("[data-notification-instance-id='".concat(e,"']"));t&&D.helper.lazyScrollTo(t,250)}))}},{key:"toast",value:function(e){this.checkMessage(e.message);var t=$(e.placeat);if(!t.length)throw new Error("A valid selector is required for the placeat option when using Notification.toast().");var n=document.createElement("div");n.style.position="absolute",n.style.top="".concat(t.offset().top,"px"),n.style.left="".concat(t.offset().left,"px"),n.style.zIndex="1000",document.body.appendChild(n);var r=Object(o["createApp"])({render:function(){return Object(o["createVNode"])(Fr,Lr(Lr({},e),{},{notificationId:e.id,type:"toast",onClosed:function(){r.unmount()}}))}});r.config.globalProperties.$sanitize=window.vueSanitize,r.config.globalProperties.translate=C,r.mount(n)}},{key:"initializeNotificationContainer",value:function(e,t){var n=window.$(e);if(!n.children(".notification-group").length){var r=window.CoreHome.NotificationGroup,a=Object(o["createApp"])({template:'<NotificationGroup :group="group"></NotificationGroup>',data:function(){return{group:t}}});a.config.globalProperties.$sanitize=window.vueSanitize,a.config.globalProperties.translate=C,a.component("NotificationGroup",r),a.mount(n[0])}}},{key:"checkMessage",value:function(e){if(!e)throw new Error("No message given, cannot display notification")}}]),e}(),qr=new Gr,zr=qr;$((function(){return qr.parseNotificationDivs()})), + */function Si(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ji(e,t,n,r,i,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])(["alert",Si({},"alert-".concat(e.severity),!0)])},[Object(a["renderSlot"])(e.$slots,"default")],2)}var Di=Object(a["defineComponent"])({props:{severity:{type:String,required:!0}}});Di.render=ji;var Ci=Di,Ei=wt({component:Ci,scope:{severity:{vue:"severity",angularJsBind:"@piwikAlert"}},directiveName:"piwikAlert",transclude:!0}); +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */function Pi(e,t,n){var r=new Date;n||(n=432e4),r.setTime(r.getTime()+n),document.cookie="".concat(e,"=").concat(t,"; expires=").concat(r.toUTCString(),"; path=/")}function Ti(e){var t="; ".concat(document.cookie),n=t.split("; ".concat(e,"="));if(2==n.length){var r=n.pop().split(";").shift();if("undefined"!==typeof r)return r}return null}function Ii(e){var t=new Date;t.setTime(t.getTime()+-864e5),document.cookie="".concat(e,"=; expires=").concat(t.toUTCString(),"; path=/")}var xi={key:0},Ni=["data-notification-instance-id"],Bi={key:1},Mi={class:"notification-body"},Ai=["innerHTML"],$i={key:1};function Vi(e,t,n,r,i,o){return Object(a["openBlock"])(),Object(a["createBlock"])(a["Transition"],{name:"toast"===e.type?"slow-fade-out":void 0,onAfterLeave:t[1]||(t[1]=function(t){return e.toastClosed()})},{default:Object(a["withCtx"])((function(){return[e.deleted?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",xi,[Object(a["createVNode"])(a["Transition"],{name:"toast"===e.type?"toast-slide-up":void 0,appear:""},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(a["Transition"],{name:e.animate?"fade-in":void 0,appear:""},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["notification system",e.cssClasses]),style:Object(a["normalizeStyle"])(e.style),ref:"root","data-notification-instance-id":e.notificationInstanceId},[e.canClose?(Object(a["openBlock"])(),Object(a["createElementBlock"])("button",{key:0,type:"button",class:"close","data-dismiss":"alert",onClick:t[0]||(t[0]=function(t){return e.closeNotification(t)})}," × ")):Object(a["createCommentVNode"])("",!0),e.title?(Object(a["openBlock"])(),Object(a["createElementBlock"])("strong",Bi,Object(a["toDisplayString"])(e.title),1)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Mi,[e.message?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,Ai)):Object(a["createCommentVNode"])("",!0),e.message?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",$i,[Object(a["renderSlot"])(e.$slots,"default")]))])],14,Ni)]})),_:3},8,["name"])])]})),_:3},8,["name"])]))]})),_:3},8,["name"])}var Li=window,Hi=Li.$,Fi=Object(a["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:function(){var e={};return this.context&&(e["notification-".concat(this.context)]=!0),this.cssClass&&(e[this.cssClass]=!0),e},canClose:function(){return"persistent"===this.type||!this.noclear}},emits:["closed"],data:function(){return{deleted:!1}},mounted:function(){var e=this,t=function(){setTimeout((function(){e.deleted=!0}),e.toastLength)};"toast"===this.type&&t(),this.style&&Hi(this.$refs.root).css(this.style)},methods:{toastClosed:function(){var e=this;Object(a["nextTick"])((function(){e.$emit("closed")}))},closeNotification:function(e){var t=this;this.canClose&&e&&e.target&&(this.deleted=!0,Object(a["nextTick"])((function(){t.$emit("closed")}))),this.markNotificationAsRead()},markNotificationAsRead:function(){this.notificationId&&Ne.fetch({module:"CoreHome",action:"markNotificationAsRead"},{postParams:{notificationId:this.notificationId}})}}});Fi.render=Vi;var _i=Fi; +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */wt({component:_i,scope:{notificationId:{angularJsBind:"@?"},title:{angularJsBind:"@?notificationTitle"},context:{angularJsBind:"@?"},type:{angularJsBind:"@?"},noclear:{angularJsBind:"@?",transform:function(e){return!!e}},toastLength:{angularJsBind:"@?"}},directiveName:"piwikNotification",transclude:!0});function Ri(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ui(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ri(Object(n),!0).forEach((function(t){zi(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ri(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ji(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Gi(e,t,n){return t&&Ji(e.prototype,t),n&&Ji(e,n),e}function zi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */var Qi=function(){function e(){qi(this,e),zi(this,"privateState",Object(a["reactive"])({notifications:[]})),zi(this,"nextNotificationId",0)}return Gi(e,[{key:"state",get:function(){return this.privateState}},{key:"appendNotification",value:function(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.push(e)}},{key:"prependNotification",value:function(e){this.checkMessage(e.message),e.id&&this.remove(e.id),this.privateState.notifications.unshift(e)}},{key:"remove",value:function(e){this.privateState.notifications=this.privateState.notifications.filter((function(t){return t.id!==e}))}},{key:"parseNotificationDivs",value:function(){var e=this,t=$('[data-role="notification"]'),n=[];t.each((function(e,r){var i=$(r),a=i.data(),o=i.html();o&&n.push(Ui(Ui({},a),{},{message:o,animate:!1})),t.remove()})),n.forEach((function(t){return e.show(t)}))}},{key:"clearTransientNotifications",value:function(){this.privateState.notifications=this.privateState.notifications.filter((function(e){return"transient"!==e.type}))}},{key:"show",value:function(e){this.checkMessage(e.message);var t=this.appendNotification,n="#notificationContainer";if(e.placeat)n=e.placeat;else{var r=".modal.open .modal-content";document.querySelector(r)&&(n=r,t=this.prependNotification)}var i=e.group||(e.placeat?e.placeat.toString():"");this.initializeNotificationContainer(n,i);var a=(this.nextNotificationId+=1).toString();return t.call(this,Ui(Ui({},e),{},{noclear:!!e.noclear,group:i,notificationId:e.id,notificationInstanceId:a,type:e.type||"transient"})),a}},{key:"scrollToNotification",value:function(e){setTimeout((function(){var t=document.querySelector("[data-notification-instance-id='".concat(e,"']"));t&&j.helper.lazyScrollTo(t,250)}))}},{key:"toast",value:function(e){this.checkMessage(e.message);var t=$(e.placeat);if(!t.length)throw new Error("A valid selector is required for the placeat option when using Notification.toast().");var n=document.createElement("div");n.style.position="absolute",n.style.top="".concat(t.offset().top,"px"),n.style.left="".concat(t.offset().left,"px"),n.style.zIndex="1000",document.body.appendChild(n);var r=Object(a["createApp"])({render:function(){return Object(a["createVNode"])(_i,Ui(Ui({},e),{},{notificationId:e.id,type:"toast",onClosed:function(){r.unmount()}}))}});r.config.globalProperties.$sanitize=window.vueSanitize,r.config.globalProperties.translate=D,r.mount(n)}},{key:"initializeNotificationContainer",value:function(e,t){var n=window.$(e);if(!n.children(".notification-group").length){var r=window.CoreHome.NotificationGroup,i=Object(a["createApp"])({template:'<NotificationGroup :group="group"></NotificationGroup>',data:function(){return{group:t}}});i.config.globalProperties.$sanitize=window.vueSanitize,i.config.globalProperties.translate=D,i.component("NotificationGroup",r),i.mount(n[0])}}},{key:"checkMessage",value:function(e){if(!e)throw new Error("No message given, cannot display notification")}}]),e}(),Ki=new Qi,Wi=Ki;$((function(){return Ki.parseNotificationDivs()})), /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -angular.module("piwikApp").factory("notifications",(function(){return zr}));var Qr={class:"notification-group"},Yr=["innerHTML"];function Wr(e,t,n,r,a,i){var c=Object(o["resolveComponent"])("Notification");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Qr,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.notifications,(function(t,n){return Object(o["openBlock"])(),Object(o["createBlock"])(c,{key:t.id||"no-id-".concat(n),"notification-id":t.id,title:t.title,context:t.context,type:t.type,noclear:t.noclear,"toast-length":t.toastLength,style:Object(o["normalizeStyle"])(t.style),animate:t.animate,message:t.message,"notification-instance-id":t.notificationInstanceId,"css-class":t.class,onClosed:function(n){return e.removeNotification(t.id)}},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("div",{innerHTML:e.$sanitize(t.message)},null,8,Yr)]})),_:2},1032,["notification-id","title","context","type","noclear","toast-length","style","animate","message","notification-instance-id","css-class","onClosed"])})),128))])}var Kr=Object(o["defineComponent"])({props:{group:String},components:{Notification:Fr},computed:{notifications:function(){var e=this;return zr.state.notifications.filter((function(t){return e.group?e.group===t.group:!t.group}))}},methods:{removeNotification:function(e){zr.remove(e)}}});Kr.render=Wr;var Xr=Kr; +angular.module("piwikApp").factory("notifications",(function(){return Wi}));var Yi={class:"notification-group"},Xi=["innerHTML"];function Zi(e,t,n,r,i,o){var c=Object(a["resolveComponent"])("Notification");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Yi,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.notifications,(function(t,n){return Object(a["openBlock"])(),Object(a["createBlock"])(c,{key:t.id||"no-id-".concat(n),"notification-id":t.id,title:t.title,context:t.context,type:t.type,noclear:t.noclear,"toast-length":t.toastLength,style:Object(a["normalizeStyle"])(t.style),animate:t.animate,message:t.message,"notification-instance-id":t.notificationInstanceId,"css-class":t.class,onClosed:function(n){return e.removeNotification(t.id)}},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("div",{innerHTML:e.$sanitize(t.message)},null,8,Xi)]})),_:2},1032,["notification-id","title","context","type","noclear","toast-length","style","animate","message","notification-instance-id","css-class","onClosed"])})),128))])}var ea=Object(a["defineComponent"])({props:{group:String},components:{Notification:_i},computed:{notifications:function(){var e=this;return Wi.state.notifications.filter((function(t){return e.group?e.group===t.group:!t.group}))}},methods:{removeNotification:function(e){Wi.remove(e)}}});ea.render=Zi;var ta=ea; /*! * Matomo - free/libre analytics platform * diff --git a/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts b/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts index f128ae6c32..a3965760b8 100644 --- a/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts +++ b/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts @@ -346,7 +346,7 @@ export default class AjaxHelper<T = any> { // eslint-disable-line /** * Send the request */ - send(): Promise<T> { + send(): AbortablePromise<T> { if ($(this.errorElement).length) { $(this.errorElement).hide(); } @@ -358,7 +358,7 @@ export default class AjaxHelper<T = any> { // eslint-disable-line this.requestHandle = this.buildAjaxCall(); window.globalAjaxQueue.push(this.requestHandle); - return new Promise<T>((resolve, reject) => { + const result: AbortablePromise<T> = new Promise<T>((resolve, reject) => { this.requestHandle!.then(resolve).fail((xhr: jqXHR) => { if (xhr.statusText !== 'abort') { console.log(`Warning: the ${$.param(this.getParams)} request failed!`); @@ -366,7 +366,15 @@ export default class AjaxHelper<T = any> { // eslint-disable-line reject(xhr); } }); - }); + }) as AbortablePromise<T>; + + result.abort = () => { + if (this.requestHandle) { + this.requestHandle.abort(); + } + }; + + return result; } /** diff --git a/plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts b/plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts index ee03ce55c7..cd5965d1c6 100644 --- a/plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts +++ b/plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts @@ -22,19 +22,19 @@ export default createAngularJsAdapter<[IParseService]>({ }, }, events: { - yes: ($event, scope, element, attrs) => { + yes: ($event, vm, scope, element, attrs) => { if (attrs.yes) { scope.$eval(attrs.yes); setTimeout(() => { scope.$apply(); }, 0); } }, - no: ($event, scope, element, attrs) => { + no: ($event, vm, scope, element, attrs) => { if (attrs.no) { scope.$eval(attrs.no); setTimeout(() => { scope.$apply(); }, 0); } }, - validation: ($event, scope, element, attrs) => { + validation: ($event, vm, scope, element, attrs) => { if (attrs.no) { scope.$eval(attrs.no); setTimeout(() => { scope.$apply(); }, 0); @@ -46,7 +46,7 @@ export default createAngularJsAdapter<[IParseService]>({ setTimeout(() => { scope.$apply(); }, 0); } }, - 'update:modelValue': (newValue, scope, element, attrs, $parse: IParseService) => { + 'update:modelValue': (newValue, vm, scope, element, attrs, controller, $parse: IParseService) => { setTimeout(() => { scope.$apply($parse(attrs.piwikDialog).assign(scope, newValue)); }, 0); diff --git a/plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts b/plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts index 11eec228a8..02580be10a 100644 --- a/plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts +++ b/plugins/CoreHome/vue/src/MatomoUrl/MatomoUrl.ts @@ -68,6 +68,18 @@ class MatomoUrl { $location.search(serializedParams); } + updateUrl(params: QueryParameters|string, hashParams: QueryParameters|string = {}) { + const serializedParams: string = typeof params !== 'string' ? this.stringify(params) : params; + const serializedHashParams: string = typeof hashParams !== 'string' ? this.stringify(hashParams) : hashParams; + + let url = `?${serializedParams}`; + if (serializedHashParams.length) { + url = `${url}#?${serializedHashParams}`; + } + + window.broadcast.propagateNewPage('', undefined, undefined, undefined, url); + } + getSearchParam(paramName: string): string { const hash = window.location.href.split('#'); diff --git a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.adapter.ts b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.adapter.ts index f56616f54d..9fc8ae8e13 100644 --- a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.adapter.ts +++ b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.adapter.ts @@ -6,10 +6,10 @@ */ import createAngularJsAdapter from '../createAngularJsAdapter'; -import Menudropdown from './Menudropdown.vue'; +import MenuDropdown from './MenuDropdown.vue'; export default createAngularJsAdapter({ - component: Menudropdown, + component: MenuDropdown, scope: { menuTitle: { angularJsBind: '@', diff --git a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.less b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.less index 2a04d675df..2a04d675df 100644 --- a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.less +++ b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.less diff --git a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue index fdd26bfdba..fdd26bfdba 100644 --- a/plugins/CoreHome/vue/src/Menudropdown/Menudropdown.vue +++ b/plugins/CoreHome/vue/src/MenuDropdown/MenuDropdown.vue diff --git a/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.adapter.ts b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.adapter.ts new file mode 100644 index 0000000000..2818deff0a --- /dev/null +++ b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.adapter.ts @@ -0,0 +1,23 @@ +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +import { ITimeoutService } from 'angular'; +import createAngularJsAdapter from '../createAngularJsAdapter'; +import QuickAccess from './QuickAccess.vue'; + +export default createAngularJsAdapter<[ITimeoutService]>({ + component: QuickAccess, + directiveName: 'piwikQuickAccess', + events: { + itemSelected(event, vm, scope, elem, attrs, controller, $timeout: ITimeoutService) { + $timeout(); + }, + blur(event, vm, scope) { + setTimeout(() => scope.$apply()); + }, + }, +}); diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.less b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.less index 3bad77b9ba..3bad77b9ba 100644 --- a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.less +++ b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.less diff --git a/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue new file mode 100644 index 0000000000..20c8588fc3 --- /dev/null +++ b/plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue @@ -0,0 +1,465 @@ +<!-- + Matomo - free/libre analytics platform + @link https://matomo.org + @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later +--> + +<template> + <div + ref="root" + class="quickAccessInside" + v-focus-anywhere-but-here="{ blur: onBlur }" + > + <span + class="icon-search" + @mouseenter="searchActive = true" + v-show="!(searchTerm || searchActive)" + /> + <input + class="s" + @keydown="onKeypress($event)" + @focus="searchActive = true" + v-model="searchTerm" + type="text" + tabindex="2" + v-focus-if:[searchActive]="{}" + :title="quickAccessTitle" + /> + <div + class="dropdown" + v-show="searchTerm && searchActive" + > + <ul v-show="!(numMenuItems > 0 || sites.length)"> + <li class="no-result">{{ translate('General_SearchNoResults') }}</li> + </ul> + <ul v-for="subcategory in menuItems" :key="subcategory.title"> + <li + class="quick-access-category" + @click="searchTerm = subcategory.title;searchMenu(searchTerm)" + > + {{ subcategory.title }} + </li> + <li + class="result" + :class="{ selected: submenuEntry.menuIndex === searchIndex }" + @mouseenter="searchIndex = submenuEntry.menuIndex" + @click="selectMenuItem(submenuEntry.index)" + v-for="submenuEntry in subcategory.items" + :key="submenuEntry.index" + > + <a>{{ submenuEntry.name.trim() }}</a> + </li> + </ul> + <ul class="quickAccessMatomoSearch"> + <li + class="quick-access-category websiteCategory" + v-show="hasSitesSelector && sites.length || isLoading" + > + {{ translate('SitesManager_Sites') }} + </li> + <li + class="no-result" + v-show="hasSitesSelector && isLoading" + > + {{ translate('MultiSites_LoadingWebsites') }} + </li> + <li + class="result" + v-for="(site, index) in sites" + v-show="hasSitesSelector && !isLoading" + @mouseenter="searchIndex = numMenuItems + index" + :class="{ selected: numMenuItems + index === searchIndex }" + @click="selectSite(site.idsite)" + :key="site.idsite" + > + <a v-text="site.name" /> + </li> + </ul> + <ul> + <li class="quick-access-category helpCategory">{{ translate('General_HelpResources') }}</li> + <li + :class="{ selected: searchIndex === 'help' }" + class="quick-access-help" + @mouseenter="searchIndex = 'help'" + > + <a + :href="`https://matomo.org?s=${encodeURIComponent(searchTerm)}`" + target="_blank" + > + {{ translate('CoreHome_SearchOnMatomo', searchTerm) }} + </a> + </li> + </ul> + </div> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import FocusAnywhereButHere from '../FocusAnywhereButHere/FocusAnywhereButHere'; +import FocusIf from '../FocusIf/FocusIf'; +import translate from '../translate'; +import SitesStore, { Site } from '../SiteSelector/SitesStore'; +import Matomo from '../Matomo/Matomo'; +import debounce from '../debounce'; + +interface SubMenuItem { + name: string; + index: number; + category: string; +} + +interface MenuItem { + title: string; + items: SubMenuItem[]; +} + +interface QuickAccessState { + menuItems: Array<unknown>; + numMenuItems: number; + searchActive: boolean; + searchTerm: string; + searchIndex: number; + + menuIndexCounter: number; + readonly topMenuItems: SubMenuItem[]; + readonly leftMenuItems: SubMenuItem[]; + readonly segmentItems: SubMenuItem[]; + readonly hasSegmentSelector: boolean; + + sites: Site[]; + isLoading: boolean; +} + +function isElementInViewport(element: HTMLElement) { + const rect = element.getBoundingClientRect(); + + return rect.top >= 0 + && rect.left >= 0 + && rect.bottom <= window.$(window).height() + && rect.right <= window.$(window).width(); +} + +function scrollFirstElementIntoView(element: HTMLElement) { + if (element && element.scrollIntoView) { + // make sure search is visible + element.scrollIntoView(); + } +} + +export default defineComponent({ + props: { + }, + directives: { + FocusAnywhereButHere, + FocusIf, + }, + watch: { + searchActive(newValue) { + const classes = this.$refs.root.parentElement.classList; + classes.toggle('active', newValue); + classes.toggle('expanded', newValue); + }, + }, + mounted() { + // TODO: temporary, remove after angularjs is removed. + // this is currently needed since angularjs will render a div, then vue will render a div + // within it, but the top controls and CSS expect to have certain CSS classes in the root + // element. + // same applies to above watch for searchActive() + this.$refs.root.parentElement.classList.add('quick-access', 'piwikSelector'); + + if (typeof window.initTopControls !== 'undefined' && window.initTopControls) { + window.initTopControls(); + } + + Matomo.helper.registerShortcut('f', translate('CoreHome_ShortcutSearch'), (event) => { + if (event.altKey) { + return; + } + + event.preventDefault(); + + scrollFirstElementIntoView(this.$refs.root); + + this.activateSearch(); + }); + }, + data(): QuickAccessState { + const hasSegmentSelector = !!document.querySelector('.segmentEditorPanel'); + + return { + menuItems: [], + numMenuItems: 0, + searchActive: false, + searchTerm: '', + searchIndex: 0, + menuIndexCounter: -1, + topMenuItems: null, + leftMenuItems: null, + segmentItems: null, + hasSegmentSelector, + sites: [], + isLoading: false, + }; + }, + created() { + this.searchMenu = debounce(this.searchMenu.bind(this)); + }, + computed: { + hasSitesSelector() { + return !!document.querySelector('.top_controls [piwik-siteselector]'); + }, + quickAccessTitle() { + let searchAreasTitle = ''; + const searchAreas = [translate('CoreHome_MenuEntries')]; + + if (this.hasSegmentSelector) { + searchAreas.push(translate('CoreHome_Segments')); + } + + if (this.hasSitesSelector) { + searchAreas.push(translate('SitesManager_Sites')); + } + + while (searchAreas.length) { + searchAreasTitle += searchAreas.shift(); + if (searchAreas.length >= 2) { + searchAreasTitle += ', '; + } else if (searchAreas.length === 1) { + searchAreasTitle += ` ${translate('General_And')} `; + } + } + + return translate('CoreHome_QuickAccessTitle', searchAreasTitle); + }, + }, + emits: ['itemSelected', 'blur'], + methods: { + onKeypress(event) { + const areSearchResultsDisplayed = this.searchTerm && this.searchActive; + const isTabKey = event.which === 9; + const isEscKey = event.which === 27; + + if (event.which === 38) { + this.highlightPreviousItem(); + event.preventDefault(); + } else if (event.which === 40) { + this.highlightNextItem(); + event.preventDefault(); + } else if (event.which === 13) { + this.clickQuickAccessMenuItem(); + } else if (isTabKey && areSearchResultsDisplayed) { + this.deactivateSearch(); + } else if (isEscKey && areSearchResultsDisplayed) { + this.deactivateSearch(); + } else { + setTimeout(() => { + this.searchActive = true; + this.searchMenu(this.searchTerm); + }); + } + }, + highlightPreviousItem() { + if ((this.searchIndex - 1) < 0) { + this.searchIndex = 0; + } else { + this.searchIndex -= 1; + } + this.makeSureSelectedItemIsInViewport(); + }, + highlightNextItem() { + const numTotal = (this.$refs.root as HTMLElement).querySelectorAll('li.result').length; + + if (numTotal <= (this.searchIndex + 1)) { + this.searchIndex = numTotal - 1; + } else { + this.searchIndex += 1; + } + + this.makeSureSelectedItemIsInViewport(); + }, + clickQuickAccessMenuItem() { + const selectedMenuElement = this.getCurrentlySelectedElement(); + if (selectedMenuElement) { + setTimeout(() => { + selectedMenuElement.click(); + this.$emit('itemSelected', selectedMenuElement); + }, 20); + } + }, + deactivateSearch() { + this.searchTerm = ''; + this.searchActive = false; + (this.$refs.root).querySelector('input').blur(); + }, + makeSureSelectedItemIsInViewport() { + const element = this.getCurrentlySelectedElement(); + + if (element && !isElementInViewport(element)) { + scrollFirstElementIntoView(element); + } + }, + getCurrentlySelectedElement() { + const results = (this.$refs.root as HTMLElement).querySelectorAll('li.result'); + if (results && results.length && results.item(this.searchIndex)) { + return results.item(this.searchIndex); + } + return null; + }, + searchMenu(unprocessedSearchTerm: string) { + const searchTerm = unprocessedSearchTerm.toLowerCase(); + + let index = -1; + const menuItemsIndex: Record<string, number> = {}; + const menuItems: MenuItem[] = []; + + const moveToCategory = (theSubmenuItem) => { + // force rerender of element to prevent weird side effects + const submenuItem = { ...theSubmenuItem }; + // needed for proper highlighting with arrow keys + index += 1; + submenuItem.menuIndex = index; + + const { category } = submenuItem; + if (!(category in menuItemsIndex)) { + menuItems.push({ title: category, items: [] }); + menuItemsIndex[category] = menuItems.length - 1; + } + + const indexOfCategory = menuItemsIndex[category]; + menuItems[indexOfCategory].items.push(submenuItem); + }; + + this.resetSearchIndex(); + + if (this.hasSitesSelector) { + this.isLoading = true; + SitesStore.searchSite(searchTerm).then((sites) => { + this.sites = sites; + }).finally(() => { + this.isLoading = false; + }); + } + + const menuItemMatches = (i) => i.name.toLowerCase().indexOf(searchTerm) !== -1 + || i.category.toLowerCase().indexOf(searchTerm) !== -1; + + // get the menu items on first search since this component can be mounted + // before the menus are + if (this.topMenuItems === null) { + this.topMenuItems = this.getTopMenuItems(); + } + if (this.leftMenuItems === null) { + this.leftMenuItems = this.getLeftMenuItems(); + } + if (this.segmentItems === null) { + this.segmentItems = this.getSegmentItems(); + } + + const topMenuItems = this.topMenuItems.filter(menuItemMatches); + const leftMenuItems = this.leftMenuItems.filter(menuItemMatches); + const segmentItems = this.segmentItems.filter(menuItemMatches); + + topMenuItems.forEach(moveToCategory); + leftMenuItems.forEach(moveToCategory); + segmentItems.forEach(moveToCategory); + + this.numMenuItems = topMenuItems.length + leftMenuItems.length + segmentItems.length; + this.menuItems = menuItems; + }, + resetSearchIndex() { + this.searchIndex = 0; + this.makeSureSelectedItemIsInViewport(); + }, + selectSite(idSite: string|number) { + SitesStore.loadSite(idSite); + }, + selectMenuItem(index: number) { + const target: HTMLElement = document.querySelector(`[quick_access='${index}']`); + if (target) { + this.deactivateSearch(); + + const href = target.getAttribute('href'); + if (href && href.length > 10 && target && target.click) { + try { + target.click(); + } catch (e) { + window.$(target).click(); + } + } else { + // not sure why jquery is used here and above, but only sometimes. keeping for BC. + window.$(target).click(); + } + } + }, + onBlur() { + this.searchActive = false; + this.$emit('blur'); + }, + activateSearch() { + this.searchActive = true; + }, + getTopMenuItems() { + const category = translate('CoreHome_Menu'); + + const topMenuItems: SubMenuItem[] = []; + document.querySelectorAll('nav .sidenav li > a').forEach((element) => { + let text = element.textContent.trim(); + + if (!text) { + text = element.getAttribute('title').trim(); // possibly a icon, use title instead + } + + if (text) { + topMenuItems.push({ name: text, index: this.menuIndexCounter += 1, category }); + element.setAttribute('quick_access', `${this.menuIndexCounter}`); + } + }); + + return topMenuItems; + }, + getLeftMenuItems() { + const leftMenuItems: SubMenuItem[] = []; + + document.querySelectorAll('#secondNavBar .menuTab').forEach((element) => { + let category = window.$(element).find('> .item').text().trim(); + + if (category && category.lastIndexOf('\n') !== -1) { + // remove "\n\nMenu" + category = category.substr(0, category.lastIndexOf('\n')).trim(); + } + + window.$(element).find('li .item').each((i, subElement) => { + const text = subElement.textContent.trim(); + if (text) { + leftMenuItems.push({ name: text, category, index: this.menuIndexCounter += 1 }); + subElement.setAttribute('quick_access', `${this.menuIndexCounter}`); + } + }); + }); + + return leftMenuItems; + }, + getSegmentItems() { + if (!this.hasSegmentSelector) { + return []; + } + + const category = translate('CoreHome_Segments'); + + const segmentItems: SubMenuItem[] = []; + document.querySelectorAll('.segmentList [data-idsegment]').forEach((element) => { + const text = element.querySelector('.segname').textContent.trim(); + + if (text) { + segmentItems.push({ name: text, category, index: this.menuIndexCounter += 1 }); + element.setAttribute('quick_access', `${this.menuIndexCounter}`); + } + }); + + return segmentItems; + }, + }, +}); +</script> diff --git a/plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue b/plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue new file mode 100644 index 0000000000..548a697403 --- /dev/null +++ b/plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue @@ -0,0 +1,36 @@ +<!-- + Matomo - free/libre analytics platform + @link https://matomo.org + @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later +--> + +<template> + <div + @click="this.onClick($event)" + class="custom_select_all" + > + <a + @click="$event.preventDefault()" + v-html="$sanitize(allSitesText)" + tabindex="4" + :href="href" + /> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; + +export default defineComponent({ + props: { + href: String, + allSitesText: String, + }, + emits: ['click'], + methods: { + onClick(event: MouseEvent) { + this.$emit('click', event); + }, + }, +}); +</script> diff --git a/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts new file mode 100644 index 0000000000..b3438d2bb7 --- /dev/null +++ b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts @@ -0,0 +1,86 @@ +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +import { INgModelController, ITimeoutService } from 'angular'; +import createAngularJsAdapter from '../createAngularJsAdapter'; +import SiteSelector from './SiteSelector.vue'; +import Matomo from '../Matomo/Matomo'; + +export default createAngularJsAdapter<[ITimeoutService]>({ + component: SiteSelector, + require: '?ngModel', + scope: { + showSelectedSite: { + angularJsBind: '=', + }, + showAllSitesItem: { + angularJsBind: '=', + }, + switchSiteOnSelect: { + angularJsBind: '=', + }, + onlySitesWithAdminAccess: { + angularJsBind: '=', + }, + name: { + angularJsBind: '@', + }, + allSitesText: { + angularJsBind: '@', + }, + allSitesLocation: { + angularJsBind: '@', + }, + placeholder: { + angularJsBind: '@', + }, + modelValue: {}, + }, + $inject: ['$timeout'], + directiveName: 'piwikSiteselector', + events: { + 'update:modelValue': (newValue, vm, scope, element, attrs, ngModel) => { + if ((newValue && !vm.modelValue) + || (!newValue && vm.modelValue) + || newValue.id !== vm.modelValue.id + ) { + element.attr('siteid', newValue.id); + element.trigger('change', newValue); + + if (ngModel) { + ngModel.$setViewValue(newValue); + } + } + }, + blur(event, vm, scope) { + setTimeout(() => scope.$apply()); + }, + }, + postCreate(vm, scope, element, attrs, controller, $timeout: ITimeoutService) { + const ngModel = controller as INgModelController; + + // setup ng-model mapping + if (ngModel) { + ngModel.$setViewValue(vm.modelValue); + + ngModel.$render = () => { + if (angular.isString(ngModel.$viewValue)) { + vm.modelValue = JSON.parse(ngModel.$viewValue); + } else { + vm.modelValue = ngModel.$viewValue; + } + }; + } + + $timeout(() => { + if (attrs.siteid && attrs.sitename) { + vm.modelValue = { id: attrs.siteid, name: Matomo.helper.htmlDecode(attrs.sitename) }; + ngModel.$setViewValue({ ...vm.modelValue }); + } + }); + }, +}); diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.less index 48700196c2..48700196c2 100644 --- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less +++ b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.less diff --git a/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue new file mode 100644 index 0000000000..52884f6815 --- /dev/null +++ b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue @@ -0,0 +1,370 @@ +<!-- + Matomo - free/libre analytics platform + @link https://matomo.org + @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later +--> + +<template> + <div + class="siteSelector piwikSelector borderedControl" + :class="{'expanded': showSitesList, 'disabled': !hasMultipleSites}" + v-focus-anywhere-but-here="{ blur: onBlur }" + > + <input + v-if="name" + type="hidden" + :value="selectedSite?.id" + :name="name" + /> + <a + ref="selectorLink" + @click="onClickSelector" + @keydown="onPressEnter($event)" + href="javascript:void(0)" + :class="{'loading': isLoading}" + class="title" + tabindex="4" + :title="selectorLinkTitle" + > + <span + class="icon icon-arrow-bottom" + :class="{'iconHidden': isLoading, 'collapsed': !showSitesList}" + /> + <span> + <span + v-text="selectedSite?.name || firstSiteName" + v-if="selectedSite?.name || !placeholder" + /> + <span + v-if="!selectedSite?.name && placeholder" + class="placeholder" + >{{ placeholder }}</span> + </span> + </a> + <div + v-show="showSitesList" + class="dropdown" + > + <div + class="custom_select_search" + v-show="autocompleteMinSites <= sites.length || searchTerm" + > + <input + type="text" + @click="searchTerm = '';loadInitialSites()" + v-model="searchTerm" + @keydown="onSearchInputKeydown()" + tabindex="4" + class="websiteSearch inp browser-default" + v-focus-if:[shouldFocusOnSearch]="{}" + :placeholder="translate('General_Search')" + /> + <img + title="Clear" + v-show="searchTerm" + @click="searchTerm = '';loadInitialSites()" + class="reset" + src="plugins/CoreHome/images/reset_search.png" + /> + </div> + <div v-if="allSitesLocation === 'top' && showAllSitesItem"> + <AllSitesLink + :href="urlAllSites" + :all-sites-text="allSitesText" + @click="onAllSitesClick($event)" + /> + </div> + <div class="custom_select_container"> + <ul + class="custom_select_ul_list" + @click="showSitesList = false" + > + <li + @click="switchSite(site, $event)" + v-show="!(!showSelectedSite && activeSiteId === site.idsite)" + v-for="site in sites" + :key="site.idsite" + > + <a + @click="$event.preventDefault()" + v-html="$sanitize(getMatchedSiteName(site.name))" + tabindex="4" + :href="getUrlForSiteId(site.idsite)" + :title="site.name" + /> + </li> + </ul> + <ul + v-show="!sites.length && searchTerm" + class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all + siteSelect" + > + <li class="ui-menu-item"> + <a + class="ui-corner-all" + tabindex="-1" + > + {{ translate('SitesManager_NotFound') + ' ' + searchTerm }} + </a> + </li> + </ul> + </div> + <div v-if="allSitesLocation === 'bottom' && showAllSitesItem"> + <AllSitesLink + :href="urlAllSites" + :all-sites-text="allSitesText" + @click="onAllSitesClick($event)" + /> + </div> + </div> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import FocusAnywhereButHere from '../FocusAnywhereButHere/FocusAnywhereButHere'; +import FocusIf from '../FocusIf/FocusIf'; +import AllSitesLink from './AllSitesLink.vue'; +import Matomo from '../Matomo/Matomo'; +import MatomoUrl from '../MatomoUrl/MatomoUrl'; +import translate from '../translate'; +import SitesStore, { Site } from './SitesStore'; +import debounce from '../debounce'; + +interface SiteRef { + id: string|number; + name: string; +} + +interface SiteSelectorState { + searchTerm: string; + showSitesList: boolean; + isLoading: boolean; + sites: Site[]; + selectedSite: SiteRef; + autocompleteMinSites: null|number; +} + +export default defineComponent({ + props: { + modelValue: { + Object, + default: { + id: Matomo.idSite, + name: Matomo.helper.htmlDecode(Matomo.siteName), + }, + }, + showSelectedSite: { + type: Boolean, + default: false, + }, + showAllSitesItem: { + type: Boolean, + default: true, + }, + switchSiteOnSelect: { + type: Boolean, + default: true, + }, + onlySitesWithAdminAccess: { + type: Boolean, + default: false, + }, + name: { + type: String, + default: '', + }, + allSitesText: { + type: String, + default: translate('General_MultiSitesSummary'), + }, + allSitesLocation: { + type: String, + default: 'bottom', + }, + placeholder: String, + }, + emits: ['update:modelValue', 'blur'], + components: { + AllSitesLink, + }, + directives: { + FocusAnywhereButHere, + FocusIf, + }, + watch: { + modelValue: { + handler(newValue) { + this.selectedSite = { ...newValue }; + }, + deep: true, + }, + }, + data(): SiteSelectorState { + return { + searchTerm: '', + activeSiteId: Matomo.idSite, + showSitesList: false, + isLoading: false, + sites: [], + selectedSite: { + id: Matomo.idSite, + name: Matomo.helper.htmlDecode(Matomo.siteName), + }, + autocompleteMinSites: parseInt(Matomo.config.autocomplete_min_sites as string, 10), + }; + }, + mounted() { + window.initTopControls(); + + this.loadInitialSites().then(() => { + if ((!this.selectedSite || !this.selectedSite.id) && this.sites[0]) { + this.selectedSite = { id: this.sites[0].idsite, name: this.sites[0].name }; + this.$emit('update:modelValue', { ...this.selectedSite }); + } + }); + + const shortcutTitle = translate('CoreHome_ShortcutWebsiteSelector'); + Matomo.helper.registerShortcut('w', shortcutTitle, (event) => { + if (event.altKey) { + return; + } + if (event.preventDefault) { + event.preventDefault(); + } else { + event.returnValue = false; // IE + } + this.$refs.selectorLink.click(); + this.$refs.selectorLink.focus(); + }); + }, + created() { + this.onSearchInputKeydown = debounce(this.onSearchInputKeydown.bind(this)); + }, + computed: { + shouldFocusOnSearch() { + return (this.showSitesList && this.autocompleteMinSites <= this.sites.length) + || this.searchTerm; + }, + selectorLinkTitle() { + return this.hasMultipleSites + ? translate('CoreHome_ChangeCurrentWebsite', this.selectedSite?.name || this.firstSiteName) + : ''; + }, + hasMultipleSites() { + return SitesStore.initialSites.value && SitesStore.initialSites.value.length > 1; + }, + firstSiteName() { + return this.sites && this.sites.length > 0 ? this.sites[0].name : ''; + }, + urlAllSites() { + const newQuery = MatomoUrl.stringify({ + ...MatomoUrl.urlParsed.value, + module: 'MultiSites', + action: 'index', + date: MatomoUrl.parsed.value.date, + period: MatomoUrl.parsed.value.period, + }); + return `?${newQuery}`; + }, + }, + methods: { + onAllSitesClick(event: MouseEvent) { + this.switchSite({ idsite: 'all', name: this.allSitesText }, event); + this.showSitesList = false; + }, + switchSite(site: SiteRef, event: KeyboardEvent|MouseEvent) { + // for Mac OS cmd key needs to be pressed, ctrl key on other systems + const controlKey = navigator.userAgent.indexOf('Mac OS X') !== -1 ? event.metaKey : event.ctrlKey; + + if (event && controlKey && event.target && (event.target as HTMLLinkElement).href) { + window.open((event.target as HTMLLinkElement).href, '_blank'); + return; + } + + this.selectedSite = { id: site.idsite, name: site.name }; + this.$emit('update:modelValue', { ...this.selectedSite }); + + if (!this.switchSiteOnSelect || this.activeSiteId === site.idsite) { + return; + } + + SitesStore.loadSite(site.idsite); + }, + onBlur() { + this.showSitesList = false; + this.$emit('blur'); + }, + onClickSelector() { + if (this.hasMultipleSites) { + this.showSitesList = !this.showSitesList; + + if (!this.isLoading && !this.searchTerm) { + this.loadInitialSites(); + } + } + }, + onPressEnter(event: KeyboardEvent) { + if (event.key !== 'Enter') { + return; + } + + event.preventDefault(); + + this.showSitesList = !this.showSitesList; + if (this.showSitesList && !this.isLoading) { + this.loadInitialSites(); + } + }, + onSearchInputKeydown() { + setTimeout(() => { + this.searchSite(this.searchTerm); + }); + }, + getMatchedSiteName(siteName: string) { + const index = siteName.toUpperCase().indexOf(this.searchTerm.toUpperCase()); + if (index === -1) { + return Matomo.helper.htmlEntities(siteName); + } + + const previousPart = Matomo.helper.htmlEntities(siteName.substring(0, index)); + const lastPart = Matomo.helper.htmlEntities( + siteName.substring(index + this.searchTerm.length), + ); + + return `${previousPart}<span class="autocompleteMatched">${this.searchTerm}</span>${lastPart}`; + }, + loadInitialSites() { + return SitesStore.loadInitialSites().then((sites) => { + this.sites = sites || []; + }); + }, + searchSite(term: string) { + this.isLoading = true; + + SitesStore.searchSite(term, this.onlySitesWithAdminAccess).then((sites) => { + if (sites) { + this.sites = sites; + } + }).finally(() => { + this.isLoading = false; + }); + }, + getUrlForSiteId(idSite: string|number) { + const newQuery = MatomoUrl.stringify({ + ...MatomoUrl.urlParsed.value, + segment: '', + idSite, + }); + + const newHash = MatomoUrl.stringify({ + ...MatomoUrl.hashParsed.value, + segment: '', + idSite, + }); + + return `?${newQuery}#?${newHash}`; + }, + }, +}); +</script> diff --git a/plugins/CoreHome/vue/src/SiteSelector/SitesStore.ts b/plugins/CoreHome/vue/src/SiteSelector/SitesStore.ts new file mode 100644 index 0000000000..655803843c --- /dev/null +++ b/plugins/CoreHome/vue/src/SiteSelector/SitesStore.ts @@ -0,0 +1,131 @@ +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +import { reactive, computed, readonly } from 'vue'; +import AjaxHelper from '../AjaxHelper/AjaxHelper'; +import MatomoUrl from '../MatomoUrl/MatomoUrl'; + +export interface Site { + idsite: string; + name: string; +} + +interface SitesStoreState { + initialSites: Site[]|null; + isInitialized: boolean; +} + +class SitesStore { + private state = reactive<SitesStoreState>({ + initialSites: [], + isInitialized: false, + }); + + private currentRequest: AbortablePromise; + + private limitRequest: AbortablePromise; + + public readonly initialSites = computed(() => readonly(this.state.initialSites)); + + loadInitialSites(): Promise<Site[]> { + if (this.state.isInitialized) { + return Promise.resolve(readonly(this.state.initialSites)); + } + + return this.searchSite('%').then((sites) => { + this.state.isInitialized = true; + this.state.initialSites = sites; + return readonly(sites); + }); + } + + loadSite(idSite: number|string): void { + if (idSite === 'all') { + MatomoUrl.updateUrl({ + ...MatomoUrl.urlParsed.value, + module: 'MultiSites', + action: 'index', + date: MatomoUrl.parsed.value.date, + period: MatomoUrl.parsed.value.period, + }); + } else { + MatomoUrl.updateUrl({ + ...MatomoUrl.parsed.value, + segment: '', + idSite, + }); + } + } + + searchSite(term, onlySitesWithAdminAccess = false): Promise<Site[]> { + if (!term) { + return this.loadInitialSites(); + } + + if (this.currentRequest) { + this.currentRequest.abort(); + } + + if (this.limitRequest) { + this.limitRequest.abort(); + this.limitRequest = null; + } + + if (!this.limitRequest) { + this.limitRequest = AjaxHelper.fetch({ method: 'SitesManager.getNumWebsitesToDisplayPerPage' }); + } + + return this.limitRequest.then((response) => { + const limit = response.value; + + let methodToCall = 'SitesManager.getPatternMatchSites'; + if (onlySitesWithAdminAccess) { + methodToCall = 'SitesManager.getSitesWithAdminAccess'; + } + + this.currentRequest = AjaxHelper.fetch({ + method: methodToCall, + limit, + pattern: term, + }); + + return this.currentRequest; + }).then((response) => { + if (response) { + return this.processWebsitesList(response); + } + + return null; + }).finally(() => { + this.currentRequest = null; + }); + } + + private processWebsitesList(response) { + let sites = response; + + if (!sites || !sites.length) { + return []; + } + + sites = sites.map((s) => ({ + ...s, + name: s.group ? `[${s.group}] ${s.name}` : s.name, + })); + + sites.sort((lhs, rhs) => { + if (lhs.name.toLowerCase() < rhs.name.toLowerCase()) { + return -1; + } + return lhs.name.toLowerCase() > rhs.name.toLowerCase() ? 1 : 0; + }); + + return sites; + } +} + +export default new SitesStore(); diff --git a/plugins/CoreHome/vue/src/createAngularJsAdapter.ts b/plugins/CoreHome/vue/src/createAngularJsAdapter.ts index b28ee95d33..d1806e84b5 100644 --- a/plugins/CoreHome/vue/src/createAngularJsAdapter.ts +++ b/plugins/CoreHome/vue/src/createAngularJsAdapter.ts @@ -31,9 +31,11 @@ type AdapterFunction<InjectTypes, R = void> = ( type EventAdapterFunction<InjectTypes, R = void> = ( $event: any, // eslint-disable-line + vm: ComponentPublicInstance, scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, + otherController: ng.IControllerService, ...injected: InjectTypes, ) => R; @@ -42,6 +44,7 @@ type PostCreateFunction<InjectTypes, R = void> = ( scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, + otherController: ng.IControllerService, ...injected: InjectTypes, ) => R; @@ -63,6 +66,7 @@ function toAngularJsCamelCase(arg: string): string { export default function createAngularJsAdapter<InjectTypes = []>(options: { component: ComponentType, + require?: string, scope?: ScopeMapping, directiveName: string, events?: EventMapping<InjectTypes>, @@ -75,6 +79,7 @@ export default function createAngularJsAdapter<InjectTypes = []>(options: { }): ng.IDirectiveFactory { const { component, + require, scope = {}, events = {}, $inject, @@ -104,6 +109,7 @@ export default function createAngularJsAdapter<InjectTypes = []>(options: { function angularJsAdapter(...injectedServices: InjectTypes) { const adapter: ng.IDirective = { restrict, + require, scope: noScope ? undefined : angularJsScope, compile: function angularJsAdapterCompile() { return { @@ -111,6 +117,7 @@ export default function createAngularJsAdapter<InjectTypes = []>(options: { ngScope: ng.IScope, ngElement: ng.IAugmentedJQuery, ngAttrs: ng.IAttributes, + ngController: ng.IControllerService, ) { const clone = transclude ? ngElement.find(`[ng-transclude][counter=${currentTranscludeCounter}]`) : null; @@ -173,7 +180,15 @@ export default function createAngularJsAdapter<InjectTypes = []>(options: { } if (events[name]) { - events[name]($event, ngScope, ngElement, ngAttrs, ...injectedServices); + events[name]( + $event, + this, + ngScope, + ngElement, + ngAttrs, + ngController, + ...injectedServices, + ); } }, }, @@ -213,7 +228,7 @@ export default function createAngularJsAdapter<InjectTypes = []>(options: { } if (postCreate) { - postCreate(vm, ngScope, ngElement, ngAttrs, ...injectedServices); + postCreate(vm, ngScope, ngElement, ngAttrs, ngController, ...injectedServices); } ngElement.on('$destroy', () => { diff --git a/plugins/CoreHome/vue/src/debounce.ts b/plugins/CoreHome/vue/src/debounce.ts new file mode 100644 index 0000000000..b92fe93a62 --- /dev/null +++ b/plugins/CoreHome/vue/src/debounce.ts @@ -0,0 +1,19 @@ +interface Callable { + (...args: unknown[]): void; +} + +const DEFAULT_DEBOUNCE_DELAY = 300; + +export default function debounce<F extends Callable>(fn: F, delayInMs = DEFAULT_DEBOUNCE_DELAY): F { + let timeout: ReturnType<typeof setTimeout>; + + return (...args: Parameters<F>) => { + if (timeout) { + clearTimeout(timeout); + } + + timeout = setTimeout(() => { + fn(...args); + }, delayInMs); + }; +} diff --git a/plugins/CoreHome/vue/src/index.ts b/plugins/CoreHome/vue/src/index.ts index baaada6b9a..aade352c11 100644 --- a/plugins/CoreHome/vue/src/index.ts +++ b/plugins/CoreHome/vue/src/index.ts @@ -24,11 +24,14 @@ import './MatomoDialog/MatomoDialog.adapter'; import './EnrichedHeadline/EnrichedHeadline.adapter'; import './ContentBlock/ContentBlock.adapter'; import './Comparisons/Comparisons.adapter'; -import './Menudropdown/Menudropdown.adapter'; +import './MenuDropdown/MenuDropdown.adapter'; import './DatePicker/DatePicker.adapter'; import './DateRangePicker/DateRangePicker.adapter'; import './PeriodDatePicker/PeriodDatePicker.adapter'; +import './SiteSelector/SiteSelector.adapter'; +import './QuickAccess/QuickAccess.adapter'; +export { default as debounce } from './debounce'; export { default as createAngularJsAdapter } from './createAngularJsAdapter'; export { default as activityIndicatorAdapter } from './ActivityIndicator/ActivityIndicator.adapter'; export { default as ActivityIndicator } from './ActivityIndicator/ActivityIndicator.vue'; @@ -48,8 +51,10 @@ export { default as ExpandOnHover } from './ExpandOnHover/ExpandOnHover'; export { default as EnrichedHeadline } from './EnrichedHeadline/EnrichedHeadline.vue'; export { default as ContentBlock } from './ContentBlock/ContentBlock.vue'; export { default as Comparisons } from './Comparisons/Comparisons.vue'; -export { default as Menudropdown } from './Menudropdown/Menudropdown.vue'; +export { default as MenuDropdown } from './MenuDropdown/MenuDropdown.vue'; export { default as DatePicker } from './DatePicker/DatePicker.vue'; export { default as DateRangePicker } from './DateRangePicker/DateRangePicker.vue'; export { default as PeriodDatePicker } from './PeriodDatePicker/PeriodDatePicker.vue'; export * from './Notification'; +export { default as SiteSelector } from './SiteSelector/SiteSelector.vue'; +export { default as QuickAccess } from './QuickAccess/QuickAccess.vue'; diff --git a/plugins/CorePluginsAdmin/angularjs/form-field/field-site.html b/plugins/CorePluginsAdmin/angularjs/form-field/field-site.html index 009869ee03..ceecde4836 100644 --- a/plugins/CorePluginsAdmin/angularjs/form-field/field-site.html +++ b/plugins/CorePluginsAdmin/angularjs/form-field/field-site.html @@ -1,5 +1,6 @@ <div> <label for="{{ formField.name }}" class="siteSelectorLabel" ng-bind-html="formField.title"></label> + <div piwik-siteselector class="sites_autocomplete" ng-model="formField.value" diff --git a/plugins/CoreVue/polyfills/vue.config.js b/plugins/CoreVue/polyfills/vue.config.js index f722a0337d..c5d7a70950 100644 --- a/plugins/CoreVue/polyfills/vue.config.js +++ b/plugins/CoreVue/polyfills/vue.config.js @@ -13,5 +13,5 @@ module.exports = { const rel = path.relative(context, info.absoluteResourcePath) return `webpack:///${rel}` }); - } + }, }; diff --git a/plugins/CoreVue/types/index.d.ts b/plugins/CoreVue/types/index.d.ts index 1d727de8eb..cb9ac2d5df 100644 --- a/plugins/CoreVue/types/index.d.ts +++ b/plugins/CoreVue/types/index.d.ts @@ -7,6 +7,7 @@ import jqXHR = JQuery.jqXHR; import { IAngularStatic } from 'angular'; +import { ExtendedKeyboardEvent } from 'mousetrap'; declare global { type ParameterValue = string | number | null | undefined | ParameterValue[]; @@ -16,6 +17,10 @@ declare global { wrapper?: (evt: Event) => void; } + interface AbortablePromise<T = any> extends Promise<T> { + abort(): void; + } + /** * global ajax queue * @@ -70,6 +75,7 @@ declare global { isAngularRenderingThePage(): boolean; setMarginLeftToBeInViewport(elementToPosition: JQuery|JQLite|HTMLElement|string); lazyScrollTo(element: JQuery|JQLite|HTMLElement|string, time: number, forceScroll?: boolean); + registerShortcut(key: string, description: string, callback: (event: ExtendedKeyboardEvent) => void): void; } let piwikHelper: PiwikHelperGlobal; @@ -80,7 +86,7 @@ declare global { getValueFromHash(paramName: string, url?: string): string; isWidgetizeRequestWithoutSession(): boolean; updateParamValue(newParamValue: string, urlStr: string): string; - propagateNewPage(str: string, showAjaxLoading?: boolean, strHash?: string, paramsToRemove?: string[]); + propagateNewPage(str?: string, showAjaxLoading?: boolean, strHash?: string, paramsToRemove?: string[], wholeNewUrl?: string); } let broadcast: BroadcastGlobal; @@ -113,6 +119,7 @@ declare global { maxDateYear: number; maxDateMonth: number; maxDateDay: number; + config: Record<string, string|number|string[]>; updatePeriodParamsFromUrl(): void; updateDateInTitle(date: string, period: string): void; @@ -138,5 +145,6 @@ declare global { _pk_translate(translationStringId: string, values: string[]): string; require(p: string): any; + initTopControls(): void; } } diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts -Subproject 3f46a9d67dedf26992ee7bdf8c5ac77fb4234b2 +Subproject 8b3d442fd6fd752f7a1ca8bd09a22c55d08710c diff --git a/plugins/Morpheus/stylesheets/base.less b/plugins/Morpheus/stylesheets/base.less index e2deb1c633..523ace40f4 100644 --- a/plugins/Morpheus/stylesheets/base.less +++ b/plugins/Morpheus/stylesheets/base.less @@ -3,7 +3,6 @@ @import "base/colors"; @import "base/mixins"; - /* General styles */ @import "general/_default.less"; @import "general/_utils.less"; @@ -14,8 +13,8 @@ /* Component styles */ @import "uibase/_header.less"; @import "uibase/_headerMessage.less"; -@import "../../CoreHome/angularjs/siteselector/siteselector.directive.less"; -@import "../../CoreHome/vue/src/Menudropdown/Menudropdown.less"; +@import "../../CoreHome/vue/src/SiteSelector/SiteSelector.less"; +@import "../../CoreHome/vue/src/MenuDropdown/MenuDropdown.less"; @import "../../CoreHome/vue/src/Alert/alert.less"; @import "../../CoreHome/stylesheets/dataTable/_entityTable.less"; @import "uibase/_periodSelect.less"; diff --git a/plugins/Morpheus/stylesheets/main.less b/plugins/Morpheus/stylesheets/main.less index 31b02f7c17..647c27c28f 100644 --- a/plugins/Morpheus/stylesheets/main.less +++ b/plugins/Morpheus/stylesheets/main.less @@ -8,6 +8,7 @@ @import "ui/_charts"; @import "ui/_map"; + body { background: @theme-color-background-base; font-family: @theme-fontFamily-base; diff --git a/plugins/Morpheus/templates/_jsGlobalVariables.twig b/plugins/Morpheus/templates/_jsGlobalVariables.twig index 70f7710936..f623687cec 100644 --- a/plugins/Morpheus/templates/_jsGlobalVariables.twig +++ b/plugins/Morpheus/templates/_jsGlobalVariables.twig @@ -56,6 +56,7 @@ {% if clientSideConfig is defined %} piwik.config = {{ clientSideConfig|json_encode|raw }}; {% endif %} + Object.freeze(piwik.config); // disallow accidental changes piwik.shouldPropagateTokenAuth = {{ shouldPropagateTokenAuth|json_encode|raw }}; {{ postEvent("Template.jsGlobalVariables") }} </script> diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_admin_view_admin_load.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_admin_view_admin_load.png index dd85882018..e2994a392a 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_admin_view_admin_load.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_admin_view_admin_load.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef307406aedeeea5fdcc18c3ce79b07f6e1f630f8ac27c06a98906d3f3dc6160 -size 106425 +oid sha256:c7ce1577c5c0d8d5f933ba703ae7d9d4276aac71d26f000014655ba5da20128e +size 107855 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_deselected.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_deselected.png index 9fcdbf9250..1892857dda 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_deselected.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_deselected.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:763ad9348883e7ce3835c886ffcf3123662e2556d225b9fc1b8db4cd5a458aa2 -size 171438 +oid sha256:0dba6de897f4f539af9534383c2a871a43510931153e4a914e809ee5d74fa37c +size 174066 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_in_search.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_in_search.png index f8cde47b2f..87e98e8e60 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_in_search.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_in_search.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d13c5092a3e62d278c2acec21d694e15276fd9236a95f0bad03cc9878810d9ad -size 172052 +oid sha256:b33f4769a4aab3a4e0e7c756b463ae0e93a33db49370bf8f846eff33c19d3018 +size 174663 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_selected.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_selected.png index 9fcdbf9250..1892857dda 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_selected.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_all_rows_selected.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:763ad9348883e7ce3835c886ffcf3123662e2556d225b9fc1b8db4cd5a458aa2 -size 171438 +oid sha256:0dba6de897f4f539af9534383c2a871a43510931153e4a914e809ee5d74fa37c +size 174066 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_remove_access.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_remove_access.png index 95d6f354ab..2e69d4561f 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_remove_access.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_remove_access.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:69a5c5b50b2a7b51e03a5bcf8259a3f079136d14ce0a12925125511a75fc818f -size 162842 +oid sha256:b41325f4ffdbe249d79c3fec31a7515e493f0bd13b4298020ab2528cff677fb2 +size 162260 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access.png index d17af75b3a..5cca5d9f8f 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f875e690ebfbbec8fe1c971412721dd1b16bd3a02b2adc6b3936506776338cc -size 153294 +oid sha256:a8551fbe7ab890b6ff5eec612a366bc0119a71a2577ca93eed95bd7362525aa7 +size 152718 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access_confirm.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access_confirm.png index 12d610f69d..9b3b90470b 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access_confirm.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_bulk_set_access_confirm.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a304bb1bf2f8986559bf838d0c62fd360e714d1cb7cbb74cc3734423ae768d39 -size 9498 +oid sha256:7f2bc38c19d5424d61e034a7072e52318cf1f8691faa1d2788ecd9b0478863cc +size 9023 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_bulk_access.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_bulk_access.png index 4a9814a99a..08f816e818 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_bulk_access.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_bulk_access.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a1aa996985875ac9f719aee357dc439a1e5beeb72f7be779fd327a197af02de8 -size 147591 +oid sha256:9adb23a017f985eda23aea3d56995425323ea471289d9feaa0076c9c3ca01fea +size 147030 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_single.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_single.png index 057b1813ac..2b104efe29 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_single.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_single.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c66e2f4b376fbcbe96241179dce176e10273c70302306c1ae44030b96fe25e1d -size 148204 +oid sha256:48d6513ad172924794a2953ff8cc09fe085caa59e7ec41479e4827c1c72d74c6 +size 147712 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_manage_users_back.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_manage_users_back.png index 37abff71fd..bea2eb3273 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_manage_users_back.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_manage_users_back.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:056b637034bd252fbe286885ed9eeeb9b7b1875f0950de1a4f734ce4d0462575 -size 158181 +oid sha256:ae404313c6fac2ec50d8029564204b86471516ced99f29a865794f463ba4e7be +size 158794 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_previous.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_previous.png index 18f5f4462c..8937189e2b 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_previous.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_previous.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b97540f25c04a133cb10dcc058b7fc1e4a038ee1b319b082615f23545019bbed -size 148552 +oid sha256:c0a0768353e642106a7a56c374e964a4c3cd7a5057968fa427ecbc762adb442b +size 147988 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_role_for.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_role_for.png index 03c60e0fbb..88f9582ac5 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_role_for.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_role_for.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5110165e05355bc989dad0e06739b37b5c630582403031855ed5300ca90ff3db -size 157072 +oid sha256:f96f77641023594f08cbda089256472c4b32de13580d6b4a837bd6375a53a3eb +size 159653 diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_rows_selected.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_rows_selected.png index 1ae87ef19f..2c6a18293d 100644 --- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_rows_selected.png +++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_rows_selected.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ffc8054f46701ef58b6b3a8cf4195076dbb956d5ddd3a49d70db53553c69eca5 -size 158800 +oid sha256:c49f99ceb41ccd165905c62c61561e65683bdaa83900844b53dc29ed07eefe17 +size 161419 diff --git a/tsconfig.json b/tsconfig.json index 25cb9f68e4..915cbdfd07 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,8 @@ "angular", "jquery", "jqueryui", - "materialize-css" + "materialize-css", + "mousetrap" ], "paths": { "@/*": [ diff --git a/vue.config.js b/vue.config.js index a758b2378e..325655fe5a 100644 --- a/vue.config.js +++ b/vue.config.js @@ -80,5 +80,8 @@ module.exports = { callback(); }); + + // disable asset size warnings + config.performance.hints(false); }, }; |