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

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2022-07-01 22:58:42 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2022-07-01 22:58:42 +0300
commit3036722e3315c338f77adca9c89a079ef1879719 (patch)
tree26e4727962224072f784bbe9fe1d56048d20f78c
parent6c51dfdcf20ab7728845c3662e0007850127be41 (diff)
parent807e3a07e5428552057ad442224378141efc6cc3 (diff)
Merge branch '5.x-dev' into vue-remove-angularjs-visits-summary
-rw-r--r--CHANGELOG.md8
-rw-r--r--core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php17
-rw-r--r--core/Db/Schema/Mysql.php1
-rw-r--r--core/Plugin/ReportsProvider.php2
-rw-r--r--core/Settings/FieldConfig.php14
-rw-r--r--core/Settings/Measurable/MeasurableProperty.php2
-rw-r--r--core/Settings/Setting.php4
-rw-r--r--core/Settings/Storage/Backend/SitesTable.php5
-rw-r--r--core/Tracker/TrackerCodeGenerator.php18
-rw-r--r--core/Updates/4.12.0-b1.php49
-rw-r--r--core/Version.php2
-rw-r--r--js/piwik.js86
-rw-r--r--js/piwik.min.js84
-rw-r--r--matomo.js84
-rw-r--r--piwik.js84
-rw-r--r--plugins/API/Controller.php10
-rw-r--r--plugins/API/stylesheets/glossary.less14
-rw-r--r--plugins/API/templates/glossary.twig4
-rw-r--r--plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.js76
-rw-r--r--plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.min.js10
-rw-r--r--plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue24
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.js81
-rw-r--r--plugins/CoreHome/vue/dist/CoreHome.umd.min.js48
-rw-r--r--plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts19
-rw-r--r--plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue27
-rw-r--r--plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.js242
-rw-r--r--plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.min.js6
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue5
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue21
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue2
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue14
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue14
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue19
-rw-r--r--plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue14
-rw-r--r--plugins/CoreVisualizations/javascripts/jqplot.js9
-rw-r--r--plugins/CustomDimensions/CustomDimensions.php2
-rw-r--r--plugins/CustomDimensions/lang/en.json2
-rw-r--r--plugins/CustomDimensions/vue/dist/CustomDimensions.umd.js64
-rw-r--r--plugins/CustomDimensions/vue/dist/CustomDimensions.umd.min.js8
-rw-r--r--plugins/CustomDimensions/vue/src/List/List.vue4
-rw-r--r--plugins/Dashboard/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png4
-rw-r--r--plugins/DevicesDetection/Columns/BrowserVersion.php5
-rw-r--r--plugins/GeoIp2/LocationProvider/GeoIp2/Php.php11
-rw-r--r--plugins/GeoIp2/tests/Integration/LocationProviderTest.php20
-rw-r--r--plugins/Goals/lang/en.json4
-rw-r--r--plugins/ImageGraph/lang/en.json6
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png4
-rw-r--r--plugins/Live/VisitorDetails.php2
-rw-r--r--plugins/Login/Emails/PasswordResetEmail.php27
-rw-r--r--plugins/Login/lang/en.json92
-rw-r--r--plugins/Login/tests/Integration/PasswordResetterTest.php35
-rw-r--r--plugins/Login/tests/UI/Invite_spec.js3
-rw-r--r--plugins/Login/tests/UI/Login_spec.js4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Decline_default.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Invite_error.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Invite_set_password.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Invite_wrong_password.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedapi.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_login_form.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_password_reset_confirm.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/NoAccess_login_noaccess.png4
-rw-r--r--plugins/Login/tests/UI/expected-screenshots/NoAccess_login_session_timeout.png4
-rw-r--r--plugins/PrivacyManager/vue/dist/PrivacyManager.umd.js22
m---------plugins/QueuedTracking0
-rw-r--r--plugins/Referrers/Columns/Base.php100
-rw-r--r--plugins/Referrers/tests/Integration/Columns/ReferrerTypeTest.php104
-rw-r--r--plugins/Referrers/tests/System/expected/test_phpSerialized8__Referrers.getReferrerType_year.original2
-rw-r--r--plugins/Referrers/tests/System/expected/test_phpSerialized__Referrers.getReferrerType_year.originalbin3718 -> 3751 bytes
-rw-r--r--plugins/SegmentEditor/tests/UI/SegmentSelectorEditor_spec.js29
-rw-r--r--plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_capitalized.png4
-rw-r--r--plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_lowercase.png4
-rw-r--r--plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_uppercase.png4
-rw-r--r--plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_complex_segment.png4
-rw-r--r--plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_updated_details.png4
-rw-r--r--plugins/SitesManager/API.php340
-rw-r--r--plugins/SitesManager/Controller.php13
-rw-r--r--plugins/SitesManager/SiteUrls.php61
-rw-r--r--plugins/SitesManager/SitesManager.php24
-rw-r--r--plugins/SitesManager/lang/en.json7
-rw-r--r--plugins/SitesManager/tests/Fixtures/ManySites.php20
-rw-r--r--plugins/SitesManager/tests/Integration/ApiTest.php649
-rw-r--r--plugins/SitesManager/tests/Integration/ModelTest.php62
-rw-r--r--plugins/SitesManager/tests/Integration/SiteUrlsTest.php289
-rw-r--r--plugins/SitesManager/tests/Integration/SitesManagerTest.php29
-rw-r--r--plugins/SitesManager/tests/Integration/TrackingTest.php13
-rw-r--r--plugins/SitesManager/tests/System/ApiTest.php70
-rw-r--r--plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getPatternMatchSites.xml11
-rw-r--r--plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getSiteSettings.xml20
-rw-r--r--plugins/SitesManager/tests/System/expected/test_SitesManagerwithLimit__SitesManager.getPatternMatchSites.xml2
-rw-r--r--plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_global_settings.png4
-rw-r--r--plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_site_edit_url.png4
-rw-r--r--plugins/SitesManager/tests/Unit/APITest.php25
-rw-r--r--plugins/SitesManager/tests/Unit/GuessSiteTypeAndGtmTest.php11
-rw-r--r--plugins/SitesManager/vue/dist/SitesManager.umd.js100
-rw-r--r--plugins/SitesManager/vue/dist/SitesManager.umd.min.js16
-rw-r--r--plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts1
-rw-r--r--plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts3
-rw-r--r--plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue40
m---------plugins/TagManager0
-rw-r--r--plugins/UserCountryMap/Controller.php112
-rw-r--r--plugins/UserCountryMap/javascripts/visitor-map.js2
-rw-r--r--plugins/UsersManager/tests/Integration/UserInviteTest.php2
-rw-r--r--plugins/UsersManager/tests/UI/UsersManager_spec.js9
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_admin_view_admin_load.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_bulk_access.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_delete_single.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_asks_confirmation.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_confirmed_wrong_password.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_form.png4
-rw-r--r--plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_manage_users_back.png4
-rw-r--r--plugins/WebsiteMeasurable/MeasurableSettings.php139
-rw-r--r--tests/PHPUnit/Fixtures/OmniFixture.php1
-rw-r--r--tests/PHPUnit/Fixtures/UITestFixture.php199
-rw-r--r--tests/PHPUnit/Framework/Fixture.php24
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getAvailableMeasurableTypes.xml40
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png4
-rw-r--r--tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_glossary.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_not_logged_in.png4
-rw-r--r--tests/javascript/index.php65
-rw-r--r--tests/javascript/matomotest.js1
-rw-r--r--tests/lib/geoip-files/GeoIP2-City.json70
-rw-r--r--tests/lib/geoip-files/GeoIP2-City.mmdbbin17070 -> 17299 bytes
140 files changed, 2731 insertions, 1588 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7a2a0c131..23d5aac869 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,14 @@ This is the Developer Changelog for Matomo platform developers. All changes in o
The Product Changelog at **[matomo.org/changelog](https://matomo.org/changelog)** lets you see more details about any Matomo release, such as the list of new guides and FAQs, security fixes, and links to all closed issues.
+## Matomo 4.12.0
+
+### JavaScript Tracker
+
+#### New APIs
+
+* The methods `setExcludedReferrers` and `getExcludedReferrers` have been added to the JavaScript tracker. They allow setting and receiving the referrers the JavaScript tracker should ignore. If a referrer matches an entry on that list, it will not be passed with the tracking requests and the attribution cookie will stay unchanged. This can for example be used if you need to forward your users to an external service like SSO or payment and don't want any visits or conversions being attributed to those services.
+
## Matomo 4.10.0
### Breaking Changes
diff --git a/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php b/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
index 9ac1edaec7..bfd73ca039 100644
--- a/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
+++ b/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
@@ -276,7 +276,22 @@ class PluginUmdAssetFetcher extends UIAssetFetcher
private static function getRelativePluginDirectory($plugin)
{
$result = self::getPluginDirectory($plugin);
- $result = str_replace(PIWIK_INCLUDE_PATH . '/', '', $result);
+
+ $matomoPath = rtrim(PIWIK_INCLUDE_PATH, '/') . '/';
+ $webroots = array_merge(
+ Manager::getAlternativeWebRootDirectories(),
+ [$matomoPath => '/']
+ );
+
+ foreach ($webroots as $webrootAbsolute => $webrootRelative) {
+ if (strpos($result, $webrootAbsolute) === 0) {
+ $result = str_replace($webrootAbsolute, $webrootRelative, $result);
+ break;
+ }
+ }
+
+ $result = ltrim($result, '/');
+
return $result;
}
diff --git a/core/Db/Schema/Mysql.php b/core/Db/Schema/Mysql.php
index 00fb8c31e9..71bd54f39e 100644
--- a/core/Db/Schema/Mysql.php
+++ b/core/Db/Schema/Mysql.php
@@ -105,6 +105,7 @@ class Mysql implements SchemaInterface
excluded_ips TEXT NOT NULL,
excluded_parameters TEXT NOT NULL,
excluded_user_agents TEXT NOT NULL,
+ excluded_referrers TEXT NOT NULL,
`group` VARCHAR(250) NOT NULL,
`type` VARCHAR(255) NOT NULL,
keep_url_fragment TINYINT NOT NULL DEFAULT 0,
diff --git a/core/Plugin/ReportsProvider.php b/core/Plugin/ReportsProvider.php
index 8f05137c56..f2fabf7f57 100644
--- a/core/Plugin/ReportsProvider.php
+++ b/core/Plugin/ReportsProvider.php
@@ -153,7 +153,7 @@ class ReportsProvider
* public function filterReports(&$reports)
* {
* foreach ($reports as $index => $report) {
- * if ($report->getCategory() === 'Actions') {}
+ * if ($report->getCategoryId() === 'General_Actions') {
* unset($reports[$index]); // remove all reports having this action
* }
* }
diff --git a/core/Settings/FieldConfig.php b/core/Settings/FieldConfig.php
index a6480216b6..a74878757c 100644
--- a/core/Settings/FieldConfig.php
+++ b/core/Settings/FieldConfig.php
@@ -191,6 +191,20 @@ class FieldConfig
public $inlineHelp = null;
/**
+ * A closure that prepares the setting value. If supplied, this closure will be executed before
+ * the setting has been validated.
+ *
+ * **Example**
+ *
+ * $setting->prepare = function ($value, Setting $setting) {
+ * return mb_strtolower($value);
+ * }
+ *
+ * @var null|\Closure
+ */
+ public $prepare = null;
+
+ /**
* A closure that does some custom validation on the setting before the setting is persisted.
*
* The closure should take two arguments: the setting value and the {@link Setting} instance being
diff --git a/core/Settings/Measurable/MeasurableProperty.php b/core/Settings/Measurable/MeasurableProperty.php
index a1c9fa5534..415bd6e73c 100644
--- a/core/Settings/Measurable/MeasurableProperty.php
+++ b/core/Settings/Measurable/MeasurableProperty.php
@@ -31,7 +31,7 @@ class MeasurableProperty extends \Piwik\Settings\Setting
private $allowedNames = array(
'ecommerce', 'sitesearch', 'sitesearch_keyword_parameters',
- 'sitesearch_category_parameters',
+ 'sitesearch_category_parameters', 'excluded_referrers',
'exclude_unknown_urls', 'excluded_ips', 'excluded_parameters',
'excluded_user_agents', 'keep_url_fragment', 'urls', 'group'
);
diff --git a/core/Settings/Setting.php b/core/Settings/Setting.php
index d7b791fb2c..67ed0833e1 100644
--- a/core/Settings/Setting.php
+++ b/core/Settings/Setting.php
@@ -221,6 +221,10 @@ class Setting
$config = $this->configureField();
+ if ($config->prepare && $config->prepare instanceof \Closure) {
+ $value = call_user_func($config->prepare, $value, $this);
+ }
+
$this->validateValue($value);
if ($config->transform && $config->transform instanceof \Closure) {
diff --git a/core/Settings/Storage/Backend/SitesTable.php b/core/Settings/Storage/Backend/SitesTable.php
index c81f42fcc2..ccfc494311 100644
--- a/core/Settings/Storage/Backend/SitesTable.php
+++ b/core/Settings/Storage/Backend/SitesTable.php
@@ -28,14 +28,15 @@ class SitesTable implements BackendInterface
'sitesearch_category_parameters',
'excluded_user_agents',
'excluded_parameters',
- 'excluded_ips'
+ 'excluded_ips',
+ 'excluded_referrers'
);
// these fields are standard fields of a site and cannot be adjusted via a setting
private $allowedNames = array(
'ecommerce', 'sitesearch', 'sitesearch_keyword_parameters',
'sitesearch_category_parameters', 'exclude_unknown_urls',
- 'excluded_ips', 'excluded_parameters',
+ 'excluded_ips', 'excluded_parameters', 'excluded_referrers',
'excluded_user_agents', 'keep_url_fragment', 'urls'
);
diff --git a/core/Tracker/TrackerCodeGenerator.php b/core/Tracker/TrackerCodeGenerator.php
index 6bfba7894d..f6989f305c 100644
--- a/core/Tracker/TrackerCodeGenerator.php
+++ b/core/Tracker/TrackerCodeGenerator.php
@@ -48,6 +48,7 @@ class TrackerCodeGenerator
* @param bool $trackNoScript
* @param bool $crossDomain
* @param bool $excludedQueryParams
+ * @param array $excludedReferrers
* @return string Javascript code.
*/
public function generate(
@@ -64,7 +65,8 @@ class TrackerCodeGenerator
$disableCookies = false,
$trackNoScript = false,
$crossDomain = false,
- $excludedQueryParams = false
+ $excludedQueryParams = false,
+ $excludedReferrers = []
) {
// changes made to this code should be mirrored in plugins/CoreAdminHome/javascripts/jsTrackingGenerator.js var generateJsCode
@@ -144,11 +146,19 @@ class TrackerCodeGenerator
// Add any excluded query parameters to the tracker options
if ($excludedQueryParams) {
-
if (!is_array($excludedQueryParams)) {
- $excludedQueryParams = explode(',',$excludedQueryParams);
+ $excludedQueryParams = explode(',', $excludedQueryParams);
}
- $options .= ' _paq.push(["setExcludedQueryParams", '.json_encode($excludedQueryParams).']);'."\n";
+ $options .= ' _paq.push(["setExcludedQueryParams", ' . json_encode($excludedQueryParams) . ']);' . "\n";
+ }
+
+ // Add any ignored referrer to the tracker options
+ if ($excludedReferrers) {
+ if (!is_array($excludedReferrers)) {
+ $excludedReferrers = explode(',', $excludedReferrers);
+ }
+
+ $options .= ' _paq.push(["setExcludedReferrers", ' . json_encode($excludedReferrers) . ']);' . "\n";
}
if ($disableCookies) {
diff --git a/core/Updates/4.12.0-b1.php b/core/Updates/4.12.0-b1.php
new file mode 100644
index 0000000000..aa4059de67
--- /dev/null
+++ b/core/Updates/4.12.0-b1.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+
+namespace Piwik\Updates;
+
+use Piwik\Updater;
+use Piwik\Updates as PiwikUpdates;
+use Piwik\Updater\Migration;
+use Piwik\Updater\Migration\Factory as MigrationFactory;
+
+/**
+ * Update for version 4.12.0-b1
+ */
+class Updates_4_12_0_b1 extends PiwikUpdates
+{
+ /**
+ * @var MigrationFactory
+ */
+ private $migration;
+
+ public function __construct(MigrationFactory $factory)
+ {
+ $this->migration = $factory;
+ }
+
+ /**
+ * @param Updater $updater
+ *
+ * @return Migration[]
+ */
+ public function getMigrations(Updater $updater)
+ {
+ return [
+ $this->migration->db->addColumn('site', 'excluded_referrers', 'TEXT NOT NULL', 'excluded_user_agents')
+ ];
+ }
+
+ public function doUpdate(Updater $updater)
+ {
+ $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
+ }
+}
diff --git a/core/Version.php b/core/Version.php
index b4a96877dd..9a5e30e677 100644
--- a/core/Version.php
+++ b/core/Version.php
@@ -21,7 +21,7 @@ final class Version
* The current Matomo version.
* @var string
*/
- const VERSION = '4.11.0-rc1';
+ const VERSION = '4.12.0-b1';
const MAJOR_VERSION = 4;
diff --git a/js/piwik.js b/js/piwik.js
index f2126a3d14..0bc90bee21 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -65,6 +65,7 @@
deleteCustomVariables, deleteCustomDimension, setDownloadExtensions, addDownloadExtensions, removeDownloadExtensions,
setDomains, setIgnoreClasses, setRequestMethod, setRequestContentType, setGenerationTimeMs, setPagePerformanceTiming,
setReferrerUrl, setCustomUrl, setAPIUrl, setDocumentTitle, setPageViewId, getPiwikUrl, getMatomoUrl, getCurrentUrl,
+ setExcludedReferrers, getExcludedReferrers,
setDownloadClasses, setLinkClasses,
setCampaignNameKey, setCampaignKeywordKey,
getConsentRequestsQueue, requireConsent, getRememberedConsent, hasRememberedConsent, isConsentRequired,
@@ -2247,6 +2248,9 @@ if (typeof window.Matomo !== 'object') {
// HTML anchor element classes to not track
configIgnoreClasses = [],
+ // Referrer URLs that should be excluded
+ configExcludedReferrers = [],
+
// Query parameters to be excluded
configExcludedQueryParams = [],
@@ -2723,6 +2727,49 @@ if (typeof window.Matomo !== 'object') {
return false;
}
+ /**
+ * Whether the specified referrer url matches one of the configured excluded referrers.
+ *
+ * @param string referrerUrl
+ * @returns {boolean}
+ */
+ function isReferrerExcluded(referrerUrl)
+ {
+ var i,
+ host,
+ path,
+ aliasHost,
+ aliasPath;
+
+ if (!referrerUrl.length || !configExcludedReferrers.length) {
+ return false;
+ }
+
+ host = getHostName(referrerUrl);
+ path = getPathName(referrerUrl);
+
+ // ignore www subdomain
+ if (host.indexOf('www.') === 0) {
+ host = host.substr(4);
+ }
+
+ for (i = 0; i < configExcludedReferrers.length; i++) {
+ aliasHost = domainFixup(configExcludedReferrers[i]);
+ aliasPath = getPathName(configExcludedReferrers[i]);
+
+ // ignore www subdomain
+ if (aliasHost.indexOf('www.') === 0) {
+ aliasHost = aliasHost.substr(4);
+ }
+
+ if (isSameHost(host, aliasHost) && isSitePath(path, aliasPath)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
/*
* Send image request to Matomo server using GET.
* The infamous web bug (or beacon) is a transparent, single pixel (1x1) image
@@ -3688,12 +3735,16 @@ if (typeof window.Matomo !== 'object') {
currentReferrerHostName = getHostName(configReferrerUrl);
originalReferrerHostName = referralUrl.length ? getHostName(referralUrl) : '';
- if (currentReferrerHostName.length && // there is a referrer
- !isSiteHostName(currentReferrerHostName) && // domain is not the current domain
- (!configConversionAttributionFirstReferrer || // attribute to last known referrer
- !originalReferrerHostName.length || // previously empty
- isSiteHostName(originalReferrerHostName))
- ) { // previously set but in current domain
+ if (currentReferrerHostName.length // there is a referrer
+ && !isSiteHostName(currentReferrerHostName) // domain is not the current domain
+ && !isReferrerExcluded(configReferrerUrl) // referrer is excluded
+ && (
+ !configConversionAttributionFirstReferrer // attribute to last known referrer
+ || !originalReferrerHostName.length // previously empty
+ || isSiteHostName(originalReferrerHostName) // previously set but in current domain
+ || isReferrerExcluded(referralUrl) // previously set but excluded
+ )
+ ) {
referralUrl = configReferrerUrl;
}
@@ -3767,7 +3818,7 @@ if (typeof window.Matomo !== 'object') {
'&r=' + String(Math.random()).slice(2, 8) + // keep the string to a minimum
'&h=' + now.getHours() + '&m=' + now.getMinutes() + '&s=' + now.getSeconds() +
'&url=' + encodeWrapper(purify(currentUrl)) +
- (configReferrerUrl.length ? '&urlref=' + encodeWrapper(purify(configReferrerUrl)) : '') +
+ (configReferrerUrl.length && !isReferrerExcluded(configReferrerUrl) ? '&urlref=' + encodeWrapper(purify(configReferrerUrl)) : '') +
(isNumberOrHasLength(configUserId) ? '&uid=' + encodeWrapper(configUserId) : '') +
'&_id=' + cookieVisitorIdValues.uuid +
'&_idn=' + cookieVisitorIdValues.newVisitor + // currently unused
@@ -4970,6 +5021,9 @@ if (typeof window.Matomo !== 'object') {
this.getDomains = function () {
return configHostsAlias;
};
+ this.getExcludedReferrers = function () {
+ return configExcludedReferrers;
+ };
this.getConfigIdPageView = function () {
return configIdPageView;
};
@@ -5564,6 +5618,22 @@ if (typeof window.Matomo !== 'object') {
}
};
+ /**
+ * Set array of domains to be excluded as referrer. Also supports path, eg '.matomo.org/subsite1'. In this
+ * case all referrers that don't match '*.matomo.org/subsite1/ *' would still be used as referrer.
+ * For example 'matomo.org/' or 'matomo.org/subsite2' would both be used as referrer.
+ *
+ * Also supports page wildcard, eg 'matomo.org/index*'. In this case all referrers
+ * that don't match matomo.org/index* would still be treated as referrer.
+ *
+ * Domains added with setDomains will automatically be excluded as referrers.
+ *
+ * @param string|array excludedReferrers
+ */
+ this.setExcludedReferrers = function(excludedReferrers) {
+ configExcludedReferrers = isString(excludedReferrers) ? [excludedReferrers] : excludedReferrers;
+ };
+
/**
* Enables cross domain linking. By default, the visitor ID that identifies a unique visitor is stored in
* the browser's first party cookies. This means the cookie can only be accessed by pages on the same domain.
@@ -7163,7 +7233,7 @@ if (typeof window.Matomo !== 'object') {
* Constructor
************************************************************/
- var applyFirst = ['addTracker', 'forgetCookieConsentGiven', 'requireCookieConsent','disableBrowserFeatureDetection', 'disableCookies', 'setTrackerUrl', 'setAPIUrl', 'enableCrossDomainLinking', 'setCrossDomainLinkingTimeout', 'setSessionCookieTimeout', 'setVisitorCookieTimeout', 'setCookieNamePrefix', 'setCookieSameSite', 'setSecureCookie', 'setCookiePath', 'setCookieDomain', 'setDomains', 'setUserId', 'setVisitorId', 'setSiteId', 'alwaysUseSendBeacon', 'disableAlwaysUseSendBeacon', 'enableLinkTracking', 'setCookieConsentGiven', 'requireConsent', 'setConsentGiven', 'disablePerformanceTracking', 'setPagePerformanceTiming', 'setExcludedQueryParams'];
+ var applyFirst = ['addTracker', 'forgetCookieConsentGiven', 'requireCookieConsent','disableBrowserFeatureDetection', 'disableCookies', 'setTrackerUrl', 'setAPIUrl', 'enableCrossDomainLinking', 'setCrossDomainLinkingTimeout', 'setSessionCookieTimeout', 'setVisitorCookieTimeout', 'setCookieNamePrefix', 'setCookieSameSite', 'setSecureCookie', 'setCookiePath', 'setCookieDomain', 'setDomains', 'setUserId', 'setVisitorId', 'setSiteId', 'alwaysUseSendBeacon', 'disableAlwaysUseSendBeacon', 'enableLinkTracking', 'setCookieConsentGiven', 'requireConsent', 'setConsentGiven', 'disablePerformanceTracking', 'setPagePerformanceTiming', 'setExcludedQueryParams', 'setExcludedReferrers'];
function createFirstTracker(matomoUrl, siteId)
{
diff --git a/js/piwik.min.js b/js/piwik.min.js
index ce0247be92..6893f82409 100644
--- a/js/piwik.min.js
+++ b/js/piwik.min.js
@@ -29,47 +29,47 @@ at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.fin
}if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at<aw.length;at++){au=this.buildContentBlock(aw[at]);if(M(au)){av.push(au)}}return av},setLocation:function(at){this.location=at},getLocation:function(){var at=this.location||W.location;if(!at.origin){at.origin=at.protocol+"//"+at.hostname+(at.port?":"+at.port:"")}return at},toAbsoluteUrl:function(au){if((!au||String(au)!==au)&&au!==""){return au}if(""===au){return this.getLocation().href}if(au.search(/^\/\//)!==-1){return this.getLocation().protocol+au}if(au.search(/:\/\//)!==-1){return au}if(0===au.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+au}if(0===au.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+au
}if(0===au.search("^[a-zA-Z]{2,11}:")){return au}if(au.search(/^\//)!==-1){return this.getLocation().origin+au}var at="(.*/)";var av=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(at))[0];return av+au},isUrlToCurrentDomain:function(au){var av=this.toAbsoluteUrl(au);if(!av){return false}var at=this.getLocation().origin;if(at===av){return true}if(0===String(av).indexOf(at)){if(":"===String(av).substr(at.length,1)){return false}return true}return false},setHrefAttribute:function(au,at){if(!au||!at){return}ai.setAnyAttribute(au,"href",at)},shouldIgnoreInteraction:function(at){if(ai.hasNodeAttribute(at,this.CONTENT_IGNOREINTERACTION_ATTR)){return true}if(ai.hasNodeCssClass(at,this.CONTENT_IGNOREINTERACTION_CLASS)){return true}if(ai.hasNodeCssClass(at,this.LEGACY_CONTENT_IGNOREINTERACTION_CLASS)){return true}return false}};function aa(au,ax){if(ax){return ax}au=w.toAbsoluteUrl(au);if(A(au,"?")){var aw=au.indexOf("?");au=au.slice(0,aw)}if(U(au,"matomo.php")){au=f(au,"matomo.php".length)
}else{if(U(au,"piwik.php")){au=f(au,"piwik.php".length)}else{if(U(au,".php")){var at=au.lastIndexOf("/");var av=1;au=au.slice(0,at+av)}}}if(U(au,"/js/")){au=f(au,"js/".length)}return au}function R(az){var aB="Matomo_Overlay";var au=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=[^&]*)?");var av=au.exec(J.referrer);if(av){var ax=av[1];if(ax!==String(az)){return false}var ay=av[2],at=av[3],aw=av[4];if(!aw){aw=""}else{if(aw.indexOf("&segment=")===0){aw=aw.substr("&segment=".length)}}W.name=aB+"###"+ay+"###"+at+"###"+aw}var aA=W.name.split("###");return aA.length===4&&aA[0]===aB}function ad(au,az,av){var ay=W.name.split("###"),ax=ay[1],at=ay[2],aw=ay[3],aA=aa(au,az);o(aA+"plugins/Overlay/client/client.js?v=1",function(){Matomo_Overlay_Client.initialize(aA,av,ax,at,aw)})}function v(){var av;try{av=W.frameElement}catch(au){return true}if(M(av)){return(av&&String(av.nodeName).toLowerCase()==="iframe")?true:false}try{return W.self!==W.top
-}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cL="mtm_cookie_consent",cU="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c2=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c0=false,cn="GET",dk=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cE=aM,aI=cj||"",bO="",c9="",ct="",cc=cf||"",bF="",bU="",ba,bp="",dg=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c2],bG=[],co=[],bR=[],be=[],bQ=500,c5=true,cR,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c7,bw,bY=false,aN="Lax",bs=false,cY,bk,bC,cS=33955200000,cu=1800000,df=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cA={},da={},dh={},cg=[],ck=false,cJ=false,au=false,di=false,cV=false,aS=false,bi=v(),cF=null,c8=null,aW,bI,cd=aq,bv,aQ,bH=false,cx=0,bB=["id","ses","cvar","ref"],cI=false,bJ=null,cT=[],cz=[],aB=X++,aA=false,c6=true;
-try{bp=J.title}catch(cG){bp=""}function aH(dw){if(bs){return 0}var du=new RegExp("(^|;)[ ]*"+dw+"=([^;]*)"),dv=du.exec(J.cookie);return dv?V(dv[2]):0}bJ=!aH(cU);function dp(dy,dz,dC,dB,dw,dx,dA){if(bs&&dy!==cU){return}var dv;if(dC){dv=new Date();dv.setTime(dv.getTime()+dC)}if(!dA){dA="Lax"}J.cookie=dy+"="+t(dz)+(dC?";expires="+dv.toGMTString():"")+";path="+(dB||"/")+(dw?";domain="+dw:"")+(dx?";secure":"")+";SameSite="+dA;if((!dC||dC>=0)&&aH(dy)!==String(dz)){var du="There was an error setting cookie `"+dy+"`. Please check domain and path.";ao(du)}}function b8(du){var dw,dv;du=j(du,az);for(dv=0;dv<co.length;dv++){du=j(du,co[dv])}if(bV){dw=new RegExp("#.*");return du.replace(dw,"")}return du}function b1(dw,du){var dx=s(du),dv;if(dx){return du}if(du.slice(0,1)==="/"){return s(dw)+"://"+d(dw)+du}dw=b8(dw);dv=dw.indexOf("?");if(dv>=0){dw=dw.slice(0,dv)}dv=dw.lastIndexOf("/");if(dv!==dw.length-1){dw=dw.slice(0,dv+1)}return dw+du}function cP(dw,du){var dv;dw=String(dw).toLowerCase();du=String(du).toLowerCase();
-if(dw===du){return true}if(du.slice(0,1)==="."){if(dw===du.slice(1)){return true}dv=dw.length-du.length;if((dv>0)&&(dw.slice(dv)===du)){return true}}return false}function cr(du){var dv=document.createElement("a");if(du.indexOf("//")!==0&&du.indexOf("http")!==0){if(du.indexOf("*")===0){du=du.substr(1)}if(du.indexOf(".")===0){du=du.substr(1)}du="http://"+du}dv.href=w.toAbsoluteUrl(du);if(dv.pathname){return dv.pathname}return""}function a9(dv,du){if(!an(du,"/")){du="/"+du}if(!an(dv,"/")){dv="/"+dv}var dw=(du==="/"||du==="/*");if(dw){return true}if(dv===du){return true}du=String(du).toLowerCase();dv=String(dv).toLowerCase();if(U(du,"*")){du=du.slice(0,-1);dw=(!du||du==="/");if(dw){return true}if(dv===du){return true}return dv.indexOf(du)===0}if(!U(dv,"/")){dv+="/"}if(!U(du,"/")){du+="/"}return dv.indexOf(du)===0}function aw(dy,dA){var dv,du,dw,dx,dz;for(dv=0;dv<aC.length;dv++){dx=O(aC[dv]);dz=cr(aC[dv]);if(cP(dy,dx)&&a9(dA,dz)){return true}}return false}function a1(dx){var dv,du,dw;for(dv=0;
-dv<aC.length;dv++){du=O(aC[dv].toLowerCase());if(dx===du){return true}if(du.slice(0,1)==="."){if(dx===du.slice(1)){return true}dw=dx.length-du.length;if((dw>0)&&(dx.slice(dw)===du)){return true}}}return false}function cv(du,dw){du=du.replace("send_image=0","send_image=1");var dv=new Image(1,1);dv.onload=function(){H=0;if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:true})}};dv.onerror=function(){if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:false})}};dv.src=aI+(aI.indexOf("?")<0?"?":"&")+du}function cM(du){if(dk==="POST"){return true}return du&&(du.length>2000||du.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dy,dB,dA){var dw=aP();if(!dw){return false}var dx={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dC=false;var dv=aI;try{var du=new Blob([dy],dx);if(dA&&!cM(dy)){du=new Blob([],dx);dv=dv+(dv.indexOf("?")<0?"?":"&")+dy}dC=g.sendBeacon(dv,du)}catch(dz){return false
-}if(dC&&typeof dB==="function"){dB({request:dy,trackerUrl:aI,success:true,isSendBeacon:true})}return dC}function de(dv,dw,du){if(!M(du)||null===du){du=true}if(m&&bc(dv,dw,du)){return}setTimeout(function(){if(m&&bc(dv,dw,du)){return}var dz;try{var dy=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dy.open("POST",aI,true);dy.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dA=m&&bc(dv,dw,du);if(!dA&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dw==="function")){dw({request:dv,trackerUrl:aI,success:true,xhr:this})}}};dy.setRequestHeader("Content-Type",cE);dy.withCredentials=true;dy.send(dv)}catch(dx){dz=m&&bc(dv,dw,du);if(!dz&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false})}}}},50)}function cl(dv){var du=new Date();var dw=du.getTime()+dv;if(!r||dw>r){r=dw}}function bg(){bi=true;
-cF=new Date().getTime()}function dn(){var du=new Date().getTime();return !cF||(du-cF)>bb}function aD(){if(dn()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dn()){bX()}else{if(J.visibilityState==="visible"){cF=new Date().getTime()}}}function dr(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dn()){bX()}}})}function cK(dy){var dv=new Date();var du=dv.getTime();c8=du;if(cJ&&du<cJ){var dw=cJ-du;setTimeout(dy,dw);cl(dw+50);cJ+=50;return}if(cJ===false){var dx=800;cJ=du+dx}dy()}function aT(){if(aH(cU)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dv,du,dw){aT();if(!bJ){cT.push(dv);return}aA=true;if(!cY&&dv){if(cI&&bJ){dv+="&consent=1"}cK(function(){if(c5&&bc(dv,dw,true)){cl(100);return}if(cM(dv)){de(dv,dw)}else{cv(dv,dw)}cl(du)})}if(!aS){dr()}}function cq(du){if(cY){return false}return(du&&du.length)}function dd(du,dy){if(!dy||dy>=du.length){return[du]}var dv=0;var dw=du.length;var dx=[];
-for(dv;dv<dw;dv+=dy){dx.push(du.slice(dv,dv+dy))}return dx}function dq(dv,du){if(!cq(dv)){return}if(!bJ){cT.push(dv);return}aA=true;cK(function(){var dy=dd(dv,50);var dw=0,dx;for(dw;dw<dy.length;dw++){dx='{"requests":["?'+dy[dw].join('","?')+'"],"send_image":0}';if(c5&&bc(dx,null,false)){cl(100)}else{de(dx,null,false)}}cl(du)})}function aY(du){return bq+du+"."+cc+"."+bv}function b5(dw,dv,du){dp(dw,"",-129600000,dv,du)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var du=bq+"testcookie";dp(du,"1",undefined,bw,c7,bY,aN);var dv=aH(du)==="1"?"1":"0";b5(du);return dv}function bo(){bv=cd((c7||c2)+(bw||"/")).slice(0,4)}function cQ(){if(!c6){return{}}if(M(dh.res)){return dh}var dv,dx,dy={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dv in dy){if(Object.prototype.hasOwnProperty.call(dy,dv)){dx=g.mimeTypes[dy[dv]];
-dh[dv]=(dx&&dx.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dh.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dh.cookie=g.cookieEnabled?"1":"0"}else{dh.cookie=cb()}}var dw=parseInt(ab.width,10);var du=parseInt(ab.height,10);dh.res=parseInt(dw,10)+"x"+parseInt(du,10);return dh}function b3(){var dv=aY("cvar"),du=aH(dv);if(du&&du.length){du=W.JSON.parse(du);if(Z(du)){return du}}return{}}function cN(){if(aV===false){aV=b3()}}function cZ(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)+(new Date()).getTime()+Math.random()).slice(0,16)}function aF(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dv=bl();var dw=aF();var du=String(dv)+dw;return du}function dc(dw){dw=String(dw);var dz=aF();var dx=dz.length;var dy=dw.substr(-1*dx,dx);
-var dv=parseInt(dw.substr(0,dw.length-dx),10);if(dv&&dy&&dy===dz){var du=bl();if(a5<=0){return true}if(du>=dv&&du<=(dv+a5)){return true}}return false}function ds(du){if(!cV){return""}var dy=e(du,az);if(!dy){return""}dy=String(dy);var dw=new RegExp("^[a-zA-Z0-9]+$");if(dy.length===32&&dw.test(dy)){var dv=dy.substr(16,32);if(dc(dv)){var dx=dy.substr(0,16);return dx}}return""}function cW(){if(!bU){bU=ds(bT)}var dw=new Date(),du=Math.round(dw.getTime()/1000),dv=aY("id"),dz=aH(dv),dy,dx;if(dz){dy=dz.split(".");dy.unshift("0");if(bU.length){dy[1]=bU}return dy}if(bU.length){dx=bU}else{if("0"===cb()){dx=""}else{dx=cZ()}}dy=["1",dx,du];return dy}function a4(){var dx=cW(),dv=dx[0],dw=dx[1],du=dx[2];return{newVisitor:dv,uuid:dw,createTs:du}}function aL(){var dx=new Date(),dv=dx.getTime(),dy=a4().createTs;var du=parseInt(dy,10);var dw=(du*1000)+cS-dv;return dw}function aR(du){if(!cc){return}var dw=new Date(),dv=Math.round(dw.getTime()/1000);if(!M(du)){du=a4()}var dx=du.uuid+"."+du.createTs+".";dp(aY("id"),dx,aL(),bw,c7,bY,aN)
-}function bS(){var du=aH(aY("ref"));if(du.length){try{du=W.JSON.parse(du);if(Z(du)){return du}}catch(dv){}}return["","",0,""]}function bD(dw){var dv=bq+"testcookie_domain";var du="testvalue";dp(dv,du,10000,null,dw,bY,aN);if(aH(dv)===du){b5(dv,null,dw);return true}return false}function aJ(){var dv=bs;bs=false;var du,dw;for(du=0;du<bB.length;du++){dw=aY(bB[du]);if(dw!==cU&&dw!==bj&&0!==aH(dw)){b5(dw,bw,c7)}}bs=dv}function b9(du){cc=du}function dt(dy){if(!dy||!Z(dy)){return}var dx=[];var dw;for(dw in dy){if(Object.prototype.hasOwnProperty.call(dy,dw)){dx.push(dw)}}var dz={};dx.sort();var du=dx.length;var dv;for(dv=0;dv<du;dv++){dz[dx[dv]]=dy[dx[dv]]}return dz}function ci(){dp(aY("ses"),"1",cu,bw,c7,bY,aN)}function bm(){var dx="";var dv="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dw=dv.length;var du;for(du=0;du<6;du++){dx+=dv.charAt(Math.floor(Math.random()*dw))}return dx}function aE(dv){if(ct!==""){dv+=ct;bn=true;return dv}if(!h){return dv}var dw=(typeof h.timing==="object")&&h.timing?h.timing:undefined;
-if(!dw){dw=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dw){return dv}var du="";if(dw.connectEnd&&dw.fetchStart){if(dw.connectEnd<dw.fetchStart){return dv}du+="&pf_net="+Math.round(dw.connectEnd-dw.fetchStart)}if(dw.responseStart&&dw.requestStart){if(dw.responseStart<dw.requestStart){return dv}du+="&pf_srv="+Math.round(dw.responseStart-dw.requestStart)}if(dw.responseStart&&dw.responseEnd){if(dw.responseEnd<dw.responseStart){return dv}du+="&pf_tfr="+Math.round(dw.responseEnd-dw.responseStart)}if(M(dw.domLoading)){if(dw.domInteractive&&dw.domLoading){if(dw.domInteractive<dw.domLoading){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.domLoading)}}else{if(dw.domInteractive&&dw.responseEnd){if(dw.domInteractive<dw.responseEnd){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.responseEnd)}}if(dw.domComplete&&dw.domInteractive){if(dw.domComplete<dw.domInteractive){return dv}du+="&pf_dm2="+Math.round(dw.domComplete-dw.domInteractive)
-}if(dw.loadEventEnd&&dw.loadEventStart){if(dw.loadEventEnd<dw.loadEventStart){return dv}du+="&pf_onl="+Math.round(dw.loadEventEnd-dw.loadEventStart)}return dv+du}function dj(){var dE,dx=new Date(),dy=Math.round(dx.getTime()/1000),dJ,dw,dz=1024,dG,dA,dv=aY("ses"),dD=aY("ref"),dC=aH(dv),du=bS(),dI=ba||bT,dF,dB,dH={};dF=du[0];dB=du[1];dJ=du[2];dw=du[3];if(!dC){if(!bC||!dF.length){for(dE in cw){if(Object.prototype.hasOwnProperty.call(cw,dE)){dF=e(dI,cw[dE]);if(dF.length){break}}}for(dE in bN){if(Object.prototype.hasOwnProperty.call(bN,dE)){dB=e(dI,bN[dE]);if(dB.length){break}}}}dG=d(bu);dA=dw.length?d(dw):"";if(dG.length&&!a1(dG)&&(!bC||!dA.length||a1(dA))){dw=bu}if(dw.length||dF.length){dJ=dy;du=[dF,dB,dJ,b8(dw.slice(0,dz))];dp(dD,W.JSON.stringify(du),df,bw,c7,bY,aN)}}if(dF.length){dH._rcn=t(dF)}if(dB.length){dH._rck=t(dB)}dH._refts=dJ;if(String(dw).length){dH._ref=t(b8(dw.slice(0,dz)))}return dH}function cy(dv,dG,dH){var dF,du=new Date(),dE=aV,dA=aY("cvar"),dI=ba||bT;if(bs){aJ()}if(cY){return""
-}var dB=a4();var dy=J.characterSet||J.charset;if(!dy||dy.toLowerCase()==="utf-8"){dy=null}dv+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+du.getHours()+"&m="+du.getMinutes()+"&s="+du.getSeconds()+"&url="+t(b8(dI))+(bu.length?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dB.uuid+"&_idn="+dB.newVisitor+(dy?"&cs="+t(dy):"")+"&send_image=0";var dD=dj();for(dF in dD){if(Object.prototype.hasOwnProperty.call(dD,dF)){dv+="&"+dF+"="+dD[dF]}}var dK=cQ();for(dF in dK){if(Object.prototype.hasOwnProperty.call(dK,dF)){dv+="&"+dF+"="+dK[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dw=dF.replace("dimension","");dL.push(parseInt(dw,10));dL.push(String(dw));dv+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&D(dG)){dG=null}for(dF in cA){if(Object.prototype.hasOwnProperty.call(cA,dF)){dv+="&"+dF+"="+t(cA[dF])}}for(dF in bt){if(Object.prototype.hasOwnProperty.call(bt,dF)){var dz=(-1===P(dL,dF));if(dz){dv+="&dimension"+dF+"="+t(bt[dF])
-}}}if(dG){dv+="&data="+t(W.JSON.stringify(dG))}else{if(at){dv+="&data="+t(W.JSON.stringify(at))}}function dx(dM,dN){var dO=W.JSON.stringify(dM);if(dO.length>2){return"&"+dN+"="+t(dO)}return""}var dJ=dt(b2);var dC=dt(cs);dv+=dx(dJ,"cvar");dv+=dx(dC,"e_cvar");if(aV){dv+=dx(aV,"_cvar");for(dF in dE){if(Object.prototype.hasOwnProperty.call(dE,dF)){if(aV[dF][0]===""||aV[dF][1]===""){delete aV[dF]}}}if(bW){dp(dA,W.JSON.stringify(aV),cu,bw,c7,bY,aN)}}if(a8&&bL&&!bn){dv=aE(dv);bn=true}if(aQ){dv+="&pv_id="+aQ}aR(dB);ci();dv+=ag(dH,{tracker:bP,request:dv});if(c9.length){dv+="&"+c9}if(C(ch)){dv=ch(dv)}return dv}bX=function bd(){var du=new Date();du=du.getTime();if(!c8){return false}if(c8+bb<=du){bP.ping();return true}return false};function bx(dx,dw,dB,dy,du,dE){var dA="idgoal=0",dv=new Date(),dC=[],dD,dz=String(dx).length;if(dz){dA+="&ec_id="+t(dx)}dA+="&revenue="+dw;if(String(dB).length){dA+="&ec_st="+dB}if(String(dy).length){dA+="&ec_tx="+dy}if(String(du).length){dA+="&ec_sh="+du}if(String(dE).length){dA+="&ec_dt="+dE
-}if(da){for(dD in da){if(Object.prototype.hasOwnProperty.call(da,dD)){if(!M(da[dD][1])){da[dD][1]=""}if(!M(da[dD][2])){da[dD][2]=""}if(!M(da[dD][3])||String(da[dD][3]).length===0){da[dD][3]=0}if(!M(da[dD][4])||String(da[dD][4]).length===0){da[dD][4]=1}dC.push(da[dD])}}dA+="&ec_items="+t(W.JSON.stringify(dC))}dA=cy(dA,at,"ecommerce");bM(dA,bQ);if(dz){da={}}}function b4(du,dy,dx,dw,dv,dz){if(String(du).length&&M(dy)){bx(du,dy,dx,dw,dv,dz)}}function bz(du){if(M(du)){bx("",du,"","","","")}}function b6(dv,dx,dw){if(!bH){aQ=bm()}var du=cy("action_name="+t(ap(dv||bp)),dx,"log");if(a8&&!bn){du=aE(du)}bM(du,bQ,dw)}function a6(dw,dv){var dx,du="(^| )(piwik[_-]"+dv+"|matomo[_-]"+dv;if(dw){for(dx=0;dx<dw.length;dx++){du+="|"+dw[dx]}}du+=")( |$)";return new RegExp(du)}function aZ(du){return(aI&&du&&0===String(du).indexOf(aI))}function cC(dy,du,dz,dv){if(aZ(du)){return 0}var dx=a6(bR,"download"),dw=a6(be,"link"),dA=new RegExp("\\.("+dg.join("|")+")([?&#]|$)","i");if(dw.test(dy)){return"link"}if(dv||dx.test(dy)||dA.test(du)){return"download"
-}if(dz){return 0}return"link"}function ay(dv){var du;du=dv.parentNode;while(du!==null&&M(du)){if(ai.isLinkElement(dv)){break}dv=du;du=dv.parentNode}return dv}function dm(dz){dz=ay(dz);if(!ai.hasNodeAttribute(dz,"href")){return}if(!M(dz.href)){return}var dy=ai.getAttributeValueFromNode(dz,"href");var dv=dz.pathname||cr(dz.href);var dA=dz.hostname||d(dz.href);var dB=dA.toLowerCase();var dw=dz.href.replace(dA,dB);var dx=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dx.test(dw)){var du=cC(dz.className,dw,aw(dB,dv),ai.hasNodeAttribute(dz,"download"));if(du){return{type:du,href:dw}}}}function aU(du,dv,dw,dx){var dy=w.buildInteractionRequestParams(du,dv,dw,dx);if(!dy){return}return cy(dy,null,"contentInteraction")}function bh(du,dv){if(!du||!dv){return false}var dw=w.findTargetNode(du);if(w.shouldIgnoreInteraction(dw)){return false}dw=w.findTargetNodeNoDefault(du);if(dw&&!Y(dw,dv)){return false}return true}function cB(dw,dv,dy){if(!dw){return}var du=w.findParentContentNode(dw);
-if(!du){return}if(!bh(du,dw)){return}var dx=w.buildContentBlock(du);if(!dx){return}if(!dx.target&&dy){dx.target=dy}return w.buildInteractionRequestParams(dv,dx.name,dx.piece,dx.target)}function a2(dv){if(!cg||!cg.length){return false}var du,dw;for(du=0;du<cg.length;du++){dw=cg[du];if(dw&&dw.name===dv.name&&dw.piece===dv.piece&&dw.target===dv.target){return true}}return false}function a3(du){return function(dy){if(!du){return}var dw=w.findParentContentNode(du);var dv;if(dy){dv=dy.target||dy.srcElement}if(!dv){dv=du}if(!bh(dw,dv)){return}if(!dw){return false}var dz=w.findTargetNode(dw);if(!dz||w.shouldIgnoreInteraction(dz)){return false}var dx=dm(dz);if(di&&dx&&dx.type){return dx.type}return bP.trackContentInteractionNode(dv,"click")}}function b7(dw){if(!dw||!dw.length){return}var du,dv;for(du=0;du<dw.length;du++){dv=w.findTargetNode(dw[du]);if(dv&&!dv.contentInteractionTrackingSetupDone){dv.contentInteractionTrackingSetupDone=true;ar(dv,"click",a3(dv))}}}function bE(dw,dx){if(!dw||!dw.length){return[]
-}var du,dv;for(du=0;du<dw.length;du++){if(a2(dw[du])){dw.splice(du,1);du--}else{cg.push(dw[du])}}if(!dw||!dw.length){return[]}b7(dx);var dy=[];for(du=0;du<dw.length;du++){dv=cy(w.buildImpressionRequestParams(dw[du].name,dw[du].piece,dw[du].target),undefined,"contentImpressions");if(dv){dy.push(dv)}}return dy}function cH(dv){var du=w.collectContent(dv);return bE(du,dv)}function bf(dv){if(!dv||!dv.length){return[]}var du;for(du=0;du<dv.length;du++){if(!w.isNodeVisible(dv[du])){dv.splice(du,1);du--}}if(!dv||!dv.length){return[]}return cH(dv)}function aK(dw,du,dv){var dx=w.buildImpressionRequestParams(dw,du,dv);return cy(dx,null,"contentImpression")}function dl(dx,dv){if(!dx){return}var du=w.findParentContentNode(dx);var dw=w.buildContentBlock(du);if(!dw){return}if(!dv){dv="Unknown"}return aU(dv,dw.name,dw.piece,dw.target)}function cX(dv,dx,du,dw){return"e_c="+t(dv)+"&e_a="+t(dx)+(M(du)?"&e_n="+t(du):"")+(M(dw)?"&e_v="+t(dw):"")+"&ca=1"}function ax(dw,dy,du,dx,dA,dz){if(!ac(dw)||!ac(dy)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");
-return false}var dv=cy(cX(dw,dy,du,dx),dA,"event");bM(dv,bQ,dz)}function ce(du,dx,dv,dy){var dw=cy("search="+t(du)+(dx?"&search_cat="+t(dx):"")+(M(dv)?"&search_count="+dv:""),dy,"sitesearch");bM(dw,bQ)}function c1(du,dy,dx,dw){var dv=cy("idgoal="+du+(dy?"&revenue="+dy:""),dx,"goal");bM(dv,bQ,dw)}function db(dx,du,dB,dA,dw){var dz=du+"="+t(b8(dx));var dv=cB(dw,"click",dx);if(dv){dz+="&"+dv}var dy=cy(dz,dB,"link");bM(dy,bQ,dA)}function b0(dv,du){if(dv!==""){return dv+du.charAt(0).toUpperCase()+du.slice(1)}return du}function cm(dz){var dy,du,dx=["","webkit","ms","moz"],dw;if(!bk){for(du=0;du<dx.length;du++){dw=dx[du];if(Object.prototype.hasOwnProperty.call(J,b0(dw,"hidden"))){if(J[b0(dw,"visibilityState")]==="prerender"){dy=true}break}}}if(dy){ar(J,dw+"visibilitychange",function dv(){J.removeEventListener(dw+"visibilitychange",dv,false);dz()});return}dz()}function by(){var dv=bP.getVisitorId();var du=aO();return dv+du}function cp(du){if(!du){return}if(!ai.hasNodeAttribute(du,"href")){return
-}var dv=ai.getAttributeValueFromNode(du,"href");if(!dv||aZ(dv)){return}if(!bP.getVisitorId()){return}dv=j(dv,az);var dw=by();dv=I(dv,az,dw);ai.setAnyAttribute(du,"href",dv)}function br(dx){var dy=ai.getAttributeValueFromNode(dx,"href");if(!dy){return false}dy=String(dy);var dv=dy.indexOf("//")===0||dy.indexOf("http://")===0||dy.indexOf("https://")===0;if(!dv){return false}var du=dx.pathname||cr(dx.href);var dw=(dx.hostname||d(dx.href)).toLowerCase();if(aw(dw,du)){if(!cP(c2,O(dw))){return true}return false}return false}function cO(du){var dv=dm(du);if(dv&&dv.type){dv.href=p(dv.href);db(dv.href,dv.type,undefined,null,du);return}if(cV){du=ay(du);if(br(du)){cp(du)}}}function cD(){return J.all&&!J.addEventListener}function c3(du){var dw=du.which;var dv=(typeof du.button);if(!dw&&dv!=="undefined"){if(cD()){if(du.button&1){dw=1}else{if(du.button&2){dw=3}else{if(du.button&4){dw=2}}}}else{if(du.button===0||du.button==="0"){dw=1}else{if(du.button&1){dw=2}else{if(du.button&2){dw=3}}}}}return dw}function bZ(du){switch(c3(du)){case 1:return"left";
-case 2:return"middle";case 3:return"right"}}function a7(du){return du.target||du.srcElement}function c4(du){return du==="A"||du==="AREA"}function aG(du){function dv(dx){var dy=a7(dx);var dz=dy.nodeName;var dw=a6(bG,"ignore");while(!c4(dz)&&dy&&dy.parentNode){dy=dy.parentNode;dz=dy.nodeName}if(dy&&c4(dz)&&!dw.test(dy.className)){return dy}}return function(dy){dy=dy||W.event;var dz=dv(dy);if(!dz){return}var dx=bZ(dy);if(dy.type==="click"){var dw=false;if(du&&dx==="middle"){dw=true}if(dz&&!dw){cO(dz)}}else{if(dy.type==="mousedown"){if(dx==="middle"&&dz){aW=dx;bI=dz}else{aW=bI=null}}else{if(dy.type==="mouseup"){if(dx===aW&&dz===bI){cO(dz)}aW=bI=null}else{if(dy.type==="contextmenu"){cO(dz)}}}}}}function av(dx,dw,du){var dv=typeof dw;if(dv==="undefined"){dw=true}ar(dx,"click",aG(dw),du);if(dw){ar(dx,"mouseup",aG(dw),du);ar(dx,"mousedown",aG(dw),du);ar(dx,"contextmenu",aG(dw),du)}}function aX(dv,dy,dz){if(ck){return true}ck=true;var dA=false;var dx,dw;function du(){dA=true}n(function(){function dB(dD){setTimeout(function(){if(!ck){return
-}dA=false;dz.trackVisibleContentImpressions();dB(dD)},dD)}function dC(dD){setTimeout(function(){if(!ck){return}if(dA){dA=false;dz.trackVisibleContentImpressions()}dC(dD)},dD)}if(dv){dx=["scroll","resize"];for(dw=0;dw<dx.length;dw++){if(J.addEventListener){J.addEventListener(dx[dw],du,false)}else{W.attachEvent("on"+dx[dw],du)}}dC(100)}if(dy&&dy>0){dy=parseInt(dy,10);dB(dy)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var du=this.requests;this.requests=[];if(du.length===1){bM(du[0],bQ)}else{dq(du,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dv){if(!this.canQueue()){dq(dv,bQ);return}var du;for(du=0;du<dv.length;du++){this.push(dv[du])}},push:function(du){if(!du){return}if(!this.canQueue()){bM(du,bQ);return}bK.requests.push(du);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dv="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dv)){b[dv]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)
-}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cW()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]};this.setTrackerUrl=function(du){aI=du};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dw,dv){if(!M(dw)||null===dw){dw=this.getTrackerUrl()}var du=new T(dw,dv);L.push(du);u.trigger("TrackerAdded",[this]);return du};this.getSiteId=function(){return cc};this.setSiteId=function(du){b9(du)};this.resetUserId=function(){bF=""};this.setUserId=function(du){if(ac(du)){bF=du}};this.setVisitorId=function(dv){var du=/[0-9A-Fa-f]{16}/g;
-if(x(dv)&&du.test(dv)){bU=dv}else{ao("Invalid visitorId set"+dv)}};this.getUserId=function(){return bF};this.setCustomData=function(du,dv){if(Z(du)){at=du}else{if(!at){at={}}at[du]=dv}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(du){ch=du};this.appendToTrackingUrl=function(du){c9=du};this.getRequest=function(du){return cy(du)};this.addPlugin=function(du,dv){b[du]=dv};this.setCustomDimension=function(du,dv){du=parseInt(du,10);if(du>0){if(!M(dv)){dv=""}if(!x(dv)){dv=String(dv)}bt[du]=dv}};this.getCustomDimension=function(du){du=parseInt(du,10);if(du>0&&Object.prototype.hasOwnProperty.call(bt,du)){return bt[du]}};this.deleteCustomDimension=function(du){du=parseInt(du,10);if(du>0){delete bt[du]}};this.setCustomVariable=function(dv,du,dy,dw){var dx;if(!M(dw)){dw="visit"}if(!M(du)){return}if(!M(dy)){dy=""}if(dv>0){du=!x(du)?String(du):du;dy=!x(dy)?String(dy):dy;dx=[du.slice(0,bA),dy.slice(0,bA)];if(dw==="visit"||dw===2){cN();aV[dv]=dx}else{if(dw==="page"||dw===3){b2[dv]=dx
-}else{if(dw==="event"){cs[dv]=dx}}}}};this.getCustomVariable=function(dv,dw){var du;if(!M(dw)){dw="visit"}if(dw==="page"||dw===3){du=b2[dv]}else{if(dw==="event"){du=cs[dv]}else{if(dw==="visit"||dw===2){cN();du=aV[dv]}}}if(!M(du)||(du&&du[0]==="")){return false}return du};this.deleteCustomVariable=function(du,dv){if(this.getCustomVariable(du,dv)){this.setCustomVariable(du,"","",dv)}};this.deleteCustomVariables=function(du){if(du==="page"||du===3){b2={}}else{if(du==="event"){cs={}}else{if(du==="visit"||du===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(du){bQ=du};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(du){if(x(du)){du=du.split("|")}dg=du};this.addDownloadExtensions=function(dv){var du;if(x(dv)){dv=dv.split("|")}for(du=0;du<dv.length;du++){dg.push(dv[du])}};this.removeDownloadExtensions=function(dw){var dv,du=[];if(x(dw)){dw=dw.split("|")}for(dv=0;dv<dg.length;dv++){if(P(dw,dg[dv])===-1){du.push(dg[dv])
-}}dg=du};this.setDomains=function(du){aC=x(du)?[du]:du;var dy=false,dw=0,dv;for(dw;dw<aC.length;dw++){dv=String(aC[dw]);if(cP(c2,O(dv))){dy=true;break}var dx=cr(dv);if(dx&&dx!=="/"&&dx!=="/*"){dy=true;break}}if(!dy){aC.push(c2)}};this.enableCrossDomainLinking=function(){cV=true};this.disableCrossDomainLinking=function(){cV=false};this.isCrossDomainLinkingEnabled=function(){return cV};this.setCrossDomainLinkingTimeout=function(du){a5=du};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(du){bG=x(du)?[du]:du};this.setRequestMethod=function(du){if(du){dk=String(du).toUpperCase()}else{dk=cn}if(dk==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(du){cE=du||aM};this.setGenerationTimeMs=function(du){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dy,dA,dz,dv,dB,dw){var dx={pf_net:dy,pf_srv:dA,pf_tfr:dz,pf_dm1:dv,pf_dm2:dB,pf_onl:dw};
-try{dx=Q(dx,M);dx=B(dx);ct=l(dx);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(du){ao("setPagePerformanceTiming: "+du.toString())}};this.setReferrerUrl=function(du){bu=du};this.setCustomUrl=function(du){ba=b1(bT,du)};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(du){bp=du};this.setPageViewId=function(du){aQ=du;bH=true};this.setAPIUrl=function(du){bO=du};this.setDownloadClasses=function(du){bR=x(du)?[du]:du};this.setLinkClasses=function(du){be=x(du)?[du]:du};this.setCampaignNameKey=function(du){cw=x(du)?[du]:du};this.setCampaignKeywordKey=function(du){bN=x(du)?[du]:du};this.discardHashTag=function(du){bV=du};this.setCookieNamePrefix=function(du){bq=du;if(aV){aV=b3()}};this.setCookieDomain=function(du){var dv=O(du);if(!bs&&!bD(dv)){ao("Can't write cookie on domain "+du)}else{c7=dv;bo()}};this.setExcludedQueryParams=function(du){co=x(du)?[du]:du
-};this.getCookieDomain=function(){return c7};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dw,dv,du){if(!dw){throw new Error("Missing cookie name")}if(!M(du)){du=cu}bB.push(dw);dp(aY(dw),dv,du,bw,c7,bY,aN)};this.getCookie=function(dv){var du=aH(aY(dv));if(du===0){return null}return du};this.setCookiePath=function(du){bw=du;bo()};this.getCookiePath=function(du){return bw};this.setVisitorCookieTimeout=function(du){cS=du*1000};this.setSessionCookieTimeout=function(du){cu=du*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(du){df=du*1000};this.setConversionAttributionFirstReferrer=function(du){bC=du};this.setSecureCookie=function(du){if(du&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=du};this.setCookieSameSite=function(du){du=String(du);du=du.charAt(0).toUpperCase()+du.toLowerCase().slice(1);if(du!=="None"&&du!=="Lax"&&du!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");
-return}if(du==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");du="Lax"}}aN=du};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!cY){bs=false;c6=true;if(cc&&aA){aR();var du=cy("ping=1",null,"ping");bM(du,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cL)};this.forgetCookieConsentGiven=function(){b5(cL,bw,c7);this.disableCookies()};this.rememberCookieConsentGiven=function(dv){if(dv){dv=dv*60*60*1000}else{dv=30*365*24*60*60*1000}this.setCookieConsentGiven();var du=new Date().getTime();dp(cL,du,dv,bw,c7,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dv){var du=g.doNotTrack||g.msDoNotTrack;cY=dv&&(du==="yes"||du==="1");if(cY){this.disableCookies()
-}};this.alwaysUseSendBeacon=function(){c5=true};this.disableAlwaysUseSendBeacon=function(){c5=false};this.addListener=function(dv,du){av(dv,du,false)};this.enableLinkTracking=function(dv){if(di){return}di=true;var du=this;q(function(){au=true;var dw=J.body;av(dw,dv,true)})};this.enableJSErrorTracking=function(){if(c0){return}c0=true;var du=W.onerror;W.onerror=function(dz,dx,dw,dy,dv){cm(function(){var dA="JavaScript Errors";var dB=dx+":"+dw;if(dy){dB+=":"+dy}if(P(cz,dA+dB+dz)===-1){cz.push(dA+dB+dz);ax(dA,dB,dz)}});if(du){return du(dz,dx,dw,dy,dv)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(du){du=Math.max(du||15,5);bb=du*1000;if(c8!==null){dr()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)
-}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(du){if(W.location.protocol==="file:"){W.location=du}};this.setCountPreRendered=function(du){bk=du};this.trackGoal=function(du,dx,dw,dv){cm(function(){c1(du,dx,dw,dv)})};this.trackLink=function(dv,du,dx,dw){cm(function(){db(dv,du,dx,dw)})};this.getNumTrackedPageViews=function(){return cx};this.trackPageView=function(du,dw,dv){cg=[];cT=[];cz=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cx++;b6(du,dw,dv)})}};this.disableBrowserFeatureDetection=function(){c6=false};this.enableBrowserFeatureDetection=function(){c6=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var du=w.findContentNodes();var dv=cH(du);bK.pushMultiple(dv)})})};this.trackVisibleContentImpressions=function(du,dv){if(R(cc)){return}if(!M(du)){du=true}if(!M(dv)){dv=750}aX(du,dv,this);cm(function(){n(function(){var dw=w.findContentNodes();
-var dx=bf(dw);bK.pushMultiple(dx)})})};this.trackContentImpression=function(dw,du,dv){if(R(cc)){return}dw=a(dw);du=a(du);dv=a(dv);if(!dw){return}du=du||"Unknown";cm(function(){var dx=aK(dw,du,dv);bK.push(dx)})};this.trackContentImpressionsWithinNode=function(du){if(R(cc)||!du){return}cm(function(){if(ck){n(function(){var dv=w.findContentNodesWithinNode(du);var dw=bf(dv);bK.pushMultiple(dw)})}else{q(function(){var dv=w.findContentNodesWithinNode(du);var dw=cH(dv);bK.pushMultiple(dw)})}})};this.trackContentInteraction=function(dw,dx,du,dv){if(R(cc)){return}dw=a(dw);dx=a(dx);du=a(du);dv=a(dv);if(!dw||!dx){return}du=du||"Unknown";cm(function(){var dy=aU(dw,dx,du,dv);if(dy){bK.push(dy)}})};this.trackContentInteractionNode=function(dw,dv){if(R(cc)||!dw){return}var du=null;cm(function(){du=dl(dw,dv);if(du){bK.push(du)}});return du};this.logAllContentBlocksOnPage=function(){var dw=w.findContentNodes();var du=w.collectContent(dw);var dv=typeof console;if(dv!=="undefined"&&console&&console.log){console.log(du)
-}};this.trackEvent=function(dv,dx,du,dw,dz,dy){cm(function(){ax(dv,dx,du,dw,dz,dy)})};this.trackSiteSearch=function(du,dw,dv,dx){cg=[];cm(function(){ce(du,dw,dv,dx)})};this.setEcommerceView=function(dy,du,dw,dv){cA={};if(ac(dw)){dw=String(dw)}if(!M(dw)||dw===null||dw===false||!dw.length){dw=""}else{if(dw instanceof Array){dw=W.JSON.stringify(dw)}}var dx="_pkc";cA[dx]=dw;if(M(dv)&&dv!==null&&dv!==false&&String(dv).length){dx="_pkp";cA[dx]=dv}if(!ac(dy)&&!ac(du)){return}if(ac(dy)){dx="_pks";cA[dx]=dy}if(!ac(du)){du=""}dx="_pkn";cA[dx]=du};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(da))};this.addEcommerceItem=function(dy,du,dw,dv,dx){if(ac(dy)){da[dy]=[String(dy),du,dw,dv,dx]}};this.removeEcommerceItem=function(du){if(ac(du)){du=String(du);delete da[du]}};this.clearEcommerceCart=function(){da={}};this.trackEcommerceOrder=function(du,dy,dx,dw,dv,dz){b4(du,dy,dx,dw,dv,dz)};this.trackEcommerceCartUpdate=function(du){bz(du)};this.trackRequest=function(dv,dx,dw,du){cm(function(){var dy=cy(dv,dx,du);
-bM(dy,bQ,dw)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(du){if(du<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=du};this.queueRequest=function(du){cm(function(){var dv=cy(du);bK.push(dv)})};this.isConsentRequired=function(){return cI};this.getRememberedConsent=function(){var du=aH(bj);if(aH(cU)){if(du){b5(bj,bw,c7)}return null}if(!du||du===0){return null}return du};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cI=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dv){bJ=true;c6=true;b5(cU,bw,c7);var dw,du;for(dw=0;dw<cT.length;dw++){du=typeof cT[dw];if(du==="string"){bM(cT[dw],bQ)}else{if(du==="object"){dq(cT[dw],bQ)}}}cT=[];if(!M(dv)||dv){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dw){if(dw){dw=dw*60*60*1000
-}else{dw=30*365*24*60*60*1000}var du=true;this.setConsentGiven(du);var dv=new Date().getTime();dp(bj,dv,dw,bw,c7,bY,aN)};this.forgetConsentGiven=function(){var du=30*365*24*60*60*1000;b5(bj,bw,c7);dp(cU,new Date().getTime(),du,bw,c7,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dj()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")
-}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);
-Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()
-}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
+}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cN="mtm_cookie_consent",cW="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c4=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c2=false,cn="GET",dm=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cF=aM,aI=cj||"",bO="",db="",ct="",cc=cf||"",bF="",bU="",ba,bp="",di=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c4],bG=[],cG=[],co=[],bR=[],be=[],bQ=500,c7=true,cT,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c9,bw,bY=false,aN="Lax",bs=false,c0,bk,bC,cU=33955200000,cu=1800000,dh=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cB={},dc={},dj={},cg=[],ck=false,cL=false,au=false,dk=false,cX=false,aS=false,bi=v(),cH=null,da=null,aW,bI,cd=aq,bv,aQ,bH=false,cy=0,bB=["id","ses","cvar","ref"],cK=false,bJ=null,cV=[],cA=[],aB=X++,aA=false,c8=true;
+try{bp=J.title}catch(cI){bp=""}function aH(dy){if(bs){return 0}var dw=new RegExp("(^|;)[ ]*"+dy+"=([^;]*)"),dx=dw.exec(J.cookie);return dx?V(dx[2]):0}bJ=!aH(cW);function dr(dA,dB,dE,dD,dy,dz,dC){if(bs&&dA!==cW){return}var dx;if(dE){dx=new Date();dx.setTime(dx.getTime()+dE)}if(!dC){dC="Lax"}J.cookie=dA+"="+t(dB)+(dE?";expires="+dx.toGMTString():"")+";path="+(dD||"/")+(dy?";domain="+dy:"")+(dz?";secure":"")+";SameSite="+dC;if((!dE||dE>=0)&&aH(dA)!==String(dB)){var dw="There was an error setting cookie `"+dA+"`. Please check domain and path.";ao(dw)}}function b8(dw){var dy,dx;dw=j(dw,az);for(dx=0;dx<co.length;dx++){dw=j(dw,co[dx])}if(bV){dy=new RegExp("#.*");return dw.replace(dy,"")}return dw}function b1(dy,dw){var dz=s(dw),dx;if(dz){return dw}if(dw.slice(0,1)==="/"){return s(dy)+"://"+d(dy)+dw}dy=b8(dy);dx=dy.indexOf("?");if(dx>=0){dy=dy.slice(0,dx)}dx=dy.lastIndexOf("/");if(dx!==dy.length-1){dy=dy.slice(0,dx+1)}return dy+dw}function cR(dy,dw){var dx;dy=String(dy).toLowerCase();dw=String(dw).toLowerCase();
+if(dy===dw){return true}if(dw.slice(0,1)==="."){if(dy===dw.slice(1)){return true}dx=dy.length-dw.length;if((dx>0)&&(dy.slice(dx)===dw)){return true}}return false}function cr(dw){var dx=document.createElement("a");if(dw.indexOf("//")!==0&&dw.indexOf("http")!==0){if(dw.indexOf("*")===0){dw=dw.substr(1)}if(dw.indexOf(".")===0){dw=dw.substr(1)}dw="http://"+dw}dx.href=w.toAbsoluteUrl(dw);if(dx.pathname){return dx.pathname}return""}function a9(dx,dw){if(!an(dw,"/")){dw="/"+dw}if(!an(dx,"/")){dx="/"+dx}var dy=(dw==="/"||dw==="/*");if(dy){return true}if(dx===dw){return true}dw=String(dw).toLowerCase();dx=String(dx).toLowerCase();if(U(dw,"*")){dw=dw.slice(0,-1);dy=(!dw||dw==="/");if(dy){return true}if(dx===dw){return true}return dx.indexOf(dw)===0}if(!U(dx,"/")){dx+="/"}if(!U(dw,"/")){dw+="/"}return dx.indexOf(dw)===0}function aw(dA,dC){var dx,dw,dy,dz,dB;for(dx=0;dx<aC.length;dx++){dz=O(aC[dx]);dB=cr(aC[dx]);if(cR(dA,dz)&&a9(dC,dB)){return true}}return false}function a1(dz){var dx,dw,dy;for(dx=0;
+dx<aC.length;dx++){dw=O(aC[dx].toLowerCase());if(dz===dw){return true}if(dw.slice(0,1)==="."){if(dz===dw.slice(1)){return true}dy=dz.length-dw.length;if((dy>0)&&(dz.slice(dy)===dw)){return true}}}return false}function cx(dw){var dx,dz,dB,dy,dA;if(!dw.length||!cG.length){return false}dz=d(dw);dB=cr(dw);if(dz.indexOf("www.")===0){dz=dz.substr(4)}for(dx=0;dx<cG.length;dx++){dy=O(cG[dx]);dA=cr(cG[dx]);if(dy.indexOf("www.")===0){dy=dy.substr(4)}if(cR(dz,dy)&&a9(dB,dA)){return true}}return false}function cv(dw,dy){dw=dw.replace("send_image=0","send_image=1");var dx=new Image(1,1);dx.onload=function(){H=0;if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:true})}};dx.onerror=function(){if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:false})}};dx.src=aI+(aI.indexOf("?")<0?"?":"&")+dw}function cO(dw){if(dm==="POST"){return true}return dw&&(dw.length>2000||dw.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob
+}function bc(dA,dD,dC){var dy=aP();if(!dy){return false}var dz={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dE=false;var dx=aI;try{var dw=new Blob([dA],dz);if(dC&&!cO(dA)){dw=new Blob([],dz);dx=dx+(dx.indexOf("?")<0?"?":"&")+dA}dE=g.sendBeacon(dx,dw)}catch(dB){return false}if(dE&&typeof dD==="function"){dD({request:dA,trackerUrl:aI,success:true,isSendBeacon:true})}return dE}function dg(dx,dy,dw){if(!M(dw)||null===dw){dw=true}if(m&&bc(dx,dy,dw)){return}setTimeout(function(){if(m&&bc(dx,dy,dw)){return}var dB;try{var dA=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dA.open("POST",aI,true);dA.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dC=m&&bc(dx,dy,dw);if(!dC&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dy==="function")){dy({request:dx,trackerUrl:aI,success:true,xhr:this})}}};
+dA.setRequestHeader("Content-Type",cF);dA.withCredentials=true;dA.send(dx)}catch(dz){dB=m&&bc(dx,dy,dw);if(!dB&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false})}}}},50)}function cl(dx){var dw=new Date();var dy=dw.getTime()+dx;if(!r||dy>r){r=dy}}function bg(){bi=true;cH=new Date().getTime()}function dq(){var dw=new Date().getTime();return !cH||(dw-cH)>bb}function aD(){if(dq()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dq()){bX()}else{if(J.visibilityState==="visible"){cH=new Date().getTime()}}}function dt(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dq()){bX()}}})}function cM(dA){var dx=new Date();var dw=dx.getTime();da=dw;if(cL&&dw<cL){var dy=cL-dw;setTimeout(dA,dy);cl(dy+50);cL+=50;return}if(cL===false){var dz=800;cL=dw+dz}dA()}function aT(){if(aH(cW)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dx,dw,dy){aT();if(!bJ){cV.push(dx);
+return}aA=true;if(!c0&&dx){if(cK&&bJ){dx+="&consent=1"}cM(function(){if(c7&&bc(dx,dy,true)){cl(100);return}if(cO(dx)){dg(dx,dy)}else{cv(dx,dy)}cl(dw)})}if(!aS){dt()}}function cq(dw){if(c0){return false}return(dw&&dw.length)}function df(dw,dA){if(!dA||dA>=dw.length){return[dw]}var dx=0;var dy=dw.length;var dz=[];for(dx;dx<dy;dx+=dA){dz.push(dw.slice(dx,dx+dA))}return dz}function ds(dx,dw){if(!cq(dx)){return}if(!bJ){cV.push(dx);return}aA=true;cM(function(){var dA=df(dx,50);var dy=0,dz;for(dy;dy<dA.length;dy++){dz='{"requests":["?'+dA[dy].join('","?')+'"],"send_image":0}';if(c7&&bc(dz,null,false)){cl(100)}else{dg(dz,null,false)}}cl(dw)})}function aY(dw){return bq+dw+"."+cc+"."+bv}function b5(dy,dx,dw){dr(dy,"",-129600000,dx,dw)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var dw=bq+"testcookie";dr(dw,"1",undefined,bw,c9,bY,aN);var dx=aH(dw)==="1"?"1":"0";b5(dw);return dx}function bo(){bv=cd((c9||c4)+(bw||"/")).slice(0,4)}function cS(){if(!c8){return{}
+}if(M(dj.res)){return dj}var dx,dz,dA={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dx in dA){if(Object.prototype.hasOwnProperty.call(dA,dx)){dz=g.mimeTypes[dA[dx]];dj[dx]=(dz&&dz.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dj.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dj.cookie=g.cookieEnabled?"1":"0"}else{dj.cookie=cb()}}var dy=parseInt(ab.width,10);var dw=parseInt(ab.height,10);dj.res=parseInt(dy,10)+"x"+parseInt(dw,10);return dj}function b3(){var dx=aY("cvar"),dw=aH(dx);if(dw&&dw.length){dw=W.JSON.parse(dw);if(Z(dw)){return dw}}return{}}function cP(){if(aV===false){aV=b3()}}function c1(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)+(new Date()).getTime()+Math.random()).slice(0,16)
+}function aF(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dx=bl();var dy=aF();var dw=String(dx)+dy;return dw}function de(dy){dy=String(dy);var dB=aF();var dz=dB.length;var dA=dy.substr(-1*dz,dz);var dx=parseInt(dy.substr(0,dy.length-dz),10);if(dx&&dA&&dA===dB){var dw=bl();if(a5<=0){return true}if(dw>=dx&&dw<=(dx+a5)){return true}}return false}function du(dw){if(!cX){return""}var dA=e(dw,az);if(!dA){return""}dA=String(dA);var dy=new RegExp("^[a-zA-Z0-9]+$");if(dA.length===32&&dy.test(dA)){var dx=dA.substr(16,32);if(de(dx)){var dz=dA.substr(0,16);return dz}}return""}function cY(){if(!bU){bU=du(bT)}var dy=new Date(),dw=Math.round(dy.getTime()/1000),dx=aY("id"),dB=aH(dx),dA,dz;if(dB){dA=dB.split(".");dA.unshift("0");if(bU.length){dA[1]=bU}return dA}if(bU.length){dz=bU}else{if("0"===cb()){dz=""}else{dz=c1()}}dA=["1",dz,dw];return dA}function a4(){var dz=cY(),dx=dz[0],dy=dz[1],dw=dz[2];
+return{newVisitor:dx,uuid:dy,createTs:dw}}function aL(){var dz=new Date(),dx=dz.getTime(),dA=a4().createTs;var dw=parseInt(dA,10);var dy=(dw*1000)+cU-dx;return dy}function aR(dw){if(!cc){return}var dy=new Date(),dx=Math.round(dy.getTime()/1000);if(!M(dw)){dw=a4()}var dz=dw.uuid+"."+dw.createTs+".";dr(aY("id"),dz,aL(),bw,c9,bY,aN)}function bS(){var dw=aH(aY("ref"));if(dw.length){try{dw=W.JSON.parse(dw);if(Z(dw)){return dw}}catch(dx){}}return["","",0,""]}function bD(dy){var dx=bq+"testcookie_domain";var dw="testvalue";dr(dx,dw,10000,null,dy,bY,aN);if(aH(dx)===dw){b5(dx,null,dy);return true}return false}function aJ(){var dx=bs;bs=false;var dw,dy;for(dw=0;dw<bB.length;dw++){dy=aY(bB[dw]);if(dy!==cW&&dy!==bj&&0!==aH(dy)){b5(dy,bw,c9)}}bs=dx}function b9(dw){cc=dw}function dv(dA){if(!dA||!Z(dA)){return}var dz=[];var dy;for(dy in dA){if(Object.prototype.hasOwnProperty.call(dA,dy)){dz.push(dy)}}var dB={};dz.sort();var dw=dz.length;var dx;for(dx=0;dx<dw;dx++){dB[dz[dx]]=dA[dz[dx]]}return dB}function ci(){dr(aY("ses"),"1",cu,bw,c9,bY,aN)
+}function bm(){var dz="";var dx="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dy=dx.length;var dw;for(dw=0;dw<6;dw++){dz+=dx.charAt(Math.floor(Math.random()*dy))}return dz}function aE(dx){if(ct!==""){dx+=ct;bn=true;return dx}if(!h){return dx}var dy=(typeof h.timing==="object")&&h.timing?h.timing:undefined;if(!dy){dy=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dy){return dx}var dw="";if(dy.connectEnd&&dy.fetchStart){if(dy.connectEnd<dy.fetchStart){return dx}dw+="&pf_net="+Math.round(dy.connectEnd-dy.fetchStart)}if(dy.responseStart&&dy.requestStart){if(dy.responseStart<dy.requestStart){return dx}dw+="&pf_srv="+Math.round(dy.responseStart-dy.requestStart)}if(dy.responseStart&&dy.responseEnd){if(dy.responseEnd<dy.responseStart){return dx}dw+="&pf_tfr="+Math.round(dy.responseEnd-dy.responseStart)}if(M(dy.domLoading)){if(dy.domInteractive&&dy.domLoading){if(dy.domInteractive<dy.domLoading){return dx
+}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.domLoading)}}else{if(dy.domInteractive&&dy.responseEnd){if(dy.domInteractive<dy.responseEnd){return dx}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.responseEnd)}}if(dy.domComplete&&dy.domInteractive){if(dy.domComplete<dy.domInteractive){return dx}dw+="&pf_dm2="+Math.round(dy.domComplete-dy.domInteractive)}if(dy.loadEventEnd&&dy.loadEventStart){if(dy.loadEventEnd<dy.loadEventStart){return dx}dw+="&pf_onl="+Math.round(dy.loadEventEnd-dy.loadEventStart)}return dx+dw}function dl(){var dG,dz=new Date(),dA=Math.round(dz.getTime()/1000),dL,dy,dB=1024,dI,dC,dx=aY("ses"),dF=aY("ref"),dE=aH(dx),dw=bS(),dK=ba||bT,dH,dD,dJ={};dH=dw[0];dD=dw[1];dL=dw[2];dy=dw[3];if(!dE){if(!bC||!dH.length){for(dG in cw){if(Object.prototype.hasOwnProperty.call(cw,dG)){dH=e(dK,cw[dG]);if(dH.length){break}}}for(dG in bN){if(Object.prototype.hasOwnProperty.call(bN,dG)){dD=e(dK,bN[dG]);if(dD.length){break}}}}dI=d(bu);dC=dy.length?d(dy):"";if(dI.length&&!a1(dI)&&!cx(bu)&&(!bC||!dC.length||a1(dC)||cx(dy))){dy=bu
+}if(dy.length||dH.length){dL=dA;dw=[dH,dD,dL,b8(dy.slice(0,dB))];dr(dF,W.JSON.stringify(dw),dh,bw,c9,bY,aN)}}if(dH.length){dJ._rcn=t(dH)}if(dD.length){dJ._rck=t(dD)}dJ._refts=dL;if(String(dy).length){dJ._ref=t(b8(dy.slice(0,dB)))}return dJ}function cz(dx,dI,dJ){var dH,dw=new Date(),dG=aV,dC=aY("cvar"),dK=ba||bT;if(bs){aJ()}if(c0){return""}var dD=a4();var dA=J.characterSet||J.charset;if(!dA||dA.toLowerCase()==="utf-8"){dA=null}dx+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dw.getHours()+"&m="+dw.getMinutes()+"&s="+dw.getSeconds()+"&url="+t(b8(dK))+(bu.length&&!cx(bu)?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dD.uuid+"&_idn="+dD.newVisitor+(dA?"&cs="+t(dA):"")+"&send_image=0";var dF=dl();for(dH in dF){if(Object.prototype.hasOwnProperty.call(dF,dH)){dx+="&"+dH+"="+dF[dH]}}var dM=cS();for(dH in dM){if(Object.prototype.hasOwnProperty.call(dM,dH)){dx+="&"+dH+"="+dM[dH]}}var dN=[];if(dI){for(dH in dI){if(Object.prototype.hasOwnProperty.call(dI,dH)&&/^dimension\d+$/.test(dH)){var dy=dH.replace("dimension","");
+dN.push(parseInt(dy,10));dN.push(String(dy));dx+="&"+dH+"="+t(dI[dH]);delete dI[dH]}}}if(dI&&D(dI)){dI=null}for(dH in cB){if(Object.prototype.hasOwnProperty.call(cB,dH)){dx+="&"+dH+"="+t(cB[dH])}}for(dH in bt){if(Object.prototype.hasOwnProperty.call(bt,dH)){var dB=(-1===P(dN,dH));if(dB){dx+="&dimension"+dH+"="+t(bt[dH])}}}if(dI){dx+="&data="+t(W.JSON.stringify(dI))}else{if(at){dx+="&data="+t(W.JSON.stringify(at))}}function dz(dO,dP){var dQ=W.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dL=dv(b2);var dE=dv(cs);dx+=dz(dL,"cvar");dx+=dz(dE,"e_cvar");if(aV){dx+=dz(aV,"_cvar");for(dH in dG){if(Object.prototype.hasOwnProperty.call(dG,dH)){if(aV[dH][0]===""||aV[dH][1]===""){delete aV[dH]}}}if(bW){dr(dC,W.JSON.stringify(aV),cu,bw,c9,bY,aN)}}if(a8&&bL&&!bn){dx=aE(dx);bn=true}if(aQ){dx+="&pv_id="+aQ}aR(dD);ci();dx+=ag(dJ,{tracker:bP,request:dx});if(db.length){dx+="&"+db}if(C(ch)){dx=ch(dx)}return dx}bX=function bd(){var dw=new Date();dw=dw.getTime();if(!da){return false}if(da+bb<=dw){bP.ping();
+return true}return false};function bx(dz,dy,dD,dA,dw,dG){var dC="idgoal=0",dx=new Date(),dE=[],dF,dB=String(dz).length;if(dB){dC+="&ec_id="+t(dz)}dC+="&revenue="+dy;if(String(dD).length){dC+="&ec_st="+dD}if(String(dA).length){dC+="&ec_tx="+dA}if(String(dw).length){dC+="&ec_sh="+dw}if(String(dG).length){dC+="&ec_dt="+dG}if(dc){for(dF in dc){if(Object.prototype.hasOwnProperty.call(dc,dF)){if(!M(dc[dF][1])){dc[dF][1]=""}if(!M(dc[dF][2])){dc[dF][2]=""}if(!M(dc[dF][3])||String(dc[dF][3]).length===0){dc[dF][3]=0}if(!M(dc[dF][4])||String(dc[dF][4]).length===0){dc[dF][4]=1}dE.push(dc[dF])}}dC+="&ec_items="+t(W.JSON.stringify(dE))}dC=cz(dC,at,"ecommerce");bM(dC,bQ);if(dB){dc={}}}function b4(dw,dA,dz,dy,dx,dB){if(String(dw).length&&M(dA)){bx(dw,dA,dz,dy,dx,dB)}}function bz(dw){if(M(dw)){bx("",dw,"","","","")}}function b6(dx,dz,dy){if(!bH){aQ=bm()}var dw=cz("action_name="+t(ap(dx||bp)),dz,"log");if(a8&&!bn){dw=aE(dw)}bM(dw,bQ,dy)}function a6(dy,dx){var dz,dw="(^| )(piwik[_-]"+dx+"|matomo[_-]"+dx;if(dy){for(dz=0;
+dz<dy.length;dz++){dw+="|"+dy[dz]}}dw+=")( |$)";return new RegExp(dw)}function aZ(dw){return(aI&&dw&&0===String(dw).indexOf(aI))}function cD(dA,dw,dB,dx){if(aZ(dw)){return 0}var dz=a6(bR,"download"),dy=a6(be,"link"),dC=new RegExp("\\.("+di.join("|")+")([?&#]|$)","i");if(dy.test(dA)){return"link"}if(dx||dz.test(dA)||dC.test(dw)){return"download"}if(dB){return 0}return"link"}function ay(dx){var dw;dw=dx.parentNode;while(dw!==null&&M(dw)){if(ai.isLinkElement(dx)){break}dx=dw;dw=dx.parentNode}return dx}function dp(dB){dB=ay(dB);if(!ai.hasNodeAttribute(dB,"href")){return}if(!M(dB.href)){return}var dA=ai.getAttributeValueFromNode(dB,"href");var dx=dB.pathname||cr(dB.href);var dC=dB.hostname||d(dB.href);var dD=dC.toLowerCase();var dy=dB.href.replace(dC,dD);var dz=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dz.test(dy)){var dw=cD(dB.className,dy,aw(dD,dx),ai.hasNodeAttribute(dB,"download"));if(dw){return{type:dw,href:dy}}}}function aU(dw,dx,dy,dz){var dA=w.buildInteractionRequestParams(dw,dx,dy,dz);
+if(!dA){return}return cz(dA,null,"contentInteraction")}function bh(dw,dx){if(!dw||!dx){return false}var dy=w.findTargetNode(dw);if(w.shouldIgnoreInteraction(dy)){return false}dy=w.findTargetNodeNoDefault(dw);if(dy&&!Y(dy,dx)){return false}return true}function cC(dy,dx,dA){if(!dy){return}var dw=w.findParentContentNode(dy);if(!dw){return}if(!bh(dw,dy)){return}var dz=w.buildContentBlock(dw);if(!dz){return}if(!dz.target&&dA){dz.target=dA}return w.buildInteractionRequestParams(dx,dz.name,dz.piece,dz.target)}function a2(dx){if(!cg||!cg.length){return false}var dw,dy;for(dw=0;dw<cg.length;dw++){dy=cg[dw];if(dy&&dy.name===dx.name&&dy.piece===dx.piece&&dy.target===dx.target){return true}}return false}function a3(dw){return function(dA){if(!dw){return}var dy=w.findParentContentNode(dw);var dx;if(dA){dx=dA.target||dA.srcElement}if(!dx){dx=dw}if(!bh(dy,dx)){return}if(!dy){return false}var dB=w.findTargetNode(dy);if(!dB||w.shouldIgnoreInteraction(dB)){return false}var dz=dp(dB);if(dk&&dz&&dz.type){return dz.type
+}return bP.trackContentInteractionNode(dx,"click")}}function b7(dy){if(!dy||!dy.length){return}var dw,dx;for(dw=0;dw<dy.length;dw++){dx=w.findTargetNode(dy[dw]);if(dx&&!dx.contentInteractionTrackingSetupDone){dx.contentInteractionTrackingSetupDone=true;ar(dx,"click",a3(dx))}}}function bE(dy,dz){if(!dy||!dy.length){return[]}var dw,dx;for(dw=0;dw<dy.length;dw++){if(a2(dy[dw])){dy.splice(dw,1);dw--}else{cg.push(dy[dw])}}if(!dy||!dy.length){return[]}b7(dz);var dA=[];for(dw=0;dw<dy.length;dw++){dx=cz(w.buildImpressionRequestParams(dy[dw].name,dy[dw].piece,dy[dw].target),undefined,"contentImpressions");if(dx){dA.push(dx)}}return dA}function cJ(dx){var dw=w.collectContent(dx);return bE(dw,dx)}function bf(dx){if(!dx||!dx.length){return[]}var dw;for(dw=0;dw<dx.length;dw++){if(!w.isNodeVisible(dx[dw])){dx.splice(dw,1);dw--}}if(!dx||!dx.length){return[]}return cJ(dx)}function aK(dy,dw,dx){var dz=w.buildImpressionRequestParams(dy,dw,dx);return cz(dz,null,"contentImpression")}function dn(dz,dx){if(!dz){return
+}var dw=w.findParentContentNode(dz);var dy=w.buildContentBlock(dw);if(!dy){return}if(!dx){dx="Unknown"}return aU(dx,dy.name,dy.piece,dy.target)}function cZ(dx,dz,dw,dy){return"e_c="+t(dx)+"&e_a="+t(dz)+(M(dw)?"&e_n="+t(dw):"")+(M(dy)?"&e_v="+t(dy):"")+"&ca=1"}function ax(dy,dA,dw,dz,dC,dB){if(!ac(dy)||!ac(dA)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dx=cz(cZ(dy,dA,dw,dz),dC,"event");bM(dx,bQ,dB)}function ce(dw,dz,dx,dA){var dy=cz("search="+t(dw)+(dz?"&search_cat="+t(dz):"")+(M(dx)?"&search_count="+dx:""),dA,"sitesearch");bM(dy,bQ)}function c3(dw,dA,dz,dy){var dx=cz("idgoal="+dw+(dA?"&revenue="+dA:""),dz,"goal");bM(dx,bQ,dy)}function dd(dz,dw,dD,dC,dy){var dB=dw+"="+t(b8(dz));var dx=cC(dy,"click",dz);if(dx){dB+="&"+dx}var dA=cz(dB,dD,"link");bM(dA,bQ,dC)}function b0(dx,dw){if(dx!==""){return dx+dw.charAt(0).toUpperCase()+dw.slice(1)}return dw}function cm(dB){var dA,dw,dz=["","webkit","ms","moz"],dy;
+if(!bk){for(dw=0;dw<dz.length;dw++){dy=dz[dw];if(Object.prototype.hasOwnProperty.call(J,b0(dy,"hidden"))){if(J[b0(dy,"visibilityState")]==="prerender"){dA=true}break}}}if(dA){ar(J,dy+"visibilitychange",function dx(){J.removeEventListener(dy+"visibilitychange",dx,false);dB()});return}dB()}function by(){var dx=bP.getVisitorId();var dw=aO();return dx+dw}function cp(dw){if(!dw){return}if(!ai.hasNodeAttribute(dw,"href")){return}var dx=ai.getAttributeValueFromNode(dw,"href");if(!dx||aZ(dx)){return}if(!bP.getVisitorId()){return}dx=j(dx,az);var dy=by();dx=I(dx,az,dy);ai.setAnyAttribute(dw,"href",dx)}function br(dz){var dA=ai.getAttributeValueFromNode(dz,"href");if(!dA){return false}dA=String(dA);var dx=dA.indexOf("//")===0||dA.indexOf("http://")===0||dA.indexOf("https://")===0;if(!dx){return false}var dw=dz.pathname||cr(dz.href);var dy=(dz.hostname||d(dz.href)).toLowerCase();if(aw(dy,dw)){if(!cR(c4,O(dy))){return true}return false}return false}function cQ(dw){var dx=dp(dw);if(dx&&dx.type){dx.href=p(dx.href);
+dd(dx.href,dx.type,undefined,null,dw);return}if(cX){dw=ay(dw);if(br(dw)){cp(dw)}}}function cE(){return J.all&&!J.addEventListener}function c5(dw){var dy=dw.which;var dx=(typeof dw.button);if(!dy&&dx!=="undefined"){if(cE()){if(dw.button&1){dy=1}else{if(dw.button&2){dy=3}else{if(dw.button&4){dy=2}}}}else{if(dw.button===0||dw.button==="0"){dy=1}else{if(dw.button&1){dy=2}else{if(dw.button&2){dy=3}}}}}return dy}function bZ(dw){switch(c5(dw)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a7(dw){return dw.target||dw.srcElement}function c6(dw){return dw==="A"||dw==="AREA"}function aG(dw){function dx(dz){var dA=a7(dz);var dB=dA.nodeName;var dy=a6(bG,"ignore");while(!c6(dB)&&dA&&dA.parentNode){dA=dA.parentNode;dB=dA.nodeName}if(dA&&c6(dB)&&!dy.test(dA.className)){return dA}}return function(dA){dA=dA||W.event;var dB=dx(dA);if(!dB){return}var dz=bZ(dA);if(dA.type==="click"){var dy=false;if(dw&&dz==="middle"){dy=true}if(dB&&!dy){cQ(dB)}}else{if(dA.type==="mousedown"){if(dz==="middle"&&dB){aW=dz;
+bI=dB}else{aW=bI=null}}else{if(dA.type==="mouseup"){if(dz===aW&&dB===bI){cQ(dB)}aW=bI=null}else{if(dA.type==="contextmenu"){cQ(dB)}}}}}}function av(dz,dy,dw){var dx=typeof dy;if(dx==="undefined"){dy=true}ar(dz,"click",aG(dy),dw);if(dy){ar(dz,"mouseup",aG(dy),dw);ar(dz,"mousedown",aG(dy),dw);ar(dz,"contextmenu",aG(dy),dw)}}function aX(dx,dA,dB){if(ck){return true}ck=true;var dC=false;var dz,dy;function dw(){dC=true}n(function(){function dD(dF){setTimeout(function(){if(!ck){return}dC=false;dB.trackVisibleContentImpressions();dD(dF)},dF)}function dE(dF){setTimeout(function(){if(!ck){return}if(dC){dC=false;dB.trackVisibleContentImpressions()}dE(dF)},dF)}if(dx){dz=["scroll","resize"];for(dy=0;dy<dz.length;dy++){if(J.addEventListener){J.addEventListener(dz[dy],dw,false)}else{W.attachEvent("on"+dz[dy],dw)}}dE(100)}if(dA&&dA>0){dA=parseInt(dA,10);dD(dA)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dw=this.requests;this.requests=[];if(dw.length===1){bM(dw[0],bQ)
+}else{ds(dw,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dx){if(!this.canQueue()){ds(dx,bQ);return}var dw;for(dw=0;dw<dx.length;dw++){this.push(dx[dw])}},push:function(dw){if(!dw){return}if(!this.canQueue()){bM(dw,bQ);return}bK.requests.push(dw);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dx="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dx)){b[dx]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cY()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]
+};this.setTrackerUrl=function(dw){aI=dw};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dy,dx){if(!M(dy)||null===dy){dy=this.getTrackerUrl()}var dw=new T(dy,dx);L.push(dw);u.trigger("TrackerAdded",[this]);return dw};this.getSiteId=function(){return cc};this.setSiteId=function(dw){b9(dw)};this.resetUserId=function(){bF=""};this.setUserId=function(dw){if(ac(dw)){bF=dw}};this.setVisitorId=function(dx){var dw=/[0-9A-Fa-f]{16}/g;if(x(dx)&&dw.test(dx)){bU=dx}else{ao("Invalid visitorId set"+dx)}};this.getUserId=function(){return bF};this.setCustomData=function(dw,dx){if(Z(dw)){at=dw}else{if(!at){at={}}at[dw]=dx}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(dw){ch=dw};this.appendToTrackingUrl=function(dw){db=dw};this.getRequest=function(dw){return cz(dw)};this.addPlugin=function(dw,dx){b[dw]=dx};this.setCustomDimension=function(dw,dx){dw=parseInt(dw,10);
+if(dw>0){if(!M(dx)){dx=""}if(!x(dx)){dx=String(dx)}bt[dw]=dx}};this.getCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0&&Object.prototype.hasOwnProperty.call(bt,dw)){return bt[dw]}};this.deleteCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0){delete bt[dw]}};this.setCustomVariable=function(dx,dw,dA,dy){var dz;if(!M(dy)){dy="visit"}if(!M(dw)){return}if(!M(dA)){dA=""}if(dx>0){dw=!x(dw)?String(dw):dw;dA=!x(dA)?String(dA):dA;dz=[dw.slice(0,bA),dA.slice(0,bA)];if(dy==="visit"||dy===2){cP();aV[dx]=dz}else{if(dy==="page"||dy===3){b2[dx]=dz}else{if(dy==="event"){cs[dx]=dz}}}}};this.getCustomVariable=function(dx,dy){var dw;if(!M(dy)){dy="visit"}if(dy==="page"||dy===3){dw=b2[dx]}else{if(dy==="event"){dw=cs[dx]}else{if(dy==="visit"||dy===2){cP();dw=aV[dx]}}}if(!M(dw)||(dw&&dw[0]==="")){return false}return dw};this.deleteCustomVariable=function(dw,dx){if(this.getCustomVariable(dw,dx)){this.setCustomVariable(dw,"","",dx)}};this.deleteCustomVariables=function(dw){if(dw==="page"||dw===3){b2={}
+}else{if(dw==="event"){cs={}}else{if(dw==="visit"||dw===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dw){bQ=dw};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dw){if(x(dw)){dw=dw.split("|")}di=dw};this.addDownloadExtensions=function(dx){var dw;if(x(dx)){dx=dx.split("|")}for(dw=0;dw<dx.length;dw++){di.push(dx[dw])}};this.removeDownloadExtensions=function(dy){var dx,dw=[];if(x(dy)){dy=dy.split("|")}for(dx=0;dx<di.length;dx++){if(P(dy,di[dx])===-1){dw.push(di[dx])}}di=dw};this.setDomains=function(dw){aC=x(dw)?[dw]:dw;var dA=false,dy=0,dx;for(dy;dy<aC.length;dy++){dx=String(aC[dy]);if(cR(c4,O(dx))){dA=true;break}var dz=cr(dx);if(dz&&dz!=="/"&&dz!=="/*"){dA=true;break}}if(!dA){aC.push(c4)}};this.setExcludedReferrers=function(dw){cG=x(dw)?[dw]:dw};this.enableCrossDomainLinking=function(){cX=true};this.disableCrossDomainLinking=function(){cX=false};this.isCrossDomainLinkingEnabled=function(){return cX
+};this.setCrossDomainLinkingTimeout=function(dw){a5=dw};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(dw){bG=x(dw)?[dw]:dw};this.setRequestMethod=function(dw){if(dw){dm=String(dw).toUpperCase()}else{dm=cn}if(dm==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(dw){cF=dw||aM};this.setGenerationTimeMs=function(dw){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dA,dC,dB,dx,dD,dy){var dz={pf_net:dA,pf_srv:dC,pf_tfr:dB,pf_dm1:dx,pf_dm2:dD,pf_onl:dy};try{dz=Q(dz,M);dz=B(dz);ct=l(dz);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(dw){ao("setPagePerformanceTiming: "+dw.toString())}};this.setReferrerUrl=function(dw){bu=dw};this.setCustomUrl=function(dw){ba=b1(bT,dw)
+};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(dw){bp=dw};this.setPageViewId=function(dw){aQ=dw;bH=true};this.setAPIUrl=function(dw){bO=dw};this.setDownloadClasses=function(dw){bR=x(dw)?[dw]:dw};this.setLinkClasses=function(dw){be=x(dw)?[dw]:dw};this.setCampaignNameKey=function(dw){cw=x(dw)?[dw]:dw};this.setCampaignKeywordKey=function(dw){bN=x(dw)?[dw]:dw};this.discardHashTag=function(dw){bV=dw};this.setCookieNamePrefix=function(dw){bq=dw;if(aV){aV=b3()}};this.setCookieDomain=function(dw){var dx=O(dw);if(!bs&&!bD(dx)){ao("Can't write cookie on domain "+dw)}else{c9=dx;bo()}};this.setExcludedQueryParams=function(dw){co=x(dw)?[dw]:dw};this.getCookieDomain=function(){return c9};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dy,dx,dw){if(!dy){throw new Error("Missing cookie name")}if(!M(dw)){dw=cu}bB.push(dy);dr(aY(dy),dx,dw,bw,c9,bY,aN)};this.getCookie=function(dx){var dw=aH(aY(dx));if(dw===0){return null}return dw};this.setCookiePath=function(dw){bw=dw;
+bo()};this.getCookiePath=function(dw){return bw};this.setVisitorCookieTimeout=function(dw){cU=dw*1000};this.setSessionCookieTimeout=function(dw){cu=dw*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(dw){dh=dw*1000};this.setConversionAttributionFirstReferrer=function(dw){bC=dw};this.setSecureCookie=function(dw){if(dw&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=dw};this.setCookieSameSite=function(dw){dw=String(dw);dw=dw.charAt(0).toUpperCase()+dw.toLowerCase().slice(1);if(dw!=="None"&&dw!=="Lax"&&dw!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");return}if(dw==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");dw="Lax"}}aN=dw};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!c0){bs=false;
+c8=true;if(cc&&aA){aR();var dw=cz("ping=1",null,"ping");bM(dw,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cN)};this.forgetCookieConsentGiven=function(){b5(cN,bw,c9);this.disableCookies()};this.rememberCookieConsentGiven=function(dx){if(dx){dx=dx*60*60*1000}else{dx=30*365*24*60*60*1000}this.setCookieConsentGiven();var dw=new Date().getTime();dr(cN,dw,dx,bw,c9,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dx){var dw=g.doNotTrack||g.msDoNotTrack;c0=dx&&(dw==="yes"||dw==="1");if(c0){this.disableCookies()}};this.alwaysUseSendBeacon=function(){c7=true};this.disableAlwaysUseSendBeacon=function(){c7=false};this.addListener=function(dx,dw){av(dx,dw,false)};this.enableLinkTracking=function(dx){if(dk){return}dk=true;var dw=this;q(function(){au=true;var dy=J.body;av(dy,dx,true)})};this.enableJSErrorTracking=function(){if(c2){return}c2=true;
+var dw=W.onerror;W.onerror=function(dB,dz,dy,dA,dx){cm(function(){var dC="JavaScript Errors";var dD=dz+":"+dy;if(dA){dD+=":"+dA}if(P(cA,dC+dD+dB)===-1){cA.push(dC+dD+dB);ax(dC,dD,dB)}});if(dw){return dw(dB,dz,dy,dA,dx)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(dw){dw=Math.max(dw||15,5);bb=dw*1000;if(da!==null){dt()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(dw){if(W.location.protocol==="file:"){W.location=dw}};this.setCountPreRendered=function(dw){bk=dw};this.trackGoal=function(dw,dz,dy,dx){cm(function(){c3(dw,dz,dy,dx)})};this.trackLink=function(dx,dw,dz,dy){cm(function(){dd(dx,dw,dz,dy)
+})};this.getNumTrackedPageViews=function(){return cy};this.trackPageView=function(dw,dy,dx){cg=[];cV=[];cA=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cy++;b6(dw,dy,dx)})}};this.disableBrowserFeatureDetection=function(){c8=false};this.enableBrowserFeatureDetection=function(){c8=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var dw=w.findContentNodes();var dx=cJ(dw);bK.pushMultiple(dx)})})};this.trackVisibleContentImpressions=function(dw,dx){if(R(cc)){return}if(!M(dw)){dw=true}if(!M(dx)){dx=750}aX(dw,dx,this);cm(function(){n(function(){var dy=w.findContentNodes();var dz=bf(dy);bK.pushMultiple(dz)})})};this.trackContentImpression=function(dy,dw,dx){if(R(cc)){return}dy=a(dy);dw=a(dw);dx=a(dx);if(!dy){return}dw=dw||"Unknown";cm(function(){var dz=aK(dy,dw,dx);bK.push(dz)})};this.trackContentImpressionsWithinNode=function(dw){if(R(cc)||!dw){return}cm(function(){if(ck){n(function(){var dx=w.findContentNodesWithinNode(dw);var dy=bf(dx);
+bK.pushMultiple(dy)})}else{q(function(){var dx=w.findContentNodesWithinNode(dw);var dy=cJ(dx);bK.pushMultiple(dy)})}})};this.trackContentInteraction=function(dy,dz,dw,dx){if(R(cc)){return}dy=a(dy);dz=a(dz);dw=a(dw);dx=a(dx);if(!dy||!dz){return}dw=dw||"Unknown";cm(function(){var dA=aU(dy,dz,dw,dx);if(dA){bK.push(dA)}})};this.trackContentInteractionNode=function(dy,dx){if(R(cc)||!dy){return}var dw=null;cm(function(){dw=dn(dy,dx);if(dw){bK.push(dw)}});return dw};this.logAllContentBlocksOnPage=function(){var dy=w.findContentNodes();var dw=w.collectContent(dy);var dx=typeof console;if(dx!=="undefined"&&console&&console.log){console.log(dw)}};this.trackEvent=function(dx,dz,dw,dy,dB,dA){cm(function(){ax(dx,dz,dw,dy,dB,dA)})};this.trackSiteSearch=function(dw,dy,dx,dz){cg=[];cm(function(){ce(dw,dy,dx,dz)})};this.setEcommerceView=function(dA,dw,dy,dx){cB={};if(ac(dy)){dy=String(dy)}if(!M(dy)||dy===null||dy===false||!dy.length){dy=""}else{if(dy instanceof Array){dy=W.JSON.stringify(dy)}}var dz="_pkc";
+cB[dz]=dy;if(M(dx)&&dx!==null&&dx!==false&&String(dx).length){dz="_pkp";cB[dz]=dx}if(!ac(dA)&&!ac(dw)){return}if(ac(dA)){dz="_pks";cB[dz]=dA}if(!ac(dw)){dw=""}dz="_pkn";cB[dz]=dw};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(dc))};this.addEcommerceItem=function(dA,dw,dy,dx,dz){if(ac(dA)){dc[dA]=[String(dA),dw,dy,dx,dz]}};this.removeEcommerceItem=function(dw){if(ac(dw)){dw=String(dw);delete dc[dw]}};this.clearEcommerceCart=function(){dc={}};this.trackEcommerceOrder=function(dw,dA,dz,dy,dx,dB){b4(dw,dA,dz,dy,dx,dB)};this.trackEcommerceCartUpdate=function(dw){bz(dw)};this.trackRequest=function(dx,dz,dy,dw){cm(function(){var dA=cz(dx,dz,dw);bM(dA,bQ,dy)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(dw){if(dw<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=dw};this.queueRequest=function(dw){cm(function(){var dx=cz(dw);
+bK.push(dx)})};this.isConsentRequired=function(){return cK};this.getRememberedConsent=function(){var dw=aH(bj);if(aH(cW)){if(dw){b5(bj,bw,c9)}return null}if(!dw||dw===0){return null}return dw};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cK=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dx){bJ=true;c8=true;b5(cW,bw,c9);var dy,dw;for(dy=0;dy<cV.length;dy++){dw=typeof cV[dy];if(dw==="string"){bM(cV[dy],bQ)}else{if(dw==="object"){ds(cV[dy],bQ)}}}cV=[];if(!M(dx)||dx){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dy){if(dy){dy=dy*60*60*1000}else{dy=30*365*24*60*60*1000}var dw=true;this.setConsentGiven(dw);var dx=new Date().getTime();dr(bj,dx,dy,bw,c9,bY,aN)};this.forgetConsentGiven=function(){var dw=30*365*24*60*60*1000;b5(bj,bw,c9);dr(cW,new Date().getTime(),dw,bw,c9,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()
+};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dl()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams","setExcludedReferrers"];
+function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})
+}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()
+}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
/*!!! pluginTrackerHook */
-(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()
-}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)
-}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
+(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;
+for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());
+if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
/*!! @license-end */; \ No newline at end of file
diff --git a/matomo.js b/matomo.js
index ce0247be92..6893f82409 100644
--- a/matomo.js
+++ b/matomo.js
@@ -29,47 +29,47 @@ at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.fin
}if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at<aw.length;at++){au=this.buildContentBlock(aw[at]);if(M(au)){av.push(au)}}return av},setLocation:function(at){this.location=at},getLocation:function(){var at=this.location||W.location;if(!at.origin){at.origin=at.protocol+"//"+at.hostname+(at.port?":"+at.port:"")}return at},toAbsoluteUrl:function(au){if((!au||String(au)!==au)&&au!==""){return au}if(""===au){return this.getLocation().href}if(au.search(/^\/\//)!==-1){return this.getLocation().protocol+au}if(au.search(/:\/\//)!==-1){return au}if(0===au.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+au}if(0===au.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+au
}if(0===au.search("^[a-zA-Z]{2,11}:")){return au}if(au.search(/^\//)!==-1){return this.getLocation().origin+au}var at="(.*/)";var av=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(at))[0];return av+au},isUrlToCurrentDomain:function(au){var av=this.toAbsoluteUrl(au);if(!av){return false}var at=this.getLocation().origin;if(at===av){return true}if(0===String(av).indexOf(at)){if(":"===String(av).substr(at.length,1)){return false}return true}return false},setHrefAttribute:function(au,at){if(!au||!at){return}ai.setAnyAttribute(au,"href",at)},shouldIgnoreInteraction:function(at){if(ai.hasNodeAttribute(at,this.CONTENT_IGNOREINTERACTION_ATTR)){return true}if(ai.hasNodeCssClass(at,this.CONTENT_IGNOREINTERACTION_CLASS)){return true}if(ai.hasNodeCssClass(at,this.LEGACY_CONTENT_IGNOREINTERACTION_CLASS)){return true}return false}};function aa(au,ax){if(ax){return ax}au=w.toAbsoluteUrl(au);if(A(au,"?")){var aw=au.indexOf("?");au=au.slice(0,aw)}if(U(au,"matomo.php")){au=f(au,"matomo.php".length)
}else{if(U(au,"piwik.php")){au=f(au,"piwik.php".length)}else{if(U(au,".php")){var at=au.lastIndexOf("/");var av=1;au=au.slice(0,at+av)}}}if(U(au,"/js/")){au=f(au,"js/".length)}return au}function R(az){var aB="Matomo_Overlay";var au=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=[^&]*)?");var av=au.exec(J.referrer);if(av){var ax=av[1];if(ax!==String(az)){return false}var ay=av[2],at=av[3],aw=av[4];if(!aw){aw=""}else{if(aw.indexOf("&segment=")===0){aw=aw.substr("&segment=".length)}}W.name=aB+"###"+ay+"###"+at+"###"+aw}var aA=W.name.split("###");return aA.length===4&&aA[0]===aB}function ad(au,az,av){var ay=W.name.split("###"),ax=ay[1],at=ay[2],aw=ay[3],aA=aa(au,az);o(aA+"plugins/Overlay/client/client.js?v=1",function(){Matomo_Overlay_Client.initialize(aA,av,ax,at,aw)})}function v(){var av;try{av=W.frameElement}catch(au){return true}if(M(av)){return(av&&String(av.nodeName).toLowerCase()==="iframe")?true:false}try{return W.self!==W.top
-}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cL="mtm_cookie_consent",cU="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c2=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c0=false,cn="GET",dk=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cE=aM,aI=cj||"",bO="",c9="",ct="",cc=cf||"",bF="",bU="",ba,bp="",dg=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c2],bG=[],co=[],bR=[],be=[],bQ=500,c5=true,cR,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c7,bw,bY=false,aN="Lax",bs=false,cY,bk,bC,cS=33955200000,cu=1800000,df=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cA={},da={},dh={},cg=[],ck=false,cJ=false,au=false,di=false,cV=false,aS=false,bi=v(),cF=null,c8=null,aW,bI,cd=aq,bv,aQ,bH=false,cx=0,bB=["id","ses","cvar","ref"],cI=false,bJ=null,cT=[],cz=[],aB=X++,aA=false,c6=true;
-try{bp=J.title}catch(cG){bp=""}function aH(dw){if(bs){return 0}var du=new RegExp("(^|;)[ ]*"+dw+"=([^;]*)"),dv=du.exec(J.cookie);return dv?V(dv[2]):0}bJ=!aH(cU);function dp(dy,dz,dC,dB,dw,dx,dA){if(bs&&dy!==cU){return}var dv;if(dC){dv=new Date();dv.setTime(dv.getTime()+dC)}if(!dA){dA="Lax"}J.cookie=dy+"="+t(dz)+(dC?";expires="+dv.toGMTString():"")+";path="+(dB||"/")+(dw?";domain="+dw:"")+(dx?";secure":"")+";SameSite="+dA;if((!dC||dC>=0)&&aH(dy)!==String(dz)){var du="There was an error setting cookie `"+dy+"`. Please check domain and path.";ao(du)}}function b8(du){var dw,dv;du=j(du,az);for(dv=0;dv<co.length;dv++){du=j(du,co[dv])}if(bV){dw=new RegExp("#.*");return du.replace(dw,"")}return du}function b1(dw,du){var dx=s(du),dv;if(dx){return du}if(du.slice(0,1)==="/"){return s(dw)+"://"+d(dw)+du}dw=b8(dw);dv=dw.indexOf("?");if(dv>=0){dw=dw.slice(0,dv)}dv=dw.lastIndexOf("/");if(dv!==dw.length-1){dw=dw.slice(0,dv+1)}return dw+du}function cP(dw,du){var dv;dw=String(dw).toLowerCase();du=String(du).toLowerCase();
-if(dw===du){return true}if(du.slice(0,1)==="."){if(dw===du.slice(1)){return true}dv=dw.length-du.length;if((dv>0)&&(dw.slice(dv)===du)){return true}}return false}function cr(du){var dv=document.createElement("a");if(du.indexOf("//")!==0&&du.indexOf("http")!==0){if(du.indexOf("*")===0){du=du.substr(1)}if(du.indexOf(".")===0){du=du.substr(1)}du="http://"+du}dv.href=w.toAbsoluteUrl(du);if(dv.pathname){return dv.pathname}return""}function a9(dv,du){if(!an(du,"/")){du="/"+du}if(!an(dv,"/")){dv="/"+dv}var dw=(du==="/"||du==="/*");if(dw){return true}if(dv===du){return true}du=String(du).toLowerCase();dv=String(dv).toLowerCase();if(U(du,"*")){du=du.slice(0,-1);dw=(!du||du==="/");if(dw){return true}if(dv===du){return true}return dv.indexOf(du)===0}if(!U(dv,"/")){dv+="/"}if(!U(du,"/")){du+="/"}return dv.indexOf(du)===0}function aw(dy,dA){var dv,du,dw,dx,dz;for(dv=0;dv<aC.length;dv++){dx=O(aC[dv]);dz=cr(aC[dv]);if(cP(dy,dx)&&a9(dA,dz)){return true}}return false}function a1(dx){var dv,du,dw;for(dv=0;
-dv<aC.length;dv++){du=O(aC[dv].toLowerCase());if(dx===du){return true}if(du.slice(0,1)==="."){if(dx===du.slice(1)){return true}dw=dx.length-du.length;if((dw>0)&&(dx.slice(dw)===du)){return true}}}return false}function cv(du,dw){du=du.replace("send_image=0","send_image=1");var dv=new Image(1,1);dv.onload=function(){H=0;if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:true})}};dv.onerror=function(){if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:false})}};dv.src=aI+(aI.indexOf("?")<0?"?":"&")+du}function cM(du){if(dk==="POST"){return true}return du&&(du.length>2000||du.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dy,dB,dA){var dw=aP();if(!dw){return false}var dx={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dC=false;var dv=aI;try{var du=new Blob([dy],dx);if(dA&&!cM(dy)){du=new Blob([],dx);dv=dv+(dv.indexOf("?")<0?"?":"&")+dy}dC=g.sendBeacon(dv,du)}catch(dz){return false
-}if(dC&&typeof dB==="function"){dB({request:dy,trackerUrl:aI,success:true,isSendBeacon:true})}return dC}function de(dv,dw,du){if(!M(du)||null===du){du=true}if(m&&bc(dv,dw,du)){return}setTimeout(function(){if(m&&bc(dv,dw,du)){return}var dz;try{var dy=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dy.open("POST",aI,true);dy.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dA=m&&bc(dv,dw,du);if(!dA&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dw==="function")){dw({request:dv,trackerUrl:aI,success:true,xhr:this})}}};dy.setRequestHeader("Content-Type",cE);dy.withCredentials=true;dy.send(dv)}catch(dx){dz=m&&bc(dv,dw,du);if(!dz&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false})}}}},50)}function cl(dv){var du=new Date();var dw=du.getTime()+dv;if(!r||dw>r){r=dw}}function bg(){bi=true;
-cF=new Date().getTime()}function dn(){var du=new Date().getTime();return !cF||(du-cF)>bb}function aD(){if(dn()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dn()){bX()}else{if(J.visibilityState==="visible"){cF=new Date().getTime()}}}function dr(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dn()){bX()}}})}function cK(dy){var dv=new Date();var du=dv.getTime();c8=du;if(cJ&&du<cJ){var dw=cJ-du;setTimeout(dy,dw);cl(dw+50);cJ+=50;return}if(cJ===false){var dx=800;cJ=du+dx}dy()}function aT(){if(aH(cU)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dv,du,dw){aT();if(!bJ){cT.push(dv);return}aA=true;if(!cY&&dv){if(cI&&bJ){dv+="&consent=1"}cK(function(){if(c5&&bc(dv,dw,true)){cl(100);return}if(cM(dv)){de(dv,dw)}else{cv(dv,dw)}cl(du)})}if(!aS){dr()}}function cq(du){if(cY){return false}return(du&&du.length)}function dd(du,dy){if(!dy||dy>=du.length){return[du]}var dv=0;var dw=du.length;var dx=[];
-for(dv;dv<dw;dv+=dy){dx.push(du.slice(dv,dv+dy))}return dx}function dq(dv,du){if(!cq(dv)){return}if(!bJ){cT.push(dv);return}aA=true;cK(function(){var dy=dd(dv,50);var dw=0,dx;for(dw;dw<dy.length;dw++){dx='{"requests":["?'+dy[dw].join('","?')+'"],"send_image":0}';if(c5&&bc(dx,null,false)){cl(100)}else{de(dx,null,false)}}cl(du)})}function aY(du){return bq+du+"."+cc+"."+bv}function b5(dw,dv,du){dp(dw,"",-129600000,dv,du)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var du=bq+"testcookie";dp(du,"1",undefined,bw,c7,bY,aN);var dv=aH(du)==="1"?"1":"0";b5(du);return dv}function bo(){bv=cd((c7||c2)+(bw||"/")).slice(0,4)}function cQ(){if(!c6){return{}}if(M(dh.res)){return dh}var dv,dx,dy={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dv in dy){if(Object.prototype.hasOwnProperty.call(dy,dv)){dx=g.mimeTypes[dy[dv]];
-dh[dv]=(dx&&dx.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dh.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dh.cookie=g.cookieEnabled?"1":"0"}else{dh.cookie=cb()}}var dw=parseInt(ab.width,10);var du=parseInt(ab.height,10);dh.res=parseInt(dw,10)+"x"+parseInt(du,10);return dh}function b3(){var dv=aY("cvar"),du=aH(dv);if(du&&du.length){du=W.JSON.parse(du);if(Z(du)){return du}}return{}}function cN(){if(aV===false){aV=b3()}}function cZ(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)+(new Date()).getTime()+Math.random()).slice(0,16)}function aF(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dv=bl();var dw=aF();var du=String(dv)+dw;return du}function dc(dw){dw=String(dw);var dz=aF();var dx=dz.length;var dy=dw.substr(-1*dx,dx);
-var dv=parseInt(dw.substr(0,dw.length-dx),10);if(dv&&dy&&dy===dz){var du=bl();if(a5<=0){return true}if(du>=dv&&du<=(dv+a5)){return true}}return false}function ds(du){if(!cV){return""}var dy=e(du,az);if(!dy){return""}dy=String(dy);var dw=new RegExp("^[a-zA-Z0-9]+$");if(dy.length===32&&dw.test(dy)){var dv=dy.substr(16,32);if(dc(dv)){var dx=dy.substr(0,16);return dx}}return""}function cW(){if(!bU){bU=ds(bT)}var dw=new Date(),du=Math.round(dw.getTime()/1000),dv=aY("id"),dz=aH(dv),dy,dx;if(dz){dy=dz.split(".");dy.unshift("0");if(bU.length){dy[1]=bU}return dy}if(bU.length){dx=bU}else{if("0"===cb()){dx=""}else{dx=cZ()}}dy=["1",dx,du];return dy}function a4(){var dx=cW(),dv=dx[0],dw=dx[1],du=dx[2];return{newVisitor:dv,uuid:dw,createTs:du}}function aL(){var dx=new Date(),dv=dx.getTime(),dy=a4().createTs;var du=parseInt(dy,10);var dw=(du*1000)+cS-dv;return dw}function aR(du){if(!cc){return}var dw=new Date(),dv=Math.round(dw.getTime()/1000);if(!M(du)){du=a4()}var dx=du.uuid+"."+du.createTs+".";dp(aY("id"),dx,aL(),bw,c7,bY,aN)
-}function bS(){var du=aH(aY("ref"));if(du.length){try{du=W.JSON.parse(du);if(Z(du)){return du}}catch(dv){}}return["","",0,""]}function bD(dw){var dv=bq+"testcookie_domain";var du="testvalue";dp(dv,du,10000,null,dw,bY,aN);if(aH(dv)===du){b5(dv,null,dw);return true}return false}function aJ(){var dv=bs;bs=false;var du,dw;for(du=0;du<bB.length;du++){dw=aY(bB[du]);if(dw!==cU&&dw!==bj&&0!==aH(dw)){b5(dw,bw,c7)}}bs=dv}function b9(du){cc=du}function dt(dy){if(!dy||!Z(dy)){return}var dx=[];var dw;for(dw in dy){if(Object.prototype.hasOwnProperty.call(dy,dw)){dx.push(dw)}}var dz={};dx.sort();var du=dx.length;var dv;for(dv=0;dv<du;dv++){dz[dx[dv]]=dy[dx[dv]]}return dz}function ci(){dp(aY("ses"),"1",cu,bw,c7,bY,aN)}function bm(){var dx="";var dv="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dw=dv.length;var du;for(du=0;du<6;du++){dx+=dv.charAt(Math.floor(Math.random()*dw))}return dx}function aE(dv){if(ct!==""){dv+=ct;bn=true;return dv}if(!h){return dv}var dw=(typeof h.timing==="object")&&h.timing?h.timing:undefined;
-if(!dw){dw=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dw){return dv}var du="";if(dw.connectEnd&&dw.fetchStart){if(dw.connectEnd<dw.fetchStart){return dv}du+="&pf_net="+Math.round(dw.connectEnd-dw.fetchStart)}if(dw.responseStart&&dw.requestStart){if(dw.responseStart<dw.requestStart){return dv}du+="&pf_srv="+Math.round(dw.responseStart-dw.requestStart)}if(dw.responseStart&&dw.responseEnd){if(dw.responseEnd<dw.responseStart){return dv}du+="&pf_tfr="+Math.round(dw.responseEnd-dw.responseStart)}if(M(dw.domLoading)){if(dw.domInteractive&&dw.domLoading){if(dw.domInteractive<dw.domLoading){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.domLoading)}}else{if(dw.domInteractive&&dw.responseEnd){if(dw.domInteractive<dw.responseEnd){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.responseEnd)}}if(dw.domComplete&&dw.domInteractive){if(dw.domComplete<dw.domInteractive){return dv}du+="&pf_dm2="+Math.round(dw.domComplete-dw.domInteractive)
-}if(dw.loadEventEnd&&dw.loadEventStart){if(dw.loadEventEnd<dw.loadEventStart){return dv}du+="&pf_onl="+Math.round(dw.loadEventEnd-dw.loadEventStart)}return dv+du}function dj(){var dE,dx=new Date(),dy=Math.round(dx.getTime()/1000),dJ,dw,dz=1024,dG,dA,dv=aY("ses"),dD=aY("ref"),dC=aH(dv),du=bS(),dI=ba||bT,dF,dB,dH={};dF=du[0];dB=du[1];dJ=du[2];dw=du[3];if(!dC){if(!bC||!dF.length){for(dE in cw){if(Object.prototype.hasOwnProperty.call(cw,dE)){dF=e(dI,cw[dE]);if(dF.length){break}}}for(dE in bN){if(Object.prototype.hasOwnProperty.call(bN,dE)){dB=e(dI,bN[dE]);if(dB.length){break}}}}dG=d(bu);dA=dw.length?d(dw):"";if(dG.length&&!a1(dG)&&(!bC||!dA.length||a1(dA))){dw=bu}if(dw.length||dF.length){dJ=dy;du=[dF,dB,dJ,b8(dw.slice(0,dz))];dp(dD,W.JSON.stringify(du),df,bw,c7,bY,aN)}}if(dF.length){dH._rcn=t(dF)}if(dB.length){dH._rck=t(dB)}dH._refts=dJ;if(String(dw).length){dH._ref=t(b8(dw.slice(0,dz)))}return dH}function cy(dv,dG,dH){var dF,du=new Date(),dE=aV,dA=aY("cvar"),dI=ba||bT;if(bs){aJ()}if(cY){return""
-}var dB=a4();var dy=J.characterSet||J.charset;if(!dy||dy.toLowerCase()==="utf-8"){dy=null}dv+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+du.getHours()+"&m="+du.getMinutes()+"&s="+du.getSeconds()+"&url="+t(b8(dI))+(bu.length?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dB.uuid+"&_idn="+dB.newVisitor+(dy?"&cs="+t(dy):"")+"&send_image=0";var dD=dj();for(dF in dD){if(Object.prototype.hasOwnProperty.call(dD,dF)){dv+="&"+dF+"="+dD[dF]}}var dK=cQ();for(dF in dK){if(Object.prototype.hasOwnProperty.call(dK,dF)){dv+="&"+dF+"="+dK[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dw=dF.replace("dimension","");dL.push(parseInt(dw,10));dL.push(String(dw));dv+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&D(dG)){dG=null}for(dF in cA){if(Object.prototype.hasOwnProperty.call(cA,dF)){dv+="&"+dF+"="+t(cA[dF])}}for(dF in bt){if(Object.prototype.hasOwnProperty.call(bt,dF)){var dz=(-1===P(dL,dF));if(dz){dv+="&dimension"+dF+"="+t(bt[dF])
-}}}if(dG){dv+="&data="+t(W.JSON.stringify(dG))}else{if(at){dv+="&data="+t(W.JSON.stringify(at))}}function dx(dM,dN){var dO=W.JSON.stringify(dM);if(dO.length>2){return"&"+dN+"="+t(dO)}return""}var dJ=dt(b2);var dC=dt(cs);dv+=dx(dJ,"cvar");dv+=dx(dC,"e_cvar");if(aV){dv+=dx(aV,"_cvar");for(dF in dE){if(Object.prototype.hasOwnProperty.call(dE,dF)){if(aV[dF][0]===""||aV[dF][1]===""){delete aV[dF]}}}if(bW){dp(dA,W.JSON.stringify(aV),cu,bw,c7,bY,aN)}}if(a8&&bL&&!bn){dv=aE(dv);bn=true}if(aQ){dv+="&pv_id="+aQ}aR(dB);ci();dv+=ag(dH,{tracker:bP,request:dv});if(c9.length){dv+="&"+c9}if(C(ch)){dv=ch(dv)}return dv}bX=function bd(){var du=new Date();du=du.getTime();if(!c8){return false}if(c8+bb<=du){bP.ping();return true}return false};function bx(dx,dw,dB,dy,du,dE){var dA="idgoal=0",dv=new Date(),dC=[],dD,dz=String(dx).length;if(dz){dA+="&ec_id="+t(dx)}dA+="&revenue="+dw;if(String(dB).length){dA+="&ec_st="+dB}if(String(dy).length){dA+="&ec_tx="+dy}if(String(du).length){dA+="&ec_sh="+du}if(String(dE).length){dA+="&ec_dt="+dE
-}if(da){for(dD in da){if(Object.prototype.hasOwnProperty.call(da,dD)){if(!M(da[dD][1])){da[dD][1]=""}if(!M(da[dD][2])){da[dD][2]=""}if(!M(da[dD][3])||String(da[dD][3]).length===0){da[dD][3]=0}if(!M(da[dD][4])||String(da[dD][4]).length===0){da[dD][4]=1}dC.push(da[dD])}}dA+="&ec_items="+t(W.JSON.stringify(dC))}dA=cy(dA,at,"ecommerce");bM(dA,bQ);if(dz){da={}}}function b4(du,dy,dx,dw,dv,dz){if(String(du).length&&M(dy)){bx(du,dy,dx,dw,dv,dz)}}function bz(du){if(M(du)){bx("",du,"","","","")}}function b6(dv,dx,dw){if(!bH){aQ=bm()}var du=cy("action_name="+t(ap(dv||bp)),dx,"log");if(a8&&!bn){du=aE(du)}bM(du,bQ,dw)}function a6(dw,dv){var dx,du="(^| )(piwik[_-]"+dv+"|matomo[_-]"+dv;if(dw){for(dx=0;dx<dw.length;dx++){du+="|"+dw[dx]}}du+=")( |$)";return new RegExp(du)}function aZ(du){return(aI&&du&&0===String(du).indexOf(aI))}function cC(dy,du,dz,dv){if(aZ(du)){return 0}var dx=a6(bR,"download"),dw=a6(be,"link"),dA=new RegExp("\\.("+dg.join("|")+")([?&#]|$)","i");if(dw.test(dy)){return"link"}if(dv||dx.test(dy)||dA.test(du)){return"download"
-}if(dz){return 0}return"link"}function ay(dv){var du;du=dv.parentNode;while(du!==null&&M(du)){if(ai.isLinkElement(dv)){break}dv=du;du=dv.parentNode}return dv}function dm(dz){dz=ay(dz);if(!ai.hasNodeAttribute(dz,"href")){return}if(!M(dz.href)){return}var dy=ai.getAttributeValueFromNode(dz,"href");var dv=dz.pathname||cr(dz.href);var dA=dz.hostname||d(dz.href);var dB=dA.toLowerCase();var dw=dz.href.replace(dA,dB);var dx=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dx.test(dw)){var du=cC(dz.className,dw,aw(dB,dv),ai.hasNodeAttribute(dz,"download"));if(du){return{type:du,href:dw}}}}function aU(du,dv,dw,dx){var dy=w.buildInteractionRequestParams(du,dv,dw,dx);if(!dy){return}return cy(dy,null,"contentInteraction")}function bh(du,dv){if(!du||!dv){return false}var dw=w.findTargetNode(du);if(w.shouldIgnoreInteraction(dw)){return false}dw=w.findTargetNodeNoDefault(du);if(dw&&!Y(dw,dv)){return false}return true}function cB(dw,dv,dy){if(!dw){return}var du=w.findParentContentNode(dw);
-if(!du){return}if(!bh(du,dw)){return}var dx=w.buildContentBlock(du);if(!dx){return}if(!dx.target&&dy){dx.target=dy}return w.buildInteractionRequestParams(dv,dx.name,dx.piece,dx.target)}function a2(dv){if(!cg||!cg.length){return false}var du,dw;for(du=0;du<cg.length;du++){dw=cg[du];if(dw&&dw.name===dv.name&&dw.piece===dv.piece&&dw.target===dv.target){return true}}return false}function a3(du){return function(dy){if(!du){return}var dw=w.findParentContentNode(du);var dv;if(dy){dv=dy.target||dy.srcElement}if(!dv){dv=du}if(!bh(dw,dv)){return}if(!dw){return false}var dz=w.findTargetNode(dw);if(!dz||w.shouldIgnoreInteraction(dz)){return false}var dx=dm(dz);if(di&&dx&&dx.type){return dx.type}return bP.trackContentInteractionNode(dv,"click")}}function b7(dw){if(!dw||!dw.length){return}var du,dv;for(du=0;du<dw.length;du++){dv=w.findTargetNode(dw[du]);if(dv&&!dv.contentInteractionTrackingSetupDone){dv.contentInteractionTrackingSetupDone=true;ar(dv,"click",a3(dv))}}}function bE(dw,dx){if(!dw||!dw.length){return[]
-}var du,dv;for(du=0;du<dw.length;du++){if(a2(dw[du])){dw.splice(du,1);du--}else{cg.push(dw[du])}}if(!dw||!dw.length){return[]}b7(dx);var dy=[];for(du=0;du<dw.length;du++){dv=cy(w.buildImpressionRequestParams(dw[du].name,dw[du].piece,dw[du].target),undefined,"contentImpressions");if(dv){dy.push(dv)}}return dy}function cH(dv){var du=w.collectContent(dv);return bE(du,dv)}function bf(dv){if(!dv||!dv.length){return[]}var du;for(du=0;du<dv.length;du++){if(!w.isNodeVisible(dv[du])){dv.splice(du,1);du--}}if(!dv||!dv.length){return[]}return cH(dv)}function aK(dw,du,dv){var dx=w.buildImpressionRequestParams(dw,du,dv);return cy(dx,null,"contentImpression")}function dl(dx,dv){if(!dx){return}var du=w.findParentContentNode(dx);var dw=w.buildContentBlock(du);if(!dw){return}if(!dv){dv="Unknown"}return aU(dv,dw.name,dw.piece,dw.target)}function cX(dv,dx,du,dw){return"e_c="+t(dv)+"&e_a="+t(dx)+(M(du)?"&e_n="+t(du):"")+(M(dw)?"&e_v="+t(dw):"")+"&ca=1"}function ax(dw,dy,du,dx,dA,dz){if(!ac(dw)||!ac(dy)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");
-return false}var dv=cy(cX(dw,dy,du,dx),dA,"event");bM(dv,bQ,dz)}function ce(du,dx,dv,dy){var dw=cy("search="+t(du)+(dx?"&search_cat="+t(dx):"")+(M(dv)?"&search_count="+dv:""),dy,"sitesearch");bM(dw,bQ)}function c1(du,dy,dx,dw){var dv=cy("idgoal="+du+(dy?"&revenue="+dy:""),dx,"goal");bM(dv,bQ,dw)}function db(dx,du,dB,dA,dw){var dz=du+"="+t(b8(dx));var dv=cB(dw,"click",dx);if(dv){dz+="&"+dv}var dy=cy(dz,dB,"link");bM(dy,bQ,dA)}function b0(dv,du){if(dv!==""){return dv+du.charAt(0).toUpperCase()+du.slice(1)}return du}function cm(dz){var dy,du,dx=["","webkit","ms","moz"],dw;if(!bk){for(du=0;du<dx.length;du++){dw=dx[du];if(Object.prototype.hasOwnProperty.call(J,b0(dw,"hidden"))){if(J[b0(dw,"visibilityState")]==="prerender"){dy=true}break}}}if(dy){ar(J,dw+"visibilitychange",function dv(){J.removeEventListener(dw+"visibilitychange",dv,false);dz()});return}dz()}function by(){var dv=bP.getVisitorId();var du=aO();return dv+du}function cp(du){if(!du){return}if(!ai.hasNodeAttribute(du,"href")){return
-}var dv=ai.getAttributeValueFromNode(du,"href");if(!dv||aZ(dv)){return}if(!bP.getVisitorId()){return}dv=j(dv,az);var dw=by();dv=I(dv,az,dw);ai.setAnyAttribute(du,"href",dv)}function br(dx){var dy=ai.getAttributeValueFromNode(dx,"href");if(!dy){return false}dy=String(dy);var dv=dy.indexOf("//")===0||dy.indexOf("http://")===0||dy.indexOf("https://")===0;if(!dv){return false}var du=dx.pathname||cr(dx.href);var dw=(dx.hostname||d(dx.href)).toLowerCase();if(aw(dw,du)){if(!cP(c2,O(dw))){return true}return false}return false}function cO(du){var dv=dm(du);if(dv&&dv.type){dv.href=p(dv.href);db(dv.href,dv.type,undefined,null,du);return}if(cV){du=ay(du);if(br(du)){cp(du)}}}function cD(){return J.all&&!J.addEventListener}function c3(du){var dw=du.which;var dv=(typeof du.button);if(!dw&&dv!=="undefined"){if(cD()){if(du.button&1){dw=1}else{if(du.button&2){dw=3}else{if(du.button&4){dw=2}}}}else{if(du.button===0||du.button==="0"){dw=1}else{if(du.button&1){dw=2}else{if(du.button&2){dw=3}}}}}return dw}function bZ(du){switch(c3(du)){case 1:return"left";
-case 2:return"middle";case 3:return"right"}}function a7(du){return du.target||du.srcElement}function c4(du){return du==="A"||du==="AREA"}function aG(du){function dv(dx){var dy=a7(dx);var dz=dy.nodeName;var dw=a6(bG,"ignore");while(!c4(dz)&&dy&&dy.parentNode){dy=dy.parentNode;dz=dy.nodeName}if(dy&&c4(dz)&&!dw.test(dy.className)){return dy}}return function(dy){dy=dy||W.event;var dz=dv(dy);if(!dz){return}var dx=bZ(dy);if(dy.type==="click"){var dw=false;if(du&&dx==="middle"){dw=true}if(dz&&!dw){cO(dz)}}else{if(dy.type==="mousedown"){if(dx==="middle"&&dz){aW=dx;bI=dz}else{aW=bI=null}}else{if(dy.type==="mouseup"){if(dx===aW&&dz===bI){cO(dz)}aW=bI=null}else{if(dy.type==="contextmenu"){cO(dz)}}}}}}function av(dx,dw,du){var dv=typeof dw;if(dv==="undefined"){dw=true}ar(dx,"click",aG(dw),du);if(dw){ar(dx,"mouseup",aG(dw),du);ar(dx,"mousedown",aG(dw),du);ar(dx,"contextmenu",aG(dw),du)}}function aX(dv,dy,dz){if(ck){return true}ck=true;var dA=false;var dx,dw;function du(){dA=true}n(function(){function dB(dD){setTimeout(function(){if(!ck){return
-}dA=false;dz.trackVisibleContentImpressions();dB(dD)},dD)}function dC(dD){setTimeout(function(){if(!ck){return}if(dA){dA=false;dz.trackVisibleContentImpressions()}dC(dD)},dD)}if(dv){dx=["scroll","resize"];for(dw=0;dw<dx.length;dw++){if(J.addEventListener){J.addEventListener(dx[dw],du,false)}else{W.attachEvent("on"+dx[dw],du)}}dC(100)}if(dy&&dy>0){dy=parseInt(dy,10);dB(dy)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var du=this.requests;this.requests=[];if(du.length===1){bM(du[0],bQ)}else{dq(du,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dv){if(!this.canQueue()){dq(dv,bQ);return}var du;for(du=0;du<dv.length;du++){this.push(dv[du])}},push:function(du){if(!du){return}if(!this.canQueue()){bM(du,bQ);return}bK.requests.push(du);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dv="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dv)){b[dv]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)
-}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cW()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]};this.setTrackerUrl=function(du){aI=du};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dw,dv){if(!M(dw)||null===dw){dw=this.getTrackerUrl()}var du=new T(dw,dv);L.push(du);u.trigger("TrackerAdded",[this]);return du};this.getSiteId=function(){return cc};this.setSiteId=function(du){b9(du)};this.resetUserId=function(){bF=""};this.setUserId=function(du){if(ac(du)){bF=du}};this.setVisitorId=function(dv){var du=/[0-9A-Fa-f]{16}/g;
-if(x(dv)&&du.test(dv)){bU=dv}else{ao("Invalid visitorId set"+dv)}};this.getUserId=function(){return bF};this.setCustomData=function(du,dv){if(Z(du)){at=du}else{if(!at){at={}}at[du]=dv}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(du){ch=du};this.appendToTrackingUrl=function(du){c9=du};this.getRequest=function(du){return cy(du)};this.addPlugin=function(du,dv){b[du]=dv};this.setCustomDimension=function(du,dv){du=parseInt(du,10);if(du>0){if(!M(dv)){dv=""}if(!x(dv)){dv=String(dv)}bt[du]=dv}};this.getCustomDimension=function(du){du=parseInt(du,10);if(du>0&&Object.prototype.hasOwnProperty.call(bt,du)){return bt[du]}};this.deleteCustomDimension=function(du){du=parseInt(du,10);if(du>0){delete bt[du]}};this.setCustomVariable=function(dv,du,dy,dw){var dx;if(!M(dw)){dw="visit"}if(!M(du)){return}if(!M(dy)){dy=""}if(dv>0){du=!x(du)?String(du):du;dy=!x(dy)?String(dy):dy;dx=[du.slice(0,bA),dy.slice(0,bA)];if(dw==="visit"||dw===2){cN();aV[dv]=dx}else{if(dw==="page"||dw===3){b2[dv]=dx
-}else{if(dw==="event"){cs[dv]=dx}}}}};this.getCustomVariable=function(dv,dw){var du;if(!M(dw)){dw="visit"}if(dw==="page"||dw===3){du=b2[dv]}else{if(dw==="event"){du=cs[dv]}else{if(dw==="visit"||dw===2){cN();du=aV[dv]}}}if(!M(du)||(du&&du[0]==="")){return false}return du};this.deleteCustomVariable=function(du,dv){if(this.getCustomVariable(du,dv)){this.setCustomVariable(du,"","",dv)}};this.deleteCustomVariables=function(du){if(du==="page"||du===3){b2={}}else{if(du==="event"){cs={}}else{if(du==="visit"||du===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(du){bQ=du};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(du){if(x(du)){du=du.split("|")}dg=du};this.addDownloadExtensions=function(dv){var du;if(x(dv)){dv=dv.split("|")}for(du=0;du<dv.length;du++){dg.push(dv[du])}};this.removeDownloadExtensions=function(dw){var dv,du=[];if(x(dw)){dw=dw.split("|")}for(dv=0;dv<dg.length;dv++){if(P(dw,dg[dv])===-1){du.push(dg[dv])
-}}dg=du};this.setDomains=function(du){aC=x(du)?[du]:du;var dy=false,dw=0,dv;for(dw;dw<aC.length;dw++){dv=String(aC[dw]);if(cP(c2,O(dv))){dy=true;break}var dx=cr(dv);if(dx&&dx!=="/"&&dx!=="/*"){dy=true;break}}if(!dy){aC.push(c2)}};this.enableCrossDomainLinking=function(){cV=true};this.disableCrossDomainLinking=function(){cV=false};this.isCrossDomainLinkingEnabled=function(){return cV};this.setCrossDomainLinkingTimeout=function(du){a5=du};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(du){bG=x(du)?[du]:du};this.setRequestMethod=function(du){if(du){dk=String(du).toUpperCase()}else{dk=cn}if(dk==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(du){cE=du||aM};this.setGenerationTimeMs=function(du){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dy,dA,dz,dv,dB,dw){var dx={pf_net:dy,pf_srv:dA,pf_tfr:dz,pf_dm1:dv,pf_dm2:dB,pf_onl:dw};
-try{dx=Q(dx,M);dx=B(dx);ct=l(dx);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(du){ao("setPagePerformanceTiming: "+du.toString())}};this.setReferrerUrl=function(du){bu=du};this.setCustomUrl=function(du){ba=b1(bT,du)};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(du){bp=du};this.setPageViewId=function(du){aQ=du;bH=true};this.setAPIUrl=function(du){bO=du};this.setDownloadClasses=function(du){bR=x(du)?[du]:du};this.setLinkClasses=function(du){be=x(du)?[du]:du};this.setCampaignNameKey=function(du){cw=x(du)?[du]:du};this.setCampaignKeywordKey=function(du){bN=x(du)?[du]:du};this.discardHashTag=function(du){bV=du};this.setCookieNamePrefix=function(du){bq=du;if(aV){aV=b3()}};this.setCookieDomain=function(du){var dv=O(du);if(!bs&&!bD(dv)){ao("Can't write cookie on domain "+du)}else{c7=dv;bo()}};this.setExcludedQueryParams=function(du){co=x(du)?[du]:du
-};this.getCookieDomain=function(){return c7};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dw,dv,du){if(!dw){throw new Error("Missing cookie name")}if(!M(du)){du=cu}bB.push(dw);dp(aY(dw),dv,du,bw,c7,bY,aN)};this.getCookie=function(dv){var du=aH(aY(dv));if(du===0){return null}return du};this.setCookiePath=function(du){bw=du;bo()};this.getCookiePath=function(du){return bw};this.setVisitorCookieTimeout=function(du){cS=du*1000};this.setSessionCookieTimeout=function(du){cu=du*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(du){df=du*1000};this.setConversionAttributionFirstReferrer=function(du){bC=du};this.setSecureCookie=function(du){if(du&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=du};this.setCookieSameSite=function(du){du=String(du);du=du.charAt(0).toUpperCase()+du.toLowerCase().slice(1);if(du!=="None"&&du!=="Lax"&&du!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");
-return}if(du==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");du="Lax"}}aN=du};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!cY){bs=false;c6=true;if(cc&&aA){aR();var du=cy("ping=1",null,"ping");bM(du,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cL)};this.forgetCookieConsentGiven=function(){b5(cL,bw,c7);this.disableCookies()};this.rememberCookieConsentGiven=function(dv){if(dv){dv=dv*60*60*1000}else{dv=30*365*24*60*60*1000}this.setCookieConsentGiven();var du=new Date().getTime();dp(cL,du,dv,bw,c7,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dv){var du=g.doNotTrack||g.msDoNotTrack;cY=dv&&(du==="yes"||du==="1");if(cY){this.disableCookies()
-}};this.alwaysUseSendBeacon=function(){c5=true};this.disableAlwaysUseSendBeacon=function(){c5=false};this.addListener=function(dv,du){av(dv,du,false)};this.enableLinkTracking=function(dv){if(di){return}di=true;var du=this;q(function(){au=true;var dw=J.body;av(dw,dv,true)})};this.enableJSErrorTracking=function(){if(c0){return}c0=true;var du=W.onerror;W.onerror=function(dz,dx,dw,dy,dv){cm(function(){var dA="JavaScript Errors";var dB=dx+":"+dw;if(dy){dB+=":"+dy}if(P(cz,dA+dB+dz)===-1){cz.push(dA+dB+dz);ax(dA,dB,dz)}});if(du){return du(dz,dx,dw,dy,dv)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(du){du=Math.max(du||15,5);bb=du*1000;if(c8!==null){dr()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)
-}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(du){if(W.location.protocol==="file:"){W.location=du}};this.setCountPreRendered=function(du){bk=du};this.trackGoal=function(du,dx,dw,dv){cm(function(){c1(du,dx,dw,dv)})};this.trackLink=function(dv,du,dx,dw){cm(function(){db(dv,du,dx,dw)})};this.getNumTrackedPageViews=function(){return cx};this.trackPageView=function(du,dw,dv){cg=[];cT=[];cz=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cx++;b6(du,dw,dv)})}};this.disableBrowserFeatureDetection=function(){c6=false};this.enableBrowserFeatureDetection=function(){c6=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var du=w.findContentNodes();var dv=cH(du);bK.pushMultiple(dv)})})};this.trackVisibleContentImpressions=function(du,dv){if(R(cc)){return}if(!M(du)){du=true}if(!M(dv)){dv=750}aX(du,dv,this);cm(function(){n(function(){var dw=w.findContentNodes();
-var dx=bf(dw);bK.pushMultiple(dx)})})};this.trackContentImpression=function(dw,du,dv){if(R(cc)){return}dw=a(dw);du=a(du);dv=a(dv);if(!dw){return}du=du||"Unknown";cm(function(){var dx=aK(dw,du,dv);bK.push(dx)})};this.trackContentImpressionsWithinNode=function(du){if(R(cc)||!du){return}cm(function(){if(ck){n(function(){var dv=w.findContentNodesWithinNode(du);var dw=bf(dv);bK.pushMultiple(dw)})}else{q(function(){var dv=w.findContentNodesWithinNode(du);var dw=cH(dv);bK.pushMultiple(dw)})}})};this.trackContentInteraction=function(dw,dx,du,dv){if(R(cc)){return}dw=a(dw);dx=a(dx);du=a(du);dv=a(dv);if(!dw||!dx){return}du=du||"Unknown";cm(function(){var dy=aU(dw,dx,du,dv);if(dy){bK.push(dy)}})};this.trackContentInteractionNode=function(dw,dv){if(R(cc)||!dw){return}var du=null;cm(function(){du=dl(dw,dv);if(du){bK.push(du)}});return du};this.logAllContentBlocksOnPage=function(){var dw=w.findContentNodes();var du=w.collectContent(dw);var dv=typeof console;if(dv!=="undefined"&&console&&console.log){console.log(du)
-}};this.trackEvent=function(dv,dx,du,dw,dz,dy){cm(function(){ax(dv,dx,du,dw,dz,dy)})};this.trackSiteSearch=function(du,dw,dv,dx){cg=[];cm(function(){ce(du,dw,dv,dx)})};this.setEcommerceView=function(dy,du,dw,dv){cA={};if(ac(dw)){dw=String(dw)}if(!M(dw)||dw===null||dw===false||!dw.length){dw=""}else{if(dw instanceof Array){dw=W.JSON.stringify(dw)}}var dx="_pkc";cA[dx]=dw;if(M(dv)&&dv!==null&&dv!==false&&String(dv).length){dx="_pkp";cA[dx]=dv}if(!ac(dy)&&!ac(du)){return}if(ac(dy)){dx="_pks";cA[dx]=dy}if(!ac(du)){du=""}dx="_pkn";cA[dx]=du};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(da))};this.addEcommerceItem=function(dy,du,dw,dv,dx){if(ac(dy)){da[dy]=[String(dy),du,dw,dv,dx]}};this.removeEcommerceItem=function(du){if(ac(du)){du=String(du);delete da[du]}};this.clearEcommerceCart=function(){da={}};this.trackEcommerceOrder=function(du,dy,dx,dw,dv,dz){b4(du,dy,dx,dw,dv,dz)};this.trackEcommerceCartUpdate=function(du){bz(du)};this.trackRequest=function(dv,dx,dw,du){cm(function(){var dy=cy(dv,dx,du);
-bM(dy,bQ,dw)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(du){if(du<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=du};this.queueRequest=function(du){cm(function(){var dv=cy(du);bK.push(dv)})};this.isConsentRequired=function(){return cI};this.getRememberedConsent=function(){var du=aH(bj);if(aH(cU)){if(du){b5(bj,bw,c7)}return null}if(!du||du===0){return null}return du};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cI=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dv){bJ=true;c6=true;b5(cU,bw,c7);var dw,du;for(dw=0;dw<cT.length;dw++){du=typeof cT[dw];if(du==="string"){bM(cT[dw],bQ)}else{if(du==="object"){dq(cT[dw],bQ)}}}cT=[];if(!M(dv)||dv){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dw){if(dw){dw=dw*60*60*1000
-}else{dw=30*365*24*60*60*1000}var du=true;this.setConsentGiven(du);var dv=new Date().getTime();dp(bj,dv,dw,bw,c7,bY,aN)};this.forgetConsentGiven=function(){var du=30*365*24*60*60*1000;b5(bj,bw,c7);dp(cU,new Date().getTime(),du,bw,c7,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dj()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")
-}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);
-Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()
-}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
+}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cN="mtm_cookie_consent",cW="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c4=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c2=false,cn="GET",dm=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cF=aM,aI=cj||"",bO="",db="",ct="",cc=cf||"",bF="",bU="",ba,bp="",di=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c4],bG=[],cG=[],co=[],bR=[],be=[],bQ=500,c7=true,cT,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c9,bw,bY=false,aN="Lax",bs=false,c0,bk,bC,cU=33955200000,cu=1800000,dh=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cB={},dc={},dj={},cg=[],ck=false,cL=false,au=false,dk=false,cX=false,aS=false,bi=v(),cH=null,da=null,aW,bI,cd=aq,bv,aQ,bH=false,cy=0,bB=["id","ses","cvar","ref"],cK=false,bJ=null,cV=[],cA=[],aB=X++,aA=false,c8=true;
+try{bp=J.title}catch(cI){bp=""}function aH(dy){if(bs){return 0}var dw=new RegExp("(^|;)[ ]*"+dy+"=([^;]*)"),dx=dw.exec(J.cookie);return dx?V(dx[2]):0}bJ=!aH(cW);function dr(dA,dB,dE,dD,dy,dz,dC){if(bs&&dA!==cW){return}var dx;if(dE){dx=new Date();dx.setTime(dx.getTime()+dE)}if(!dC){dC="Lax"}J.cookie=dA+"="+t(dB)+(dE?";expires="+dx.toGMTString():"")+";path="+(dD||"/")+(dy?";domain="+dy:"")+(dz?";secure":"")+";SameSite="+dC;if((!dE||dE>=0)&&aH(dA)!==String(dB)){var dw="There was an error setting cookie `"+dA+"`. Please check domain and path.";ao(dw)}}function b8(dw){var dy,dx;dw=j(dw,az);for(dx=0;dx<co.length;dx++){dw=j(dw,co[dx])}if(bV){dy=new RegExp("#.*");return dw.replace(dy,"")}return dw}function b1(dy,dw){var dz=s(dw),dx;if(dz){return dw}if(dw.slice(0,1)==="/"){return s(dy)+"://"+d(dy)+dw}dy=b8(dy);dx=dy.indexOf("?");if(dx>=0){dy=dy.slice(0,dx)}dx=dy.lastIndexOf("/");if(dx!==dy.length-1){dy=dy.slice(0,dx+1)}return dy+dw}function cR(dy,dw){var dx;dy=String(dy).toLowerCase();dw=String(dw).toLowerCase();
+if(dy===dw){return true}if(dw.slice(0,1)==="."){if(dy===dw.slice(1)){return true}dx=dy.length-dw.length;if((dx>0)&&(dy.slice(dx)===dw)){return true}}return false}function cr(dw){var dx=document.createElement("a");if(dw.indexOf("//")!==0&&dw.indexOf("http")!==0){if(dw.indexOf("*")===0){dw=dw.substr(1)}if(dw.indexOf(".")===0){dw=dw.substr(1)}dw="http://"+dw}dx.href=w.toAbsoluteUrl(dw);if(dx.pathname){return dx.pathname}return""}function a9(dx,dw){if(!an(dw,"/")){dw="/"+dw}if(!an(dx,"/")){dx="/"+dx}var dy=(dw==="/"||dw==="/*");if(dy){return true}if(dx===dw){return true}dw=String(dw).toLowerCase();dx=String(dx).toLowerCase();if(U(dw,"*")){dw=dw.slice(0,-1);dy=(!dw||dw==="/");if(dy){return true}if(dx===dw){return true}return dx.indexOf(dw)===0}if(!U(dx,"/")){dx+="/"}if(!U(dw,"/")){dw+="/"}return dx.indexOf(dw)===0}function aw(dA,dC){var dx,dw,dy,dz,dB;for(dx=0;dx<aC.length;dx++){dz=O(aC[dx]);dB=cr(aC[dx]);if(cR(dA,dz)&&a9(dC,dB)){return true}}return false}function a1(dz){var dx,dw,dy;for(dx=0;
+dx<aC.length;dx++){dw=O(aC[dx].toLowerCase());if(dz===dw){return true}if(dw.slice(0,1)==="."){if(dz===dw.slice(1)){return true}dy=dz.length-dw.length;if((dy>0)&&(dz.slice(dy)===dw)){return true}}}return false}function cx(dw){var dx,dz,dB,dy,dA;if(!dw.length||!cG.length){return false}dz=d(dw);dB=cr(dw);if(dz.indexOf("www.")===0){dz=dz.substr(4)}for(dx=0;dx<cG.length;dx++){dy=O(cG[dx]);dA=cr(cG[dx]);if(dy.indexOf("www.")===0){dy=dy.substr(4)}if(cR(dz,dy)&&a9(dB,dA)){return true}}return false}function cv(dw,dy){dw=dw.replace("send_image=0","send_image=1");var dx=new Image(1,1);dx.onload=function(){H=0;if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:true})}};dx.onerror=function(){if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:false})}};dx.src=aI+(aI.indexOf("?")<0?"?":"&")+dw}function cO(dw){if(dm==="POST"){return true}return dw&&(dw.length>2000||dw.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob
+}function bc(dA,dD,dC){var dy=aP();if(!dy){return false}var dz={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dE=false;var dx=aI;try{var dw=new Blob([dA],dz);if(dC&&!cO(dA)){dw=new Blob([],dz);dx=dx+(dx.indexOf("?")<0?"?":"&")+dA}dE=g.sendBeacon(dx,dw)}catch(dB){return false}if(dE&&typeof dD==="function"){dD({request:dA,trackerUrl:aI,success:true,isSendBeacon:true})}return dE}function dg(dx,dy,dw){if(!M(dw)||null===dw){dw=true}if(m&&bc(dx,dy,dw)){return}setTimeout(function(){if(m&&bc(dx,dy,dw)){return}var dB;try{var dA=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dA.open("POST",aI,true);dA.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dC=m&&bc(dx,dy,dw);if(!dC&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dy==="function")){dy({request:dx,trackerUrl:aI,success:true,xhr:this})}}};
+dA.setRequestHeader("Content-Type",cF);dA.withCredentials=true;dA.send(dx)}catch(dz){dB=m&&bc(dx,dy,dw);if(!dB&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false})}}}},50)}function cl(dx){var dw=new Date();var dy=dw.getTime()+dx;if(!r||dy>r){r=dy}}function bg(){bi=true;cH=new Date().getTime()}function dq(){var dw=new Date().getTime();return !cH||(dw-cH)>bb}function aD(){if(dq()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dq()){bX()}else{if(J.visibilityState==="visible"){cH=new Date().getTime()}}}function dt(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dq()){bX()}}})}function cM(dA){var dx=new Date();var dw=dx.getTime();da=dw;if(cL&&dw<cL){var dy=cL-dw;setTimeout(dA,dy);cl(dy+50);cL+=50;return}if(cL===false){var dz=800;cL=dw+dz}dA()}function aT(){if(aH(cW)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dx,dw,dy){aT();if(!bJ){cV.push(dx);
+return}aA=true;if(!c0&&dx){if(cK&&bJ){dx+="&consent=1"}cM(function(){if(c7&&bc(dx,dy,true)){cl(100);return}if(cO(dx)){dg(dx,dy)}else{cv(dx,dy)}cl(dw)})}if(!aS){dt()}}function cq(dw){if(c0){return false}return(dw&&dw.length)}function df(dw,dA){if(!dA||dA>=dw.length){return[dw]}var dx=0;var dy=dw.length;var dz=[];for(dx;dx<dy;dx+=dA){dz.push(dw.slice(dx,dx+dA))}return dz}function ds(dx,dw){if(!cq(dx)){return}if(!bJ){cV.push(dx);return}aA=true;cM(function(){var dA=df(dx,50);var dy=0,dz;for(dy;dy<dA.length;dy++){dz='{"requests":["?'+dA[dy].join('","?')+'"],"send_image":0}';if(c7&&bc(dz,null,false)){cl(100)}else{dg(dz,null,false)}}cl(dw)})}function aY(dw){return bq+dw+"."+cc+"."+bv}function b5(dy,dx,dw){dr(dy,"",-129600000,dx,dw)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var dw=bq+"testcookie";dr(dw,"1",undefined,bw,c9,bY,aN);var dx=aH(dw)==="1"?"1":"0";b5(dw);return dx}function bo(){bv=cd((c9||c4)+(bw||"/")).slice(0,4)}function cS(){if(!c8){return{}
+}if(M(dj.res)){return dj}var dx,dz,dA={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dx in dA){if(Object.prototype.hasOwnProperty.call(dA,dx)){dz=g.mimeTypes[dA[dx]];dj[dx]=(dz&&dz.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dj.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dj.cookie=g.cookieEnabled?"1":"0"}else{dj.cookie=cb()}}var dy=parseInt(ab.width,10);var dw=parseInt(ab.height,10);dj.res=parseInt(dy,10)+"x"+parseInt(dw,10);return dj}function b3(){var dx=aY("cvar"),dw=aH(dx);if(dw&&dw.length){dw=W.JSON.parse(dw);if(Z(dw)){return dw}}return{}}function cP(){if(aV===false){aV=b3()}}function c1(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)+(new Date()).getTime()+Math.random()).slice(0,16)
+}function aF(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dx=bl();var dy=aF();var dw=String(dx)+dy;return dw}function de(dy){dy=String(dy);var dB=aF();var dz=dB.length;var dA=dy.substr(-1*dz,dz);var dx=parseInt(dy.substr(0,dy.length-dz),10);if(dx&&dA&&dA===dB){var dw=bl();if(a5<=0){return true}if(dw>=dx&&dw<=(dx+a5)){return true}}return false}function du(dw){if(!cX){return""}var dA=e(dw,az);if(!dA){return""}dA=String(dA);var dy=new RegExp("^[a-zA-Z0-9]+$");if(dA.length===32&&dy.test(dA)){var dx=dA.substr(16,32);if(de(dx)){var dz=dA.substr(0,16);return dz}}return""}function cY(){if(!bU){bU=du(bT)}var dy=new Date(),dw=Math.round(dy.getTime()/1000),dx=aY("id"),dB=aH(dx),dA,dz;if(dB){dA=dB.split(".");dA.unshift("0");if(bU.length){dA[1]=bU}return dA}if(bU.length){dz=bU}else{if("0"===cb()){dz=""}else{dz=c1()}}dA=["1",dz,dw];return dA}function a4(){var dz=cY(),dx=dz[0],dy=dz[1],dw=dz[2];
+return{newVisitor:dx,uuid:dy,createTs:dw}}function aL(){var dz=new Date(),dx=dz.getTime(),dA=a4().createTs;var dw=parseInt(dA,10);var dy=(dw*1000)+cU-dx;return dy}function aR(dw){if(!cc){return}var dy=new Date(),dx=Math.round(dy.getTime()/1000);if(!M(dw)){dw=a4()}var dz=dw.uuid+"."+dw.createTs+".";dr(aY("id"),dz,aL(),bw,c9,bY,aN)}function bS(){var dw=aH(aY("ref"));if(dw.length){try{dw=W.JSON.parse(dw);if(Z(dw)){return dw}}catch(dx){}}return["","",0,""]}function bD(dy){var dx=bq+"testcookie_domain";var dw="testvalue";dr(dx,dw,10000,null,dy,bY,aN);if(aH(dx)===dw){b5(dx,null,dy);return true}return false}function aJ(){var dx=bs;bs=false;var dw,dy;for(dw=0;dw<bB.length;dw++){dy=aY(bB[dw]);if(dy!==cW&&dy!==bj&&0!==aH(dy)){b5(dy,bw,c9)}}bs=dx}function b9(dw){cc=dw}function dv(dA){if(!dA||!Z(dA)){return}var dz=[];var dy;for(dy in dA){if(Object.prototype.hasOwnProperty.call(dA,dy)){dz.push(dy)}}var dB={};dz.sort();var dw=dz.length;var dx;for(dx=0;dx<dw;dx++){dB[dz[dx]]=dA[dz[dx]]}return dB}function ci(){dr(aY("ses"),"1",cu,bw,c9,bY,aN)
+}function bm(){var dz="";var dx="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dy=dx.length;var dw;for(dw=0;dw<6;dw++){dz+=dx.charAt(Math.floor(Math.random()*dy))}return dz}function aE(dx){if(ct!==""){dx+=ct;bn=true;return dx}if(!h){return dx}var dy=(typeof h.timing==="object")&&h.timing?h.timing:undefined;if(!dy){dy=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dy){return dx}var dw="";if(dy.connectEnd&&dy.fetchStart){if(dy.connectEnd<dy.fetchStart){return dx}dw+="&pf_net="+Math.round(dy.connectEnd-dy.fetchStart)}if(dy.responseStart&&dy.requestStart){if(dy.responseStart<dy.requestStart){return dx}dw+="&pf_srv="+Math.round(dy.responseStart-dy.requestStart)}if(dy.responseStart&&dy.responseEnd){if(dy.responseEnd<dy.responseStart){return dx}dw+="&pf_tfr="+Math.round(dy.responseEnd-dy.responseStart)}if(M(dy.domLoading)){if(dy.domInteractive&&dy.domLoading){if(dy.domInteractive<dy.domLoading){return dx
+}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.domLoading)}}else{if(dy.domInteractive&&dy.responseEnd){if(dy.domInteractive<dy.responseEnd){return dx}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.responseEnd)}}if(dy.domComplete&&dy.domInteractive){if(dy.domComplete<dy.domInteractive){return dx}dw+="&pf_dm2="+Math.round(dy.domComplete-dy.domInteractive)}if(dy.loadEventEnd&&dy.loadEventStart){if(dy.loadEventEnd<dy.loadEventStart){return dx}dw+="&pf_onl="+Math.round(dy.loadEventEnd-dy.loadEventStart)}return dx+dw}function dl(){var dG,dz=new Date(),dA=Math.round(dz.getTime()/1000),dL,dy,dB=1024,dI,dC,dx=aY("ses"),dF=aY("ref"),dE=aH(dx),dw=bS(),dK=ba||bT,dH,dD,dJ={};dH=dw[0];dD=dw[1];dL=dw[2];dy=dw[3];if(!dE){if(!bC||!dH.length){for(dG in cw){if(Object.prototype.hasOwnProperty.call(cw,dG)){dH=e(dK,cw[dG]);if(dH.length){break}}}for(dG in bN){if(Object.prototype.hasOwnProperty.call(bN,dG)){dD=e(dK,bN[dG]);if(dD.length){break}}}}dI=d(bu);dC=dy.length?d(dy):"";if(dI.length&&!a1(dI)&&!cx(bu)&&(!bC||!dC.length||a1(dC)||cx(dy))){dy=bu
+}if(dy.length||dH.length){dL=dA;dw=[dH,dD,dL,b8(dy.slice(0,dB))];dr(dF,W.JSON.stringify(dw),dh,bw,c9,bY,aN)}}if(dH.length){dJ._rcn=t(dH)}if(dD.length){dJ._rck=t(dD)}dJ._refts=dL;if(String(dy).length){dJ._ref=t(b8(dy.slice(0,dB)))}return dJ}function cz(dx,dI,dJ){var dH,dw=new Date(),dG=aV,dC=aY("cvar"),dK=ba||bT;if(bs){aJ()}if(c0){return""}var dD=a4();var dA=J.characterSet||J.charset;if(!dA||dA.toLowerCase()==="utf-8"){dA=null}dx+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dw.getHours()+"&m="+dw.getMinutes()+"&s="+dw.getSeconds()+"&url="+t(b8(dK))+(bu.length&&!cx(bu)?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dD.uuid+"&_idn="+dD.newVisitor+(dA?"&cs="+t(dA):"")+"&send_image=0";var dF=dl();for(dH in dF){if(Object.prototype.hasOwnProperty.call(dF,dH)){dx+="&"+dH+"="+dF[dH]}}var dM=cS();for(dH in dM){if(Object.prototype.hasOwnProperty.call(dM,dH)){dx+="&"+dH+"="+dM[dH]}}var dN=[];if(dI){for(dH in dI){if(Object.prototype.hasOwnProperty.call(dI,dH)&&/^dimension\d+$/.test(dH)){var dy=dH.replace("dimension","");
+dN.push(parseInt(dy,10));dN.push(String(dy));dx+="&"+dH+"="+t(dI[dH]);delete dI[dH]}}}if(dI&&D(dI)){dI=null}for(dH in cB){if(Object.prototype.hasOwnProperty.call(cB,dH)){dx+="&"+dH+"="+t(cB[dH])}}for(dH in bt){if(Object.prototype.hasOwnProperty.call(bt,dH)){var dB=(-1===P(dN,dH));if(dB){dx+="&dimension"+dH+"="+t(bt[dH])}}}if(dI){dx+="&data="+t(W.JSON.stringify(dI))}else{if(at){dx+="&data="+t(W.JSON.stringify(at))}}function dz(dO,dP){var dQ=W.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dL=dv(b2);var dE=dv(cs);dx+=dz(dL,"cvar");dx+=dz(dE,"e_cvar");if(aV){dx+=dz(aV,"_cvar");for(dH in dG){if(Object.prototype.hasOwnProperty.call(dG,dH)){if(aV[dH][0]===""||aV[dH][1]===""){delete aV[dH]}}}if(bW){dr(dC,W.JSON.stringify(aV),cu,bw,c9,bY,aN)}}if(a8&&bL&&!bn){dx=aE(dx);bn=true}if(aQ){dx+="&pv_id="+aQ}aR(dD);ci();dx+=ag(dJ,{tracker:bP,request:dx});if(db.length){dx+="&"+db}if(C(ch)){dx=ch(dx)}return dx}bX=function bd(){var dw=new Date();dw=dw.getTime();if(!da){return false}if(da+bb<=dw){bP.ping();
+return true}return false};function bx(dz,dy,dD,dA,dw,dG){var dC="idgoal=0",dx=new Date(),dE=[],dF,dB=String(dz).length;if(dB){dC+="&ec_id="+t(dz)}dC+="&revenue="+dy;if(String(dD).length){dC+="&ec_st="+dD}if(String(dA).length){dC+="&ec_tx="+dA}if(String(dw).length){dC+="&ec_sh="+dw}if(String(dG).length){dC+="&ec_dt="+dG}if(dc){for(dF in dc){if(Object.prototype.hasOwnProperty.call(dc,dF)){if(!M(dc[dF][1])){dc[dF][1]=""}if(!M(dc[dF][2])){dc[dF][2]=""}if(!M(dc[dF][3])||String(dc[dF][3]).length===0){dc[dF][3]=0}if(!M(dc[dF][4])||String(dc[dF][4]).length===0){dc[dF][4]=1}dE.push(dc[dF])}}dC+="&ec_items="+t(W.JSON.stringify(dE))}dC=cz(dC,at,"ecommerce");bM(dC,bQ);if(dB){dc={}}}function b4(dw,dA,dz,dy,dx,dB){if(String(dw).length&&M(dA)){bx(dw,dA,dz,dy,dx,dB)}}function bz(dw){if(M(dw)){bx("",dw,"","","","")}}function b6(dx,dz,dy){if(!bH){aQ=bm()}var dw=cz("action_name="+t(ap(dx||bp)),dz,"log");if(a8&&!bn){dw=aE(dw)}bM(dw,bQ,dy)}function a6(dy,dx){var dz,dw="(^| )(piwik[_-]"+dx+"|matomo[_-]"+dx;if(dy){for(dz=0;
+dz<dy.length;dz++){dw+="|"+dy[dz]}}dw+=")( |$)";return new RegExp(dw)}function aZ(dw){return(aI&&dw&&0===String(dw).indexOf(aI))}function cD(dA,dw,dB,dx){if(aZ(dw)){return 0}var dz=a6(bR,"download"),dy=a6(be,"link"),dC=new RegExp("\\.("+di.join("|")+")([?&#]|$)","i");if(dy.test(dA)){return"link"}if(dx||dz.test(dA)||dC.test(dw)){return"download"}if(dB){return 0}return"link"}function ay(dx){var dw;dw=dx.parentNode;while(dw!==null&&M(dw)){if(ai.isLinkElement(dx)){break}dx=dw;dw=dx.parentNode}return dx}function dp(dB){dB=ay(dB);if(!ai.hasNodeAttribute(dB,"href")){return}if(!M(dB.href)){return}var dA=ai.getAttributeValueFromNode(dB,"href");var dx=dB.pathname||cr(dB.href);var dC=dB.hostname||d(dB.href);var dD=dC.toLowerCase();var dy=dB.href.replace(dC,dD);var dz=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dz.test(dy)){var dw=cD(dB.className,dy,aw(dD,dx),ai.hasNodeAttribute(dB,"download"));if(dw){return{type:dw,href:dy}}}}function aU(dw,dx,dy,dz){var dA=w.buildInteractionRequestParams(dw,dx,dy,dz);
+if(!dA){return}return cz(dA,null,"contentInteraction")}function bh(dw,dx){if(!dw||!dx){return false}var dy=w.findTargetNode(dw);if(w.shouldIgnoreInteraction(dy)){return false}dy=w.findTargetNodeNoDefault(dw);if(dy&&!Y(dy,dx)){return false}return true}function cC(dy,dx,dA){if(!dy){return}var dw=w.findParentContentNode(dy);if(!dw){return}if(!bh(dw,dy)){return}var dz=w.buildContentBlock(dw);if(!dz){return}if(!dz.target&&dA){dz.target=dA}return w.buildInteractionRequestParams(dx,dz.name,dz.piece,dz.target)}function a2(dx){if(!cg||!cg.length){return false}var dw,dy;for(dw=0;dw<cg.length;dw++){dy=cg[dw];if(dy&&dy.name===dx.name&&dy.piece===dx.piece&&dy.target===dx.target){return true}}return false}function a3(dw){return function(dA){if(!dw){return}var dy=w.findParentContentNode(dw);var dx;if(dA){dx=dA.target||dA.srcElement}if(!dx){dx=dw}if(!bh(dy,dx)){return}if(!dy){return false}var dB=w.findTargetNode(dy);if(!dB||w.shouldIgnoreInteraction(dB)){return false}var dz=dp(dB);if(dk&&dz&&dz.type){return dz.type
+}return bP.trackContentInteractionNode(dx,"click")}}function b7(dy){if(!dy||!dy.length){return}var dw,dx;for(dw=0;dw<dy.length;dw++){dx=w.findTargetNode(dy[dw]);if(dx&&!dx.contentInteractionTrackingSetupDone){dx.contentInteractionTrackingSetupDone=true;ar(dx,"click",a3(dx))}}}function bE(dy,dz){if(!dy||!dy.length){return[]}var dw,dx;for(dw=0;dw<dy.length;dw++){if(a2(dy[dw])){dy.splice(dw,1);dw--}else{cg.push(dy[dw])}}if(!dy||!dy.length){return[]}b7(dz);var dA=[];for(dw=0;dw<dy.length;dw++){dx=cz(w.buildImpressionRequestParams(dy[dw].name,dy[dw].piece,dy[dw].target),undefined,"contentImpressions");if(dx){dA.push(dx)}}return dA}function cJ(dx){var dw=w.collectContent(dx);return bE(dw,dx)}function bf(dx){if(!dx||!dx.length){return[]}var dw;for(dw=0;dw<dx.length;dw++){if(!w.isNodeVisible(dx[dw])){dx.splice(dw,1);dw--}}if(!dx||!dx.length){return[]}return cJ(dx)}function aK(dy,dw,dx){var dz=w.buildImpressionRequestParams(dy,dw,dx);return cz(dz,null,"contentImpression")}function dn(dz,dx){if(!dz){return
+}var dw=w.findParentContentNode(dz);var dy=w.buildContentBlock(dw);if(!dy){return}if(!dx){dx="Unknown"}return aU(dx,dy.name,dy.piece,dy.target)}function cZ(dx,dz,dw,dy){return"e_c="+t(dx)+"&e_a="+t(dz)+(M(dw)?"&e_n="+t(dw):"")+(M(dy)?"&e_v="+t(dy):"")+"&ca=1"}function ax(dy,dA,dw,dz,dC,dB){if(!ac(dy)||!ac(dA)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dx=cz(cZ(dy,dA,dw,dz),dC,"event");bM(dx,bQ,dB)}function ce(dw,dz,dx,dA){var dy=cz("search="+t(dw)+(dz?"&search_cat="+t(dz):"")+(M(dx)?"&search_count="+dx:""),dA,"sitesearch");bM(dy,bQ)}function c3(dw,dA,dz,dy){var dx=cz("idgoal="+dw+(dA?"&revenue="+dA:""),dz,"goal");bM(dx,bQ,dy)}function dd(dz,dw,dD,dC,dy){var dB=dw+"="+t(b8(dz));var dx=cC(dy,"click",dz);if(dx){dB+="&"+dx}var dA=cz(dB,dD,"link");bM(dA,bQ,dC)}function b0(dx,dw){if(dx!==""){return dx+dw.charAt(0).toUpperCase()+dw.slice(1)}return dw}function cm(dB){var dA,dw,dz=["","webkit","ms","moz"],dy;
+if(!bk){for(dw=0;dw<dz.length;dw++){dy=dz[dw];if(Object.prototype.hasOwnProperty.call(J,b0(dy,"hidden"))){if(J[b0(dy,"visibilityState")]==="prerender"){dA=true}break}}}if(dA){ar(J,dy+"visibilitychange",function dx(){J.removeEventListener(dy+"visibilitychange",dx,false);dB()});return}dB()}function by(){var dx=bP.getVisitorId();var dw=aO();return dx+dw}function cp(dw){if(!dw){return}if(!ai.hasNodeAttribute(dw,"href")){return}var dx=ai.getAttributeValueFromNode(dw,"href");if(!dx||aZ(dx)){return}if(!bP.getVisitorId()){return}dx=j(dx,az);var dy=by();dx=I(dx,az,dy);ai.setAnyAttribute(dw,"href",dx)}function br(dz){var dA=ai.getAttributeValueFromNode(dz,"href");if(!dA){return false}dA=String(dA);var dx=dA.indexOf("//")===0||dA.indexOf("http://")===0||dA.indexOf("https://")===0;if(!dx){return false}var dw=dz.pathname||cr(dz.href);var dy=(dz.hostname||d(dz.href)).toLowerCase();if(aw(dy,dw)){if(!cR(c4,O(dy))){return true}return false}return false}function cQ(dw){var dx=dp(dw);if(dx&&dx.type){dx.href=p(dx.href);
+dd(dx.href,dx.type,undefined,null,dw);return}if(cX){dw=ay(dw);if(br(dw)){cp(dw)}}}function cE(){return J.all&&!J.addEventListener}function c5(dw){var dy=dw.which;var dx=(typeof dw.button);if(!dy&&dx!=="undefined"){if(cE()){if(dw.button&1){dy=1}else{if(dw.button&2){dy=3}else{if(dw.button&4){dy=2}}}}else{if(dw.button===0||dw.button==="0"){dy=1}else{if(dw.button&1){dy=2}else{if(dw.button&2){dy=3}}}}}return dy}function bZ(dw){switch(c5(dw)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a7(dw){return dw.target||dw.srcElement}function c6(dw){return dw==="A"||dw==="AREA"}function aG(dw){function dx(dz){var dA=a7(dz);var dB=dA.nodeName;var dy=a6(bG,"ignore");while(!c6(dB)&&dA&&dA.parentNode){dA=dA.parentNode;dB=dA.nodeName}if(dA&&c6(dB)&&!dy.test(dA.className)){return dA}}return function(dA){dA=dA||W.event;var dB=dx(dA);if(!dB){return}var dz=bZ(dA);if(dA.type==="click"){var dy=false;if(dw&&dz==="middle"){dy=true}if(dB&&!dy){cQ(dB)}}else{if(dA.type==="mousedown"){if(dz==="middle"&&dB){aW=dz;
+bI=dB}else{aW=bI=null}}else{if(dA.type==="mouseup"){if(dz===aW&&dB===bI){cQ(dB)}aW=bI=null}else{if(dA.type==="contextmenu"){cQ(dB)}}}}}}function av(dz,dy,dw){var dx=typeof dy;if(dx==="undefined"){dy=true}ar(dz,"click",aG(dy),dw);if(dy){ar(dz,"mouseup",aG(dy),dw);ar(dz,"mousedown",aG(dy),dw);ar(dz,"contextmenu",aG(dy),dw)}}function aX(dx,dA,dB){if(ck){return true}ck=true;var dC=false;var dz,dy;function dw(){dC=true}n(function(){function dD(dF){setTimeout(function(){if(!ck){return}dC=false;dB.trackVisibleContentImpressions();dD(dF)},dF)}function dE(dF){setTimeout(function(){if(!ck){return}if(dC){dC=false;dB.trackVisibleContentImpressions()}dE(dF)},dF)}if(dx){dz=["scroll","resize"];for(dy=0;dy<dz.length;dy++){if(J.addEventListener){J.addEventListener(dz[dy],dw,false)}else{W.attachEvent("on"+dz[dy],dw)}}dE(100)}if(dA&&dA>0){dA=parseInt(dA,10);dD(dA)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dw=this.requests;this.requests=[];if(dw.length===1){bM(dw[0],bQ)
+}else{ds(dw,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dx){if(!this.canQueue()){ds(dx,bQ);return}var dw;for(dw=0;dw<dx.length;dw++){this.push(dx[dw])}},push:function(dw){if(!dw){return}if(!this.canQueue()){bM(dw,bQ);return}bK.requests.push(dw);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dx="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dx)){b[dx]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cY()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]
+};this.setTrackerUrl=function(dw){aI=dw};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dy,dx){if(!M(dy)||null===dy){dy=this.getTrackerUrl()}var dw=new T(dy,dx);L.push(dw);u.trigger("TrackerAdded",[this]);return dw};this.getSiteId=function(){return cc};this.setSiteId=function(dw){b9(dw)};this.resetUserId=function(){bF=""};this.setUserId=function(dw){if(ac(dw)){bF=dw}};this.setVisitorId=function(dx){var dw=/[0-9A-Fa-f]{16}/g;if(x(dx)&&dw.test(dx)){bU=dx}else{ao("Invalid visitorId set"+dx)}};this.getUserId=function(){return bF};this.setCustomData=function(dw,dx){if(Z(dw)){at=dw}else{if(!at){at={}}at[dw]=dx}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(dw){ch=dw};this.appendToTrackingUrl=function(dw){db=dw};this.getRequest=function(dw){return cz(dw)};this.addPlugin=function(dw,dx){b[dw]=dx};this.setCustomDimension=function(dw,dx){dw=parseInt(dw,10);
+if(dw>0){if(!M(dx)){dx=""}if(!x(dx)){dx=String(dx)}bt[dw]=dx}};this.getCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0&&Object.prototype.hasOwnProperty.call(bt,dw)){return bt[dw]}};this.deleteCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0){delete bt[dw]}};this.setCustomVariable=function(dx,dw,dA,dy){var dz;if(!M(dy)){dy="visit"}if(!M(dw)){return}if(!M(dA)){dA=""}if(dx>0){dw=!x(dw)?String(dw):dw;dA=!x(dA)?String(dA):dA;dz=[dw.slice(0,bA),dA.slice(0,bA)];if(dy==="visit"||dy===2){cP();aV[dx]=dz}else{if(dy==="page"||dy===3){b2[dx]=dz}else{if(dy==="event"){cs[dx]=dz}}}}};this.getCustomVariable=function(dx,dy){var dw;if(!M(dy)){dy="visit"}if(dy==="page"||dy===3){dw=b2[dx]}else{if(dy==="event"){dw=cs[dx]}else{if(dy==="visit"||dy===2){cP();dw=aV[dx]}}}if(!M(dw)||(dw&&dw[0]==="")){return false}return dw};this.deleteCustomVariable=function(dw,dx){if(this.getCustomVariable(dw,dx)){this.setCustomVariable(dw,"","",dx)}};this.deleteCustomVariables=function(dw){if(dw==="page"||dw===3){b2={}
+}else{if(dw==="event"){cs={}}else{if(dw==="visit"||dw===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dw){bQ=dw};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dw){if(x(dw)){dw=dw.split("|")}di=dw};this.addDownloadExtensions=function(dx){var dw;if(x(dx)){dx=dx.split("|")}for(dw=0;dw<dx.length;dw++){di.push(dx[dw])}};this.removeDownloadExtensions=function(dy){var dx,dw=[];if(x(dy)){dy=dy.split("|")}for(dx=0;dx<di.length;dx++){if(P(dy,di[dx])===-1){dw.push(di[dx])}}di=dw};this.setDomains=function(dw){aC=x(dw)?[dw]:dw;var dA=false,dy=0,dx;for(dy;dy<aC.length;dy++){dx=String(aC[dy]);if(cR(c4,O(dx))){dA=true;break}var dz=cr(dx);if(dz&&dz!=="/"&&dz!=="/*"){dA=true;break}}if(!dA){aC.push(c4)}};this.setExcludedReferrers=function(dw){cG=x(dw)?[dw]:dw};this.enableCrossDomainLinking=function(){cX=true};this.disableCrossDomainLinking=function(){cX=false};this.isCrossDomainLinkingEnabled=function(){return cX
+};this.setCrossDomainLinkingTimeout=function(dw){a5=dw};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(dw){bG=x(dw)?[dw]:dw};this.setRequestMethod=function(dw){if(dw){dm=String(dw).toUpperCase()}else{dm=cn}if(dm==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(dw){cF=dw||aM};this.setGenerationTimeMs=function(dw){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dA,dC,dB,dx,dD,dy){var dz={pf_net:dA,pf_srv:dC,pf_tfr:dB,pf_dm1:dx,pf_dm2:dD,pf_onl:dy};try{dz=Q(dz,M);dz=B(dz);ct=l(dz);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(dw){ao("setPagePerformanceTiming: "+dw.toString())}};this.setReferrerUrl=function(dw){bu=dw};this.setCustomUrl=function(dw){ba=b1(bT,dw)
+};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(dw){bp=dw};this.setPageViewId=function(dw){aQ=dw;bH=true};this.setAPIUrl=function(dw){bO=dw};this.setDownloadClasses=function(dw){bR=x(dw)?[dw]:dw};this.setLinkClasses=function(dw){be=x(dw)?[dw]:dw};this.setCampaignNameKey=function(dw){cw=x(dw)?[dw]:dw};this.setCampaignKeywordKey=function(dw){bN=x(dw)?[dw]:dw};this.discardHashTag=function(dw){bV=dw};this.setCookieNamePrefix=function(dw){bq=dw;if(aV){aV=b3()}};this.setCookieDomain=function(dw){var dx=O(dw);if(!bs&&!bD(dx)){ao("Can't write cookie on domain "+dw)}else{c9=dx;bo()}};this.setExcludedQueryParams=function(dw){co=x(dw)?[dw]:dw};this.getCookieDomain=function(){return c9};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dy,dx,dw){if(!dy){throw new Error("Missing cookie name")}if(!M(dw)){dw=cu}bB.push(dy);dr(aY(dy),dx,dw,bw,c9,bY,aN)};this.getCookie=function(dx){var dw=aH(aY(dx));if(dw===0){return null}return dw};this.setCookiePath=function(dw){bw=dw;
+bo()};this.getCookiePath=function(dw){return bw};this.setVisitorCookieTimeout=function(dw){cU=dw*1000};this.setSessionCookieTimeout=function(dw){cu=dw*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(dw){dh=dw*1000};this.setConversionAttributionFirstReferrer=function(dw){bC=dw};this.setSecureCookie=function(dw){if(dw&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=dw};this.setCookieSameSite=function(dw){dw=String(dw);dw=dw.charAt(0).toUpperCase()+dw.toLowerCase().slice(1);if(dw!=="None"&&dw!=="Lax"&&dw!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");return}if(dw==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");dw="Lax"}}aN=dw};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!c0){bs=false;
+c8=true;if(cc&&aA){aR();var dw=cz("ping=1",null,"ping");bM(dw,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cN)};this.forgetCookieConsentGiven=function(){b5(cN,bw,c9);this.disableCookies()};this.rememberCookieConsentGiven=function(dx){if(dx){dx=dx*60*60*1000}else{dx=30*365*24*60*60*1000}this.setCookieConsentGiven();var dw=new Date().getTime();dr(cN,dw,dx,bw,c9,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dx){var dw=g.doNotTrack||g.msDoNotTrack;c0=dx&&(dw==="yes"||dw==="1");if(c0){this.disableCookies()}};this.alwaysUseSendBeacon=function(){c7=true};this.disableAlwaysUseSendBeacon=function(){c7=false};this.addListener=function(dx,dw){av(dx,dw,false)};this.enableLinkTracking=function(dx){if(dk){return}dk=true;var dw=this;q(function(){au=true;var dy=J.body;av(dy,dx,true)})};this.enableJSErrorTracking=function(){if(c2){return}c2=true;
+var dw=W.onerror;W.onerror=function(dB,dz,dy,dA,dx){cm(function(){var dC="JavaScript Errors";var dD=dz+":"+dy;if(dA){dD+=":"+dA}if(P(cA,dC+dD+dB)===-1){cA.push(dC+dD+dB);ax(dC,dD,dB)}});if(dw){return dw(dB,dz,dy,dA,dx)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(dw){dw=Math.max(dw||15,5);bb=dw*1000;if(da!==null){dt()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(dw){if(W.location.protocol==="file:"){W.location=dw}};this.setCountPreRendered=function(dw){bk=dw};this.trackGoal=function(dw,dz,dy,dx){cm(function(){c3(dw,dz,dy,dx)})};this.trackLink=function(dx,dw,dz,dy){cm(function(){dd(dx,dw,dz,dy)
+})};this.getNumTrackedPageViews=function(){return cy};this.trackPageView=function(dw,dy,dx){cg=[];cV=[];cA=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cy++;b6(dw,dy,dx)})}};this.disableBrowserFeatureDetection=function(){c8=false};this.enableBrowserFeatureDetection=function(){c8=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var dw=w.findContentNodes();var dx=cJ(dw);bK.pushMultiple(dx)})})};this.trackVisibleContentImpressions=function(dw,dx){if(R(cc)){return}if(!M(dw)){dw=true}if(!M(dx)){dx=750}aX(dw,dx,this);cm(function(){n(function(){var dy=w.findContentNodes();var dz=bf(dy);bK.pushMultiple(dz)})})};this.trackContentImpression=function(dy,dw,dx){if(R(cc)){return}dy=a(dy);dw=a(dw);dx=a(dx);if(!dy){return}dw=dw||"Unknown";cm(function(){var dz=aK(dy,dw,dx);bK.push(dz)})};this.trackContentImpressionsWithinNode=function(dw){if(R(cc)||!dw){return}cm(function(){if(ck){n(function(){var dx=w.findContentNodesWithinNode(dw);var dy=bf(dx);
+bK.pushMultiple(dy)})}else{q(function(){var dx=w.findContentNodesWithinNode(dw);var dy=cJ(dx);bK.pushMultiple(dy)})}})};this.trackContentInteraction=function(dy,dz,dw,dx){if(R(cc)){return}dy=a(dy);dz=a(dz);dw=a(dw);dx=a(dx);if(!dy||!dz){return}dw=dw||"Unknown";cm(function(){var dA=aU(dy,dz,dw,dx);if(dA){bK.push(dA)}})};this.trackContentInteractionNode=function(dy,dx){if(R(cc)||!dy){return}var dw=null;cm(function(){dw=dn(dy,dx);if(dw){bK.push(dw)}});return dw};this.logAllContentBlocksOnPage=function(){var dy=w.findContentNodes();var dw=w.collectContent(dy);var dx=typeof console;if(dx!=="undefined"&&console&&console.log){console.log(dw)}};this.trackEvent=function(dx,dz,dw,dy,dB,dA){cm(function(){ax(dx,dz,dw,dy,dB,dA)})};this.trackSiteSearch=function(dw,dy,dx,dz){cg=[];cm(function(){ce(dw,dy,dx,dz)})};this.setEcommerceView=function(dA,dw,dy,dx){cB={};if(ac(dy)){dy=String(dy)}if(!M(dy)||dy===null||dy===false||!dy.length){dy=""}else{if(dy instanceof Array){dy=W.JSON.stringify(dy)}}var dz="_pkc";
+cB[dz]=dy;if(M(dx)&&dx!==null&&dx!==false&&String(dx).length){dz="_pkp";cB[dz]=dx}if(!ac(dA)&&!ac(dw)){return}if(ac(dA)){dz="_pks";cB[dz]=dA}if(!ac(dw)){dw=""}dz="_pkn";cB[dz]=dw};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(dc))};this.addEcommerceItem=function(dA,dw,dy,dx,dz){if(ac(dA)){dc[dA]=[String(dA),dw,dy,dx,dz]}};this.removeEcommerceItem=function(dw){if(ac(dw)){dw=String(dw);delete dc[dw]}};this.clearEcommerceCart=function(){dc={}};this.trackEcommerceOrder=function(dw,dA,dz,dy,dx,dB){b4(dw,dA,dz,dy,dx,dB)};this.trackEcommerceCartUpdate=function(dw){bz(dw)};this.trackRequest=function(dx,dz,dy,dw){cm(function(){var dA=cz(dx,dz,dw);bM(dA,bQ,dy)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(dw){if(dw<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=dw};this.queueRequest=function(dw){cm(function(){var dx=cz(dw);
+bK.push(dx)})};this.isConsentRequired=function(){return cK};this.getRememberedConsent=function(){var dw=aH(bj);if(aH(cW)){if(dw){b5(bj,bw,c9)}return null}if(!dw||dw===0){return null}return dw};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cK=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dx){bJ=true;c8=true;b5(cW,bw,c9);var dy,dw;for(dy=0;dy<cV.length;dy++){dw=typeof cV[dy];if(dw==="string"){bM(cV[dy],bQ)}else{if(dw==="object"){ds(cV[dy],bQ)}}}cV=[];if(!M(dx)||dx){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dy){if(dy){dy=dy*60*60*1000}else{dy=30*365*24*60*60*1000}var dw=true;this.setConsentGiven(dw);var dx=new Date().getTime();dr(bj,dx,dy,bw,c9,bY,aN)};this.forgetConsentGiven=function(){var dw=30*365*24*60*60*1000;b5(bj,bw,c9);dr(cW,new Date().getTime(),dw,bw,c9,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()
+};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dl()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams","setExcludedReferrers"];
+function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})
+}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()
+}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
/*!!! pluginTrackerHook */
-(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()
-}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)
-}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
+(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;
+for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());
+if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
/*!! @license-end */; \ No newline at end of file
diff --git a/piwik.js b/piwik.js
index ce0247be92..6893f82409 100644
--- a/piwik.js
+++ b/piwik.js
@@ -29,47 +29,47 @@ at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.fin
}if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at<aw.length;at++){au=this.buildContentBlock(aw[at]);if(M(au)){av.push(au)}}return av},setLocation:function(at){this.location=at},getLocation:function(){var at=this.location||W.location;if(!at.origin){at.origin=at.protocol+"//"+at.hostname+(at.port?":"+at.port:"")}return at},toAbsoluteUrl:function(au){if((!au||String(au)!==au)&&au!==""){return au}if(""===au){return this.getLocation().href}if(au.search(/^\/\//)!==-1){return this.getLocation().protocol+au}if(au.search(/:\/\//)!==-1){return au}if(0===au.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+au}if(0===au.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+au
}if(0===au.search("^[a-zA-Z]{2,11}:")){return au}if(au.search(/^\//)!==-1){return this.getLocation().origin+au}var at="(.*/)";var av=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(at))[0];return av+au},isUrlToCurrentDomain:function(au){var av=this.toAbsoluteUrl(au);if(!av){return false}var at=this.getLocation().origin;if(at===av){return true}if(0===String(av).indexOf(at)){if(":"===String(av).substr(at.length,1)){return false}return true}return false},setHrefAttribute:function(au,at){if(!au||!at){return}ai.setAnyAttribute(au,"href",at)},shouldIgnoreInteraction:function(at){if(ai.hasNodeAttribute(at,this.CONTENT_IGNOREINTERACTION_ATTR)){return true}if(ai.hasNodeCssClass(at,this.CONTENT_IGNOREINTERACTION_CLASS)){return true}if(ai.hasNodeCssClass(at,this.LEGACY_CONTENT_IGNOREINTERACTION_CLASS)){return true}return false}};function aa(au,ax){if(ax){return ax}au=w.toAbsoluteUrl(au);if(A(au,"?")){var aw=au.indexOf("?");au=au.slice(0,aw)}if(U(au,"matomo.php")){au=f(au,"matomo.php".length)
}else{if(U(au,"piwik.php")){au=f(au,"piwik.php".length)}else{if(U(au,".php")){var at=au.lastIndexOf("/");var av=1;au=au.slice(0,at+av)}}}if(U(au,"/js/")){au=f(au,"js/".length)}return au}function R(az){var aB="Matomo_Overlay";var au=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=[^&]*)?");var av=au.exec(J.referrer);if(av){var ax=av[1];if(ax!==String(az)){return false}var ay=av[2],at=av[3],aw=av[4];if(!aw){aw=""}else{if(aw.indexOf("&segment=")===0){aw=aw.substr("&segment=".length)}}W.name=aB+"###"+ay+"###"+at+"###"+aw}var aA=W.name.split("###");return aA.length===4&&aA[0]===aB}function ad(au,az,av){var ay=W.name.split("###"),ax=ay[1],at=ay[2],aw=ay[3],aA=aa(au,az);o(aA+"plugins/Overlay/client/client.js?v=1",function(){Matomo_Overlay_Client.initialize(aA,av,ax,at,aw)})}function v(){var av;try{av=W.frameElement}catch(au){return true}if(M(av)){return(av&&String(av.nodeName).toLowerCase()==="iframe")?true:false}try{return W.self!==W.top
-}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cL="mtm_cookie_consent",cU="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c2=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c0=false,cn="GET",dk=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cE=aM,aI=cj||"",bO="",c9="",ct="",cc=cf||"",bF="",bU="",ba,bp="",dg=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c2],bG=[],co=[],bR=[],be=[],bQ=500,c5=true,cR,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c7,bw,bY=false,aN="Lax",bs=false,cY,bk,bC,cS=33955200000,cu=1800000,df=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cA={},da={},dh={},cg=[],ck=false,cJ=false,au=false,di=false,cV=false,aS=false,bi=v(),cF=null,c8=null,aW,bI,cd=aq,bv,aQ,bH=false,cx=0,bB=["id","ses","cvar","ref"],cI=false,bJ=null,cT=[],cz=[],aB=X++,aA=false,c6=true;
-try{bp=J.title}catch(cG){bp=""}function aH(dw){if(bs){return 0}var du=new RegExp("(^|;)[ ]*"+dw+"=([^;]*)"),dv=du.exec(J.cookie);return dv?V(dv[2]):0}bJ=!aH(cU);function dp(dy,dz,dC,dB,dw,dx,dA){if(bs&&dy!==cU){return}var dv;if(dC){dv=new Date();dv.setTime(dv.getTime()+dC)}if(!dA){dA="Lax"}J.cookie=dy+"="+t(dz)+(dC?";expires="+dv.toGMTString():"")+";path="+(dB||"/")+(dw?";domain="+dw:"")+(dx?";secure":"")+";SameSite="+dA;if((!dC||dC>=0)&&aH(dy)!==String(dz)){var du="There was an error setting cookie `"+dy+"`. Please check domain and path.";ao(du)}}function b8(du){var dw,dv;du=j(du,az);for(dv=0;dv<co.length;dv++){du=j(du,co[dv])}if(bV){dw=new RegExp("#.*");return du.replace(dw,"")}return du}function b1(dw,du){var dx=s(du),dv;if(dx){return du}if(du.slice(0,1)==="/"){return s(dw)+"://"+d(dw)+du}dw=b8(dw);dv=dw.indexOf("?");if(dv>=0){dw=dw.slice(0,dv)}dv=dw.lastIndexOf("/");if(dv!==dw.length-1){dw=dw.slice(0,dv+1)}return dw+du}function cP(dw,du){var dv;dw=String(dw).toLowerCase();du=String(du).toLowerCase();
-if(dw===du){return true}if(du.slice(0,1)==="."){if(dw===du.slice(1)){return true}dv=dw.length-du.length;if((dv>0)&&(dw.slice(dv)===du)){return true}}return false}function cr(du){var dv=document.createElement("a");if(du.indexOf("//")!==0&&du.indexOf("http")!==0){if(du.indexOf("*")===0){du=du.substr(1)}if(du.indexOf(".")===0){du=du.substr(1)}du="http://"+du}dv.href=w.toAbsoluteUrl(du);if(dv.pathname){return dv.pathname}return""}function a9(dv,du){if(!an(du,"/")){du="/"+du}if(!an(dv,"/")){dv="/"+dv}var dw=(du==="/"||du==="/*");if(dw){return true}if(dv===du){return true}du=String(du).toLowerCase();dv=String(dv).toLowerCase();if(U(du,"*")){du=du.slice(0,-1);dw=(!du||du==="/");if(dw){return true}if(dv===du){return true}return dv.indexOf(du)===0}if(!U(dv,"/")){dv+="/"}if(!U(du,"/")){du+="/"}return dv.indexOf(du)===0}function aw(dy,dA){var dv,du,dw,dx,dz;for(dv=0;dv<aC.length;dv++){dx=O(aC[dv]);dz=cr(aC[dv]);if(cP(dy,dx)&&a9(dA,dz)){return true}}return false}function a1(dx){var dv,du,dw;for(dv=0;
-dv<aC.length;dv++){du=O(aC[dv].toLowerCase());if(dx===du){return true}if(du.slice(0,1)==="."){if(dx===du.slice(1)){return true}dw=dx.length-du.length;if((dw>0)&&(dx.slice(dw)===du)){return true}}}return false}function cv(du,dw){du=du.replace("send_image=0","send_image=1");var dv=new Image(1,1);dv.onload=function(){H=0;if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:true})}};dv.onerror=function(){if(typeof dw==="function"){dw({request:du,trackerUrl:aI,success:false})}};dv.src=aI+(aI.indexOf("?")<0?"?":"&")+du}function cM(du){if(dk==="POST"){return true}return du&&(du.length>2000||du.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dy,dB,dA){var dw=aP();if(!dw){return false}var dx={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dC=false;var dv=aI;try{var du=new Blob([dy],dx);if(dA&&!cM(dy)){du=new Blob([],dx);dv=dv+(dv.indexOf("?")<0?"?":"&")+dy}dC=g.sendBeacon(dv,du)}catch(dz){return false
-}if(dC&&typeof dB==="function"){dB({request:dy,trackerUrl:aI,success:true,isSendBeacon:true})}return dC}function de(dv,dw,du){if(!M(du)||null===du){du=true}if(m&&bc(dv,dw,du)){return}setTimeout(function(){if(m&&bc(dv,dw,du)){return}var dz;try{var dy=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dy.open("POST",aI,true);dy.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dA=m&&bc(dv,dw,du);if(!dA&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dw==="function")){dw({request:dv,trackerUrl:aI,success:true,xhr:this})}}};dy.setRequestHeader("Content-Type",cE);dy.withCredentials=true;dy.send(dv)}catch(dx){dz=m&&bc(dv,dw,du);if(!dz&&du){cv(dv,dw)}else{if(typeof dw==="function"){dw({request:dv,trackerUrl:aI,success:false})}}}},50)}function cl(dv){var du=new Date();var dw=du.getTime()+dv;if(!r||dw>r){r=dw}}function bg(){bi=true;
-cF=new Date().getTime()}function dn(){var du=new Date().getTime();return !cF||(du-cF)>bb}function aD(){if(dn()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dn()){bX()}else{if(J.visibilityState==="visible"){cF=new Date().getTime()}}}function dr(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dn()){bX()}}})}function cK(dy){var dv=new Date();var du=dv.getTime();c8=du;if(cJ&&du<cJ){var dw=cJ-du;setTimeout(dy,dw);cl(dw+50);cJ+=50;return}if(cJ===false){var dx=800;cJ=du+dx}dy()}function aT(){if(aH(cU)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dv,du,dw){aT();if(!bJ){cT.push(dv);return}aA=true;if(!cY&&dv){if(cI&&bJ){dv+="&consent=1"}cK(function(){if(c5&&bc(dv,dw,true)){cl(100);return}if(cM(dv)){de(dv,dw)}else{cv(dv,dw)}cl(du)})}if(!aS){dr()}}function cq(du){if(cY){return false}return(du&&du.length)}function dd(du,dy){if(!dy||dy>=du.length){return[du]}var dv=0;var dw=du.length;var dx=[];
-for(dv;dv<dw;dv+=dy){dx.push(du.slice(dv,dv+dy))}return dx}function dq(dv,du){if(!cq(dv)){return}if(!bJ){cT.push(dv);return}aA=true;cK(function(){var dy=dd(dv,50);var dw=0,dx;for(dw;dw<dy.length;dw++){dx='{"requests":["?'+dy[dw].join('","?')+'"],"send_image":0}';if(c5&&bc(dx,null,false)){cl(100)}else{de(dx,null,false)}}cl(du)})}function aY(du){return bq+du+"."+cc+"."+bv}function b5(dw,dv,du){dp(dw,"",-129600000,dv,du)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var du=bq+"testcookie";dp(du,"1",undefined,bw,c7,bY,aN);var dv=aH(du)==="1"?"1":"0";b5(du);return dv}function bo(){bv=cd((c7||c2)+(bw||"/")).slice(0,4)}function cQ(){if(!c6){return{}}if(M(dh.res)){return dh}var dv,dx,dy={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dv in dy){if(Object.prototype.hasOwnProperty.call(dy,dv)){dx=g.mimeTypes[dy[dv]];
-dh[dv]=(dx&&dx.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dh.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dh.cookie=g.cookieEnabled?"1":"0"}else{dh.cookie=cb()}}var dw=parseInt(ab.width,10);var du=parseInt(ab.height,10);dh.res=parseInt(dw,10)+"x"+parseInt(du,10);return dh}function b3(){var dv=aY("cvar"),du=aH(dv);if(du&&du.length){du=W.JSON.parse(du);if(Z(du)){return du}}return{}}function cN(){if(aV===false){aV=b3()}}function cZ(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)+(new Date()).getTime()+Math.random()).slice(0,16)}function aF(){var du=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(du)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dv=bl();var dw=aF();var du=String(dv)+dw;return du}function dc(dw){dw=String(dw);var dz=aF();var dx=dz.length;var dy=dw.substr(-1*dx,dx);
-var dv=parseInt(dw.substr(0,dw.length-dx),10);if(dv&&dy&&dy===dz){var du=bl();if(a5<=0){return true}if(du>=dv&&du<=(dv+a5)){return true}}return false}function ds(du){if(!cV){return""}var dy=e(du,az);if(!dy){return""}dy=String(dy);var dw=new RegExp("^[a-zA-Z0-9]+$");if(dy.length===32&&dw.test(dy)){var dv=dy.substr(16,32);if(dc(dv)){var dx=dy.substr(0,16);return dx}}return""}function cW(){if(!bU){bU=ds(bT)}var dw=new Date(),du=Math.round(dw.getTime()/1000),dv=aY("id"),dz=aH(dv),dy,dx;if(dz){dy=dz.split(".");dy.unshift("0");if(bU.length){dy[1]=bU}return dy}if(bU.length){dx=bU}else{if("0"===cb()){dx=""}else{dx=cZ()}}dy=["1",dx,du];return dy}function a4(){var dx=cW(),dv=dx[0],dw=dx[1],du=dx[2];return{newVisitor:dv,uuid:dw,createTs:du}}function aL(){var dx=new Date(),dv=dx.getTime(),dy=a4().createTs;var du=parseInt(dy,10);var dw=(du*1000)+cS-dv;return dw}function aR(du){if(!cc){return}var dw=new Date(),dv=Math.round(dw.getTime()/1000);if(!M(du)){du=a4()}var dx=du.uuid+"."+du.createTs+".";dp(aY("id"),dx,aL(),bw,c7,bY,aN)
-}function bS(){var du=aH(aY("ref"));if(du.length){try{du=W.JSON.parse(du);if(Z(du)){return du}}catch(dv){}}return["","",0,""]}function bD(dw){var dv=bq+"testcookie_domain";var du="testvalue";dp(dv,du,10000,null,dw,bY,aN);if(aH(dv)===du){b5(dv,null,dw);return true}return false}function aJ(){var dv=bs;bs=false;var du,dw;for(du=0;du<bB.length;du++){dw=aY(bB[du]);if(dw!==cU&&dw!==bj&&0!==aH(dw)){b5(dw,bw,c7)}}bs=dv}function b9(du){cc=du}function dt(dy){if(!dy||!Z(dy)){return}var dx=[];var dw;for(dw in dy){if(Object.prototype.hasOwnProperty.call(dy,dw)){dx.push(dw)}}var dz={};dx.sort();var du=dx.length;var dv;for(dv=0;dv<du;dv++){dz[dx[dv]]=dy[dx[dv]]}return dz}function ci(){dp(aY("ses"),"1",cu,bw,c7,bY,aN)}function bm(){var dx="";var dv="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dw=dv.length;var du;for(du=0;du<6;du++){dx+=dv.charAt(Math.floor(Math.random()*dw))}return dx}function aE(dv){if(ct!==""){dv+=ct;bn=true;return dv}if(!h){return dv}var dw=(typeof h.timing==="object")&&h.timing?h.timing:undefined;
-if(!dw){dw=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dw){return dv}var du="";if(dw.connectEnd&&dw.fetchStart){if(dw.connectEnd<dw.fetchStart){return dv}du+="&pf_net="+Math.round(dw.connectEnd-dw.fetchStart)}if(dw.responseStart&&dw.requestStart){if(dw.responseStart<dw.requestStart){return dv}du+="&pf_srv="+Math.round(dw.responseStart-dw.requestStart)}if(dw.responseStart&&dw.responseEnd){if(dw.responseEnd<dw.responseStart){return dv}du+="&pf_tfr="+Math.round(dw.responseEnd-dw.responseStart)}if(M(dw.domLoading)){if(dw.domInteractive&&dw.domLoading){if(dw.domInteractive<dw.domLoading){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.domLoading)}}else{if(dw.domInteractive&&dw.responseEnd){if(dw.domInteractive<dw.responseEnd){return dv}du+="&pf_dm1="+Math.round(dw.domInteractive-dw.responseEnd)}}if(dw.domComplete&&dw.domInteractive){if(dw.domComplete<dw.domInteractive){return dv}du+="&pf_dm2="+Math.round(dw.domComplete-dw.domInteractive)
-}if(dw.loadEventEnd&&dw.loadEventStart){if(dw.loadEventEnd<dw.loadEventStart){return dv}du+="&pf_onl="+Math.round(dw.loadEventEnd-dw.loadEventStart)}return dv+du}function dj(){var dE,dx=new Date(),dy=Math.round(dx.getTime()/1000),dJ,dw,dz=1024,dG,dA,dv=aY("ses"),dD=aY("ref"),dC=aH(dv),du=bS(),dI=ba||bT,dF,dB,dH={};dF=du[0];dB=du[1];dJ=du[2];dw=du[3];if(!dC){if(!bC||!dF.length){for(dE in cw){if(Object.prototype.hasOwnProperty.call(cw,dE)){dF=e(dI,cw[dE]);if(dF.length){break}}}for(dE in bN){if(Object.prototype.hasOwnProperty.call(bN,dE)){dB=e(dI,bN[dE]);if(dB.length){break}}}}dG=d(bu);dA=dw.length?d(dw):"";if(dG.length&&!a1(dG)&&(!bC||!dA.length||a1(dA))){dw=bu}if(dw.length||dF.length){dJ=dy;du=[dF,dB,dJ,b8(dw.slice(0,dz))];dp(dD,W.JSON.stringify(du),df,bw,c7,bY,aN)}}if(dF.length){dH._rcn=t(dF)}if(dB.length){dH._rck=t(dB)}dH._refts=dJ;if(String(dw).length){dH._ref=t(b8(dw.slice(0,dz)))}return dH}function cy(dv,dG,dH){var dF,du=new Date(),dE=aV,dA=aY("cvar"),dI=ba||bT;if(bs){aJ()}if(cY){return""
-}var dB=a4();var dy=J.characterSet||J.charset;if(!dy||dy.toLowerCase()==="utf-8"){dy=null}dv+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+du.getHours()+"&m="+du.getMinutes()+"&s="+du.getSeconds()+"&url="+t(b8(dI))+(bu.length?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dB.uuid+"&_idn="+dB.newVisitor+(dy?"&cs="+t(dy):"")+"&send_image=0";var dD=dj();for(dF in dD){if(Object.prototype.hasOwnProperty.call(dD,dF)){dv+="&"+dF+"="+dD[dF]}}var dK=cQ();for(dF in dK){if(Object.prototype.hasOwnProperty.call(dK,dF)){dv+="&"+dF+"="+dK[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dw=dF.replace("dimension","");dL.push(parseInt(dw,10));dL.push(String(dw));dv+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&D(dG)){dG=null}for(dF in cA){if(Object.prototype.hasOwnProperty.call(cA,dF)){dv+="&"+dF+"="+t(cA[dF])}}for(dF in bt){if(Object.prototype.hasOwnProperty.call(bt,dF)){var dz=(-1===P(dL,dF));if(dz){dv+="&dimension"+dF+"="+t(bt[dF])
-}}}if(dG){dv+="&data="+t(W.JSON.stringify(dG))}else{if(at){dv+="&data="+t(W.JSON.stringify(at))}}function dx(dM,dN){var dO=W.JSON.stringify(dM);if(dO.length>2){return"&"+dN+"="+t(dO)}return""}var dJ=dt(b2);var dC=dt(cs);dv+=dx(dJ,"cvar");dv+=dx(dC,"e_cvar");if(aV){dv+=dx(aV,"_cvar");for(dF in dE){if(Object.prototype.hasOwnProperty.call(dE,dF)){if(aV[dF][0]===""||aV[dF][1]===""){delete aV[dF]}}}if(bW){dp(dA,W.JSON.stringify(aV),cu,bw,c7,bY,aN)}}if(a8&&bL&&!bn){dv=aE(dv);bn=true}if(aQ){dv+="&pv_id="+aQ}aR(dB);ci();dv+=ag(dH,{tracker:bP,request:dv});if(c9.length){dv+="&"+c9}if(C(ch)){dv=ch(dv)}return dv}bX=function bd(){var du=new Date();du=du.getTime();if(!c8){return false}if(c8+bb<=du){bP.ping();return true}return false};function bx(dx,dw,dB,dy,du,dE){var dA="idgoal=0",dv=new Date(),dC=[],dD,dz=String(dx).length;if(dz){dA+="&ec_id="+t(dx)}dA+="&revenue="+dw;if(String(dB).length){dA+="&ec_st="+dB}if(String(dy).length){dA+="&ec_tx="+dy}if(String(du).length){dA+="&ec_sh="+du}if(String(dE).length){dA+="&ec_dt="+dE
-}if(da){for(dD in da){if(Object.prototype.hasOwnProperty.call(da,dD)){if(!M(da[dD][1])){da[dD][1]=""}if(!M(da[dD][2])){da[dD][2]=""}if(!M(da[dD][3])||String(da[dD][3]).length===0){da[dD][3]=0}if(!M(da[dD][4])||String(da[dD][4]).length===0){da[dD][4]=1}dC.push(da[dD])}}dA+="&ec_items="+t(W.JSON.stringify(dC))}dA=cy(dA,at,"ecommerce");bM(dA,bQ);if(dz){da={}}}function b4(du,dy,dx,dw,dv,dz){if(String(du).length&&M(dy)){bx(du,dy,dx,dw,dv,dz)}}function bz(du){if(M(du)){bx("",du,"","","","")}}function b6(dv,dx,dw){if(!bH){aQ=bm()}var du=cy("action_name="+t(ap(dv||bp)),dx,"log");if(a8&&!bn){du=aE(du)}bM(du,bQ,dw)}function a6(dw,dv){var dx,du="(^| )(piwik[_-]"+dv+"|matomo[_-]"+dv;if(dw){for(dx=0;dx<dw.length;dx++){du+="|"+dw[dx]}}du+=")( |$)";return new RegExp(du)}function aZ(du){return(aI&&du&&0===String(du).indexOf(aI))}function cC(dy,du,dz,dv){if(aZ(du)){return 0}var dx=a6(bR,"download"),dw=a6(be,"link"),dA=new RegExp("\\.("+dg.join("|")+")([?&#]|$)","i");if(dw.test(dy)){return"link"}if(dv||dx.test(dy)||dA.test(du)){return"download"
-}if(dz){return 0}return"link"}function ay(dv){var du;du=dv.parentNode;while(du!==null&&M(du)){if(ai.isLinkElement(dv)){break}dv=du;du=dv.parentNode}return dv}function dm(dz){dz=ay(dz);if(!ai.hasNodeAttribute(dz,"href")){return}if(!M(dz.href)){return}var dy=ai.getAttributeValueFromNode(dz,"href");var dv=dz.pathname||cr(dz.href);var dA=dz.hostname||d(dz.href);var dB=dA.toLowerCase();var dw=dz.href.replace(dA,dB);var dx=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dx.test(dw)){var du=cC(dz.className,dw,aw(dB,dv),ai.hasNodeAttribute(dz,"download"));if(du){return{type:du,href:dw}}}}function aU(du,dv,dw,dx){var dy=w.buildInteractionRequestParams(du,dv,dw,dx);if(!dy){return}return cy(dy,null,"contentInteraction")}function bh(du,dv){if(!du||!dv){return false}var dw=w.findTargetNode(du);if(w.shouldIgnoreInteraction(dw)){return false}dw=w.findTargetNodeNoDefault(du);if(dw&&!Y(dw,dv)){return false}return true}function cB(dw,dv,dy){if(!dw){return}var du=w.findParentContentNode(dw);
-if(!du){return}if(!bh(du,dw)){return}var dx=w.buildContentBlock(du);if(!dx){return}if(!dx.target&&dy){dx.target=dy}return w.buildInteractionRequestParams(dv,dx.name,dx.piece,dx.target)}function a2(dv){if(!cg||!cg.length){return false}var du,dw;for(du=0;du<cg.length;du++){dw=cg[du];if(dw&&dw.name===dv.name&&dw.piece===dv.piece&&dw.target===dv.target){return true}}return false}function a3(du){return function(dy){if(!du){return}var dw=w.findParentContentNode(du);var dv;if(dy){dv=dy.target||dy.srcElement}if(!dv){dv=du}if(!bh(dw,dv)){return}if(!dw){return false}var dz=w.findTargetNode(dw);if(!dz||w.shouldIgnoreInteraction(dz)){return false}var dx=dm(dz);if(di&&dx&&dx.type){return dx.type}return bP.trackContentInteractionNode(dv,"click")}}function b7(dw){if(!dw||!dw.length){return}var du,dv;for(du=0;du<dw.length;du++){dv=w.findTargetNode(dw[du]);if(dv&&!dv.contentInteractionTrackingSetupDone){dv.contentInteractionTrackingSetupDone=true;ar(dv,"click",a3(dv))}}}function bE(dw,dx){if(!dw||!dw.length){return[]
-}var du,dv;for(du=0;du<dw.length;du++){if(a2(dw[du])){dw.splice(du,1);du--}else{cg.push(dw[du])}}if(!dw||!dw.length){return[]}b7(dx);var dy=[];for(du=0;du<dw.length;du++){dv=cy(w.buildImpressionRequestParams(dw[du].name,dw[du].piece,dw[du].target),undefined,"contentImpressions");if(dv){dy.push(dv)}}return dy}function cH(dv){var du=w.collectContent(dv);return bE(du,dv)}function bf(dv){if(!dv||!dv.length){return[]}var du;for(du=0;du<dv.length;du++){if(!w.isNodeVisible(dv[du])){dv.splice(du,1);du--}}if(!dv||!dv.length){return[]}return cH(dv)}function aK(dw,du,dv){var dx=w.buildImpressionRequestParams(dw,du,dv);return cy(dx,null,"contentImpression")}function dl(dx,dv){if(!dx){return}var du=w.findParentContentNode(dx);var dw=w.buildContentBlock(du);if(!dw){return}if(!dv){dv="Unknown"}return aU(dv,dw.name,dw.piece,dw.target)}function cX(dv,dx,du,dw){return"e_c="+t(dv)+"&e_a="+t(dx)+(M(du)?"&e_n="+t(du):"")+(M(dw)?"&e_v="+t(dw):"")+"&ca=1"}function ax(dw,dy,du,dx,dA,dz){if(!ac(dw)||!ac(dy)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");
-return false}var dv=cy(cX(dw,dy,du,dx),dA,"event");bM(dv,bQ,dz)}function ce(du,dx,dv,dy){var dw=cy("search="+t(du)+(dx?"&search_cat="+t(dx):"")+(M(dv)?"&search_count="+dv:""),dy,"sitesearch");bM(dw,bQ)}function c1(du,dy,dx,dw){var dv=cy("idgoal="+du+(dy?"&revenue="+dy:""),dx,"goal");bM(dv,bQ,dw)}function db(dx,du,dB,dA,dw){var dz=du+"="+t(b8(dx));var dv=cB(dw,"click",dx);if(dv){dz+="&"+dv}var dy=cy(dz,dB,"link");bM(dy,bQ,dA)}function b0(dv,du){if(dv!==""){return dv+du.charAt(0).toUpperCase()+du.slice(1)}return du}function cm(dz){var dy,du,dx=["","webkit","ms","moz"],dw;if(!bk){for(du=0;du<dx.length;du++){dw=dx[du];if(Object.prototype.hasOwnProperty.call(J,b0(dw,"hidden"))){if(J[b0(dw,"visibilityState")]==="prerender"){dy=true}break}}}if(dy){ar(J,dw+"visibilitychange",function dv(){J.removeEventListener(dw+"visibilitychange",dv,false);dz()});return}dz()}function by(){var dv=bP.getVisitorId();var du=aO();return dv+du}function cp(du){if(!du){return}if(!ai.hasNodeAttribute(du,"href")){return
-}var dv=ai.getAttributeValueFromNode(du,"href");if(!dv||aZ(dv)){return}if(!bP.getVisitorId()){return}dv=j(dv,az);var dw=by();dv=I(dv,az,dw);ai.setAnyAttribute(du,"href",dv)}function br(dx){var dy=ai.getAttributeValueFromNode(dx,"href");if(!dy){return false}dy=String(dy);var dv=dy.indexOf("//")===0||dy.indexOf("http://")===0||dy.indexOf("https://")===0;if(!dv){return false}var du=dx.pathname||cr(dx.href);var dw=(dx.hostname||d(dx.href)).toLowerCase();if(aw(dw,du)){if(!cP(c2,O(dw))){return true}return false}return false}function cO(du){var dv=dm(du);if(dv&&dv.type){dv.href=p(dv.href);db(dv.href,dv.type,undefined,null,du);return}if(cV){du=ay(du);if(br(du)){cp(du)}}}function cD(){return J.all&&!J.addEventListener}function c3(du){var dw=du.which;var dv=(typeof du.button);if(!dw&&dv!=="undefined"){if(cD()){if(du.button&1){dw=1}else{if(du.button&2){dw=3}else{if(du.button&4){dw=2}}}}else{if(du.button===0||du.button==="0"){dw=1}else{if(du.button&1){dw=2}else{if(du.button&2){dw=3}}}}}return dw}function bZ(du){switch(c3(du)){case 1:return"left";
-case 2:return"middle";case 3:return"right"}}function a7(du){return du.target||du.srcElement}function c4(du){return du==="A"||du==="AREA"}function aG(du){function dv(dx){var dy=a7(dx);var dz=dy.nodeName;var dw=a6(bG,"ignore");while(!c4(dz)&&dy&&dy.parentNode){dy=dy.parentNode;dz=dy.nodeName}if(dy&&c4(dz)&&!dw.test(dy.className)){return dy}}return function(dy){dy=dy||W.event;var dz=dv(dy);if(!dz){return}var dx=bZ(dy);if(dy.type==="click"){var dw=false;if(du&&dx==="middle"){dw=true}if(dz&&!dw){cO(dz)}}else{if(dy.type==="mousedown"){if(dx==="middle"&&dz){aW=dx;bI=dz}else{aW=bI=null}}else{if(dy.type==="mouseup"){if(dx===aW&&dz===bI){cO(dz)}aW=bI=null}else{if(dy.type==="contextmenu"){cO(dz)}}}}}}function av(dx,dw,du){var dv=typeof dw;if(dv==="undefined"){dw=true}ar(dx,"click",aG(dw),du);if(dw){ar(dx,"mouseup",aG(dw),du);ar(dx,"mousedown",aG(dw),du);ar(dx,"contextmenu",aG(dw),du)}}function aX(dv,dy,dz){if(ck){return true}ck=true;var dA=false;var dx,dw;function du(){dA=true}n(function(){function dB(dD){setTimeout(function(){if(!ck){return
-}dA=false;dz.trackVisibleContentImpressions();dB(dD)},dD)}function dC(dD){setTimeout(function(){if(!ck){return}if(dA){dA=false;dz.trackVisibleContentImpressions()}dC(dD)},dD)}if(dv){dx=["scroll","resize"];for(dw=0;dw<dx.length;dw++){if(J.addEventListener){J.addEventListener(dx[dw],du,false)}else{W.attachEvent("on"+dx[dw],du)}}dC(100)}if(dy&&dy>0){dy=parseInt(dy,10);dB(dy)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var du=this.requests;this.requests=[];if(du.length===1){bM(du[0],bQ)}else{dq(du,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dv){if(!this.canQueue()){dq(dv,bQ);return}var du;for(du=0;du<dv.length;du++){this.push(dv[du])}},push:function(du){if(!du){return}if(!this.canQueue()){bM(du,bQ);return}bK.requests.push(du);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dv="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dv)){b[dv]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)
-}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cW()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]};this.setTrackerUrl=function(du){aI=du};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dw,dv){if(!M(dw)||null===dw){dw=this.getTrackerUrl()}var du=new T(dw,dv);L.push(du);u.trigger("TrackerAdded",[this]);return du};this.getSiteId=function(){return cc};this.setSiteId=function(du){b9(du)};this.resetUserId=function(){bF=""};this.setUserId=function(du){if(ac(du)){bF=du}};this.setVisitorId=function(dv){var du=/[0-9A-Fa-f]{16}/g;
-if(x(dv)&&du.test(dv)){bU=dv}else{ao("Invalid visitorId set"+dv)}};this.getUserId=function(){return bF};this.setCustomData=function(du,dv){if(Z(du)){at=du}else{if(!at){at={}}at[du]=dv}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(du){ch=du};this.appendToTrackingUrl=function(du){c9=du};this.getRequest=function(du){return cy(du)};this.addPlugin=function(du,dv){b[du]=dv};this.setCustomDimension=function(du,dv){du=parseInt(du,10);if(du>0){if(!M(dv)){dv=""}if(!x(dv)){dv=String(dv)}bt[du]=dv}};this.getCustomDimension=function(du){du=parseInt(du,10);if(du>0&&Object.prototype.hasOwnProperty.call(bt,du)){return bt[du]}};this.deleteCustomDimension=function(du){du=parseInt(du,10);if(du>0){delete bt[du]}};this.setCustomVariable=function(dv,du,dy,dw){var dx;if(!M(dw)){dw="visit"}if(!M(du)){return}if(!M(dy)){dy=""}if(dv>0){du=!x(du)?String(du):du;dy=!x(dy)?String(dy):dy;dx=[du.slice(0,bA),dy.slice(0,bA)];if(dw==="visit"||dw===2){cN();aV[dv]=dx}else{if(dw==="page"||dw===3){b2[dv]=dx
-}else{if(dw==="event"){cs[dv]=dx}}}}};this.getCustomVariable=function(dv,dw){var du;if(!M(dw)){dw="visit"}if(dw==="page"||dw===3){du=b2[dv]}else{if(dw==="event"){du=cs[dv]}else{if(dw==="visit"||dw===2){cN();du=aV[dv]}}}if(!M(du)||(du&&du[0]==="")){return false}return du};this.deleteCustomVariable=function(du,dv){if(this.getCustomVariable(du,dv)){this.setCustomVariable(du,"","",dv)}};this.deleteCustomVariables=function(du){if(du==="page"||du===3){b2={}}else{if(du==="event"){cs={}}else{if(du==="visit"||du===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(du){bQ=du};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(du){if(x(du)){du=du.split("|")}dg=du};this.addDownloadExtensions=function(dv){var du;if(x(dv)){dv=dv.split("|")}for(du=0;du<dv.length;du++){dg.push(dv[du])}};this.removeDownloadExtensions=function(dw){var dv,du=[];if(x(dw)){dw=dw.split("|")}for(dv=0;dv<dg.length;dv++){if(P(dw,dg[dv])===-1){du.push(dg[dv])
-}}dg=du};this.setDomains=function(du){aC=x(du)?[du]:du;var dy=false,dw=0,dv;for(dw;dw<aC.length;dw++){dv=String(aC[dw]);if(cP(c2,O(dv))){dy=true;break}var dx=cr(dv);if(dx&&dx!=="/"&&dx!=="/*"){dy=true;break}}if(!dy){aC.push(c2)}};this.enableCrossDomainLinking=function(){cV=true};this.disableCrossDomainLinking=function(){cV=false};this.isCrossDomainLinkingEnabled=function(){return cV};this.setCrossDomainLinkingTimeout=function(du){a5=du};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(du){bG=x(du)?[du]:du};this.setRequestMethod=function(du){if(du){dk=String(du).toUpperCase()}else{dk=cn}if(dk==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(du){cE=du||aM};this.setGenerationTimeMs=function(du){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dy,dA,dz,dv,dB,dw){var dx={pf_net:dy,pf_srv:dA,pf_tfr:dz,pf_dm1:dv,pf_dm2:dB,pf_onl:dw};
-try{dx=Q(dx,M);dx=B(dx);ct=l(dx);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(du){ao("setPagePerformanceTiming: "+du.toString())}};this.setReferrerUrl=function(du){bu=du};this.setCustomUrl=function(du){ba=b1(bT,du)};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(du){bp=du};this.setPageViewId=function(du){aQ=du;bH=true};this.setAPIUrl=function(du){bO=du};this.setDownloadClasses=function(du){bR=x(du)?[du]:du};this.setLinkClasses=function(du){be=x(du)?[du]:du};this.setCampaignNameKey=function(du){cw=x(du)?[du]:du};this.setCampaignKeywordKey=function(du){bN=x(du)?[du]:du};this.discardHashTag=function(du){bV=du};this.setCookieNamePrefix=function(du){bq=du;if(aV){aV=b3()}};this.setCookieDomain=function(du){var dv=O(du);if(!bs&&!bD(dv)){ao("Can't write cookie on domain "+du)}else{c7=dv;bo()}};this.setExcludedQueryParams=function(du){co=x(du)?[du]:du
-};this.getCookieDomain=function(){return c7};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dw,dv,du){if(!dw){throw new Error("Missing cookie name")}if(!M(du)){du=cu}bB.push(dw);dp(aY(dw),dv,du,bw,c7,bY,aN)};this.getCookie=function(dv){var du=aH(aY(dv));if(du===0){return null}return du};this.setCookiePath=function(du){bw=du;bo()};this.getCookiePath=function(du){return bw};this.setVisitorCookieTimeout=function(du){cS=du*1000};this.setSessionCookieTimeout=function(du){cu=du*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(du){df=du*1000};this.setConversionAttributionFirstReferrer=function(du){bC=du};this.setSecureCookie=function(du){if(du&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=du};this.setCookieSameSite=function(du){du=String(du);du=du.charAt(0).toUpperCase()+du.toLowerCase().slice(1);if(du!=="None"&&du!=="Lax"&&du!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");
-return}if(du==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");du="Lax"}}aN=du};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!cY){bs=false;c6=true;if(cc&&aA){aR();var du=cy("ping=1",null,"ping");bM(du,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cL)};this.forgetCookieConsentGiven=function(){b5(cL,bw,c7);this.disableCookies()};this.rememberCookieConsentGiven=function(dv){if(dv){dv=dv*60*60*1000}else{dv=30*365*24*60*60*1000}this.setCookieConsentGiven();var du=new Date().getTime();dp(cL,du,dv,bw,c7,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dv){var du=g.doNotTrack||g.msDoNotTrack;cY=dv&&(du==="yes"||du==="1");if(cY){this.disableCookies()
-}};this.alwaysUseSendBeacon=function(){c5=true};this.disableAlwaysUseSendBeacon=function(){c5=false};this.addListener=function(dv,du){av(dv,du,false)};this.enableLinkTracking=function(dv){if(di){return}di=true;var du=this;q(function(){au=true;var dw=J.body;av(dw,dv,true)})};this.enableJSErrorTracking=function(){if(c0){return}c0=true;var du=W.onerror;W.onerror=function(dz,dx,dw,dy,dv){cm(function(){var dA="JavaScript Errors";var dB=dx+":"+dw;if(dy){dB+=":"+dy}if(P(cz,dA+dB+dz)===-1){cz.push(dA+dB+dz);ax(dA,dB,dz)}});if(du){return du(dz,dx,dw,dy,dv)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(du){du=Math.max(du||15,5);bb=du*1000;if(c8!==null){dr()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)
-}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(du){if(W.location.protocol==="file:"){W.location=du}};this.setCountPreRendered=function(du){bk=du};this.trackGoal=function(du,dx,dw,dv){cm(function(){c1(du,dx,dw,dv)})};this.trackLink=function(dv,du,dx,dw){cm(function(){db(dv,du,dx,dw)})};this.getNumTrackedPageViews=function(){return cx};this.trackPageView=function(du,dw,dv){cg=[];cT=[];cz=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cx++;b6(du,dw,dv)})}};this.disableBrowserFeatureDetection=function(){c6=false};this.enableBrowserFeatureDetection=function(){c6=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var du=w.findContentNodes();var dv=cH(du);bK.pushMultiple(dv)})})};this.trackVisibleContentImpressions=function(du,dv){if(R(cc)){return}if(!M(du)){du=true}if(!M(dv)){dv=750}aX(du,dv,this);cm(function(){n(function(){var dw=w.findContentNodes();
-var dx=bf(dw);bK.pushMultiple(dx)})})};this.trackContentImpression=function(dw,du,dv){if(R(cc)){return}dw=a(dw);du=a(du);dv=a(dv);if(!dw){return}du=du||"Unknown";cm(function(){var dx=aK(dw,du,dv);bK.push(dx)})};this.trackContentImpressionsWithinNode=function(du){if(R(cc)||!du){return}cm(function(){if(ck){n(function(){var dv=w.findContentNodesWithinNode(du);var dw=bf(dv);bK.pushMultiple(dw)})}else{q(function(){var dv=w.findContentNodesWithinNode(du);var dw=cH(dv);bK.pushMultiple(dw)})}})};this.trackContentInteraction=function(dw,dx,du,dv){if(R(cc)){return}dw=a(dw);dx=a(dx);du=a(du);dv=a(dv);if(!dw||!dx){return}du=du||"Unknown";cm(function(){var dy=aU(dw,dx,du,dv);if(dy){bK.push(dy)}})};this.trackContentInteractionNode=function(dw,dv){if(R(cc)||!dw){return}var du=null;cm(function(){du=dl(dw,dv);if(du){bK.push(du)}});return du};this.logAllContentBlocksOnPage=function(){var dw=w.findContentNodes();var du=w.collectContent(dw);var dv=typeof console;if(dv!=="undefined"&&console&&console.log){console.log(du)
-}};this.trackEvent=function(dv,dx,du,dw,dz,dy){cm(function(){ax(dv,dx,du,dw,dz,dy)})};this.trackSiteSearch=function(du,dw,dv,dx){cg=[];cm(function(){ce(du,dw,dv,dx)})};this.setEcommerceView=function(dy,du,dw,dv){cA={};if(ac(dw)){dw=String(dw)}if(!M(dw)||dw===null||dw===false||!dw.length){dw=""}else{if(dw instanceof Array){dw=W.JSON.stringify(dw)}}var dx="_pkc";cA[dx]=dw;if(M(dv)&&dv!==null&&dv!==false&&String(dv).length){dx="_pkp";cA[dx]=dv}if(!ac(dy)&&!ac(du)){return}if(ac(dy)){dx="_pks";cA[dx]=dy}if(!ac(du)){du=""}dx="_pkn";cA[dx]=du};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(da))};this.addEcommerceItem=function(dy,du,dw,dv,dx){if(ac(dy)){da[dy]=[String(dy),du,dw,dv,dx]}};this.removeEcommerceItem=function(du){if(ac(du)){du=String(du);delete da[du]}};this.clearEcommerceCart=function(){da={}};this.trackEcommerceOrder=function(du,dy,dx,dw,dv,dz){b4(du,dy,dx,dw,dv,dz)};this.trackEcommerceCartUpdate=function(du){bz(du)};this.trackRequest=function(dv,dx,dw,du){cm(function(){var dy=cy(dv,dx,du);
-bM(dy,bQ,dw)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(du){if(du<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=du};this.queueRequest=function(du){cm(function(){var dv=cy(du);bK.push(dv)})};this.isConsentRequired=function(){return cI};this.getRememberedConsent=function(){var du=aH(bj);if(aH(cU)){if(du){b5(bj,bw,c7)}return null}if(!du||du===0){return null}return du};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cI=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dv){bJ=true;c6=true;b5(cU,bw,c7);var dw,du;for(dw=0;dw<cT.length;dw++){du=typeof cT[dw];if(du==="string"){bM(cT[dw],bQ)}else{if(du==="object"){dq(cT[dw],bQ)}}}cT=[];if(!M(dv)||dv){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dw){if(dw){dw=dw*60*60*1000
-}else{dw=30*365*24*60*60*1000}var du=true;this.setConsentGiven(du);var dv=new Date().getTime();dp(bj,dv,dw,bw,c7,bY,aN)};this.forgetConsentGiven=function(){var du=30*365*24*60*60*1000;b5(bj,bw,c7);dp(cU,new Date().getTime(),du,bw,c7,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dj()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")
-}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);
-Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()
-}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
+}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cN="mtm_cookie_consent",cW="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c4=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c2=false,cn="GET",dm=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cF=aM,aI=cj||"",bO="",db="",ct="",cc=cf||"",bF="",bU="",ba,bp="",di=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c4],bG=[],cG=[],co=[],bR=[],be=[],bQ=500,c7=true,cT,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c9,bw,bY=false,aN="Lax",bs=false,c0,bk,bC,cU=33955200000,cu=1800000,dh=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cB={},dc={},dj={},cg=[],ck=false,cL=false,au=false,dk=false,cX=false,aS=false,bi=v(),cH=null,da=null,aW,bI,cd=aq,bv,aQ,bH=false,cy=0,bB=["id","ses","cvar","ref"],cK=false,bJ=null,cV=[],cA=[],aB=X++,aA=false,c8=true;
+try{bp=J.title}catch(cI){bp=""}function aH(dy){if(bs){return 0}var dw=new RegExp("(^|;)[ ]*"+dy+"=([^;]*)"),dx=dw.exec(J.cookie);return dx?V(dx[2]):0}bJ=!aH(cW);function dr(dA,dB,dE,dD,dy,dz,dC){if(bs&&dA!==cW){return}var dx;if(dE){dx=new Date();dx.setTime(dx.getTime()+dE)}if(!dC){dC="Lax"}J.cookie=dA+"="+t(dB)+(dE?";expires="+dx.toGMTString():"")+";path="+(dD||"/")+(dy?";domain="+dy:"")+(dz?";secure":"")+";SameSite="+dC;if((!dE||dE>=0)&&aH(dA)!==String(dB)){var dw="There was an error setting cookie `"+dA+"`. Please check domain and path.";ao(dw)}}function b8(dw){var dy,dx;dw=j(dw,az);for(dx=0;dx<co.length;dx++){dw=j(dw,co[dx])}if(bV){dy=new RegExp("#.*");return dw.replace(dy,"")}return dw}function b1(dy,dw){var dz=s(dw),dx;if(dz){return dw}if(dw.slice(0,1)==="/"){return s(dy)+"://"+d(dy)+dw}dy=b8(dy);dx=dy.indexOf("?");if(dx>=0){dy=dy.slice(0,dx)}dx=dy.lastIndexOf("/");if(dx!==dy.length-1){dy=dy.slice(0,dx+1)}return dy+dw}function cR(dy,dw){var dx;dy=String(dy).toLowerCase();dw=String(dw).toLowerCase();
+if(dy===dw){return true}if(dw.slice(0,1)==="."){if(dy===dw.slice(1)){return true}dx=dy.length-dw.length;if((dx>0)&&(dy.slice(dx)===dw)){return true}}return false}function cr(dw){var dx=document.createElement("a");if(dw.indexOf("//")!==0&&dw.indexOf("http")!==0){if(dw.indexOf("*")===0){dw=dw.substr(1)}if(dw.indexOf(".")===0){dw=dw.substr(1)}dw="http://"+dw}dx.href=w.toAbsoluteUrl(dw);if(dx.pathname){return dx.pathname}return""}function a9(dx,dw){if(!an(dw,"/")){dw="/"+dw}if(!an(dx,"/")){dx="/"+dx}var dy=(dw==="/"||dw==="/*");if(dy){return true}if(dx===dw){return true}dw=String(dw).toLowerCase();dx=String(dx).toLowerCase();if(U(dw,"*")){dw=dw.slice(0,-1);dy=(!dw||dw==="/");if(dy){return true}if(dx===dw){return true}return dx.indexOf(dw)===0}if(!U(dx,"/")){dx+="/"}if(!U(dw,"/")){dw+="/"}return dx.indexOf(dw)===0}function aw(dA,dC){var dx,dw,dy,dz,dB;for(dx=0;dx<aC.length;dx++){dz=O(aC[dx]);dB=cr(aC[dx]);if(cR(dA,dz)&&a9(dC,dB)){return true}}return false}function a1(dz){var dx,dw,dy;for(dx=0;
+dx<aC.length;dx++){dw=O(aC[dx].toLowerCase());if(dz===dw){return true}if(dw.slice(0,1)==="."){if(dz===dw.slice(1)){return true}dy=dz.length-dw.length;if((dy>0)&&(dz.slice(dy)===dw)){return true}}}return false}function cx(dw){var dx,dz,dB,dy,dA;if(!dw.length||!cG.length){return false}dz=d(dw);dB=cr(dw);if(dz.indexOf("www.")===0){dz=dz.substr(4)}for(dx=0;dx<cG.length;dx++){dy=O(cG[dx]);dA=cr(cG[dx]);if(dy.indexOf("www.")===0){dy=dy.substr(4)}if(cR(dz,dy)&&a9(dB,dA)){return true}}return false}function cv(dw,dy){dw=dw.replace("send_image=0","send_image=1");var dx=new Image(1,1);dx.onload=function(){H=0;if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:true})}};dx.onerror=function(){if(typeof dy==="function"){dy({request:dw,trackerUrl:aI,success:false})}};dx.src=aI+(aI.indexOf("?")<0?"?":"&")+dw}function cO(dw){if(dm==="POST"){return true}return dw&&(dw.length>2000||dw.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob
+}function bc(dA,dD,dC){var dy=aP();if(!dy){return false}var dz={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dE=false;var dx=aI;try{var dw=new Blob([dA],dz);if(dC&&!cO(dA)){dw=new Blob([],dz);dx=dx+(dx.indexOf("?")<0?"?":"&")+dA}dE=g.sendBeacon(dx,dw)}catch(dB){return false}if(dE&&typeof dD==="function"){dD({request:dA,trackerUrl:aI,success:true,isSendBeacon:true})}return dE}function dg(dx,dy,dw){if(!M(dw)||null===dw){dw=true}if(m&&bc(dx,dy,dw)){return}setTimeout(function(){if(m&&bc(dx,dy,dw)){return}var dB;try{var dA=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dA.open("POST",aI,true);dA.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dC=m&&bc(dx,dy,dw);if(!dC&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dy==="function")){dy({request:dx,trackerUrl:aI,success:true,xhr:this})}}};
+dA.setRequestHeader("Content-Type",cF);dA.withCredentials=true;dA.send(dx)}catch(dz){dB=m&&bc(dx,dy,dw);if(!dB&&dw){cv(dx,dy)}else{if(typeof dy==="function"){dy({request:dx,trackerUrl:aI,success:false})}}}},50)}function cl(dx){var dw=new Date();var dy=dw.getTime()+dx;if(!r||dy>r){r=dy}}function bg(){bi=true;cH=new Date().getTime()}function dq(){var dw=new Date().getTime();return !cH||(dw-cH)>bb}function aD(){if(dq()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dq()){bX()}else{if(J.visibilityState==="visible"){cH=new Date().getTime()}}}function dt(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dq()){bX()}}})}function cM(dA){var dx=new Date();var dw=dx.getTime();da=dw;if(cL&&dw<cL){var dy=cL-dw;setTimeout(dA,dy);cl(dy+50);cL+=50;return}if(cL===false){var dz=800;cL=dw+dz}dA()}function aT(){if(aH(cW)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(dx,dw,dy){aT();if(!bJ){cV.push(dx);
+return}aA=true;if(!c0&&dx){if(cK&&bJ){dx+="&consent=1"}cM(function(){if(c7&&bc(dx,dy,true)){cl(100);return}if(cO(dx)){dg(dx,dy)}else{cv(dx,dy)}cl(dw)})}if(!aS){dt()}}function cq(dw){if(c0){return false}return(dw&&dw.length)}function df(dw,dA){if(!dA||dA>=dw.length){return[dw]}var dx=0;var dy=dw.length;var dz=[];for(dx;dx<dy;dx+=dA){dz.push(dw.slice(dx,dx+dA))}return dz}function ds(dx,dw){if(!cq(dx)){return}if(!bJ){cV.push(dx);return}aA=true;cM(function(){var dA=df(dx,50);var dy=0,dz;for(dy;dy<dA.length;dy++){dz='{"requests":["?'+dA[dy].join('","?')+'"],"send_image":0}';if(c7&&bc(dz,null,false)){cl(100)}else{dg(dz,null,false)}}cl(dw)})}function aY(dw){return bq+dw+"."+cc+"."+bv}function b5(dy,dx,dw){dr(dy,"",-129600000,dx,dw)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var dw=bq+"testcookie";dr(dw,"1",undefined,bw,c9,bY,aN);var dx=aH(dw)==="1"?"1":"0";b5(dw);return dx}function bo(){bv=cd((c9||c4)+(bw||"/")).slice(0,4)}function cS(){if(!c8){return{}
+}if(M(dj.res)){return dj}var dx,dz,dA={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(dx in dA){if(Object.prototype.hasOwnProperty.call(dA,dx)){dz=g.mimeTypes[dA[dx]];dj[dx]=(dz&&dz.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dj.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dj.cookie=g.cookieEnabled?"1":"0"}else{dj.cookie=cb()}}var dy=parseInt(ab.width,10);var dw=parseInt(ab.height,10);dj.res=parseInt(dy,10)+"x"+parseInt(dw,10);return dj}function b3(){var dx=aY("cvar"),dw=aH(dx);if(dw&&dw.length){dw=W.JSON.parse(dw);if(Z(dw)){return dw}}return{}}function cP(){if(aV===false){aV=b3()}}function c1(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)+(new Date()).getTime()+Math.random()).slice(0,16)
+}function aF(){var dw=cS();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dw)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var dx=bl();var dy=aF();var dw=String(dx)+dy;return dw}function de(dy){dy=String(dy);var dB=aF();var dz=dB.length;var dA=dy.substr(-1*dz,dz);var dx=parseInt(dy.substr(0,dy.length-dz),10);if(dx&&dA&&dA===dB){var dw=bl();if(a5<=0){return true}if(dw>=dx&&dw<=(dx+a5)){return true}}return false}function du(dw){if(!cX){return""}var dA=e(dw,az);if(!dA){return""}dA=String(dA);var dy=new RegExp("^[a-zA-Z0-9]+$");if(dA.length===32&&dy.test(dA)){var dx=dA.substr(16,32);if(de(dx)){var dz=dA.substr(0,16);return dz}}return""}function cY(){if(!bU){bU=du(bT)}var dy=new Date(),dw=Math.round(dy.getTime()/1000),dx=aY("id"),dB=aH(dx),dA,dz;if(dB){dA=dB.split(".");dA.unshift("0");if(bU.length){dA[1]=bU}return dA}if(bU.length){dz=bU}else{if("0"===cb()){dz=""}else{dz=c1()}}dA=["1",dz,dw];return dA}function a4(){var dz=cY(),dx=dz[0],dy=dz[1],dw=dz[2];
+return{newVisitor:dx,uuid:dy,createTs:dw}}function aL(){var dz=new Date(),dx=dz.getTime(),dA=a4().createTs;var dw=parseInt(dA,10);var dy=(dw*1000)+cU-dx;return dy}function aR(dw){if(!cc){return}var dy=new Date(),dx=Math.round(dy.getTime()/1000);if(!M(dw)){dw=a4()}var dz=dw.uuid+"."+dw.createTs+".";dr(aY("id"),dz,aL(),bw,c9,bY,aN)}function bS(){var dw=aH(aY("ref"));if(dw.length){try{dw=W.JSON.parse(dw);if(Z(dw)){return dw}}catch(dx){}}return["","",0,""]}function bD(dy){var dx=bq+"testcookie_domain";var dw="testvalue";dr(dx,dw,10000,null,dy,bY,aN);if(aH(dx)===dw){b5(dx,null,dy);return true}return false}function aJ(){var dx=bs;bs=false;var dw,dy;for(dw=0;dw<bB.length;dw++){dy=aY(bB[dw]);if(dy!==cW&&dy!==bj&&0!==aH(dy)){b5(dy,bw,c9)}}bs=dx}function b9(dw){cc=dw}function dv(dA){if(!dA||!Z(dA)){return}var dz=[];var dy;for(dy in dA){if(Object.prototype.hasOwnProperty.call(dA,dy)){dz.push(dy)}}var dB={};dz.sort();var dw=dz.length;var dx;for(dx=0;dx<dw;dx++){dB[dz[dx]]=dA[dz[dx]]}return dB}function ci(){dr(aY("ses"),"1",cu,bw,c9,bY,aN)
+}function bm(){var dz="";var dx="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dy=dx.length;var dw;for(dw=0;dw<6;dw++){dz+=dx.charAt(Math.floor(Math.random()*dy))}return dz}function aE(dx){if(ct!==""){dx+=ct;bn=true;return dx}if(!h){return dx}var dy=(typeof h.timing==="object")&&h.timing?h.timing:undefined;if(!dy){dy=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dy){return dx}var dw="";if(dy.connectEnd&&dy.fetchStart){if(dy.connectEnd<dy.fetchStart){return dx}dw+="&pf_net="+Math.round(dy.connectEnd-dy.fetchStart)}if(dy.responseStart&&dy.requestStart){if(dy.responseStart<dy.requestStart){return dx}dw+="&pf_srv="+Math.round(dy.responseStart-dy.requestStart)}if(dy.responseStart&&dy.responseEnd){if(dy.responseEnd<dy.responseStart){return dx}dw+="&pf_tfr="+Math.round(dy.responseEnd-dy.responseStart)}if(M(dy.domLoading)){if(dy.domInteractive&&dy.domLoading){if(dy.domInteractive<dy.domLoading){return dx
+}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.domLoading)}}else{if(dy.domInteractive&&dy.responseEnd){if(dy.domInteractive<dy.responseEnd){return dx}dw+="&pf_dm1="+Math.round(dy.domInteractive-dy.responseEnd)}}if(dy.domComplete&&dy.domInteractive){if(dy.domComplete<dy.domInteractive){return dx}dw+="&pf_dm2="+Math.round(dy.domComplete-dy.domInteractive)}if(dy.loadEventEnd&&dy.loadEventStart){if(dy.loadEventEnd<dy.loadEventStart){return dx}dw+="&pf_onl="+Math.round(dy.loadEventEnd-dy.loadEventStart)}return dx+dw}function dl(){var dG,dz=new Date(),dA=Math.round(dz.getTime()/1000),dL,dy,dB=1024,dI,dC,dx=aY("ses"),dF=aY("ref"),dE=aH(dx),dw=bS(),dK=ba||bT,dH,dD,dJ={};dH=dw[0];dD=dw[1];dL=dw[2];dy=dw[3];if(!dE){if(!bC||!dH.length){for(dG in cw){if(Object.prototype.hasOwnProperty.call(cw,dG)){dH=e(dK,cw[dG]);if(dH.length){break}}}for(dG in bN){if(Object.prototype.hasOwnProperty.call(bN,dG)){dD=e(dK,bN[dG]);if(dD.length){break}}}}dI=d(bu);dC=dy.length?d(dy):"";if(dI.length&&!a1(dI)&&!cx(bu)&&(!bC||!dC.length||a1(dC)||cx(dy))){dy=bu
+}if(dy.length||dH.length){dL=dA;dw=[dH,dD,dL,b8(dy.slice(0,dB))];dr(dF,W.JSON.stringify(dw),dh,bw,c9,bY,aN)}}if(dH.length){dJ._rcn=t(dH)}if(dD.length){dJ._rck=t(dD)}dJ._refts=dL;if(String(dy).length){dJ._ref=t(b8(dy.slice(0,dB)))}return dJ}function cz(dx,dI,dJ){var dH,dw=new Date(),dG=aV,dC=aY("cvar"),dK=ba||bT;if(bs){aJ()}if(c0){return""}var dD=a4();var dA=J.characterSet||J.charset;if(!dA||dA.toLowerCase()==="utf-8"){dA=null}dx+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dw.getHours()+"&m="+dw.getMinutes()+"&s="+dw.getSeconds()+"&url="+t(b8(dK))+(bu.length&&!cx(bu)?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dD.uuid+"&_idn="+dD.newVisitor+(dA?"&cs="+t(dA):"")+"&send_image=0";var dF=dl();for(dH in dF){if(Object.prototype.hasOwnProperty.call(dF,dH)){dx+="&"+dH+"="+dF[dH]}}var dM=cS();for(dH in dM){if(Object.prototype.hasOwnProperty.call(dM,dH)){dx+="&"+dH+"="+dM[dH]}}var dN=[];if(dI){for(dH in dI){if(Object.prototype.hasOwnProperty.call(dI,dH)&&/^dimension\d+$/.test(dH)){var dy=dH.replace("dimension","");
+dN.push(parseInt(dy,10));dN.push(String(dy));dx+="&"+dH+"="+t(dI[dH]);delete dI[dH]}}}if(dI&&D(dI)){dI=null}for(dH in cB){if(Object.prototype.hasOwnProperty.call(cB,dH)){dx+="&"+dH+"="+t(cB[dH])}}for(dH in bt){if(Object.prototype.hasOwnProperty.call(bt,dH)){var dB=(-1===P(dN,dH));if(dB){dx+="&dimension"+dH+"="+t(bt[dH])}}}if(dI){dx+="&data="+t(W.JSON.stringify(dI))}else{if(at){dx+="&data="+t(W.JSON.stringify(at))}}function dz(dO,dP){var dQ=W.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dL=dv(b2);var dE=dv(cs);dx+=dz(dL,"cvar");dx+=dz(dE,"e_cvar");if(aV){dx+=dz(aV,"_cvar");for(dH in dG){if(Object.prototype.hasOwnProperty.call(dG,dH)){if(aV[dH][0]===""||aV[dH][1]===""){delete aV[dH]}}}if(bW){dr(dC,W.JSON.stringify(aV),cu,bw,c9,bY,aN)}}if(a8&&bL&&!bn){dx=aE(dx);bn=true}if(aQ){dx+="&pv_id="+aQ}aR(dD);ci();dx+=ag(dJ,{tracker:bP,request:dx});if(db.length){dx+="&"+db}if(C(ch)){dx=ch(dx)}return dx}bX=function bd(){var dw=new Date();dw=dw.getTime();if(!da){return false}if(da+bb<=dw){bP.ping();
+return true}return false};function bx(dz,dy,dD,dA,dw,dG){var dC="idgoal=0",dx=new Date(),dE=[],dF,dB=String(dz).length;if(dB){dC+="&ec_id="+t(dz)}dC+="&revenue="+dy;if(String(dD).length){dC+="&ec_st="+dD}if(String(dA).length){dC+="&ec_tx="+dA}if(String(dw).length){dC+="&ec_sh="+dw}if(String(dG).length){dC+="&ec_dt="+dG}if(dc){for(dF in dc){if(Object.prototype.hasOwnProperty.call(dc,dF)){if(!M(dc[dF][1])){dc[dF][1]=""}if(!M(dc[dF][2])){dc[dF][2]=""}if(!M(dc[dF][3])||String(dc[dF][3]).length===0){dc[dF][3]=0}if(!M(dc[dF][4])||String(dc[dF][4]).length===0){dc[dF][4]=1}dE.push(dc[dF])}}dC+="&ec_items="+t(W.JSON.stringify(dE))}dC=cz(dC,at,"ecommerce");bM(dC,bQ);if(dB){dc={}}}function b4(dw,dA,dz,dy,dx,dB){if(String(dw).length&&M(dA)){bx(dw,dA,dz,dy,dx,dB)}}function bz(dw){if(M(dw)){bx("",dw,"","","","")}}function b6(dx,dz,dy){if(!bH){aQ=bm()}var dw=cz("action_name="+t(ap(dx||bp)),dz,"log");if(a8&&!bn){dw=aE(dw)}bM(dw,bQ,dy)}function a6(dy,dx){var dz,dw="(^| )(piwik[_-]"+dx+"|matomo[_-]"+dx;if(dy){for(dz=0;
+dz<dy.length;dz++){dw+="|"+dy[dz]}}dw+=")( |$)";return new RegExp(dw)}function aZ(dw){return(aI&&dw&&0===String(dw).indexOf(aI))}function cD(dA,dw,dB,dx){if(aZ(dw)){return 0}var dz=a6(bR,"download"),dy=a6(be,"link"),dC=new RegExp("\\.("+di.join("|")+")([?&#]|$)","i");if(dy.test(dA)){return"link"}if(dx||dz.test(dA)||dC.test(dw)){return"download"}if(dB){return 0}return"link"}function ay(dx){var dw;dw=dx.parentNode;while(dw!==null&&M(dw)){if(ai.isLinkElement(dx)){break}dx=dw;dw=dx.parentNode}return dx}function dp(dB){dB=ay(dB);if(!ai.hasNodeAttribute(dB,"href")){return}if(!M(dB.href)){return}var dA=ai.getAttributeValueFromNode(dB,"href");var dx=dB.pathname||cr(dB.href);var dC=dB.hostname||d(dB.href);var dD=dC.toLowerCase();var dy=dB.href.replace(dC,dD);var dz=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dz.test(dy)){var dw=cD(dB.className,dy,aw(dD,dx),ai.hasNodeAttribute(dB,"download"));if(dw){return{type:dw,href:dy}}}}function aU(dw,dx,dy,dz){var dA=w.buildInteractionRequestParams(dw,dx,dy,dz);
+if(!dA){return}return cz(dA,null,"contentInteraction")}function bh(dw,dx){if(!dw||!dx){return false}var dy=w.findTargetNode(dw);if(w.shouldIgnoreInteraction(dy)){return false}dy=w.findTargetNodeNoDefault(dw);if(dy&&!Y(dy,dx)){return false}return true}function cC(dy,dx,dA){if(!dy){return}var dw=w.findParentContentNode(dy);if(!dw){return}if(!bh(dw,dy)){return}var dz=w.buildContentBlock(dw);if(!dz){return}if(!dz.target&&dA){dz.target=dA}return w.buildInteractionRequestParams(dx,dz.name,dz.piece,dz.target)}function a2(dx){if(!cg||!cg.length){return false}var dw,dy;for(dw=0;dw<cg.length;dw++){dy=cg[dw];if(dy&&dy.name===dx.name&&dy.piece===dx.piece&&dy.target===dx.target){return true}}return false}function a3(dw){return function(dA){if(!dw){return}var dy=w.findParentContentNode(dw);var dx;if(dA){dx=dA.target||dA.srcElement}if(!dx){dx=dw}if(!bh(dy,dx)){return}if(!dy){return false}var dB=w.findTargetNode(dy);if(!dB||w.shouldIgnoreInteraction(dB)){return false}var dz=dp(dB);if(dk&&dz&&dz.type){return dz.type
+}return bP.trackContentInteractionNode(dx,"click")}}function b7(dy){if(!dy||!dy.length){return}var dw,dx;for(dw=0;dw<dy.length;dw++){dx=w.findTargetNode(dy[dw]);if(dx&&!dx.contentInteractionTrackingSetupDone){dx.contentInteractionTrackingSetupDone=true;ar(dx,"click",a3(dx))}}}function bE(dy,dz){if(!dy||!dy.length){return[]}var dw,dx;for(dw=0;dw<dy.length;dw++){if(a2(dy[dw])){dy.splice(dw,1);dw--}else{cg.push(dy[dw])}}if(!dy||!dy.length){return[]}b7(dz);var dA=[];for(dw=0;dw<dy.length;dw++){dx=cz(w.buildImpressionRequestParams(dy[dw].name,dy[dw].piece,dy[dw].target),undefined,"contentImpressions");if(dx){dA.push(dx)}}return dA}function cJ(dx){var dw=w.collectContent(dx);return bE(dw,dx)}function bf(dx){if(!dx||!dx.length){return[]}var dw;for(dw=0;dw<dx.length;dw++){if(!w.isNodeVisible(dx[dw])){dx.splice(dw,1);dw--}}if(!dx||!dx.length){return[]}return cJ(dx)}function aK(dy,dw,dx){var dz=w.buildImpressionRequestParams(dy,dw,dx);return cz(dz,null,"contentImpression")}function dn(dz,dx){if(!dz){return
+}var dw=w.findParentContentNode(dz);var dy=w.buildContentBlock(dw);if(!dy){return}if(!dx){dx="Unknown"}return aU(dx,dy.name,dy.piece,dy.target)}function cZ(dx,dz,dw,dy){return"e_c="+t(dx)+"&e_a="+t(dz)+(M(dw)?"&e_n="+t(dw):"")+(M(dy)?"&e_v="+t(dy):"")+"&ca=1"}function ax(dy,dA,dw,dz,dC,dB){if(!ac(dy)||!ac(dA)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dx=cz(cZ(dy,dA,dw,dz),dC,"event");bM(dx,bQ,dB)}function ce(dw,dz,dx,dA){var dy=cz("search="+t(dw)+(dz?"&search_cat="+t(dz):"")+(M(dx)?"&search_count="+dx:""),dA,"sitesearch");bM(dy,bQ)}function c3(dw,dA,dz,dy){var dx=cz("idgoal="+dw+(dA?"&revenue="+dA:""),dz,"goal");bM(dx,bQ,dy)}function dd(dz,dw,dD,dC,dy){var dB=dw+"="+t(b8(dz));var dx=cC(dy,"click",dz);if(dx){dB+="&"+dx}var dA=cz(dB,dD,"link");bM(dA,bQ,dC)}function b0(dx,dw){if(dx!==""){return dx+dw.charAt(0).toUpperCase()+dw.slice(1)}return dw}function cm(dB){var dA,dw,dz=["","webkit","ms","moz"],dy;
+if(!bk){for(dw=0;dw<dz.length;dw++){dy=dz[dw];if(Object.prototype.hasOwnProperty.call(J,b0(dy,"hidden"))){if(J[b0(dy,"visibilityState")]==="prerender"){dA=true}break}}}if(dA){ar(J,dy+"visibilitychange",function dx(){J.removeEventListener(dy+"visibilitychange",dx,false);dB()});return}dB()}function by(){var dx=bP.getVisitorId();var dw=aO();return dx+dw}function cp(dw){if(!dw){return}if(!ai.hasNodeAttribute(dw,"href")){return}var dx=ai.getAttributeValueFromNode(dw,"href");if(!dx||aZ(dx)){return}if(!bP.getVisitorId()){return}dx=j(dx,az);var dy=by();dx=I(dx,az,dy);ai.setAnyAttribute(dw,"href",dx)}function br(dz){var dA=ai.getAttributeValueFromNode(dz,"href");if(!dA){return false}dA=String(dA);var dx=dA.indexOf("//")===0||dA.indexOf("http://")===0||dA.indexOf("https://")===0;if(!dx){return false}var dw=dz.pathname||cr(dz.href);var dy=(dz.hostname||d(dz.href)).toLowerCase();if(aw(dy,dw)){if(!cR(c4,O(dy))){return true}return false}return false}function cQ(dw){var dx=dp(dw);if(dx&&dx.type){dx.href=p(dx.href);
+dd(dx.href,dx.type,undefined,null,dw);return}if(cX){dw=ay(dw);if(br(dw)){cp(dw)}}}function cE(){return J.all&&!J.addEventListener}function c5(dw){var dy=dw.which;var dx=(typeof dw.button);if(!dy&&dx!=="undefined"){if(cE()){if(dw.button&1){dy=1}else{if(dw.button&2){dy=3}else{if(dw.button&4){dy=2}}}}else{if(dw.button===0||dw.button==="0"){dy=1}else{if(dw.button&1){dy=2}else{if(dw.button&2){dy=3}}}}}return dy}function bZ(dw){switch(c5(dw)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a7(dw){return dw.target||dw.srcElement}function c6(dw){return dw==="A"||dw==="AREA"}function aG(dw){function dx(dz){var dA=a7(dz);var dB=dA.nodeName;var dy=a6(bG,"ignore");while(!c6(dB)&&dA&&dA.parentNode){dA=dA.parentNode;dB=dA.nodeName}if(dA&&c6(dB)&&!dy.test(dA.className)){return dA}}return function(dA){dA=dA||W.event;var dB=dx(dA);if(!dB){return}var dz=bZ(dA);if(dA.type==="click"){var dy=false;if(dw&&dz==="middle"){dy=true}if(dB&&!dy){cQ(dB)}}else{if(dA.type==="mousedown"){if(dz==="middle"&&dB){aW=dz;
+bI=dB}else{aW=bI=null}}else{if(dA.type==="mouseup"){if(dz===aW&&dB===bI){cQ(dB)}aW=bI=null}else{if(dA.type==="contextmenu"){cQ(dB)}}}}}}function av(dz,dy,dw){var dx=typeof dy;if(dx==="undefined"){dy=true}ar(dz,"click",aG(dy),dw);if(dy){ar(dz,"mouseup",aG(dy),dw);ar(dz,"mousedown",aG(dy),dw);ar(dz,"contextmenu",aG(dy),dw)}}function aX(dx,dA,dB){if(ck){return true}ck=true;var dC=false;var dz,dy;function dw(){dC=true}n(function(){function dD(dF){setTimeout(function(){if(!ck){return}dC=false;dB.trackVisibleContentImpressions();dD(dF)},dF)}function dE(dF){setTimeout(function(){if(!ck){return}if(dC){dC=false;dB.trackVisibleContentImpressions()}dE(dF)},dF)}if(dx){dz=["scroll","resize"];for(dy=0;dy<dz.length;dy++){if(J.addEventListener){J.addEventListener(dz[dy],dw,false)}else{W.attachEvent("on"+dz[dy],dw)}}dE(100)}if(dA&&dA>0){dA=parseInt(dA,10);dD(dA)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dw=this.requests;this.requests=[];if(dw.length===1){bM(dw[0],bQ)
+}else{ds(dw,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dx){if(!this.canQueue()){ds(dx,bQ);return}var dw;for(dw=0;dw<dx.length;dw++){this.push(dx[dw])}},push:function(dw){if(!dw){return}if(!this.canQueue()){bM(dw,bQ);return}bK.requests.push(dw);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var dx="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,dx)){b[dx]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)}bK.sendRequests()}}}}};bo();this.hasConsent=function(){return bJ};this.getVisitorInfo=function(){if(!aH(aY("id"))){aR()}return cY()};this.getVisitorId=function(){return this.getVisitorInfo()[1]};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]
+};this.setTrackerUrl=function(dw){aI=dw};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dy,dx){if(!M(dy)||null===dy){dy=this.getTrackerUrl()}var dw=new T(dy,dx);L.push(dw);u.trigger("TrackerAdded",[this]);return dw};this.getSiteId=function(){return cc};this.setSiteId=function(dw){b9(dw)};this.resetUserId=function(){bF=""};this.setUserId=function(dw){if(ac(dw)){bF=dw}};this.setVisitorId=function(dx){var dw=/[0-9A-Fa-f]{16}/g;if(x(dx)&&dw.test(dx)){bU=dx}else{ao("Invalid visitorId set"+dx)}};this.getUserId=function(){return bF};this.setCustomData=function(dw,dx){if(Z(dw)){at=dw}else{if(!at){at={}}at[dw]=dx}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(dw){ch=dw};this.appendToTrackingUrl=function(dw){db=dw};this.getRequest=function(dw){return cz(dw)};this.addPlugin=function(dw,dx){b[dw]=dx};this.setCustomDimension=function(dw,dx){dw=parseInt(dw,10);
+if(dw>0){if(!M(dx)){dx=""}if(!x(dx)){dx=String(dx)}bt[dw]=dx}};this.getCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0&&Object.prototype.hasOwnProperty.call(bt,dw)){return bt[dw]}};this.deleteCustomDimension=function(dw){dw=parseInt(dw,10);if(dw>0){delete bt[dw]}};this.setCustomVariable=function(dx,dw,dA,dy){var dz;if(!M(dy)){dy="visit"}if(!M(dw)){return}if(!M(dA)){dA=""}if(dx>0){dw=!x(dw)?String(dw):dw;dA=!x(dA)?String(dA):dA;dz=[dw.slice(0,bA),dA.slice(0,bA)];if(dy==="visit"||dy===2){cP();aV[dx]=dz}else{if(dy==="page"||dy===3){b2[dx]=dz}else{if(dy==="event"){cs[dx]=dz}}}}};this.getCustomVariable=function(dx,dy){var dw;if(!M(dy)){dy="visit"}if(dy==="page"||dy===3){dw=b2[dx]}else{if(dy==="event"){dw=cs[dx]}else{if(dy==="visit"||dy===2){cP();dw=aV[dx]}}}if(!M(dw)||(dw&&dw[0]==="")){return false}return dw};this.deleteCustomVariable=function(dw,dx){if(this.getCustomVariable(dw,dx)){this.setCustomVariable(dw,"","",dx)}};this.deleteCustomVariables=function(dw){if(dw==="page"||dw===3){b2={}
+}else{if(dw==="event"){cs={}}else{if(dw==="visit"||dw===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dw){bQ=dw};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dw){if(x(dw)){dw=dw.split("|")}di=dw};this.addDownloadExtensions=function(dx){var dw;if(x(dx)){dx=dx.split("|")}for(dw=0;dw<dx.length;dw++){di.push(dx[dw])}};this.removeDownloadExtensions=function(dy){var dx,dw=[];if(x(dy)){dy=dy.split("|")}for(dx=0;dx<di.length;dx++){if(P(dy,di[dx])===-1){dw.push(di[dx])}}di=dw};this.setDomains=function(dw){aC=x(dw)?[dw]:dw;var dA=false,dy=0,dx;for(dy;dy<aC.length;dy++){dx=String(aC[dy]);if(cR(c4,O(dx))){dA=true;break}var dz=cr(dx);if(dz&&dz!=="/"&&dz!=="/*"){dA=true;break}}if(!dA){aC.push(c4)}};this.setExcludedReferrers=function(dw){cG=x(dw)?[dw]:dw};this.enableCrossDomainLinking=function(){cX=true};this.disableCrossDomainLinking=function(){cX=false};this.isCrossDomainLinkingEnabled=function(){return cX
+};this.setCrossDomainLinkingTimeout=function(dw){a5=dw};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(dw){bG=x(dw)?[dw]:dw};this.setRequestMethod=function(dw){if(dw){dm=String(dw).toUpperCase()}else{dm=cn}if(dm==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(dw){cF=dw||aM};this.setGenerationTimeMs=function(dw){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dA,dC,dB,dx,dD,dy){var dz={pf_net:dA,pf_srv:dC,pf_tfr:dB,pf_dm1:dx,pf_dm2:dD,pf_onl:dy};try{dz=Q(dz,M);dz=B(dz);ct=l(dz);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(dw){ao("setPagePerformanceTiming: "+dw.toString())}};this.setReferrerUrl=function(dw){bu=dw};this.setCustomUrl=function(dw){ba=b1(bT,dw)
+};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(dw){bp=dw};this.setPageViewId=function(dw){aQ=dw;bH=true};this.setAPIUrl=function(dw){bO=dw};this.setDownloadClasses=function(dw){bR=x(dw)?[dw]:dw};this.setLinkClasses=function(dw){be=x(dw)?[dw]:dw};this.setCampaignNameKey=function(dw){cw=x(dw)?[dw]:dw};this.setCampaignKeywordKey=function(dw){bN=x(dw)?[dw]:dw};this.discardHashTag=function(dw){bV=dw};this.setCookieNamePrefix=function(dw){bq=dw;if(aV){aV=b3()}};this.setCookieDomain=function(dw){var dx=O(dw);if(!bs&&!bD(dx)){ao("Can't write cookie on domain "+dw)}else{c9=dx;bo()}};this.setExcludedQueryParams=function(dw){co=x(dw)?[dw]:dw};this.getCookieDomain=function(){return c9};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dy,dx,dw){if(!dy){throw new Error("Missing cookie name")}if(!M(dw)){dw=cu}bB.push(dy);dr(aY(dy),dx,dw,bw,c9,bY,aN)};this.getCookie=function(dx){var dw=aH(aY(dx));if(dw===0){return null}return dw};this.setCookiePath=function(dw){bw=dw;
+bo()};this.getCookiePath=function(dw){return bw};this.setVisitorCookieTimeout=function(dw){cU=dw*1000};this.setSessionCookieTimeout=function(dw){cu=dw*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(dw){dh=dw*1000};this.setConversionAttributionFirstReferrer=function(dw){bC=dw};this.setSecureCookie=function(dw){if(dw&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=dw};this.setCookieSameSite=function(dw){dw=String(dw);dw=dw.charAt(0).toUpperCase()+dw.toLowerCase().slice(1);if(dw!=="None"&&dw!=="Lax"&&dw!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");return}if(dw==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");dw="Lax"}}aN=dw};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs};this.setCookieConsentGiven=function(){if(bs&&!c0){bs=false;
+c8=true;if(cc&&aA){aR();var dw=cz("ping=1",null,"ping");bM(dw,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cN)};this.forgetCookieConsentGiven=function(){b5(cN,bw,c9);this.disableCookies()};this.rememberCookieConsentGiven=function(dx){if(dx){dx=dx*60*60*1000}else{dx=30*365*24*60*60*1000}this.setCookieConsentGiven();var dw=new Date().getTime();dr(cN,dw,dx,bw,c9,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(dx){var dw=g.doNotTrack||g.msDoNotTrack;c0=dx&&(dw==="yes"||dw==="1");if(c0){this.disableCookies()}};this.alwaysUseSendBeacon=function(){c7=true};this.disableAlwaysUseSendBeacon=function(){c7=false};this.addListener=function(dx,dw){av(dx,dw,false)};this.enableLinkTracking=function(dx){if(dk){return}dk=true;var dw=this;q(function(){au=true;var dy=J.body;av(dy,dx,true)})};this.enableJSErrorTracking=function(){if(c2){return}c2=true;
+var dw=W.onerror;W.onerror=function(dB,dz,dy,dA,dx){cm(function(){var dC="JavaScript Errors";var dD=dz+":"+dy;if(dA){dD+=":"+dA}if(P(cA,dC+dD+dB)===-1){cA.push(dC+dD+dB);ax(dC,dD,dB)}});if(dw){return dw(dB,dz,dy,dA,dx)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(dw){dw=Math.max(dw||15,5);bb=dw*1000;if(da!==null){dt()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(dw){if(W.location.protocol==="file:"){W.location=dw}};this.setCountPreRendered=function(dw){bk=dw};this.trackGoal=function(dw,dz,dy,dx){cm(function(){c3(dw,dz,dy,dx)})};this.trackLink=function(dx,dw,dz,dy){cm(function(){dd(dx,dw,dz,dy)
+})};this.getNumTrackedPageViews=function(){return cy};this.trackPageView=function(dw,dy,dx){cg=[];cV=[];cA=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cy++;b6(dw,dy,dx)})}};this.disableBrowserFeatureDetection=function(){c8=false};this.enableBrowserFeatureDetection=function(){c8=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var dw=w.findContentNodes();var dx=cJ(dw);bK.pushMultiple(dx)})})};this.trackVisibleContentImpressions=function(dw,dx){if(R(cc)){return}if(!M(dw)){dw=true}if(!M(dx)){dx=750}aX(dw,dx,this);cm(function(){n(function(){var dy=w.findContentNodes();var dz=bf(dy);bK.pushMultiple(dz)})})};this.trackContentImpression=function(dy,dw,dx){if(R(cc)){return}dy=a(dy);dw=a(dw);dx=a(dx);if(!dy){return}dw=dw||"Unknown";cm(function(){var dz=aK(dy,dw,dx);bK.push(dz)})};this.trackContentImpressionsWithinNode=function(dw){if(R(cc)||!dw){return}cm(function(){if(ck){n(function(){var dx=w.findContentNodesWithinNode(dw);var dy=bf(dx);
+bK.pushMultiple(dy)})}else{q(function(){var dx=w.findContentNodesWithinNode(dw);var dy=cJ(dx);bK.pushMultiple(dy)})}})};this.trackContentInteraction=function(dy,dz,dw,dx){if(R(cc)){return}dy=a(dy);dz=a(dz);dw=a(dw);dx=a(dx);if(!dy||!dz){return}dw=dw||"Unknown";cm(function(){var dA=aU(dy,dz,dw,dx);if(dA){bK.push(dA)}})};this.trackContentInteractionNode=function(dy,dx){if(R(cc)||!dy){return}var dw=null;cm(function(){dw=dn(dy,dx);if(dw){bK.push(dw)}});return dw};this.logAllContentBlocksOnPage=function(){var dy=w.findContentNodes();var dw=w.collectContent(dy);var dx=typeof console;if(dx!=="undefined"&&console&&console.log){console.log(dw)}};this.trackEvent=function(dx,dz,dw,dy,dB,dA){cm(function(){ax(dx,dz,dw,dy,dB,dA)})};this.trackSiteSearch=function(dw,dy,dx,dz){cg=[];cm(function(){ce(dw,dy,dx,dz)})};this.setEcommerceView=function(dA,dw,dy,dx){cB={};if(ac(dy)){dy=String(dy)}if(!M(dy)||dy===null||dy===false||!dy.length){dy=""}else{if(dy instanceof Array){dy=W.JSON.stringify(dy)}}var dz="_pkc";
+cB[dz]=dy;if(M(dx)&&dx!==null&&dx!==false&&String(dx).length){dz="_pkp";cB[dz]=dx}if(!ac(dA)&&!ac(dw)){return}if(ac(dA)){dz="_pks";cB[dz]=dA}if(!ac(dw)){dw=""}dz="_pkn";cB[dz]=dw};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(dc))};this.addEcommerceItem=function(dA,dw,dy,dx,dz){if(ac(dA)){dc[dA]=[String(dA),dw,dy,dx,dz]}};this.removeEcommerceItem=function(dw){if(ac(dw)){dw=String(dw);delete dc[dw]}};this.clearEcommerceCart=function(){dc={}};this.trackEcommerceOrder=function(dw,dA,dz,dy,dx,dB){b4(dw,dA,dz,dy,dx,dB)};this.trackEcommerceCartUpdate=function(dw){bz(dw)};this.trackRequest=function(dx,dz,dy,dw){cm(function(){var dA=cz(dx,dz,dw);bM(dA,bQ,dy)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(dw){if(dw<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=dw};this.queueRequest=function(dw){cm(function(){var dx=cz(dw);
+bK.push(dx)})};this.isConsentRequired=function(){return cK};this.getRememberedConsent=function(){var dw=aH(bj);if(aH(cW)){if(dw){b5(bj,bw,c9)}return null}if(!dw||dw===0){return null}return dw};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cK=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(dx){bJ=true;c8=true;b5(cW,bw,c9);var dy,dw;for(dy=0;dy<cV.length;dy++){dw=typeof cV[dy];if(dw==="string"){bM(cV[dy],bQ)}else{if(dw==="object"){ds(cV[dy],bQ)}}}cV=[];if(!M(dx)||dx){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dy){if(dy){dy=dy*60*60*1000}else{dy=30*365*24*60*60*1000}var dw=true;this.setConsentGiven(dw);var dx=new Date().getTime();dr(bj,dx,dy,bw,c9,bY,aN)};this.forgetConsentGiven=function(){var dw=30*365*24*60*60*1000;b5(bj,bw,c9);dr(cW,new Date().getTime(),dw,bw,c9,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()
+};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this]);u.addPlugin("TrackerVisitorIdCookie"+aB,{unload:function(){if(!aA){aR();dl()}}})}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams","setExcludedReferrers"];
+function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"visibilitychange",function(){if(m){return}if(J.visibilityState==="hidden"){ag("unload")}},false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})
+}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()
+}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
/*!!! pluginTrackerHook */
-(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()
-}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)
-}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
+(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;
+for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());
+if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}
/*!! @license-end */; \ No newline at end of file
diff --git a/plugins/API/Controller.php b/plugins/API/Controller.php
index e73cc6a37f..20679ecadc 100644
--- a/plugins/API/Controller.php
+++ b/plugins/API/Controller.php
@@ -193,13 +193,11 @@ class Controller extends \Piwik\Plugin\Controller
foreach ($glossaryItems as &$item) {
$item['letters'] = array();
foreach ($item['entries'] as &$entry) {
- $cleanEntryName = preg_replace('/["\']/', '', $entry['name']);
- $entry['letter'] = mb_strtoupper(substr($cleanEntryName, 0, 1));
- $item['letters'][] = $entry['letter'];
+ $cleanEntryName = mb_ereg_replace('["\']', '', $entry['name']);
+ $letter = mb_strtoupper(mb_substr($cleanEntryName, 0, 1));
+ $entry['letter'] = $letter;
+ $item['letters'][$letter] = $letter;
}
-
- $item['letters'] = array_unique($item['letters']);
- sort($item['letters']);
}
return $this->renderTemplate('glossary', array(
diff --git a/plugins/API/stylesheets/glossary.less b/plugins/API/stylesheets/glossary.less
index 9b275867bc..be8b418f3d 100644
--- a/plugins/API/stylesheets/glossary.less
+++ b/plugins/API/stylesheets/glossary.less
@@ -1,5 +1,5 @@
-.glossary .table-of-contents a {
+.glossary .pagination a {
box-sizing: content-box;
padding: 0 10px 5px;
&:hover, &.active {
@@ -8,4 +8,14 @@
border-left: none;
border-bottom: 2px solid @color-blue-piwik;
}
-} \ No newline at end of file
+}
+
+.glossary .pagination li {
+ // a {line-height: 30px + padding: 5px}
+ // vs standard .pagination li {height: 30px}
+ height: 35px;
+}
+
+.glossary .scrollspy {
+ padding-top: 2rem;
+}
diff --git a/plugins/API/templates/glossary.twig b/plugins/API/templates/glossary.twig
index 3138c195f6..0b7e471cfd 100644
--- a/plugins/API/templates/glossary.twig
+++ b/plugins/API/templates/glossary.twig
@@ -28,7 +28,7 @@
<div class="card-content">
<div style="background:#fff;width:100%" class="pushpin">
<h2 class="card-title">{{ item.title }}</h2>
- <ul class="pagination table-of-contents">
+ <ul class="pagination">
{% for letter in item.letters %}
<li class="waves-effect"><a href="#{{ keyword }}{{ letter }}">{{ letter }}</a></li>
{% endfor %}
@@ -39,7 +39,7 @@
{% if not lastLetter or lastLetter != entry.letter %}
{% if lastLetter %}</div>{% endif %}
{% set lastLetter = entry.letter %}
- <div class="section scrollspy" id="{{ keyword }}{{ lastLetter }}">
+ <div class="scrollspy" id="{{ keyword }}{{ lastLetter }}">
{% endif %}
<h3 style="color:#4183C4;font-weight: bold;">{{ entry.name }}</h3>
{% if entry.subtitle|default is not empty %}<p style="color:#999;text-transform:uppercase;font-weight:normal;margin-top:-16px;">{{ entry.subtitle|translate }}</p>{% endif %}
diff --git a/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.js b/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.js
index 4da56f4827..cf2e6107c0 100644
--- a/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.js
+++ b/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.js
@@ -1018,58 +1018,58 @@ SmtpSettingsvue_type_script_lang_ts.render = SmtpSettingsvue_type_template_id_a9
},
directiveName: 'matomoSmtpSettings'
}));
-// 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/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue?vue&type=template&id=79b5d52d
+// 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/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue?vue&type=template&id=ab152b6e
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_1 = {
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_1 = {
id: "js-code-options"
};
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_4 = ["innerHTML"];
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_5 = ["innerHTML"];
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_4 = ["innerHTML"];
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_5 = ["innerHTML"];
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_6 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_6 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_7 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_7 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_8 = ["innerHTML"];
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_8 = ["innerHTML"];
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_9 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_9 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_10 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_10 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_11 = ["innerHTML"];
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_11 = ["innerHTML"];
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_12 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_12 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_13 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_13 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_14 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_14 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-wordpress/",
target: "_blank",
rel: "noopener"
}, "WordPress", -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_16 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_16 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "https://matomo.org/faq/new-to-piwik/how-do-i-integrate-matomo-with-squarespace-website/",
target: "_blank",
rel: "noopener"
}, "Squarespace", -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_17 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_17 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_18 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_18 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-wix/",
target: "_blank",
rel: "noopener"
}, "Wix", -1);
-var JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_19 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
+var JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_19 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" | ");
var _hoisted_20 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "https://matomo.org/faq/how-to-install/faq_19424/",
@@ -1195,7 +1195,7 @@ var _hoisted_58 = {
var _hoisted_59 = {
class: "col s12"
};
-function JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_render(_ctx, _cache, $props, $setup, $data, $options) {
+function JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
var _component_ContentBlock = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ContentBlock");
@@ -1207,15 +1207,15 @@ function JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_render(_ctx, _cach
"content-title": _ctx.translate('CoreAdminHome_JavaScriptTracking')
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
- return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreAdminHome_JSTrackingIntro1')) + " ", 1), JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_2, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreAdminHome_JSTrackingIntro2')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreAdminHome_JSTrackingIntro1')) + " ", 1), JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_2, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreAdminHome_JSTrackingIntro2')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
innerHTML: _ctx.$sanitize(_ctx.jsTrackingIntro3a)
- }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_4), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_4), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
innerHTML: _ctx.$sanitize(' ' + _ctx.jsTrackingIntro3b)
- }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_5), JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_6, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_7, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_5), JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_6, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_7, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
innerHTML: _ctx.$sanitize(_ctx.jsTrackingIntro4a)
- }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_8), JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_9, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_8), JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_9, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
innerHTML: _ctx.$sanitize(_ctx.jsTrackingIntro5)
- }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_11), JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_12, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_13, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_InstallationGuides')) + " : ", 1), JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_14, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_15, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_16, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_17, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_18, JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_hoisted_19, _hoisted_20, _hoisted_21, _hoisted_22, _hoisted_23, _hoisted_24, _hoisted_25, _hoisted_26]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ }, null, 8, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_11), JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_12, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_13, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_InstallationGuides')) + " : ", 1), JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_14, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_15, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_16, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_17, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_18, JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_hoisted_19, _hoisted_20, _hoisted_21, _hoisted_22, _hoisted_23, _hoisted_24, _hoisted_25, _hoisted_26]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "site",
name: "js-tracker-website",
class: "jsTrackingCodeWebsite",
@@ -1414,7 +1414,7 @@ function JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_render(_ctx, _cach
_: 1
}, 8, ["content-title"]);
}
-// CONCATENATED MODULE: ./plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue?vue&type=template&id=79b5d52d
+// CONCATENATED MODULE: ./plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue?vue&type=template&id=ab152b6e
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue?vue&type=script&lang=ts
@@ -1454,6 +1454,7 @@ var piwikPath = window.location.pathname.substring(0, window.location.pathname.l
isLoading: false,
siteUrls: {},
siteExcludedQueryParams: {},
+ siteExcludedReferrers: {},
crossDomain: false,
groupByDomain: false,
trackAllAliases: false,
@@ -1523,6 +1524,21 @@ var piwikPath = window.location.pathname.substring(0, window.location.pathname.l
}));
}
+ if (!this.siteExcludedReferrers[idSite]) {
+ this.isLoading = true;
+ promises.push(external_CoreHome_["AjaxHelper"].fetch({
+ module: 'API',
+ method: 'SitesManager.getExcludedReferrers',
+ idSite: idSite,
+ filter_limit: '-1'
+ }).then(function (data) {
+ _this.siteExcludedReferrers[idSite] = [];
+ Object.values(data || []).forEach(function (referrer) {
+ _this.siteExcludedReferrers[idSite].push(referrer.replace(/^https?:\/\//, ''));
+ });
+ }));
+ }
+
Promise.all(promises).then(function () {
_this.isLoading = false;
@@ -1570,6 +1586,10 @@ var piwikPath = window.location.pathname.substring(0, window.location.pathname.l
params.excludedQueryParams = this.siteExcludedQueryParams[site.id];
}
+ if (this.siteExcludedReferrers[site.id]) {
+ params.excludedReferrers = this.siteExcludedReferrers[site.id];
+ }
+
if (this.useCustomCampaignParams) {
params.customCampaignNameQueryParam = this.customCampaignName;
params.customCampaignKeywordParam = this.customCampaignKeyword;
@@ -1694,7 +1714,7 @@ var piwikPath = window.location.pathname.substring(0, window.location.pathname.l
-JsTrackingCodeGeneratorvue_type_script_lang_ts.render = JsTrackingCodeGeneratorvue_type_template_id_79b5d52d_render
+JsTrackingCodeGeneratorvue_type_script_lang_ts.render = JsTrackingCodeGeneratorvue_type_template_id_ab152b6e_render
/* harmony default export */ var JsTrackingCodeGenerator = (JsTrackingCodeGeneratorvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.adapter.ts
diff --git a/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.min.js b/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.min.js
index 43ed78a9bb..ca6d66fbb6 100644
--- a/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.min.js
+++ b/plugins/CoreAdminHome/vue/dist/CoreAdminHome.umd.min.js
@@ -1,28 +1,28 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["CoreAdminHome"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["CoreAdminHome"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(o,a,function(t){return e[t]}.bind(null,a));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CoreAdminHome/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"ArchivingSettings",(function(){return E})),n.d(t,"BrandingSettings",(function(){return Y})),n.d(t,"SmtpSettings",(function(){return te})),n.d(t,"JsTrackingCodeGenerator",(function(){return bt})),n.d(t,"ImageTrackingCodeGenerator",(function(){return Gt})),n.d(t,"TrackingFailures",(function(){return bn})),"undefined"!==typeof window){var o=window.document.currentScript,a=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);a&&(n.p=a[1])}var r=n("19dc"),i=n("8bbf"),l={class:"form-group row"},c={class:"col s12"},s={class:"col s12 m6"},d={class:"form-description",style:{"margin-left":"4px"}},u={for:"enableBrowserTriggerArchiving2"},m=["innerHTML"],g={class:"col s12 m6"},p=["innerHTML"],b={class:"form-group row"},h={class:"col s12"},j={class:"input-field col s12 m6"},v=["disabled"],f={class:"form-description"},O={class:"col s12 m6"},C={key:0,class:"form-help"},k={key:0},V=Object(i["createElementVNode"])("br",null,null,-1),S=Object(i["createElementVNode"])("br",null,null,-1),N=Object(i["createElementVNode"])("br",null,null,-1);function y(e,t,n,o,a,r){var y=Object(i["resolveComponent"])("SaveButton"),T=Object(i["resolveComponent"])("ContentBlock");return Object(i["openBlock"])(),Object(i["createBlock"])(T,{"content-title":e.translate("CoreAdminHome_ArchivingSettings"),anchor:"archivingSettings",class:"matomo-archiving-settings"},{default:Object(i["withCtx"])((function(){return[Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("div",l,[Object(i["createElementVNode"])("h3",c,Object(i["toDisplayString"])(e.translate("General_AllowPiwikArchivingToTriggerBrowser")),1),Object(i["createElementVNode"])("div",s,[Object(i["createElementVNode"])("p",null,[Object(i["createElementVNode"])("label",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"radio",id:"enableBrowserTriggerArchiving1",name:"enableBrowserTriggerArchiving",value:"1","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.enableBrowserTriggerArchivingValue=t})},null,512),[[i["vModelRadio"],e.enableBrowserTriggerArchivingValue]]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.translate("General_Yes")),1),Object(i["createElementVNode"])("span",d,Object(i["toDisplayString"])(e.translate("General_Default")),1)])]),Object(i["createElementVNode"])("p",null,[Object(i["createElementVNode"])("label",u,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"radio",id:"enableBrowserTriggerArchiving2",name:"enableBrowserTriggerArchiving",value:"0","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.enableBrowserTriggerArchivingValue=t})},null,512),[[i["vModelRadio"],e.enableBrowserTriggerArchivingValue]]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.translate("General_No")),1),Object(i["createElementVNode"])("span",{class:"form-description",innerHTML:e.$sanitize(e.archivingTriggerDesc),style:{"margin-left":"4px"}},null,8,m)])])]),Object(i["createElementVNode"])("div",g,[Object(i["createElementVNode"])("div",{class:"form-help",innerHTML:e.$sanitize(e.archivingInlineHelp)},null,8,p)])]),Object(i["createElementVNode"])("div",b,[Object(i["createElementVNode"])("h3",h,Object(i["toDisplayString"])(e.translate("General_ReportsContainingTodayWillBeProcessedAtMostEvery")),1),Object(i["createElementVNode"])("div",j,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.todayArchiveTimeToLiveValue=t}),id:"todayArchiveTimeToLive",disabled:!e.isGeneralSettingsAdminEnabled},null,8,v),[[i["vModelText"],e.todayArchiveTimeToLiveValue]]),Object(i["createElementVNode"])("span",f,Object(i["toDisplayString"])(e.translate("General_RearchiveTimeIntervalOnlyForTodayReports")),1)]),Object(i["createElementVNode"])("div",O,[e.isGeneralSettingsAdminEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",C,[e.showWarningCron?(Object(i["openBlock"])(),Object(i["createElementBlock"])("strong",k,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("General_NewReportsWillBeProcessedByCron")),1),V,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_ReportsWillBeProcessedAtMostEveryHour"))+" "+Object(i["toDisplayString"])(e.translate("General_IfArchivingIsFastYouCanSetupCronRunMoreOften")),1),S])):Object(i["createCommentVNode"])("",!0),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_SmallTrafficYouCanLeaveDefault",e.todayArchiveTimeToLiveDefault))+" ",1),N,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_MediumToHighTrafficItIsRecommendedTo",1800,3600)),1)])):Object(i["createCommentVNode"])("",!0)])]),Object(i["createElementVNode"])("div",null,[Object(i["createVNode"])(y,{saving:e.isLoading,onConfirm:t[3]||(t[3]=function(t){return e.save()})},null,8,["saving"])])])]})),_:1},8,["content-title"])}var T=n("a5a2"),A=Object(i["defineComponent"])({props:{enableBrowserTriggerArchiving:Boolean,showSegmentArchiveTriggerInfo:Boolean,isGeneralSettingsAdminEnabled:Boolean,showWarningCron:Boolean,todayArchiveTimeToLive:Number,todayArchiveTimeToLiveDefault:Number},components:{ContentBlock:r["ContentBlock"],SaveButton:T["SaveButton"]},data:function(){return{isLoading:!1,enableBrowserTriggerArchivingValue:this.enableBrowserTriggerArchiving?1:0,todayArchiveTimeToLiveValue:this.todayArchiveTimeToLive}},watch:{enableBrowserTriggerArchiving:function(e){this.enableBrowserTriggerArchivingValue=e?1:0},todayArchiveTimeToLive:function(e){this.todayArchiveTimeToLiveValue=e}},computed:{archivingTriggerDesc:function(){var e="";return e+=Object(r["translate"])("General_ArchivingTriggerDescription",'<a target="_blank" rel="noreferrer noopener" href="https://matomo.org/docs/setup-auto-archiving/">',"</a>"),this.showSegmentArchiveTriggerInfo&&(e+=Object(r["translate"])("General_ArchivingTriggerSegment")),e},archivingInlineHelp:function(){var e=Object(r["translate"])("General_ArchivingInlineHelp");return e+="<br/>",e+=Object(r["translate"])("General_SeeTheOfficialDocumentationForMoreInformation",'<a target="_blank" rel="noreferrer noopener" href="https://matomo.org/docs/setup-auto-archiving/">',"</a>"),e}},methods:{save:function(){var e=this;this.isLoading=!0,r["AjaxHelper"].post({module:"API",method:"CoreAdminHome.setArchiveSettings"},{enableBrowserTriggerArchiving:this.enableBrowserTriggerArchivingValue,todayArchiveTimeToLive:this.todayArchiveTimeToLiveValue}).then((function(){e.isLoading=!1;var t=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(t)})).finally((function(){e.isLoading=!1}))}}});A.render=y;var E=A,w=(Object(r["createAngularJsAdapter"])({component:E,scope:{enableBrowserTriggerArchiving:{angularJsBind:"<"},showSegmentArchiveTriggerInfo:{angularJsBind:"<"},isGeneralSettingsAdminEnabled:{angularJsBind:"<"},showWarningCron:{angularJsBind:"<"},todayArchiveTimeToLive:{angularJsBind:"<"},todayArchiveTimeToLiveDefault:{angularJsBind:"<"}},directiveName:"matomoArchivingSettings"}),{id:"logoSettings"}),_={id:"logoUploadForm",ref:"logoUploadForm",method:"post",enctype:"multipart/form-data",action:"index.php?module=CoreAdminHome&format=json&action=uploadCustomLogo"},H={key:0},D=["value"],B=Object(i["createElementVNode"])("input",{type:"hidden",name:"force_api_session",value:"1"},null,-1),L={key:0},U={key:0,class:"alert alert-warning uploaderror"},x={class:"row"},F={class:"col s12"},I=["src"],G={class:"row"},P={class:"col s12"},M=["src"],J={key:1},q=["innerHTML"],R={key:1},W={class:"alert alert-warning"};
+(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["CoreAdminHome"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["CoreAdminHome"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(o,a,function(t){return e[t]}.bind(null,a));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CoreAdminHome/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"ArchivingSettings",(function(){return E})),n.d(t,"BrandingSettings",(function(){return Y})),n.d(t,"SmtpSettings",(function(){return te})),n.d(t,"JsTrackingCodeGenerator",(function(){return bt})),n.d(t,"ImageTrackingCodeGenerator",(function(){return Gt})),n.d(t,"TrackingFailures",(function(){return bn})),"undefined"!==typeof window){var o=window.document.currentScript,a=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);a&&(n.p=a[1])}var r=n("19dc"),i=n("8bbf"),l={class:"form-group row"},c={class:"col s12"},s={class:"col s12 m6"},d={class:"form-description",style:{"margin-left":"4px"}},u={for:"enableBrowserTriggerArchiving2"},m=["innerHTML"],g={class:"col s12 m6"},p=["innerHTML"],b={class:"form-group row"},h={class:"col s12"},j={class:"input-field col s12 m6"},v=["disabled"],f={class:"form-description"},O={class:"col s12 m6"},C={key:0,class:"form-help"},k={key:0},V=Object(i["createElementVNode"])("br",null,null,-1),S=Object(i["createElementVNode"])("br",null,null,-1),N=Object(i["createElementVNode"])("br",null,null,-1);function y(e,t,n,o,a,r){var y=Object(i["resolveComponent"])("SaveButton"),T=Object(i["resolveComponent"])("ContentBlock");return Object(i["openBlock"])(),Object(i["createBlock"])(T,{"content-title":e.translate("CoreAdminHome_ArchivingSettings"),anchor:"archivingSettings",class:"matomo-archiving-settings"},{default:Object(i["withCtx"])((function(){return[Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("div",l,[Object(i["createElementVNode"])("h3",c,Object(i["toDisplayString"])(e.translate("General_AllowPiwikArchivingToTriggerBrowser")),1),Object(i["createElementVNode"])("div",s,[Object(i["createElementVNode"])("p",null,[Object(i["createElementVNode"])("label",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"radio",id:"enableBrowserTriggerArchiving1",name:"enableBrowserTriggerArchiving",value:"1","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.enableBrowserTriggerArchivingValue=t})},null,512),[[i["vModelRadio"],e.enableBrowserTriggerArchivingValue]]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.translate("General_Yes")),1),Object(i["createElementVNode"])("span",d,Object(i["toDisplayString"])(e.translate("General_Default")),1)])]),Object(i["createElementVNode"])("p",null,[Object(i["createElementVNode"])("label",u,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"radio",id:"enableBrowserTriggerArchiving2",name:"enableBrowserTriggerArchiving",value:"0","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.enableBrowserTriggerArchivingValue=t})},null,512),[[i["vModelRadio"],e.enableBrowserTriggerArchivingValue]]),Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.translate("General_No")),1),Object(i["createElementVNode"])("span",{class:"form-description",innerHTML:e.$sanitize(e.archivingTriggerDesc),style:{"margin-left":"4px"}},null,8,m)])])]),Object(i["createElementVNode"])("div",g,[Object(i["createElementVNode"])("div",{class:"form-help",innerHTML:e.$sanitize(e.archivingInlineHelp)},null,8,p)])]),Object(i["createElementVNode"])("div",b,[Object(i["createElementVNode"])("h3",h,Object(i["toDisplayString"])(e.translate("General_ReportsContainingTodayWillBeProcessedAtMostEvery")),1),Object(i["createElementVNode"])("div",j,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.todayArchiveTimeToLiveValue=t}),id:"todayArchiveTimeToLive",disabled:!e.isGeneralSettingsAdminEnabled},null,8,v),[[i["vModelText"],e.todayArchiveTimeToLiveValue]]),Object(i["createElementVNode"])("span",f,Object(i["toDisplayString"])(e.translate("General_RearchiveTimeIntervalOnlyForTodayReports")),1)]),Object(i["createElementVNode"])("div",O,[e.isGeneralSettingsAdminEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",C,[e.showWarningCron?(Object(i["openBlock"])(),Object(i["createElementBlock"])("strong",k,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("General_NewReportsWillBeProcessedByCron")),1),V,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_ReportsWillBeProcessedAtMostEveryHour"))+" "+Object(i["toDisplayString"])(e.translate("General_IfArchivingIsFastYouCanSetupCronRunMoreOften")),1),S])):Object(i["createCommentVNode"])("",!0),Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_SmallTrafficYouCanLeaveDefault",e.todayArchiveTimeToLiveDefault))+" ",1),N,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_MediumToHighTrafficItIsRecommendedTo",1800,3600)),1)])):Object(i["createCommentVNode"])("",!0)])]),Object(i["createElementVNode"])("div",null,[Object(i["createVNode"])(y,{saving:e.isLoading,onConfirm:t[3]||(t[3]=function(t){return e.save()})},null,8,["saving"])])])]})),_:1},8,["content-title"])}var T=n("a5a2"),A=Object(i["defineComponent"])({props:{enableBrowserTriggerArchiving:Boolean,showSegmentArchiveTriggerInfo:Boolean,isGeneralSettingsAdminEnabled:Boolean,showWarningCron:Boolean,todayArchiveTimeToLive:Number,todayArchiveTimeToLiveDefault:Number},components:{ContentBlock:r["ContentBlock"],SaveButton:T["SaveButton"]},data:function(){return{isLoading:!1,enableBrowserTriggerArchivingValue:this.enableBrowserTriggerArchiving?1:0,todayArchiveTimeToLiveValue:this.todayArchiveTimeToLive}},watch:{enableBrowserTriggerArchiving:function(e){this.enableBrowserTriggerArchivingValue=e?1:0},todayArchiveTimeToLive:function(e){this.todayArchiveTimeToLiveValue=e}},computed:{archivingTriggerDesc:function(){var e="";return e+=Object(r["translate"])("General_ArchivingTriggerDescription",'<a target="_blank" rel="noreferrer noopener" href="https://matomo.org/docs/setup-auto-archiving/">',"</a>"),this.showSegmentArchiveTriggerInfo&&(e+=Object(r["translate"])("General_ArchivingTriggerSegment")),e},archivingInlineHelp:function(){var e=Object(r["translate"])("General_ArchivingInlineHelp");return e+="<br/>",e+=Object(r["translate"])("General_SeeTheOfficialDocumentationForMoreInformation",'<a target="_blank" rel="noreferrer noopener" href="https://matomo.org/docs/setup-auto-archiving/">',"</a>"),e}},methods:{save:function(){var e=this;this.isLoading=!0,r["AjaxHelper"].post({module:"API",method:"CoreAdminHome.setArchiveSettings"},{enableBrowserTriggerArchiving:this.enableBrowserTriggerArchivingValue,todayArchiveTimeToLive:this.todayArchiveTimeToLiveValue}).then((function(){e.isLoading=!1;var t=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(t)})).finally((function(){e.isLoading=!1}))}}});A.render=y;var E=A,w=(Object(r["createAngularJsAdapter"])({component:E,scope:{enableBrowserTriggerArchiving:{angularJsBind:"<"},showSegmentArchiveTriggerInfo:{angularJsBind:"<"},isGeneralSettingsAdminEnabled:{angularJsBind:"<"},showWarningCron:{angularJsBind:"<"},todayArchiveTimeToLive:{angularJsBind:"<"},todayArchiveTimeToLiveDefault:{angularJsBind:"<"}},directiveName:"matomoArchivingSettings"}),{id:"logoSettings"}),_={id:"logoUploadForm",ref:"logoUploadForm",method:"post",enctype:"multipart/form-data",action:"index.php?module=CoreAdminHome&format=json&action=uploadCustomLogo"},H={key:0},D=["value"],B=Object(i["createElementVNode"])("input",{type:"hidden",name:"force_api_session",value:"1"},null,-1),L={key:0},x={key:0,class:"alert alert-warning uploaderror"},U={class:"row"},F={class:"col s12"},I=["src"],G={class:"row"},P={class:"col s12"},M=["src"],J={key:1},q=["innerHTML"],R={key:1},W={class:"alert alert-warning"};
/*!
* 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,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("SaveButton"),s=Object(i["resolveComponent"])("ContentBlock"),d=Object(i["resolveDirective"])("form");return Object(i["openBlock"])(),Object(i["createBlock"])(s,{"content-title":e.translate("CoreAdminHome_BrandingSettings"),anchor:"brandingSettings"},{default:Object(i["withCtx"])((function(){return[Object(i["withDirectives"])(Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_CustomLogoHelpText")),1),Object(i["createVNode"])(l,{name:"useCustomLogo",uicontrol:"checkbox","model-value":e.enabled,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onUseCustomLogoChange(t)}),title:e.translate("CoreAdminHome_UseCustomLogo"),"inline-help":e.help},null,8,["model-value","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",w,[Object(i["createElementVNode"])("form",_,[e.fileUploadEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",H,[Object(i["createElementVNode"])("input",{type:"hidden",name:"token_auth",value:e.tokenAuth},null,8,D),B,e.logosWriteable?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",L,[Object(i["createVNode"])(i["Transition"],{name:"fade-out"},{default:Object(i["withCtx"])((function(){return[e.showUploadError?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",U,Object(i["toDisplayString"])(e.translate("CoreAdminHome_LogoUploadFailed")),1)):Object(i["createCommentVNode"])("",!0)]})),_:1}),Object(i["createVNode"])(l,{uicontrol:"file",name:"customLogo","model-value":e.customLogo,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.onCustomLogoChange(t)}),title:e.translate("CoreAdminHome_LogoUpload"),"inline-help":e.translate("CoreAdminHome_LogoUploadHelp","JPG / PNG / GIF","110")},null,8,["model-value","title","inline-help"]),Object(i["createElementVNode"])("div",x,[Object(i["createElementVNode"])("div",F,[Object(i["createElementVNode"])("img",{src:e.pathUserLogoWithBuster,id:"currentLogo",style:{"max-height":"150px"},ref:"currentLogo"},null,8,I)])]),Object(i["createVNode"])(l,{uicontrol:"file",name:"customFavicon","model-value":e.customFavicon,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.onFaviconChange(t)}),title:e.translate("CoreAdminHome_FaviconUpload"),"inline-help":e.translate("CoreAdminHome_LogoUploadHelp","JPG / PNG / GIF","16")},null,8,["model-value","title","inline-help"]),Object(i["createElementVNode"])("div",G,[Object(i["createElementVNode"])("div",P,[Object(i["createElementVNode"])("img",{src:e.pathUserFaviconWithBuster,id:"currentFavicon",width:"16",height:"16",ref:"currentFavicon"},null,8,M)])])])):Object(i["createCommentVNode"])("",!0),e.logosWriteable?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",J,[Object(i["createElementVNode"])("div",{class:"alert alert-warning",innerHTML:e.$sanitize(e.logosNotWriteableWarning)},null,8,q)]))])):Object(i["createCommentVNode"])("",!0),e.fileUploadEnabled?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",R,[Object(i["createElementVNode"])("div",W,Object(i["toDisplayString"])(e.translate("CoreAdminHome_FileUploadDisabled","file_uploads=1")),1)]))],512)],512),[[i["vShow"],e.enabled]]),Object(i["createVNode"])(c,{onConfirm:t[3]||(t[3]=function(t){return e.save()}),saving:e.isLoading},null,8,["saving"])],512),[[d]])]})),_:1},8,["content-title"])}var K=window,z=K.$,Q=Object(i["defineComponent"])({props:{fileUploadEnabled:{type:Boolean,required:!0},logosWriteable:{type:Boolean,required:!0},useCustomLogo:{type:Boolean,required:!0},pathUserLogoDirectory:{type:String,required:!0},pathUserLogo:{type:String,required:!0},pathUserLogoSmall:{type:String,required:!0},pathUserLogoSvg:{type:String,required:!0},hasUserLogo:{type:Boolean,required:!0},pathUserFavicon:{type:String,required:!0},hasUserFavicon:{type:Boolean,required:!0},isPluginsAdminEnabled:{type:Boolean,required:!0}},components:{Field:T["Field"],ContentBlock:r["ContentBlock"],SaveButton:T["SaveButton"]},directives:{Form:T["Form"]},data:function(){return{isLoading:!1,enabled:this.useCustomLogo,customLogo:this.pathUserLogo,customFavicon:this.pathUserFavicon,showUploadError:!1,currentLogoSrcExists:this.hasUserLogo,currentFaviconSrcExists:this.hasUserFavicon,currentLogoCacheBuster:(new Date).getTime(),currentFaviconCacheBuster:(new Date).getTime()}},computed:{tokenAuth:function(){return r["Matomo"].token_auth},logosNotWriteableWarning:function(){return Object(r["translate"])("CoreAdminHome_LogoNotWriteableInstruction","<code>".concat(this.pathUserLogoDirectory,"</code><br/>"),"".concat(this.pathUserLogo,", ").concat(this.pathUserLogoSmall,", ").concat(this.pathUserLogoSvg))},help:function(){if(this.isPluginsAdminEnabled){var e='"'.concat(Object(r["translate"])("General_GiveUsYourFeedback"),'"'),t='<a href="?module=CorePluginsAdmin&action=plugins" rel="noreferrer noopener" target="_blank">';return Object(r["translate"])("CoreAdminHome_CustomLogoFeedbackInfo",e,t,"</a>")}},pathUserLogoWithBuster:function(){return this.currentLogoSrcExists&&this.pathUserLogo?"".concat(this.pathUserLogo,"?").concat(this.currentLogoCacheBuster):""},pathUserFaviconWithBuster:function(){return this.currentFaviconSrcExists&&this.pathUserFavicon?"".concat(this.pathUserFavicon,"?").concat(this.currentFaviconCacheBuster):""}},methods:{onUseCustomLogoChange:function(e){this.enabled=e},onCustomLogoChange:function(e){this.customLogo=e,this.updateLogo()},onFaviconChange:function(e){this.customFavicon=e,this.updateLogo()},save:function(){var e=this;this.isLoading=!0,r["AjaxHelper"].post({module:"API",method:"CoreAdminHome.setBrandingSettings"},{useCustomLogo:this.enabled?"1":"0"}).then((function(){var e=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(e)})).finally((function(){e.isLoading=!1}))},updateLogo:function(){var e=this,t=!!this.customLogo,n=!!this.customFavicon;if(t||n){this.showUploadError=!1;var o="upload".concat((new Date).getTime()),a=z('<iframe name="'.concat(o,'" />'));a.css("display","none"),a.on("load",(function(){setTimeout((function(){var o=(z(a.contents()).find("body").html()||"").trim();"0"===o?e.showUploadError=!0:(t&&(e.currentLogoSrcExists=!0,e.currentLogoCacheBuster=(new Date).getTime()),n&&(e.currentFaviconSrcExists=!0,e.currentFaviconCacheBuster=(new Date).getTime())),"1"!==o&&"0"!==o||a.remove()}),1e3)})),z("body:first").append(a);var r=z(this.$refs.logoUploadForm);r.attr("target",o),r.submit(),this.customLogo="",this.customFavicon=""}}}});Q.render=$;var Y=Q,X=(Object(r["createAngularJsAdapter"])({component:Y,scope:{fileUploadEnabled:{angularJsBind:"<"},logosWriteable:{angularJsBind:"<"},useCustomLogo:{angularJsBind:"<"},pathUserLogoDirectory:{angularJsBind:"<"},pathUserLogo:{angularJsBind:"<"},pathUserLogoSmall:{angularJsBind:"<"},pathUserLogoSvg:{angularJsBind:"<"},hasUserLogo:{angularJsBind:"<"},pathUserFavicon:{angularJsBind:"<"},hasUserFavicon:{angularJsBind:"<"},isPluginsAdminEnabled:{angularJsBind:"<"}},directiveName:"matomoBrandingSettings"}),{id:"smtpSettings"});
+ */function $(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("SaveButton"),s=Object(i["resolveComponent"])("ContentBlock"),d=Object(i["resolveDirective"])("form");return Object(i["openBlock"])(),Object(i["createBlock"])(s,{"content-title":e.translate("CoreAdminHome_BrandingSettings"),anchor:"brandingSettings"},{default:Object(i["withCtx"])((function(){return[Object(i["withDirectives"])(Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_CustomLogoHelpText")),1),Object(i["createVNode"])(l,{name:"useCustomLogo",uicontrol:"checkbox","model-value":e.enabled,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onUseCustomLogoChange(t)}),title:e.translate("CoreAdminHome_UseCustomLogo"),"inline-help":e.help},null,8,["model-value","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",w,[Object(i["createElementVNode"])("form",_,[e.fileUploadEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",H,[Object(i["createElementVNode"])("input",{type:"hidden",name:"token_auth",value:e.tokenAuth},null,8,D),B,e.logosWriteable?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",L,[Object(i["createVNode"])(i["Transition"],{name:"fade-out"},{default:Object(i["withCtx"])((function(){return[e.showUploadError?(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",x,Object(i["toDisplayString"])(e.translate("CoreAdminHome_LogoUploadFailed")),1)):Object(i["createCommentVNode"])("",!0)]})),_:1}),Object(i["createVNode"])(l,{uicontrol:"file",name:"customLogo","model-value":e.customLogo,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.onCustomLogoChange(t)}),title:e.translate("CoreAdminHome_LogoUpload"),"inline-help":e.translate("CoreAdminHome_LogoUploadHelp","JPG / PNG / GIF","110")},null,8,["model-value","title","inline-help"]),Object(i["createElementVNode"])("div",U,[Object(i["createElementVNode"])("div",F,[Object(i["createElementVNode"])("img",{src:e.pathUserLogoWithBuster,id:"currentLogo",style:{"max-height":"150px"},ref:"currentLogo"},null,8,I)])]),Object(i["createVNode"])(l,{uicontrol:"file",name:"customFavicon","model-value":e.customFavicon,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.onFaviconChange(t)}),title:e.translate("CoreAdminHome_FaviconUpload"),"inline-help":e.translate("CoreAdminHome_LogoUploadHelp","JPG / PNG / GIF","16")},null,8,["model-value","title","inline-help"]),Object(i["createElementVNode"])("div",G,[Object(i["createElementVNode"])("div",P,[Object(i["createElementVNode"])("img",{src:e.pathUserFaviconWithBuster,id:"currentFavicon",width:"16",height:"16",ref:"currentFavicon"},null,8,M)])])])):Object(i["createCommentVNode"])("",!0),e.logosWriteable?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",J,[Object(i["createElementVNode"])("div",{class:"alert alert-warning",innerHTML:e.$sanitize(e.logosNotWriteableWarning)},null,8,q)]))])):Object(i["createCommentVNode"])("",!0),e.fileUploadEnabled?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",R,[Object(i["createElementVNode"])("div",W,Object(i["toDisplayString"])(e.translate("CoreAdminHome_FileUploadDisabled","file_uploads=1")),1)]))],512)],512),[[i["vShow"],e.enabled]]),Object(i["createVNode"])(c,{onConfirm:t[3]||(t[3]=function(t){return e.save()}),saving:e.isLoading},null,8,["saving"])],512),[[d]])]})),_:1},8,["content-title"])}var K=window,z=K.$,Q=Object(i["defineComponent"])({props:{fileUploadEnabled:{type:Boolean,required:!0},logosWriteable:{type:Boolean,required:!0},useCustomLogo:{type:Boolean,required:!0},pathUserLogoDirectory:{type:String,required:!0},pathUserLogo:{type:String,required:!0},pathUserLogoSmall:{type:String,required:!0},pathUserLogoSvg:{type:String,required:!0},hasUserLogo:{type:Boolean,required:!0},pathUserFavicon:{type:String,required:!0},hasUserFavicon:{type:Boolean,required:!0},isPluginsAdminEnabled:{type:Boolean,required:!0}},components:{Field:T["Field"],ContentBlock:r["ContentBlock"],SaveButton:T["SaveButton"]},directives:{Form:T["Form"]},data:function(){return{isLoading:!1,enabled:this.useCustomLogo,customLogo:this.pathUserLogo,customFavicon:this.pathUserFavicon,showUploadError:!1,currentLogoSrcExists:this.hasUserLogo,currentFaviconSrcExists:this.hasUserFavicon,currentLogoCacheBuster:(new Date).getTime(),currentFaviconCacheBuster:(new Date).getTime()}},computed:{tokenAuth:function(){return r["Matomo"].token_auth},logosNotWriteableWarning:function(){return Object(r["translate"])("CoreAdminHome_LogoNotWriteableInstruction","<code>".concat(this.pathUserLogoDirectory,"</code><br/>"),"".concat(this.pathUserLogo,", ").concat(this.pathUserLogoSmall,", ").concat(this.pathUserLogoSvg))},help:function(){if(this.isPluginsAdminEnabled){var e='"'.concat(Object(r["translate"])("General_GiveUsYourFeedback"),'"'),t='<a href="?module=CorePluginsAdmin&action=plugins" rel="noreferrer noopener" target="_blank">';return Object(r["translate"])("CoreAdminHome_CustomLogoFeedbackInfo",e,t,"</a>")}},pathUserLogoWithBuster:function(){return this.currentLogoSrcExists&&this.pathUserLogo?"".concat(this.pathUserLogo,"?").concat(this.currentLogoCacheBuster):""},pathUserFaviconWithBuster:function(){return this.currentFaviconSrcExists&&this.pathUserFavicon?"".concat(this.pathUserFavicon,"?").concat(this.currentFaviconCacheBuster):""}},methods:{onUseCustomLogoChange:function(e){this.enabled=e},onCustomLogoChange:function(e){this.customLogo=e,this.updateLogo()},onFaviconChange:function(e){this.customFavicon=e,this.updateLogo()},save:function(){var e=this;this.isLoading=!0,r["AjaxHelper"].post({module:"API",method:"CoreAdminHome.setBrandingSettings"},{useCustomLogo:this.enabled?"1":"0"}).then((function(){var e=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(e)})).finally((function(){e.isLoading=!1}))},updateLogo:function(){var e=this,t=!!this.customLogo,n=!!this.customFavicon;if(t||n){this.showUploadError=!1;var o="upload".concat((new Date).getTime()),a=z('<iframe name="'.concat(o,'" />'));a.css("display","none"),a.on("load",(function(){setTimeout((function(){var o=(z(a.contents()).find("body").html()||"").trim();"0"===o?e.showUploadError=!0:(t&&(e.currentLogoSrcExists=!0,e.currentLogoCacheBuster=(new Date).getTime()),n&&(e.currentFaviconSrcExists=!0,e.currentFaviconCacheBuster=(new Date).getTime())),"1"!==o&&"0"!==o||a.remove()}),1e3)})),z("body:first").append(a);var r=z(this.$refs.logoUploadForm);r.attr("target",o),r.submit(),this.customLogo="",this.customFavicon=""}}}});Q.render=$;var Y=Q,X=(Object(r["createAngularJsAdapter"])({component:Y,scope:{fileUploadEnabled:{angularJsBind:"<"},logosWriteable:{angularJsBind:"<"},useCustomLogo:{angularJsBind:"<"},pathUserLogoDirectory:{angularJsBind:"<"},pathUserLogo:{angularJsBind:"<"},pathUserLogoSmall:{angularJsBind:"<"},pathUserLogoSvg:{angularJsBind:"<"},hasUserLogo:{angularJsBind:"<"},pathUserFavicon:{angularJsBind:"<"},hasUserFavicon:{angularJsBind:"<"},isPluginsAdminEnabled:{angularJsBind:"<"}},directiveName:"matomoBrandingSettings"}),{id:"smtpSettings"});
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Z(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("SaveButton"),s=Object(i["resolveComponent"])("ContentBlock"),d=Object(i["resolveDirective"])("form");return Object(i["openBlock"])(),Object(i["createBlock"])(s,{"content-title":e.translate("CoreAdminHome_EmailServerSettings"),anchor:"mailSettings"},{default:Object(i["withCtx"])((function(){return[Object(i["withDirectives"])(Object(i["createElementVNode"])("div",null,[Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"mailUseSmtp",modelValue:e.enabled,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.enabled=t}),title:e.translate("General_UseSMTPServerForEmail"),"inline-help":e.translate("General_SelectYesIfYouWantToSendEmailsViaServer")},null,8,["modelValue","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",X,[Object(i["createVNode"])(l,{uicontrol:"text",name:"mailHost","model-value":e.mailHost,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.onUpdateMailHost(t)}),title:e.translate("General_SmtpServerAddress")},null,8,["model-value","title"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailPort",modelValue:e.mailPort,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.mailPort=t}),title:e.translate("General_SmtpPort"),"inline-help":e.translate("General_OptionalSmtpPort")},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"select",name:"mailType",modelValue:e.mailType,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.mailType=t}),title:e.translate("General_AuthenticationMethodSmtp"),options:e.mailTypes,"inline-help":e.translate("General_OnlyUsedIfUserPwdIsSet")},null,8,["modelValue","title","options","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailUsername",modelValue:e.mailUsername,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.mailUsername=t}),title:e.translate("General_SmtpUsername"),"inline-help":e.translate("General_OnlyEnterIfRequired"),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"password",name:"mailPassword","model-value":e.mailPassword,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.onMailPasswordChange(t)}),onClick:t[6]||(t[6]=function(t){!e.passwordChanged&&t.target.select()}),title:e.translate("General_SmtpPassword"),"inline-help":e.passwordHelp,autocomplete:!1},null,8,["model-value","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailFromAddress",modelValue:e.mailFromAddress,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.mailFromAddress=t}),title:e.translate("General_SmtpFromAddress"),"inline-help":e.translate("General_SmtpFromEmailHelp",e.mailHost),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailFromName",modelValue:e.mailFromName,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.mailFromName=t}),title:e.translate("General_SmtpFromName"),"inline-help":e.translate("General_NameShownInTheSenderColumn"),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"select",name:"mailEncryption",modelValue:e.mailEncryption,"onUpdate:modelValue":t[9]||(t[9]=function(t){return e.mailEncryption=t}),title:e.translate("General_SmtpEncryption"),options:e.mailEncryptions,"inline-help":e.translate("General_EncryptedSmtpTransport")},null,8,["modelValue","title","options","inline-help"])],512),[[i["vShow"],e.enabled]]),Object(i["createVNode"])(c,{onConfirm:t[10]||(t[10]=function(t){return e.save()}),saving:e.isLoading},null,8,["saving"])],512),[[d]])]})),_:1},8,["content-title"])}var ee=Object(i["defineComponent"])({props:{mail:{type:Object,required:!0},mailTypes:{type:Object,required:!0},mailEncryptions:{type:Object,required:!0}},data:function(){var e=this.mail;return{isLoading:!1,enabled:"smtp"===e.transport,mailHost:e.host,passwordChanged:!1,mailPort:e.port,mailType:e.type,mailUsername:e.username,mailPassword:e.password?"******":"",mailFromAddress:e.noreply_email_address,mailFromName:e.noreply_email_name,mailEncryption:e.encryption}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"],SaveButton:T["SaveButton"]},directives:{Form:T["Form"]},computed:{passwordHelp:function(){var e="".concat(Object(r["translate"])("General_OnlyEnterIfRequiredPassword"),"<br/>"),t="".concat(Object(r["translate"])("General_WarningPasswordStored","<strong>","</strong>"),"<br/>");return"".concat(e,"\n").concat(t)}},methods:{onUpdateMailHost:function(e){this.mailHost=e,this.passwordChanged||(this.mailPassword="",this.passwordChanged=!0)},onMailPasswordChange:function(e){this.mailPassword=e,this.passwordChanged=!0},save:function(){var e=this;this.isLoading=!0;var t={mailUseSmtp:this.enabled?"1":"0",mailPort:this.mailPort,mailHost:this.mailHost,mailType:this.mailType,mailUsername:this.mailUsername,mailFromAddress:this.mailFromAddress,mailFromName:this.mailFromName,mailEncryption:this.mailEncryption};this.passwordChanged&&(t.mailPassword=this.mailPassword),r["AjaxHelper"].post({module:"CoreAdminHome",action:"setMailSettings"},t,{withTokenInUrl:!0}).then((function(){var e=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(e)})).finally((function(){e.isLoading=!1}))}}});ee.render=Z;var te=ee,ne=(Object(r["createAngularJsAdapter"])({component:te,scope:{mail:{angularJsBind:"<"},mailTypes:{angularJsBind:"<"},mailEncryptions:{angularJsBind:"<"}},directiveName:"matomoSmtpSettings"}),{id:"js-code-options"}),oe=Object(i["createElementVNode"])("br",null,null,-1),ae=Object(i["createElementVNode"])("br",null,null,-1),re=["innerHTML"],ie=["innerHTML"],le=Object(i["createElementVNode"])("br",null,null,-1),ce=Object(i["createElementVNode"])("br",null,null,-1),se=["innerHTML"],de=Object(i["createElementVNode"])("br",null,null,-1),ue=Object(i["createElementVNode"])("br",null,null,-1),me=["innerHTML"],ge=Object(i["createElementVNode"])("br",null,null,-1),pe=Object(i["createElementVNode"])("br",null,null,-1),be=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-wordpress/",target:"_blank",rel:"noopener"},"WordPress",-1),he=Object(i["createTextVNode"])(" | "),je=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-integrate-matomo-with-squarespace-website/",target:"_blank",rel:"noopener"},"Squarespace",-1),ve=Object(i["createTextVNode"])(" | "),fe=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-wix/",target:"_blank",rel:"noopener"},"Wix",-1),Oe=Object(i["createTextVNode"])(" | "),Ce=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/how-to-install/faq_19424/",target:"_blank",rel:"noopener"},"SharePoint",-1),ke=Object(i["createTextVNode"])(" | "),Ve=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-joomla/",target:"_blank",rel:"noopener"},"Joomla",-1),Se=Object(i["createTextVNode"])(" | "),Ne=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-my-shopify-store/",target:"_blank",rel:"noopener"},"Shopify",-1),ye=Object(i["createTextVNode"])(" | "),Te=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-use-matomo-analytics-within-gtm-google-tag-manager/",target:"_blank",rel:"noopener"},"Google Tag Manager",-1),Ae={id:"javascript-output-section"},Ee={class:"valign-wrapper trackingHelpHeader matchWidth"},we={id:"javascript-text"},_e=["textContent"],He={id:"optional-js-tracking-options"},De={id:"jsTrackAllSubdomainsInlineHelp",class:"inline-help-node"},Be=["innerHTML"],Le=["innerHTML"],Ue={id:"jsTrackGroupByDomainInlineHelp",class:"inline-help-node"},xe={id:"jsTrackAllAliasesInlineHelp",class:"inline-help-node"},Fe={id:"javascript-advanced-options"},Ie={id:"javascript-tracking-visitor-cv"},Ge={class:"row"},Pe={class:"col s12 m3"},Me={class:"col s12 m3"},Je={class:"col s12 m6 l3"},qe=["onKeydown"],Re={class:"col s12 m6 l3"},We=["onKeydown"],$e={class:"row"},Ke={class:"col s12"},ze=Object(i["createElementVNode"])("span",{class:"icon-add"},null,-1),Qe={id:"jsCrossDomain",class:"inline-help-node"},Ye=Object(i["createElementVNode"])("br",null,null,-1),Xe={id:"jsDoNotTrackInlineHelp",class:"inline-help-node"},Ze={key:0},et=Object(i["createElementVNode"])("br",null,null,-1),tt=["innerHTML"],nt={id:"js-campaign-query-param-extra"},ot={class:"row"},at={class:"col s12"},rt={class:"row"},it={class:"col s12"};
+ */function Z(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("SaveButton"),s=Object(i["resolveComponent"])("ContentBlock"),d=Object(i["resolveDirective"])("form");return Object(i["openBlock"])(),Object(i["createBlock"])(s,{"content-title":e.translate("CoreAdminHome_EmailServerSettings"),anchor:"mailSettings"},{default:Object(i["withCtx"])((function(){return[Object(i["withDirectives"])(Object(i["createElementVNode"])("div",null,[Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"mailUseSmtp",modelValue:e.enabled,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.enabled=t}),title:e.translate("General_UseSMTPServerForEmail"),"inline-help":e.translate("General_SelectYesIfYouWantToSendEmailsViaServer")},null,8,["modelValue","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",X,[Object(i["createVNode"])(l,{uicontrol:"text",name:"mailHost","model-value":e.mailHost,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.onUpdateMailHost(t)}),title:e.translate("General_SmtpServerAddress")},null,8,["model-value","title"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailPort",modelValue:e.mailPort,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.mailPort=t}),title:e.translate("General_SmtpPort"),"inline-help":e.translate("General_OptionalSmtpPort")},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"select",name:"mailType",modelValue:e.mailType,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.mailType=t}),title:e.translate("General_AuthenticationMethodSmtp"),options:e.mailTypes,"inline-help":e.translate("General_OnlyUsedIfUserPwdIsSet")},null,8,["modelValue","title","options","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailUsername",modelValue:e.mailUsername,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.mailUsername=t}),title:e.translate("General_SmtpUsername"),"inline-help":e.translate("General_OnlyEnterIfRequired"),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"password",name:"mailPassword","model-value":e.mailPassword,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.onMailPasswordChange(t)}),onClick:t[6]||(t[6]=function(t){!e.passwordChanged&&t.target.select()}),title:e.translate("General_SmtpPassword"),"inline-help":e.passwordHelp,autocomplete:!1},null,8,["model-value","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailFromAddress",modelValue:e.mailFromAddress,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.mailFromAddress=t}),title:e.translate("General_SmtpFromAddress"),"inline-help":e.translate("General_SmtpFromEmailHelp",e.mailHost),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"mailFromName",modelValue:e.mailFromName,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.mailFromName=t}),title:e.translate("General_SmtpFromName"),"inline-help":e.translate("General_NameShownInTheSenderColumn"),autocomplete:!1},null,8,["modelValue","title","inline-help"]),Object(i["createVNode"])(l,{uicontrol:"select",name:"mailEncryption",modelValue:e.mailEncryption,"onUpdate:modelValue":t[9]||(t[9]=function(t){return e.mailEncryption=t}),title:e.translate("General_SmtpEncryption"),options:e.mailEncryptions,"inline-help":e.translate("General_EncryptedSmtpTransport")},null,8,["modelValue","title","options","inline-help"])],512),[[i["vShow"],e.enabled]]),Object(i["createVNode"])(c,{onConfirm:t[10]||(t[10]=function(t){return e.save()}),saving:e.isLoading},null,8,["saving"])],512),[[d]])]})),_:1},8,["content-title"])}var ee=Object(i["defineComponent"])({props:{mail:{type:Object,required:!0},mailTypes:{type:Object,required:!0},mailEncryptions:{type:Object,required:!0}},data:function(){var e=this.mail;return{isLoading:!1,enabled:"smtp"===e.transport,mailHost:e.host,passwordChanged:!1,mailPort:e.port,mailType:e.type,mailUsername:e.username,mailPassword:e.password?"******":"",mailFromAddress:e.noreply_email_address,mailFromName:e.noreply_email_name,mailEncryption:e.encryption}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"],SaveButton:T["SaveButton"]},directives:{Form:T["Form"]},computed:{passwordHelp:function(){var e="".concat(Object(r["translate"])("General_OnlyEnterIfRequiredPassword"),"<br/>"),t="".concat(Object(r["translate"])("General_WarningPasswordStored","<strong>","</strong>"),"<br/>");return"".concat(e,"\n").concat(t)}},methods:{onUpdateMailHost:function(e){this.mailHost=e,this.passwordChanged||(this.mailPassword="",this.passwordChanged=!0)},onMailPasswordChange:function(e){this.mailPassword=e,this.passwordChanged=!0},save:function(){var e=this;this.isLoading=!0;var t={mailUseSmtp:this.enabled?"1":"0",mailPort:this.mailPort,mailHost:this.mailHost,mailType:this.mailType,mailUsername:this.mailUsername,mailFromAddress:this.mailFromAddress,mailFromName:this.mailFromName,mailEncryption:this.mailEncryption};this.passwordChanged&&(t.mailPassword=this.mailPassword),r["AjaxHelper"].post({module:"CoreAdminHome",action:"setMailSettings"},t,{withTokenInUrl:!0}).then((function(){var e=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_SettingsSaveSuccess"),type:"transient",id:"generalSettings",context:"success"});r["NotificationsStore"].scrollToNotification(e)})).finally((function(){e.isLoading=!1}))}}});ee.render=Z;var te=ee,ne=(Object(r["createAngularJsAdapter"])({component:te,scope:{mail:{angularJsBind:"<"},mailTypes:{angularJsBind:"<"},mailEncryptions:{angularJsBind:"<"}},directiveName:"matomoSmtpSettings"}),{id:"js-code-options"}),oe=Object(i["createElementVNode"])("br",null,null,-1),ae=Object(i["createElementVNode"])("br",null,null,-1),re=["innerHTML"],ie=["innerHTML"],le=Object(i["createElementVNode"])("br",null,null,-1),ce=Object(i["createElementVNode"])("br",null,null,-1),se=["innerHTML"],de=Object(i["createElementVNode"])("br",null,null,-1),ue=Object(i["createElementVNode"])("br",null,null,-1),me=["innerHTML"],ge=Object(i["createElementVNode"])("br",null,null,-1),pe=Object(i["createElementVNode"])("br",null,null,-1),be=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-wordpress/",target:"_blank",rel:"noopener"},"WordPress",-1),he=Object(i["createTextVNode"])(" | "),je=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-integrate-matomo-with-squarespace-website/",target:"_blank",rel:"noopener"},"Squarespace",-1),ve=Object(i["createTextVNode"])(" | "),fe=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-wix/",target:"_blank",rel:"noopener"},"Wix",-1),Oe=Object(i["createTextVNode"])(" | "),Ce=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/how-to-install/faq_19424/",target:"_blank",rel:"noopener"},"SharePoint",-1),ke=Object(i["createTextVNode"])(" | "),Ve=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-joomla/",target:"_blank",rel:"noopener"},"Joomla",-1),Se=Object(i["createTextVNode"])(" | "),Ne=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-my-shopify-store/",target:"_blank",rel:"noopener"},"Shopify",-1),ye=Object(i["createTextVNode"])(" | "),Te=Object(i["createElementVNode"])("a",{href:"https://matomo.org/faq/new-to-piwik/how-do-i-use-matomo-analytics-within-gtm-google-tag-manager/",target:"_blank",rel:"noopener"},"Google Tag Manager",-1),Ae={id:"javascript-output-section"},Ee={class:"valign-wrapper trackingHelpHeader matchWidth"},we={id:"javascript-text"},_e=["textContent"],He={id:"optional-js-tracking-options"},De={id:"jsTrackAllSubdomainsInlineHelp",class:"inline-help-node"},Be=["innerHTML"],Le=["innerHTML"],xe={id:"jsTrackGroupByDomainInlineHelp",class:"inline-help-node"},Ue={id:"jsTrackAllAliasesInlineHelp",class:"inline-help-node"},Fe={id:"javascript-advanced-options"},Ie={id:"javascript-tracking-visitor-cv"},Ge={class:"row"},Pe={class:"col s12 m3"},Me={class:"col s12 m3"},Je={class:"col s12 m6 l3"},qe=["onKeydown"],Re={class:"col s12 m6 l3"},We=["onKeydown"],$e={class:"row"},Ke={class:"col s12"},ze=Object(i["createElementVNode"])("span",{class:"icon-add"},null,-1),Qe={id:"jsCrossDomain",class:"inline-help-node"},Ye=Object(i["createElementVNode"])("br",null,null,-1),Xe={id:"jsDoNotTrackInlineHelp",class:"inline-help-node"},Ze={key:0},et=Object(i["createElementVNode"])("br",null,null,-1),tt=["innerHTML"],nt={id:"js-campaign-query-param-extra"},ot={class:"row"},at={class:"col s12"},rt={class:"row"},it={class:"col s12"};
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function lt(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("ContentBlock"),s=Object(i["resolveDirective"])("select-on-focus");return Object(i["openBlock"])(),Object(i["createBlock"])(c,{anchor:"javaScriptTracking","content-title":e.translate("CoreAdminHome_JavaScriptTracking")},{default:Object(i["withCtx"])((function(){return[Object(i["createElementVNode"])("div",ne,[Object(i["createElementVNode"])("p",null,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTrackingIntro1"))+" ",1),oe,ae,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTrackingIntro2"))+" ",1),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro3a)},null,8,re),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(" "+e.jsTrackingIntro3b)},null,8,ie),le,ce,Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro4a)},null,8,se),de,ue,Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro5)},null,8,me),ge,pe,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("SitesManager_InstallationGuides"))+" : ",1),be,he,je,ve,fe,Oe,Ce,ke,Ve,Se,Ne,ye,Te]),Object(i["createVNode"])(l,{uicontrol:"site",name:"js-tracker-website",class:"jsTrackingCodeWebsite",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.site=t}),introduction:e.translate("General_Website")},null,8,["modelValue","introduction"]),Object(i["createElementVNode"])("div",Ae,[Object(i["createElementVNode"])("div",Ee,[Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("General_JsTrackingTag")),1),Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CodeNoteBeforeClosingHead","</head>")),1)]),Object(i["createElementVNode"])("button",{class:"btn",id:"emailJsBtn",onClick:t[1]||(t[1]=function(t){return e.sendEmail()})},Object(i["toDisplayString"])(e.translate("SitesManager_EmailInstructionsButton")),1)]),Object(i["createElementVNode"])("div",we,[Object(i["withDirectives"])(Object(i["createElementVNode"])("pre",{class:"codeblock",textContent:Object(i["toDisplayString"])(e.trackingCode),ref:"trackingCode"},null,8,_e),[[s,{}]])])]),Object(i["createElementVNode"])("div",He,[Object(i["createElementVNode"])("div",De,[Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.mergeSubdomainsDesc)},null,8,Be),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.learnMoreText)},null,8,Le)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-all-subdomains","model-value":e.trackAllSubdomains,"onUpdate:modelValue":t[2]||(t[2]=function(t){e.trackAllSubdomains=t,e.updateTrackingCode()}),disabled:e.isLoading,introduction:e.translate("General_Options"),title:"".concat(e.translate("CoreAdminHome_JSTracking_MergeSubdomains")," ").concat(e.currentSiteName),"inline-help":"#jsTrackAllSubdomainsInlineHelp"},null,8,["model-value","disabled","introduction","title"])]),Object(i["createElementVNode"])("div",Ue,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_GroupPageTitlesByDomainDesc1",e.currentSiteHost)),1),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-group-by-domain","model-value":e.groupByDomain,"onUpdate:modelValue":t[3]||(t[3]=function(t){e.groupByDomain=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_GroupPageTitlesByDomain"),"inline-help":"#jsTrackGroupByDomainInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("div",xe,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_MergeAliasesDesc",e.currentSiteAlias)),1),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-all-aliases","model-value":e.trackAllAliases,"onUpdate:modelValue":t[4]||(t[4]=function(t){e.trackAllAliases=t,e.updateTrackingCode()}),disabled:e.isLoading,title:"".concat(e.translate("CoreAdminHome_JSTracking_MergeAliases")," ").concat(e.currentSiteName),"inline-help":"#jsTrackAllAliasesInlineHelp"},null,8,["model-value","disabled","title"])]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-noscript","model-value":e.trackNoScript,"onUpdate:modelValue":t[5]||(t[5]=function(t){e.trackNoScript=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_TrackNoScript")},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("Mobile_Advanced")),1),Object(i["createElementVNode"])("p",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[6]||(t[6]=Object(i["withModifiers"])((function(t){return e.showAdvanced=!0}),["prevent"]))},Object(i["toDisplayString"])(e.translate("General_Show")),513),[[i["vShow"],!e.showAdvanced]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[7]||(t[7]=Object(i["withModifiers"])((function(t){return e.showAdvanced=!1}),["prevent"]))},Object(i["toDisplayString"])(e.translate("General_Hide")),513),[[i["vShow"],e.showAdvanced]])]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Fe,[Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-visitor-cv-check","model-value":e.trackCustomVars,"onUpdate:modelValue":t[8]||(t[8]=function(t){e.trackCustomVars=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_VisitorCustomVars"),"inline-help":e.translate("CoreAdminHome_JSTracking_VisitorCustomVarsDesc")},null,8,["model-value","disabled","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Ie,[Object(i["createElementVNode"])("div",Ge,[Object(i["createElementVNode"])("div",Pe,Object(i["toDisplayString"])(e.translate("General_Name")),1),Object(i["createElementVNode"])("div",Me,Object(i["toDisplayString"])(e.translate("General_Value")),1)]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.customVars,(function(t,n){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",{class:"row",key:n},[Object(i["createElementVNode"])("div",Je,[Object(i["createElementVNode"])("input",{type:"text",class:"custom-variable-name",onKeydown:function(t){return e.onCustomVarNameKeydown(t,n)},placeholder:"e.g. Type"},null,40,qe)]),Object(i["createElementVNode"])("div",Re,[Object(i["createElementVNode"])("input",{type:"text",class:"custom-variable-value",onKeydown:function(t){return e.onCustomVarValueKeydown(t,n)},placeholder:"e.g. Customer"},null,40,We)])])})),128)),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",$e,[Object(i["createElementVNode"])("div",Ke,[Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[9]||(t[9]=function(t){return e.addCustomVar()}),class:"add-custom-variable"},[ze,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_Add")),1)])])],512),[[i["vShow"],e.canAddMoreCustomVariables]])],512),[[i["vShow"],e.trackCustomVars]]),Object(i["createElementVNode"])("div",Qe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CrossDomain"))+" ",1),Ye,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CrossDomain_NeedsMultipleDomains")),1)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-cross-domain","model-value":e.crossDomain,"onUpdate:modelValue":t[10]||(t[10]=function(t){e.crossDomain=t,e.updateTrackingCode(),e.onCrossDomainToggle()}),disabled:e.isLoading||!e.hasManySiteUrls,title:e.translate("CoreAdminHome_JSTracking_EnableCrossDomainLinking"),"inline-help":"#jsCrossDomain"},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("div",Xe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_EnableDoNotTrackDesc"))+" ",1),e.serverSideDoNotTrackEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",Ze,[et,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_EnableDoNotTrack_AlreadyEnabled")),1)])):Object(i["createCommentVNode"])("",!0)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-do-not-track","model-value":e.doNotTrack,"onUpdate:modelValue":t[11]||(t[11]=function(t){e.doNotTrack=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_EnableDoNotTrack"),"inline-help":"#jsDoNotTrackInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-disable-cookies","model-value":e.disableCookies,"onUpdate:modelValue":t[12]||(t[12]=function(t){e.disableCookies=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_DisableCookies"),"inline-help":e.translate("CoreAdminHome_JSTracking_DisableCookiesDesc")},null,8,["model-value","disabled","title","inline-help"]),Object(i["createElementVNode"])("div",{id:"jsTrackCampaignParamsInlineHelp",class:"inline-help-node",innerHTML:e.$sanitize(e.jsTrackCampaignParamsInlineHelp)},null,8,tt),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"custom-campaign-query-params-check","model-value":e.useCustomCampaignParams,"onUpdate:modelValue":t[13]||(t[13]=function(t){e.useCustomCampaignParams=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CustomCampaignQueryParam"),"inline-help":"#jsTrackCampaignParamsInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",nt,[Object(i["createElementVNode"])("div",ot,[Object(i["createElementVNode"])("div",at,[Object(i["createVNode"])(l,{uicontrol:"text",name:"custom-campaign-name-query-param","model-value":e.customCampaignName,"onUpdate:modelValue":t[14]||(t[14]=function(t){e.customCampaignName=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CampaignNameParam")},null,8,["model-value","disabled","title"])])]),Object(i["createElementVNode"])("div",rt,[Object(i["createElementVNode"])("div",it,[Object(i["createVNode"])(l,{uicontrol:"text",name:"custom-campaign-keyword-query-param","model-value":e.customCampaignKeyword,"onUpdate:modelValue":t[15]||(t[15]=function(t){e.customCampaignKeyword=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CampaignKwdParam")},null,8,["model-value","disabled","title"])])])],512),[[i["vShow"],e.useCustomCampaignParams]])],512),[[i["vShow"],e.showAdvanced]])]})),_:1},8,["content-title"])}function ct(e){var t=new URL(e);return t.hostname}function st(e){return e.map((function(e){return[e.name,e.value]}))}var dt=window,ut=dt.$,mt=window.location.host,gt=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")),pt=Object(i["defineComponent"])({props:{defaultSite:{type:Object,required:!0},maxCustomVariables:Number,serverSideDoNotTrackEnabled:Boolean},data:function(){return{showAdvanced:!1,site:this.defaultSite,trackingCode:"",trackAllSubdomains:!1,isLoading:!1,siteUrls:{},siteExcludedQueryParams:{},crossDomain:!1,groupByDomain:!1,trackAllAliases:!1,trackNoScript:!1,trackCustomVars:!1,customVars:[],canAddMoreCustomVariables:!!this.maxCustomVariables&&this.maxCustomVariables>0,doNotTrack:!1,disableCookies:!1,useCustomCampaignParams:!1,customCampaignName:"",customCampaignKeyword:"",trackingCodeAbortController:null,isHighlighting:!1}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"]},directives:{SelectOnFocus:r["SelectOnFocus"]},created:function(){this.onCustomVarNameKeydown=Object(r["debounce"])(this.onCustomVarNameKeydown,100),this.onCustomVarValueKeydown=Object(r["debounce"])(this.onCustomVarValueKeydown,100),this.addCustomVar(),this.site&&this.site.id&&this.onSiteChanged(this.site)},watch:{site:function(e){this.onSiteChanged(e)}},methods:{onSiteChanged:function(e){var t=this,n=e.id,o=[];this.siteUrls[n]||(this.isLoading=!0,o.push(r["AjaxHelper"].fetch({module:"API",method:"SitesManager.getSiteUrlsFromId",idSite:n,filter_limit:"-1"}).then((function(e){t.siteUrls[n]=e||[]})))),this.siteExcludedQueryParams[n]||(this.isLoading=!0,o.push(r["AjaxHelper"].fetch({module:"API",method:"Overlay.getExcludedQueryParameters",idSite:n,filter_limit:"-1"}).then((function(e){t.siteExcludedQueryParams[n]=e||[]})))),Promise.all(o).then((function(){t.isLoading=!1,t.updateCurrentSiteInfo(),t.updateTrackingCode()}))},sendEmail:function(){var e=Object(r["translate"])("SitesManager_EmailInstructionsSubject");e=encodeURIComponent(e);var t=this.trackingCode;t=t.replace(/<[^>]+>/g,"");var n="".concat(Object(r["translate"])("SitesManager_JsTrackingTagHelp"),". ").concat(Object(r["translate"])("CoreAdminHome_JSTracking_CodeNoteBeforeClosingHeadEmail","'head"),"\n").concat(t);n=encodeURIComponent(n);var o="mailto:?subject=".concat(e,"&body=").concat(n);window.location.href=o},onCrossDomainToggle:function(){this.crossDomain&&(this.trackAllAliases=!0)},updateTrackingCode:function(){var e=this,t=this.site,n={piwikUrl:"".concat(mt).concat(gt),groupPageTitlesByDomain:this.groupByDomain?1:0,mergeSubdomains:this.trackAllSubdomains?1:0,mergeAliasUrls:this.trackAllAliases?1:0,visitorCustomVariables:this.trackCustomVars?st(this.customVars):0,customCampaignNameQueryParam:null,customCampaignKeywordParam:null,doNotTrack:this.doNotTrack?1:0,disableCookies:this.disableCookies?1:0,crossDomain:this.crossDomain?1:0,trackNoScript:this.trackNoScript?1:0,forceMatomoEndpoint:1};this.siteExcludedQueryParams[t.id]&&(n.excludedQueryParams=this.siteExcludedQueryParams[t.id]),this.useCustomCampaignParams&&(n.customCampaignNameQueryParam=this.customCampaignName,n.customCampaignKeywordParam=this.customCampaignKeyword),this.trackingCodeAbortController&&(this.trackingCodeAbortController.abort(),this.trackingCodeAbortController=null),this.trackingCodeAbortController=new AbortController,r["AjaxHelper"].post({module:"API",format:"json",method:"SitesManager.getJavascriptTag",idSite:t.id},n,{abortController:this.trackingCodeAbortController}).then((function(t){e.trackingCodeAbortController=null,e.trackingCode=t.value;var n=ut(e.$refs.trackingCode);n&&!e.isHighlighting&&(e.isHighlighting=!0,n.effect("highlight",{complete:function(){e.isHighlighting=!1}},1500))}))},updateCurrentSiteInfo:function(){this.hasManySiteUrls||(this.crossDomain=!1)},addCustomVar:function(){this.canAddMoreCustomVariables&&this.customVars.push({name:"",value:""}),this.canAddMoreCustomVariables=!!this.maxCustomVariables&&this.maxCustomVariables>this.customVars.length},onCustomVarNameKeydown:function(e,t){var n=this;setTimeout((function(){n.customVars[t].name=e.target.value,n.updateTrackingCode()}))},onCustomVarValueKeydown:function(e,t){var n=this;setTimeout((function(){n.customVars[t].value=e.target.value,n.updateTrackingCode()}))}},computed:{hasManySiteUrls:function(){var e=this.site;return this.siteUrls[e.id]&&this.siteUrls[e.id].length>1},currentSiteHost:function(){var e,t=null===(e=this.siteUrls[this.site.id])||void 0===e?void 0:e[0];return t?ct(t):""},currentSiteAlias:function(){var e,t="x.".concat(this.currentSiteHost),n=null===(e=this.siteUrls[this.site.id])||void 0===e?void 0:e[1];return n||t},currentSiteName:function(){return r["Matomo"].helper.htmlEntities(this.site.name)},jsTrackingIntro3a:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro3a",'<a href="https://matomo.org/integrate/" rel="noreferrer noopener" target="_blank">',"</a>")},jsTrackingIntro3b:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro3b")},jsTrackingIntro4a:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro4",'<a href="#image-tracking-link">',"</a>")},jsTrackingIntro5:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro5",'<a rel="noreferrer noopener" target="_blank" href="https://developer.matomo.org/guides/tracking-javascript-guide">',"</a>")},mergeSubdomainsDesc:function(){return Object(r["translate"])("CoreAdminHome_JSTracking_MergeSubdomainsDesc","x.".concat(this.currentSiteHost),"y.".concat(this.currentSiteHost))},learnMoreText:function(){var e="https://developer.matomo.org/guides/tracking-javascript-guide#measuring-domains-andor-sub-domains";return Object(r["translate"])("General_LearnMore",' (<a href="'.concat(e,'" rel="noreferrer noopener" target="_blank">'),"</a>)")},jsTrackCampaignParamsInlineHelp:function(){return Object(r["translate"])("CoreAdminHome_JSTracking_CustomCampaignQueryParamDesc",'<a href="https://matomo.org/faq/general/faq_119" rel="noreferrer noopener" target="_blank">',"</a>")}}});pt.render=lt;var bt=pt,ht=(Object(r["createAngularJsAdapter"])({component:bt,scope:{defaultSite:{angularJsBind:"<"},maxCustomVariables:{angularJsBind:"<"},serverSideDoNotTrackEnabled:{angularJsBind:"<"}},directiveName:"matomoJsTrackingCodeGenerator"}),Object(i["createElementVNode"])("a",{name:"image-tracking-link"},null,-1)),jt={id:"image-tracking-code-options"},vt=["innerHTML"],ft=["innerHTML"],Ot={id:"image-tracking-goal-sub"},Ct={class:"row"},kt={class:"col s12 m6"},Vt={class:"col s12 m6"},St={id:"image-link-output-section"},Nt={id:"image-tracking-text"},yt=["textContent"];
+ */function lt(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("ContentBlock"),s=Object(i["resolveDirective"])("select-on-focus");return Object(i["openBlock"])(),Object(i["createBlock"])(c,{anchor:"javaScriptTracking","content-title":e.translate("CoreAdminHome_JavaScriptTracking")},{default:Object(i["withCtx"])((function(){return[Object(i["createElementVNode"])("div",ne,[Object(i["createElementVNode"])("p",null,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTrackingIntro1"))+" ",1),oe,ae,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTrackingIntro2"))+" ",1),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro3a)},null,8,re),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(" "+e.jsTrackingIntro3b)},null,8,ie),le,ce,Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro4a)},null,8,se),de,ue,Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.jsTrackingIntro5)},null,8,me),ge,pe,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("SitesManager_InstallationGuides"))+" : ",1),be,he,je,ve,fe,Oe,Ce,ke,Ve,Se,Ne,ye,Te]),Object(i["createVNode"])(l,{uicontrol:"site",name:"js-tracker-website",class:"jsTrackingCodeWebsite",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.site=t}),introduction:e.translate("General_Website")},null,8,["modelValue","introduction"]),Object(i["createElementVNode"])("div",Ae,[Object(i["createElementVNode"])("div",Ee,[Object(i["createElementVNode"])("div",null,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("General_JsTrackingTag")),1),Object(i["createElementVNode"])("p",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CodeNoteBeforeClosingHead","</head>")),1)]),Object(i["createElementVNode"])("button",{class:"btn",id:"emailJsBtn",onClick:t[1]||(t[1]=function(t){return e.sendEmail()})},Object(i["toDisplayString"])(e.translate("SitesManager_EmailInstructionsButton")),1)]),Object(i["createElementVNode"])("div",we,[Object(i["withDirectives"])(Object(i["createElementVNode"])("pre",{class:"codeblock",textContent:Object(i["toDisplayString"])(e.trackingCode),ref:"trackingCode"},null,8,_e),[[s,{}]])])]),Object(i["createElementVNode"])("div",He,[Object(i["createElementVNode"])("div",De,[Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.mergeSubdomainsDesc)},null,8,Be),Object(i["createElementVNode"])("span",{innerHTML:e.$sanitize(e.learnMoreText)},null,8,Le)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-all-subdomains","model-value":e.trackAllSubdomains,"onUpdate:modelValue":t[2]||(t[2]=function(t){e.trackAllSubdomains=t,e.updateTrackingCode()}),disabled:e.isLoading,introduction:e.translate("General_Options"),title:"".concat(e.translate("CoreAdminHome_JSTracking_MergeSubdomains")," ").concat(e.currentSiteName),"inline-help":"#jsTrackAllSubdomainsInlineHelp"},null,8,["model-value","disabled","introduction","title"])]),Object(i["createElementVNode"])("div",xe,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_GroupPageTitlesByDomainDesc1",e.currentSiteHost)),1),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-group-by-domain","model-value":e.groupByDomain,"onUpdate:modelValue":t[3]||(t[3]=function(t){e.groupByDomain=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_GroupPageTitlesByDomain"),"inline-help":"#jsTrackGroupByDomainInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("div",Ue,Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_MergeAliasesDesc",e.currentSiteAlias)),1),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-all-aliases","model-value":e.trackAllAliases,"onUpdate:modelValue":t[4]||(t[4]=function(t){e.trackAllAliases=t,e.updateTrackingCode()}),disabled:e.isLoading,title:"".concat(e.translate("CoreAdminHome_JSTracking_MergeAliases")," ").concat(e.currentSiteName),"inline-help":"#jsTrackAllAliasesInlineHelp"},null,8,["model-value","disabled","title"])]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-noscript","model-value":e.trackNoScript,"onUpdate:modelValue":t[5]||(t[5]=function(t){e.trackNoScript=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_TrackNoScript")},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("Mobile_Advanced")),1),Object(i["createElementVNode"])("p",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[6]||(t[6]=Object(i["withModifiers"])((function(t){return e.showAdvanced=!0}),["prevent"]))},Object(i["toDisplayString"])(e.translate("General_Show")),513),[[i["vShow"],!e.showAdvanced]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[7]||(t[7]=Object(i["withModifiers"])((function(t){return e.showAdvanced=!1}),["prevent"]))},Object(i["toDisplayString"])(e.translate("General_Hide")),513),[[i["vShow"],e.showAdvanced]])]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Fe,[Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-visitor-cv-check","model-value":e.trackCustomVars,"onUpdate:modelValue":t[8]||(t[8]=function(t){e.trackCustomVars=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_VisitorCustomVars"),"inline-help":e.translate("CoreAdminHome_JSTracking_VisitorCustomVarsDesc")},null,8,["model-value","disabled","title","inline-help"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Ie,[Object(i["createElementVNode"])("div",Ge,[Object(i["createElementVNode"])("div",Pe,Object(i["toDisplayString"])(e.translate("General_Name")),1),Object(i["createElementVNode"])("div",Me,Object(i["toDisplayString"])(e.translate("General_Value")),1)]),(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.customVars,(function(t,n){return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",{class:"row",key:n},[Object(i["createElementVNode"])("div",Je,[Object(i["createElementVNode"])("input",{type:"text",class:"custom-variable-name",onKeydown:function(t){return e.onCustomVarNameKeydown(t,n)},placeholder:"e.g. Type"},null,40,qe)]),Object(i["createElementVNode"])("div",Re,[Object(i["createElementVNode"])("input",{type:"text",class:"custom-variable-value",onKeydown:function(t){return e.onCustomVarValueKeydown(t,n)},placeholder:"e.g. Customer"},null,40,We)])])})),128)),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",$e,[Object(i["createElementVNode"])("div",Ke,[Object(i["createElementVNode"])("a",{href:"javascript:;",onClick:t[9]||(t[9]=function(t){return e.addCustomVar()}),class:"add-custom-variable"},[ze,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_Add")),1)])])],512),[[i["vShow"],e.canAddMoreCustomVariables]])],512),[[i["vShow"],e.trackCustomVars]]),Object(i["createElementVNode"])("div",Qe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CrossDomain"))+" ",1),Ye,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_CrossDomain_NeedsMultipleDomains")),1)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-cross-domain","model-value":e.crossDomain,"onUpdate:modelValue":t[10]||(t[10]=function(t){e.crossDomain=t,e.updateTrackingCode(),e.onCrossDomainToggle()}),disabled:e.isLoading||!e.hasManySiteUrls,title:e.translate("CoreAdminHome_JSTracking_EnableCrossDomainLinking"),"inline-help":"#jsCrossDomain"},null,8,["model-value","disabled","title"]),Object(i["createElementVNode"])("div",Xe,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_EnableDoNotTrackDesc"))+" ",1),e.serverSideDoNotTrackEnabled?(Object(i["openBlock"])(),Object(i["createElementBlock"])("span",Ze,[et,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("CoreAdminHome_JSTracking_EnableDoNotTrack_AlreadyEnabled")),1)])):Object(i["createCommentVNode"])("",!0)]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-do-not-track","model-value":e.doNotTrack,"onUpdate:modelValue":t[11]||(t[11]=function(t){e.doNotTrack=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_EnableDoNotTrack"),"inline-help":"#jsDoNotTrackInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"javascript-tracking-disable-cookies","model-value":e.disableCookies,"onUpdate:modelValue":t[12]||(t[12]=function(t){e.disableCookies=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_DisableCookies"),"inline-help":e.translate("CoreAdminHome_JSTracking_DisableCookiesDesc")},null,8,["model-value","disabled","title","inline-help"]),Object(i["createElementVNode"])("div",{id:"jsTrackCampaignParamsInlineHelp",class:"inline-help-node",innerHTML:e.$sanitize(e.jsTrackCampaignParamsInlineHelp)},null,8,tt),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"custom-campaign-query-params-check","model-value":e.useCustomCampaignParams,"onUpdate:modelValue":t[13]||(t[13]=function(t){e.useCustomCampaignParams=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CustomCampaignQueryParam"),"inline-help":"#jsTrackCampaignParamsInlineHelp"},null,8,["model-value","disabled","title"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",nt,[Object(i["createElementVNode"])("div",ot,[Object(i["createElementVNode"])("div",at,[Object(i["createVNode"])(l,{uicontrol:"text",name:"custom-campaign-name-query-param","model-value":e.customCampaignName,"onUpdate:modelValue":t[14]||(t[14]=function(t){e.customCampaignName=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CampaignNameParam")},null,8,["model-value","disabled","title"])])]),Object(i["createElementVNode"])("div",rt,[Object(i["createElementVNode"])("div",it,[Object(i["createVNode"])(l,{uicontrol:"text",name:"custom-campaign-keyword-query-param","model-value":e.customCampaignKeyword,"onUpdate:modelValue":t[15]||(t[15]=function(t){e.customCampaignKeyword=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_JSTracking_CampaignKwdParam")},null,8,["model-value","disabled","title"])])])],512),[[i["vShow"],e.useCustomCampaignParams]])],512),[[i["vShow"],e.showAdvanced]])]})),_:1},8,["content-title"])}function ct(e){var t=new URL(e);return t.hostname}function st(e){return e.map((function(e){return[e.name,e.value]}))}var dt=window,ut=dt.$,mt=window.location.host,gt=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")),pt=Object(i["defineComponent"])({props:{defaultSite:{type:Object,required:!0},maxCustomVariables:Number,serverSideDoNotTrackEnabled:Boolean},data:function(){return{showAdvanced:!1,site:this.defaultSite,trackingCode:"",trackAllSubdomains:!1,isLoading:!1,siteUrls:{},siteExcludedQueryParams:{},siteExcludedReferrers:{},crossDomain:!1,groupByDomain:!1,trackAllAliases:!1,trackNoScript:!1,trackCustomVars:!1,customVars:[],canAddMoreCustomVariables:!!this.maxCustomVariables&&this.maxCustomVariables>0,doNotTrack:!1,disableCookies:!1,useCustomCampaignParams:!1,customCampaignName:"",customCampaignKeyword:"",trackingCodeAbortController:null,isHighlighting:!1}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"]},directives:{SelectOnFocus:r["SelectOnFocus"]},created:function(){this.onCustomVarNameKeydown=Object(r["debounce"])(this.onCustomVarNameKeydown,100),this.onCustomVarValueKeydown=Object(r["debounce"])(this.onCustomVarValueKeydown,100),this.addCustomVar(),this.site&&this.site.id&&this.onSiteChanged(this.site)},watch:{site:function(e){this.onSiteChanged(e)}},methods:{onSiteChanged:function(e){var t=this,n=e.id,o=[];this.siteUrls[n]||(this.isLoading=!0,o.push(r["AjaxHelper"].fetch({module:"API",method:"SitesManager.getSiteUrlsFromId",idSite:n,filter_limit:"-1"}).then((function(e){t.siteUrls[n]=e||[]})))),this.siteExcludedQueryParams[n]||(this.isLoading=!0,o.push(r["AjaxHelper"].fetch({module:"API",method:"Overlay.getExcludedQueryParameters",idSite:n,filter_limit:"-1"}).then((function(e){t.siteExcludedQueryParams[n]=e||[]})))),this.siteExcludedReferrers[n]||(this.isLoading=!0,o.push(r["AjaxHelper"].fetch({module:"API",method:"SitesManager.getExcludedReferrers",idSite:n,filter_limit:"-1"}).then((function(e){t.siteExcludedReferrers[n]=[],Object.values(e||[]).forEach((function(e){t.siteExcludedReferrers[n].push(e.replace(/^https?:\/\//,""))}))})))),Promise.all(o).then((function(){t.isLoading=!1,t.updateCurrentSiteInfo(),t.updateTrackingCode()}))},sendEmail:function(){var e=Object(r["translate"])("SitesManager_EmailInstructionsSubject");e=encodeURIComponent(e);var t=this.trackingCode;t=t.replace(/<[^>]+>/g,"");var n="".concat(Object(r["translate"])("SitesManager_JsTrackingTagHelp"),". ").concat(Object(r["translate"])("CoreAdminHome_JSTracking_CodeNoteBeforeClosingHeadEmail","'head"),"\n").concat(t);n=encodeURIComponent(n);var o="mailto:?subject=".concat(e,"&body=").concat(n);window.location.href=o},onCrossDomainToggle:function(){this.crossDomain&&(this.trackAllAliases=!0)},updateTrackingCode:function(){var e=this,t=this.site,n={piwikUrl:"".concat(mt).concat(gt),groupPageTitlesByDomain:this.groupByDomain?1:0,mergeSubdomains:this.trackAllSubdomains?1:0,mergeAliasUrls:this.trackAllAliases?1:0,visitorCustomVariables:this.trackCustomVars?st(this.customVars):0,customCampaignNameQueryParam:null,customCampaignKeywordParam:null,doNotTrack:this.doNotTrack?1:0,disableCookies:this.disableCookies?1:0,crossDomain:this.crossDomain?1:0,trackNoScript:this.trackNoScript?1:0,forceMatomoEndpoint:1};this.siteExcludedQueryParams[t.id]&&(n.excludedQueryParams=this.siteExcludedQueryParams[t.id]),this.siteExcludedReferrers[t.id]&&(n.excludedReferrers=this.siteExcludedReferrers[t.id]),this.useCustomCampaignParams&&(n.customCampaignNameQueryParam=this.customCampaignName,n.customCampaignKeywordParam=this.customCampaignKeyword),this.trackingCodeAbortController&&(this.trackingCodeAbortController.abort(),this.trackingCodeAbortController=null),this.trackingCodeAbortController=new AbortController,r["AjaxHelper"].post({module:"API",format:"json",method:"SitesManager.getJavascriptTag",idSite:t.id},n,{abortController:this.trackingCodeAbortController}).then((function(t){e.trackingCodeAbortController=null,e.trackingCode=t.value;var n=ut(e.$refs.trackingCode);n&&!e.isHighlighting&&(e.isHighlighting=!0,n.effect("highlight",{complete:function(){e.isHighlighting=!1}},1500))}))},updateCurrentSiteInfo:function(){this.hasManySiteUrls||(this.crossDomain=!1)},addCustomVar:function(){this.canAddMoreCustomVariables&&this.customVars.push({name:"",value:""}),this.canAddMoreCustomVariables=!!this.maxCustomVariables&&this.maxCustomVariables>this.customVars.length},onCustomVarNameKeydown:function(e,t){var n=this;setTimeout((function(){n.customVars[t].name=e.target.value,n.updateTrackingCode()}))},onCustomVarValueKeydown:function(e,t){var n=this;setTimeout((function(){n.customVars[t].value=e.target.value,n.updateTrackingCode()}))}},computed:{hasManySiteUrls:function(){var e=this.site;return this.siteUrls[e.id]&&this.siteUrls[e.id].length>1},currentSiteHost:function(){var e,t=null===(e=this.siteUrls[this.site.id])||void 0===e?void 0:e[0];return t?ct(t):""},currentSiteAlias:function(){var e,t="x.".concat(this.currentSiteHost),n=null===(e=this.siteUrls[this.site.id])||void 0===e?void 0:e[1];return n||t},currentSiteName:function(){return r["Matomo"].helper.htmlEntities(this.site.name)},jsTrackingIntro3a:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro3a",'<a href="https://matomo.org/integrate/" rel="noreferrer noopener" target="_blank">',"</a>")},jsTrackingIntro3b:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro3b")},jsTrackingIntro4a:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro4",'<a href="#image-tracking-link">',"</a>")},jsTrackingIntro5:function(){return Object(r["translate"])("CoreAdminHome_JSTrackingIntro5",'<a rel="noreferrer noopener" target="_blank" href="https://developer.matomo.org/guides/tracking-javascript-guide">',"</a>")},mergeSubdomainsDesc:function(){return Object(r["translate"])("CoreAdminHome_JSTracking_MergeSubdomainsDesc","x.".concat(this.currentSiteHost),"y.".concat(this.currentSiteHost))},learnMoreText:function(){var e="https://developer.matomo.org/guides/tracking-javascript-guide#measuring-domains-andor-sub-domains";return Object(r["translate"])("General_LearnMore",' (<a href="'.concat(e,'" rel="noreferrer noopener" target="_blank">'),"</a>)")},jsTrackCampaignParamsInlineHelp:function(){return Object(r["translate"])("CoreAdminHome_JSTracking_CustomCampaignQueryParamDesc",'<a href="https://matomo.org/faq/general/faq_119" rel="noreferrer noopener" target="_blank">',"</a>")}}});pt.render=lt;var bt=pt,ht=(Object(r["createAngularJsAdapter"])({component:bt,scope:{defaultSite:{angularJsBind:"<"},maxCustomVariables:{angularJsBind:"<"},serverSideDoNotTrackEnabled:{angularJsBind:"<"}},directiveName:"matomoJsTrackingCodeGenerator"}),Object(i["createElementVNode"])("a",{name:"image-tracking-link"},null,-1)),jt={id:"image-tracking-code-options"},vt=["innerHTML"],ft=["innerHTML"],Ot={id:"image-tracking-goal-sub"},Ct={class:"row"},kt={class:"col s12 m6"},Vt={class:"col s12 m6"},St={id:"image-link-output-section"},Nt={id:"image-tracking-text"},yt=["textContent"];
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Tt(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("ContentBlock"),s=Object(i["resolveDirective"])("select-on-focus");return Object(i["openBlock"])(),Object(i["createBlock"])(c,{"content-title":e.translate("CoreAdminHome_ImageTracking"),anchor:"imageTracking"},{default:Object(i["withCtx"])((function(){return[ht,Object(i["createElementVNode"])("div",jt,[Object(i["createElementVNode"])("p",{innerHTML:e.$sanitize(e.imageTrackingIntro)},null,8,vt),Object(i["createElementVNode"])("p",{innerHTML:e.$sanitize(e.imageTrackingIntro3)},null,8,ft),Object(i["createVNode"])(l,{uicontrol:"site",name:"image-tracker-website",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.site=t}),introduction:e.translate("General_Website")},null,8,["modelValue","introduction"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"image-tracker-action-name","model-value":e.pageName,"onUpdate:modelValue":t[1]||(t[1]=function(t){e.pageName=t,e.updateTrackingCode()}),disabled:e.isLoading,introduction:e.translate("General_Options"),title:e.translate("Actions_ColumnPageName")},null,8,["model-value","disabled","introduction","title"]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"image-tracking-goal-check","model-value":e.trackGoal,"onUpdate:modelValue":t[2]||(t[2]=function(t){e.trackGoal=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_TrackAGoal")},null,8,["model-value","disabled","title"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Ot,[Object(i["createElementVNode"])("div",Ct,[Object(i["createElementVNode"])("div",kt,[Object(i["createVNode"])(l,{uicontrol:"select",name:"image-tracker-goal",options:e.siteGoals,disabled:e.isLoading,"model-value":e.trackIdGoal,"onUpdate:modelValue":t[3]||(t[3]=function(t){e.trackIdGoal=t,e.updateTrackingCode()})},null,8,["options","disabled","model-value"])]),Object(i["createElementVNode"])("div",Vt,[Object(i["createVNode"])(l,{uicontrol:"text",name:"image-revenue","model-value":e.revenue,"onUpdate:modelValue":t[4]||(t[4]=function(t){e.revenue=t,e.updateTrackingCode()}),disabled:e.isLoading,"full-width":!0,title:"".concat(e.translate("CoreAdminHome_WithOptionalRevenue")," ").concat(e.currentSiteCurrency)},null,8,["model-value","disabled","title"])])])],512),[[i["vShow"],e.trackGoal]]),Object(i["createElementVNode"])("div",St,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_ImageTrackingLink")),1),Object(i["createElementVNode"])("div",Nt,[Object(i["withDirectives"])(Object(i["createElementVNode"])("pre",{textContent:Object(i["toDisplayString"])(e.trackingCode),ref:"trackingCode"},null,8,yt),[[s,{}]])])])])]})),_:1},8,["content-title"])}function At(e,t){return Dt(e)||Ht(e,t)||wt(e,t)||Et()}function Et(){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 wt(e,t){if(e){if("string"===typeof e)return _t(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)?_t(e,t):void 0}}function _t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ht(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,a,r=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(o=n.next()).done);i=!0)if(r.push(o.value),t&&r.length===t)break}catch(c){l=!0,a=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw a}}return r}}function Dt(e){if(Array.isArray(e))return e}var Bt=null,Lt=window,Ut=Lt.$,xt=window.location.host,Ft=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")),It=Object(i["defineComponent"])({props:{defaultSite:{type:Object,required:!0}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"]},directives:{SelectOnFocus:r["SelectOnFocus"]},data:function(){return{isLoading:!1,site:this.defaultSite,pageName:"",trackGoal:!1,trackIdGoal:null,revenue:"",trackingCode:"",sites:{},goals:{},trackingCodeAbortController:null,isHighlighting:!1}},created:function(){this.updateTrackingCode=Object(r["debounce"])(this.updateTrackingCode),this.site&&this.site.id&&this.onSiteChanged(this.site)},watch:{site:function(e){this.onSiteChanged(e)}},methods:{onSiteChanged:function(e){var t,n,o,a=this;return this.trackIdGoal=null,Bt?t=Promise.resolve(Bt):(this.isLoading=!0,t=r["AjaxHelper"].fetch({method:"SitesManager.getCurrencySymbols",filter_limit:"-1"})),this.sites[e.id]?n=Promise.resolve(this.sites[e.id]):(this.isLoading=!0,n=r["AjaxHelper"].fetch({module:"API",method:"SitesManager.getSiteFromId",idSite:e.id})),this.goals[e.id]?o=Promise.resolve(this.goals[e.id]):(this.isLoading=!0,o=r["AjaxHelper"].fetch({module:"API",method:"Goals.getGoals",filter_limit:"-1",idSite:e.id})),Promise.all([t,n,o]).then((function(t){var n=At(t,3),o=n[0],r=n[1],i=n[2];a.isLoading=!1,Bt=o,a.sites[e.id]=r,a.goals[e.id]=i,a.updateTrackingCode()}))},updateTrackingCode:function(){var e=this,t={piwikUrl:"".concat(xt).concat(Ft),actionName:this.pageName,forceMatomoEndpoint:1};this.trackGoal&&this.trackIdGoal&&(t.idGoal=this.trackIdGoal,t.revenue=this.revenue),this.trackingCodeAbortController&&(this.trackingCodeAbortController.abort(),this.trackingCodeAbortController=null),this.trackingCodeAbortController=new AbortController,r["AjaxHelper"].post({module:"API",format:"json",method:"SitesManager.getImageTrackingCode",idSite:this.site.id},t,{abortController:this.trackingCodeAbortController}).then((function(t){e.trackingCodeAbortController=null,e.trackingCode=t.value;var n=Ut(e.$refs.trackingCode);n&&!e.isHighlighting&&(e.isHighlighting=!0,n.effect("highlight",{complete:function(){e.isHighlighting=!1}},1500))}))}},computed:{currentSiteCurrency:function(){return Bt?Bt[(this.sites[this.site.id].currency||"").toUpperCase()]:""},siteGoals:function(){var e=this.goals[this.site.id];return[{key:"",value:Object(r["translate"])("UserCountryMap_None")}].concat(Object.values(e||[]).map((function(e){return{key:"".concat(e.idgoal),value:e.name}})))},imageTrackingIntro:function(){var e=Object(r["translate"])("CoreAdminHome_ImageTrackingIntro1"),t=Object(r["translate"])("CoreAdminHome_ImageTrackingIntro2","<code>&lt;noscript&gt;&lt;/noscript&gt;</code>");return"".concat(e," ").concat(t)},imageTrackingIntro3:function(){var e="https://matomo.org/docs/tracking-api/reference/";return Object(r["translate"])("CoreAdminHome_ImageTrackingIntro3",'<a href="'.concat(e,'" rel="noreferrer noopener" target="_blank">'),"</a>")}}});It.render=Tt;var Gt=It,Pt=(Object(r["createAngularJsAdapter"])({component:Gt,scope:{defaultSite:{angularJsBind:"<"}},directiveName:"matomoImageTrackingCodeGenerator"}),Object(i["createElementVNode"])("br",null,null,-1)),Mt=Object(i["createElementVNode"])("br",null,null,-1),Jt=["value"],qt={class:"action"},Rt={colspan:"7"},Wt=Object(i["createElementVNode"])("span",{class:"icon-ok"},null,-1),$t={class:"ui-confirm",id:"confirmDeleteAllTrackingFailures"},Kt=["value"],zt=["value"],Qt={class:"ui-confirm",id:"confirmDeleteThisTrackingFailure"},Yt=["value"],Xt=["value"];
+ */function Tt(e,t,n,o,a,r){var l=Object(i["resolveComponent"])("Field"),c=Object(i["resolveComponent"])("ContentBlock"),s=Object(i["resolveDirective"])("select-on-focus");return Object(i["openBlock"])(),Object(i["createBlock"])(c,{"content-title":e.translate("CoreAdminHome_ImageTracking"),anchor:"imageTracking"},{default:Object(i["withCtx"])((function(){return[ht,Object(i["createElementVNode"])("div",jt,[Object(i["createElementVNode"])("p",{innerHTML:e.$sanitize(e.imageTrackingIntro)},null,8,vt),Object(i["createElementVNode"])("p",{innerHTML:e.$sanitize(e.imageTrackingIntro3)},null,8,ft),Object(i["createVNode"])(l,{uicontrol:"site",name:"image-tracker-website",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.site=t}),introduction:e.translate("General_Website")},null,8,["modelValue","introduction"]),Object(i["createVNode"])(l,{uicontrol:"text",name:"image-tracker-action-name","model-value":e.pageName,"onUpdate:modelValue":t[1]||(t[1]=function(t){e.pageName=t,e.updateTrackingCode()}),disabled:e.isLoading,introduction:e.translate("General_Options"),title:e.translate("Actions_ColumnPageName")},null,8,["model-value","disabled","introduction","title"]),Object(i["createVNode"])(l,{uicontrol:"checkbox",name:"image-tracking-goal-check","model-value":e.trackGoal,"onUpdate:modelValue":t[2]||(t[2]=function(t){e.trackGoal=t,e.updateTrackingCode()}),disabled:e.isLoading,title:e.translate("CoreAdminHome_TrackAGoal")},null,8,["model-value","disabled","title"]),Object(i["withDirectives"])(Object(i["createElementVNode"])("div",Ot,[Object(i["createElementVNode"])("div",Ct,[Object(i["createElementVNode"])("div",kt,[Object(i["createVNode"])(l,{uicontrol:"select",name:"image-tracker-goal",options:e.siteGoals,disabled:e.isLoading,"model-value":e.trackIdGoal,"onUpdate:modelValue":t[3]||(t[3]=function(t){e.trackIdGoal=t,e.updateTrackingCode()})},null,8,["options","disabled","model-value"])]),Object(i["createElementVNode"])("div",Vt,[Object(i["createVNode"])(l,{uicontrol:"text",name:"image-revenue","model-value":e.revenue,"onUpdate:modelValue":t[4]||(t[4]=function(t){e.revenue=t,e.updateTrackingCode()}),disabled:e.isLoading,"full-width":!0,title:"".concat(e.translate("CoreAdminHome_WithOptionalRevenue")," ").concat(e.currentSiteCurrency)},null,8,["model-value","disabled","title"])])])],512),[[i["vShow"],e.trackGoal]]),Object(i["createElementVNode"])("div",St,[Object(i["createElementVNode"])("h3",null,Object(i["toDisplayString"])(e.translate("CoreAdminHome_ImageTrackingLink")),1),Object(i["createElementVNode"])("div",Nt,[Object(i["withDirectives"])(Object(i["createElementVNode"])("pre",{textContent:Object(i["toDisplayString"])(e.trackingCode),ref:"trackingCode"},null,8,yt),[[s,{}]])])])])]})),_:1},8,["content-title"])}function At(e,t){return Dt(e)||Ht(e,t)||wt(e,t)||Et()}function Et(){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 wt(e,t){if(e){if("string"===typeof e)return _t(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)?_t(e,t):void 0}}function _t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ht(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,a,r=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(o=n.next()).done);i=!0)if(r.push(o.value),t&&r.length===t)break}catch(c){l=!0,a=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw a}}return r}}function Dt(e){if(Array.isArray(e))return e}var Bt=null,Lt=window,xt=Lt.$,Ut=window.location.host,Ft=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")),It=Object(i["defineComponent"])({props:{defaultSite:{type:Object,required:!0}},components:{ContentBlock:r["ContentBlock"],Field:T["Field"]},directives:{SelectOnFocus:r["SelectOnFocus"]},data:function(){return{isLoading:!1,site:this.defaultSite,pageName:"",trackGoal:!1,trackIdGoal:null,revenue:"",trackingCode:"",sites:{},goals:{},trackingCodeAbortController:null,isHighlighting:!1}},created:function(){this.updateTrackingCode=Object(r["debounce"])(this.updateTrackingCode),this.site&&this.site.id&&this.onSiteChanged(this.site)},watch:{site:function(e){this.onSiteChanged(e)}},methods:{onSiteChanged:function(e){var t,n,o,a=this;return this.trackIdGoal=null,Bt?t=Promise.resolve(Bt):(this.isLoading=!0,t=r["AjaxHelper"].fetch({method:"SitesManager.getCurrencySymbols",filter_limit:"-1"})),this.sites[e.id]?n=Promise.resolve(this.sites[e.id]):(this.isLoading=!0,n=r["AjaxHelper"].fetch({module:"API",method:"SitesManager.getSiteFromId",idSite:e.id})),this.goals[e.id]?o=Promise.resolve(this.goals[e.id]):(this.isLoading=!0,o=r["AjaxHelper"].fetch({module:"API",method:"Goals.getGoals",filter_limit:"-1",idSite:e.id})),Promise.all([t,n,o]).then((function(t){var n=At(t,3),o=n[0],r=n[1],i=n[2];a.isLoading=!1,Bt=o,a.sites[e.id]=r,a.goals[e.id]=i,a.updateTrackingCode()}))},updateTrackingCode:function(){var e=this,t={piwikUrl:"".concat(Ut).concat(Ft),actionName:this.pageName,forceMatomoEndpoint:1};this.trackGoal&&this.trackIdGoal&&(t.idGoal=this.trackIdGoal,t.revenue=this.revenue),this.trackingCodeAbortController&&(this.trackingCodeAbortController.abort(),this.trackingCodeAbortController=null),this.trackingCodeAbortController=new AbortController,r["AjaxHelper"].post({module:"API",format:"json",method:"SitesManager.getImageTrackingCode",idSite:this.site.id},t,{abortController:this.trackingCodeAbortController}).then((function(t){e.trackingCodeAbortController=null,e.trackingCode=t.value;var n=xt(e.$refs.trackingCode);n&&!e.isHighlighting&&(e.isHighlighting=!0,n.effect("highlight",{complete:function(){e.isHighlighting=!1}},1500))}))}},computed:{currentSiteCurrency:function(){return Bt?Bt[(this.sites[this.site.id].currency||"").toUpperCase()]:""},siteGoals:function(){var e=this.goals[this.site.id];return[{key:"",value:Object(r["translate"])("UserCountryMap_None")}].concat(Object.values(e||[]).map((function(e){return{key:"".concat(e.idgoal),value:e.name}})))},imageTrackingIntro:function(){var e=Object(r["translate"])("CoreAdminHome_ImageTrackingIntro1"),t=Object(r["translate"])("CoreAdminHome_ImageTrackingIntro2","<code>&lt;noscript&gt;&lt;/noscript&gt;</code>");return"".concat(e," ").concat(t)},imageTrackingIntro3:function(){var e="https://matomo.org/docs/tracking-api/reference/";return Object(r["translate"])("CoreAdminHome_ImageTrackingIntro3",'<a href="'.concat(e,'" rel="noreferrer noopener" target="_blank">'),"</a>")}}});It.render=Tt;var Gt=It,Pt=(Object(r["createAngularJsAdapter"])({component:Gt,scope:{defaultSite:{angularJsBind:"<"}},directiveName:"matomoImageTrackingCodeGenerator"}),Object(i["createElementVNode"])("br",null,null,-1)),Mt=Object(i["createElementVNode"])("br",null,null,-1),Jt=["value"],qt={class:"action"},Rt={colspan:"7"},Wt=Object(i["createElementVNode"])("span",{class:"icon-ok"},null,-1),$t={class:"ui-confirm",id:"confirmDeleteAllTrackingFailures"},Kt=["value"],zt=["value"],Qt={class:"ui-confirm",id:"confirmDeleteThisTrackingFailure"},Yt=["value"],Xt=["value"];
/*!
* Matomo - free/libre analytics platform
*
diff --git a/plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue b/plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue
index 5fc37e32f1..ba03040ff3 100644
--- a/plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue
+++ b/plugins/CoreAdminHome/vue/src/JsTrackingCodeGenerator/JsTrackingCodeGenerator.vue
@@ -304,6 +304,7 @@ interface JsTrackingCodeGeneratorState {
isLoading: boolean;
siteUrls: Record<string, string[]>;
siteExcludedQueryParams: Record<string, string[]>,
+ siteExcludedReferrers: Record<string, string[]>,
crossDomain: boolean;
groupByDomain: boolean;
trackAllAliases: boolean;
@@ -356,6 +357,7 @@ export default defineComponent({
isLoading: false,
siteUrls: {},
siteExcludedQueryParams: {},
+ siteExcludedReferrers: {},
crossDomain: false,
groupByDomain: false,
trackAllAliases: false,
@@ -431,6 +433,24 @@ export default defineComponent({
);
}
+ if (!this.siteExcludedReferrers[idSite]) {
+ this.isLoading = true;
+
+ promises.push(
+ AjaxHelper.fetch({
+ module: 'API',
+ method: 'SitesManager.getExcludedReferrers',
+ idSite,
+ filter_limit: '-1',
+ }).then((data) => {
+ this.siteExcludedReferrers[idSite] = [];
+ Object.values(data || []).forEach((referrer: unknown) => {
+ this.siteExcludedReferrers[idSite].push((referrer as string).replace(/^https?:\/\//, ''));
+ });
+ }),
+ );
+ }
+
Promise.all(promises).then(() => {
this.isLoading = false;
this.updateCurrentSiteInfo();
@@ -481,6 +501,10 @@ export default defineComponent({
params.excludedQueryParams = this.siteExcludedQueryParams[site.id];
}
+ if (this.siteExcludedReferrers[site.id]) {
+ params.excludedReferrers = this.siteExcludedReferrers[site.id];
+ }
+
if (this.useCustomCampaignParams) {
params.customCampaignNameQueryParam = this.customCampaignName;
params.customCampaignKeywordParam = this.customCampaignKeyword;
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.js b/plugins/CoreHome/vue/dist/CoreHome.umd.js
index 9b44476dfb..6019b20262 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.js
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.js
@@ -5761,44 +5761,44 @@ 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=48e19035
+// 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=72269392
-var SiteSelectorvue_type_template_id_48e19035_hoisted_1 = ["value", "name"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_2 = ["title"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_3 = ["textContent"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_4 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_1 = ["value", "name"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_2 = ["title"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_3 = ["textContent"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_4 = {
key: 1,
class: "placeholder"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_5 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_5 = {
class: "dropdown"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_6 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_6 = {
class: "custom_select_search"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_7 = ["placeholder"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_8 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_7 = ["placeholder"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_8 = {
key: 0
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_9 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_9 = {
class: "custom_select_container"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_10 = ["onClick"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_11 = ["innerHTML", "href", "title"];
-var SiteSelectorvue_type_template_id_48e19035_hoisted_12 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_10 = ["onClick"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_11 = ["innerHTML", "href", "title"];
+var SiteSelectorvue_type_template_id_72269392_hoisted_12 = {
class: "ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all\n siteSelect"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_13 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_13 = {
class: "ui-menu-item"
};
-var SiteSelectorvue_type_template_id_48e19035_hoisted_14 = {
+var SiteSelectorvue_type_template_id_72269392_hoisted_14 = {
class: "ui-corner-all",
tabindex: "-1"
};
var _hoisted_15 = {
key: 1
};
-function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props, $setup, $data, $options) {
+function SiteSelectorvue_type_template_id_72269392_render(_ctx, _cache, $props, $setup, $data, $options) {
var _ctx$modelValue, _ctx$modelValue2, _ctx$modelValue3, _ctx$modelValue4;
var _component_AllSitesLink = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("AllSitesLink");
@@ -5817,7 +5817,7 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
type: "hidden",
value: (_ctx$modelValue = _ctx.modelValue) === null || _ctx$modelValue === void 0 ? void 0 : _ctx$modelValue.id,
name: _ctx.name
- }, null, 8, SiteSelectorvue_type_template_id_48e19035_hoisted_1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+ }, null, 8, SiteSelectorvue_type_template_id_72269392_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);
@@ -5839,7 +5839,7 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
}, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, [(_ctx$modelValue2 = _ctx.modelValue) !== null && _ctx$modelValue2 !== void 0 && _ctx$modelValue2.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$modelValue3 = _ctx.modelValue) === null || _ctx$modelValue3 === void 0 ? void 0 : _ctx$modelValue3.name) || _ctx.firstSiteName)
- }, null, 8, SiteSelectorvue_type_template_id_48e19035_hoisted_3)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !((_ctx$modelValue4 = _ctx.modelValue) !== null && _ctx$modelValue4 !== void 0 && _ctx$modelValue4.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_48e19035_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_48e19035_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_48e19035_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_48e19035_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
+ }, null, 8, SiteSelectorvue_type_template_id_72269392_hoisted_3)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !((_ctx$modelValue4 = _ctx.modelValue) !== null && _ctx$modelValue4 !== void 0 && _ctx$modelValue4.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_72269392_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_72269392_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_72269392_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_72269392_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 = '';
@@ -5852,7 +5852,7 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
tabindex: "4",
class: "websiteSearch inp browser-default",
placeholder: _ctx.translate('General_Search')
- }, null, 8, SiteSelectorvue_type_template_id_48e19035_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", {
+ }, null, 8, SiteSelectorvue_type_template_id_72269392_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[4] || (_cache[4] = function ($event) {
_ctx.searchTerm = '';
@@ -5861,13 +5861,13 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
}),
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_48e19035_hoisted_8, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_AllSitesLink, {
+ }, 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_72269392_hoisted_8, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_AllSitesLink, {
href: _ctx.urlAllSites,
"all-sites-text": _ctx.allSitesText,
onClick: _cache[5] || (_cache[5] = 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_48e19035_hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", {
+ }, 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_72269392_hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", {
class: "custom_select_ul_list",
onClick: _cache[7] || (_cache[7] = function ($event) {
return _ctx.showSitesList = false;
@@ -5888,8 +5888,8 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
tabindex: "4",
href: _ctx.getUrlForSiteId(site.idsite),
title: site.name
- }, null, 8, SiteSelectorvue_type_template_id_48e19035_hoisted_11)], 8, SiteSelectorvue_type_template_id_48e19035_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_48e19035_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", SiteSelectorvue_type_template_id_48e19035_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", SiteSelectorvue_type_template_id_48e19035_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, {
+ }, null, 8, SiteSelectorvue_type_template_id_72269392_hoisted_11)], 8, SiteSelectorvue_type_template_id_72269392_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_72269392_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", SiteSelectorvue_type_template_id_72269392_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", SiteSelectorvue_type_template_id_72269392_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[8] || (_cache[8] = function ($event) {
@@ -5899,7 +5899,7 @@ function SiteSelectorvue_type_template_id_48e19035_render(_ctx, _cache, $props,
blur: _ctx.onBlur
}]]);
}
-// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=template&id=48e19035
+// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=template&id=72269392
// 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
@@ -6133,19 +6133,7 @@ function debounce(fn) {
/* harmony default export */ var SiteSelectorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
- modelValue: {
- type: Object,
- default: function _default(props) {
- if (props.modelValue) {
- return props.modelValue;
- }
-
- return Matomo_Matomo.idSite ? {
- id: Matomo_Matomo.idSite,
- name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName)
- } : undefined;
- }
- },
+ modelValue: Object,
showSelectedSite: {
type: Boolean,
default: false
@@ -6174,7 +6162,8 @@ function debounce(fn) {
type: String,
default: 'bottom'
},
- placeholder: String
+ placeholder: String,
+ defaultToFirstSite: Boolean
},
emits: ['update:modelValue', 'blur'],
components: {
@@ -6201,13 +6190,20 @@ function debounce(fn) {
},
created: function created() {
this.searchSite = debounce(this.searchSite);
+
+ if (!this.modelValue && Matomo_Matomo.idSite) {
+ this.$emit('update:modelValue', {
+ id: Matomo_Matomo.idSite,
+ name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName)
+ });
+ }
},
mounted: function mounted() {
var _this = this;
window.initTopControls();
this.loadInitialSites().then(function () {
- if ((!_this.modelValue || !_this.modelValue.id) && !_this.hasMultipleSites && _this.sites[0]) {
+ if ((!_this.modelValue || !_this.modelValue.id) && (!_this.hasMultipleSites || _this.defaultToFirstSite) && _this.sites[0]) {
_this.$emit('update:modelValue', {
id: _this.sites[0].idsite,
name: _this.sites[0].name
@@ -6376,7 +6372,7 @@ function debounce(fn) {
-SiteSelectorvue_type_script_lang_ts.render = SiteSelectorvue_type_template_id_48e19035_render
+SiteSelectorvue_type_script_lang_ts.render = SiteSelectorvue_type_template_id_72269392_render
/* harmony default export */ var SiteSelector = (SiteSelectorvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts
@@ -8997,7 +8993,6 @@ var ReportingMenu_store_ReportingMenuStore = /*#__PURE__*/function () {
ReportingMenu_store_classCallCheck(this, ReportingMenuStore);
ReportingMenu_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
- activeCategoryId: null,
activeSubcategoryId: null,
activeSubsubcategoryId: null
}));
@@ -9007,7 +9002,7 @@ var ReportingMenu_store_ReportingMenuStore = /*#__PURE__*/function () {
}));
ReportingMenu_store_defineProperty(this, "activeCategory", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
- return _this.state.value.activeCategoryId || src_MatomoUrl_MatomoUrl.parsed.value.category;
+ return typeof _this.state.value.activeCategoryId !== 'undefined' ? _this.state.value.activeCategoryId : src_MatomoUrl_MatomoUrl.parsed.value.category;
}));
ReportingMenu_store_defineProperty(this, "activeSubcategory", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
@@ -9157,7 +9152,7 @@ var ReportingMenu_store_ReportingMenuStore = /*#__PURE__*/function () {
this.privateState.activeSubcategoryId = null;
this.privateState.activeSubsubcategoryId = null;
- if (this.privateState.activeCategoryId === category.id) {
+ if (this.activeCategory.value === category.id) {
this.privateState.activeCategoryId = null;
return false;
}
diff --git a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
index 60d3e53295..46595f74a7 100644
--- a/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
+++ b/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
@@ -4,7 +4,7 @@
*
* @link https://matomo.org
* @license 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,"createVueApp",(function(){return dt})),n.d(t,"useExternalPluginComponent",(function(){return $n})),n.d(t,"DirectiveUtilities",(function(){return $t})),n.d(t,"debounce",(function(){return Gi})),n.d(t,"getFormattedEvolution",(function(){return Eu})),n.d(t,"createAngularJsAdapter",(function(){return kt})),n.d(t,"transformAngularJsBoolAttr",(function(){return St})),n.d(t,"transformAngularJsIntAttr",(function(){return Ct})),n.d(t,"removeAngularJsSpecificProperties",(function(){return jt})),n.d(t,"clone",(function(){return Et})),n.d(t,"cloneThenApply",(function(){return Dt})),n.d(t,"activityIndicatorAdapter",(function(){return Du})),n.d(t,"ActivityIndicator",(function(){return go})),n.d(t,"translate",(function(){return C})),n.d(t,"translateOrDefault",(function(){return E})),n.d(t,"Alert",(function(){return ut})),n.d(t,"AjaxHelper",(function(){return Ze})),n.d(t,"setCookie",(function(){return Pu})),n.d(t,"getCookie",(function(){return Vu})),n.d(t,"deleteCookie",(function(){return Nu})),n.d(t,"MatomoUrl",(function(){return Ee})),n.d(t,"Matomo",(function(){return S})),n.d(t,"Periods",(function(){return p})),n.d(t,"Day",(function(){return z})),n.d(t,"Week",(function(){return Z})),n.d(t,"Month",(function(){return ie})),n.d(t,"Year",(function(){return se})),n.d(t,"Range",(function(){return H})),n.d(t,"format",(function(){return D})),n.d(t,"getToday",(function(){return P})),n.d(t,"parseDate",(function(){return V})),n.d(t,"todayIsInRange",(function(){return N})),n.d(t,"DropdownMenu",(function(){return Pt})),n.d(t,"FocusAnywhereButHere",(function(){return Bt})),n.d(t,"FocusIf",(function(){return Rt})),n.d(t,"Tooltips",(function(){return Rr})),n.d(t,"MatomoDialog",(function(){return Cn})),n.d(t,"ExpandOnClick",(function(){return Qt})),n.d(t,"ExpandOnHover",(function(){return rn})),n.d(t,"ShowSensitiveData",(function(){return cn})),n.d(t,"DropdownButton",(function(){return pn})),n.d(t,"SelectOnFocus",(function(){return vn})),n.d(t,"SideNav",(function(){return wn})),n.d(t,"EnrichedHeadline",(function(){return qn})),n.d(t,"ContentBlock",(function(){return tr})),n.d(t,"Comparisons",(function(){return _r})),n.d(t,"MenuItemsDropdown",(function(){return ti})),n.d(t,"DatePicker",(function(){return ci})),n.d(t,"DateRangePicker",(function(){return fi})),n.d(t,"PeriodDatePicker",(function(){return yi})),n.d(t,"Notification",(function(){return ol})),n.d(t,"NotificationGroup",(function(){return wl})),n.d(t,"NotificationsStore",(function(){return hl})),n.d(t,"SitesStore",(function(){return Wi})),n.d(t,"SiteSelector",(function(){return Yi})),n.d(t,"QuickAccess",(function(){return pa})),n.d(t,"FieldArray",(function(){return Ea})),n.d(t,"MultiPairField",(function(){return Ua})),n.d(t,"PeriodSelector",(function(){return No})),n.d(t,"ReportingMenu",(function(){return Zl})),n.d(t,"ReportingMenuStore",(function(){return Hl})),n.d(t,"ReportingPagesStore",(function(){return El})),n.d(t,"ReportMetadataStore",(function(){return cc})),n.d(t,"WidgetsStore",(function(){return Ql})),n.d(t,"WidgetLoader",(function(){return hc})),n.d(t,"WidgetContainer",(function(){return Vc})),n.d(t,"WidgetByDimensionContainer",(function(){return Wc})),n.d(t,"Widget",(function(){return Xc})),n.d(t,"ReportingPage",(function(){return ws})),n.d(t,"ReportExport",(function(){return Xs})),n.d(t,"Sparkline",(function(){return ru})),n.d(t,"Progressbar",(function(){return uu})),n.d(t,"ContentIntro",(function(){return du})),n.d(t,"ContentTable",(function(){return mu})),n.d(t,"AjaxForm",(function(){return wu})),"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 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 c(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),e}function s(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,"createVueApp",(function(){return dt})),n.d(t,"useExternalPluginComponent",(function(){return $n})),n.d(t,"DirectiveUtilities",(function(){return $t})),n.d(t,"debounce",(function(){return Gi})),n.d(t,"getFormattedEvolution",(function(){return Eu})),n.d(t,"createAngularJsAdapter",(function(){return kt})),n.d(t,"transformAngularJsBoolAttr",(function(){return St})),n.d(t,"transformAngularJsIntAttr",(function(){return Ct})),n.d(t,"removeAngularJsSpecificProperties",(function(){return jt})),n.d(t,"clone",(function(){return Et})),n.d(t,"cloneThenApply",(function(){return Dt})),n.d(t,"activityIndicatorAdapter",(function(){return Du})),n.d(t,"ActivityIndicator",(function(){return go})),n.d(t,"translate",(function(){return C})),n.d(t,"translateOrDefault",(function(){return E})),n.d(t,"Alert",(function(){return ut})),n.d(t,"AjaxHelper",(function(){return Ze})),n.d(t,"setCookie",(function(){return Pu})),n.d(t,"getCookie",(function(){return Vu})),n.d(t,"deleteCookie",(function(){return Nu})),n.d(t,"MatomoUrl",(function(){return Ee})),n.d(t,"Matomo",(function(){return S})),n.d(t,"Periods",(function(){return p})),n.d(t,"Day",(function(){return z})),n.d(t,"Week",(function(){return Z})),n.d(t,"Month",(function(){return ie})),n.d(t,"Year",(function(){return se})),n.d(t,"Range",(function(){return H})),n.d(t,"format",(function(){return D})),n.d(t,"getToday",(function(){return P})),n.d(t,"parseDate",(function(){return V})),n.d(t,"todayIsInRange",(function(){return N})),n.d(t,"DropdownMenu",(function(){return Pt})),n.d(t,"FocusAnywhereButHere",(function(){return Bt})),n.d(t,"FocusIf",(function(){return Ft})),n.d(t,"Tooltips",(function(){return Fr})),n.d(t,"MatomoDialog",(function(){return Cn})),n.d(t,"ExpandOnClick",(function(){return Qt})),n.d(t,"ExpandOnHover",(function(){return rn})),n.d(t,"ShowSensitiveData",(function(){return cn})),n.d(t,"DropdownButton",(function(){return pn})),n.d(t,"SelectOnFocus",(function(){return vn})),n.d(t,"SideNav",(function(){return wn})),n.d(t,"EnrichedHeadline",(function(){return qn})),n.d(t,"ContentBlock",(function(){return tr})),n.d(t,"Comparisons",(function(){return _r})),n.d(t,"MenuItemsDropdown",(function(){return ti})),n.d(t,"DatePicker",(function(){return ci})),n.d(t,"DateRangePicker",(function(){return fi})),n.d(t,"PeriodDatePicker",(function(){return yi})),n.d(t,"Notification",(function(){return ol})),n.d(t,"NotificationGroup",(function(){return wl})),n.d(t,"NotificationsStore",(function(){return hl})),n.d(t,"SitesStore",(function(){return Wi})),n.d(t,"SiteSelector",(function(){return Yi})),n.d(t,"QuickAccess",(function(){return pa})),n.d(t,"FieldArray",(function(){return Ea})),n.d(t,"MultiPairField",(function(){return Ua})),n.d(t,"PeriodSelector",(function(){return No})),n.d(t,"ReportingMenu",(function(){return Zl})),n.d(t,"ReportingMenuStore",(function(){return Hl})),n.d(t,"ReportingPagesStore",(function(){return El})),n.d(t,"ReportMetadataStore",(function(){return cc})),n.d(t,"WidgetsStore",(function(){return Ql})),n.d(t,"WidgetLoader",(function(){return hc})),n.d(t,"WidgetContainer",(function(){return Vc})),n.d(t,"WidgetByDimensionContainer",(function(){return Wc})),n.d(t,"Widget",(function(){return Xc})),n.d(t,"ReportingPage",(function(){return ws})),n.d(t,"ReportExport",(function(){return Xs})),n.d(t,"Sparkline",(function(){return ru})),n.d(t,"Progressbar",(function(){return uu})),n.d(t,"ContentIntro",(function(){return du})),n.d(t,"ContentTable",(function(){return mu})),n.d(t,"AjaxForm",(function(){return wu})),"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 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 c(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),e}function s(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
*
@@ -29,13 +29,13 @@ function C(e){if(!e)return"";for(var t=arguments.length,n=new Array(t>1?t-1:0),r
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function D(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 V(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 i=P();return i.setDate(1),i.setMonth(i.getMonth()-1),i}if(t.match(/last[ -]?year/i)){var a=P();return a.setFullYear(a.getFullYear()-1),a}return $.datepicker.parseDate("yy-mm-dd",t)}function N(e){return 2===e.length&&(P()>=e[0]&&P()<=e[1])}function T(e,t){return M(e)||B(e,t)||I(e,t)||A()}function A(){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 I(e,t){if(e){if("string"===typeof e)return x(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)?x(e,t):void 0}}function x(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 B(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function M(e){if(Array.isArray(e))return e}function L(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function R(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 F(e,t,n){return t&&R(e.prototype,t),n&&R(e,n),e}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */function D(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 V(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 i=P();return i.setDate(1),i.setMonth(i.getMonth()-1),i}if(t.match(/last[ -]?year/i)){var a=P();return a.setFullYear(a.getFullYear()-1),a}return $.datepicker.parseDate("yy-mm-dd",t)}function N(e){return 2===e.length&&(P()>=e[0]&&P()<=e[1])}function T(e,t){return M(e)||B(e,t)||I(e,t)||A()}function A(){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 I(e,t){if(e){if("string"===typeof e)return x(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)?x(e,t):void 0}}function x(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 B(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function M(e){if(Array.isArray(e))return e}function L(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 R(e,t,n){return t&&F(e.prototype,t),n&&F(e,n),e}function _(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 H=function(){function e(t,n,r){L(this,e),_(this,"startDate",void 0),_(this,"endDate",void 0),_(this,"childPeriodType",void 0),this.startDate=t,this.endDate=n,this.childPeriodType=r}return F(e,[{key:"getPrettyString",value:function(){var e=D(this.startDate),t=D(this.endDate);return C("General_DateRangeFromTo",[e,t])}},{key:"getDateRange",value:function(){return[this.startDate,this.endDate]}},{key:"containsToday",value:function(){return N(this.getDateRange())}},{key:"getDayCount",value:function(){return Math.ceil((this.endDate.getTime()-this.startDate.getTime())/864e5)+1}}],[{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?V(r):P(),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 l=p.periods[t].parse(o),c=p.periods[t].parse(a),s=l.getDateRange(),u=T(s,1);o=u[0];var d=c.getDateRange(),m=T(d,2);a=m[1]}var f=new Date(1991,7,6);if(o.getTime()-f.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=f;break}return new e(o,a,t)}},{key:"getLastNRangeChild",value:function(t,n,r){var i=n?V(n):P(),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 l=p.periods[t].parse(a),c=p.periods[t].parse(o),s=l.getDateRange(),u=T(s,1);a=u[0];var d=c.getDateRange(),m=T(d,2);o=m[1]}var f=new Date(1991,7,6);if(a.getTime()-f.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=f;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(V(i[0]),V(i[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:V,format:D,RangePeriod:H,todayIsInRange:N}}function q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W(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&&W(e.prototype,t),n&&W(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}
+ */var H=function(){function e(t,n,r){L(this,e),_(this,"startDate",void 0),_(this,"endDate",void 0),_(this,"childPeriodType",void 0),this.startDate=t,this.endDate=n,this.childPeriodType=r}return R(e,[{key:"getPrettyString",value:function(){var e=D(this.startDate),t=D(this.endDate);return C("General_DateRangeFromTo",[e,t])}},{key:"getDateRange",value:function(){return[this.startDate,this.endDate]}},{key:"containsToday",value:function(){return N(this.getDateRange())}},{key:"getDayCount",value:function(){return Math.ceil((this.endDate.getTime()-this.startDate.getTime())/864e5)+1}}],[{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?V(r):P(),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 l=p.periods[t].parse(o),c=p.periods[t].parse(a),s=l.getDateRange(),u=T(s,1);o=u[0];var d=c.getDateRange(),m=T(d,2);a=m[1]}var f=new Date(1991,7,6);if(o.getTime()-f.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=f;break}return new e(o,a,t)}},{key:"getLastNRangeChild",value:function(t,n,r){var i=n?V(n):P(),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 l=p.periods[t].parse(a),c=p.periods[t].parse(o),s=l.getDateRange(),u=T(s,1);a=u[0];var d=c.getDateRange(),m=T(d,2);o=m[1]}var f=new Date(1991,7,6);if(a.getTime()-f.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=f;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(V(i[0]),V(i[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:V,format:D,RangePeriod:H,todayIsInRange:N}}function q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W(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&&W(e.prototype,t),n&&W(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
*
@@ -93,13 +93,13 @@ function De(){var e={getSearchParam:Ee.getSearchParam.bind(Ee)};return e}
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function Pe(){return S}function Ve(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 S.postEventNoEmit.apply(S,[e].concat(n)),this.$oldEmit.apply(this,[e].concat(n))},t.$oldBroadcast=t.$broadcast,t.$broadcast=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 S.postEventNoEmit.apply(S,[e].concat(n)),this.$oldBroadcast.apply(this,[e].concat(n))},t.$on("$locationChangeSuccess",e.updatePeriodParamsFromUrl)}function Ne(e){return Ne="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne(e)}function Te(e){return Be(e)||xe(e)||Ie(e)||Ae()}function Ae(){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 Ie(e,t){if(e){if("string"===typeof e)return Me(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)?Me(e,t):void 0}}function xe(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function Be(e){if(Array.isArray(e))return Me(e)}function Me(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 Le(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 Re(e,t,n){return t&&Le(e.prototype,t),n&&Le(e,n),e}function Fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $e(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ye(e,t)}function He(e){var t=Ge();return function(){var n,r=Qe(e);if(t){var i=Qe(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Ue(this,n)}}function Ue(e,t){if(t&&("object"===Ne(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return qe(e)}function qe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function We(e){var t="function"===typeof Map?new Map:void 0;return We=function(e){if(null===e||!ze(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return Je(e,arguments,Qe(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Ye(n,e)},We(e)}function Je(e,t,n){return Je=Ge()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=Function.bind.apply(e,r),a=new i;return n&&Ye(a,n.prototype),a},Je.apply(null,arguments)}function Ge(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function ze(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function Ye(e,t){return Ye=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Ye(e,t)}function Qe(e){return Qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Qe(e)}
+function Pe(){return S}function Ve(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 S.postEventNoEmit.apply(S,[e].concat(n)),this.$oldEmit.apply(this,[e].concat(n))},t.$oldBroadcast=t.$broadcast,t.$broadcast=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 S.postEventNoEmit.apply(S,[e].concat(n)),this.$oldBroadcast.apply(this,[e].concat(n))},t.$on("$locationChangeSuccess",e.updatePeriodParamsFromUrl)}function Ne(e){return Ne="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne(e)}function Te(e){return Be(e)||xe(e)||Ie(e)||Ae()}function Ae(){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 Ie(e,t){if(e){if("string"===typeof e)return Me(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)?Me(e,t):void 0}}function xe(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function Be(e){if(Array.isArray(e))return Me(e)}function Me(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 Le(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&&Le(e.prototype,t),n&&Le(e,n),e}function Re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $e(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ye(e,t)}function He(e){var t=Ge();return function(){var n,r=Qe(e);if(t){var i=Qe(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return Ue(this,n)}}function Ue(e,t){if(t&&("object"===Ne(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return qe(e)}function qe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function We(e){var t="function"===typeof Map?new Map:void 0;return We=function(e){if(null===e||!ze(e))return e;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return Je(e,arguments,Qe(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Ye(n,e)},We(e)}function Je(e,t,n){return Je=Ge()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=Function.bind.apply(e,r),a=new i;return n&&Ye(a,n.prototype),a},Je.apply(null,arguments)}function Ge(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function ze(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function Ye(e,t){return Ye=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Ye(e,t)}function Qe(e){return Qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Qe(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 Ke(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))}Oe.updatePeriodParamsFromUrl=Ce.updatePeriodParamsFromUrl.bind(Ce),window.angular.module("piwikApp.service").service("piwikUrl",De),window.angular.module("piwikApp.service").run(["$location",function(){return null}]),window.angular.module("piwikApp.service").service("piwik",Pe),Ve.$inject=["piwik","$rootScope"],window.angular.module("piwikApp.service").run(Ve),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 Xe=function(e){$e(n,e);var t=He(n);function n(){return _e(this,n),t.apply(this,arguments)}return n}(We(Error)),Ze=function(){function e(){_e(this,e),Fe(this,"format","json"),Fe(this,"timeout",null),Fe(this,"callback",null),Fe(this,"useRegularCallbackInCaseOfError",!1),Fe(this,"errorCallback",void 0),Fe(this,"withToken",!1),Fe(this,"completeCallback",void 0),Fe(this,"getParams",{}),Fe(this,"getUrl","?"),Fe(this,"postParams",{}),Fe(this,"loadingElement",null),Fe(this,"errorElement","#ajaxError"),Fe(this,"headers",void 0),Fe(this,"requestHandle",null),Fe(this,"abortController",null),Fe(this,"defaultParams",["idSite","period","date","segment"]),Fe(this,"resolveWithHelper",!1),this.errorCallback=Ke}return Re(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)&&("boolean"===typeof a&&(a=a?1:0),"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=null;try{t=S.helper.getAngularDependency("$timeout")}catch(r){}this.abortController&&this.abortController.signal.addEventListener("abort",(function(){e.requestHandle&&e.requestHandle.abort()}));var n=new Promise((function(n,r){e.requestHandle.then((function(t){e.resolveWithHelper?n(e):n(t)})).fail((function(t){"abort"!==t.statusText&&(console.log("Warning: the ".concat($.param(e.getParams)," request failed!")),r(t))})).done((function(){t&&t()}))}));return n}},{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,headers:this.headers?this.headers:void 0,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";$(e.errorElement).length&&t.message&&($(e.errorElement).show(),i=e.errorElement,a=null);var o=!document.querySelector("#login_form");if(t.message&&o){var l=window["require"]("piwik/UI"),c=new l.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,S.ajaxRequestFinished&&S.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()||S.shouldPropagateTokenAuth?{token_auth:S.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}},{key:"mixinDefaultPostParams",value:function(e){var t=this.getDefaultPostParams(),n=Object.assign(Object.assign({},t),e);return n}},{key:"mixinDefaultGetParams",value:function(e){var t=this,n=Ee.getSearchParam("segment"),r={idSite:S.idSite?S.idSite.toString():broadcast.getValueFromUrl("idSite"),period:S.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)||null!==i[e]&&"undefined"!==typeof i[e]&&""!==i[e]||null!==t.postParams[e]&&"undefined"!==typeof t.postParams[e]&&""!==t.postParams[e]||!r[e]||(i[e]=r[e])})),!this.useGETDefaultParameter("date")||i.date||this.postParams.date||(i.date=S.currentDateString),i}},{key:"getRequestHandle",value:function(){return this.requestHandle}}],[{key:"fetch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new e;n.withTokenInUrl&&r.withTokenInUrl(),n.errorElement&&r.setErrorElement(n.errorElement),n.redirectOnSuccess&&r.redirectOnSuccess(!0!==n.redirectOnSuccess?n.redirectOnSuccess:void 0),r.setFormat(n.format||"json"),Array.isArray(t)?r.setBulkRequests.apply(r,Te(t)):r.addParams(Object.assign(Object.assign({module:"API",format:n.format||"json"},t),{},{segment:t.segment?encodeURIComponent(t.segment):void 0}),"get"),n.postParams&&r.addParams(n.postParams,"post"),n.headers&&(r.headers=n.headers);var i=!0;return"undefined"===typeof n.createErrorNotification||n.createErrorNotification||(r.useCallbackInCaseOfError(),r.setErrorCallback(null),i=!1),n.abortController&&(r.abortController=n.abortController),n.returnResponseObject&&(r.resolveWithHelper=!0),r.send().then((function(t){var n=t instanceof e?t.requestHandle.responseJSON:t;if("error"===n.result)throw new Xe(n.message);return t})).catch((function(e){if(i)throw e;var t="Something went wrong";throw 504===e.status&&(t="Request was prossibly aborted"),new Error(t)}))}},{key:"post",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fetch(t,Object.assign(Object.assign({},r),{},{postParams:n}))}},{key:"oneAtATime",value:function(t,n){var r=null;return function(i,a){return r&&r.abort(),r=new AbortController,e.post(Object.assign(Object.assign({},i),{},{method:t}),a,Object.assign(Object.assign({},n),{},{abortController:r})).finally((function(){r=null}))}}}]),e}();function et(){return window.globalAjaxQueue}function tt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nt(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 rt(e,t,n){return t&&nt(e.prototype,t),n&&nt(e,n),e}
+ */function Ke(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))}Oe.updatePeriodParamsFromUrl=Ce.updatePeriodParamsFromUrl.bind(Ce),window.angular.module("piwikApp.service").service("piwikUrl",De),window.angular.module("piwikApp.service").run(["$location",function(){return null}]),window.angular.module("piwikApp.service").service("piwik",Pe),Ve.$inject=["piwik","$rootScope"],window.angular.module("piwikApp.service").run(Ve),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 Xe=function(e){$e(n,e);var t=He(n);function n(){return _e(this,n),t.apply(this,arguments)}return n}(We(Error)),Ze=function(){function e(){_e(this,e),Re(this,"format","json"),Re(this,"timeout",null),Re(this,"callback",null),Re(this,"useRegularCallbackInCaseOfError",!1),Re(this,"errorCallback",void 0),Re(this,"withToken",!1),Re(this,"completeCallback",void 0),Re(this,"getParams",{}),Re(this,"getUrl","?"),Re(this,"postParams",{}),Re(this,"loadingElement",null),Re(this,"errorElement","#ajaxError"),Re(this,"headers",void 0),Re(this,"requestHandle",null),Re(this,"abortController",null),Re(this,"defaultParams",["idSite","period","date","segment"]),Re(this,"resolveWithHelper",!1),this.errorCallback=Ke}return Fe(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)&&("boolean"===typeof a&&(a=a?1:0),"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=null;try{t=S.helper.getAngularDependency("$timeout")}catch(r){}this.abortController&&this.abortController.signal.addEventListener("abort",(function(){e.requestHandle&&e.requestHandle.abort()}));var n=new Promise((function(n,r){e.requestHandle.then((function(t){e.resolveWithHelper?n(e):n(t)})).fail((function(t){"abort"!==t.statusText&&(console.log("Warning: the ".concat($.param(e.getParams)," request failed!")),r(t))})).done((function(){t&&t()}))}));return n}},{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,headers:this.headers?this.headers:void 0,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";$(e.errorElement).length&&t.message&&($(e.errorElement).show(),i=e.errorElement,a=null);var o=!document.querySelector("#login_form");if(t.message&&o){var l=window["require"]("piwik/UI"),c=new l.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,S.ajaxRequestFinished&&S.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()||S.shouldPropagateTokenAuth?{token_auth:S.token_auth,force_api_session:broadcast.isWidgetizeRequestWithoutSession()?0:1}:{}}},{key:"mixinDefaultPostParams",value:function(e){var t=this.getDefaultPostParams(),n=Object.assign(Object.assign({},t),e);return n}},{key:"mixinDefaultGetParams",value:function(e){var t=this,n=Ee.getSearchParam("segment"),r={idSite:S.idSite?S.idSite.toString():broadcast.getValueFromUrl("idSite"),period:S.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)||null!==i[e]&&"undefined"!==typeof i[e]&&""!==i[e]||null!==t.postParams[e]&&"undefined"!==typeof t.postParams[e]&&""!==t.postParams[e]||!r[e]||(i[e]=r[e])})),!this.useGETDefaultParameter("date")||i.date||this.postParams.date||(i.date=S.currentDateString),i}},{key:"getRequestHandle",value:function(){return this.requestHandle}}],[{key:"fetch",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new e;n.withTokenInUrl&&r.withTokenInUrl(),n.errorElement&&r.setErrorElement(n.errorElement),n.redirectOnSuccess&&r.redirectOnSuccess(!0!==n.redirectOnSuccess?n.redirectOnSuccess:void 0),r.setFormat(n.format||"json"),Array.isArray(t)?r.setBulkRequests.apply(r,Te(t)):r.addParams(Object.assign(Object.assign({module:"API",format:n.format||"json"},t),{},{segment:t.segment?encodeURIComponent(t.segment):void 0}),"get"),n.postParams&&r.addParams(n.postParams,"post"),n.headers&&(r.headers=n.headers);var i=!0;return"undefined"===typeof n.createErrorNotification||n.createErrorNotification||(r.useCallbackInCaseOfError(),r.setErrorCallback(null),i=!1),n.abortController&&(r.abortController=n.abortController),n.returnResponseObject&&(r.resolveWithHelper=!0),r.send().then((function(t){var n=t instanceof e?t.requestHandle.responseJSON:t;if("error"===n.result)throw new Xe(n.message);return t})).catch((function(e){if(i)throw e;var t="Something went wrong";throw 504===e.status&&(t="Request was prossibly aborted"),new Error(t)}))}},{key:"post",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fetch(t,Object.assign(Object.assign({},r),{},{postParams:n}))}},{key:"oneAtATime",value:function(t,n){var r=null;return function(i,a){return r&&r.abort(),r=new AbortController,e.post(Object.assign(Object.assign({},i),{},{method:t}),a,Object.assign(Object.assign({},n),{},{abortController:r})).finally((function(){r=null}))}}}]),e}();function et(){return window.globalAjaxQueue}function tt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nt(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 rt(e,t,n){return t&&nt(e.prototype,t),n&&nt(e,n),e}
/*!
* Matomo - free/libre analytics platform
*
@@ -157,20 +157,20 @@ function Mt(){return{restrict:"A",link:function(e,t,n){var r={instance:null,valu
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function Lt(e,t){t.arg&&setTimeout((function(){e.focus(),t.value.afterFocus&&t.value.afterFocus()}),5)}window.angular.module("piwikApp.directive").directive("piwikFocusAnywhereButHere",Mt);var Rt={mounted:function(e,t){Lt(e,t)},updated:function(e,t){Lt(e,t)}};
+function Lt(e,t){t.arg&&setTimeout((function(){e.focus(),t.value.afterFocus&&t.value.afterFocus()}),5)}window.angular.module("piwikApp.directive").directive("piwikFocusAnywhereButHere",Mt);var Ft={mounted:function(e,t){Lt(e,t)},updated:function(e,t){Lt(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 Ft(){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:{}};Rt.updated(t[0],r)}))}}}
+ */function Rt(){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:{}};Ft.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 _t(e,t){var n;return e instanceof HTMLElement?e:null===(n=t.instance)||void 0===n?void 0:n.$refs[e]}window.angular.module("piwikApp.directive").directive("piwikFocusIf",Ft);var $t={getRef:_t};
+function _t(e,t){var n;return e instanceof HTMLElement?e:null===(n=t.instance)||void 0===n?void 0:n.$refs[e]}window.angular.module("piwikApp.directive").directive("piwikFocusIf",Rt);var $t={getRef:_t};
/*!
* Matomo - free/libre analytics platform
*
@@ -252,13 +252,13 @@ var yn=!1,wn={mounted:function(e,t){t.value.activator&&setTimeout((function(){if
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function On(e){return{restrict:"A",priority:10,link:function(t,n,r){var i={instance:null,value:{activator:$(r.piwikSideNav)[0]},oldValue:null,modifiers:{},dir:{}};e((function(){wn.mounted(n[0],i)}))}}}On.$inject=["$timeout"],window.angular.module("piwikApp.directive").directive("piwikSideNav",On);var jn={ref:"root"};function kn(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",jn,[Object(a["renderSlot"])(e.$slots,"default")],512)),[[a["vShow"],e.modelValue]])}var Sn=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;S.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")}}});Sn.render=kn;var Cn=Sn,En=(kt({component:Cn,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,i){i.close&&(n.$eval(i.close),setTimeout((function(){n.$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}),{key:0,class:"title",tabindex:"6"}),Dn=["href","title"],Pn={class:"iconsBar"},Vn=["href","title"],Nn=Object(a["createElementVNode"])("span",{class:"icon-help"},null,-1),Tn=[Nn],An=["title"],In=Object(a["createElementVNode"])("span",{class:"icon-info"},null,-1),xn=[In],Bn={class:"ratingIcons"},Mn={class:"inlineHelp"},Ln=["innerHTML"],Rn=["innerHTML"],Fn=["href"];
+function On(e){return{restrict:"A",priority:10,link:function(t,n,r){var i={instance:null,value:{activator:$(r.piwikSideNav)[0]},oldValue:null,modifiers:{},dir:{}};e((function(){wn.mounted(n[0],i)}))}}}On.$inject=["$timeout"],window.angular.module("piwikApp.directive").directive("piwikSideNav",On);var jn={ref:"root"};function kn(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",jn,[Object(a["renderSlot"])(e.$slots,"default")],512)),[[a["vShow"],e.modelValue]])}var Sn=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;S.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")}}});Sn.render=kn;var Cn=Sn,En=(kt({component:Cn,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,i){i.close&&(n.$eval(i.close),setTimeout((function(){n.$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}),{key:0,class:"title",tabindex:"6"}),Dn=["href","title"],Pn={class:"iconsBar"},Vn=["href","title"],Nn=Object(a["createElementVNode"])("span",{class:"icon-help"},null,-1),Tn=[Nn],An=["title"],In=Object(a["createElementVNode"])("span",{class:"icon-info"},null,-1),xn=[In],Bn={class:"ratingIcons"},Mn={class:"inlineHelp"},Ln=["innerHTML"],Fn=["innerHTML"],Rn=["href"];
/*!
* 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(e,t,n,r,i,o){var l=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",En,[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,Dn)):Object(a["createCommentVNode"])("",!0),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",Pn,[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")},Tn,8,Vn)):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")},xn,10,An)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Bn,[Object(a["createVNode"])(l,{title:e.actualFeatureName},null,8,["title"])])],512),[[a["vShow"],e.showIcons||e.showInlineHelp]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Mn,[Object(a["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Ln),""!=e.reportGenerated?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,class:"helpDate",innerHTML:e.$sanitize(e.reportGenerated)},null,8,Rn)):Object(a["createCommentVNode"])("",!0),e.helpUrl?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(a["toDisplayString"])(e.translate("General_MoreDetails")),9,Fn)):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showInlineHelp]])],544)}
+ */function _n(e,t,n,r,i,o){var l=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",En,[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,Dn)):Object(a["createCommentVNode"])("",!0),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",Pn,[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")},Tn,8,Vn)):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")},xn,10,An)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Bn,[Object(a["createVNode"])(l,{title:e.actualFeatureName},null,8,["title"])])],512),[[a["vShow"],e.showIcons||e.showInlineHelp]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Mn,[Object(a["createElementVNode"])("div",{innerHTML:e.$sanitize(e.actualInlineHelp)},null,8,Ln),""!=e.reportGenerated?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,class:"helpDate",innerHTML:e.$sanitize(e.reportGenerated)},null,8,Fn)):Object(a["createCommentVNode"])("",!0),e.helpUrl?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,rel:"noreferrer noopener",target:"_blank",class:"readMore",href:e.helpUrl},Object(a["toDisplayString"])(e.translate("General_MoreDetails")),9,Rn)):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showInlineHelp]])],544)}
/*!
* Matomo - free/libre analytics platform
*
@@ -294,13 +294,13 @@ function On(e){return{restrict:"A",priority:10,link:function(t,n,r){var i={insta
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */var xr=window,Br=xr.$;function Mr(){var e=Br(this).attr("title")||"";return window.vueSanitize(e.replace(/\n/g,"<br />"))}function Lr(e,t){var n,r,i;Br(e).tooltip({track:!0,content:(null===(n=t.value)||void 0===n?void 0:n.content)||Mr,show:{delay:(null===(r=t.value)||void 0===r?void 0:r.delay)||700,duration:(null===(i=t.value)||void 0===i?void 0:i.duration)||200},hide:!1})}var Rr={mounted:function(e,t){setTimeout((function(){return Lr(e,t)}))},updated:function(e,t){setTimeout((function(){return Lr(e,t)}))},beforeUnmount:function(e){try{window.$(e).tooltip("destroy")}catch(t){}}},Fr=Object(a["defineComponent"])({props:{},directives:{Tooltips:Rr},data:function(){return{comparisonTooltips:null}},setup:function(){var e=Object(a["computed"])((function(){return jr.isComparing()})),t=Object(a["computed"])((function(){return jr.getSegmentComparisons()})),n=Object(a["computed"])((function(){return jr.getPeriodComparisons()})),r=jr.getSeriesColor.bind(jr);function i(){var e=window.$(this).attr("title");return e?window.vueSanitize(e.replace(/\n/g,"<br />")):e}return{isComparing:e,segmentComparisons:t,periodComparisons:n,getSeriesColor:r,transformTooltipContent:i}},methods:{comparisonHasSegment:function(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison:function(e){window.$(this.$refs.root).tooltip("destroy"),jr.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=Object.assign({},Ee.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,"".concat(window.location.search,"#?").concat(Ee.stringify(t))},onComparisonsChanged:function(){var e=this;if(this.comparisonTooltips=null,jr.isComparing()){var t=jr.getPeriodComparisons(),n=jr.getSegmentComparisons();Ze.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:Ee.getSearchParam("compareSegments"),comparePeriods:Ee.getSearchParam("comparePeriods"),compareDates:Ee.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=jr.getComparisonSeriesIndex(t.index,0),i=e.reportData.comparisons[r],a=jr.getComparisonSeriesIndex(t.index,n.index),o=e.reportData.comparisons[a],l=e.reportData.comparisons[n.index],c='<div class="comparison-card-tooltip">',s=(o.nb_visits/i.nb_visits*100).toFixed(2);return s="".concat(s,"%"),c+=C("General_ComparisonCardTooltip1",["'".concat(o.compareSegmentPretty,"'"),o.comparePeriodPretty,s,o.nb_visits.toString(),i.nb_visits.toString()]),t.index>0&&(c+="<br/><br/>",c+=C("General_ComparisonCardTooltip2",[o.nb_visits_change.toString(),l.compareSegmentPretty,l.comparePeriodPretty])),c+="</div>",c}},mounted:function(){var e=this;S.on("piwikComparisonsChanged",(function(){e.onComparisonsChanged()})),this.onComparisonsChanged()}});Fr.render=Ir;var _r=Fr;
+ */var xr=window,Br=xr.$;function Mr(){var e=Br(this).attr("title")||"";return window.vueSanitize(e.replace(/\n/g,"<br />"))}function Lr(e,t){var n,r,i;Br(e).tooltip({track:!0,content:(null===(n=t.value)||void 0===n?void 0:n.content)||Mr,show:{delay:(null===(r=t.value)||void 0===r?void 0:r.delay)||700,duration:(null===(i=t.value)||void 0===i?void 0:i.duration)||200},hide:!1})}var Fr={mounted:function(e,t){setTimeout((function(){return Lr(e,t)}))},updated:function(e,t){setTimeout((function(){return Lr(e,t)}))},beforeUnmount:function(e){try{window.$(e).tooltip("destroy")}catch(t){}}},Rr=Object(a["defineComponent"])({props:{},directives:{Tooltips:Fr},data:function(){return{comparisonTooltips:null}},setup:function(){var e=Object(a["computed"])((function(){return jr.isComparing()})),t=Object(a["computed"])((function(){return jr.getSegmentComparisons()})),n=Object(a["computed"])((function(){return jr.getPeriodComparisons()})),r=jr.getSeriesColor.bind(jr);function i(){var e=window.$(this).attr("title");return e?window.vueSanitize(e.replace(/\n/g,"<br />")):e}return{isComparing:e,segmentComparisons:t,periodComparisons:n,getSeriesColor:r,transformTooltipContent:i}},methods:{comparisonHasSegment:function(e){return"undefined"!==typeof e.params.segment},removeSegmentComparison:function(e){window.$(this.$refs.root).tooltip("destroy"),jr.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=Object.assign({},Ee.hashParsed.value);return delete t.comparePeriods,delete t.compareDates,delete t.compareSegments,t.segment=e,"".concat(window.location.search,"#?").concat(Ee.stringify(t))},onComparisonsChanged:function(){var e=this;if(this.comparisonTooltips=null,jr.isComparing()){var t=jr.getPeriodComparisons(),n=jr.getSegmentComparisons();Ze.fetch({method:"API.getProcessedReport",apiModule:"VisitsSummary",apiAction:"get",compare:"1",compareSegments:Ee.getSearchParam("compareSegments"),comparePeriods:Ee.getSearchParam("comparePeriods"),compareDates:Ee.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=jr.getComparisonSeriesIndex(t.index,0),i=e.reportData.comparisons[r],a=jr.getComparisonSeriesIndex(t.index,n.index),o=e.reportData.comparisons[a],l=e.reportData.comparisons[n.index],c='<div class="comparison-card-tooltip">',s=(o.nb_visits/i.nb_visits*100).toFixed(2);return s="".concat(s,"%"),c+=C("General_ComparisonCardTooltip1",["'".concat(o.compareSegmentPretty,"'"),o.comparePeriodPretty,s,o.nb_visits.toString(),i.nb_visits.toString()]),t.index>0&&(c+="<br/><br/>",c+=C("General_ComparisonCardTooltip2",[o.nb_visits_change.toString(),l.compareSegmentPretty,l.comparePeriodPretty])),c+="</div>",c}},mounted:function(){var e=this;S.on("piwikComparisonsChanged",(function(){e.onComparisonsChanged()})),this.onComparisonsChanged()}});Rr.render=Ir;var _r=Rr;
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function $r(){return jr}window.angular.module("piwikApp.service").factory("piwikComparisonsService",$r);kt({component:_r,directiveName:"piwikComparisons",restrict:"E"});var Hr={ref:"root",class:"menuDropdown"},Ur=["title"],qr=["innerHTML"],Wr=Object(a["createElementVNode"])("span",{class:"icon-arrow-bottom"},null,-1),Jr={class:"items"},Gr={key:0,class:"search"},zr=["placeholder"],Yr=["title"],Qr=["title"];function Kr(e,t,n,r,i,o){var l=Object(a["resolveDirective"])("focus-if"),c=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Hr,[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,qr),Wr],8,Ur),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Jr,[e.showSearch&&e.showItems?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Gr,[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,zr),[[a["vModelText"],e.searchTerm],[l,{},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,Yr),[[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,Qr),[[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)),[[c,{blur:e.lostFocus}]])}var Xr=window,Zr=Xr.$,ei=Object(a["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:Boolean},directives:{FocusAnywhereButHere:Bt,FocusIf:Rt},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")||(this.menuTitleChangeOnClick&&(this.actualMenuTitle=(e.target.textContent||"").replace(/[\u0000-\u2666]/g,(function(e){return"&#".concat(e.charCodeAt(0),";")}))),this.showItems=!1,Zr(this.$slots.default()[0].el).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();Zr(this.$refs.root).find(".item").each((function(e,n){var r=Zr(n);-1===r.text().toLowerCase().indexOf(t)?r.hide():r.show()}))}}});ei.render=Kr;var ti=ei,ni=(kt({component:ti,scope:{menuTitle:{angularJsBind:"@"},tooltip:{angularJsBind:"@"},showSearch:{angularJsBind:"="},menuTitleChangeOnClick:{angularJsBind:"="}},directiveName:"piwikMenudropdown",transclude:!0,events:{"after-select":function(e,t,n){setTimeout((function(){n.$apply()}),0)}}}),{ref:"root"});
+ */function $r(){return jr}window.angular.module("piwikApp.service").factory("piwikComparisonsService",$r);kt({component:_r,directiveName:"piwikComparisons",restrict:"E"});var Hr={ref:"root",class:"menuDropdown"},Ur=["title"],qr=["innerHTML"],Wr=Object(a["createElementVNode"])("span",{class:"icon-arrow-bottom"},null,-1),Jr={class:"items"},Gr={key:0,class:"search"},zr=["placeholder"],Yr=["title"],Qr=["title"];function Kr(e,t,n,r,i,o){var l=Object(a["resolveDirective"])("focus-if"),c=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Hr,[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,qr),Wr],8,Ur),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Jr,[e.showSearch&&e.showItems?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Gr,[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,zr),[[a["vModelText"],e.searchTerm],[l,{},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,Yr),[[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,Qr),[[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)),[[c,{blur:e.lostFocus}]])}var Xr=window,Zr=Xr.$,ei=Object(a["defineComponent"])({props:{menuTitle:String,tooltip:String,showSearch:Boolean,menuTitleChangeOnClick:Boolean},directives:{FocusAnywhereButHere:Bt,FocusIf:Ft},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")||(this.menuTitleChangeOnClick&&(this.actualMenuTitle=(e.target.textContent||"").replace(/[\u0000-\u2666]/g,(function(e){return"&#".concat(e.charCodeAt(0),";")}))),this.showItems=!1,Zr(this.$slots.default()[0].el).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();Zr(this.$refs.root).find(".item").each((function(e,n){var r=Zr(n);-1===r.text().toLowerCase().indexOf(t)?r.hide():r.show()}))}}});ei.render=Kr;var ti=ei,ni=(kt({component:ti,scope:{menuTitle:{angularJsBind:"@"},tooltip:{angularJsBind:"@"},showSearch:{angularJsBind:"="},menuTitleChangeOnClick:{angularJsBind:"="}},directiveName:"piwikMenudropdown",transclude:!0,events:{"after-select":function(e,t,n){setTimeout((function(){n.$apply()}),0)}}}),{ref:"root"});
/*!
* Matomo - free/libre analytics platform
*
@@ -324,13 +324,13 @@ function On(e){return{restrict:"A",priority:10,link:function(t,n,r){var i={insta
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Bi(e,t,n,r,i,o){var l,c,s,u,d=Object(a["resolveComponent"])("AllSitesLink"),p=Object(a["resolveDirective"])("focus-if"),m=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===(l=e.modelValue)||void 0===l?void 0:l.id,name:e.name},null,8,wi)):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!==(c=e.modelValue)&&void 0!==c&&c.name||!e.placeholder?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,textContent:Object(a["toDisplayString"])((null===(s=e.modelValue)||void 0===s?void 0:s.name)||e.firstSiteName)},null,8,ji)):Object(a["createCommentVNode"])("",!0),null!==(u=e.modelValue)&&void 0!==u&&u.name||!e.placeholder?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",ki,Object(a["toDisplayString"])(e.placeholder),1))])],42,Oi),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Si,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Ci,[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}),tabindex:"4",class:"websiteSearch inp browser-default",placeholder:e.translate("General_Search")},null,8,Ei),[[a["vModelText"],e.searchTerm],[p,{},e.shouldFocusOnSearch]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("img",{title:"Clear",onClick:t[4]||(t[4]=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",Di,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[5]||(t[5]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Pi,[Object(a["createElementVNode"])("ul",{class:"custom_select_ul_list",onClick:t[7]||(t[7]=function(t){return e.showSitesList=!1})},[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sites,(function(n,r){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{onClick:function(t){return e.switchSite(Object.assign(Object.assign({},n),{},{id:n.idsite}),t)},key:r},[Object(a["createElementVNode"])("a",{onClick:t[6]||(t[6]=function(e){return e.preventDefault()}),innerHTML:e.$sanitize(e.getMatchedSiteName(n.name)),tabindex:"4",href:e.getUrlForSiteId(n.idsite),title:n.name},null,8,Ni)],8,Vi)),[[a["vShow"],!(!e.showSelectedSite&&e.activeSiteId===n.idsite)]])})),128))]),Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",Ti,[Object(a["createElementVNode"])("li",Ai,[Object(a["createElementVNode"])("a",Ii,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",xi,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[8]||(t[8]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showSitesList]])],2)),[[m,{blur:e.onBlur}]])}var Mi=["innerHTML","href"];function Li(e,t,n,r,i,o){var l=this;return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{onClick:t[1]||(t[1]=function(e){return l.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,Mi)])}var Ri=Object(a["defineComponent"])({props:{href:String,allSitesText:String},emits:["click"],methods:{onClick:function(e){this.$emit("click",e)}}});Ri.render=Li;var Fi=Ri;function _i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $i(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 Hi(e,t,n){return t&&$i(e.prototype,t),n&&$i(e,n),e}function Ui(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */function Bi(e,t,n,r,i,o){var l,c,s,u,d=Object(a["resolveComponent"])("AllSitesLink"),p=Object(a["resolveDirective"])("focus-if"),m=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===(l=e.modelValue)||void 0===l?void 0:l.id,name:e.name},null,8,wi)):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!==(c=e.modelValue)&&void 0!==c&&c.name||!e.placeholder?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,textContent:Object(a["toDisplayString"])((null===(s=e.modelValue)||void 0===s?void 0:s.name)||e.firstSiteName)},null,8,ji)):Object(a["createCommentVNode"])("",!0),null!==(u=e.modelValue)&&void 0!==u&&u.name||!e.placeholder?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",ki,Object(a["toDisplayString"])(e.placeholder),1))])],42,Oi),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Si,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Ci,[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}),tabindex:"4",class:"websiteSearch inp browser-default",placeholder:e.translate("General_Search")},null,8,Ei),[[a["vModelText"],e.searchTerm],[p,{},e.shouldFocusOnSearch]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("img",{title:"Clear",onClick:t[4]||(t[4]=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",Di,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[5]||(t[5]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Pi,[Object(a["createElementVNode"])("ul",{class:"custom_select_ul_list",onClick:t[7]||(t[7]=function(t){return e.showSitesList=!1})},[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sites,(function(n,r){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{onClick:function(t){return e.switchSite(Object.assign(Object.assign({},n),{},{id:n.idsite}),t)},key:r},[Object(a["createElementVNode"])("a",{onClick:t[6]||(t[6]=function(e){return e.preventDefault()}),innerHTML:e.$sanitize(e.getMatchedSiteName(n.name)),tabindex:"4",href:e.getUrlForSiteId(n.idsite),title:n.name},null,8,Ni)],8,Vi)),[[a["vShow"],!(!e.showSelectedSite&&e.activeSiteId===n.idsite)]])})),128))]),Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",Ti,[Object(a["createElementVNode"])("li",Ai,[Object(a["createElementVNode"])("a",Ii,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",xi,[Object(a["createVNode"])(d,{href:e.urlAllSites,"all-sites-text":e.allSitesText,onClick:t[8]||(t[8]=function(t){return e.onAllSitesClick(t)})},null,8,["href","all-sites-text"])])):Object(a["createCommentVNode"])("",!0)],512),[[a["vShow"],e.showSitesList]])],2)),[[m,{blur:e.onBlur}]])}var Mi=["innerHTML","href"];function Li(e,t,n,r,i,o){var l=this;return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{onClick:t[1]||(t[1]=function(e){return l.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,Mi)])}var Fi=Object(a["defineComponent"])({props:{href:String,allSitesText:String},emits:["click"],methods:{onClick:function(e){this.$emit("click",e)}}});Fi.render=Li;var Ri=Fi;function _i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $i(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 Hi(e,t,n){return t&&$i(e.prototype,t),n&&$i(e,n),e}function Ui(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(){var t=this;_i(this,e),Ui(this,"state",Object(a["reactive"])({initialSites:[],isInitialized:!1})),Ui(this,"currentRequestAbort",null),Ui(this,"limitRequest",void 0),Ui(this,"initialSites",Object(a["computed"])((function(){return Object(a["readonly"])(t.state.initialSites)})))}return Hi(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,null!==t&&(e.state.initialSites=t),t}))}},{key:"loadSite",value:function(e){"all"===e?Ee.updateUrl(Object.assign(Object.assign({},Ee.urlParsed.value),{},{module:"MultiSites",action:"index",date:Ee.parsed.value.date,period:Ee.parsed.value.period})):Ee.updateUrl(Object.assign(Object.assign({},Ee.urlParsed.value),{},{segment:"",idSite:e}),Object.assign(Object.assign({},Ee.hashParsed.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.currentRequestAbort&&this.currentRequestAbort.abort(),this.limitRequest||(this.limitRequest=Ze.fetch({method:"SitesManager.getNumWebsitesToDisplayPerPage"})),this.limitRequest.then((function(r){var i=r.value,a="SitesManager.getPatternMatchSites";return n&&(a="SitesManager.getSitesWithAdminAccess"),t.currentRequestAbort=new AbortController,Ze.fetch({method:a,limit:i,pattern:e},{abortController:t.currentRequestAbort})})).then((function(e){return e?t.processWebsitesList(e):null})).finally((function(){t.currentRequestAbort=null}))):this.loadInitialSites()}},{key:"processWebsitesList",value:function(e){var t=e;return t&&t.length?(t=t.map((function(e){return Object.assign(Object.assign({},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}(),Wi=new qi,Ji=300;function Gi(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ji;return function(){for(var r=this,i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];t&&clearTimeout(t),t=setTimeout((function(){e.call.apply(e,[r].concat(a))}),n)}}var zi=Object(a["defineComponent"])({props:{modelValue:{type:Object,default:function(e){return e.modelValue?e.modelValue:S.idSite?{id:S.idSite,name:S.helper.htmlDecode(S.siteName)}:void 0}},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:C("General_MultiSitesSummary")},allSitesLocation:{type:String,default:"bottom"},placeholder:String},emits:["update:modelValue","blur"],components:{AllSitesLink:Fi},directives:{FocusAnywhereButHere:Bt,FocusIf:Rt},watch:{searchTerm:function(){this.onSearchTermChanged()}},data:function(){return{searchTerm:"",activeSiteId:"".concat(S.idSite),showSitesList:!1,isLoading:!1,sites:[],autocompleteMinSites:parseInt(S.config.autocomplete_min_sites,10)}},created:function(){this.searchSite=Gi(this.searchSite)},mounted:function(){var e=this;window.initTopControls(),this.loadInitialSites().then((function(){e.modelValue&&e.modelValue.id||e.hasMultipleSites||!e.sites[0]||e.$emit("update:modelValue",{id:e.sites[0].idsite,name:e.sites[0].name})}));var t=C("CoreHome_ShortcutWebsiteSelector");S.helper.registerShortcut("w",t,(function(t){if(!t.altKey){t.preventDefault?t.preventDefault():t.returnValue=!1;var n=e.$refs.selectorLink;n&&(n.click(),n.focus())}}))},computed:{shouldFocusOnSearch:function(){return this.showSitesList&&this.autocompleteMinSites<=this.sites.length||this.searchTerm},selectorLinkTitle:function(){var e;return this.hasMultipleSites?C("CoreHome_ChangeCurrentWebsite",(null===(e=this.modelValue)||void 0===e?void 0:e.name)||this.firstSiteName):""},hasMultipleSites:function(){return Wi.initialSites.value&&Wi.initialSites.value.length>1},firstSiteName:function(){var e=Wi.initialSites.value;return e&&e.length>0?e[0].name:""},urlAllSites:function(){var e=Ee.stringify(Object.assign(Object.assign({},Ee.urlParsed.value),{},{module:"MultiSites",action:"index",date:Ee.parsed.value.date,period:Ee.parsed.value.period}));return"?".concat(e)}},methods:{onSearchTermChanged:function(){this.searchTerm?(this.isLoading=!0,this.searchSite(this.searchTerm)):(this.isLoading=!1,this.loadInitialSites())},onAllSitesClick:function(e){this.switchSite({id:"all",name:this.$props.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.$emit("update:modelValue",{id:e.id,name:e.name}),this.switchSiteOnSelect&&this.activeSiteId!==e.id&&Wi.loadSite(e.id))},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())},getMatchedSiteName:function(e){var t=e.toUpperCase().indexOf(this.searchTerm.toUpperCase());if(-1===t||this.isLoading)return S.helper.htmlEntities(e);var n=S.helper.htmlEntities(e.substring(0,t)),r=S.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 Wi.loadInitialSites().then((function(t){e.sites=t||[]}))},searchSite:function(e){var t=this;this.isLoading=!0,Wi.searchSite(e,this.onlySitesWithAdminAccess).then((function(n){e===t.searchTerm&&n&&(t.sites=n)})).finally((function(){t.isLoading=!1}))},getUrlForSiteId:function(e){var t=Ee.stringify(Object.assign(Object.assign({},Ee.urlParsed.value),{},{segment:"",idSite:e})),n=Ee.stringify(Object.assign(Object.assign({},Ee.hashParsed.value),{},{segment:"",idSite:e}));return"?".concat(t,"#?").concat(n)}}});zi.render=Bi;var Yi=zi;
+ */var qi=function(){function e(){var t=this;_i(this,e),Ui(this,"state",Object(a["reactive"])({initialSites:[],isInitialized:!1})),Ui(this,"currentRequestAbort",null),Ui(this,"limitRequest",void 0),Ui(this,"initialSites",Object(a["computed"])((function(){return Object(a["readonly"])(t.state.initialSites)})))}return Hi(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,null!==t&&(e.state.initialSites=t),t}))}},{key:"loadSite",value:function(e){"all"===e?Ee.updateUrl(Object.assign(Object.assign({},Ee.urlParsed.value),{},{module:"MultiSites",action:"index",date:Ee.parsed.value.date,period:Ee.parsed.value.period})):Ee.updateUrl(Object.assign(Object.assign({},Ee.urlParsed.value),{},{segment:"",idSite:e}),Object.assign(Object.assign({},Ee.hashParsed.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.currentRequestAbort&&this.currentRequestAbort.abort(),this.limitRequest||(this.limitRequest=Ze.fetch({method:"SitesManager.getNumWebsitesToDisplayPerPage"})),this.limitRequest.then((function(r){var i=r.value,a="SitesManager.getPatternMatchSites";return n&&(a="SitesManager.getSitesWithAdminAccess"),t.currentRequestAbort=new AbortController,Ze.fetch({method:a,limit:i,pattern:e},{abortController:t.currentRequestAbort})})).then((function(e){return e?t.processWebsitesList(e):null})).finally((function(){t.currentRequestAbort=null}))):this.loadInitialSites()}},{key:"processWebsitesList",value:function(e){var t=e;return t&&t.length?(t=t.map((function(e){return Object.assign(Object.assign({},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}(),Wi=new qi,Ji=300;function Gi(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ji;return function(){for(var r=this,i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];t&&clearTimeout(t),t=setTimeout((function(){e.call.apply(e,[r].concat(a))}),n)}}var zi=Object(a["defineComponent"])({props:{modelValue:Object,showSelectedSite:{type:Boolean,default:!1},showAllSitesItem:{type:Boolean,default:!0},switchSiteOnSelect:{type:Boolean,default:!0},onlySitesWithAdminAccess:{type:Boolean,default:!1},name:{type:String,default:""},allSitesText:{type:String,default:C("General_MultiSitesSummary")},allSitesLocation:{type:String,default:"bottom"},placeholder:String,defaultToFirstSite:Boolean},emits:["update:modelValue","blur"],components:{AllSitesLink:Ri},directives:{FocusAnywhereButHere:Bt,FocusIf:Ft},watch:{searchTerm:function(){this.onSearchTermChanged()}},data:function(){return{searchTerm:"",activeSiteId:"".concat(S.idSite),showSitesList:!1,isLoading:!1,sites:[],autocompleteMinSites:parseInt(S.config.autocomplete_min_sites,10)}},created:function(){this.searchSite=Gi(this.searchSite),!this.modelValue&&S.idSite&&this.$emit("update:modelValue",{id:S.idSite,name:S.helper.htmlDecode(S.siteName)})},mounted:function(){var e=this;window.initTopControls(),this.loadInitialSites().then((function(){e.modelValue&&e.modelValue.id||e.hasMultipleSites&&!e.defaultToFirstSite||!e.sites[0]||e.$emit("update:modelValue",{id:e.sites[0].idsite,name:e.sites[0].name})}));var t=C("CoreHome_ShortcutWebsiteSelector");S.helper.registerShortcut("w",t,(function(t){if(!t.altKey){t.preventDefault?t.preventDefault():t.returnValue=!1;var n=e.$refs.selectorLink;n&&(n.click(),n.focus())}}))},computed:{shouldFocusOnSearch:function(){return this.showSitesList&&this.autocompleteMinSites<=this.sites.length||this.searchTerm},selectorLinkTitle:function(){var e;return this.hasMultipleSites?C("CoreHome_ChangeCurrentWebsite",(null===(e=this.modelValue)||void 0===e?void 0:e.name)||this.firstSiteName):""},hasMultipleSites:function(){return Wi.initialSites.value&&Wi.initialSites.value.length>1},firstSiteName:function(){var e=Wi.initialSites.value;return e&&e.length>0?e[0].name:""},urlAllSites:function(){var e=Ee.stringify(Object.assign(Object.assign({},Ee.urlParsed.value),{},{module:"MultiSites",action:"index",date:Ee.parsed.value.date,period:Ee.parsed.value.period}));return"?".concat(e)}},methods:{onSearchTermChanged:function(){this.searchTerm?(this.isLoading=!0,this.searchSite(this.searchTerm)):(this.isLoading=!1,this.loadInitialSites())},onAllSitesClick:function(e){this.switchSite({id:"all",name:this.$props.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.$emit("update:modelValue",{id:e.id,name:e.name}),this.switchSiteOnSelect&&this.activeSiteId!==e.id&&Wi.loadSite(e.id))},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())},getMatchedSiteName:function(e){var t=e.toUpperCase().indexOf(this.searchTerm.toUpperCase());if(-1===t||this.isLoading)return S.helper.htmlEntities(e);var n=S.helper.htmlEntities(e.substring(0,t)),r=S.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 Wi.loadInitialSites().then((function(t){e.sites=t||[]}))},searchSite:function(e){var t=this;this.isLoading=!0,Wi.searchSite(e,this.onlySitesWithAdminAccess).then((function(n){e===t.searchTerm&&n&&(t.sites=n)})).finally((function(){t.isLoading=!1}))},getUrlForSiteId:function(e){var t=Ee.stringify(Object.assign(Object.assign({},Ee.urlParsed.value),{},{segment:"",idSite:e})),n=Ee.stringify(Object.assign(Object.assign({},Ee.hashParsed.value),{},{segment:"",idSite:e}));return"?".concat(t,"#?").concat(n)}}});zi.render=Bi;var Yi=zi;
/*!
* Matomo - free/libre analytics platform
*
@@ -343,7 +343,7 @@ function On(e){return{restrict:"A",priority:10,link:function(t,n,r){var i={insta
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function Qi(){return{get initialSites(){return Wi.initialSites.value},loadSite:Wi.loadSite.bind(Wi),loadInitialSites:function(){return Dt(Wi.loadInitialSites())},searchSite:function(){return Dt(Wi.searchSite.apply(Wi,arguments))}}}window.angular.module("piwikApp.service").factory("siteSelectorModel",Qi);var Ki={ref:"root",class:"quickAccessInside"},Xi=["title","placeholder"],Zi={class:"dropdown"},ea={class:"no-result"},ta=["onClick"],na=["onMouseenter","onClick"],ra={class:"quickAccessMatomoSearch"},ia=["onMouseenter","onClick"],aa=["textContent"],oa={class:"quick-access-category helpCategory"},la=["href"];function ca(e,t,n,r,i,o){var l=Object(a["resolveDirective"])("focus-if"),c=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ki,[Object(a["createElementVNode"])("span",{class:"icon-search",onMouseenter:t[0]||(t[0]=function(t){return e.searchActive=!0})},null,32),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,placeholder:e.translate("General_Search"),ref:"input"},null,40,Xi),[[a["vModelText"],e.searchTerm],[l,{},e.searchActive]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Zi,[Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",ea,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,ta),(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,na)})),128))])})),128)),Object(a["createElementVNode"])("ul",ra,[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,aa)],42,ia)),[[a["vShow"],e.hasSitesSelector&&!e.isLoading]])})),128))]),Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",oa,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?mtm_campaign=App_Help&mtm_source=Matomo_App&mtm_keyword=QuickSearch&s=".concat(encodeURIComponent(e.searchTerm)),target:"_blank"},Object(a["toDisplayString"])(e.translate("CoreHome_SearchOnMatomo",e.searchTerm)),9,la)],34)])],512),[[a["vShow"],e.searchTerm&&e.searchActive]])],512)),[[c,{blur:e.onBlur}]])}function sa(e){var t=e.getBoundingClientRect(),n=window.$(window);return t.top>=0&&t.left>=0&&t.bottom<=n.height()&&t.right<=n.width()}function ua(e){e&&e.scrollIntoView&&e.scrollIntoView()}var da=Object(a["defineComponent"])({directives:{FocusAnywhereButHere:Bt,FocusIf:Rt},watch:{searchActive:function(e){var t=this.$refs.root;if(t&&t.parentElement){var n=t.parentElement.classList;n.toggle("active",e),n.toggle("expanded",e)}}},mounted:function(){var e=this,t=this.$refs.root;t&&t.parentElement&&t.parentElement.classList.add("quick-access","piwikSelector"),"undefined"!==typeof window.initTopControls&&window.initTopControls&&window.initTopControls(),S.helper.registerShortcut("f",C("CoreHome_ShortcutSearch"),(function(t){t.altKey||(t.preventDefault(),ua(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=Gi(this.searchMenu.bind(this))},computed:{hasSitesSelector:function(){return!!document.querySelector(".top_controls [piwik-siteselector]")},quickAccessTitle:function(){var e="",t=[C("CoreHome_MenuEntries")];this.hasSegmentSelector&&t.push(C("CoreHome_Segments")),this.hasSitesSelector&&t.push(C("SitesManager_Sites"));while(t.length)e+=t.shift(),t.length>=2?e+=", ":1===t.length&&(e+=" ".concat(C("General_And")," "));return C("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.input&&this.$refs.input.blur()},makeSureSelectedItemIsInViewport:function(){var e=this.getCurrentlySelectedElement();e&&!sa(e)&&ua(e)},getCurrentlySelectedElement:function(){var e=this.$refs.root.querySelectorAll("li.result");if(e&&e.length&&e.item(this.searchIndex))return e.item(this.searchIndex)},searchMenu:function(e){var t=this,n=e.toLowerCase(),r=-1,i={},a=[],o=function(e){var t=Object.assign({},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,Wi.searchSite(n).then((function(e){e&&(t.sites=e)})).finally((function(){t.isLoading=!1})));var l=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 c=this.topMenuItems.filter(l),s=this.leftMenuItems.filter(l),u=this.segmentItems.filter(l);c.forEach(o),s.forEach(o),u.forEach(o),this.numMenuItems=c.length+s.length+u.length,this.menuItems=a},resetSearchIndex:function(){this.searchIndex=0,this.makeSureSelectedItemIsInViewport()},selectSite:function(e){Wi.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=C("CoreHome_Menu"),n=[];return document.querySelectorAll("nav .sidenav li > a").forEach((function(r){var i,a,o=null===(i=r.textContent)||void 0===i?void 0:i.trim();o||(o=null===(a=r.getAttribute("title"))||void 0===a?void 0:a.trim());o&&(n.push({name:o,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,i=window.$(n).find("> .item"),a=(null===(r=i[0])||void 0===r?void 0:r.innerText.trim())||"";a&&-1!==a.lastIndexOf("\n")&&(a=a.slice(0,a.lastIndexOf("\n")).trim()),window.$(n).find("li .item").each((function(n,r){var i,o=null===(i=r.textContent)||void 0===i?void 0:i.trim();o&&(t.push({name:o,category:a,index:e.menuIndexCounter+=1}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))}))})),t},getSegmentItems:function(){var e=this;if(!this.hasSegmentSelector)return[];var t=C("CoreHome_Segments"),n=[];return document.querySelectorAll(".segmentList [data-idsegment]").forEach((function(r){var i,a,o=null===(i=r.querySelector(".segname"))||void 0===i||null===(a=i.textContent)||void 0===a?void 0:a.trim();o&&(n.push({name:o,category:t,index:e.menuIndexCounter+=1}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))})),n}}});da.render=ca;var pa=da;
+function Qi(){return{get initialSites(){return Wi.initialSites.value},loadSite:Wi.loadSite.bind(Wi),loadInitialSites:function(){return Dt(Wi.loadInitialSites())},searchSite:function(){return Dt(Wi.searchSite.apply(Wi,arguments))}}}window.angular.module("piwikApp.service").factory("siteSelectorModel",Qi);var Ki={ref:"root",class:"quickAccessInside"},Xi=["title","placeholder"],Zi={class:"dropdown"},ea={class:"no-result"},ta=["onClick"],na=["onMouseenter","onClick"],ra={class:"quickAccessMatomoSearch"},ia=["onMouseenter","onClick"],aa=["textContent"],oa={class:"quick-access-category helpCategory"},la=["href"];function ca(e,t,n,r,i,o){var l=Object(a["resolveDirective"])("focus-if"),c=Object(a["resolveDirective"])("focus-anywhere-but-here");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ki,[Object(a["createElementVNode"])("span",{class:"icon-search",onMouseenter:t[0]||(t[0]=function(t){return e.searchActive=!0})},null,32),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,placeholder:e.translate("General_Search"),ref:"input"},null,40,Xi),[[a["vModelText"],e.searchTerm],[l,{},e.searchActive]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Zi,[Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",ea,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,ta),(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,na)})),128))])})),128)),Object(a["createElementVNode"])("ul",ra,[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,aa)],42,ia)),[[a["vShow"],e.hasSitesSelector&&!e.isLoading]])})),128))]),Object(a["createElementVNode"])("ul",null,[Object(a["createElementVNode"])("li",oa,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?mtm_campaign=App_Help&mtm_source=Matomo_App&mtm_keyword=QuickSearch&s=".concat(encodeURIComponent(e.searchTerm)),target:"_blank"},Object(a["toDisplayString"])(e.translate("CoreHome_SearchOnMatomo",e.searchTerm)),9,la)],34)])],512),[[a["vShow"],e.searchTerm&&e.searchActive]])],512)),[[c,{blur:e.onBlur}]])}function sa(e){var t=e.getBoundingClientRect(),n=window.$(window);return t.top>=0&&t.left>=0&&t.bottom<=n.height()&&t.right<=n.width()}function ua(e){e&&e.scrollIntoView&&e.scrollIntoView()}var da=Object(a["defineComponent"])({directives:{FocusAnywhereButHere:Bt,FocusIf:Ft},watch:{searchActive:function(e){var t=this.$refs.root;if(t&&t.parentElement){var n=t.parentElement.classList;n.toggle("active",e),n.toggle("expanded",e)}}},mounted:function(){var e=this,t=this.$refs.root;t&&t.parentElement&&t.parentElement.classList.add("quick-access","piwikSelector"),"undefined"!==typeof window.initTopControls&&window.initTopControls&&window.initTopControls(),S.helper.registerShortcut("f",C("CoreHome_ShortcutSearch"),(function(t){t.altKey||(t.preventDefault(),ua(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=Gi(this.searchMenu.bind(this))},computed:{hasSitesSelector:function(){return!!document.querySelector(".top_controls [piwik-siteselector]")},quickAccessTitle:function(){var e="",t=[C("CoreHome_MenuEntries")];this.hasSegmentSelector&&t.push(C("CoreHome_Segments")),this.hasSitesSelector&&t.push(C("SitesManager_Sites"));while(t.length)e+=t.shift(),t.length>=2?e+=", ":1===t.length&&(e+=" ".concat(C("General_And")," "));return C("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.input&&this.$refs.input.blur()},makeSureSelectedItemIsInViewport:function(){var e=this.getCurrentlySelectedElement();e&&!sa(e)&&ua(e)},getCurrentlySelectedElement:function(){var e=this.$refs.root.querySelectorAll("li.result");if(e&&e.length&&e.item(this.searchIndex))return e.item(this.searchIndex)},searchMenu:function(e){var t=this,n=e.toLowerCase(),r=-1,i={},a=[],o=function(e){var t=Object.assign({},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,Wi.searchSite(n).then((function(e){e&&(t.sites=e)})).finally((function(){t.isLoading=!1})));var l=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 c=this.topMenuItems.filter(l),s=this.leftMenuItems.filter(l),u=this.segmentItems.filter(l);c.forEach(o),s.forEach(o),u.forEach(o),this.numMenuItems=c.length+s.length+u.length,this.menuItems=a},resetSearchIndex:function(){this.searchIndex=0,this.makeSureSelectedItemIsInViewport()},selectSite:function(e){Wi.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=C("CoreHome_Menu"),n=[];return document.querySelectorAll("nav .sidenav li > a").forEach((function(r){var i,a,o=null===(i=r.textContent)||void 0===i?void 0:i.trim();o||(o=null===(a=r.getAttribute("title"))||void 0===a?void 0:a.trim());o&&(n.push({name:o,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,i=window.$(n).find("> .item"),a=(null===(r=i[0])||void 0===r?void 0:r.innerText.trim())||"";a&&-1!==a.lastIndexOf("\n")&&(a=a.slice(0,a.lastIndexOf("\n")).trim()),window.$(n).find("li .item").each((function(n,r){var i,o=null===(i=r.textContent)||void 0===i?void 0:i.trim();o&&(t.push({name:o,category:a,index:e.menuIndexCounter+=1}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))}))})),t},getSegmentItems:function(){var e=this;if(!this.hasSegmentSelector)return[];var t=C("CoreHome_Segments"),n=[];return document.querySelectorAll(".segmentList [data-idsegment]").forEach((function(r){var i,a,o=null===(i=r.querySelector(".segname"))||void 0===i||null===(a=i.textContent)||void 0===a?void 0:a.trim();o&&(n.push({name:o,category:t,index:e.menuIndexCounter+=1}),r.setAttribute("quick_access","".concat(e.menuIndexCounter)))})),n}}});da.render=ca;var pa=da;
/*!
* Matomo - free/libre analytics platform
*
@@ -355,19 +355,19 @@ function Qi(){return{get initialSites(){return Wi.initialSites.value},loadSite:W
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */kt({component:Ea,require:"?ngModel",scope:{name:{angularJsBind:"="},field:{angularJsBind:"="}},directiveName:"matomoFieldArray",events:{"update:modelValue":function(e,t,n,r,i,a){e!==t.modelValue&&(r.trigger("change",e),a&&a.$setViewValue(e))}},postCreate:function(e,t,n,r,i){var a=i;a&&(a.$setViewValue(e.modelValue),a.$render=function(){window.angular.isString(a.$viewValue)?e.modelValue=JSON.parse(a.$viewValue):e.modelValue=a.$viewValue})}});function Da(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pa={class:"multiPairField form-group"},Va={key:1,class:"fieldUiControl fieldUiControl2"},Na={key:2,class:"fieldUiControl fieldUiControl3"},Ta={key:3,class:"fieldUiControl fieldUiControl4"},Aa=["onClick","title"];function Ia(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("Field");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Pa,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.modelValue,(function(t,n){var r;return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])(["multiPairFieldTable multiple valign-wrapper",(r={},Da(r,"multiPairFieldTable".concat(n),!0),Da(r,"has".concat(e.fieldCount,"Fields"),!0),r)]),key:n},[e.field1?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,class:Object(a["normalizeClass"])(["fieldUiControl fieldUiControl1",{hasMultiFields:e.field1.type&&e.field2.type}])},[Object(a["createVNode"])(l,{"full-width":!0,modelValue:t[e.field1.key],"onUpdate:modelValue":[function(n){return t[e.field1.key]=n},function(t){return e.onEntryChange(n,e.field1.key,t)}],options:e.field1.availableValues,placeholder:" ",uicontrol:e.field1.uiControl,name:"".concat(e.name,"-p1-").concat(n),title:e.field1.title,"template-file":e.field1.templateFile,component:e.field1.component},null,8,["modelValue","onUpdate:modelValue","options","uicontrol","name","title","template-file","component"])],2)):Object(a["createCommentVNode"])("",!0),e.field2?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Va,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field2.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field2.key,t)},function(n){return t[e.field2.key]=n}],modelValue:t[e.field2.key],placeholder:" ",uicontrol:e.field2.uiControl,name:"".concat(e.name,"-p2-").concat(n),title:e.field2.title,"template-file":e.field2.templateFile,component:e.field2.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","name","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),e.field3?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Na,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field3.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field3.key,t)},function(n){return t[e.field3.key]=n}],modelValue:t[e.field3.key],placeholder:" ",uicontrol:e.field3.uiControl,title:e.field3.title,"template-file":e.field3.templateFile,component:e.field3.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),e.field4?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ta,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field4.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field4.key,t)},function(n){return t[e.field4.key]=n}],modelValue:t[e.field4.key],placeholder:" ",uicontrol:e.field4.uiControl,title:e.field4.title,"template-file":e.field4.templateFile,component:e.field4.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{onClick:function(t){return e.removeEntry(n)},class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Aa),[[a["vShow"],n+1!==e.modelValue.length]])],2)})),128))])}function xa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ba(e){return Fa(e)||Ra(e)||La(e)||Ma()}function Ma(){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 La(e,t){if(e){if("string"===typeof e)return _a(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)?_a(e,t):void 0}}function Ra(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function Fa(e){if(Array.isArray(e))return _a(e)}function _a(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 $a=$n("CorePluginsAdmin","Field"),Ha=Object(a["defineComponent"])({props:{modelValue:Array,name:String,field1:Object,field2:Object,field3:Object,field4:Object},components:{Field:$a},computed:{fieldCount:function(){return this.field1&&this.field2&&this.field3&&this.field4?4:this.field1&&this.field2&&this.field3?3:this.field1&&this.field2?2:this.field1?1:0}},emits:["update:modelValue"],watch:{modelValue:function(e){this.checkEmptyModelValue(e)}},mounted:function(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue:function(e){e&&e.length&&!this.isEmptyValue(e.slice(-1)[0])||this.$emit("update:modelValue",[].concat(Ba(e||[]),[this.makeEmptyValue()]))},onEntryChange:function(e,t,n){var r=Ba(this.modelValue);r[e]=Object.assign(Object.assign({},r[e]),{},xa({},t,n)),this.$emit("update:modelValue",r)},removeEntry:function(e){if(e>-1&&this.modelValue){var t=this.modelValue.filter((function(t,n){return n!==e}));this.$emit("update:modelValue",t)}},isEmptyValue:function(e){var t=this.fieldCount;if(4===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key]&&!e[this.field4.key])return!1}else if(3===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key])return!1}else if(2===t){if(!e[this.field1.key]&&!e[this.field2.key])return!1}else if(1===t&&!e[this.field1.key])return!1;return!0},makeEmptyValue:function(){var e={};return this.field1&&this.field1.key&&(e[this.field1.key]=""),this.field2&&this.field2.key&&(e[this.field2.key]=""),this.field3&&this.field3.key&&(e[this.field3.key]=""),this.field4&&this.field4.key&&(e[this.field4.key]=""),e}}});Ha.render=Ia;var Ua=Ha,qa=(kt({component:Ua,require:"?ngModel",scope:{name:{angularJsBind:"="},field1:{angularJsBind:"="},field2:{angularJsBind:"="},field3:{angularJsBind:"="},field4:{angularJsBind:"="}},directiveName:"matomoMultiPairField",events:{"update:modelValue":function(e,t,n,r,i,a){e!==t.modelValue&&(r.trigger("change",e),a&&a.$setViewValue(e))}},postCreate:function(e,t,n,r,i){var a=i;a&&(a.$setViewValue(e.modelValue),a.$render=function(){window.angular.isString(a.$viewValue)?e.modelValue=JSON.parse(a.$viewValue):e.modelValue=a.$viewValue})}}),{ref:"root",class:"periodSelector piwikSelector"}),Wa=["title"],Ja=Object(a["createElementVNode"])("span",{class:"icon icon-calendar"},null,-1),Ga={id:"periodMore",class:"dropdown"},za={class:"flex"},Ya={key:0,class:"period-date"},Qa={class:"period-type"},Ka={id:"otherPeriods"},Xa=["onDblclick","title"],Za=["id","checked","onChange","onDblclick"],eo={key:0,class:"compare-checkbox"},to={id:"comparePeriodToDropdown"},no={key:1,class:"compare-date-range"},ro={id:"comparePeriodStartDate"},io=Object(a["createElementVNode"])("span",{class:"compare-dates-separator"},null,-1),ao={id:"comparePeriodEndDate"},oo={class:"apply-button-container"},lo=["disabled","value"],co={key:2,id:"ajaxLoadingCalendar"},so={class:"loadingSegment"};
+ */kt({component:Ea,require:"?ngModel",scope:{name:{angularJsBind:"="},field:{angularJsBind:"="}},directiveName:"matomoFieldArray",events:{"update:modelValue":function(e,t,n,r,i,a){e!==t.modelValue&&(r.trigger("change",e),a&&a.$setViewValue(e))}},postCreate:function(e,t,n,r,i){var a=i;a&&(a.$setViewValue(e.modelValue),a.$render=function(){window.angular.isString(a.$viewValue)?e.modelValue=JSON.parse(a.$viewValue):e.modelValue=a.$viewValue})}});function Da(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pa={class:"multiPairField form-group"},Va={key:1,class:"fieldUiControl fieldUiControl2"},Na={key:2,class:"fieldUiControl fieldUiControl3"},Ta={key:3,class:"fieldUiControl fieldUiControl4"},Aa=["onClick","title"];function Ia(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("Field");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Pa,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.modelValue,(function(t,n){var r;return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])(["multiPairFieldTable multiple valign-wrapper",(r={},Da(r,"multiPairFieldTable".concat(n),!0),Da(r,"has".concat(e.fieldCount,"Fields"),!0),r)]),key:n},[e.field1?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,class:Object(a["normalizeClass"])(["fieldUiControl fieldUiControl1",{hasMultiFields:e.field1.type&&e.field2.type}])},[Object(a["createVNode"])(l,{"full-width":!0,modelValue:t[e.field1.key],"onUpdate:modelValue":[function(n){return t[e.field1.key]=n},function(t){return e.onEntryChange(n,e.field1.key,t)}],options:e.field1.availableValues,placeholder:" ",uicontrol:e.field1.uiControl,name:"".concat(e.name,"-p1-").concat(n),title:e.field1.title,"template-file":e.field1.templateFile,component:e.field1.component},null,8,["modelValue","onUpdate:modelValue","options","uicontrol","name","title","template-file","component"])],2)):Object(a["createCommentVNode"])("",!0),e.field2?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Va,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field2.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field2.key,t)},function(n){return t[e.field2.key]=n}],modelValue:t[e.field2.key],placeholder:" ",uicontrol:e.field2.uiControl,name:"".concat(e.name,"-p2-").concat(n),title:e.field2.title,"template-file":e.field2.templateFile,component:e.field2.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","name","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),e.field3?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Na,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field3.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field3.key,t)},function(n){return t[e.field3.key]=n}],modelValue:t[e.field3.key],placeholder:" ",uicontrol:e.field3.uiControl,title:e.field3.title,"template-file":e.field3.templateFile,component:e.field3.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),e.field4?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ta,[Object(a["createVNode"])(l,{"full-width":!0,options:e.field4.availableValues,"onUpdate:modelValue":[function(t){return e.onEntryChange(n,e.field4.key,t)},function(n){return t[e.field4.key]=n}],modelValue:t[e.field4.key],placeholder:" ",uicontrol:e.field4.uiControl,title:e.field4.title,"template-file":e.field4.templateFile,component:e.field4.component},null,8,["options","onUpdate:modelValue","modelValue","uicontrol","title","template-file","component"])])):Object(a["createCommentVNode"])("",!0),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{onClick:function(t){return e.removeEntry(n)},class:"icon-minus valign",title:e.translate("General_Remove")},null,8,Aa),[[a["vShow"],n+1!==e.modelValue.length]])],2)})),128))])}function xa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ba(e){return Ra(e)||Fa(e)||La(e)||Ma()}function Ma(){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 La(e,t){if(e){if("string"===typeof e)return _a(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)?_a(e,t):void 0}}function Fa(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function Ra(e){if(Array.isArray(e))return _a(e)}function _a(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 $a=$n("CorePluginsAdmin","Field"),Ha=Object(a["defineComponent"])({props:{modelValue:Array,name:String,field1:Object,field2:Object,field3:Object,field4:Object},components:{Field:$a},computed:{fieldCount:function(){return this.field1&&this.field2&&this.field3&&this.field4?4:this.field1&&this.field2&&this.field3?3:this.field1&&this.field2?2:this.field1?1:0}},emits:["update:modelValue"],watch:{modelValue:function(e){this.checkEmptyModelValue(e)}},mounted:function(){this.checkEmptyModelValue(this.modelValue)},methods:{checkEmptyModelValue:function(e){e&&e.length&&!this.isEmptyValue(e.slice(-1)[0])||this.$emit("update:modelValue",[].concat(Ba(e||[]),[this.makeEmptyValue()]))},onEntryChange:function(e,t,n){var r=Ba(this.modelValue);r[e]=Object.assign(Object.assign({},r[e]),{},xa({},t,n)),this.$emit("update:modelValue",r)},removeEntry:function(e){if(e>-1&&this.modelValue){var t=this.modelValue.filter((function(t,n){return n!==e}));this.$emit("update:modelValue",t)}},isEmptyValue:function(e){var t=this.fieldCount;if(4===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key]&&!e[this.field4.key])return!1}else if(3===t){if(!e[this.field1.key]&&!e[this.field2.key]&&!e[this.field3.key])return!1}else if(2===t){if(!e[this.field1.key]&&!e[this.field2.key])return!1}else if(1===t&&!e[this.field1.key])return!1;return!0},makeEmptyValue:function(){var e={};return this.field1&&this.field1.key&&(e[this.field1.key]=""),this.field2&&this.field2.key&&(e[this.field2.key]=""),this.field3&&this.field3.key&&(e[this.field3.key]=""),this.field4&&this.field4.key&&(e[this.field4.key]=""),e}}});Ha.render=Ia;var Ua=Ha,qa=(kt({component:Ua,require:"?ngModel",scope:{name:{angularJsBind:"="},field1:{angularJsBind:"="},field2:{angularJsBind:"="},field3:{angularJsBind:"="},field4:{angularJsBind:"="}},directiveName:"matomoMultiPairField",events:{"update:modelValue":function(e,t,n,r,i,a){e!==t.modelValue&&(r.trigger("change",e),a&&a.$setViewValue(e))}},postCreate:function(e,t,n,r,i){var a=i;a&&(a.$setViewValue(e.modelValue),a.$render=function(){window.angular.isString(a.$viewValue)?e.modelValue=JSON.parse(a.$viewValue):e.modelValue=a.$viewValue})}}),{ref:"root",class:"periodSelector piwikSelector"}),Wa=["title"],Ja=Object(a["createElementVNode"])("span",{class:"icon icon-calendar"},null,-1),Ga={id:"periodMore",class:"dropdown"},za={class:"flex"},Ya={key:0,class:"period-date"},Qa={class:"period-type"},Ka={id:"otherPeriods"},Xa=["onDblclick","title"],Za=["id","checked","onChange","onDblclick"],eo={key:0,class:"compare-checkbox"},to={id:"comparePeriodToDropdown"},no={key:1,class:"compare-date-range"},ro={id:"comparePeriodStartDate"},io=Object(a["createElementVNode"])("span",{class:"compare-dates-separator"},null,-1),ao={id:"comparePeriodEndDate"},oo={class:"apply-button-container"},lo=["disabled","value"],co={key:2,id:"ajaxLoadingCalendar"},so={class:"loadingSegment"};
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function uo(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("DateRangePicker"),c=Object(a["resolveComponent"])("PeriodDatePicker"),s=Object(a["resolveComponent"])("Field"),u=Object(a["resolveComponent"])("ActivityIndicator"),d=Object(a["resolveDirective"])("expand-on-click");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",qa,[Object(a["createElementVNode"])("a",{ref:"title",id:"date",class:"title",tabindex:"-1",title:e.translate("General_ChooseDate",e.currentlyViewingText)},[Ja,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.currentlyViewingText),1)],8,Wa),Object(a["createElementVNode"])("div",Ga,[Object(a["createElementVNode"])("div",za,[Object(a["createElementVNode"])("div",null,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{class:"period-range","start-date":e.startRangeDate,"end-date":e.endRangeDate,onRangeChange:t[0]||(t[0]=function(t){return e.onRangeChange(t.start,t.end)}),onSubmit:t[1]||(t[1]=function(t){return e.onApplyClicked()})},null,8,["start-date","end-date"]),[[a["vShow"],"range"===e.selectedPeriod]]),"range"!==e.selectedPeriod?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ya,[Object(a["createVNode"])(c,{id:"datepicker",period:e.selectedPeriod,date:e.periodValue===e.selectedPeriod?e.dateValue:null,onSelect:t[2]||(t[2]=function(t){return e.setPiwikPeriodAndDate(e.selectedPeriod,t.date)})},null,8,["period","date"])])):Object(a["createCommentVNode"])("",!0)]),Object(a["createElementVNode"])("div",Qa,[Object(a["createElementVNode"])("h6",null,Object(a["toDisplayString"])(e.translate("General_Period")),1),Object(a["createElementVNode"])("div",Ka,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.periodsFiltered,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("p",{key:n},[Object(a["createElementVNode"])("label",{class:Object(a["normalizeClass"])({"selected-period-label":n===e.selectedPeriod}),onDblclick:function(t){return e.changeViewedPeriod(n)},title:n===e.periodValue?"":e.translate("General_DoubleClickToChangePeriod")},[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"radio",name:"period",id:"period_id_".concat(n),"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.selectedPeriod=t}),checked:e.selectedPeriod===n,onChange:function(t){return e.selectedPeriod=n},onDblclick:function(t){return e.changeViewedPeriod(n)}},null,40,Za),[[a["vModelRadio"],e.selectedPeriod]]),Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.getPeriodDisplayText(n)),1)],42,Xa)])})),128))])])]),e.isComparisonEnabled?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",eo,[Object(a["createElementVNode"])("label",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{id:"comparePeriodTo",type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.isComparing=t})},null,512),[[a["vModelCheckbox"],e.isComparing]]),Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("General_CompareTo")),1)]),Object(a["createElementVNode"])("div",to,[Object(a["createVNode"])(s,{modelValue:e.comparePeriodType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.comparePeriodType=t}),style:Object(a["normalizeStyle"])({visibility:e.isComparing?"visible":"hidden"}),name:"comparePeriodToDropdown",uicontrol:"select",options:e.comparePeriodDropdownOptions,"full-width":!0,disabled:!e.isComparing},null,8,["modelValue","style","options","disabled"])])])):Object(a["createCommentVNode"])("",!0),e.isComparing&&"custom"===e.comparePeriodType?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",no,[Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",ro,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{modelValue:e.compareStartDate,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.compareStartDate=t}),name:"comparePeriodStartDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_StartDate"),placeholder:"YYYY-MM-DD"},null,8,["modelValue","title"])])]),io,Object(a["createElementVNode"])("div",ao,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{modelValue:e.compareEndDate,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.compareEndDate=t}),name:"comparePeriodEndDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_EndDate"),placeholder:"YYYY-MM-DD"},null,8,["modelValue","title"])])])])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",oo,[Object(a["createElementVNode"])("input",{type:"submit",id:"calendarApply",class:"btn",onClick:t[8]||(t[8]=function(t){return e.onApplyClicked()}),disabled:!e.isApplyEnabled(),value:e.translate("General_Apply")},null,8,lo)]),e.isLoadingNewPage?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",co,[Object(a["createVNode"])(u,{loading:!0}),Object(a["createElementVNode"])("div",so,Object(a["toDisplayString"])(e.translate("SegmentEditor_LoadingSegmentedDataMayTakeSomeTime")),1)])):Object(a["createCommentVNode"])("",!0)])],512)),[[d,{expander:"title"}]])}var po={class:"loadingPiwik"},mo=Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1);function fo(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",po,[mo,Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.loadingMessage),1)],512)),[[a["vShow"],e.loading]])}var ho=Object(a["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:C("General_LoadingData")}}});ho.render=fo;var go=ho;function vo(e,t){return jo(e)||Oo(e,t)||yo(e,t)||bo()}function bo(){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 yo(e,t){if(e){if("string"===typeof e)return wo(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)?wo(e,t):void 0}}function wo(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 Oo(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function jo(e){if(Array.isArray(e))return e}var ko=$n("CorePluginsAdmin","Field"),So=S.helper.htmlDecode("&nbsp;"),Co=[{key:"custom",value:C("General_Custom")},{key:"previousPeriod",value:C("General_PreviousPeriod").replace(/\s+/,So)},{key:"previousYear",value:C("General_PreviousYear").replace(/\s+/,So)}],Eo=new Date(S.minDateYear,S.minDateMonth-1,S.minDateDay),Do=new Date(S.maxDateYear,S.maxDateMonth-1,S.maxDateDay);function Po(e){return"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e.getTime())}var Vo=Object(a["defineComponent"])({props:{periods:Array},components:{DateRangePicker:fi,PeriodDatePicker:yi,Field:ko,ActivityIndicator:go},directives:{ExpandOnClick:Qt},data:function(){var e=Ee.parsed.value.period;return{comparePeriodDropdownOptions:Co,periodValue:e,dateValue:null,selectedPeriod:e,startRangeDate:null,endRangeDate:null,isRangeValid:null,isLoadingNewPage:!1,isComparing:null,comparePeriodType:"previousPeriod",compareStartDate:"",compareEndDate:""}},mounted:function(){var e=this;S.on("hidePeriodSelector",(function(){window.$(e.$refs.root).hide()})),S.on("piwikPageChange",(function(){window.$(e.$refs.root).show()})),this.updateSelectedValuesFromHash(),Object(a["watch"])((function(){return Ee.parsed.value}),this.updateSelectedValuesFromHash),this.isComparing=jr.isComparingPeriods(),Object(a["watch"])((function(){return jr.isComparingPeriods()}),(function(t){e.isComparing=t})),window.initTopControls(),this.handleZIndexPositionRelativeCompareDropdownIssue()},computed:{currentlyViewingText:function(){var e;if("range"===this.periodValue){if(!this.startRangeDate||!this.endRangeDate)return C("General_Error");e="".concat(this.startRangeDate,",").concat(this.endRangeDate)}else{if(!this.dateValue)return C("General_Error");e=D(this.dateValue)}try{return p.parse(this.periodValue,e).getPrettyString()}catch(t){return C("General_Error")}},isComparisonEnabled:function(){return jr.isComparisonEnabled()},periodsFiltered:function(){return(this.periods||[]).filter((function(e){return p.isRecognizedPeriod(e)}))},selectedComparisonParams:function(){if(!this.isComparing)return{};if("custom"===this.comparePeriodType)return{comparePeriods:["range"],compareDates:["".concat(this.compareStartDate,",").concat(this.compareEndDate)]};if("previousPeriod"===this.comparePeriodType)return{comparePeriods:[this.selectedPeriod],compareDates:[this.previousPeriodDateToSelectedPeriod]};if("previousYear"===this.comparePeriodType){var e="range"===this.selectedPeriod?"".concat(this.startRangeDate,",").concat(this.endRangeDate):D(this.dateValue),t=p.parse(this.selectedPeriod,e).getDateRange();return t[0].setFullYear(t[0].getFullYear()-1),t[1].setFullYear(t[1].getFullYear()-1),"range"===this.selectedPeriod?{comparePeriods:["range"],compareDates:["".concat(D(t[0]),",").concat(D(t[1]))]}:{comparePeriods:[this.selectedPeriod],compareDates:[D(t[0])]}}return console.warn("Unknown compare period type: ".concat(this.comparePeriodType)),{}},previousPeriodDateToSelectedPeriod:function(){if("range"===this.selectedPeriod){var e=V(this.startRangeDate),t=V(this.endRangeDate),n=H.getLastNRange("day",2,e).startDate,r=Math.floor((t.valueOf()-e.valueOf())/864e5),i=H.getLastNRange("day",1+r,n);return"".concat(D(i.startDate),",").concat(D(i.endDate))}var a=H.getLastNRange(this.selectedPeriod,2,this.dateValue).startDate;return D(a)},selectedDateString:function(){if("range"===this.selectedPeriod){var e=this.startRangeDate,t=this.endRangeDate,n=V(e),r=V(t);return!Po(n)||!Po(r)||n>r?(window.$("#alert").find("h2").text(C("General_InvalidDateRange")),S.helper.modalConfirm("#alert",{}),null):"".concat(e,",").concat(t)}return D(this.dateValue)}},methods:{handleZIndexPositionRelativeCompareDropdownIssue:function(){var e=window.$(this.$refs.root);e.on("focus","#comparePeriodToDropdown .select-dropdown",(function(){e.addClass("compare-dropdown-open")})).on("blur","#comparePeriodToDropdown .select-dropdown",(function(){e.removeClass("compare-dropdown-open")}))},changeViewedPeriod:function(e){e!==this.periodValue&&"range"!==e&&this.setPiwikPeriodAndDate(e,this.dateValue)},setPiwikPeriodAndDate:function(e,t){this.periodValue=e,this.selectedPeriod=e,this.dateValue=t;var n=D(t);this.setRangeStartEndFromPeriod(e,n),this.propagateNewUrlParams(n,this.selectedPeriod),window.initTopControls()},propagateNewUrlParams:function(e,t){var n,r=this.selectedComparisonParams;S.helper.isAngularRenderingThePage()?(this.closePeriodSelector(),n=Ee.hashParsed.value):(this.isLoadingNewPage=!0,n=Ee.parsed.value);var i=Object.assign({},n);delete i.comparePeriods,delete i.compareDates,Ee.updateLocation(Object.assign(Object.assign({},i),{},{date:e,period:t},r))},onApplyClicked:function(){if("range"===this.selectedPeriod){var e=this.selectedDateString;if(!e)return;return this.periodValue="range",void this.propagateNewUrlParams(e,"range")}this.setPiwikPeriodAndDate(this.selectedPeriod,this.dateValue)},updateSelectedValuesFromHash:function(){var e=Ee.parsed.value.date,t=Ee.parsed.value.period;this.periodValue=t,this.selectedPeriod=t,this.dateValue=null,this.startRangeDate=null,this.endRangeDate=null;try{p.parse(t,e)}catch(l){return}if("range"===t){var n=p.get(t).parse(e),r=n.getDateRange(),i=vo(r,2),a=i[0],o=i[1];this.dateValue=a,this.startRangeDate=D(a),this.endRangeDate=D(o)}else this.dateValue=V(e),this.setRangeStartEndFromPeriod(t,e)},setRangeStartEndFromPeriod:function(e,t){var n=p.parse(e,t).getDateRange();this.startRangeDate=D(n[0]<Eo?Eo:n[0]),this.endRangeDate=D(n[1]>Do?Do:n[1])},getPeriodDisplayText:function(e){return p.get(e).getDisplayText()},onRangeChange:function(e,t){e&&t?(this.isRangeValid=!0,this.startRangeDate=e,this.endRangeDate=t):this.isRangeValid=!1},isApplyEnabled:function(){return!("range"===this.selectedPeriod&&!this.isRangeValid)&&!(this.isComparing&&"custom"===this.comparePeriodType&&!this.isCompareRangeValid())},closePeriodSelector:function(){this.$refs.root.classList.remove("expanded")},isCompareRangeValid:function(){try{V(this.compareStartDate)}catch(e){return!1}try{V(this.compareEndDate)}catch(e){return!1}return!0}}});Vo.render=uo;var No=Vo,To=(kt({component:No,scope:{periods:{angularJsBind:"<"}},directiveName:"piwikPeriodSelector"}),{class:"reportingMenu"}),Ao=["aria-label"],Io=["onClick"],xo={class:"hidden"},Bo={role:"menu"},Mo=["href","onClick","title"],Lo=["href","onClick"],Ro=["onClick"],Fo=Object(a["createElementVNode"])("span",{class:"icon-help"},null,-1),_o=[Fo],$o={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},Ho={class:"collapsible collapsible-accordion"},Uo={class:"collapsible-header"},qo={class:"collapsible-body"},Wo={key:0},Jo=["onClick","href"],Go={key:1},zo=["onClick","href"];
+ */function uo(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("DateRangePicker"),c=Object(a["resolveComponent"])("PeriodDatePicker"),s=Object(a["resolveComponent"])("Field"),u=Object(a["resolveComponent"])("ActivityIndicator"),d=Object(a["resolveDirective"])("expand-on-click");return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",qa,[Object(a["createElementVNode"])("a",{ref:"title",id:"date",class:"title",tabindex:"-1",title:e.translate("General_ChooseDate",e.currentlyViewingText)},[Ja,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.currentlyViewingText),1)],8,Wa),Object(a["createElementVNode"])("div",Ga,[Object(a["createElementVNode"])("div",za,[Object(a["createElementVNode"])("div",null,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{class:"period-range","start-date":e.startRangeDate,"end-date":e.endRangeDate,onRangeChange:t[0]||(t[0]=function(t){return e.onRangeChange(t.start,t.end)}),onSubmit:t[1]||(t[1]=function(t){return e.onApplyClicked()})},null,8,["start-date","end-date"]),[[a["vShow"],"range"===e.selectedPeriod]]),"range"!==e.selectedPeriod?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ya,[Object(a["createVNode"])(c,{id:"datepicker",period:e.selectedPeriod,date:e.periodValue===e.selectedPeriod?e.dateValue:null,onSelect:t[2]||(t[2]=function(t){return e.setPiwikPeriodAndDate(e.selectedPeriod,t.date)})},null,8,["period","date"])])):Object(a["createCommentVNode"])("",!0)]),Object(a["createElementVNode"])("div",Qa,[Object(a["createElementVNode"])("h6",null,Object(a["toDisplayString"])(e.translate("General_Period")),1),Object(a["createElementVNode"])("div",Ka,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.periodsFiltered,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("p",{key:n},[Object(a["createElementVNode"])("label",{class:Object(a["normalizeClass"])({"selected-period-label":n===e.selectedPeriod}),onDblclick:function(t){return e.changeViewedPeriod(n)},title:n===e.periodValue?"":e.translate("General_DoubleClickToChangePeriod")},[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{type:"radio",name:"period",id:"period_id_".concat(n),"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.selectedPeriod=t}),checked:e.selectedPeriod===n,onChange:function(t){return e.selectedPeriod=n},onDblclick:function(t){return e.changeViewedPeriod(n)}},null,40,Za),[[a["vModelRadio"],e.selectedPeriod]]),Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.getPeriodDisplayText(n)),1)],42,Xa)])})),128))])])]),e.isComparisonEnabled?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",eo,[Object(a["createElementVNode"])("label",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{id:"comparePeriodTo",type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.isComparing=t})},null,512),[[a["vModelCheckbox"],e.isComparing]]),Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("General_CompareTo")),1)]),Object(a["createElementVNode"])("div",to,[Object(a["createVNode"])(s,{modelValue:e.comparePeriodType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.comparePeriodType=t}),style:Object(a["normalizeStyle"])({visibility:e.isComparing?"visible":"hidden"}),name:"comparePeriodToDropdown",uicontrol:"select",options:e.comparePeriodDropdownOptions,"full-width":!0,disabled:!e.isComparing},null,8,["modelValue","style","options","disabled"])])])):Object(a["createCommentVNode"])("",!0),e.isComparing&&"custom"===e.comparePeriodType?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",no,[Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",ro,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{modelValue:e.compareStartDate,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.compareStartDate=t}),name:"comparePeriodStartDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_StartDate"),placeholder:"YYYY-MM-DD"},null,8,["modelValue","title"])])]),io,Object(a["createElementVNode"])("div",ao,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{modelValue:e.compareEndDate,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.compareEndDate=t}),name:"comparePeriodEndDate",uicontrol:"text","full-width":!0,title:e.translate("CoreHome_EndDate"),placeholder:"YYYY-MM-DD"},null,8,["modelValue","title"])])])])])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",oo,[Object(a["createElementVNode"])("input",{type:"submit",id:"calendarApply",class:"btn",onClick:t[8]||(t[8]=function(t){return e.onApplyClicked()}),disabled:!e.isApplyEnabled(),value:e.translate("General_Apply")},null,8,lo)]),e.isLoadingNewPage?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",co,[Object(a["createVNode"])(u,{loading:!0}),Object(a["createElementVNode"])("div",so,Object(a["toDisplayString"])(e.translate("SegmentEditor_LoadingSegmentedDataMayTakeSomeTime")),1)])):Object(a["createCommentVNode"])("",!0)])],512)),[[d,{expander:"title"}]])}var po={class:"loadingPiwik"},mo=Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:""},null,-1);function fo(e,t,n,r,i,o){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",po,[mo,Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.loadingMessage),1)],512)),[[a["vShow"],e.loading]])}var ho=Object(a["defineComponent"])({props:{loading:{type:Boolean,required:!0,default:!1},loadingMessage:{type:String,required:!1,default:C("General_LoadingData")}}});ho.render=fo;var go=ho;function vo(e,t){return jo(e)||Oo(e,t)||yo(e,t)||bo()}function bo(){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 yo(e,t){if(e){if("string"===typeof e)return wo(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)?wo(e,t):void 0}}function wo(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 Oo(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function jo(e){if(Array.isArray(e))return e}var ko=$n("CorePluginsAdmin","Field"),So=S.helper.htmlDecode("&nbsp;"),Co=[{key:"custom",value:C("General_Custom")},{key:"previousPeriod",value:C("General_PreviousPeriod").replace(/\s+/,So)},{key:"previousYear",value:C("General_PreviousYear").replace(/\s+/,So)}],Eo=new Date(S.minDateYear,S.minDateMonth-1,S.minDateDay),Do=new Date(S.maxDateYear,S.maxDateMonth-1,S.maxDateDay);function Po(e){return"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e.getTime())}var Vo=Object(a["defineComponent"])({props:{periods:Array},components:{DateRangePicker:fi,PeriodDatePicker:yi,Field:ko,ActivityIndicator:go},directives:{ExpandOnClick:Qt},data:function(){var e=Ee.parsed.value.period;return{comparePeriodDropdownOptions:Co,periodValue:e,dateValue:null,selectedPeriod:e,startRangeDate:null,endRangeDate:null,isRangeValid:null,isLoadingNewPage:!1,isComparing:null,comparePeriodType:"previousPeriod",compareStartDate:"",compareEndDate:""}},mounted:function(){var e=this;S.on("hidePeriodSelector",(function(){window.$(e.$refs.root).hide()})),S.on("piwikPageChange",(function(){window.$(e.$refs.root).show()})),this.updateSelectedValuesFromHash(),Object(a["watch"])((function(){return Ee.parsed.value}),this.updateSelectedValuesFromHash),this.isComparing=jr.isComparingPeriods(),Object(a["watch"])((function(){return jr.isComparingPeriods()}),(function(t){e.isComparing=t})),window.initTopControls(),this.handleZIndexPositionRelativeCompareDropdownIssue()},computed:{currentlyViewingText:function(){var e;if("range"===this.periodValue){if(!this.startRangeDate||!this.endRangeDate)return C("General_Error");e="".concat(this.startRangeDate,",").concat(this.endRangeDate)}else{if(!this.dateValue)return C("General_Error");e=D(this.dateValue)}try{return p.parse(this.periodValue,e).getPrettyString()}catch(t){return C("General_Error")}},isComparisonEnabled:function(){return jr.isComparisonEnabled()},periodsFiltered:function(){return(this.periods||[]).filter((function(e){return p.isRecognizedPeriod(e)}))},selectedComparisonParams:function(){if(!this.isComparing)return{};if("custom"===this.comparePeriodType)return{comparePeriods:["range"],compareDates:["".concat(this.compareStartDate,",").concat(this.compareEndDate)]};if("previousPeriod"===this.comparePeriodType)return{comparePeriods:[this.selectedPeriod],compareDates:[this.previousPeriodDateToSelectedPeriod]};if("previousYear"===this.comparePeriodType){var e="range"===this.selectedPeriod?"".concat(this.startRangeDate,",").concat(this.endRangeDate):D(this.dateValue),t=p.parse(this.selectedPeriod,e).getDateRange();return t[0].setFullYear(t[0].getFullYear()-1),t[1].setFullYear(t[1].getFullYear()-1),"range"===this.selectedPeriod?{comparePeriods:["range"],compareDates:["".concat(D(t[0]),",").concat(D(t[1]))]}:{comparePeriods:[this.selectedPeriod],compareDates:[D(t[0])]}}return console.warn("Unknown compare period type: ".concat(this.comparePeriodType)),{}},previousPeriodDateToSelectedPeriod:function(){if("range"===this.selectedPeriod){var e=V(this.startRangeDate),t=V(this.endRangeDate),n=H.getLastNRange("day",2,e).startDate,r=Math.floor((t.valueOf()-e.valueOf())/864e5),i=H.getLastNRange("day",1+r,n);return"".concat(D(i.startDate),",").concat(D(i.endDate))}var a=H.getLastNRange(this.selectedPeriod,2,this.dateValue).startDate;return D(a)},selectedDateString:function(){if("range"===this.selectedPeriod){var e=this.startRangeDate,t=this.endRangeDate,n=V(e),r=V(t);return!Po(n)||!Po(r)||n>r?(window.$("#alert").find("h2").text(C("General_InvalidDateRange")),S.helper.modalConfirm("#alert",{}),null):"".concat(e,",").concat(t)}return D(this.dateValue)}},methods:{handleZIndexPositionRelativeCompareDropdownIssue:function(){var e=window.$(this.$refs.root);e.on("focus","#comparePeriodToDropdown .select-dropdown",(function(){e.addClass("compare-dropdown-open")})).on("blur","#comparePeriodToDropdown .select-dropdown",(function(){e.removeClass("compare-dropdown-open")}))},changeViewedPeriod:function(e){e!==this.periodValue&&"range"!==e&&this.setPiwikPeriodAndDate(e,this.dateValue)},setPiwikPeriodAndDate:function(e,t){this.periodValue=e,this.selectedPeriod=e,this.dateValue=t;var n=D(t);this.setRangeStartEndFromPeriod(e,n),this.propagateNewUrlParams(n,this.selectedPeriod),window.initTopControls()},propagateNewUrlParams:function(e,t){var n,r=this.selectedComparisonParams;S.helper.isAngularRenderingThePage()?(this.closePeriodSelector(),n=Ee.hashParsed.value):(this.isLoadingNewPage=!0,n=Ee.parsed.value);var i=Object.assign({},n);delete i.comparePeriods,delete i.compareDates,Ee.updateLocation(Object.assign(Object.assign({},i),{},{date:e,period:t},r))},onApplyClicked:function(){if("range"===this.selectedPeriod){var e=this.selectedDateString;if(!e)return;return this.periodValue="range",void this.propagateNewUrlParams(e,"range")}this.setPiwikPeriodAndDate(this.selectedPeriod,this.dateValue)},updateSelectedValuesFromHash:function(){var e=Ee.parsed.value.date,t=Ee.parsed.value.period;this.periodValue=t,this.selectedPeriod=t,this.dateValue=null,this.startRangeDate=null,this.endRangeDate=null;try{p.parse(t,e)}catch(l){return}if("range"===t){var n=p.get(t).parse(e),r=n.getDateRange(),i=vo(r,2),a=i[0],o=i[1];this.dateValue=a,this.startRangeDate=D(a),this.endRangeDate=D(o)}else this.dateValue=V(e),this.setRangeStartEndFromPeriod(t,e)},setRangeStartEndFromPeriod:function(e,t){var n=p.parse(e,t).getDateRange();this.startRangeDate=D(n[0]<Eo?Eo:n[0]),this.endRangeDate=D(n[1]>Do?Do:n[1])},getPeriodDisplayText:function(e){return p.get(e).getDisplayText()},onRangeChange:function(e,t){e&&t?(this.isRangeValid=!0,this.startRangeDate=e,this.endRangeDate=t):this.isRangeValid=!1},isApplyEnabled:function(){return!("range"===this.selectedPeriod&&!this.isRangeValid)&&!(this.isComparing&&"custom"===this.comparePeriodType&&!this.isCompareRangeValid())},closePeriodSelector:function(){this.$refs.root.classList.remove("expanded")},isCompareRangeValid:function(){try{V(this.compareStartDate)}catch(e){return!1}try{V(this.compareEndDate)}catch(e){return!1}return!0}}});Vo.render=uo;var No=Vo,To=(kt({component:No,scope:{periods:{angularJsBind:"<"}},directiveName:"piwikPeriodSelector"}),{class:"reportingMenu"}),Ao=["aria-label"],Io=["onClick"],xo={class:"hidden"},Bo={role:"menu"},Mo=["href","onClick","title"],Lo=["href","onClick"],Fo=["onClick"],Ro=Object(a["createElementVNode"])("span",{class:"icon-help"},null,-1),_o=[Ro],$o={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},Ho={class:"collapsible collapsible-accordion"},Uo={class:"collapsible-header"},qo={class:"collapsible-body"},Wo={key:0},Jo=["onClick","href"],Go={key:1},zo=["onClick","href"];
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Yo(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("MenuItemsDropdown"),c=Object(a["resolveDirective"])("side-nav");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",To,[Object(a["createElementVNode"])("ul",{class:"navbar hide-on-med-and-down",role:"menu","aria-label":e.translate("CoreHome_MainNavigation")},[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.menu,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["menuTab",{active:t.id===e.activeCategory}]),role:"menuitem",key:t.id},[Object(a["createElementVNode"])("a",{class:"item",tabindex:"5",href:"",onClick:Object(a["withModifiers"])((function(n){return e.loadCategory(t)}),["prevent"])},[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])("menu-icon ".concat(t.icon?t.icon:"icon-arrow-right"))},null,2),Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name)+" ",1),Object(a["createElementVNode"])("span",xo,Object(a["toDisplayString"])(e.translate("CoreHome_Menu")),1)],8,Io),Object(a["createElementVNode"])("ul",Bo,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{role:"menuitem",class:Object(a["normalizeClass"])({active:(n.id===e.displayedSubcategory||n.isGroup&&e.activeSubsubcategory===e.displayedSubcategory)&&t.id===e.displayedCategory}),key:n.id},[n.isGroup?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"show-search":!0,"menu-title":e.htmlEntities(n.name)},{default:Object(a["withCtx"])((function(){return[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(n.subcategories,(function(r){return Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{class:Object(a["normalizeClass"])(["item",{active:r.id===e.activeSubsubcategory&&n.id===e.displayedSubcategory&&t.id===e.displayedCategory}]),tabindex:"5",href:"#?".concat(e.makeUrl(t,r)),onClick:function(n){return e.loadSubcategory(t,r,n)},title:r.tooltip,key:r.id},Object(a["toDisplayString"])(r.name),11,Mo)})),128))]})),_:2},1032,["menu-title"])):Object(a["createCommentVNode"])("",!0),n.isGroup?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,href:"#?".concat(e.makeUrl(t,n)),class:"item",onClick:function(r){return e.loadSubcategory(t,n,r)}},Object(a["toDisplayString"])(n.name),9,Lo)),n.help?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:2,class:Object(a["normalizeClass"])(["item-help-icon",{active:e.helpShownCategory&&e.helpShownCategory.subcategory===n.id&&e.helpShownCategory.category===t.id&&n.help}]),tabindex:"5",href:"javascript:",onClick:function(r){return e.showHelp(t,n,r)}},_o,10,Ro)):Object(a["createCommentVNode"])("",!0)],2)})),128))])],2)})),128))],8,Ao),Object(a["createElementVNode"])("ul",$o,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.menu,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:"no-padding",key:t.id},[Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",Ho,[Object(a["createElementVNode"])("li",null,[Object(a["createElementVNode"])("a",Uo,[Object(a["createElementVNode"])("i",{class:Object(a["normalizeClass"])(t.icon?t.icon:"icon-arrow-bottom")},null,2),Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name),1)]),Object(a["createElementVNode"])("div",qo,[Object(a["createElementVNode"])("ul",null,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{key:n.id},[n.isGroup?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",Wo,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(n.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{onClick:function(r){return e.loadSubcategory(t,n)},href:"#?".concat(e.makeUrl(t,n)),key:n.id},Object(a["toDisplayString"])(n.name),9,Jo)})),128))])):Object(a["createCommentVNode"])("",!0),n.isGroup?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",Go,[Object(a["createElementVNode"])("a",{onClick:function(r){return e.loadSubcategory(t,n)},href:"#?".concat(e.makeUrl(t,n))},Object(a["toDisplayString"])(n.name),9,zo)]))])})),128))])])])],512),[[c,{activator:e.sideNavActivator}]])])})),128))])])}var Qo={key:0},Ko=["data-notification-instance-id"],Xo={key:1},Zo={class:"notification-body"},el=["innerHTML"],tl={key:1};function nl(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",Qo,[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",Xo,Object(a["toDisplayString"])(e.title),1)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Zo,[e.message?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,el)):Object(a["createCommentVNode"])("",!0),e.message?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",tl,[Object(a["renderSlot"])(e.$slots,"default")]))])],14,Ko)]})),_:3},8,["name"])])]})),_:3},8,["name"])]))]})),_:3},8,["name"])}var rl=window,il=rl.$,al=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&&il(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&&Ze.post({module:"CoreHome",action:"markNotificationAsRead"},{notificationId:this.notificationId},{withTokenInUrl:!0})}}});al.render=nl;var ol=al;
+ */function Yo(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("MenuItemsDropdown"),c=Object(a["resolveDirective"])("side-nav");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",To,[Object(a["createElementVNode"])("ul",{class:"navbar hide-on-med-and-down",role:"menu","aria-label":e.translate("CoreHome_MainNavigation")},[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.menu,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["menuTab",{active:t.id===e.activeCategory}]),role:"menuitem",key:t.id},[Object(a["createElementVNode"])("a",{class:"item",tabindex:"5",href:"",onClick:Object(a["withModifiers"])((function(n){return e.loadCategory(t)}),["prevent"])},[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])("menu-icon ".concat(t.icon?t.icon:"icon-arrow-right"))},null,2),Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name)+" ",1),Object(a["createElementVNode"])("span",xo,Object(a["toDisplayString"])(e.translate("CoreHome_Menu")),1)],8,Io),Object(a["createElementVNode"])("ul",Bo,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{role:"menuitem",class:Object(a["normalizeClass"])({active:(n.id===e.displayedSubcategory||n.isGroup&&e.activeSubsubcategory===e.displayedSubcategory)&&t.id===e.displayedCategory}),key:n.id},[n.isGroup?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"show-search":!0,"menu-title":e.htmlEntities(n.name)},{default:Object(a["withCtx"])((function(){return[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(n.subcategories,(function(r){return Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{class:Object(a["normalizeClass"])(["item",{active:r.id===e.activeSubsubcategory&&n.id===e.displayedSubcategory&&t.id===e.displayedCategory}]),tabindex:"5",href:"#?".concat(e.makeUrl(t,r)),onClick:function(n){return e.loadSubcategory(t,r,n)},title:r.tooltip,key:r.id},Object(a["toDisplayString"])(r.name),11,Mo)})),128))]})),_:2},1032,["menu-title"])):Object(a["createCommentVNode"])("",!0),n.isGroup?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:1,href:"#?".concat(e.makeUrl(t,n)),class:"item",onClick:function(r){return e.loadSubcategory(t,n,r)}},Object(a["toDisplayString"])(n.name),9,Lo)),n.help?(Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{key:2,class:Object(a["normalizeClass"])(["item-help-icon",{active:e.helpShownCategory&&e.helpShownCategory.subcategory===n.id&&e.helpShownCategory.category===t.id&&n.help}]),tabindex:"5",href:"javascript:",onClick:function(r){return e.showHelp(t,n,r)}},_o,10,Fo)):Object(a["createCommentVNode"])("",!0)],2)})),128))])],2)})),128))],8,Ao),Object(a["createElementVNode"])("ul",$o,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.menu,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:"no-padding",key:t.id},[Object(a["withDirectives"])(Object(a["createElementVNode"])("ul",Ho,[Object(a["createElementVNode"])("li",null,[Object(a["createElementVNode"])("a",Uo,[Object(a["createElementVNode"])("i",{class:Object(a["normalizeClass"])(t.icon?t.icon:"icon-arrow-bottom")},null,2),Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name),1)]),Object(a["createElementVNode"])("div",qo,[Object(a["createElementVNode"])("ul",null,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{key:n.id},[n.isGroup?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",Wo,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(n.subcategories,(function(n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("a",{onClick:function(r){return e.loadSubcategory(t,n)},href:"#?".concat(e.makeUrl(t,n)),key:n.id},Object(a["toDisplayString"])(n.name),9,Jo)})),128))])):Object(a["createCommentVNode"])("",!0),n.isGroup?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",Go,[Object(a["createElementVNode"])("a",{onClick:function(r){return e.loadSubcategory(t,n)},href:"#?".concat(e.makeUrl(t,n))},Object(a["toDisplayString"])(n.name),9,zo)]))])})),128))])])])],512),[[c,{activator:e.sideNavActivator}]])])})),128))])])}var Qo={key:0},Ko=["data-notification-instance-id"],Xo={key:1},Zo={class:"notification-body"},el=["innerHTML"],tl={key:1};function nl(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",Qo,[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",Xo,Object(a["toDisplayString"])(e.title),1)):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Zo,[e.message?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,innerHTML:e.$sanitize(e.message)},null,8,el)):Object(a["createCommentVNode"])("",!0),e.message?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",tl,[Object(a["renderSlot"])(e.$slots,"default")]))])],14,Ko)]})),_:3},8,["name"])])]})),_:3},8,["name"])]))]})),_:3},8,["name"])}var rl=window,il=rl.$,al=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&&il(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&&Ze.post({module:"CoreHome",action:"markNotificationAsRead"},{notificationId:this.notificationId},{withTokenInUrl:!0})}}});al.render=nl;var ol=al;
/*!
* Matomo - free/libre analytics platform
*
@@ -416,13 +416,13 @@ window.angular.module("piwikApp").factory("notifications",(function(){return hl}
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Bl(e){var t=e;return t.subcategories?t.subcategories:[]}function Ml(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ll(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 Rl(e,t,n){return t&&Ll(e.prototype,t),n&&Ll(e,n),e}function Fl(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */function Bl(e){var t=e;return t.subcategories?t.subcategories:[]}function Ml(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ll(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 Fl(e,t,n){return t&&Ll(e.prototype,t),n&&Ll(e,n),e}function Rl(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 _l(e){var t=parseFloat(e);return!Number.isNaN(t)&&Number.isFinite(t)}var $l=function(){function e(){var t=this;Ml(this,e),Fl(this,"privateState",Object(a["reactive"])({activeCategoryId:null,activeSubcategoryId:null,activeSubsubcategoryId:null})),Fl(this,"state",Object(a["computed"])((function(){return Object(a["readonly"])(t.privateState)}))),Fl(this,"activeCategory",Object(a["computed"])((function(){return t.state.value.activeCategoryId||Ee.parsed.value.category}))),Fl(this,"activeSubcategory",Object(a["computed"])((function(){return t.state.value.activeSubcategoryId||Ee.parsed.value.subcategory}))),Fl(this,"activeSubsubcategory",Object(a["computed"])((function(){var e=t.state.value.activeSubsubcategoryId;if(e)return e;var n=t.findSubcategory(t.activeCategory.value,t.activeSubcategory.value);return n.subsubcategory&&n.subsubcategory.id===t.activeSubcategory.value?n.subsubcategory.id:null}))),Fl(this,"menu",Object(a["computed"])((function(){return t.buildMenuFromPages()})))}return Rl(e,[{key:"fetchMenuItems",value:function(){var e=this;return El.getAllPages().then((function(){return e.menu.value}))}},{key:"reloadMenuItems",value:function(){var e=this;return El.reloadAllPages().then((function(){return e.menu.value}))}},{key:"findSubcategory",value:function(e,t){var n=void 0,r=void 0,i=void 0;return this.menu.value.forEach((function(a){a.id===e&&(xl(a)||[]).forEach((function(e){e.id===t&&(n=a,r=e),e.isGroup&&(Bl(e)||[]).forEach((function(o){o.id===t&&(n=a,r=e,i=o)}))}))})),{category:n,subcategory:r,subsubcategory:i}}},{key:"buildMenuFromPages",value:function(){var e=[],t=Ee.parsed.value.category,n=Ee.parsed.value.subcategory,r=El.pages.value,i={};return r.forEach((function(a){var o=Object.assign({},a.category),l=o.id,c=l===t;if(!i[l]){i[l]=!0,o.subcategories=[];var s=null,u=r.filter((function(e){return e.category.id===l}));u.forEach((function(e){var t=Object.assign({},e.subcategory),r=t.id===n&&c;if(e.widgets&&e.widgets[0]&&_l(e.subcategory.id)){s||(s=Object.assign({},t),s.name=C("CoreHome_ChooseX",[o.name]),s.isGroup=!0,s.subcategories=[],s.order=10),r&&(s.name=t.name);var i=a.subcategory.id;return t.tooltip="".concat(t.name," (id = ").concat(i,")"),void s.subcategories.push(t)}o.subcategories.push(t)})),s&&s.subcategories&&s.subcategories.length<=5?s.subcategories.forEach((function(e){return o.subcategories.push(e)})):s&&o.subcategories.push(s),o.subcategories=Il(xl(o)),e.push(o)}})),Il(e)}},{key:"toggleCategory",value:function(e){return this.privateState.activeSubcategoryId=null,this.privateState.activeSubsubcategoryId=null,this.privateState.activeCategoryId===e.id?(this.privateState.activeCategoryId=null,!1):(this.privateState.activeCategoryId=e.id,!0)}},{key:"enterSubcategory",value:function(e,t,n){e&&t&&(this.privateState.activeCategoryId=e.id,this.privateState.activeSubcategoryId=t.id,n&&(this.privateState.activeSubsubcategoryId=n.id))}}]),e}(),Hl=new $l;function Ul(e){return Ul="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ul(e)}function ql(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wl(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 Jl(e,t,n){return t&&Wl(e.prototype,t),n&&Wl(e,n),e}function Gl(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */function _l(e){var t=parseFloat(e);return!Number.isNaN(t)&&Number.isFinite(t)}var $l=function(){function e(){var t=this;Ml(this,e),Rl(this,"privateState",Object(a["reactive"])({activeSubcategoryId:null,activeSubsubcategoryId:null})),Rl(this,"state",Object(a["computed"])((function(){return Object(a["readonly"])(t.privateState)}))),Rl(this,"activeCategory",Object(a["computed"])((function(){return"undefined"!==typeof t.state.value.activeCategoryId?t.state.value.activeCategoryId:Ee.parsed.value.category}))),Rl(this,"activeSubcategory",Object(a["computed"])((function(){return t.state.value.activeSubcategoryId||Ee.parsed.value.subcategory}))),Rl(this,"activeSubsubcategory",Object(a["computed"])((function(){var e=t.state.value.activeSubsubcategoryId;if(e)return e;var n=t.findSubcategory(t.activeCategory.value,t.activeSubcategory.value);return n.subsubcategory&&n.subsubcategory.id===t.activeSubcategory.value?n.subsubcategory.id:null}))),Rl(this,"menu",Object(a["computed"])((function(){return t.buildMenuFromPages()})))}return Fl(e,[{key:"fetchMenuItems",value:function(){var e=this;return El.getAllPages().then((function(){return e.menu.value}))}},{key:"reloadMenuItems",value:function(){var e=this;return El.reloadAllPages().then((function(){return e.menu.value}))}},{key:"findSubcategory",value:function(e,t){var n=void 0,r=void 0,i=void 0;return this.menu.value.forEach((function(a){a.id===e&&(xl(a)||[]).forEach((function(e){e.id===t&&(n=a,r=e),e.isGroup&&(Bl(e)||[]).forEach((function(o){o.id===t&&(n=a,r=e,i=o)}))}))})),{category:n,subcategory:r,subsubcategory:i}}},{key:"buildMenuFromPages",value:function(){var e=[],t=Ee.parsed.value.category,n=Ee.parsed.value.subcategory,r=El.pages.value,i={};return r.forEach((function(a){var o=Object.assign({},a.category),l=o.id,c=l===t;if(!i[l]){i[l]=!0,o.subcategories=[];var s=null,u=r.filter((function(e){return e.category.id===l}));u.forEach((function(e){var t=Object.assign({},e.subcategory),r=t.id===n&&c;if(e.widgets&&e.widgets[0]&&_l(e.subcategory.id)){s||(s=Object.assign({},t),s.name=C("CoreHome_ChooseX",[o.name]),s.isGroup=!0,s.subcategories=[],s.order=10),r&&(s.name=t.name);var i=a.subcategory.id;return t.tooltip="".concat(t.name," (id = ").concat(i,")"),void s.subcategories.push(t)}o.subcategories.push(t)})),s&&s.subcategories&&s.subcategories.length<=5?s.subcategories.forEach((function(e){return o.subcategories.push(e)})):s&&o.subcategories.push(s),o.subcategories=Il(xl(o)),e.push(o)}})),Il(e)}},{key:"toggleCategory",value:function(e){return this.privateState.activeSubcategoryId=null,this.privateState.activeSubsubcategoryId=null,this.activeCategory.value===e.id?(this.privateState.activeCategoryId=null,!1):(this.privateState.activeCategoryId=e.id,!0)}},{key:"enterSubcategory",value:function(e,t,n){e&&t&&(this.privateState.activeCategoryId=e.id,this.privateState.activeSubcategoryId=t.id,n&&(this.privateState.activeSubsubcategoryId=n.id))}}]),e}(),Hl=new $l;function Ul(e){return Ul="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ul(e)}function ql(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wl(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 Jl(e,t,n){return t&&Wl(e.prototype,t),n&&Wl(e,n),e}function Gl(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
*
@@ -473,13 +473,13 @@ window.angular.module("piwikApp.service").factory("reportMetadataModel",(functio
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Lc(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("WidgetLoader");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Nc,[Object(a["createElementVNode"])("div",Tc,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.widgetsByCategory,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name)+" ",1),Object(a["createElementVNode"])("ul",Ac,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.widgets,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:function(n){return e.selectWidget(t)}},[Object(a["createElementVNode"])("span",xc,Object(a["toDisplayString"])(t.name),1)],10,Ic)})),128))])])})),128))]),Object(a["createElementVNode"])("div",Bc,[e.selectedWidget.parameters?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(a["createCommentVNode"])("",!0)]),Mc])}function Rc(e,t){return Uc(e)||Hc(e,t)||_c(e,t)||Fc()}function Fc(){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 _c(e,t){if(e){if("string"===typeof e)return $c(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)?$c(e,t):void 0}}function $c(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 Hc(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function Uc(e){if(Array.isArray(e))return e}var qc=Object(a["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:hc},data:function(){return{selectedWidget:null}},created:function(){var e=Rc(this.widgetsSorted,1);this.selectedWidget=e[0]},computed:{widgetsSorted:function(){return Il(this.widgets)},widgetsByCategory:function(){var e={};return this.widgetsSorted.forEach((function(t){var n,r=null===(n=t.subcategory)||void 0===n?void 0:n.name;r&&(e[r]||(e[r]={name:r,order:t.order,widgets:[]}),e[r].widgets.push(t))})),Il(Object.values(e))}},methods:{selectWidget:function(e){this.selectedWidget=Object.assign({},e)}}});qc.render=Lc;var Wc=qc,Jc=(kt({component:Wc,scope:{widgets:{angularJsBind:"=piwikWidgetByDimensionContainer",transform:function(e){return e.widgets}}},directiveName:"piwikWidgetByDimensionContainer"}),["id"]),Gc={key:1},zc={key:2};
+ */function Lc(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("WidgetLoader");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Nc,[Object(a["createElementVNode"])("div",Tc,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.widgetsByCategory,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"dimensionCategory",key:t.name},[Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.name)+" ",1),Object(a["createElementVNode"])("ul",Ac,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(t.widgets,(function(t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["reportDimension",{activeDimension:e.selectedWidget.uniqueId===t.uniqueId}]),key:t.uniqueId,onClick:function(n){return e.selectWidget(t)}},[Object(a["createElementVNode"])("span",xc,Object(a["toDisplayString"])(t.name),1)],10,Ic)})),128))])])})),128))]),Object(a["createElementVNode"])("div",Bc,[e.selectedWidget.parameters?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"widget-params":e.selectedWidget.parameters,class:"dimensionReport"},null,8,["widget-params"])):Object(a["createCommentVNode"])("",!0)]),Mc])}function Fc(e,t){return Uc(e)||Hc(e,t)||_c(e,t)||Rc()}function Rc(){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 _c(e,t){if(e){if("string"===typeof e)return $c(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)?$c(e,t):void 0}}function $c(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 Hc(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function Uc(e){if(Array.isArray(e))return e}var qc=Object(a["defineComponent"])({props:{widgets:Array},components:{WidgetLoader:hc},data:function(){return{selectedWidget:null}},created:function(){var e=Fc(this.widgetsSorted,1);this.selectedWidget=e[0]},computed:{widgetsSorted:function(){return Il(this.widgets)},widgetsByCategory:function(){var e={};return this.widgetsSorted.forEach((function(t){var n,r=null===(n=t.subcategory)||void 0===n?void 0:n.name;r&&(e[r]||(e[r]={name:r,order:t.order,widgets:[]}),e[r].widgets.push(t))})),Il(Object.values(e))}},methods:{selectWidget:function(e){this.selectedWidget=Object.assign({},e)}}});qc.render=Lc;var Wc=qc,Jc=(kt({component:Wc,scope:{widgets:{angularJsBind:"=piwikWidgetByDimensionContainer",transform:function(e){return e.widgets}}},directiveName:"piwikWidgetByDimensionContainer"}),["id"]),Gc={key:1},zc={key:2};
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function Yc(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("WidgetLoader"),c=Object(a["resolveComponent"])("WidgetContainer"),s=Object(a["resolveComponent"])("WidgetByDimensionContainer"),u=Object(a["resolveDirective"])("tooltips");return e.actualWidget?Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,class:Object(a["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[!e.actualWidget.isContainer&&e.actualWidget.parameters?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])):Object(a["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Gc,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(c,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(a["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",zc,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(a["createCommentVNode"])("",!0)],10,Jc)),[[a["vShow"],e.showWidget],[u,{content:e.tooltipContent}]]):Object(a["createCommentVNode"])("",!0)}function Qc(e,t){var n=void 0;return Object.values(e||{}).some((function(e){return n=e.find((function(e){var n;return e&&e.isContainer&&(null===(n=e.parameters)||void 0===n?void 0:n.containerId)===t})),n})),n}var Kc=Object(a["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:hc,WidgetContainer:Vc,WidgetByDimensionContainer:Wc},directives:{Tooltips:Rr},data:function(){return{showWidget:!1}},setup:function(){function e(){var e=window.$(this);if(""===e.attr("piwik-field")||e.hasClass("matomo-form-field"))return"";var t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"<br />"))}return{tooltipContent:e}},created:function(){var e=this,t=this.actualWidget;if(t&&t.middlewareParameters){var n=t.middlewareParameters;Ze.fetch(n).then((function(t){e.showWidget=!!t}))}else this.showWidget=!0},computed:{allWidgets:function(){return Ql.widgets.value},actualWidget:function(){var e=this,t=this.widget;if(t){var n=Object.assign({},t);if(t&&t.isReport&&!t.documentation){var r=cc.findReport(t.module,t.action);r&&r.documentation&&(n.documentation=r.documentation)}return t}if(this.containerid){var i=Qc(this.allWidgets,this.containerid);if(i){var a=Object.assign({},i);if(this.widgetized){a.isFirstInPage=!0,a.parameters=Object.assign(Object.assign({},a.parameters),{},{widget:"1"});var o=zl(a);o&&(a.widgets=o.map((function(t){return Object.assign(Object.assign({},t),{},{parameters:Object.assign(Object.assign({},t.parameters),{},{widget:"1",containerId:e.containerid})})})))}return a}}return null}}});Kc.render=Yc;var Xc=Kc,Zc=(kt({component:Xc,scope:{widget:{angularJsBind:"=?piwikWidget"},widgetized:{angularJsBind:"=?"},containerid:{angularJsBind:"@"}},directiveName:"piwikWidget"}),{class:"reporting-page"}),es={key:1,class:"col s12 l6 leftWidgetColumn"},ts={key:2,class:"col s12 l6 rightWidgetColumn"};
+ */function Yc(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("WidgetLoader"),c=Object(a["resolveComponent"])("WidgetContainer"),s=Object(a["resolveComponent"])("WidgetByDimensionContainer"),u=Object(a["resolveDirective"])("tooltips");return e.actualWidget?Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:0,class:Object(a["normalizeClass"])(["matomo-widget",{isFirstWidgetInPage:e.actualWidget.isFirstInPage}]),id:e.actualWidget.uniqueId},[!e.actualWidget.isContainer&&e.actualWidget.parameters?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,"widget-params":e.actualWidget.parameters,"widget-name":e.actualWidget.name},null,8,["widget-params","widget-name"])):Object(a["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"!==e.actualWidget.layout&&!this.preventRecursion?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Gc,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(c,{container:e.actualWidget.widgets},null,8,["container"])])])):Object(a["createCommentVNode"])("",!0),e.actualWidget.isContainer&&"ByDimension"===e.actualWidget.layout?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",zc,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(s,{widgets:e.actualWidget.widgets},null,8,["widgets"])])])):Object(a["createCommentVNode"])("",!0)],10,Jc)),[[a["vShow"],e.showWidget],[u,{content:e.tooltipContent}]]):Object(a["createCommentVNode"])("",!0)}function Qc(e,t){var n=void 0;return Object.values(e||{}).some((function(e){return n=e.find((function(e){var n;return e&&e.isContainer&&(null===(n=e.parameters)||void 0===n?void 0:n.containerId)===t})),n})),n}var Kc=Object(a["defineComponent"])({props:{widget:Object,widgetized:Boolean,containerid:String,preventRecursion:Boolean},components:{WidgetLoader:hc,WidgetContainer:Vc,WidgetByDimensionContainer:Wc},directives:{Tooltips:Fr},data:function(){return{showWidget:!1}},setup:function(){function e(){var e=window.$(this);if(""===e.attr("piwik-field")||e.hasClass("matomo-form-field"))return"";var t=window.$(this).attr("title")||"";return window.vueSanitize(t.replace(/\n/g,"<br />"))}return{tooltipContent:e}},created:function(){var e=this,t=this.actualWidget;if(t&&t.middlewareParameters){var n=t.middlewareParameters;Ze.fetch(n).then((function(t){e.showWidget=!!t}))}else this.showWidget=!0},computed:{allWidgets:function(){return Ql.widgets.value},actualWidget:function(){var e=this,t=this.widget;if(t){var n=Object.assign({},t);if(t&&t.isReport&&!t.documentation){var r=cc.findReport(t.module,t.action);r&&r.documentation&&(n.documentation=r.documentation)}return t}if(this.containerid){var i=Qc(this.allWidgets,this.containerid);if(i){var a=Object.assign({},i);if(this.widgetized){a.isFirstInPage=!0,a.parameters=Object.assign(Object.assign({},a.parameters),{},{widget:"1"});var o=zl(a);o&&(a.widgets=o.map((function(t){return Object.assign(Object.assign({},t),{},{parameters:Object.assign(Object.assign({},t.parameters),{},{widget:"1",containerId:e.containerid})})})))}return a}}return null}}});Kc.render=Yc;var Xc=Kc,Zc=(kt({component:Xc,scope:{widget:{angularJsBind:"=?piwikWidget"},widgetized:{angularJsBind:"=?"},containerid:{angularJsBind:"@"}},directiveName:"piwikWidget"}),{class:"reporting-page"}),es={key:1,class:"col s12 l6 leftWidgetColumn"},ts={key:2,class:"col s12 l6 rightWidgetColumn"};
/*!
* Matomo - free/libre analytics platform
*
@@ -491,13 +491,13 @@ window.angular.module("piwikApp.service").factory("reportMetadataModel",(functio
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function ms(e){return!!(e.isContainer&&e.layout&&"ByDimension"===e.layout||"bydimension"===e.viewDataTable)||(!!e.isWide||e.viewDataTable&&("tableAllColumns"===e.viewDataTable||"sparklines"===e.viewDataTable||"graphEvolution"===e.viewDataTable))}function fs(e){if(e&&e[0]){var t=ls(e),n=e[0];return n.group?t[0]=Object.assign(Object.assign({},t[0]),{},{left:fs(n.left||[]),right:fs(n.right||[])}):t[0]=Object.assign(Object.assign({},t[0]),{},{isFirstInPage:!0}),t}return e}var hs=function(){function e(){var t=this;rs(this,e),os(this,"privateState",Object(a["reactive"])({})),os(this,"state",Object(a["computed"])((function(){return Object(a["readonly"])(t.privateState)}))),os(this,"page",Object(a["computed"])((function(){return t.state.value.page}))),os(this,"widgets",Object(a["computed"])((function(){var e=t.page.value;if(!e)return[];var n=[],r={},i=function(e){return e.isReport&&r["".concat(e.module,".").concat(e.action)]},a=function(e){if(!e.isReport)return[];var t=cc.findReport(e.module,e.action);return t&&t.relatedReports?t.relatedReports:[]};if((e.widgets||[]).forEach((function(e){i(e)||(a(e).forEach((function(e){r["".concat(e.module,".").concat(e.action)]=!0})),n.push(e))})),n=Il(n),1===n.length)return fs(n);for(var o=[],l=0;l<n.length;l+=1){var c=n[l];if(ms(c)||n[l+1]&&ms(n[l+1]))o.push(Object.assign(Object.assign({},c),{},{widgets:Il(zl(c))}));else{var s=0,u=[c],d=[];while(n[l+1]&&!ms(n[l+1]))l+=1,s+=1,s%2===0?u.push(n[l]):d.push(n[l]);o.push({group:!0,left:u,right:d})}}var p=fs(o);return p})))}return as(e,[{key:"fetchPage",value:function(e,t){var n=this;return this.resetPage(),Promise.all([El.getAllPages(),cc.fetchReportMetadata()]).then((function(){return n.privateState.page=El.findPage(e,t),n.page.value}))}},{key:"resetPage",value:function(){this.privateState.page=void 0}}]),e}(),gs=new hs;function vs(){var e="category=General_Visitors&subcategory=Live_VisitorLog",t=window.broadcast.buildReportingUrl(e);hl.show({id:"onlyRawData",animate:!1,context:"info",message:C("CoreHome_PeriodHasOnlyRawData",'<a href="'.concat(t,'">'),"</a>"),type:"transient"})}function bs(){hl.remove("onlyRawData")}var ys=Object(a["defineComponent"])({components:{ActivityIndicator:go,Widget:Xc},data:function(){return{loading:!1,hasRawData:!1,hasNoVisits:!1,dateLastChecked:null,hasNoPage:!1}},created:function(){var e=this;gs.resetPage(),this.loading=!0,this.renderInitialPage(),Object(a["watch"])((function(){return Ee.parsed.value}),(function(t,n){t.category===n.category&&t.subcategory===n.subcategory&&t.period===n.period&&t.date===n.date&&t.segment===n.segment&&JSON.stringify(t.compareDates)===JSON.stringify(n.compareDates)&&JSON.stringify(t.comparePeriods)===JSON.stringify(n.comparePeriods)&&JSON.stringify(t.compareSegments)===JSON.stringify(n.compareSegments)&&JSON.stringify(t.columns||"")===JSON.stringify(n.columns||"")||(t.date===n.date&&t.period===n.period||(bs(),e.dateLastChecked=null,e.hasRawData=!1,e.hasNoVisits=!1),e.renderPage(t.category,t.subcategory))})),S.on("loadPage",(function(t,n){e.renderPage(t,n)}))},computed:{widgets:function(){return gs.widgets.value}},methods:{renderPage:function(e,t){var n=this;if(!e||!t)return gs.resetPage(),void(this.loading=!1);var r=Ee.parsed.value,i=r.period,a=r.date;try{p.parse(i,a)}catch(l){return hl.show({id:"invalidDate",animate:!1,context:"error",message:C("CoreHome_DateInvalid"),type:"transient"}),gs.resetPage(),void(this.loading=!1)}hl.remove("invalidDate"),S.postEvent("piwikPageChange",{}),hl.clearTransientNotifications(),p.parse(i,a).containsToday()&&this.showOnlyRawDataMessageIfRequired();var o={category:e,subcategory:t};if(S.postEvent("ReportingPage.loadPage",o),o.promise)return this.loading=!0,void Promise.resolve(o.promise).finally((function(){n.loading=!1}));gs.fetchPage(e,t).then((function(){var t=!gs.page.value;if(t){var r=El.findPageInCategory(e);if(r&&r.subcategory)return void Ee.updateHash(Object.assign(Object.assign({},Ee.hashParsed.value),{},{subcategory:r.subcategory.id}))}n.hasNoPage=t,n.loading=!1}))},renderInitialPage:function(){var e=Ee.parsed.value;this.renderPage(e.category,e.subcategory)},showOnlyRawDataMessageIfRequired:function(){var e=this;this.hasRawData&&this.hasNoVisits&&vs();var t=Ee.parsed.value,n=t.segment;if(n)bs();else{var r=["Live_VisitorLog","General_RealTime","UserCountryMap_RealTimeMap","MediaAnalytics_TypeAudienceLog","MediaAnalytics_TypeRealTime","FormAnalytics_TypeRealTime","Goals_AddNewGoal"],i=["HeatmapSessionRecording_Heatmaps","HeatmapSessionRecording_SessionRecordings","Marketplace_Marketplace"],a=t.subcategory,o=t.category;if(-1===r.indexOf(a)&&-1===i.indexOf(o)&&-1===a.toLowerCase().indexOf("manage")){var l=6e4;this.dateLastChecked&&(new Date).valueOf()-this.dateLastChecked.valueOf()<l||Ze.fetch({method:"VisitsSummary.getVisits"}).then((function(t){return e.dateLastChecked=new Date,t.value>0?(e.hasNoVisits=!1,void bs()):(e.hasNoVisits=!0,e.hasRawData?void vs():Ze.fetch({method:"Live.getLastVisitsDetails",filter_limit:1,doNotFetchActions:1}))})).then((function(t){if(!t||0===t.length)return e.hasRawData=!1,void bs();e.hasRawData=!0,vs()}))}else bs()}}}});ys.render=ns;var ws=ys,Os=(kt({component:ws,directiveName:"piwikReportingPage"}),{class:"report-export-popover row",id:"reportExport"}),js={class:"col l6"},ks={name:"format"},Ss={name:"option_flat"},Cs={name:"option_expanded"},Es={name:"option_format_metrics"},Ds={class:"col l6"},Ps={name:"filter_type"},Vs={class:"filter_limit"},Ns={name:"filter_limit_all"},Ts={key:0,name:"filter_limit"},As={key:1,name:"filter_limit"},Is={class:"col l12"},xs=["value"],Bs=Object(a["createTextVNode"])("\n "),Ms=[Bs],Ls=["innerHTML"],Rs={class:"col l12"},Fs=["href","title"];
+ */function ms(e){return!!(e.isContainer&&e.layout&&"ByDimension"===e.layout||"bydimension"===e.viewDataTable)||(!!e.isWide||e.viewDataTable&&("tableAllColumns"===e.viewDataTable||"sparklines"===e.viewDataTable||"graphEvolution"===e.viewDataTable))}function fs(e){if(e&&e[0]){var t=ls(e),n=e[0];return n.group?t[0]=Object.assign(Object.assign({},t[0]),{},{left:fs(n.left||[]),right:fs(n.right||[])}):t[0]=Object.assign(Object.assign({},t[0]),{},{isFirstInPage:!0}),t}return e}var hs=function(){function e(){var t=this;rs(this,e),os(this,"privateState",Object(a["reactive"])({})),os(this,"state",Object(a["computed"])((function(){return Object(a["readonly"])(t.privateState)}))),os(this,"page",Object(a["computed"])((function(){return t.state.value.page}))),os(this,"widgets",Object(a["computed"])((function(){var e=t.page.value;if(!e)return[];var n=[],r={},i=function(e){return e.isReport&&r["".concat(e.module,".").concat(e.action)]},a=function(e){if(!e.isReport)return[];var t=cc.findReport(e.module,e.action);return t&&t.relatedReports?t.relatedReports:[]};if((e.widgets||[]).forEach((function(e){i(e)||(a(e).forEach((function(e){r["".concat(e.module,".").concat(e.action)]=!0})),n.push(e))})),n=Il(n),1===n.length)return fs(n);for(var o=[],l=0;l<n.length;l+=1){var c=n[l];if(ms(c)||n[l+1]&&ms(n[l+1]))o.push(Object.assign(Object.assign({},c),{},{widgets:Il(zl(c))}));else{var s=0,u=[c],d=[];while(n[l+1]&&!ms(n[l+1]))l+=1,s+=1,s%2===0?u.push(n[l]):d.push(n[l]);o.push({group:!0,left:u,right:d})}}var p=fs(o);return p})))}return as(e,[{key:"fetchPage",value:function(e,t){var n=this;return this.resetPage(),Promise.all([El.getAllPages(),cc.fetchReportMetadata()]).then((function(){return n.privateState.page=El.findPage(e,t),n.page.value}))}},{key:"resetPage",value:function(){this.privateState.page=void 0}}]),e}(),gs=new hs;function vs(){var e="category=General_Visitors&subcategory=Live_VisitorLog",t=window.broadcast.buildReportingUrl(e);hl.show({id:"onlyRawData",animate:!1,context:"info",message:C("CoreHome_PeriodHasOnlyRawData",'<a href="'.concat(t,'">'),"</a>"),type:"transient"})}function bs(){hl.remove("onlyRawData")}var ys=Object(a["defineComponent"])({components:{ActivityIndicator:go,Widget:Xc},data:function(){return{loading:!1,hasRawData:!1,hasNoVisits:!1,dateLastChecked:null,hasNoPage:!1}},created:function(){var e=this;gs.resetPage(),this.loading=!0,this.renderInitialPage(),Object(a["watch"])((function(){return Ee.parsed.value}),(function(t,n){t.category===n.category&&t.subcategory===n.subcategory&&t.period===n.period&&t.date===n.date&&t.segment===n.segment&&JSON.stringify(t.compareDates)===JSON.stringify(n.compareDates)&&JSON.stringify(t.comparePeriods)===JSON.stringify(n.comparePeriods)&&JSON.stringify(t.compareSegments)===JSON.stringify(n.compareSegments)&&JSON.stringify(t.columns||"")===JSON.stringify(n.columns||"")||(t.date===n.date&&t.period===n.period||(bs(),e.dateLastChecked=null,e.hasRawData=!1,e.hasNoVisits=!1),e.renderPage(t.category,t.subcategory))})),S.on("loadPage",(function(t,n){e.renderPage(t,n)}))},computed:{widgets:function(){return gs.widgets.value}},methods:{renderPage:function(e,t){var n=this;if(!e||!t)return gs.resetPage(),void(this.loading=!1);var r=Ee.parsed.value,i=r.period,a=r.date;try{p.parse(i,a)}catch(l){return hl.show({id:"invalidDate",animate:!1,context:"error",message:C("CoreHome_DateInvalid"),type:"transient"}),gs.resetPage(),void(this.loading=!1)}hl.remove("invalidDate"),S.postEvent("piwikPageChange",{}),hl.clearTransientNotifications(),p.parse(i,a).containsToday()&&this.showOnlyRawDataMessageIfRequired();var o={category:e,subcategory:t};if(S.postEvent("ReportingPage.loadPage",o),o.promise)return this.loading=!0,void Promise.resolve(o.promise).finally((function(){n.loading=!1}));gs.fetchPage(e,t).then((function(){var t=!gs.page.value;if(t){var r=El.findPageInCategory(e);if(r&&r.subcategory)return void Ee.updateHash(Object.assign(Object.assign({},Ee.hashParsed.value),{},{subcategory:r.subcategory.id}))}n.hasNoPage=t,n.loading=!1}))},renderInitialPage:function(){var e=Ee.parsed.value;this.renderPage(e.category,e.subcategory)},showOnlyRawDataMessageIfRequired:function(){var e=this;this.hasRawData&&this.hasNoVisits&&vs();var t=Ee.parsed.value,n=t.segment;if(n)bs();else{var r=["Live_VisitorLog","General_RealTime","UserCountryMap_RealTimeMap","MediaAnalytics_TypeAudienceLog","MediaAnalytics_TypeRealTime","FormAnalytics_TypeRealTime","Goals_AddNewGoal"],i=["HeatmapSessionRecording_Heatmaps","HeatmapSessionRecording_SessionRecordings","Marketplace_Marketplace"],a=t.subcategory,o=t.category;if(-1===r.indexOf(a)&&-1===i.indexOf(o)&&-1===a.toLowerCase().indexOf("manage")){var l=6e4;this.dateLastChecked&&(new Date).valueOf()-this.dateLastChecked.valueOf()<l||Ze.fetch({method:"VisitsSummary.getVisits"}).then((function(t){return e.dateLastChecked=new Date,t.value>0?(e.hasNoVisits=!1,void bs()):(e.hasNoVisits=!0,e.hasRawData?void vs():Ze.fetch({method:"Live.getLastVisitsDetails",filter_limit:1,doNotFetchActions:1}))})).then((function(t){if(!t||0===t.length)return e.hasRawData=!1,void bs();e.hasRawData=!0,vs()}))}else bs()}}}});ys.render=ns;var ws=ys,Os=(kt({component:ws,directiveName:"piwikReportingPage"}),{class:"report-export-popover row",id:"reportExport"}),js={class:"col l6"},ks={name:"format"},Ss={name:"option_flat"},Cs={name:"option_expanded"},Es={name:"option_format_metrics"},Ds={class:"col l6"},Ps={name:"filter_type"},Vs={class:"filter_limit"},Ns={name:"filter_limit_all"},Ts={key:0,name:"filter_limit"},As={key:1,name:"filter_limit"},Is={class:"col l12"},xs=["value"],Bs=Object(a["createTextVNode"])("\n "),Ms=[Bs],Ls=["innerHTML"],Fs={class:"col l12"},Rs=["href","title"];
/*!
* 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,t,n,r,i,o){var l=Object(a["resolveComponent"])("Field"),c=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Os,[Object(a["createElementVNode"])("div",js,[Object(a["createElementVNode"])("div",ks,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"format",title:e.translate("CoreHome_ExportFormat"),modelValue:e.reportFormat,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.reportFormat=t}),"full-width":!0,options:e.availableReportFormats[e.reportType]},null,8,["title","modelValue","options"])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Ss,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_flat",title:e.translate("CoreHome_FlattenReport"),modelValue:e.optionFlat,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.optionFlat=t})},null,8,["title","modelValue"]),[[a["vShow"],e.hasSubtables]])])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Cs,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_expanded",title:e.translate("CoreHome_ExpandSubtables"),modelValue:e.optionExpanded,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.optionExpanded=t})},null,8,["title","modelValue"]),[[a["vShow"],e.hasSubtables&&!e.optionFlat]])])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Es,[Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_format_metrics",title:e.translate("CoreHome_FormatMetrics"),modelValue:e.optionFormatMetrics,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.optionFormatMetrics=t})},null,8,["title","modelValue"])])])]),Object(a["createElementVNode"])("div",Ds,[Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Ps,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"filter_type",title:e.translate("CoreHome_ReportType"),modelValue:e.reportType,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.reportType=t}),"full-width":!0,options:e.availableReportTypes},null,8,["title","modelValue","options"])])]),Object(a["createElementVNode"])("div",Vs,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Ns,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"filter_limit_all",title:e.translate("CoreHome_RowLimit"),modelValue:e.reportLimitAll,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.reportLimitAll=t}),"full-width":!0,options:e.limitAllOptions},null,8,["title","modelValue","options"])],512),[[a["vShow"],!e.maxFilterLimit||e.maxFilterLimit<=0]]),"no"===e.reportLimitAll&&e.maxFilterLimit<=0?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ts,[Object(a["createVNode"])(l,{uicontrol:"number",name:"filter_limit",min:1,modelValue:e.reportLimit,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.reportLimit=t}),"full-width":!0},null,8,["modelValue"])])):Object(a["createCommentVNode"])("",!0),"no"===e.reportLimitAll&&e.maxFilterLimit>0?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",As,[Object(a["createVNode"])(l,{uicontrol:"number",name:"filter_limit",min:1,max:e.maxFilterLimit,modelValue:e.reportLimit,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.reportLimit=t}),value:e.reportLimit,"full-width":!0,title:e.filterLimitTooltip},null,8,["max","modelValue","value","title"])])):Object(a["createCommentVNode"])("",!0)])]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Is,[Object(a["withDirectives"])(Object(a["createElementVNode"])("textarea",{readonly:"",class:"exportFullUrl",value:e.exportLinkWithoutToken},Ms,8,xs),[[c,{}]]),Object(a["createElementVNode"])("div",{class:"tooltip",innerHTML:e.$sanitize(e.translate("CoreHome_ExportTooltipWithLink","<a target=_blank href='?module=UsersManager&action=userSecurity'>","</a>","ENTER_YOUR_TOKEN_AUTH_HERE"))},null,8,Ls)],512),[[a["vShow"],e.showUrl]]),Object(a["createElementVNode"])("div",Rs,[Object(a["createElementVNode"])("a",{class:"btn",href:e.exportLink,target:"_new",title:e.translate("CoreHome_ExportTooltip")},Object(a["toDisplayString"])(e.translate("General_Export")),9,Fs),Object(a["createElementVNode"])("a",{href:"javascript:",onClick:t[8]||(t[8]=function(t){return e.showUrl=!e.showUrl}),class:"toggle-export-url"},[Object(a["withDirectives"])(Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("CoreHome_ShowExportUrl")),513),[[a["vShow"],!e.showUrl]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("CoreHome_HideExportUrl")),513),[[a["vShow"],e.showUrl]])])])])}function $s(e,t){return Js(e)||Ws(e,t)||Us(e,t)||Hs()}function Hs(){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 Us(e,t){if(e){if("string"===typeof e)return qs(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)?qs(e,t):void 0}}function qs(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 Ws(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function Js(e){if(Array.isArray(e))return e}var Gs=$n("CorePluginsAdmin","Field"),zs=Object(a["defineComponent"])({components:{Field:Gs},directives:{SelectOnFocus:vn},props:{hasSubtables:Boolean,availableReportTypes:Object,availableReportFormats:{type:Object,required:!0},maxFilterLimit:Number,limitAllOptions:Object,dataTable:{type:Object,required:!0},requestParams:[Object,String],apiMethod:{type:String,required:!0},initialReportType:{type:String,default:"default"},initialReportLimit:{type:[String,Number],default:100},initialReportLimitAll:{type:String,default:"yes"},initialOptionFlat:{type:Boolean,default:!1},initialOptionExpanded:{type:Boolean,default:!0},initialOptionFormatMetrics:{type:Boolean,default:!1},initialReportFormat:{type:String,default:"XML"}},data:function(){return{showUrl:!1,reportFormat:this.initialReportFormat,optionFlat:this.initialOptionFlat,optionExpanded:this.initialOptionExpanded,optionFormatMetrics:this.initialOptionFormatMetrics,reportType:this.initialReportType,reportLimitAll:this.initialReportLimitAll,reportLimit:"string"===typeof this.initialReportLimit?parseInt(this.initialReportLimit,10):this.initialReportLimit}},watch:{reportType:function(e){this.availableReportFormats[e][this.reportFormat]||(this.reportFormat="XML")},reportLimit:function(e,t){this.maxFilterLimit&&this.maxFilterLimit>0&&e>this.maxFilterLimit&&(this.reportLimit=t)}},computed:{filterLimitTooltip:function(){var e=C("CoreHome_RowLimit"),t=this.maxFilterLimit?C("General_ComputedMetricMax",this.maxFilterLimit.toString()):"";return"".concat(e," (").concat(t,")")},exportLink:function(){return this.getExportLink(!0)},exportLinkWithoutToken:function(){return this.getExportLink(!1)}},methods:{getExportLink:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.reportFormat,n=this.apiMethod,r=this.reportType,i=this.dataTable;if(t){var a={},o="yes"===this.reportLimitAll?-1:this.reportLimit;this.requestParams&&"string"===typeof this.requestParams&&(a=JSON.parse(this.requestParams));var l=i.param,c=l.segment,s=l.label,u=l.idGoal,d=l.idDimension,p=l.idSite,m=i.param,f=m.date,h=m.period;"RSS"===t&&(f="last10"),"undefined"!==typeof i.param.dateUsedInGraph&&(f=i.param.dateUsedInGraph);var g=S.config.datatable_export_range_as_day.toLowerCase();-1!==g.indexOf(t.toLowerCase())&&"range"===i.param.period&&(h="day"),"range"===i.param.period&&"graphEvolution"===i.param.viewDataTable&&(h="day");var v={module:"API",format:t,idSite:p,period:h,date:f};if("processed"===r){v.method="API.getProcessedReport";var b=n.split("."),y=$s(b,2);v.apiModule=y[0],v.apiAction=y[1]}else v.method=n;if(i.param.compareDates&&i.param.compareDates.length&&(v.compareDates=i.param.compareDates,v.compare="1"),i.param.comparePeriods&&i.param.comparePeriods.length&&(v.comparePeriods=i.param.comparePeriods,v.compare="1"),i.param.compareSegments&&i.param.compareSegments.length&&(v.compareSegments=i.param.compareSegments,v.compare="1"),"undefined"!==typeof i.param.filter_pattern&&(v.filter_pattern=i.param.filter_pattern),"undefined"!==typeof i.param.filter_pattern_recursive&&(v.filter_pattern_recursive=i.param.filter_pattern_recursive),window.$.isPlainObject(a)&&Object.entries(a).forEach((function(e){var t=$s(e,2),n=t[0],r=t[1],i=r;!0===i?i=1:!1===i&&(i=0),v[n]=i})),this.optionFlat&&(v.flat=1,"undefined"!==typeof i.param.include_aggregate_rows&&"1"===i.param.include_aggregate_rows&&(v.include_aggregate_rows=1)),!this.optionFlat&&this.optionExpanded&&(v.expanded=1),this.optionFormatMetrics&&(v.format_metrics=1),i.param.pivotBy&&(v.pivotBy=i.param.pivotBy,v.pivotByColumnLimit=20,i.props.pivot_by_column&&(v.pivotByColumn=i.props.pivot_by_column)),"CSV"!==t&&"TSV"!==t&&"RSS"!==t||(v.translateColumnNames=1,v.language=S.language),"undefined"!==typeof c&&(v.segment=decodeURIComponent(c)),"undefined"!==typeof u&&"-1"!==u&&(v.idGoal=u),"undefined"!==typeof d&&"-1"!==d&&(v.idDimension=d),s){var w=s.split(",");if(w.length>1)v.label=w;else{var O=$s(w,1);v.label=O[0]}}v.token_auth="ENTER_YOUR_TOKEN_AUTH_HERE",!0===e&&(v.token_auth=S.token_auth,v.force_api_session=1),v.filter_limit=o;var j=window.location.href.split("?")[0];return"".concat(j,"?").concat(Ee.stringify(v))}}}});zs.render=_s;var Ys=zs,Qs=window,Ks=Qs.$,Xs={mounted:function(e,t){e.addEventListener("click",(function(){var n=Ee.hashParsed.value.popover,r=Ks(e).closest("[data-report]").data("uiControlObject"),i=window.Piwik_Popover.showLoading("Export"),a=t.value.reportFormats,o=r.param.filter_limit;t.value.maxFilterLimit>0&&(o=Math.min(o,t.value.maxFilterLimit));var l=!0===r.param.flat||1===r.param.flat||"1"===r.param.flat,c={initialReportType:"default",initialReportLimit:o>0?o:100,initialReportLimitAll:-1===o?"yes":"no",initialOptionFlat:l,initialOptionExpanded:!0,initialOptionFormatMetrics:!1,hasSubtables:l||r.numberOfSubtables>0,availableReportFormats:{default:a,processed:{XML:a.XML,JSON:a.JSON}},availableReportTypes:{default:C("CoreHome_StandardReport"),processed:C("CoreHome_ReportWithMetadata")},limitAllOptions:{yes:C("General_All"),no:C("CoreHome_CustomLimit")},maxFilterLimit:t.value.maxFilterLimit,dataTable:r,requestParams:t.value.requestParams,apiMethod:t.value.apiMethod},s=dt({template:'\n <popover v-bind="bind"/>',data:function(){return{bind:c}}});s.component("popover",Ys);var u=document.createElement("div");s.mount(u);var d=t.value.reportTitle;window.Piwik_Popover.setTitle("".concat(C("General_Export")," ").concat(S.helper.htmlEntities(d))),window.Piwik_Popover.setContent(u),window.Piwik_Popover.onClose((function(){s.unmount(),""!==n&&setTimeout((function(){Ee.updateHash(Object.assign(Object.assign({},Ee.hashParsed.value),{},{popover:n})),t.value.onClose&&t.value.onClose()}),100)})),setTimeout((function(){i.dialog(),Ks(".exportFullUrl, .btn",i).tooltip({track:!0,show:!1,hide:!1})}),100)}))}};
+ */function _s(e,t,n,r,i,o){var l=Object(a["resolveComponent"])("Field"),c=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Os,[Object(a["createElementVNode"])("div",js,[Object(a["createElementVNode"])("div",ks,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"format",title:e.translate("CoreHome_ExportFormat"),modelValue:e.reportFormat,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.reportFormat=t}),"full-width":!0,options:e.availableReportFormats[e.reportType]},null,8,["title","modelValue","options"])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Ss,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_flat",title:e.translate("CoreHome_FlattenReport"),modelValue:e.optionFlat,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.optionFlat=t})},null,8,["title","modelValue"]),[[a["vShow"],e.hasSubtables]])])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Cs,[Object(a["withDirectives"])(Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_expanded",title:e.translate("CoreHome_ExpandSubtables"),modelValue:e.optionExpanded,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.optionExpanded=t})},null,8,["title","modelValue"]),[[a["vShow"],e.hasSubtables&&!e.optionFlat]])])]),Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Es,[Object(a["createVNode"])(l,{uicontrol:"checkbox",name:"option_format_metrics",title:e.translate("CoreHome_FormatMetrics"),modelValue:e.optionFormatMetrics,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.optionFormatMetrics=t})},null,8,["title","modelValue"])])])]),Object(a["createElementVNode"])("div",Ds,[Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("div",Ps,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"filter_type",title:e.translate("CoreHome_ReportType"),modelValue:e.reportType,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.reportType=t}),"full-width":!0,options:e.availableReportTypes},null,8,["title","modelValue","options"])])]),Object(a["createElementVNode"])("div",Vs,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Ns,[Object(a["createVNode"])(l,{uicontrol:"radio",name:"filter_limit_all",title:e.translate("CoreHome_RowLimit"),modelValue:e.reportLimitAll,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.reportLimitAll=t}),"full-width":!0,options:e.limitAllOptions},null,8,["title","modelValue","options"])],512),[[a["vShow"],!e.maxFilterLimit||e.maxFilterLimit<=0]]),"no"===e.reportLimitAll&&e.maxFilterLimit<=0?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ts,[Object(a["createVNode"])(l,{uicontrol:"number",name:"filter_limit",min:1,modelValue:e.reportLimit,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.reportLimit=t}),"full-width":!0},null,8,["modelValue"])])):Object(a["createCommentVNode"])("",!0),"no"===e.reportLimitAll&&e.maxFilterLimit>0?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",As,[Object(a["createVNode"])(l,{uicontrol:"number",name:"filter_limit",min:1,max:e.maxFilterLimit,modelValue:e.reportLimit,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.reportLimit=t}),value:e.reportLimit,"full-width":!0,title:e.filterLimitTooltip},null,8,["max","modelValue","value","title"])])):Object(a["createCommentVNode"])("",!0)])]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",Is,[Object(a["withDirectives"])(Object(a["createElementVNode"])("textarea",{readonly:"",class:"exportFullUrl",value:e.exportLinkWithoutToken},Ms,8,xs),[[c,{}]]),Object(a["createElementVNode"])("div",{class:"tooltip",innerHTML:e.$sanitize(e.translate("CoreHome_ExportTooltipWithLink","<a target=_blank href='?module=UsersManager&action=userSecurity'>","</a>","ENTER_YOUR_TOKEN_AUTH_HERE"))},null,8,Ls)],512),[[a["vShow"],e.showUrl]]),Object(a["createElementVNode"])("div",Fs,[Object(a["createElementVNode"])("a",{class:"btn",href:e.exportLink,target:"_new",title:e.translate("CoreHome_ExportTooltip")},Object(a["toDisplayString"])(e.translate("General_Export")),9,Rs),Object(a["createElementVNode"])("a",{href:"javascript:",onClick:t[8]||(t[8]=function(t){return e.showUrl=!e.showUrl}),class:"toggle-export-url"},[Object(a["withDirectives"])(Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("CoreHome_ShowExportUrl")),513),[[a["vShow"],!e.showUrl]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(e.translate("CoreHome_HideExportUrl")),513),[[a["vShow"],e.showUrl]])])])])}function $s(e,t){return Js(e)||Ws(e,t)||Us(e,t)||Hs()}function Hs(){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 Us(e,t){if(e){if("string"===typeof e)return qs(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)?qs(e,t):void 0}}function qs(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 Ws(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,l=!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(c){l=!0,i=c}finally{try{o||null==n["return"]||n["return"]()}finally{if(l)throw i}}return a}}function Js(e){if(Array.isArray(e))return e}var Gs=$n("CorePluginsAdmin","Field"),zs=Object(a["defineComponent"])({components:{Field:Gs},directives:{SelectOnFocus:vn},props:{hasSubtables:Boolean,availableReportTypes:Object,availableReportFormats:{type:Object,required:!0},maxFilterLimit:Number,limitAllOptions:Object,dataTable:{type:Object,required:!0},requestParams:[Object,String],apiMethod:{type:String,required:!0},initialReportType:{type:String,default:"default"},initialReportLimit:{type:[String,Number],default:100},initialReportLimitAll:{type:String,default:"yes"},initialOptionFlat:{type:Boolean,default:!1},initialOptionExpanded:{type:Boolean,default:!0},initialOptionFormatMetrics:{type:Boolean,default:!1},initialReportFormat:{type:String,default:"XML"}},data:function(){return{showUrl:!1,reportFormat:this.initialReportFormat,optionFlat:this.initialOptionFlat,optionExpanded:this.initialOptionExpanded,optionFormatMetrics:this.initialOptionFormatMetrics,reportType:this.initialReportType,reportLimitAll:this.initialReportLimitAll,reportLimit:"string"===typeof this.initialReportLimit?parseInt(this.initialReportLimit,10):this.initialReportLimit}},watch:{reportType:function(e){this.availableReportFormats[e][this.reportFormat]||(this.reportFormat="XML")},reportLimit:function(e,t){this.maxFilterLimit&&this.maxFilterLimit>0&&e>this.maxFilterLimit&&(this.reportLimit=t)}},computed:{filterLimitTooltip:function(){var e=C("CoreHome_RowLimit"),t=this.maxFilterLimit?C("General_ComputedMetricMax",this.maxFilterLimit.toString()):"";return"".concat(e," (").concat(t,")")},exportLink:function(){return this.getExportLink(!0)},exportLinkWithoutToken:function(){return this.getExportLink(!1)}},methods:{getExportLink:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.reportFormat,n=this.apiMethod,r=this.reportType,i=this.dataTable;if(t){var a={},o="yes"===this.reportLimitAll?-1:this.reportLimit;this.requestParams&&"string"===typeof this.requestParams&&(a=JSON.parse(this.requestParams));var l=i.param,c=l.segment,s=l.label,u=l.idGoal,d=l.idDimension,p=l.idSite,m=i.param,f=m.date,h=m.period;"RSS"===t&&(f="last10"),"undefined"!==typeof i.param.dateUsedInGraph&&(f=i.param.dateUsedInGraph);var g=S.config.datatable_export_range_as_day.toLowerCase();-1!==g.indexOf(t.toLowerCase())&&"range"===i.param.period&&(h="day"),"range"===i.param.period&&"graphEvolution"===i.param.viewDataTable&&(h="day");var v={module:"API",format:t,idSite:p,period:h,date:f};if("processed"===r){v.method="API.getProcessedReport";var b=n.split("."),y=$s(b,2);v.apiModule=y[0],v.apiAction=y[1]}else v.method=n;if(i.param.compareDates&&i.param.compareDates.length&&(v.compareDates=i.param.compareDates,v.compare="1"),i.param.comparePeriods&&i.param.comparePeriods.length&&(v.comparePeriods=i.param.comparePeriods,v.compare="1"),i.param.compareSegments&&i.param.compareSegments.length&&(v.compareSegments=i.param.compareSegments,v.compare="1"),"undefined"!==typeof i.param.filter_pattern&&(v.filter_pattern=i.param.filter_pattern),"undefined"!==typeof i.param.filter_pattern_recursive&&(v.filter_pattern_recursive=i.param.filter_pattern_recursive),window.$.isPlainObject(a)&&Object.entries(a).forEach((function(e){var t=$s(e,2),n=t[0],r=t[1],i=r;!0===i?i=1:!1===i&&(i=0),v[n]=i})),this.optionFlat&&(v.flat=1,"undefined"!==typeof i.param.include_aggregate_rows&&"1"===i.param.include_aggregate_rows&&(v.include_aggregate_rows=1)),!this.optionFlat&&this.optionExpanded&&(v.expanded=1),this.optionFormatMetrics&&(v.format_metrics=1),i.param.pivotBy&&(v.pivotBy=i.param.pivotBy,v.pivotByColumnLimit=20,i.props.pivot_by_column&&(v.pivotByColumn=i.props.pivot_by_column)),"CSV"!==t&&"TSV"!==t&&"RSS"!==t||(v.translateColumnNames=1,v.language=S.language),"undefined"!==typeof c&&(v.segment=decodeURIComponent(c)),"undefined"!==typeof u&&"-1"!==u&&(v.idGoal=u),"undefined"!==typeof d&&"-1"!==d&&(v.idDimension=d),s){var w=s.split(",");if(w.length>1)v.label=w;else{var O=$s(w,1);v.label=O[0]}}v.token_auth="ENTER_YOUR_TOKEN_AUTH_HERE",!0===e&&(v.token_auth=S.token_auth,v.force_api_session=1),v.filter_limit=o;var j=window.location.href.split("?")[0];return"".concat(j,"?").concat(Ee.stringify(v))}}}});zs.render=_s;var Ys=zs,Qs=window,Ks=Qs.$,Xs={mounted:function(e,t){e.addEventListener("click",(function(){var n=Ee.hashParsed.value.popover,r=Ks(e).closest("[data-report]").data("uiControlObject"),i=window.Piwik_Popover.showLoading("Export"),a=t.value.reportFormats,o=r.param.filter_limit;t.value.maxFilterLimit>0&&(o=Math.min(o,t.value.maxFilterLimit));var l=!0===r.param.flat||1===r.param.flat||"1"===r.param.flat,c={initialReportType:"default",initialReportLimit:o>0?o:100,initialReportLimitAll:-1===o?"yes":"no",initialOptionFlat:l,initialOptionExpanded:!0,initialOptionFormatMetrics:!1,hasSubtables:l||r.numberOfSubtables>0,availableReportFormats:{default:a,processed:{XML:a.XML,JSON:a.JSON}},availableReportTypes:{default:C("CoreHome_StandardReport"),processed:C("CoreHome_ReportWithMetadata")},limitAllOptions:{yes:C("General_All"),no:C("CoreHome_CustomLimit")},maxFilterLimit:t.value.maxFilterLimit,dataTable:r,requestParams:t.value.requestParams,apiMethod:t.value.apiMethod},s=dt({template:'\n <popover v-bind="bind"/>',data:function(){return{bind:c}}});s.component("popover",Ys);var u=document.createElement("div");s.mount(u);var d=t.value.reportTitle;window.Piwik_Popover.setTitle("".concat(C("General_Export")," ").concat(S.helper.htmlEntities(d))),window.Piwik_Popover.setContent(u),window.Piwik_Popover.onClose((function(){s.unmount(),""!==n&&setTimeout((function(){Ee.updateHash(Object.assign(Object.assign({},Ee.hashParsed.value),{},{popover:n})),t.value.onClose&&t.value.onClose()}),100)})),setTimeout((function(){i.dialog(),Ks(".exportFullUrl, .btn",i).tooltip({track:!0,show:!1,hide:!1})}),100)}))}};
/*!
* Matomo - free/libre analytics platform
*
diff --git a/plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts b/plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts
index 2241b23d8e..ed7503b528 100644
--- a/plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts
+++ b/plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts
@@ -14,7 +14,7 @@ import { Category, CategoryContainer, getCategoryChildren } from './Category';
import { getSubcategoryChildren, Subcategory, SubcategoryContainer } from './Subcategory';
interface ReportingMenuStoreState {
- activeCategoryId: string|null;
+ activeCategoryId?: string|null;
activeSubcategoryId: string|null;
activeSubsubcategoryId: string|null;
}
@@ -32,18 +32,21 @@ function isNumeric(text: string) {
export class ReportingMenuStore {
private privateState = reactive<ReportingMenuStoreState>({
- activeCategoryId: null,
activeSubcategoryId: null,
activeSubsubcategoryId: null,
});
private state = computed(() => readonly(this.privateState));
- readonly activeCategory = computed(() => this.state.value.activeCategoryId
- || MatomoUrl.parsed.value.category as string);
+ readonly activeCategory = computed(
+ () => (typeof this.state.value.activeCategoryId !== 'undefined'
+ ? this.state.value.activeCategoryId
+ : MatomoUrl.parsed.value.category as string),
+ );
- readonly activeSubcategory = computed(() => this.state.value.activeSubcategoryId
- || MatomoUrl.parsed.value.subcategory as string);
+ readonly activeSubcategory = computed(
+ () => this.state.value.activeSubcategoryId || MatomoUrl.parsed.value.subcategory as string,
+ );
readonly activeSubsubcategory = computed(() => {
const manuallySetId = this.state.value.activeSubsubcategoryId;
@@ -76,7 +79,7 @@ export class ReportingMenuStore {
return ReportingPagesStoreInstance.reloadAllPages().then(() => this.menu.value);
}
- findSubcategory(categoryId: string, subcategoryId: string): SubcategoryFindResult {
+ findSubcategory(categoryId: string|null, subcategoryId: string): SubcategoryFindResult {
let foundCategory: Category|undefined = undefined;
let foundSubcategory: Subcategory|undefined = undefined;
let foundSubSubcategory: Subcategory|undefined = undefined;
@@ -188,7 +191,7 @@ export class ReportingMenuStore {
this.privateState.activeSubcategoryId = null;
this.privateState.activeSubsubcategoryId = null;
- if (this.privateState.activeCategoryId === category.id) {
+ if (this.activeCategory.value === category.id) {
this.privateState.activeCategoryId = null;
return false;
}
diff --git a/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue
index 5d115f8136..ab537111ab 100644
--- a/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue
+++ b/plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue
@@ -143,19 +143,7 @@ interface SiteSelectorState {
export default defineComponent({
props: {
- modelValue: {
- type: Object,
- default: (props: { modelValue?: SiteRef }): SiteRef|undefined => {
- if (props.modelValue) {
- return props.modelValue;
- }
-
- return (Matomo.idSite ? {
- id: Matomo.idSite,
- name: Matomo.helper.htmlDecode(Matomo.siteName),
- } : undefined);
- },
- },
+ modelValue: Object,
showSelectedSite: {
type: Boolean,
default: false,
@@ -185,6 +173,7 @@ export default defineComponent({
default: 'bottom',
},
placeholder: String,
+ defaultToFirstSite: Boolean,
},
emits: ['update:modelValue', 'blur'],
components: {
@@ -211,12 +200,22 @@ export default defineComponent({
},
created() {
this.searchSite = debounce(this.searchSite);
+
+ if (!this.modelValue && Matomo.idSite) {
+ this.$emit('update:modelValue', {
+ id: Matomo.idSite,
+ name: Matomo.helper.htmlDecode(Matomo.siteName),
+ });
+ }
},
mounted() {
window.initTopControls();
this.loadInitialSites().then(() => {
- if ((!this.modelValue || !this.modelValue.id) && !this.hasMultipleSites && this.sites[0]) {
+ if ((!this.modelValue || !this.modelValue.id)
+ && (!this.hasMultipleSites || this.defaultToFirstSite)
+ && this.sites[0]
+ ) {
this.$emit('update:modelValue', { id: this.sites[0].idsite, name: this.sites[0].name });
}
});
diff --git a/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.js b/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.js
index f720642de8..cfb7b91d26 100644
--- a/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.js
+++ b/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.js
@@ -261,14 +261,14 @@ function FieldCheckboxvue_type_template_id_d35fa436_render(_ctx, _cache, $props,
FieldCheckboxvue_type_script_lang_ts.render = FieldCheckboxvue_type_template_id_d35fa436_render
/* harmony default export */ var FieldCheckbox = (FieldCheckboxvue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue?vue&type=template&id=1a40004f
+// 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/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue?vue&type=template&id=1b419f85
-var FieldCheckboxArrayvue_type_template_id_1a40004f_hoisted_1 = {
+var FieldCheckboxArrayvue_type_template_id_1b419f85_hoisted_1 = {
ref: "root"
};
-var FieldCheckboxArrayvue_type_template_id_1a40004f_hoisted_2 = ["value", "checked", "onChange", "id", "name"];
-function FieldCheckboxArrayvue_type_template_id_1a40004f_render(_ctx, _cache, $props, $setup, $data, $options) {
- return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldCheckboxArrayvue_type_template_id_1a40004f_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+var FieldCheckboxArrayvue_type_template_id_1b419f85_hoisted_2 = ["value", "checked", "onChange", "id", "name"];
+function FieldCheckboxArrayvue_type_template_id_1b419f85_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldCheckboxArrayvue_type_template_id_1b419f85_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
class: "fieldRadioTitle"
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.title), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.title]]), (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.availableOptions, function (checkboxModel, $index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", {
@@ -284,12 +284,12 @@ function FieldCheckboxArrayvue_type_template_id_1a40004f_render(_ctx, _cache, $p
type: "checkbox",
id: "".concat(_ctx.name).concat(checkboxModel.key),
name: checkboxModel.name
- }), null, 16, FieldCheckboxArrayvue_type_template_id_1a40004f_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(checkboxModel.value), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }), null, 16, FieldCheckboxArrayvue_type_template_id_1b419f85_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(checkboxModel.value), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "form-description"
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(checkboxModel.description), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], checkboxModel.description]])])]);
}), 128))], 512);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue?vue&type=template&id=1a40004f
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue?vue&type=template&id=1b419f85
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue?vue&type=script&lang=ts
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -345,9 +345,8 @@ function getCheckboxStates(availableOptions, modelValue) {
}); // undo checked changes since we want the parent component to decide if it should go
// through
- this.$refs.root.querySelectorAll('input').forEach(function (inp) {
- inp.checked = !inp.checked;
- });
+ var item = this.$refs.root.querySelectorAll('input').item(changedIndex);
+ item.checked = !item.checked;
this.$emit('update:modelValue', newValue);
}
}
@@ -358,7 +357,7 @@ function getCheckboxStates(availableOptions, modelValue) {
-FieldCheckboxArrayvue_type_script_lang_ts.render = FieldCheckboxArrayvue_type_template_id_1a40004f_render
+FieldCheckboxArrayvue_type_script_lang_ts.render = FieldCheckboxArrayvue_type_template_id_1b419f85_render
/* harmony default export */ var FieldCheckboxArray = (FieldCheckboxArrayvue_type_script_lang_ts);
// 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/CorePluginsAdmin/vue/src/FormField/FieldExpandableSelect.vue?vue&type=template&id=c33fad48
@@ -789,29 +788,29 @@ function FieldMultituplevue_type_template_id_7469c188_render(_ctx, _cache, $prop
FieldMultituplevue_type_script_lang_ts.render = FieldMultituplevue_type_template_id_7469c188_render
/* harmony default export */ var FieldMultituple = (FieldMultituplevue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=template&id=4035c8ac
+// 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/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=template&id=b6f05a1e
-var FieldNumbervue_type_template_id_4035c8ac_hoisted_1 = ["type", "id", "name", "value"];
-var FieldNumbervue_type_template_id_4035c8ac_hoisted_2 = ["for", "innerHTML"];
-function FieldNumbervue_type_template_id_4035c8ac_render(_ctx, _cache, $props, $setup, $data, $options) {
+var FieldNumbervue_type_template_id_b6f05a1e_hoisted_1 = ["type", "id", "name", "value"];
+var FieldNumbervue_type_template_id_b6f05a1e_hoisted_2 = ["for", "innerHTML"];
+function FieldNumbervue_type_template_id_b6f05a1e_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
class: "control_".concat(_ctx.uiControl),
type: _ctx.uiControl,
id: _ctx.name,
name: _ctx.name,
- value: (_ctx.modelValue || '0').toString(),
+ value: _ctx.modelValueFormatted,
onKeydown: _cache[0] || (_cache[0] = function ($event) {
return _ctx.onChange($event);
}),
onChange: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onChange($event);
})
- }, _ctx.uiControlAttributes), null, 16, FieldNumbervue_type_template_id_4035c8ac_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+ }, _ctx.uiControlAttributes), null, 16, FieldNumbervue_type_template_id_b6f05a1e_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldNumbervue_type_template_id_4035c8ac_hoisted_2)], 64);
+ }, null, 8, FieldNumbervue_type_template_id_b6f05a1e_hoisted_2)], 64);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=template&id=4035c8ac
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=template&id=b6f05a1e
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=script&lang=ts
@@ -831,11 +830,17 @@ function FieldNumbervue_type_template_id_4035c8ac_render(_ctx, _cache, $props, $
},
methods: {
onChange: function onChange(event) {
- var value = parseFloat(event.target.value); // change to previous value so the parent component can determine if this change should
- // go through
+ var _this = this;
- event.target.value = (this.modelValue || '').toString();
+ var value = parseFloat(event.target.value);
this.$emit('update:modelValue', value);
+ Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
+ if (event.target.value !== _this.modelValueFormatted) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ event.target.value = _this.modelValueFormatted;
+ }
+ });
}
},
mounted: function mounted() {
@@ -847,6 +852,11 @@ function FieldNumbervue_type_template_id_4035c8ac_render(_ctx, _cache, $props, $
window.Materialize.updateTextFields();
});
}
+ },
+ computed: {
+ modelValueFormatted: function modelValueFormatted() {
+ return (this.modelValue || '').toString();
+ }
}
}));
// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue?vue&type=script&lang=ts
@@ -855,7 +865,7 @@ function FieldNumbervue_type_template_id_4035c8ac_render(_ctx, _cache, $props, $
-FieldNumbervue_type_script_lang_ts.render = FieldNumbervue_type_template_id_4035c8ac_render
+FieldNumbervue_type_script_lang_ts.render = FieldNumbervue_type_template_id_b6f05a1e_render
/* harmony default export */ var FieldNumber = (FieldNumbervue_type_script_lang_ts);
// 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/CorePluginsAdmin/vue/src/FormField/FieldRadio.vue?vue&type=template&id=37349c90
@@ -931,37 +941,37 @@ function FieldRadiovue_type_template_id_37349c90_render(_ctx, _cache, $props, $s
FieldRadiovue_type_script_lang_ts.render = FieldRadiovue_type_template_id_37349c90_render
/* harmony default export */ var FieldRadio = (FieldRadiovue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue?vue&type=template&id=1f753a86
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || FieldSelectvue_type_template_id_1f753a86_unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+// 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/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue?vue&type=template&id=7eeb6fac
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || FieldSelectvue_type_template_id_7eeb6fac_unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { 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 FieldSelectvue_type_template_id_1f753a86_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return FieldSelectvue_type_template_id_1f753a86_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return FieldSelectvue_type_template_id_1f753a86_arrayLikeToArray(o, minLen); }
+function FieldSelectvue_type_template_id_7eeb6fac_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return FieldSelectvue_type_template_id_7eeb6fac_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return FieldSelectvue_type_template_id_7eeb6fac_arrayLikeToArray(o, minLen); }
-function FieldSelectvue_type_template_id_1f753a86_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+function FieldSelectvue_type_template_id_7eeb6fac_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-var FieldSelectvue_type_template_id_1f753a86_hoisted_1 = {
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_1 = {
key: 0,
class: "matomo-field-select"
};
-var FieldSelectvue_type_template_id_1f753a86_hoisted_2 = ["multiple", "name"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_3 = ["label"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_4 = ["value", "selected", "disabled"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_5 = ["for", "innerHTML"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_6 = {
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_2 = ["multiple", "name"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_3 = ["label"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_4 = ["value", "selected", "disabled"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_5 = ["for", "innerHTML"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_6 = {
key: 1,
class: "matomo-field-select"
};
-var FieldSelectvue_type_template_id_1f753a86_hoisted_7 = ["multiple", "name"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_8 = ["value", "selected", "disabled"];
-var FieldSelectvue_type_template_id_1f753a86_hoisted_9 = ["for", "innerHTML"];
-function FieldSelectvue_type_template_id_1f753a86_render(_ctx, _cache, $props, $setup, $data, $options) {
- return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, [_ctx.groupedOptions ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldSelectvue_type_template_id_1f753a86_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("select", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_7 = ["multiple", "name"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_8 = ["value", "selected", "disabled"];
+var FieldSelectvue_type_template_id_7eeb6fac_hoisted_9 = ["for", "innerHTML"];
+function FieldSelectvue_type_template_id_7eeb6fac_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, [_ctx.groupedOptions ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldSelectvue_type_template_id_7eeb6fac_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("select", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
ref: "select",
class: "grouped",
multiple: _ctx.multiple,
@@ -983,12 +993,12 @@ function FieldSelectvue_type_template_id_1f753a86_render(_ctx, _cache, $props, $
value: "string:".concat(option.key),
selected: _ctx.multiple ? _ctx.modelValue && _ctx.modelValue.indexOf(option.key) !== -1 : _ctx.modelValue === option.key,
disabled: option.disabled
- }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.value), 9, FieldSelectvue_type_template_id_1f753a86_hoisted_4);
- }), 128))], 8, FieldSelectvue_type_template_id_1f753a86_hoisted_3);
- }), 128))], 16, FieldSelectvue_type_template_id_1f753a86_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+ }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.value), 9, FieldSelectvue_type_template_id_7eeb6fac_hoisted_4);
+ }), 128))], 8, FieldSelectvue_type_template_id_7eeb6fac_hoisted_3);
+ }), 128))], 16, FieldSelectvue_type_template_id_7eeb6fac_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldSelectvue_type_template_id_1f753a86_hoisted_5)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.groupedOptions && _ctx.options ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldSelectvue_type_template_id_1f753a86_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("select", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
+ }, null, 8, FieldSelectvue_type_template_id_7eeb6fac_hoisted_5)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.groupedOptions && _ctx.options ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldSelectvue_type_template_id_7eeb6fac_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("select", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
class: "ungrouped",
ref: "select",
multiple: _ctx.multiple,
@@ -1002,13 +1012,13 @@ function FieldSelectvue_type_template_id_1f753a86_render(_ctx, _cache, $props, $
value: "string:".concat(option.key),
selected: _ctx.multiple ? _ctx.modelValue && _ctx.modelValue.indexOf(option.key) !== -1 : _ctx.modelValue === option.key,
disabled: option.disabled
- }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.value), 9, FieldSelectvue_type_template_id_1f753a86_hoisted_8);
- }), 128))], 16, FieldSelectvue_type_template_id_1f753a86_hoisted_7), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+ }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.value), 9, FieldSelectvue_type_template_id_7eeb6fac_hoisted_8);
+ }), 128))], 16, FieldSelectvue_type_template_id_7eeb6fac_hoisted_7), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldSelectvue_type_template_id_1f753a86_hoisted_9)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 64);
+ }, null, 8, FieldSelectvue_type_template_id_7eeb6fac_hoisted_9)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 64);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue?vue&type=template&id=1f753a86
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue?vue&type=template&id=7eeb6fac
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue?vue&type=script&lang=ts
function FieldSelectvue_type_script_lang_ts_toConsumableArray(arr) { return FieldSelectvue_type_script_lang_ts_arrayWithoutHoles(arr) || FieldSelectvue_type_script_lang_ts_iterableToArray(arr) || FieldSelectvue_type_script_lang_ts_unsupportedIterableToArray(arr) || FieldSelectvue_type_script_lang_ts_nonIterableSpread(); }
@@ -1279,7 +1289,7 @@ function handleOldAngularJsValues(value) {
-FieldSelectvue_type_script_lang_ts.render = FieldSelectvue_type_template_id_1f753a86_render
+FieldSelectvue_type_script_lang_ts.render = FieldSelectvue_type_template_id_7eeb6fac_render
/* harmony default export */ var FieldSelect = (FieldSelectvue_type_script_lang_ts);
// 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/CorePluginsAdmin/vue/src/FormField/FieldSite.vue?vue&type=template&id=50ac73cc
@@ -1339,11 +1349,11 @@ function FieldSitevue_type_template_id_50ac73cc_render(_ctx, _cache, $props, $se
FieldSitevue_type_script_lang_ts.render = FieldSitevue_type_template_id_50ac73cc_render
/* harmony default export */ var FieldSite = (FieldSitevue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldText.vue?vue&type=template&id=71eb4e7e
+// 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/CorePluginsAdmin/vue/src/FormField/FieldText.vue?vue&type=template&id=66d5a68a
-var FieldTextvue_type_template_id_71eb4e7e_hoisted_1 = ["type", "id", "name", "value"];
-var FieldTextvue_type_template_id_71eb4e7e_hoisted_2 = ["for", "innerHTML"];
-function FieldTextvue_type_template_id_71eb4e7e_render(_ctx, _cache, $props, $setup, $data, $options) {
+var FieldTextvue_type_template_id_66d5a68a_hoisted_1 = ["type", "id", "name", "value"];
+var FieldTextvue_type_template_id_66d5a68a_hoisted_2 = ["for", "innerHTML"];
+function FieldTextvue_type_template_id_66d5a68a_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
class: "control_".concat(_ctx.uiControl),
type: _ctx.uiControl,
@@ -1356,12 +1366,12 @@ function FieldTextvue_type_template_id_71eb4e7e_render(_ctx, _cache, $props, $se
onChange: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onKeydown($event);
})
- }, _ctx.uiControlAttributes), null, 16, FieldTextvue_type_template_id_71eb4e7e_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+ }, _ctx.uiControlAttributes), null, 16, FieldTextvue_type_template_id_66d5a68a_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldTextvue_type_template_id_71eb4e7e_hoisted_2)], 64);
+ }, null, 8, FieldTextvue_type_template_id_66d5a68a_hoisted_2)], 64);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue?vue&type=template&id=71eb4e7e
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue?vue&type=template&id=66d5a68a
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue?vue&type=script&lang=ts
@@ -1403,13 +1413,19 @@ function FieldTextvue_type_template_id_71eb4e7e_render(_ctx, _cache, $props, $se
},
methods: {
onKeydown: function onKeydown(event) {
+ var _this = this;
+
var newValue = event.target.value;
if (this.modelValue !== newValue) {
- // change to previous value so the parent component can determine if this change should
- // go through
- event.target.value = this.modelValueText;
this.$emit('update:modelValue', newValue);
+ Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
+ if (event.target.value !== _this.modelValueText) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ event.target.value = _this.modelValueText;
+ }
+ });
}
}
}
@@ -1420,18 +1436,18 @@ function FieldTextvue_type_template_id_71eb4e7e_render(_ctx, _cache, $props, $se
-FieldTextvue_type_script_lang_ts.render = FieldTextvue_type_template_id_71eb4e7e_render
+FieldTextvue_type_script_lang_ts.render = FieldTextvue_type_template_id_66d5a68a_render
/* harmony default export */ var FieldText = (FieldTextvue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue?vue&type=template&id=50c28130
+// 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/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue?vue&type=template&id=2c4e387e
-var FieldTextArrayvue_type_template_id_50c28130_hoisted_1 = ["for", "innerHTML"];
-var FieldTextArrayvue_type_template_id_50c28130_hoisted_2 = ["type", "name", "value"];
-function FieldTextArrayvue_type_template_id_50c28130_render(_ctx, _cache, $props, $setup, $data, $options) {
+var FieldTextArrayvue_type_template_id_2c4e387e_hoisted_1 = ["for", "innerHTML"];
+var FieldTextArrayvue_type_template_id_2c4e387e_hoisted_2 = ["type", "name", "value"];
+function FieldTextArrayvue_type_template_id_2c4e387e_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldTextArrayvue_type_template_id_50c28130_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
+ }, null, 8, FieldTextArrayvue_type_template_id_2c4e387e_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
class: "control_".concat(_ctx.uiControl),
type: _ctx.uiControl,
name: _ctx.name,
@@ -1442,9 +1458,9 @@ function FieldTextArrayvue_type_template_id_50c28130_render(_ctx, _cache, $props
return _ctx.onKeydown($event);
}),
value: _ctx.concattedValues
- }, _ctx.uiControlAttributes), null, 16, FieldTextArrayvue_type_template_id_50c28130_hoisted_2)]);
+ }, _ctx.uiControlAttributes), null, 16, FieldTextArrayvue_type_template_id_2c4e387e_hoisted_2)]);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue?vue&type=template&id=50c28130
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue?vue&type=template&id=2c4e387e
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue?vue&type=script&lang=ts
@@ -1474,15 +1490,21 @@ function FieldTextArrayvue_type_template_id_50c28130_render(_ctx, _cache, $props
},
methods: {
onKeydown: function onKeydown(event) {
+ var _this = this;
+
var values = event.target.value.split(',').map(function (v) {
return v.trim();
});
if (values.join(', ') !== this.concattedValues) {
- // change to previous value so the parent component can determine if this change should
- // go through
- event.target.value = this.concattedValues;
this.$emit('update:modelValue', values);
+ Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
+ if (event.target.value !== _this.concattedValues) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ event.target.value = _this.concattedValues;
+ }
+ });
}
}
}
@@ -1493,19 +1515,19 @@ function FieldTextArrayvue_type_template_id_50c28130_render(_ctx, _cache, $props
-FieldTextArrayvue_type_script_lang_ts.render = FieldTextArrayvue_type_template_id_50c28130_render
+FieldTextArrayvue_type_script_lang_ts.render = FieldTextArrayvue_type_template_id_2c4e387e_render
/* harmony default export */ var FieldTextArray = (FieldTextArrayvue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue?vue&type=template&id=b3b8d82a
+// 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/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue?vue&type=template&id=48b83e34
-var FieldTextareavue_type_template_id_b3b8d82a_hoisted_1 = ["name", "id", "value"];
-var FieldTextareavue_type_template_id_b3b8d82a_hoisted_2 = ["for", "innerHTML"];
-function FieldTextareavue_type_template_id_b3b8d82a_render(_ctx, _cache, $props, $setup, $data, $options) {
+var FieldTextareavue_type_template_id_48b83e34_hoisted_1 = ["name", "id", "value"];
+var FieldTextareavue_type_template_id_48b83e34_hoisted_2 = ["for", "innerHTML"];
+function FieldTextareavue_type_template_id_48b83e34_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("textarea", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
name: _ctx.name
}, _ctx.uiControlAttributes, {
id: _ctx.name,
- value: _ctx.modelValue,
+ value: _ctx.modelValueText,
onKeydown: _cache[0] || (_cache[0] = function ($event) {
return _ctx.onKeydown($event);
}),
@@ -1514,12 +1536,12 @@ function FieldTextareavue_type_template_id_b3b8d82a_render(_ctx, _cache, $props,
}),
class: "materialize-textarea",
ref: "textarea"
- }), null, 16, FieldTextareavue_type_template_id_b3b8d82a_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
+ }), null, 16, FieldTextareavue_type_template_id_48b83e34_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldTextareavue_type_template_id_b3b8d82a_hoisted_2)], 64);
+ }, null, 8, FieldTextareavue_type_template_id_48b83e34_hoisted_2)], 64);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue?vue&type=template&id=b3b8d82a
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue?vue&type=template&id=48b83e34
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue?vue&type=script&lang=ts
@@ -1538,28 +1560,42 @@ function FieldTextareavue_type_template_id_b3b8d82a_render(_ctx, _cache, $props,
},
methods: {
onKeydown: function onKeydown(event) {
+ var _this = this;
+
var newValue = event.target.value; // change to previous value so the parent component can determine if this change should
// go through
- event.target.value = this.modelValue || '';
+ event.target.value = this.modelValueText;
this.$emit('update:modelValue', newValue);
+ Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
+ if (event.target.value !== _this.modelValueText) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ event.target.value = _this.modelValueText;
+ }
+ });
+ }
+ },
+ computed: {
+ modelValueText: function modelValueText() {
+ return this.modelValue || '';
}
},
watch: {
modelValue: function modelValue() {
- var _this = this;
+ var _this2 = this;
setTimeout(function () {
- window.Materialize.textareaAutoResize(_this.$refs.textarea);
+ window.Materialize.textareaAutoResize(_this2.$refs.textarea);
window.Materialize.updateTextFields();
});
}
},
mounted: function mounted() {
- var _this2 = this;
+ var _this3 = this;
setTimeout(function () {
- window.Materialize.textareaAutoResize(_this2.$refs.textarea);
+ window.Materialize.textareaAutoResize(_this3.$refs.textarea);
window.Materialize.updateTextFields();
});
}
@@ -1570,18 +1606,18 @@ function FieldTextareavue_type_template_id_b3b8d82a_render(_ctx, _cache, $props,
-FieldTextareavue_type_script_lang_ts.render = FieldTextareavue_type_template_id_b3b8d82a_render
+FieldTextareavue_type_script_lang_ts.render = FieldTextareavue_type_template_id_48b83e34_render
/* harmony default export */ var FieldTextarea = (FieldTextareavue_type_script_lang_ts);
-// 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/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue?vue&type=template&id=45372d69
+// 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/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue?vue&type=template&id=49060005
-var FieldTextareaArrayvue_type_template_id_45372d69_hoisted_1 = ["for", "innerHTML"];
-var FieldTextareaArrayvue_type_template_id_45372d69_hoisted_2 = ["name", "value"];
-function FieldTextareaArrayvue_type_template_id_45372d69_render(_ctx, _cache, $props, $setup, $data, $options) {
+var FieldTextareaArrayvue_type_template_id_49060005_hoisted_1 = ["for", "innerHTML"];
+var FieldTextareaArrayvue_type_template_id_49060005_hoisted_2 = ["name", "value"];
+function FieldTextareaArrayvue_type_template_id_49060005_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
for: _ctx.name,
innerHTML: _ctx.$sanitize(_ctx.title)
- }, null, 8, FieldTextareaArrayvue_type_template_id_45372d69_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("textarea", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
+ }, null, 8, FieldTextareaArrayvue_type_template_id_49060005_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("textarea", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["mergeProps"])({
ref: "textarea",
name: _ctx.name
}, _ctx.uiControlAttributes, {
@@ -1593,9 +1629,9 @@ function FieldTextareaArrayvue_type_template_id_45372d69_render(_ctx, _cache, $p
return _ctx.onKeydown($event);
}),
class: "materialize-textarea"
- }), null, 16, FieldTextareaArrayvue_type_template_id_45372d69_hoisted_2)]);
+ }), null, 16, FieldTextareaArrayvue_type_template_id_49060005_hoisted_2)]);
}
-// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue?vue&type=template&id=45372d69
+// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue?vue&type=template&id=49060005
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue?vue&type=script&lang=ts
@@ -1624,24 +1660,30 @@ var SEPARATOR = '\n';
},
methods: {
onKeydown: function onKeydown(event) {
+ var _this = this;
+
var value = event.target.value.split(SEPARATOR);
if (value.join(SEPARATOR) !== this.concattedValue) {
- // change to previous value so the parent component can determine if this change should
- // go through
- event.target.value = this.concattedValue;
this.$emit('update:modelValue', value);
+ Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
+ if (event.target.value !== _this.concattedValue) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ event.target.value = _this.concattedValue;
+ }
+ });
}
}
},
watch: {
modelValue: function modelValue(newVal, oldVal) {
- var _this = this;
+ var _this2 = this;
if (newVal !== oldVal) {
setTimeout(function () {
- if (_this.$refs.textarea) {
- window.Materialize.textareaAutoResize(_this.$refs.textarea);
+ if (_this2.$refs.textarea) {
+ window.Materialize.textareaAutoResize(_this2.$refs.textarea);
}
window.Materialize.updateTextFields();
@@ -1650,11 +1692,11 @@ var SEPARATOR = '\n';
}
},
mounted: function mounted() {
- var _this2 = this;
+ var _this3 = this;
setTimeout(function () {
- if (_this2.$refs.textarea) {
- window.Materialize.textareaAutoResize(_this2.$refs.textarea);
+ if (_this3.$refs.textarea) {
+ window.Materialize.textareaAutoResize(_this3.$refs.textarea);
}
window.Materialize.updateTextFields();
@@ -1667,7 +1709,7 @@ var SEPARATOR = '\n';
-FieldTextareaArrayvue_type_script_lang_ts.render = FieldTextareaArrayvue_type_template_id_45372d69_render
+FieldTextareaArrayvue_type_script_lang_ts.render = FieldTextareaArrayvue_type_template_id_49060005_render
/* harmony default export */ var FieldTextareaArray = (FieldTextareaArrayvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CorePluginsAdmin/vue/src/FormField/utilities.ts
diff --git a/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.min.js b/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.min.js
index 44cf7b9095..2117d1636f 100644
--- a/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.min.js
+++ b/plugins/CorePluginsAdmin/vue/dist/CorePluginsAdmin.umd.min.js
@@ -1,10 +1,10 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue")):"function"===typeof define&&define.amd?define(["CoreHome"],t):"object"===typeof exports?exports["CorePluginsAdmin"]=t(require("CoreHome"),require("vue")):e["CorePluginsAdmin"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CorePluginsAdmin/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"FormField",(function(){return Gt})),n.d(t,"Field",(function(){return en})),n.d(t,"PluginSettings",(function(){return Mn})),n.d(t,"PluginFilter",(function(){return io})),n.d(t,"PluginManagement",(function(){return In})),n.d(t,"PluginUpload",(function(){return qn})),n.d(t,"SaveButton",(function(){return so})),n.d(t,"Form",(function(){return po})),n.d(t,"GroupedSettings",(function(){return Sn})),"undefined"!==typeof window){var o=window.document.currentScript,i=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}var r=n("19dc"),l=n("8bbf"),a={class:"form-group row matomo-form-field"},u={key:0,class:"col s12"},c={key:0,class:"form-help"},s={key:0,class:"inline-help",ref:"inlineHelp"},d=Object(l["createElementVNode"])("br",null,null,-1);function m(e,t,n,o,i,r){return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",a,[e.formField.introduction?(Object(l["openBlock"])(),Object(l["createElementBlock"])("h3",u,Object(l["toDisplayString"])(e.formField.introduction),1)):Object(l["createCommentVNode"])("",!0),Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])(["col s12",{"input-field":"checkbox"!==e.formField.uiControl&&"radio"!==e.formField.uiControl,"file-field":"file"===e.formField.uiControl,m6:!e.formField.fullWidth}])},[(Object(l["openBlock"])(),Object(l["createBlock"])(Object(l["resolveDynamicComponent"])(e.childComponent),Object(l["mergeProps"])(Object.assign(Object.assign({formField:e.formField},e.formField),{},{modelValue:e.processedModelValue,availableOptions:e.availableOptions},e.extraChildComponentParams),{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onChange(t)})}),null,16))],2),Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])(["col s12",{m6:!e.formField.fullWidth}])},[e.showFormHelp?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",c,[Object(l["withDirectives"])(Object(l["createElementVNode"])("div",{class:"form-description"},Object(l["toDisplayString"])(e.formField.description),513),[[l["vShow"],e.formField.description]]),e.formField.inlineHelp||e.hasInlineHelpSlot?(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",s,[e.inlineHelpComponent?(Object(l["openBlock"])(),Object(l["createBlock"])(Object(l["resolveDynamicComponent"])(e.inlineHelpComponent),Object(l["normalizeProps"])(Object(l["mergeProps"])({key:0},e.inlineHelpBind)),null,16)):Object(l["createCommentVNode"])("",!0),Object(l["renderSlot"])(e.$slots,"inline-help")],512)):Object(l["createCommentVNode"])("",!0),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",null,[d,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Default"))+": ",1),Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(e.defaultValuePrettyTruncated),1)],512),[[l["vShow"],e.showDefaultValue]])])):Object(l["createCommentVNode"])("",!0)],2)],512)),[[l["vShow"],e.showField]])}var f={class:"checkbox"},p=["checked","id","name"],b=["innerHTML"];function v(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",f,[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},e.uiControlAttributes,{value:1,checked:e.isChecked,type:"checkbox",id:e.name,name:e.name}),null,16,p),Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.title)},null,8,b)])])}var h=Object(l["defineComponent"])({props:{modelValue:[Boolean,Number,String],uiControlAttributes:Object,name:String,title:String},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){var t=e.target.checked;this.modelValue!==t&&(e.target.checked=!t,this.$emit("update:modelValue",t))}},computed:{isChecked:function(){return!!this.modelValue&&"0"!==this.modelValue}}});h.render=v;var g=h,O={ref:"root"},y=["value","checked","onChange","id","name"];function j(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",O,[Object(l["withDirectives"])(Object(l["createElementVNode"])("label",{class:"fieldRadioTitle"},Object(l["toDisplayString"])(e.title),513),[[l["vShow"],e.title]]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions,(function(t,n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("p",{key:n,class:"checkbox"},[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({value:t.key,checked:!!e.checkboxStates[n],onChange:function(t){return e.onChange(n)}},e.uiControlAttributes,{type:"checkbox",id:"".concat(e.name).concat(t.key),name:t.name}),null,16,y),Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(t.value),1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{class:"form-description"},Object(l["toDisplayString"])(t.description),513),[[l["vShow"],t.description]])])])})),128))],512)}function V(e){return k(e)||S(e)||C(e)||w()}function w(){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 C(e,t){if(e){if("string"===typeof e)return A(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)?A(e,t):void 0}}function S(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function k(e){if(Array.isArray(e))return A(e)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function F(e,t){return(e||[]).map((function(e){return t&&-1!==t.indexOf(e.key)}))}var B=Object(l["defineComponent"])({props:{modelValue:Array,name:String,title:String,availableOptions:Array,uiControlAttributes:Object,type:String},inheritAttrs:!1,emits:["update:modelValue"],computed:{checkboxStates:function(){return F(this.availableOptions,this.modelValue)}},mounted:function(){window.Materialize.updateTextFields()},methods:{onChange:function(e){var t=V(this.checkboxStates);t[e]=!t[e];var n=this.availableOptions||{},o=[];Object.values(n).forEach((function(e,n){t[n]&&o.push(e.key)})),this.$refs.root.querySelectorAll("input").forEach((function(e){e.checked=!e.checked})),this.$emit("update:modelValue",o)}}});B.render=j;var E=B,x={class:"expandableSelector"},N=Object(l["createElementVNode"])("svg",{class:"caret",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},[Object(l["createElementVNode"])("path",{d:"M7 10l5 5 5-5z"}),Object(l["createElementVNode"])("path",{d:"M0 0h24v24H0z",fill:"none"})],-1),T=["value"],$={class:"expandableList z-depth-2"},M={class:"searchContainer"},P={class:"collection firstLevel"},J=["onClick"],H={class:"collection secondLevel"},D=["onClick"],I={class:"primary-content"},L=["title"];function z(e,t,n,o,i,r){var a=Object(l["resolveDirective"])("focus-if"),u=Object(l["resolveDirective"])("focus-anywhere-but-here");return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",x,[Object(l["createElementVNode"])("div",{onClick:t[0]||(t[0]=function(t){return e.showSelect=!e.showSelect}),class:"select-wrapper"},[N,Object(l["createElementVNode"])("input",{type:"text",class:"select-dropdown",readonly:"readonly",value:e.modelValueText},null,8,T)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",$,[Object(l["createElementVNode"])("div",M,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"text",placeholder:"Search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"expandableSearch browser-default"},null,512),[[l["vModelText"],e.searchTerm],[a,e.showSelect]])]),Object(l["createElementVNode"])("ul",P,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions,(function(t,n){return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("li",{class:"collection-item",key:n},[Object(l["createElementVNode"])("h4",{class:"expandableListCategory",onClick:function(n){return e.onCategoryClicked(t)}},[Object(l["createTextVNode"])(Object(l["toDisplayString"])(t.group)+" ",1),Object(l["createElementVNode"])("span",{class:Object(l["normalizeClass"])(["secondary-content",{"icon-arrow-right":e.showCategory!==t.group,"icon-arrow-bottom":e.showCategory===t.group}])},null,2)],8,J),Object(l["withDirectives"])(Object(l["createElementVNode"])("ul",H,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(t.values.filter((function(t){return-1!==t.value.toLowerCase().indexOf(e.searchTerm.toLowerCase())})),(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("li",{class:"expandableListItem collection-item valign-wrapper",key:t.key,onClick:function(n){return e.onValueClicked(t)}},[Object(l["createElementVNode"])("span",I,Object(l["toDisplayString"])(t.value),1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{title:t.tooltip,class:"secondary-content icon-help"},null,8,L),[[l["vShow"],t.tooltip]])],8,D)})),128))],512),[[l["vShow"],e.showCategory===t.group||e.searchTerm]])],512)),[[l["vShow"],t.values.filter((function(t){return-1!==t.value.toLowerCase().indexOf(e.searchTerm.toLowerCase())})).length]])})),128))])],512),[[l["vShow"],e.showSelect]])],512)),[[u,{blur:e.onBlur}]])}function U(e){var t=[];if(!e)return t;var n={};return Object.values(e).forEach((function(e){var t=e,o=t.group||"";o in n&&n[o]||(n[o]={values:[],group:o});var i={key:t.key,value:t.value};"tooltip"in t&&t.tooltip&&(i.tooltip=t.tooltip),n[o].values.push(i)})),Object.values(n).forEach((function(e){e.values.length&&t.push(e)})),t}var K=Object(l["defineComponent"])({props:{modelValue:[Number,String],availableOptions:Array,title:String},directives:{FocusAnywhereButHere:r["FocusAnywhereButHere"],FocusIf:r["FocusIf"]},inheritAttrs:!1,emits:["update:modelValue"],data:function(){return{showSelect:!1,searchTerm:"",showCategory:""}},computed:{modelValueText:function(){if(this.title)return this.title;var e,t=this.modelValue,n=this.availableOptions||[];return n.some((function(n){return e=n.values.find((function(e){return e.key===t})),e})),e?e.value?"".concat(e.value):"":t?"".concat(t):""}},methods:{onBlur:function(){this.showSelect=!1},onCategoryClicked:function(e){this.showCategory===e.group?this.showCategory="":this.showCategory=e.group},onValueClicked:function(e){this.$emit("update:modelValue",e.key),this.showSelect=!1}}});K.render=z;var _=K,q=["for","innerHTML"];function R(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("FieldArray");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,q),Object(l["createVNode"])(a,{name:e.name,"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onValueUpdate(t)}),field:e.uiControlAttributes.field},null,8,["name","model-value","field"])])}var G=Object(l["defineComponent"])({components:{FieldArray:r["FieldArray"]},props:{name:String,title:String,modelValue:null,uiControlAttributes:Object},inheritAttrs:!1,emits:["update:modelValue"],methods:{onValueUpdate:function(e){this.$emit("update:modelValue",e)}}});G.render=R;var W=G,Z={class:"btn"},Y=["for","innerHTML"],Q=["name","id"],X={class:"file-path-wrapper"},ee=["value"];function te(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("div",Z,[Object(l["createElementVNode"])("span",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Y),Object(l["createElementVNode"])("input",{ref:"fileInput",name:e.name,type:"file",id:e.name,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},null,40,Q)]),Object(l["createElementVNode"])("div",X,[Object(l["createElementVNode"])("input",{class:"file-path validate",value:e.filePath,type:"text"},null,8,ee)])])}var ne=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:[String,File]},inheritAttrs:!1,emits:["update:modelValue"],watch:{modelValue:function(e){if(!e||""===e){var t=this.$refs.fileInput;t.value=""}}},methods:{onChange:function(e){var t=e.target.files;if(t){var n=t.item(0);this.$emit("update:modelValue",n)}}},computed:{filePath:function(){if(this.modelValue instanceof File)return this.$refs.fileInput.value}}});ne.render=te;var oe=ne,ie=["type","name","value"];function re(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("input",{type:e.uiControl,name:e.name,value:e.modelValue,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},null,40,ie)])}var le=Object(l["defineComponent"])({props:{modelValue:null,uiControl:String,name:String},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){this.$emit("update:modelValue",e.target.value)}}});le.render=re;var ae=le,ue={class:"fieldMultiTuple"},ce=["for","innerHTML"];function se(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("MultiPairField");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ue,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ce),Object(l["createVNode"])(a,{name:e.name,"model-value":e.modelValue,"onUpdate:modelValue":e.onUpdateValue,field1:e.uiControlAttributes.field1,field2:e.uiControlAttributes.field2,field3:e.uiControlAttributes.field3,field4:e.uiControlAttributes.field4},null,8,["name","model-value","onUpdate:modelValue","field1","field2","field3","field4"])])}var de=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:null,uiControlAttributes:Object},inheritAttrs:!1,components:{MultiPairField:r["MultiPairField"]},emits:["update:modelValue"],methods:{onUpdateValue:function(e){this.$emit("update:modelValue",e)}}});de.render=se;var me=de,fe=["type","id","name","value"],pe=["for","innerHTML"];function be(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,id:e.name,name:e.name,value:(e.modelValue||"0").toString(),onKeydown:t[0]||(t[0]=function(t){return e.onChange(t)}),onChange:t[1]||(t[1]=function(t){return e.onChange(t)})},e.uiControlAttributes),null,16,fe),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,pe)],64)}var ve=Object(l["defineComponent"])({props:{uiControl:String,name:String,title:String,modelValue:[Number,String],uiControlAttributes:Object},inheritAttrs:!1,emits:["update:modelValue"],created:function(){this.onChange=Object(r["debounce"])(this.onChange.bind(this),50)},methods:{onChange:function(e){var t=parseFloat(e.target.value);e.target.value=(this.modelValue||"").toString(),this.$emit("update:modelValue",t)}},mounted:function(){window.Materialize.updateTextFields()},watch:{modelValue:function(){setTimeout((function(){window.Materialize.updateTextFields()}))}}});ve.render=be;var he=ve,ge={ref:"root"},Oe=["value","id","name","disabled","checked"];function ye(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ge,[Object(l["withDirectives"])(Object(l["createElementVNode"])("label",{class:"fieldRadioTitle"},Object(l["toDisplayString"])(e.title),513),[[l["vShow"],e.title]]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions||[],(function(n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("p",{key:n.key,class:"radio"},[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({value:n.key,onChange:t[0]||(t[0]=function(t){return e.onChange(t)}),type:"radio",id:"".concat(e.name).concat(n.key),name:e.name,disabled:n.disabled||e.disabled},e.uiControlAttributes,{checked:e.modelValue===n.key||"".concat(e.modelValue)===n.key}),null,16,Oe),Object(l["createElementVNode"])("span",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(n.value)+" ",1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{class:"form-description"},Object(l["toDisplayString"])(n.description),513),[[l["vShow"],n.description]])])])])})),128))],512)}var je=Object(l["defineComponent"])({props:{title:String,availableOptions:Array,name:String,disabled:Boolean,uiControlAttributes:Object,modelValue:[String,Number]},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){var t=this;this.$refs.root.querySelectorAll("input").forEach((function(e,n){var o;if(null!==(o=t.availableOptions)&&void 0!==o&&o[n]){var i=t.availableOptions[n].key;e.checked=t.modelValue===i||"".concat(t.modelValue)===i}})),this.$emit("update:modelValue",e.target.value)}}});je.render=ye;var Ve=je;function we(e,t){return Fe(e)||Ae(e,t)||Se(e,t)||Ce()}function Ce(){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 Se(e,t){if(e){if("string"===typeof e)return ke(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)?ke(e,t):void 0}}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ae(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Fe(e){if(Array.isArray(e))return e}var Be={key:0,class:"matomo-field-select"},Ee=["multiple","name"],xe=["label"],Ne=["value","selected","disabled"],Te=["for","innerHTML"],$e={key:1,class:"matomo-field-select"},Me=["multiple","name"],Pe=["value","selected","disabled"],Je=["for","innerHTML"];function He(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[e.groupedOptions?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",Be,[Object(l["createElementVNode"])("select",Object(l["mergeProps"])({ref:"select",class:"grouped",multiple:e.multiple,name:e.name,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},e.uiControlAttributes),[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.groupedOptions,(function(t){var n=we(t,2),o=n[0],i=n[1];return Object(l["openBlock"])(),Object(l["createElementBlock"])("optgroup",{key:o,label:o},[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(i,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("option",{key:t.key,value:"string:".concat(t.key),selected:e.multiple?e.modelValue&&-1!==e.modelValue.indexOf(t.key):e.modelValue===t.key,disabled:t.disabled},Object(l["toDisplayString"])(t.value),9,Ne)})),128))],8,xe)})),128))],16,Ee),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Te)])):Object(l["createCommentVNode"])("",!0),!e.groupedOptions&&e.options?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",$e,[Object(l["createElementVNode"])("select",Object(l["mergeProps"])({class:"ungrouped",ref:"select",multiple:e.multiple,name:e.name,onChange:t[1]||(t[1]=function(t){return e.onChange(t)})},e.uiControlAttributes),[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.options,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("option",{key:t.key,value:"string:".concat(t.key),selected:e.multiple?e.modelValue&&-1!==e.modelValue.indexOf(t.key):e.modelValue===t.key,disabled:t.disabled},Object(l["toDisplayString"])(t.value),9,Pe)})),128))],16,Me),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Je)])):Object(l["createCommentVNode"])("",!0)],64)}function De(e){return ze(e)||Le(e)||_e(e)||Ie()}function Ie(){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 Le(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ze(e){if(Array.isArray(e))return qe(e)}function Ue(e,t){return Ge(e)||Re(e,t)||_e(e,t)||Ke()}function Ke(){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 _e(e,t){if(e){if("string"===typeof e)return qe(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)?qe(e,t):void 0}}function qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Re(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Ge(e){if(Array.isArray(e))return e}function We(e){return We="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function Ze(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0;if(e){var r=window.$(e);if(Array.from(e.options).forEach((function(e){e.selected=i?!!t&&-1!==t.indexOf(e.value.replace(/^string:/,"")):"string:".concat(t)===e.value})),r.formSelect(o),n){var l=r.closest(".select-wrapper").find("input");l.attr("placeholder",n)}}}function Ye(e){return!Array.isArray(e)&&"object"===We(e)&&Object.values(e).some((function(e){return"object"===We(e)}))}function Qe(e,t){return e.some((function(e){return e.key===t}))}function Xe(e,t,n){if(!e)return[];var o=!0,i=e;Ye(i)||(i={"":e},o=!1);var r=[];return Object.entries(i).forEach((function(e){var n=Ue(e,2),i=n[0],l=n[1];Object.entries(l).forEach((function(e){var n=Ue(e,2),l=n[0],a=n[1];if(a&&"object"===We(a)&&"undefined"!==typeof a.key)r.push(a);else{var u=l;"integer"===t&&"string"===typeof l&&(u=parseInt(l,10)),r.push({group:o?i:void 0,key:u,value:a})}}))})),null!==n&&void 0!==n&&n.placeholder&&!Qe(r,"")?[{key:"",value:""}].concat(r):r}function et(e){return"string"===typeof e?e.replace(/^string:/,""):e}var tt=Object(l["defineComponent"])({props:{modelValue:null,multiple:Boolean,name:String,title:String,availableOptions:Array,uiControlAttributes:Object,uiControlOptions:Object},inheritAttrs:!1,emits:["update:modelValue"],computed:{options:function(){var e=this.availableOptions;return!e||Qe(e,"")||"undefined"!==typeof this.modelValue&&null!==this.modelValue&&""!==this.modelValue?e:[{key:"",value:this.modelValue,group:this.hasGroups?"":void 0}].concat(De(e))},hasGroups:function(){var e=this.availableOptions;return e&&e[0]&&"undefined"!==typeof e[0].group},groupedOptions:function(){var e=this.options;if(!this.hasGroups||!e)return null;var t={};e.forEach((function(e){var n=e.group;t[n]=t[n]||[],t[n].push(e)}));var n=Object.entries(t);return n.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),n}},methods:{onChange:function(e){var t,n=e.target;this.multiple?(t=Array.from(n.options).filter((function(e){return e.selected})).map((function(e){return e.value})),t=t.map((function(e){return et(e)}))):(t=n.value,t=et(t)),this.onModelValueChange(this.modelValue),this.$emit("update:modelValue",t)},onModelValueChange:function(e){var t=this;window.$(this.$refs.select).val(e),setTimeout((function(){var n;Ze(t.$refs.select,e,null===(n=t.uiControlAttributes)||void 0===n?void 0:n.placeholder,t.uiControlOptions,t.multiple)}))}},watch:{modelValue:function(e){this.onModelValueChange(e)},"uiControlAttributes.disabled":{handler:function(e,t){var n=this;setTimeout((function(){var o;e!==t&&Ze(n.$refs.select,n.modelValue,null===(o=n.uiControlAttributes)||void 0===o?void 0:o.placeholder,n.uiControlOptions,n.multiple)}))}},availableOptions:function(e,t){var n=this;e!==t&&setTimeout((function(){var e;Ze(n.$refs.select,n.modelValue,null===(e=n.uiControlAttributes)||void 0===e?void 0:e.placeholder,n.uiControlOptions,n.multiple)}))}},mounted:function(){var e=this;setTimeout((function(){var t;Ze(e.$refs.select,e.modelValue,null===(t=e.uiControlAttributes)||void 0===t?void 0:t.placeholder,e.uiControlOptions,e.multiple)}))}});tt.render=He;var nt=tt,ot=["for","innerHTML"],it={class:"sites_autocomplete"};function rt(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("SiteSelector");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,class:"siteSelectorLabel",innerHTML:e.$sanitize(e.title)},null,8,ot),Object(l["createElementVNode"])("div",it,[Object(l["createVNode"])(a,Object(l["mergeProps"])({"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onChange(t)}),id:e.name,"show-all-sites-item":e.uiControlAttributes.showAllSitesItem||!1,"switch-site-on-select":!1,"show-selected-site":!0,"only-sites-with-admin-access":e.uiControlAttributes.onlySitesWithAdminAccess||!1},e.uiControlAttributes),null,16,["model-value","id","show-all-sites-item","only-sites-with-admin-access"])])])}var lt=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:Object,uiControlAttributes:Object},inheritAttrs:!1,components:{SiteSelector:r["SiteSelector"]},emits:["update:modelValue"],methods:{onChange:function(e){this.$emit("update:modelValue",e)}}});lt.render=rt;var at=lt,ut=["type","id","name","value"],ct=["for","innerHTML"];function st(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,id:e.name,name:e.name,value:e.modelValueText,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)})},e.uiControlAttributes),null,16,ut),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ct)],64)}var dt=Object(l["defineComponent"])({props:{title:String,name:String,uiControlAttributes:Object,modelValue:[String,Number],uiControl:String},inheritAttrs:!1,emits:["update:modelValue"],computed:{modelValueText:function(){return"undefined"===typeof this.modelValue||null===this.modelValue?"":this.modelValue.toString()}},created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},mounted:function(){setTimeout((function(){window.Materialize.updateTextFields()}))},watch:{modelValue:function(){setTimeout((function(){window.Materialize.updateTextFields()}))}},methods:{onKeydown:function(e){var t=e.target.value;this.modelValue!==t&&(e.target.value=this.modelValueText,this.$emit("update:modelValue",t))}}});dt.render=st;var mt=dt,ft=["for","innerHTML"],pt=["type","name","value"];function bt(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ft),Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,name:e.name,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),value:e.concattedValues},e.uiControlAttributes),null,16,pt)])}var vt=Object(l["defineComponent"])({props:{name:String,title:String,uiControl:String,modelValue:Array,uiControlAttributes:Object},inheritAttrs:!1,computed:{concattedValues:function(){return"string"===typeof this.modelValue?this.modelValue:(this.modelValue||[]).join(", ")}},emits:["update:modelValue"],created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=e.target.value.split(",").map((function(e){return e.trim()}));t.join(", ")!==this.concattedValues&&(e.target.value=this.concattedValues,this.$emit("update:modelValue",t))}}});vt.render=bt;var ht=vt,gt=["name","id","value"],Ot=["for","innerHTML"];function yt(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("textarea",Object(l["mergeProps"])({name:e.name},e.uiControlAttributes,{id:e.name,value:e.modelValue,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),class:"materialize-textarea",ref:"textarea"}),null,16,gt),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Ot)],64)}var jt=Object(l["defineComponent"])({props:{name:String,uiControlAttributes:Object,modelValue:String,title:String},inheritAttrs:!1,emits:["update:modelValue"],created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=e.target.value;e.target.value=this.modelValue||"",this.$emit("update:modelValue",t)}},watch:{modelValue:function(){var e=this;setTimeout((function(){window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}},mounted:function(){var e=this;setTimeout((function(){window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}});jt.render=yt;var Vt=jt,wt=["for","innerHTML"],Ct=["name","value"];function St(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,wt),Object(l["createElementVNode"])("textarea",Object(l["mergeProps"])({ref:"textarea",name:e.name},e.uiControlAttributes,{value:e.concattedValue,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),class:"materialize-textarea"}),null,16,Ct)])}var kt="\n",At=Object(l["defineComponent"])({props:{name:String,title:String,uiControlAttributes:Object,modelValue:[Array,String]},inheritAttrs:!1,emits:["update:modelValue"],computed:{concattedValue:function(){return"string"===typeof this.modelValue?this.modelValue:(this.modelValue||[]).join(kt)}},created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=e.target.value.split(kt);t.join(kt)!==this.concattedValue&&(e.target.value=this.concattedValue,this.$emit("update:modelValue",t))}},watch:{modelValue:function(e,t){var n=this;e!==t&&setTimeout((function(){n.$refs.textarea&&window.Materialize.textareaAutoResize(n.$refs.textarea),window.Materialize.updateTextFields()}))}},mounted:function(){var e=this;setTimeout((function(){e.$refs.textarea&&window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}});At.render=St;var Ft=At;function Bt(e){return Bt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bt(e)}function Et(e,t){return Mt(e)||$t(e,t)||Nt(e,t)||xt()}function xt(){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 Nt(e,t){if(e){if("string"===typeof e)return Tt(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)?Tt(e,t):void 0}}function Tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function $t(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Mt(e){if(Array.isArray(e))return e}
+(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue")):"function"===typeof define&&define.amd?define(["CoreHome"],t):"object"===typeof exports?exports["CorePluginsAdmin"]=t(require("CoreHome"),require("vue")):e["CorePluginsAdmin"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/CorePluginsAdmin/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"FormField",(function(){return Gt})),n.d(t,"Field",(function(){return en})),n.d(t,"PluginSettings",(function(){return Mn})),n.d(t,"PluginFilter",(function(){return io})),n.d(t,"PluginManagement",(function(){return In})),n.d(t,"PluginUpload",(function(){return qn})),n.d(t,"SaveButton",(function(){return so})),n.d(t,"Form",(function(){return po})),n.d(t,"GroupedSettings",(function(){return Sn})),"undefined"!==typeof window){var o=window.document.currentScript,i=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}var r=n("19dc"),l=n("8bbf"),a={class:"form-group row matomo-form-field"},u={key:0,class:"col s12"},c={key:0,class:"form-help"},s={key:0,class:"inline-help",ref:"inlineHelp"},d=Object(l["createElementVNode"])("br",null,null,-1);function m(e,t,n,o,i,r){return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",a,[e.formField.introduction?(Object(l["openBlock"])(),Object(l["createElementBlock"])("h3",u,Object(l["toDisplayString"])(e.formField.introduction),1)):Object(l["createCommentVNode"])("",!0),Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])(["col s12",{"input-field":"checkbox"!==e.formField.uiControl&&"radio"!==e.formField.uiControl,"file-field":"file"===e.formField.uiControl,m6:!e.formField.fullWidth}])},[(Object(l["openBlock"])(),Object(l["createBlock"])(Object(l["resolveDynamicComponent"])(e.childComponent),Object(l["mergeProps"])(Object.assign(Object.assign({formField:e.formField},e.formField),{},{modelValue:e.processedModelValue,availableOptions:e.availableOptions},e.extraChildComponentParams),{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onChange(t)})}),null,16))],2),Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])(["col s12",{m6:!e.formField.fullWidth}])},[e.showFormHelp?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",c,[Object(l["withDirectives"])(Object(l["createElementVNode"])("div",{class:"form-description"},Object(l["toDisplayString"])(e.formField.description),513),[[l["vShow"],e.formField.description]]),e.formField.inlineHelp||e.hasInlineHelpSlot?(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",s,[e.inlineHelpComponent?(Object(l["openBlock"])(),Object(l["createBlock"])(Object(l["resolveDynamicComponent"])(e.inlineHelpComponent),Object(l["normalizeProps"])(Object(l["mergeProps"])({key:0},e.inlineHelpBind)),null,16)):Object(l["createCommentVNode"])("",!0),Object(l["renderSlot"])(e.$slots,"inline-help")],512)):Object(l["createCommentVNode"])("",!0),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",null,[d,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Default"))+": ",1),Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(e.defaultValuePrettyTruncated),1)],512),[[l["vShow"],e.showDefaultValue]])])):Object(l["createCommentVNode"])("",!0)],2)],512)),[[l["vShow"],e.showField]])}var f={class:"checkbox"},p=["checked","id","name"],b=["innerHTML"];function v(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",f,[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},e.uiControlAttributes,{value:1,checked:e.isChecked,type:"checkbox",id:e.name,name:e.name}),null,16,p),Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.title)},null,8,b)])])}var h=Object(l["defineComponent"])({props:{modelValue:[Boolean,Number,String],uiControlAttributes:Object,name:String,title:String},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){var t=e.target.checked;this.modelValue!==t&&(e.target.checked=!t,this.$emit("update:modelValue",t))}},computed:{isChecked:function(){return!!this.modelValue&&"0"!==this.modelValue}}});h.render=v;var g=h,O={ref:"root"},j=["value","checked","onChange","id","name"];function y(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",O,[Object(l["withDirectives"])(Object(l["createElementVNode"])("label",{class:"fieldRadioTitle"},Object(l["toDisplayString"])(e.title),513),[[l["vShow"],e.title]]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions,(function(t,n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("p",{key:n,class:"checkbox"},[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({value:t.key,checked:!!e.checkboxStates[n],onChange:function(t){return e.onChange(n)}},e.uiControlAttributes,{type:"checkbox",id:"".concat(e.name).concat(t.key),name:t.name}),null,16,j),Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(t.value),1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{class:"form-description"},Object(l["toDisplayString"])(t.description),513),[[l["vShow"],t.description]])])])})),128))],512)}function V(e){return k(e)||S(e)||C(e)||w()}function w(){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 C(e,t){if(e){if("string"===typeof e)return A(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)?A(e,t):void 0}}function S(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function k(e){if(Array.isArray(e))return A(e)}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function F(e,t){return(e||[]).map((function(e){return t&&-1!==t.indexOf(e.key)}))}var B=Object(l["defineComponent"])({props:{modelValue:Array,name:String,title:String,availableOptions:Array,uiControlAttributes:Object,type:String},inheritAttrs:!1,emits:["update:modelValue"],computed:{checkboxStates:function(){return F(this.availableOptions,this.modelValue)}},mounted:function(){window.Materialize.updateTextFields()},methods:{onChange:function(e){var t=V(this.checkboxStates);t[e]=!t[e];var n=this.availableOptions||{},o=[];Object.values(n).forEach((function(e,n){t[n]&&o.push(e.key)}));var i=this.$refs.root.querySelectorAll("input").item(e);i.checked=!i.checked,this.$emit("update:modelValue",o)}}});B.render=y;var x=B,E={class:"expandableSelector"},N=Object(l["createElementVNode"])("svg",{class:"caret",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},[Object(l["createElementVNode"])("path",{d:"M7 10l5 5 5-5z"}),Object(l["createElementVNode"])("path",{d:"M0 0h24v24H0z",fill:"none"})],-1),T=["value"],$={class:"expandableList z-depth-2"},M={class:"searchContainer"},P={class:"collection firstLevel"},J=["onClick"],H={class:"collection secondLevel"},D=["onClick"],I={class:"primary-content"},L=["title"];function z(e,t,n,o,i,r){var a=Object(l["resolveDirective"])("focus-if"),u=Object(l["resolveDirective"])("focus-anywhere-but-here");return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",E,[Object(l["createElementVNode"])("div",{onClick:t[0]||(t[0]=function(t){return e.showSelect=!e.showSelect}),class:"select-wrapper"},[N,Object(l["createElementVNode"])("input",{type:"text",class:"select-dropdown",readonly:"readonly",value:e.modelValueText},null,8,T)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",$,[Object(l["createElementVNode"])("div",M,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"text",placeholder:"Search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"expandableSearch browser-default"},null,512),[[l["vModelText"],e.searchTerm],[a,e.showSelect]])]),Object(l["createElementVNode"])("ul",P,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions,(function(t,n){return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("li",{class:"collection-item",key:n},[Object(l["createElementVNode"])("h4",{class:"expandableListCategory",onClick:function(n){return e.onCategoryClicked(t)}},[Object(l["createTextVNode"])(Object(l["toDisplayString"])(t.group)+" ",1),Object(l["createElementVNode"])("span",{class:Object(l["normalizeClass"])(["secondary-content",{"icon-arrow-right":e.showCategory!==t.group,"icon-arrow-bottom":e.showCategory===t.group}])},null,2)],8,J),Object(l["withDirectives"])(Object(l["createElementVNode"])("ul",H,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(t.values.filter((function(t){return-1!==t.value.toLowerCase().indexOf(e.searchTerm.toLowerCase())})),(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("li",{class:"expandableListItem collection-item valign-wrapper",key:t.key,onClick:function(n){return e.onValueClicked(t)}},[Object(l["createElementVNode"])("span",I,Object(l["toDisplayString"])(t.value),1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{title:t.tooltip,class:"secondary-content icon-help"},null,8,L),[[l["vShow"],t.tooltip]])],8,D)})),128))],512),[[l["vShow"],e.showCategory===t.group||e.searchTerm]])],512)),[[l["vShow"],t.values.filter((function(t){return-1!==t.value.toLowerCase().indexOf(e.searchTerm.toLowerCase())})).length]])})),128))])],512),[[l["vShow"],e.showSelect]])],512)),[[u,{blur:e.onBlur}]])}function U(e){var t=[];if(!e)return t;var n={};return Object.values(e).forEach((function(e){var t=e,o=t.group||"";o in n&&n[o]||(n[o]={values:[],group:o});var i={key:t.key,value:t.value};"tooltip"in t&&t.tooltip&&(i.tooltip=t.tooltip),n[o].values.push(i)})),Object.values(n).forEach((function(e){e.values.length&&t.push(e)})),t}var K=Object(l["defineComponent"])({props:{modelValue:[Number,String],availableOptions:Array,title:String},directives:{FocusAnywhereButHere:r["FocusAnywhereButHere"],FocusIf:r["FocusIf"]},inheritAttrs:!1,emits:["update:modelValue"],data:function(){return{showSelect:!1,searchTerm:"",showCategory:""}},computed:{modelValueText:function(){if(this.title)return this.title;var e,t=this.modelValue,n=this.availableOptions||[];return n.some((function(n){return e=n.values.find((function(e){return e.key===t})),e})),e?e.value?"".concat(e.value):"":t?"".concat(t):""}},methods:{onBlur:function(){this.showSelect=!1},onCategoryClicked:function(e){this.showCategory===e.group?this.showCategory="":this.showCategory=e.group},onValueClicked:function(e){this.$emit("update:modelValue",e.key),this.showSelect=!1}}});K.render=z;var _=K,q=["for","innerHTML"];function R(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("FieldArray");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,q),Object(l["createVNode"])(a,{name:e.name,"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onValueUpdate(t)}),field:e.uiControlAttributes.field},null,8,["name","model-value","field"])])}var G=Object(l["defineComponent"])({components:{FieldArray:r["FieldArray"]},props:{name:String,title:String,modelValue:null,uiControlAttributes:Object},inheritAttrs:!1,emits:["update:modelValue"],methods:{onValueUpdate:function(e){this.$emit("update:modelValue",e)}}});G.render=R;var W=G,Z={class:"btn"},Y=["for","innerHTML"],Q=["name","id"],X={class:"file-path-wrapper"},ee=["value"];function te(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("div",Z,[Object(l["createElementVNode"])("span",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Y),Object(l["createElementVNode"])("input",{ref:"fileInput",name:e.name,type:"file",id:e.name,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},null,40,Q)]),Object(l["createElementVNode"])("div",X,[Object(l["createElementVNode"])("input",{class:"file-path validate",value:e.filePath,type:"text"},null,8,ee)])])}var ne=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:[String,File]},inheritAttrs:!1,emits:["update:modelValue"],watch:{modelValue:function(e){if(!e||""===e){var t=this.$refs.fileInput;t.value=""}}},methods:{onChange:function(e){var t=e.target.files;if(t){var n=t.item(0);this.$emit("update:modelValue",n)}}},computed:{filePath:function(){if(this.modelValue instanceof File)return this.$refs.fileInput.value}}});ne.render=te;var oe=ne,ie=["type","name","value"];function re(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("input",{type:e.uiControl,name:e.name,value:e.modelValue,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},null,40,ie)])}var le=Object(l["defineComponent"])({props:{modelValue:null,uiControl:String,name:String},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){this.$emit("update:modelValue",e.target.value)}}});le.render=re;var ae=le,ue={class:"fieldMultiTuple"},ce=["for","innerHTML"];function se(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("MultiPairField");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ue,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ce),Object(l["createVNode"])(a,{name:e.name,"model-value":e.modelValue,"onUpdate:modelValue":e.onUpdateValue,field1:e.uiControlAttributes.field1,field2:e.uiControlAttributes.field2,field3:e.uiControlAttributes.field3,field4:e.uiControlAttributes.field4},null,8,["name","model-value","onUpdate:modelValue","field1","field2","field3","field4"])])}var de=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:null,uiControlAttributes:Object},inheritAttrs:!1,components:{MultiPairField:r["MultiPairField"]},emits:["update:modelValue"],methods:{onUpdateValue:function(e){this.$emit("update:modelValue",e)}}});de.render=se;var me=de,fe=["type","id","name","value"],pe=["for","innerHTML"];function be(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,id:e.name,name:e.name,value:e.modelValueFormatted,onKeydown:t[0]||(t[0]=function(t){return e.onChange(t)}),onChange:t[1]||(t[1]=function(t){return e.onChange(t)})},e.uiControlAttributes),null,16,fe),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,pe)],64)}var ve=Object(l["defineComponent"])({props:{uiControl:String,name:String,title:String,modelValue:[Number,String],uiControlAttributes:Object},inheritAttrs:!1,emits:["update:modelValue"],created:function(){this.onChange=Object(r["debounce"])(this.onChange.bind(this),50)},methods:{onChange:function(e){var t=this,n=parseFloat(e.target.value);this.$emit("update:modelValue",n),Object(l["nextTick"])((function(){e.target.value!==t.modelValueFormatted&&(e.target.value=t.modelValueFormatted)}))}},mounted:function(){window.Materialize.updateTextFields()},watch:{modelValue:function(){setTimeout((function(){window.Materialize.updateTextFields()}))}},computed:{modelValueFormatted:function(){return(this.modelValue||"").toString()}}});ve.render=be;var he=ve,ge={ref:"root"},Oe=["value","id","name","disabled","checked"];function je(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ge,[Object(l["withDirectives"])(Object(l["createElementVNode"])("label",{class:"fieldRadioTitle"},Object(l["toDisplayString"])(e.title),513),[[l["vShow"],e.title]]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableOptions||[],(function(n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("p",{key:n.key,class:"radio"},[Object(l["createElementVNode"])("label",null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({value:n.key,onChange:t[0]||(t[0]=function(t){return e.onChange(t)}),type:"radio",id:"".concat(e.name).concat(n.key),name:e.name,disabled:n.disabled||e.disabled},e.uiControlAttributes,{checked:e.modelValue===n.key||"".concat(e.modelValue)===n.key}),null,16,Oe),Object(l["createElementVNode"])("span",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(n.value)+" ",1),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",{class:"form-description"},Object(l["toDisplayString"])(n.description),513),[[l["vShow"],n.description]])])])])})),128))],512)}var ye=Object(l["defineComponent"])({props:{title:String,availableOptions:Array,name:String,disabled:Boolean,uiControlAttributes:Object,modelValue:[String,Number]},inheritAttrs:!1,emits:["update:modelValue"],methods:{onChange:function(e){var t=this;this.$refs.root.querySelectorAll("input").forEach((function(e,n){var o;if(null!==(o=t.availableOptions)&&void 0!==o&&o[n]){var i=t.availableOptions[n].key;e.checked=t.modelValue===i||"".concat(t.modelValue)===i}})),this.$emit("update:modelValue",e.target.value)}}});ye.render=je;var Ve=ye;function we(e,t){return Fe(e)||Ae(e,t)||Se(e,t)||Ce()}function Ce(){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 Se(e,t){if(e){if("string"===typeof e)return ke(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)?ke(e,t):void 0}}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ae(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Fe(e){if(Array.isArray(e))return e}var Be={key:0,class:"matomo-field-select"},xe=["multiple","name"],Ee=["label"],Ne=["value","selected","disabled"],Te=["for","innerHTML"],$e={key:1,class:"matomo-field-select"},Me=["multiple","name"],Pe=["value","selected","disabled"],Je=["for","innerHTML"];function He(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[e.groupedOptions?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",Be,[Object(l["createElementVNode"])("select",Object(l["mergeProps"])({ref:"select",class:"grouped",multiple:e.multiple,name:e.name,onChange:t[0]||(t[0]=function(t){return e.onChange(t)})},e.uiControlAttributes),[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.groupedOptions,(function(t){var n=we(t,2),o=n[0],i=n[1];return Object(l["openBlock"])(),Object(l["createElementBlock"])("optgroup",{key:o,label:o},[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(i,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("option",{key:t.key,value:"string:".concat(t.key),selected:e.multiple?e.modelValue&&-1!==e.modelValue.indexOf(t.key):e.modelValue===t.key,disabled:t.disabled},Object(l["toDisplayString"])(t.value),9,Ne)})),128))],8,Ee)})),128))],16,xe),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Te)])):Object(l["createCommentVNode"])("",!0),!e.groupedOptions&&e.options?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",$e,[Object(l["createElementVNode"])("select",Object(l["mergeProps"])({class:"ungrouped",ref:"select",multiple:e.multiple,name:e.name,onChange:t[1]||(t[1]=function(t){return e.onChange(t)})},e.uiControlAttributes),[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.options,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("option",{key:t.key,value:"string:".concat(t.key),selected:e.multiple?e.modelValue&&-1!==e.modelValue.indexOf(t.key):e.modelValue===t.key,disabled:t.disabled},Object(l["toDisplayString"])(t.value),9,Pe)})),128))],16,Me),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Je)])):Object(l["createCommentVNode"])("",!0)],64)}function De(e){return ze(e)||Le(e)||_e(e)||Ie()}function Ie(){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 Le(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ze(e){if(Array.isArray(e))return qe(e)}function Ue(e,t){return Ge(e)||Re(e,t)||_e(e,t)||Ke()}function Ke(){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 _e(e,t){if(e){if("string"===typeof e)return qe(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)?qe(e,t):void 0}}function qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Re(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Ge(e){if(Array.isArray(e))return e}function We(e){return We="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function Ze(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0;if(e){var r=window.$(e);if(Array.from(e.options).forEach((function(e){e.selected=i?!!t&&-1!==t.indexOf(e.value.replace(/^string:/,"")):"string:".concat(t)===e.value})),r.formSelect(o),n){var l=r.closest(".select-wrapper").find("input");l.attr("placeholder",n)}}}function Ye(e){return!Array.isArray(e)&&"object"===We(e)&&Object.values(e).some((function(e){return"object"===We(e)}))}function Qe(e,t){return e.some((function(e){return e.key===t}))}function Xe(e,t,n){if(!e)return[];var o=!0,i=e;Ye(i)||(i={"":e},o=!1);var r=[];return Object.entries(i).forEach((function(e){var n=Ue(e,2),i=n[0],l=n[1];Object.entries(l).forEach((function(e){var n=Ue(e,2),l=n[0],a=n[1];if(a&&"object"===We(a)&&"undefined"!==typeof a.key)r.push(a);else{var u=l;"integer"===t&&"string"===typeof l&&(u=parseInt(l,10)),r.push({group:o?i:void 0,key:u,value:a})}}))})),null!==n&&void 0!==n&&n.placeholder&&!Qe(r,"")?[{key:"",value:""}].concat(r):r}function et(e){return"string"===typeof e?e.replace(/^string:/,""):e}var tt=Object(l["defineComponent"])({props:{modelValue:null,multiple:Boolean,name:String,title:String,availableOptions:Array,uiControlAttributes:Object,uiControlOptions:Object},inheritAttrs:!1,emits:["update:modelValue"],computed:{options:function(){var e=this.availableOptions;return!e||Qe(e,"")||"undefined"!==typeof this.modelValue&&null!==this.modelValue&&""!==this.modelValue?e:[{key:"",value:this.modelValue,group:this.hasGroups?"":void 0}].concat(De(e))},hasGroups:function(){var e=this.availableOptions;return e&&e[0]&&"undefined"!==typeof e[0].group},groupedOptions:function(){var e=this.options;if(!this.hasGroups||!e)return null;var t={};e.forEach((function(e){var n=e.group;t[n]=t[n]||[],t[n].push(e)}));var n=Object.entries(t);return n.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),n}},methods:{onChange:function(e){var t,n=e.target;this.multiple?(t=Array.from(n.options).filter((function(e){return e.selected})).map((function(e){return e.value})),t=t.map((function(e){return et(e)}))):(t=n.value,t=et(t)),this.onModelValueChange(this.modelValue),this.$emit("update:modelValue",t)},onModelValueChange:function(e){var t=this;window.$(this.$refs.select).val(e),setTimeout((function(){var n;Ze(t.$refs.select,e,null===(n=t.uiControlAttributes)||void 0===n?void 0:n.placeholder,t.uiControlOptions,t.multiple)}))}},watch:{modelValue:function(e){this.onModelValueChange(e)},"uiControlAttributes.disabled":{handler:function(e,t){var n=this;setTimeout((function(){var o;e!==t&&Ze(n.$refs.select,n.modelValue,null===(o=n.uiControlAttributes)||void 0===o?void 0:o.placeholder,n.uiControlOptions,n.multiple)}))}},availableOptions:function(e,t){var n=this;e!==t&&setTimeout((function(){var e;Ze(n.$refs.select,n.modelValue,null===(e=n.uiControlAttributes)||void 0===e?void 0:e.placeholder,n.uiControlOptions,n.multiple)}))}},mounted:function(){var e=this;setTimeout((function(){var t;Ze(e.$refs.select,e.modelValue,null===(t=e.uiControlAttributes)||void 0===t?void 0:t.placeholder,e.uiControlOptions,e.multiple)}))}});tt.render=He;var nt=tt,ot=["for","innerHTML"],it={class:"sites_autocomplete"};function rt(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("SiteSelector");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,class:"siteSelectorLabel",innerHTML:e.$sanitize(e.title)},null,8,ot),Object(l["createElementVNode"])("div",it,[Object(l["createVNode"])(a,Object(l["mergeProps"])({"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.onChange(t)}),id:e.name,"show-all-sites-item":e.uiControlAttributes.showAllSitesItem||!1,"switch-site-on-select":!1,"show-selected-site":!0,"only-sites-with-admin-access":e.uiControlAttributes.onlySitesWithAdminAccess||!1},e.uiControlAttributes),null,16,["model-value","id","show-all-sites-item","only-sites-with-admin-access"])])])}var lt=Object(l["defineComponent"])({props:{name:String,title:String,modelValue:Object,uiControlAttributes:Object},inheritAttrs:!1,components:{SiteSelector:r["SiteSelector"]},emits:["update:modelValue"],methods:{onChange:function(e){this.$emit("update:modelValue",e)}}});lt.render=rt;var at=lt,ut=["type","id","name","value"],ct=["for","innerHTML"];function st(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,id:e.name,name:e.name,value:e.modelValueText,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)})},e.uiControlAttributes),null,16,ut),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ct)],64)}var dt=Object(l["defineComponent"])({props:{title:String,name:String,uiControlAttributes:Object,modelValue:[String,Number],uiControl:String},inheritAttrs:!1,emits:["update:modelValue"],computed:{modelValueText:function(){return"undefined"===typeof this.modelValue||null===this.modelValue?"":this.modelValue.toString()}},created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},mounted:function(){setTimeout((function(){window.Materialize.updateTextFields()}))},watch:{modelValue:function(){setTimeout((function(){window.Materialize.updateTextFields()}))}},methods:{onKeydown:function(e){var t=this,n=e.target.value;this.modelValue!==n&&(this.$emit("update:modelValue",n),Object(l["nextTick"])((function(){e.target.value!==t.modelValueText&&(e.target.value=t.modelValueText)})))}}});dt.render=st;var mt=dt,ft=["for","innerHTML"],pt=["type","name","value"];function bt(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,ft),Object(l["createElementVNode"])("input",Object(l["mergeProps"])({class:"control_".concat(e.uiControl),type:e.uiControl,name:e.name,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),value:e.concattedValues},e.uiControlAttributes),null,16,pt)])}var vt=Object(l["defineComponent"])({props:{name:String,title:String,uiControl:String,modelValue:Array,uiControlAttributes:Object},inheritAttrs:!1,computed:{concattedValues:function(){return"string"===typeof this.modelValue?this.modelValue:(this.modelValue||[]).join(", ")}},emits:["update:modelValue"],created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=this,n=e.target.value.split(",").map((function(e){return e.trim()}));n.join(", ")!==this.concattedValues&&(this.$emit("update:modelValue",n),Object(l["nextTick"])((function(){e.target.value!==t.concattedValues&&(e.target.value=t.concattedValues)})))}}});vt.render=bt;var ht=vt,gt=["name","id","value"],Ot=["for","innerHTML"];function jt(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])(l["Fragment"],null,[Object(l["createElementVNode"])("textarea",Object(l["mergeProps"])({name:e.name},e.uiControlAttributes,{id:e.name,value:e.modelValueText,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),class:"materialize-textarea",ref:"textarea"}),null,16,gt),Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,Ot)],64)}var yt=Object(l["defineComponent"])({props:{name:String,uiControlAttributes:Object,modelValue:String,title:String},inheritAttrs:!1,emits:["update:modelValue"],created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=this,n=e.target.value;e.target.value=this.modelValueText,this.$emit("update:modelValue",n),Object(l["nextTick"])((function(){e.target.value!==t.modelValueText&&(e.target.value=t.modelValueText)}))}},computed:{modelValueText:function(){return this.modelValue||""}},watch:{modelValue:function(){var e=this;setTimeout((function(){window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}},mounted:function(){var e=this;setTimeout((function(){window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}});yt.render=jt;var Vt=yt,wt=["for","innerHTML"],Ct=["name","value"];function St(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createElementVNode"])("label",{for:e.name,innerHTML:e.$sanitize(e.title)},null,8,wt),Object(l["createElementVNode"])("textarea",Object(l["mergeProps"])({ref:"textarea",name:e.name},e.uiControlAttributes,{value:e.concattedValue,onKeydown:t[0]||(t[0]=function(t){return e.onKeydown(t)}),onChange:t[1]||(t[1]=function(t){return e.onKeydown(t)}),class:"materialize-textarea"}),null,16,Ct)])}var kt="\n",At=Object(l["defineComponent"])({props:{name:String,title:String,uiControlAttributes:Object,modelValue:[Array,String]},inheritAttrs:!1,emits:["update:modelValue"],computed:{concattedValue:function(){return"string"===typeof this.modelValue?this.modelValue:(this.modelValue||[]).join(kt)}},created:function(){this.onKeydown=Object(r["debounce"])(this.onKeydown.bind(this),50)},methods:{onKeydown:function(e){var t=this,n=e.target.value.split(kt);n.join(kt)!==this.concattedValue&&(this.$emit("update:modelValue",n),Object(l["nextTick"])((function(){e.target.value!==t.concattedValue&&(e.target.value=t.concattedValue)})))}},watch:{modelValue:function(e,t){var n=this;e!==t&&setTimeout((function(){n.$refs.textarea&&window.Materialize.textareaAutoResize(n.$refs.textarea),window.Materialize.updateTextFields()}))}},mounted:function(){var e=this;setTimeout((function(){e.$refs.textarea&&window.Materialize.textareaAutoResize(e.$refs.textarea),window.Materialize.updateTextFields()}))}});At.render=St;var Ft=At;function Bt(e){return Bt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bt(e)}function xt(e,t){return Mt(e)||$t(e,t)||Nt(e,t)||Et()}function Et(){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 Nt(e,t){if(e){if("string"===typeof e)return Tt(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)?Tt(e,t):void 0}}function Tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function $t(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function Mt(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
- */function Pt(e,t){if(!e)return[];var n=[];return Object.entries(e).forEach((function(e){var o=Et(e,2),i=o[0],r=o[1];if(r&&"object"===Bt(r)&&"undefined"!==typeof r.key)n.push(r);else{var l=i;"integer"===t&&"string"===typeof i&&(l=parseInt(l,10)),n.push({key:l,value:r})}})),n}var Jt={ref:"root"};function Ht(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",Jt,null,512)}function Dt(e){if("undefined"!==typeof e)return JSON.parse(JSON.stringify(e))}var It=Object(l["defineComponent"])({props:{modelValue:null,formField:{type:null,required:!0},templateFile:{type:String,required:!0}},emits:["update:modelValue"],inheritAttrs:!1,setup:function(e,t){var n=Object(l["ref"])(null),o=window.$("<div ng-include=\"'".concat(e.templateFile,"?cb=").concat(r["Matomo"].cacheBuster,"'\"></div>")),i=r["Matomo"].helper.getAngularDependency("$timeout"),a=r["Matomo"].helper.getAngularDependency("$rootScope"),u=a.$new();return u.formField=Object.assign(Object.assign({},Dt(e.formField)),{},{value:Dt(e.modelValue)}),u.$watch("formField.value",(function(n,o){n!==o&&JSON.stringify(n)!==JSON.stringify(e.modelValue)&&t.emit("update:modelValue",Dt(n))})),Object(l["watch"])((function(){return e.modelValue}),(function(e){JSON.stringify(e)!==JSON.stringify(u.formField.value)&&i((function(){u.formField.value=e}))})),Object(l["watch"])((function(){return e.formField}),(function(e){i((function(){var t=u.formField.value;u.formField=Object.assign(Object.assign({},Dt(e)),{},{value:t})}))}),{deep:!0}),Object(l["onMounted"])((function(){window.$(n.value).append(o),r["Matomo"].helper.compileAngularComponents(o,{scope:u,params:{formField:Object.assign(Object.assign({},Dt(e.formField)),{},{value:e.modelValue})}})})),{root:n}}});It.render=Ht;var Lt=It;function zt(e){return zt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},zt(e)}var Ut=["password","url","search","email"],Kt=["textarea","checkbox","text"],_t={checkbox:"FieldCheckbox","expandable-select":"FieldExpandableSelect","field-array":"FieldFieldArray",file:"FieldFile",hidden:"FieldHidden",multiselect:"FieldSelect",multituple:"FieldMultituple",number:"FieldNumber",radio:"FieldRadio",select:"FieldSelect",site:"FieldSite",text:"FieldText",textarea:"FieldTextarea"},qt={FieldSelect:Xe,FieldCheckboxArray:Pt,FieldRadio:Pt,FieldExpandableSelect:U},Rt=Object(l["defineComponent"])({props:{modelValue:null,formField:{type:Object,required:!0}},emits:["update:modelValue"],components:{FieldCheckbox:g,FieldCheckboxArray:E,FieldExpandableSelect:_,FieldFieldArray:W,FieldFile:oe,FieldHidden:ae,FieldMultituple:me,FieldNumber:he,FieldRadio:Ve,FieldSelect:nt,FieldSite:at,FieldText:mt,FieldTextArray:ht,FieldTextarea:Vt,FieldTextareaArray:Ft},setup:function(e){var t=Object(l["ref"])(null),n=function(e){var n;e&&t.value&&"function"!==typeof e.render&&(n="string"===typeof e?0===e.indexOf("#")?window.$(e):window.vueSanitize(e):e,window.$(t.value).html("").append(n))};return Object(l["watch"])((function(){return e.formField.inlineHelp}),n),Object(l["onMounted"])((function(){n(e.formField.inlineHelp)})),{inlineHelp:t}},computed:{inlineHelpComponent:function(){var e=this.formField,t=e.inlineHelp;if(t&&"function"===typeof t.render)return e.inlineHelp},inlineHelpBind:function(){return this.inlineHelpComponent?this.formField.inlineHelpBind:void 0},childComponent:function(){var e=this.formField;if(e.component){var t=e.component;if(e.component.plugin){var n=e.component,o=n.plugin,i=n.name;if(!o||!i)throw new Error("Invalid component property given to piwik-field directive, must be {plugin: '...',name: '...'}");t=Object(r["useExternalPluginComponent"])(o,i)}return Object(l["markRaw"])(t)}if(e.templateFile)return Object(l["markRaw"])(Lt);var a=e.uiControl,u=_t[a];return-1!==Ut.indexOf(a)&&(u="FieldText"),"array"===this.formField.type&&-1!==Kt.indexOf(a)&&(u="".concat(u,"Array")),u},extraChildComponentParams:function(){return"multiselect"===this.formField.uiControl?{multiple:!0}:{}},showFormHelp:function(){return this.formField.description||this.formField.inlineHelp||this.showDefaultValue||this.hasInlineHelpSlot},showDefaultValue:function(){return this.defaultValuePretty&&"checkbox"!==this.formField.uiControl&&"radio"!==this.formField.uiControl},showField:function(){return!(this.formField&&this.formField.condition&&this.formField.condition instanceof Function)||this.formField.condition()},processedModelValue:function(){var e=this.formField;if("boolean"===e.type){var t=this.modelValue&&this.modelValue>0&&"0"!==this.modelValue;if("checkbox"===e.uiControl)return t;if("radio"===e.uiControl)return t?"1":"0"}return this.modelValue},defaultValue:function(){var e=this.formField.defaultValue;return Array.isArray(e)?e.join(","):e},availableOptions:function(){var e=this.childComponent;if("string"!==typeof e)return null;var t=this.formField;return t.availableValues&&qt[e]?qt[e](t.availableValues,t.type,t.uiControlAttributes):null},defaultValuePretty:function(){var e=this.formField,t=e.defaultValue,n=this.availableOptions;if("string"===typeof t&&t){var o=null;try{o=JSON.parse(t)}catch(r){}if(null!==o&&"object"===zt(o))return""}if(!Array.isArray(n))return Array.isArray(t)?"":t?"".concat(t):"";var i=[];return Array.isArray(t)||(t=[t]),(n||[]).forEach((function(e){"undefined"!==typeof e.value&&-1!==t.indexOf(e.key)&&i.push(e.value)})),i.join(", ")},defaultValuePrettyTruncated:function(){return this.defaultValuePretty.substring(0,50)},hasInlineHelpSlot:function(){var e,t;if(!this.$slots["inline-help"])return!1;var n=this.$slots["inline-help"]();return!(null===n||void 0===n||null===(e=n[0])||void 0===e||null===(t=e.children)||void 0===t||!t.length)}},methods:{onChange:function(e){this.$emit("update:modelValue",e)}}});Rt.render=m;var Gt=Rt;
+ */function Pt(e,t){if(!e)return[];var n=[];return Object.entries(e).forEach((function(e){var o=xt(e,2),i=o[0],r=o[1];if(r&&"object"===Bt(r)&&"undefined"!==typeof r.key)n.push(r);else{var l=i;"integer"===t&&"string"===typeof i&&(l=parseInt(l,10)),n.push({key:l,value:r})}})),n}var Jt={ref:"root"};function Ht(e,t,n,o,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",Jt,null,512)}function Dt(e){if("undefined"!==typeof e)return JSON.parse(JSON.stringify(e))}var It=Object(l["defineComponent"])({props:{modelValue:null,formField:{type:null,required:!0},templateFile:{type:String,required:!0}},emits:["update:modelValue"],inheritAttrs:!1,setup:function(e,t){var n=Object(l["ref"])(null),o=window.$("<div ng-include=\"'".concat(e.templateFile,"?cb=").concat(r["Matomo"].cacheBuster,"'\"></div>")),i=r["Matomo"].helper.getAngularDependency("$timeout"),a=r["Matomo"].helper.getAngularDependency("$rootScope"),u=a.$new();return u.formField=Object.assign(Object.assign({},Dt(e.formField)),{},{value:Dt(e.modelValue)}),u.$watch("formField.value",(function(n,o){n!==o&&JSON.stringify(n)!==JSON.stringify(e.modelValue)&&t.emit("update:modelValue",Dt(n))})),Object(l["watch"])((function(){return e.modelValue}),(function(e){JSON.stringify(e)!==JSON.stringify(u.formField.value)&&i((function(){u.formField.value=e}))})),Object(l["watch"])((function(){return e.formField}),(function(e){i((function(){var t=u.formField.value;u.formField=Object.assign(Object.assign({},Dt(e)),{},{value:t})}))}),{deep:!0}),Object(l["onMounted"])((function(){window.$(n.value).append(o),r["Matomo"].helper.compileAngularComponents(o,{scope:u,params:{formField:Object.assign(Object.assign({},Dt(e.formField)),{},{value:e.modelValue})}})})),{root:n}}});It.render=Ht;var Lt=It;function zt(e){return zt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},zt(e)}var Ut=["password","url","search","email"],Kt=["textarea","checkbox","text"],_t={checkbox:"FieldCheckbox","expandable-select":"FieldExpandableSelect","field-array":"FieldFieldArray",file:"FieldFile",hidden:"FieldHidden",multiselect:"FieldSelect",multituple:"FieldMultituple",number:"FieldNumber",radio:"FieldRadio",select:"FieldSelect",site:"FieldSite",text:"FieldText",textarea:"FieldTextarea"},qt={FieldSelect:Xe,FieldCheckboxArray:Pt,FieldRadio:Pt,FieldExpandableSelect:U},Rt=Object(l["defineComponent"])({props:{modelValue:null,formField:{type:Object,required:!0}},emits:["update:modelValue"],components:{FieldCheckbox:g,FieldCheckboxArray:x,FieldExpandableSelect:_,FieldFieldArray:W,FieldFile:oe,FieldHidden:ae,FieldMultituple:me,FieldNumber:he,FieldRadio:Ve,FieldSelect:nt,FieldSite:at,FieldText:mt,FieldTextArray:ht,FieldTextarea:Vt,FieldTextareaArray:Ft},setup:function(e){var t=Object(l["ref"])(null),n=function(e){var n;e&&t.value&&"function"!==typeof e.render&&(n="string"===typeof e?0===e.indexOf("#")?window.$(e):window.vueSanitize(e):e,window.$(t.value).html("").append(n))};return Object(l["watch"])((function(){return e.formField.inlineHelp}),n),Object(l["onMounted"])((function(){n(e.formField.inlineHelp)})),{inlineHelp:t}},computed:{inlineHelpComponent:function(){var e=this.formField,t=e.inlineHelp;if(t&&"function"===typeof t.render)return e.inlineHelp},inlineHelpBind:function(){return this.inlineHelpComponent?this.formField.inlineHelpBind:void 0},childComponent:function(){var e=this.formField;if(e.component){var t=e.component;if(e.component.plugin){var n=e.component,o=n.plugin,i=n.name;if(!o||!i)throw new Error("Invalid component property given to piwik-field directive, must be {plugin: '...',name: '...'}");t=Object(r["useExternalPluginComponent"])(o,i)}return Object(l["markRaw"])(t)}if(e.templateFile)return Object(l["markRaw"])(Lt);var a=e.uiControl,u=_t[a];return-1!==Ut.indexOf(a)&&(u="FieldText"),"array"===this.formField.type&&-1!==Kt.indexOf(a)&&(u="".concat(u,"Array")),u},extraChildComponentParams:function(){return"multiselect"===this.formField.uiControl?{multiple:!0}:{}},showFormHelp:function(){return this.formField.description||this.formField.inlineHelp||this.showDefaultValue||this.hasInlineHelpSlot},showDefaultValue:function(){return this.defaultValuePretty&&"checkbox"!==this.formField.uiControl&&"radio"!==this.formField.uiControl},showField:function(){return!(this.formField&&this.formField.condition&&this.formField.condition instanceof Function)||this.formField.condition()},processedModelValue:function(){var e=this.formField;if("boolean"===e.type){var t=this.modelValue&&this.modelValue>0&&"0"!==this.modelValue;if("checkbox"===e.uiControl)return t;if("radio"===e.uiControl)return t?"1":"0"}return this.modelValue},defaultValue:function(){var e=this.formField.defaultValue;return Array.isArray(e)?e.join(","):e},availableOptions:function(){var e=this.childComponent;if("string"!==typeof e)return null;var t=this.formField;return t.availableValues&&qt[e]?qt[e](t.availableValues,t.type,t.uiControlAttributes):null},defaultValuePretty:function(){var e=this.formField,t=e.defaultValue,n=this.availableOptions;if("string"===typeof t&&t){var o=null;try{o=JSON.parse(t)}catch(r){}if(null!==o&&"object"===zt(o))return""}if(!Array.isArray(n))return Array.isArray(t)?"":t?"".concat(t):"";var i=[];return Array.isArray(t)||(t=[t]),(n||[]).forEach((function(e){"undefined"!==typeof e.value&&-1!==t.indexOf(e.key)&&i.push(e.value)})),i.join(", ")},defaultValuePrettyTruncated:function(){return this.defaultValuePretty.substring(0,50)},hasInlineHelpSlot:function(){var e,t;if(!this.$slots["inline-help"])return!1;var n=this.$slots["inline-help"]();return!(null===n||void 0===n||null===(e=n[0])||void 0===e||null===(t=e.children)||void 0===t||!t.length)}},methods:{onChange:function(e){this.$emit("update:modelValue",e)}}});Rt.render=m;var Gt=Rt;
/*!
* Matomo - free/libre analytics platform
*
@@ -16,7 +16,7 @@
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function tn(e,t,n){if("string"===typeof e&&e&&("array"===t||"multituple"===n||"field-array"===n||"multiselect"===n||"site"===n)){var o=JSON.parse(e);return"site"===n&&(o.name=r["Matomo"].helper.htmlDecode(o.name)),o}return"checkbox"===n&&"array"!==t?Object(r["transformAngularJsBoolAttr"])(e):e}Object(r["createAngularJsAdapter"])({component:en,require:"?ngModel",scope:{uicontrol:{angularJsBind:"@"},name:{angularJsBind:"@"},value:{vue:"modelValue",angularJsBind:"@",transform:function(e,t,n){return tn(e,n.varType,n.uicontrol)}},default:{vue:"defaultValue",angularJsBind:"@"},options:{angularJsBind:"="},description:{angularJsBind:"@"},introduction:{angularJsBind:"@"},title:{angularJsBind:"@"},inlineHelp:{angularJsBind:"@"},disabled:{angularJsBind:"=",transform:r["transformAngularJsBoolAttr"]},uiControlAttributes:{angularJsBind:"="},uiControlOptions:{angularJsBind:"="},autocomplete:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},condition:{angularJsBind:"@",transform:function(e,t,n){if(e)return function(t){return n.$eval(e,t)}}},varType:{angularJsBind:"@"},autofocus:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},tabindex:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},fullWidth:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},maxlength:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},required:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},placeholder:{angularJsBind:"@"},rows:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},min:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},max:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},component:{angularJsBind:"<",transform:function(e,t,n){if(e){if(n.templateFile)return Object(l["shallowRef"])(Lt);var o=e.plugin,i=e.name;if(!o||!i)throw new Error("Invalid component property given to piwik-field directive, must be {plugin: '...',name: '...'}");return Object(l["shallowRef"])(Object(r["useExternalPluginComponent"])(o,i))}}}},directiveName:"piwikField",$inject:["$timeout"],events:{"update:modelValue":function(e,t,n,o,i,r,l){var a=r?r.$viewValue:n.value;e!==a&&l((function(){r?(r.$setViewValue(e),r.$render()):n.value=e}))}},postCreate:function(e,t,n,o,i){var a=i;if(a){if(a.$render=function(){Object(l["nextTick"])((function(){e.modelValue=Object(r["removeAngularJsSpecificProperties"])(a.$viewValue)}))},"undefined"!==typeof t.value){var u=tn(t.value,t.varType,t.uicontrol);a.$setViewValue(u)}else a.$setViewValue(e.modelValue);"site"===t.uicontrol&&a.$viewValue&&setTimeout((function(){a.$setViewValue(Object.assign({},a.$viewValue))}))}else t.$watch("value",(function(n){if(n!==e.modelValue){var o=tn(n,t.varType,t.uicontrol);Object(l["nextTick"])((function(){e.modelValue=o}))}}))}});var nn,on={class:"pluginSettings",ref:"root"},rn=["id"],ln={class:"card-content"},an=["id"],un=["onClick","disabled","value"],cn={class:"confirm-password-modal modal"},sn={class:"modal-content"},dn={class:"modal-footer"},mn=["disabled"];function fn(e,t,n,o,i,r){var a=this,u=Object(l["resolveComponent"])("GroupedSettings"),c=Object(l["resolveComponent"])("ActivityIndicator"),s=Object(l["resolveComponent"])("Field");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",on,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.settingsPerPlugin,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{class:"card",id:"".concat(t.pluginName,"PluginSettings"),key:"".concat(t.pluginName,"PluginSettings")},[Object(l["createElementVNode"])("div",ln,[Object(l["createElementVNode"])("h2",{class:"card-title",id:t.pluginName},Object(l["toDisplayString"])(t.title),9,an),Object(l["createVNode"])(u,{"group-name":t.pluginName,settings:t.settings,"all-setting-values":e.settingValues,onChange:function(n){return e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}},null,8,["group-name","settings","all-setting-values","onChange"]),Object(l["createElementVNode"])("input",{type:"button",onClick:function(n){return e.saveSetting(t.pluginName)},disabled:e.isLoading,class:"pluginsSettingsSubmit btn",value:e.translate("General_Save")},null,8,un),Object(l["createVNode"])(c,{loading:e.isLoading||e.isSaving[t.pluginName]},null,8,["loading"])])],8,rn)})),128)),Object(l["createElementVNode"])("div",cn,[Object(l["createElementVNode"])("div",sn,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.translate("UsersManager_ConfirmWithPassword")),1),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(s,{modelValue:e.passwordConfirmation,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.passwordConfirmation=t}),uicontrol:"password",name:"currentUserPassword",autocomplete:!1,"full-width":!0,title:e.translate("UsersManager_YourCurrentPassword")},null,8,["modelValue","title"])])]),Object(l["createElementVNode"])("div",dn,[Object(l["createElementVNode"])("a",{href:"",class:"modal-action modal-close btn",disabled:e.passwordConfirmation?void 0:"disabled",onClick:t[1]||(t[1]=function(t){t.preventDefault(),e.save(a.settingsToSave)})},Object(l["toDisplayString"])(e.translate("General_Yes")),9,mn),Object(l["createElementVNode"])("a",{href:"",class:"modal-action modal-close modal-no",onClick:t[2]||(t[2]=function(e){return e.preventDefault()})},Object(l["toDisplayString"])(e.translate("General_No")),1)])])],512)}function pn(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("GroupedSetting");return Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.settings,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:"".concat(e.groupPrefix).concat(t.name)},[Object(l["createVNode"])(a,{"model-value":e.allSettingValues["".concat(e.groupPrefix).concat(t.name)],"onUpdate:modelValue":function(n){return e.$emit("change",{name:t.name,value:n})},setting:t,"condition-values":e.settingValues},null,8,["model-value","onUpdate:modelValue","setting","condition-values"])])})),128)}function bn(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("FormField");return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createVNode"])(a,{"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.changeValue(t)}),"form-field":e.settingWithComponent},null,8,["model-value","form-field"])],512)),[[l["vShow"],e.showField]])}var vn=Object(l["defineComponent"])({props:{setting:{type:Object,required:!0},modelValue:null,conditionValues:{type:Object,required:!0}},components:{FormField:Gt},emits:["update:modelValue"],computed:{settingWithComponent:function(){return this.setting.templateFile?Object.assign(Object.assign({},this.setting),{},{component:Lt}):this.setting},showField:function(){var e=this.setting.condition;if(!e)return!0;if(!nn){var t=r["Matomo"].helper.getAngularDependency("$rootScope");nn=t.$new(!0)}return nn.$eval(e,this.conditionValues)}},methods:{changeValue:function(e){this.$emit("update:modelValue",e)}}});vn.render=bn;var hn=vn;function gn(e,t){return wn(e)||Vn(e,t)||yn(e,t)||On()}function On(){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 yn(e,t){if(e){if("string"===typeof e)return jn(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)?jn(e,t):void 0}}function jn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Vn(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function wn(e){if(Array.isArray(e))return e}var Cn=Object(l["defineComponent"])({props:{groupName:String,settings:{type:Array,required:!0},allSettingValues:{type:Object,required:!0}},emits:["change"],components:{GroupedSetting:hn},computed:{settingValues:function(){var e=this,t=Object.entries(this.allSettingValues).filter((function(t){var n=gn(t,1),o=n[0];if(e.groupName){var i=o.split("."),r=gn(i,1),l=r[0];if(l!==e.groupName)return!1}return!0})).map((function(t){var n=gn(t,2),o=n[0],i=n[1];return e.groupName?[o.split(".")[1],i]:[o,i]}));return Object.fromEntries(t)},groupPrefix:function(){return this.groupName?"".concat(this.groupName,"."):""}}});Cn.render=pn;var Sn=Cn;function kn(e,t){return xn(e)||En(e,t)||Fn(e,t)||An()}function An(){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 Fn(e,t){if(e){if("string"===typeof e)return Bn(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)?Bn(e,t):void 0}}function Bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function En(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function xn(e){if(Array.isArray(e))return e}var Nn=window,Tn=Nn.$,$n=Object(l["defineComponent"])({props:{mode:String},components:{ActivityIndicator:r["ActivityIndicator"],Field:en,GroupedSettings:Sn},data:function(){return{isLoading:!0,isSaving:{},passwordConfirmation:"",settingsToSave:null,settingsPerPlugin:[],settingValues:{}}},created:function(){var e=this;r["AjaxHelper"].fetch({method:this.apiMethod}).then((function(t){e.isLoading=!1,e.settingsPerPlugin=t,t.forEach((function(t){t.settings.forEach((function(n){e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}))})),window.anchorLinkFix.scrollToAnchorInUrl(),e.addSectionsToTableOfContents()})).catch((function(){e.isLoading=!1}))},computed:{apiMethod:function(){return"admin"===this.mode?"CorePluginsAdmin.getSystemSettings":"CorePluginsAdmin.getUserSettings"},saveApiMethod:function(){return"admin"===this.mode?"CorePluginsAdmin.setSystemSettings":"CorePluginsAdmin.setUserSettings"}},methods:{addSectionsToTableOfContents:function(){var e=Tn("#generalSettingsTOC");if(e.length){var t=this.settingsPerPlugin;t.forEach((function(t){var n=t.pluginName,o=t.settings;n&&("CoreAdminHome"===n&&o?o.filter((function(e){return e.introduction})).forEach((function(t){e.append('<a href="#/'.concat(n,'PluginSettings">').concat(t.introduction,"</a> "))})):e.append('<a href="#/'.concat(n,'">').concat(n.replace(/([A-Z])/g," $1").trim(),"</a> ")))}))}},saveSetting:function(e){"admin"===this.mode?this.showPasswordConfirmModal(e):this.save(e)},showPasswordConfirmModal:function(e){var t=this;this.settingsToSave=e;var n=this.$refs.root,o=Tn(n),i=function(n){var i=n.keyCode?n.keyCode:n.which;13===i&&(o.find(".confirm-password-modal").modal("close"),t.save(e))};o.find(".confirm-password-modal").modal({dismissible:!1,onOpenEnd:function(){var e=".modal.open #currentUserPassword";Tn(e).focus(),Tn(e).off("keypress").keypress(i)}}).modal("open")},save:function(e){var t=this,n=this.saveApiMethod;this.isSaving[e]=!0;var o=this.getValuesForPlugin(e);r["AjaxHelper"].post({method:n},{settingValues:o,passwordConfirmation:this.passwordConfirmation}).then((function(){t.isSaving[e]=!1;var n=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_PluginSettingsSaveSuccess"),id:"generalSettings",context:"success",type:"transient"});r["NotificationsStore"].scrollToNotification(n)})).catch((function(){t.isSaving[e]=!1})),this.passwordConfirmation="",this.settingsToSave=null},getValuesForPlugin:function(e){var t={};return t[e]||(t[e]=[]),Object.entries(this.settingValues).forEach((function(n){var o=kn(n,2),i=o[0],r=o[1],l=i.split("."),a=kn(l,2),u=a[0],c=a[1];if(u===e){var s=r;!1===s?s="0":!0===s&&(s="1"),t[u].push({name:c,value:s})}})),t}}});$n.render=fn;var Mn=$n,Pn=(Object(r["createAngularJsAdapter"])({component:Mn,scope:{mode:{angularJsBind:"@"}},directiveName:"piwikPluginSettings"}),window),Jn=Pn.$;
+ */function tn(e,t,n){if("string"===typeof e&&e&&("array"===t||"multituple"===n||"field-array"===n||"multiselect"===n||"site"===n)){var o=JSON.parse(e);return"site"===n&&(o.name=r["Matomo"].helper.htmlDecode(o.name)),o}return"checkbox"===n&&"array"!==t?Object(r["transformAngularJsBoolAttr"])(e):e}Object(r["createAngularJsAdapter"])({component:en,require:"?ngModel",scope:{uicontrol:{angularJsBind:"@"},name:{angularJsBind:"@"},value:{vue:"modelValue",angularJsBind:"@",transform:function(e,t,n){return tn(e,n.varType,n.uicontrol)}},default:{vue:"defaultValue",angularJsBind:"@"},options:{angularJsBind:"="},description:{angularJsBind:"@"},introduction:{angularJsBind:"@"},title:{angularJsBind:"@"},inlineHelp:{angularJsBind:"@"},disabled:{angularJsBind:"=",transform:r["transformAngularJsBoolAttr"]},uiControlAttributes:{angularJsBind:"="},uiControlOptions:{angularJsBind:"="},autocomplete:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},condition:{angularJsBind:"@",transform:function(e,t,n){if(e)return function(t){return n.$eval(e,t)}}},varType:{angularJsBind:"@"},autofocus:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},tabindex:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},fullWidth:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},maxlength:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},required:{angularJsBind:"@",transform:r["transformAngularJsBoolAttr"]},placeholder:{angularJsBind:"@"},rows:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},min:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},max:{angularJsBind:"@",transform:r["transformAngularJsIntAttr"]},component:{angularJsBind:"<",transform:function(e,t,n){if(e){if(n.templateFile)return Object(l["shallowRef"])(Lt);var o=e.plugin,i=e.name;if(!o||!i)throw new Error("Invalid component property given to piwik-field directive, must be {plugin: '...',name: '...'}");return Object(l["shallowRef"])(Object(r["useExternalPluginComponent"])(o,i))}}}},directiveName:"piwikField",$inject:["$timeout"],events:{"update:modelValue":function(e,t,n,o,i,r,l){var a=r?r.$viewValue:n.value;e!==a&&l((function(){r?(r.$setViewValue(e),r.$render()):n.value=e}))}},postCreate:function(e,t,n,o,i){var a=i;if(a){if(a.$render=function(){Object(l["nextTick"])((function(){e.modelValue=Object(r["removeAngularJsSpecificProperties"])(a.$viewValue)}))},"undefined"!==typeof t.value){var u=tn(t.value,t.varType,t.uicontrol);a.$setViewValue(u)}else a.$setViewValue(e.modelValue);"site"===t.uicontrol&&a.$viewValue&&setTimeout((function(){a.$setViewValue(Object.assign({},a.$viewValue))}))}else t.$watch("value",(function(n){if(n!==e.modelValue){var o=tn(n,t.varType,t.uicontrol);Object(l["nextTick"])((function(){e.modelValue=o}))}}))}});var nn,on={class:"pluginSettings",ref:"root"},rn=["id"],ln={class:"card-content"},an=["id"],un=["onClick","disabled","value"],cn={class:"confirm-password-modal modal"},sn={class:"modal-content"},dn={class:"modal-footer"},mn=["disabled"];function fn(e,t,n,o,i,r){var a=this,u=Object(l["resolveComponent"])("GroupedSettings"),c=Object(l["resolveComponent"])("ActivityIndicator"),s=Object(l["resolveComponent"])("Field");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",on,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.settingsPerPlugin,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{class:"card",id:"".concat(t.pluginName,"PluginSettings"),key:"".concat(t.pluginName,"PluginSettings")},[Object(l["createElementVNode"])("div",ln,[Object(l["createElementVNode"])("h2",{class:"card-title",id:t.pluginName},Object(l["toDisplayString"])(t.title),9,an),Object(l["createVNode"])(u,{"group-name":t.pluginName,settings:t.settings,"all-setting-values":e.settingValues,onChange:function(n){return e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}},null,8,["group-name","settings","all-setting-values","onChange"]),Object(l["createElementVNode"])("input",{type:"button",onClick:function(n){return e.saveSetting(t.pluginName)},disabled:e.isLoading,class:"pluginsSettingsSubmit btn",value:e.translate("General_Save")},null,8,un),Object(l["createVNode"])(c,{loading:e.isLoading||e.isSaving[t.pluginName]},null,8,["loading"])])],8,rn)})),128)),Object(l["createElementVNode"])("div",cn,[Object(l["createElementVNode"])("div",sn,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.translate("UsersManager_ConfirmWithPassword")),1),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(s,{modelValue:e.passwordConfirmation,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.passwordConfirmation=t}),uicontrol:"password",name:"currentUserPassword",autocomplete:!1,"full-width":!0,title:e.translate("UsersManager_YourCurrentPassword")},null,8,["modelValue","title"])])]),Object(l["createElementVNode"])("div",dn,[Object(l["createElementVNode"])("a",{href:"",class:"modal-action modal-close btn",disabled:e.passwordConfirmation?void 0:"disabled",onClick:t[1]||(t[1]=function(t){t.preventDefault(),e.save(a.settingsToSave)})},Object(l["toDisplayString"])(e.translate("General_Yes")),9,mn),Object(l["createElementVNode"])("a",{href:"",class:"modal-action modal-close modal-no",onClick:t[2]||(t[2]=function(e){return e.preventDefault()})},Object(l["toDisplayString"])(e.translate("General_No")),1)])])],512)}function pn(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("GroupedSetting");return Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.settings,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:"".concat(e.groupPrefix).concat(t.name)},[Object(l["createVNode"])(a,{"model-value":e.allSettingValues["".concat(e.groupPrefix).concat(t.name)],"onUpdate:modelValue":function(n){return e.$emit("change",{name:t.name,value:n})},setting:t,"condition-values":e.settingValues},null,8,["model-value","onUpdate:modelValue","setting","condition-values"])])})),128)}function bn(e,t,n,o,i,r){var a=Object(l["resolveComponent"])("FormField");return Object(l["withDirectives"])((Object(l["openBlock"])(),Object(l["createElementBlock"])("div",null,[Object(l["createVNode"])(a,{"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.changeValue(t)}),"form-field":e.settingWithComponent},null,8,["model-value","form-field"])],512)),[[l["vShow"],e.showField]])}var vn=Object(l["defineComponent"])({props:{setting:{type:Object,required:!0},modelValue:null,conditionValues:{type:Object,required:!0}},components:{FormField:Gt},emits:["update:modelValue"],computed:{settingWithComponent:function(){return this.setting.templateFile?Object.assign(Object.assign({},this.setting),{},{component:Lt}):this.setting},showField:function(){var e=this.setting.condition;if(!e)return!0;if(!nn){var t=r["Matomo"].helper.getAngularDependency("$rootScope");nn=t.$new(!0)}return nn.$eval(e,this.conditionValues)}},methods:{changeValue:function(e){this.$emit("update:modelValue",e)}}});vn.render=bn;var hn=vn;function gn(e,t){return wn(e)||Vn(e,t)||jn(e,t)||On()}function On(){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 jn(e,t){if(e){if("string"===typeof e)return yn(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)?yn(e,t):void 0}}function yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Vn(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function wn(e){if(Array.isArray(e))return e}var Cn=Object(l["defineComponent"])({props:{groupName:String,settings:{type:Array,required:!0},allSettingValues:{type:Object,required:!0}},emits:["change"],components:{GroupedSetting:hn},computed:{settingValues:function(){var e=this,t=Object.entries(this.allSettingValues).filter((function(t){var n=gn(t,1),o=n[0];if(e.groupName){var i=o.split("."),r=gn(i,1),l=r[0];if(l!==e.groupName)return!1}return!0})).map((function(t){var n=gn(t,2),o=n[0],i=n[1];return e.groupName?[o.split(".")[1],i]:[o,i]}));return Object.fromEntries(t)},groupPrefix:function(){return this.groupName?"".concat(this.groupName,"."):""}}});Cn.render=pn;var Sn=Cn;function kn(e,t){return En(e)||xn(e,t)||Fn(e,t)||An()}function An(){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 Fn(e,t){if(e){if("string"===typeof e)return Bn(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)?Bn(e,t):void 0}}function Bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function xn(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,i,r=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(o=n.next()).done);l=!0)if(r.push(o.value),t&&r.length===t)break}catch(u){a=!0,i=u}finally{try{l||null==n["return"]||n["return"]()}finally{if(a)throw i}}return r}}function En(e){if(Array.isArray(e))return e}var Nn=window,Tn=Nn.$,$n=Object(l["defineComponent"])({props:{mode:String},components:{ActivityIndicator:r["ActivityIndicator"],Field:en,GroupedSettings:Sn},data:function(){return{isLoading:!0,isSaving:{},passwordConfirmation:"",settingsToSave:null,settingsPerPlugin:[],settingValues:{}}},created:function(){var e=this;r["AjaxHelper"].fetch({method:this.apiMethod}).then((function(t){e.isLoading=!1,e.settingsPerPlugin=t,t.forEach((function(t){t.settings.forEach((function(n){e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}))})),window.anchorLinkFix.scrollToAnchorInUrl(),e.addSectionsToTableOfContents()})).catch((function(){e.isLoading=!1}))},computed:{apiMethod:function(){return"admin"===this.mode?"CorePluginsAdmin.getSystemSettings":"CorePluginsAdmin.getUserSettings"},saveApiMethod:function(){return"admin"===this.mode?"CorePluginsAdmin.setSystemSettings":"CorePluginsAdmin.setUserSettings"}},methods:{addSectionsToTableOfContents:function(){var e=Tn("#generalSettingsTOC");if(e.length){var t=this.settingsPerPlugin;t.forEach((function(t){var n=t.pluginName,o=t.settings;n&&("CoreAdminHome"===n&&o?o.filter((function(e){return e.introduction})).forEach((function(t){e.append('<a href="#/'.concat(n,'PluginSettings">').concat(t.introduction,"</a> "))})):e.append('<a href="#/'.concat(n,'">').concat(n.replace(/([A-Z])/g," $1").trim(),"</a> ")))}))}},saveSetting:function(e){"admin"===this.mode?this.showPasswordConfirmModal(e):this.save(e)},showPasswordConfirmModal:function(e){var t=this;this.settingsToSave=e;var n=this.$refs.root,o=Tn(n),i=function(n){var i=n.keyCode?n.keyCode:n.which;13===i&&(o.find(".confirm-password-modal").modal("close"),t.save(e))};o.find(".confirm-password-modal").modal({dismissible:!1,onOpenEnd:function(){var e=".modal.open #currentUserPassword";Tn(e).focus(),Tn(e).off("keypress").keypress(i)}}).modal("open")},save:function(e){var t=this,n=this.saveApiMethod;this.isSaving[e]=!0;var o=this.getValuesForPlugin(e);r["AjaxHelper"].post({method:n},{settingValues:o,passwordConfirmation:this.passwordConfirmation}).then((function(){t.isSaving[e]=!1;var n=r["NotificationsStore"].show({message:Object(r["translate"])("CoreAdminHome_PluginSettingsSaveSuccess"),id:"generalSettings",context:"success",type:"transient"});r["NotificationsStore"].scrollToNotification(n)})).catch((function(){t.isSaving[e]=!1})),this.passwordConfirmation="",this.settingsToSave=null},getValuesForPlugin:function(e){var t={};return t[e]||(t[e]=[]),Object.entries(this.settingValues).forEach((function(n){var o=kn(n,2),i=o[0],r=o[1],l=i.split("."),a=kn(l,2),u=a[0],c=a[1];if(u===e){var s=r;!1===s?s="0":!0===s&&(s="1"),t[u].push({name:c,value:s})}})),t}}});$n.render=fn;var Mn=$n,Pn=(Object(r["createAngularJsAdapter"])({component:Mn,scope:{mode:{angularJsBind:"@"}},directiveName:"piwikPluginSettings"}),window),Jn=Pn.$;
/*!
* Matomo - free/libre analytics platform
*
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue
index b9e5c7036e..168c4cd255 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldCheckboxArray.vue
@@ -78,9 +78,8 @@ export default defineComponent({
// undo checked changes since we want the parent component to decide if it should go
// through
- (this.$refs.root as HTMLElement).querySelectorAll('input').forEach((inp: HTMLInputElement) => {
- inp.checked = !inp.checked;
- });
+ const item = (this.$refs.root as HTMLElement).querySelectorAll('input').item(changedIndex);
+ item.checked = !item.checked;
this.$emit('update:modelValue', newValue);
},
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue
index 32e6b70a0d..9be40168f5 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldNumber.vue
@@ -11,7 +11,7 @@
:type="uiControl"
:id="name"
:name="name"
- :value="(modelValue || '0').toString()"
+ :value="modelValueFormatted"
@keydown="onChange($event)"
@change="onChange($event)"
v-bind="uiControlAttributes"
@@ -20,7 +20,7 @@
</template>
<script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, nextTick } from 'vue';
import { debounce } from 'CoreHome';
export default defineComponent({
@@ -40,11 +40,15 @@ export default defineComponent({
onChange(event: Event) {
const value = parseFloat((event.target as HTMLInputElement).value);
- // change to previous value so the parent component can determine if this change should
- // go through
- (event.target as HTMLInputElement).value = (this.modelValue || '').toString();
-
this.$emit('update:modelValue', value);
+
+ nextTick(() => {
+ if ((event.target as HTMLInputElement).value !== this.modelValueFormatted) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ (event.target as HTMLInputElement).value = this.modelValueFormatted;
+ }
+ });
},
},
mounted() {
@@ -57,5 +61,10 @@ export default defineComponent({
});
},
},
+ computed: {
+ modelValueFormatted() {
+ return (this.modelValue || '').toString();
+ },
+ },
});
</script>
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue
index dad302597a..1cf5ca7910 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue
@@ -60,7 +60,7 @@
</template>
<script lang="ts">
-import { defineComponent, nextTick } from 'vue';
+import { defineComponent } from 'vue';
interface OptionGroup {
group?: string;
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue
index 1625a8bc31..16ec53f02e 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue
@@ -23,7 +23,7 @@
</template>
<script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, nextTick } from 'vue';
import { debounce } from 'CoreHome';
export default defineComponent({
@@ -65,11 +65,15 @@ export default defineComponent({
onKeydown(event: Event) {
const newValue = (event.target as HTMLInputElement).value;
if (this.modelValue !== newValue) {
- // change to previous value so the parent component can determine if this change should
- // go through
- (event.target as HTMLInputElement).value = this.modelValueText;
-
this.$emit('update:modelValue', newValue);
+
+ nextTick(() => {
+ if ((event.target as HTMLInputElement).value !== this.modelValueText) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ (event.target as HTMLInputElement).value = this.modelValueText;
+ }
+ });
}
},
},
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue
index 70fb296927..e182e95260 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextArray.vue
@@ -24,7 +24,7 @@
</template>
<script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, nextTick } from 'vue';
import { debounce } from 'CoreHome';
export default defineComponent({
@@ -54,11 +54,15 @@ export default defineComponent({
onKeydown(event: Event) {
const values = (event.target as HTMLInputElement).value.split(',').map((v) => v.trim());
if (values.join(', ') !== this.concattedValues) {
- // change to previous value so the parent component can determine if this change should
- // go through
- (event.target as HTMLInputElement).value = this.concattedValues;
-
this.$emit('update:modelValue', values);
+
+ nextTick(() => {
+ if ((event.target as HTMLInputElement).value !== this.concattedValues) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ (event.target as HTMLInputElement).value = this.concattedValues;
+ }
+ });
}
},
},
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue
index 1b593c3509..ad2610b200 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextarea.vue
@@ -10,7 +10,7 @@
:name="name"
v-bind="uiControlAttributes"
:id="name"
- :value="modelValue"
+ :value="modelValueText"
@keydown="onKeydown($event)"
@change="onKeydown($event)"
class="materialize-textarea"
@@ -20,7 +20,7 @@
</template>
<script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, nextTick } from 'vue';
import { debounce } from 'CoreHome';
export default defineComponent({
@@ -41,9 +41,22 @@ export default defineComponent({
// change to previous value so the parent component can determine if this change should
// go through
- (event.target as HTMLInputElement).value = this.modelValue || '';
+ (event.target as HTMLInputElement).value = this.modelValueText;
this.$emit('update:modelValue', newValue);
+
+ nextTick(() => {
+ if ((event.target as HTMLInputElement).value !== this.modelValueText) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ (event.target as HTMLInputElement).value = this.modelValueText;
+ }
+ });
+ },
+ },
+ computed: {
+ modelValueText() {
+ return this.modelValue || '';
},
},
watch: {
diff --git a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue
index 48ea1002f2..510f0f68d7 100644
--- a/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue
+++ b/plugins/CorePluginsAdmin/vue/src/FormField/FieldTextareaArray.vue
@@ -24,7 +24,7 @@
</template>
<script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, nextTick } from 'vue';
import { debounce } from 'CoreHome';
const SEPARATOR = '\n';
@@ -54,11 +54,15 @@ export default defineComponent({
onKeydown(event: KeyboardEvent) {
const value = (event.target as HTMLTextAreaElement).value.split(SEPARATOR);
if (value.join(SEPARATOR) !== this.concattedValue) {
- // change to previous value so the parent component can determine if this change should
- // go through
- (event.target as HTMLInputElement).value = this.concattedValue;
-
this.$emit('update:modelValue', value);
+
+ nextTick(() => {
+ if ((event.target as HTMLInputElement).value !== this.concattedValue) {
+ // change to previous value if the parent component did not update the model value
+ // (done manually because Vue will not notice if a value does NOT change)
+ (event.target as HTMLInputElement).value = this.concattedValue;
+ }
+ });
}
},
},
diff --git a/plugins/CoreVisualizations/javascripts/jqplot.js b/plugins/CoreVisualizations/javascripts/jqplot.js
index 1e9ccac4bd..d93608191b 100644
--- a/plugins/CoreVisualizations/javascripts/jqplot.js
+++ b/plugins/CoreVisualizations/javascripts/jqplot.js
@@ -123,12 +123,19 @@ function rowEvolutionGetMetricNameFromRow(tr)
formatString: '%s',
formatter: $.jqplot.NumberFormatter
}
- }
+ },
}
};
this.jqplotParams = $.extend(true, {}, defaultParams, params);
+ for (var i = 2; typeof this.jqplotParams.axes['y' + i + 'axis'] != 'undefined'; i++) {
+ this.jqplotParams.axes['y' + i + 'axis'].tickOptions = $.extend(true, {}, {
+ formatString: '%s',
+ formatter: $.jqplot.NumberFormatter
+ }, this.jqplotParams.axes['y' + i + 'axis'].tickOptions);
+ }
+
this._setColors();
},
diff --git a/plugins/CustomDimensions/CustomDimensions.php b/plugins/CustomDimensions/CustomDimensions.php
index a55660f383..0ef03a463a 100644
--- a/plugins/CustomDimensions/CustomDimensions.php
+++ b/plugins/CustomDimensions/CustomDimensions.php
@@ -281,8 +281,10 @@ class CustomDimensions extends Plugin
$translationKeys[] = 'CustomDimensions_CustomDimensions';
$translationKeys[] = 'CustomDimensions_CustomDimensionsIntro';
$translationKeys[] = 'CustomDimensions_CustomDimensionsIntroNext';
+ $translationKeys[] = 'CustomDimensions_ScopeTitleVisit';
$translationKeys[] = 'CustomDimensions_ScopeDescriptionVisit';
$translationKeys[] = 'CustomDimensions_ScopeDescriptionVisitMoreInfo';
+ $translationKeys[] = 'CustomDimensions_ScopeTitleAction';
$translationKeys[] = 'CustomDimensions_ScopeDescriptionAction';
$translationKeys[] = 'CustomDimensions_ScopeDescriptionActionMoreInfo';
$translationKeys[] = 'CustomDimensions_IncreaseAvailableCustomDimensionsTitle';
diff --git a/plugins/CustomDimensions/lang/en.json b/plugins/CustomDimensions/lang/en.json
index 5848fdaa0c..59e2bac0f7 100644
--- a/plugins/CustomDimensions/lang/en.json
+++ b/plugins/CustomDimensions/lang/en.json
@@ -35,8 +35,10 @@
"NoValue": "no value",
"PageUrlParam": "Page URL Parameter",
"PluginDescription": "Extend Matomo to your needs by defining and tracking Custom Dimensions in scope Action or Visit",
+ "ScopeTitleAction": "Action Dimensions",
"ScopeDescriptionAction": "Custom Dimensions in scope 'Action' can be sent along any action (page view, download, event, etc.).",
"ScopeDescriptionActionMoreInfo": "Extractions may be defined so that the custom dimension value is extracted from the Page URL, Page Title or a Page URL query parameter.",
+ "ScopeTitleVisit": "Visit Dimensions",
"ScopeDescriptionVisit": "Custom Dimensions in scope 'Visit' can be sent along any tracking request and are stored in the visit.",
"ScopeDescriptionVisitMoreInfo": "If you set different values for a given dimension during the lifetime of a visit, the last value set will be used.",
"XofYLeft": "%1$s of %2$s dimensions left",
diff --git a/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.js b/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.js
index 6bd92046c9..c7ce3bba7a 100644
--- a/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.js
+++ b/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.js
@@ -698,61 +698,61 @@ Editvue_type_script_lang_ts.render = render
},
directiveName: 'piwikCustomDimensionsEdit'
}));
-// 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/CustomDimensions/vue/src/List/List.vue?vue&type=template&id=0432737c
+// 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/CustomDimensions/vue/src/List/List.vue?vue&type=template&id=0c3a05ca
-var Listvue_type_template_id_0432737c_hoisted_1 = ["innerHTML"];
-var Listvue_type_template_id_0432737c_hoisted_2 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_1 = ["innerHTML"];
+var Listvue_type_template_id_0c3a05ca_hoisted_2 = {
class: "loadingPiwik"
};
-var Listvue_type_template_id_0432737c_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
+var Listvue_type_template_id_0c3a05ca_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
src: "plugins/Morpheus/images/loading-blue.gif"
}, null, -1);
-var Listvue_type_template_id_0432737c_hoisted_4 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_4 = {
class: "index"
};
-var Listvue_type_template_id_0432737c_hoisted_5 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_5 = {
class: "name"
};
-var Listvue_type_template_id_0432737c_hoisted_6 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_6 = {
class: "active"
};
-var Listvue_type_template_id_0432737c_hoisted_7 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_7 = {
class: "action"
};
-var Listvue_type_template_id_0432737c_hoisted_8 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_8 = {
colspan: "5"
};
-var Listvue_type_template_id_0432737c_hoisted_9 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_9 = {
class: "index"
};
-var Listvue_type_template_id_0432737c_hoisted_10 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_10 = {
class: "name"
};
-var Listvue_type_template_id_0432737c_hoisted_11 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_11 = {
class: "extractions"
};
-var Listvue_type_template_id_0432737c_hoisted_12 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_12 = {
class: "active"
};
-var Listvue_type_template_id_0432737c_hoisted_13 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_13 = {
class: "action"
};
-var Listvue_type_template_id_0432737c_hoisted_14 = ["href"];
-var Listvue_type_template_id_0432737c_hoisted_15 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_14 = ["href"];
+var Listvue_type_template_id_0c3a05ca_hoisted_15 = {
class: "tableActionBar"
};
-var Listvue_type_template_id_0432737c_hoisted_16 = ["disabled", "onClick"];
+var Listvue_type_template_id_0c3a05ca_hoisted_16 = ["disabled", "onClick"];
-var Listvue_type_template_id_0432737c_hoisted_17 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+var Listvue_type_template_id_0c3a05ca_hoisted_17 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon-add"
}, null, -1);
-var Listvue_type_template_id_0432737c_hoisted_18 = {
+var Listvue_type_template_id_0c3a05ca_hoisted_18 = {
class: "info"
};
-function Listvue_type_template_id_0432737c_render(_ctx, _cache, $props, $setup, $data, $options) {
+function Listvue_type_template_id_0c3a05ca_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_EnrichedHeadline = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("EnrichedHeadline");
var _component_ContentBlock = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ContentBlock");
@@ -768,46 +768,46 @@ function Listvue_type_template_id_0432737c_render(_ctx, _cache, $props, $setup,
_: 1
})]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", {
innerHTML: _ctx.$sanitize(_ctx.contentIntroText)
- }, null, 8, Listvue_type_template_id_0432737c_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Listvue_type_template_id_0432737c_hoisted_2, [Listvue_type_template_id_0432737c_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_LoadingData')), 1)])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.isLoading]])], 512), [[_directive_content_intro]]), (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.availableScopes, function (scope) {
+ }, null, 8, Listvue_type_template_id_0c3a05ca_hoisted_1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Listvue_type_template_id_0c3a05ca_hoisted_2, [Listvue_type_template_id_0c3a05ca_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_LoadingData')), 1)])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.isLoading]])], 512), [[_directive_content_intro]]), (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.availableScopes, function (scope) {
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", {
key: scope.value
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ContentBlock, {
- "content-title": "".concat(scope.name, " Dimensions")
+ "content-title": _ctx.translate("CustomDimensions_ScopeTitle".concat(_ctx.ucfirst(scope.value)))
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
- return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("CustomDimensions_ScopeDescription".concat(_ctx.ucfirst(scope.value)))) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("CustomDimensions_ScopeDescription".concat(_ctx.ucfirst(scope.value), "MoreInfo"))), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("table", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("thead", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0432737c_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Id')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0432737c_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Name')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", {
+ return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("CustomDimensions_ScopeDescription".concat(_ctx.ucfirst(scope.value)))) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("CustomDimensions_ScopeDescription".concat(_ctx.ucfirst(scope.value), "MoreInfo"))), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("table", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("thead", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0c3a05ca_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Id')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0c3a05ca_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Name')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", {
class: "extractions"
- }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_Extractions')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.supportsExtractions]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0432737c_hoisted_6, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CorePluginsAdmin_Active')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0432737c_hoisted_7, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Action')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tbody", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_8, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_NoCustomDimensionConfigured')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.numSlotsUsed === 0 && !_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.sortedCustomDimensionsByScope[scope.value], function (customDimension) {
+ }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_Extractions')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.supportsExtractions]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0c3a05ca_hoisted_6, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CorePluginsAdmin_Active')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", Listvue_type_template_id_0c3a05ca_hoisted_7, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Action')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tbody", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_8, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_NoCustomDimensionConfigured')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.numSlotsUsed === 0 && !_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.sortedCustomDimensionsByScope[scope.value], function (customDimension) {
var _customDimension$extr;
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tr", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["customdimension", customDimension.idcustomdimension]),
key: customDimension.idcustomdimension
- }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_9, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(customDimension.idcustomdimension), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(customDimension.name), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_11, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_9, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(customDimension.idcustomdimension), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(customDimension.name), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_11, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
'icon-ok': (_customDimension$extr = customDimension.extractions[0]) === null || _customDimension$extr === void 0 ? void 0 : _customDimension$extr.pattern
})
- }, null, 2)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.supportsExtractions]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ }, null, 2)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], scope.supportsExtractions]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
'icon-ok': customDimension.active
})
- }, null, 2)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0432737c_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+ }, null, 2)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Listvue_type_template_id_0c3a05ca_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
class: "table-action icon-edit",
href: "#?idDimension=".concat(customDimension.idcustomdimension, "&scope=").concat(scope.value)
- }, null, 8, Listvue_type_template_id_0432737c_hoisted_14)])], 2);
- }), 128))])], 512), [[_directive_content_table]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Listvue_type_template_id_0432737c_hoisted_15, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", {
+ }, null, 8, Listvue_type_template_id_0c3a05ca_hoisted_14)])], 2);
+ }), 128))])], 512), [[_directive_content_table]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Listvue_type_template_id_0c3a05ca_hoisted_15, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", {
class: "btn",
disabled: !scope.numSlotsLeft,
onClick: function onClick($event) {
return _ctx.addDimension(scope.value);
}
- }, [Listvue_type_template_id_0432737c_hoisted_17, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_ConfigureNewDimension')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Listvue_type_template_id_0432737c_hoisted_18, "(" + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_XofYLeft', scope.numSlotsLeft, scope.numSlotsAvailable)) + ")", 1)], 8, Listvue_type_template_id_0432737c_hoisted_16), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.isLoading]])])];
+ }, [Listvue_type_template_id_0c3a05ca_hoisted_17, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_ConfigureNewDimension')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Listvue_type_template_id_0c3a05ca_hoisted_18, "(" + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CustomDimensions_XofYLeft', scope.numSlotsLeft, scope.numSlotsAvailable)) + ")", 1)], 8, Listvue_type_template_id_0c3a05ca_hoisted_16), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.isLoading]])])];
}),
_: 2
}, 1032, ["content-title"])], 512)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.isLoading]]);
}), 128))]);
}
-// CONCATENATED MODULE: ./plugins/CustomDimensions/vue/src/List/List.vue?vue&type=template&id=0432737c
+// CONCATENATED MODULE: ./plugins/CustomDimensions/vue/src/List/List.vue?vue&type=template&id=0c3a05ca
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CustomDimensions/vue/src/List/List.vue?vue&type=script&lang=ts
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -892,7 +892,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
-Listvue_type_script_lang_ts.render = Listvue_type_template_id_0432737c_render
+Listvue_type_script_lang_ts.render = Listvue_type_template_id_0c3a05ca_render
/* harmony default export */ var List = (Listvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CustomDimensions/vue/src/List/List.adapter.ts
diff --git a/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.min.js b/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.min.js
index 153d745042..b535735b02 100644
--- a/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.min.js
+++ b/plugins/CustomDimensions/vue/dist/CustomDimensions.umd.min.js
@@ -1,4 +1,4 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["CustomDimensions"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["CustomDimensions"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},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 i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},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/CustomDimensions/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"CustomDimensionsStore",(function(){return B})),n.d(t,"Edit",(function(){return P})),n.d(t,"List",(function(){return pe})),n.d(t,"Manage",(function(){return Se})),"undefined"!==typeof window){var i=window.document.currentScript,o=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var s=n("19dc"),a=n("8bbf"),c={class:"editCustomDimension"},r={class:"loadingPiwik"},l=Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif"},null,-1),u={class:"row form-group"},m={class:"col s12"},d={class:"col s12 m6"},p={class:"row"},b={class:"col s12 m6"},f={class:"col s12 m6"},v={class:"col s12"},O=["onClick"],j={class:"row"},h={class:"col s12"},D={class:"col s12 m6 form-help"},C=["value","disabled"],g=["value","disabled"],V={class:"btn cancel",type:"button",href:"#list"},E={class:"alert alert-info howToTrackInfo"},S=["innerHTML"],N=["innerHTML"],y=["innerHTML"],x=["innerHTML"];function w(e,t,n,i,o,s){var w=Object(a["resolveComponent"])("Field"),k=Object(a["resolveComponent"])("ContentBlock"),_=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",c,[Object(a["createVNode"])(k,{"content-title":e.contentTitleText},{default:Object(a["withCtx"])((function(){var n;return[Object(a["withDirectives"])(Object(a["createElementVNode"])("p",null,[Object(a["createElementVNode"])("span",r,[l,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("General_LoadingData")),1)])],512),[[a["vShow"],e.isLoading||e.isUpdating]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("form",{onSubmit:t[4]||(t[4]=Object(a["withModifiers"])((function(t){return e.edit?e.updateCustomDimension():e.createCustomDimension()}),["prevent"]))},[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"text",name:"name",modelValue:e.dimension.name,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dimension.name=t}),maxlength:255,required:!0,title:e.translate("General_Name"),"inline-help":e.translate("CustomDimensions_NameAllowedCharacters")},null,8,["modelValue","title","inline-help"])]),Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"checkbox",name:"active",modelValue:e.dimension.active,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.dimension.active=t}),title:e.translate("CorePluginsAdmin_Active"),"inline-help":e.translate("CustomDimensions_CannotBeDeleted")},null,8,["modelValue","title","inline-help"])]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",u,[Object(a["createElementVNode"])("h3",m,Object(a["toDisplayString"])(e.translate("CustomDimensions_ExtractValue")),1),Object(a["createElementVNode"])("div",d,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.dimension.extractions,(function(n,i){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])("".concat(i,"extraction ")),key:i},[Object(a["createElementVNode"])("div",p,[Object(a["createElementVNode"])("div",b,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"select",name:"".concat(i,"dimension"),modelValue:n.dimension,"onUpdate:modelValue":function(e){return n.dimension=e},"full-width":!0,options:e.extractionDimensionsOptions},null,8,["name","modelValue","onUpdate:modelValue","options"])])]),Object(a["createElementVNode"])("div",f,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"text",name:"".concat(i,"pattern"),modelValue:n.pattern,"onUpdate:modelValue":function(e){return n.pattern=e},"full-width":!0,title:"urlparam"===n.dimension?e.translate("CustomDimensions_UrlQueryStringParameter"):"eg. /blog/(.*)/"},null,8,["name","modelValue","onUpdate:modelValue","title"])])]),Object(a["createElementVNode"])("div",v,[Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{class:"icon-plus",onClick:t[2]||(t[2]=function(t){return e.addExtraction()})},null,512),[[a["vShow"],n.pattern]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{class:"icon-minus",onClick:function(t){return e.removeExtraction(i)}},null,8,O),[[a["vShow"],e.dimension.extractions.length>1]])])])],2)})),128)),Object(a["createElementVNode"])("div",j,[Object(a["createElementVNode"])("div",h,[Object(a["createElementVNode"])("div",null,[Object(a["withDirectives"])(Object(a["createVNode"])(w,{uicontrol:"checkbox",name:"casesensitive",modelValue:e.dimension.case_sensitive,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.dimension.case_sensitive=t}),title:e.translate("Goals_CaseSensitive")},null,8,["modelValue","title"]),[[a["vShow"],null===(n=e.dimension.extractions[0])||void 0===n?void 0:n.pattern]])])])])]),Object(a["createElementVNode"])("div",D,Object(a["toDisplayString"])(e.translate("CustomDimensions_ExtractionsHelp")),1)],512),[[a["vShow"],e.doesScopeSupportExtraction]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{class:"btn update",type:"submit",value:e.translate("General_Update"),disabled:e.isUpdating,style:{"margin-right":"3.5px"}},null,8,C),[[a["vShow"],e.edit]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{class:"btn create",type:"submit",value:e.translate("General_Create"),disabled:e.isUpdating,style:{"margin-right":"3.5px"}},null,8,g),[[a["vShow"],e.create]]),Object(a["createElementVNode"])("a",V,Object(a["toDisplayString"])(e.translate("General_Cancel")),1)],32),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",E,[Object(a["createElementVNode"])("strong",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyTitle")),1),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaJs")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCodeViaJs(e.dimension))},null,8,S)],512),[[_,{}]]),Object(a["createElementVNode"])("p",{innerHTML:e.$sanitize(e.howToTrackManuallyText)},null,8,N),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaPhp")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCodeViaPhp(e.dimension))},null,8,y)],512),[[_,{}]]),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaHttp")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCode)},null,8,x)],512),[[_,{}]])],512),[[a["vShow"],e.edit]])],512),[[a["vShow"],!e.isLoading]])]})),_:1},8,["content-title"])])}var k=n("a5a2");function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function M(e,t,n){return t&&T(e.prototype,t),n&&T(e,n),e}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["CustomDimensions"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["CustomDimensions"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},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 i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},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/CustomDimensions/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"CustomDimensionsStore",(function(){return B})),n.d(t,"Edit",(function(){return P})),n.d(t,"List",(function(){return pe})),n.d(t,"Manage",(function(){return Ee})),"undefined"!==typeof window){var i=window.document.currentScript,o=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var s=n("19dc"),a=n("8bbf"),c={class:"editCustomDimension"},r={class:"loadingPiwik"},l=Object(a["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif"},null,-1),u={class:"row form-group"},m={class:"col s12"},d={class:"col s12 m6"},p={class:"row"},b={class:"col s12 m6"},f={class:"col s12 m6"},v={class:"col s12"},O=["onClick"],j={class:"row"},h={class:"col s12"},D={class:"col s12 m6 form-help"},C=["value","disabled"],g=["value","disabled"],V={class:"btn cancel",type:"button",href:"#list"},S={class:"alert alert-info howToTrackInfo"},E=["innerHTML"],N=["innerHTML"],y=["innerHTML"],x=["innerHTML"];function w(e,t,n,i,o,s){var w=Object(a["resolveComponent"])("Field"),k=Object(a["resolveComponent"])("ContentBlock"),_=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",c,[Object(a["createVNode"])(k,{"content-title":e.contentTitleText},{default:Object(a["withCtx"])((function(){var n;return[Object(a["withDirectives"])(Object(a["createElementVNode"])("p",null,[Object(a["createElementVNode"])("span",r,[l,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("General_LoadingData")),1)])],512),[[a["vShow"],e.isLoading||e.isUpdating]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("form",{onSubmit:t[4]||(t[4]=Object(a["withModifiers"])((function(t){return e.edit?e.updateCustomDimension():e.createCustomDimension()}),["prevent"]))},[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"text",name:"name",modelValue:e.dimension.name,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.dimension.name=t}),maxlength:255,required:!0,title:e.translate("General_Name"),"inline-help":e.translate("CustomDimensions_NameAllowedCharacters")},null,8,["modelValue","title","inline-help"])]),Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"checkbox",name:"active",modelValue:e.dimension.active,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.dimension.active=t}),title:e.translate("CorePluginsAdmin_Active"),"inline-help":e.translate("CustomDimensions_CannotBeDeleted")},null,8,["modelValue","title","inline-help"])]),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",u,[Object(a["createElementVNode"])("h3",m,Object(a["toDisplayString"])(e.translate("CustomDimensions_ExtractValue")),1),Object(a["createElementVNode"])("div",d,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.dimension.extractions,(function(n,i){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:Object(a["normalizeClass"])("".concat(i,"extraction ")),key:i},[Object(a["createElementVNode"])("div",p,[Object(a["createElementVNode"])("div",b,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"select",name:"".concat(i,"dimension"),modelValue:n.dimension,"onUpdate:modelValue":function(e){return n.dimension=e},"full-width":!0,options:e.extractionDimensionsOptions},null,8,["name","modelValue","onUpdate:modelValue","options"])])]),Object(a["createElementVNode"])("div",f,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(w,{uicontrol:"text",name:"".concat(i,"pattern"),modelValue:n.pattern,"onUpdate:modelValue":function(e){return n.pattern=e},"full-width":!0,title:"urlparam"===n.dimension?e.translate("CustomDimensions_UrlQueryStringParameter"):"eg. /blog/(.*)/"},null,8,["name","modelValue","onUpdate:modelValue","title"])])]),Object(a["createElementVNode"])("div",v,[Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{class:"icon-plus",onClick:t[2]||(t[2]=function(t){return e.addExtraction()})},null,512),[[a["vShow"],n.pattern]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("span",{class:"icon-minus",onClick:function(t){return e.removeExtraction(i)}},null,8,O),[[a["vShow"],e.dimension.extractions.length>1]])])])],2)})),128)),Object(a["createElementVNode"])("div",j,[Object(a["createElementVNode"])("div",h,[Object(a["createElementVNode"])("div",null,[Object(a["withDirectives"])(Object(a["createVNode"])(w,{uicontrol:"checkbox",name:"casesensitive",modelValue:e.dimension.case_sensitive,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.dimension.case_sensitive=t}),title:e.translate("Goals_CaseSensitive")},null,8,["modelValue","title"]),[[a["vShow"],null===(n=e.dimension.extractions[0])||void 0===n?void 0:n.pattern]])])])])]),Object(a["createElementVNode"])("div",D,Object(a["toDisplayString"])(e.translate("CustomDimensions_ExtractionsHelp")),1)],512),[[a["vShow"],e.doesScopeSupportExtraction]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{class:"btn update",type:"submit",value:e.translate("General_Update"),disabled:e.isUpdating,style:{"margin-right":"3.5px"}},null,8,C),[[a["vShow"],e.edit]]),Object(a["withDirectives"])(Object(a["createElementVNode"])("input",{class:"btn create",type:"submit",value:e.translate("General_Create"),disabled:e.isUpdating,style:{"margin-right":"3.5px"}},null,8,g),[[a["vShow"],e.create]]),Object(a["createElementVNode"])("a",V,Object(a["toDisplayString"])(e.translate("General_Cancel")),1)],32),Object(a["withDirectives"])(Object(a["createElementVNode"])("div",S,[Object(a["createElementVNode"])("strong",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyTitle")),1),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaJs")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCodeViaJs(e.dimension))},null,8,E)],512),[[_,{}]]),Object(a["createElementVNode"])("p",{innerHTML:e.$sanitize(e.howToTrackManuallyText)},null,8,N),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaPhp")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCodeViaPhp(e.dimension))},null,8,y)],512),[[_,{}]]),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToTrackManuallyViaHttp")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{innerHTML:e.$sanitize(e.manuallyTrackCode)},null,8,x)],512),[[_,{}]])],512),[[a["vShow"],e.edit]])],512),[[a["vShow"],!e.isLoading]])]})),_:1},8,["content-title"])])}var k=n("a5a2");function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function M(e,t,n){return t&&T(e.prototype,t),n&&T(e,n),e}function A(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
*
@@ -17,17 +17,17 @@ function L(e){return"".concat(e[0].toUpperCase()).concat(e.slice(1))}var H="cust
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */function se(e,t,n,i,o,s){var c=Object(a["resolveComponent"])("EnrichedHeadline"),r=Object(a["resolveComponent"])("ContentBlock"),l=Object(a["resolveDirective"])("content-intro"),u=Object(a["resolveDirective"])("content-table");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("h2",null,[Object(a["createVNode"])(c,null,{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_CustomDimensions")),1)]})),_:1})]),Object(a["createElementVNode"])("p",{innerHTML:e.$sanitize(e.contentIntroText)},null,8,q),Object(a["withDirectives"])(Object(a["createElementVNode"])("p",null,[Object(a["createElementVNode"])("span",z,[F,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("General_LoadingData")),1)])],512),[[a["vShow"],e.isLoading]])],512),[[l]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.availableScopes,(function(t){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:t.value},[Object(a["createVNode"])(r,{"content-title":"".concat(t.name," Dimensions")},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_ScopeDescription".concat(e.ucfirst(t.value))))+" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ScopeDescription".concat(e.ucfirst(t.value),"MoreInfo"))),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("table",null,[Object(a["createElementVNode"])("thead",null,[Object(a["createElementVNode"])("tr",null,[Object(a["createElementVNode"])("th",G,Object(a["toDisplayString"])(e.translate("General_Id")),1),Object(a["createElementVNode"])("th",J,Object(a["toDisplayString"])(e.translate("General_Name")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("th",{class:"extractions"},Object(a["toDisplayString"])(e.translate("CustomDimensions_Extractions")),513),[[a["vShow"],t.supportsExtractions]]),Object(a["createElementVNode"])("th",$,Object(a["toDisplayString"])(e.translate("CorePluginsAdmin_Active")),1),Object(a["createElementVNode"])("th",Q,Object(a["toDisplayString"])(e.translate("General_Action")),1)])]),Object(a["createElementVNode"])("tbody",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("tr",null,[Object(a["createElementVNode"])("td",X,Object(a["toDisplayString"])(e.translate("CustomDimensions_NoCustomDimensionConfigured")),1)],512),[[a["vShow"],0===t.numSlotsUsed&&!e.isLoading]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sortedCustomDimensionsByScope[t.value],(function(e){var n;return Object(a["openBlock"])(),Object(a["createElementBlock"])("tr",{class:Object(a["normalizeClass"])(["customdimension",e.idcustomdimension]),key:e.idcustomdimension},[Object(a["createElementVNode"])("td",Y,Object(a["toDisplayString"])(e.idcustomdimension),1),Object(a["createElementVNode"])("td",K,Object(a["toDisplayString"])(e.name),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("td",R,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])({"icon-ok":null===(n=e.extractions[0])||void 0===n?void 0:n.pattern})},null,2)],512),[[a["vShow"],t.supportsExtractions]]),Object(a["createElementVNode"])("td",W,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])({"icon-ok":e.active})},null,2)]),Object(a["createElementVNode"])("td",Z,[Object(a["createElementVNode"])("a",{class:"table-action icon-edit",href:"#?idDimension=".concat(e.idcustomdimension,"&scope=").concat(t.value)},null,8,ee)])],2)})),128))])],512),[[u]]),Object(a["createElementVNode"])("div",te,[Object(a["withDirectives"])(Object(a["createElementVNode"])("button",{class:"btn",disabled:!t.numSlotsLeft,onClick:function(n){return e.addDimension(t.value)}},[ie,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ConfigureNewDimension"))+" ",1),Object(a["createElementVNode"])("span",oe,"("+Object(a["toDisplayString"])(e.translate("CustomDimensions_XofYLeft",t.numSlotsLeft,t.numSlotsAvailable))+")",1)],8,ne),[[a["vShow"],!e.isLoading]])])]})),_:2},1032,["content-title"])],512)),[[a["vShow"],!e.isLoading]])})),128))])}function ae(e){return ue(e)||le(e)||re(e)||ce()}function ce(){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 re(e,t){if(e){if("string"===typeof e)return me(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)?me(e,t):void 0}}function le(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ue(e){if(Array.isArray(e))return me(e)}function me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var de=Object(a["defineComponent"])({name:"listcustomdimensions",components:{EnrichedHeadline:s["EnrichedHeadline"],ContentBlock:s["ContentBlock"]},directives:{ContentIntro:s["ContentIntro"],ContentTable:s["ContentTable"]},created:function(){B.fetch()},methods:{ucfirst:function(e){return L(e)},addDimension:function(e){s["MatomoUrl"].updateHashToUrl("/?idDimension=0&scope=".concat(e))}},computed:{isLoading:function(){return B.isLoading.value},availableScopes:function(){return B.availableScopes.value},contentIntroText:function(){var e=Object(s["translate"])("CustomDimensions_CustomDimensionsIntroNext",'<a target=_blank href="https://piwik.org/docs/custom-variables">',"</a>",'<a target=_blank href="https://piwik.org/faq/general/faq_21117">',"</a>"),t=Object(s["translate"])("CustomDimensions_CustomDimensionsIntro",'<a target=_blank href="https://piwik.org/docs/custom-dimensions">',"</a>",this.siteName);return"".concat(e).concat(t)},customDimensions:function(){return B.customDimensions.value},sortedCustomDimensions:function(){var e=ae(this.customDimensions);return e.sort((function(e,t){var n=parseInt("".concat(e.idcustomdimension),10),i=parseInt("".concat(t.idcustomdimension),10);return n-i})),e},sortedCustomDimensionsByScope:function(){var e={};return this.sortedCustomDimensions.reduce((function(e,t){return e[t.scope]=e[t.scope]||[],e[t.scope].push(t),e}),e),e},siteName:function(){return s["Matomo"].helper.htmlDecode(s["Matomo"].siteName)}}});de.render=se;var pe=de,be=(Object(s["createAngularJsAdapter"])({component:pe,directiveName:"piwikCustomDimensionsList"}),{class:"manageCustomDimensions"}),fe={key:0},ve=Object(a["createElementVNode"])("br",null,null,-1),Oe=Object(a["createElementVNode"])("br",null,null,-1),je=Object(a["createElementVNode"])("br",null,null,-1),he=Object(a["createElementVNode"])("br",null,null,-1),De=["textContent"],Ce=["textContent"],ge={key:1};
+ */function se(e,t,n,i,o,s){var c=Object(a["resolveComponent"])("EnrichedHeadline"),r=Object(a["resolveComponent"])("ContentBlock"),l=Object(a["resolveDirective"])("content-intro"),u=Object(a["resolveDirective"])("content-table");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("div",null,[Object(a["createElementVNode"])("h2",null,[Object(a["createVNode"])(c,null,{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_CustomDimensions")),1)]})),_:1})]),Object(a["createElementVNode"])("p",{innerHTML:e.$sanitize(e.contentIntroText)},null,8,q),Object(a["withDirectives"])(Object(a["createElementVNode"])("p",null,[Object(a["createElementVNode"])("span",z,[F,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("General_LoadingData")),1)])],512),[[a["vShow"],e.isLoading]])],512),[[l]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.availableScopes,(function(t){return Object(a["withDirectives"])((Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:t.value},[Object(a["createVNode"])(r,{"content-title":e.translate("CustomDimensions_ScopeTitle".concat(e.ucfirst(t.value)))},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_ScopeDescription".concat(e.ucfirst(t.value))))+" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ScopeDescription".concat(e.ucfirst(t.value),"MoreInfo"))),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("table",null,[Object(a["createElementVNode"])("thead",null,[Object(a["createElementVNode"])("tr",null,[Object(a["createElementVNode"])("th",G,Object(a["toDisplayString"])(e.translate("General_Id")),1),Object(a["createElementVNode"])("th",J,Object(a["toDisplayString"])(e.translate("General_Name")),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("th",{class:"extractions"},Object(a["toDisplayString"])(e.translate("CustomDimensions_Extractions")),513),[[a["vShow"],t.supportsExtractions]]),Object(a["createElementVNode"])("th",$,Object(a["toDisplayString"])(e.translate("CorePluginsAdmin_Active")),1),Object(a["createElementVNode"])("th",Q,Object(a["toDisplayString"])(e.translate("General_Action")),1)])]),Object(a["createElementVNode"])("tbody",null,[Object(a["withDirectives"])(Object(a["createElementVNode"])("tr",null,[Object(a["createElementVNode"])("td",X,Object(a["toDisplayString"])(e.translate("CustomDimensions_NoCustomDimensionConfigured")),1)],512),[[a["vShow"],0===t.numSlotsUsed&&!e.isLoading]]),(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(e.sortedCustomDimensionsByScope[t.value],(function(e){var n;return Object(a["openBlock"])(),Object(a["createElementBlock"])("tr",{class:Object(a["normalizeClass"])(["customdimension",e.idcustomdimension]),key:e.idcustomdimension},[Object(a["createElementVNode"])("td",Y,Object(a["toDisplayString"])(e.idcustomdimension),1),Object(a["createElementVNode"])("td",K,Object(a["toDisplayString"])(e.name),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("td",R,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])({"icon-ok":null===(n=e.extractions[0])||void 0===n?void 0:n.pattern})},null,2)],512),[[a["vShow"],t.supportsExtractions]]),Object(a["createElementVNode"])("td",W,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])({"icon-ok":e.active})},null,2)]),Object(a["createElementVNode"])("td",Z,[Object(a["createElementVNode"])("a",{class:"table-action icon-edit",href:"#?idDimension=".concat(e.idcustomdimension,"&scope=").concat(t.value)},null,8,ee)])],2)})),128))])],512),[[u]]),Object(a["createElementVNode"])("div",te,[Object(a["withDirectives"])(Object(a["createElementVNode"])("button",{class:"btn",disabled:!t.numSlotsLeft,onClick:function(n){return e.addDimension(t.value)}},[ie,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ConfigureNewDimension"))+" ",1),Object(a["createElementVNode"])("span",oe,"("+Object(a["toDisplayString"])(e.translate("CustomDimensions_XofYLeft",t.numSlotsLeft,t.numSlotsAvailable))+")",1)],8,ne),[[a["vShow"],!e.isLoading]])])]})),_:2},1032,["content-title"])],512)),[[a["vShow"],!e.isLoading]])})),128))])}function ae(e){return ue(e)||le(e)||re(e)||ce()}function ce(){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 re(e,t){if(e){if("string"===typeof e)return me(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)?me(e,t):void 0}}function le(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ue(e){if(Array.isArray(e))return me(e)}function me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var de=Object(a["defineComponent"])({name:"listcustomdimensions",components:{EnrichedHeadline:s["EnrichedHeadline"],ContentBlock:s["ContentBlock"]},directives:{ContentIntro:s["ContentIntro"],ContentTable:s["ContentTable"]},created:function(){B.fetch()},methods:{ucfirst:function(e){return L(e)},addDimension:function(e){s["MatomoUrl"].updateHashToUrl("/?idDimension=0&scope=".concat(e))}},computed:{isLoading:function(){return B.isLoading.value},availableScopes:function(){return B.availableScopes.value},contentIntroText:function(){var e=Object(s["translate"])("CustomDimensions_CustomDimensionsIntroNext",'<a target=_blank href="https://piwik.org/docs/custom-variables">',"</a>",'<a target=_blank href="https://piwik.org/faq/general/faq_21117">',"</a>"),t=Object(s["translate"])("CustomDimensions_CustomDimensionsIntro",'<a target=_blank href="https://piwik.org/docs/custom-dimensions">',"</a>",this.siteName);return"".concat(e).concat(t)},customDimensions:function(){return B.customDimensions.value},sortedCustomDimensions:function(){var e=ae(this.customDimensions);return e.sort((function(e,t){var n=parseInt("".concat(e.idcustomdimension),10),i=parseInt("".concat(t.idcustomdimension),10);return n-i})),e},sortedCustomDimensionsByScope:function(){var e={};return this.sortedCustomDimensions.reduce((function(e,t){return e[t.scope]=e[t.scope]||[],e[t.scope].push(t),e}),e),e},siteName:function(){return s["Matomo"].helper.htmlDecode(s["Matomo"].siteName)}}});de.render=se;var pe=de,be=(Object(s["createAngularJsAdapter"])({component:pe,directiveName:"piwikCustomDimensionsList"}),{class:"manageCustomDimensions"}),fe={key:0},ve=Object(a["createElementVNode"])("br",null,null,-1),Oe=Object(a["createElementVNode"])("br",null,null,-1),je=Object(a["createElementVNode"])("br",null,null,-1),he=Object(a["createElementVNode"])("br",null,null,-1),De=["textContent"],Ce=["textContent"],ge={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 Ve(e,t,n,i,o,s){var c=Object(a["resolveComponent"])("CustomDimensionsList"),r=Object(a["resolveComponent"])("ContentBlock"),l=Object(a["resolveComponent"])("CustomDimensionsEdit"),u=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",be,[e.editMode?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",fe,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(c)]),Object(a["createVNode"])(r,{id:"customDimensionsCreateMoreDimensions","content-title":e.translate("CustomDimensions_IncreaseAvailableCustomDimensionsTitle")},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("p",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_IncreaseAvailableCustomDimensionsTakesLong"))+" ",1),ve,Oe,Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToCreateCustomDimension"))+" ",1),je,he]),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{textContent:Object(a["toDisplayString"])(e.addCustomDimCode)},null,8,De)],512),[[u,{}]]),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToManyCreateCustomDimensions"))+" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ExampleCreateCustomDimensions",5)),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{textContent:Object(a["toDisplayString"])(e.addMultipleCustomDimCode)},null,8,Ce)],512),[[u,{}]])]})),_:1},8,["content-title"])])),e.editMode?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",ge,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(l,{"dimension-id":e.dimensionId,"dimension-scope":e.dimensionScope},null,8,["dimension-id","dimension-scope"])])])):Object(a["createCommentVNode"])("",!0)])}var Ee=Object(a["defineComponent"])({components:{CustomDimensionsList:pe,ContentBlock:s["ContentBlock"],CustomDimensionsEdit:P},directives:{SelectOnFocus:s["SelectOnFocus"]},data:function(){return{editMode:!1,dimensionId:null,dimensionScope:""}},created:function(){var e=this;Object(a["watch"])((function(){return s["MatomoUrl"].hashParsed.value}),(function(){e.initState()})),this.initState()},methods:{getValidDimensionScope:function(e){return-1!==["action","visit"].indexOf(e)?e:""},initState:function(){var e=s["MatomoUrl"].hashParsed.value.idDimension;if(e){var t=this.getValidDimensionScope(s["MatomoUrl"].hashParsed.value.scope);if("0"===e){var n={isAllowed:!0,scope:t};if(s["Matomo"].postEvent("CustomDimensions.initAddDimension",n),n&&!n.isAllowed)return this.editMode=!1,this.dimensionId=null,void(this.dimensionScope="")}this.editMode=!0,this.dimensionId=parseInt(e,10),this.dimensionScope=t}else this.editMode=!1,this.dimensionId=null,this.dimensionScope="";s["Matomo"].helper.lazyScrollToContent()}},computed:{addCustomDimCode:function(){return"./console customdimensions:add-custom-dimension --scope=action\n./console customdimensions:add-custom-dimension --scope=visit"},addMultipleCustomDimCode:function(){return"./console customdimensions:add-custom-dimension --scope=action --count=5"}}});Ee.render=Ve;var Se=Ee;
+ */function Ve(e,t,n,i,o,s){var c=Object(a["resolveComponent"])("CustomDimensionsList"),r=Object(a["resolveComponent"])("ContentBlock"),l=Object(a["resolveComponent"])("CustomDimensionsEdit"),u=Object(a["resolveDirective"])("select-on-focus");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",be,[e.editMode?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",fe,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(c)]),Object(a["createVNode"])(r,{id:"customDimensionsCreateMoreDimensions","content-title":e.translate("CustomDimensions_IncreaseAvailableCustomDimensionsTitle")},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("p",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_IncreaseAvailableCustomDimensionsTakesLong"))+" ",1),ve,Oe,Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToCreateCustomDimension"))+" ",1),je,he]),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{textContent:Object(a["toDisplayString"])(e.addCustomDimCode)},null,8,De)],512),[[u,{}]]),Object(a["createElementVNode"])("p",null,Object(a["toDisplayString"])(e.translate("CustomDimensions_HowToManyCreateCustomDimensions"))+" "+Object(a["toDisplayString"])(e.translate("CustomDimensions_ExampleCreateCustomDimensions",5)),1),Object(a["withDirectives"])(Object(a["createElementVNode"])("pre",null,[Object(a["createElementVNode"])("code",{textContent:Object(a["toDisplayString"])(e.addMultipleCustomDimCode)},null,8,Ce)],512),[[u,{}]])]})),_:1},8,["content-title"])])),e.editMode?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",ge,[Object(a["createElementVNode"])("div",null,[Object(a["createVNode"])(l,{"dimension-id":e.dimensionId,"dimension-scope":e.dimensionScope},null,8,["dimension-id","dimension-scope"])])])):Object(a["createCommentVNode"])("",!0)])}var Se=Object(a["defineComponent"])({components:{CustomDimensionsList:pe,ContentBlock:s["ContentBlock"],CustomDimensionsEdit:P},directives:{SelectOnFocus:s["SelectOnFocus"]},data:function(){return{editMode:!1,dimensionId:null,dimensionScope:""}},created:function(){var e=this;Object(a["watch"])((function(){return s["MatomoUrl"].hashParsed.value}),(function(){e.initState()})),this.initState()},methods:{getValidDimensionScope:function(e){return-1!==["action","visit"].indexOf(e)?e:""},initState:function(){var e=s["MatomoUrl"].hashParsed.value.idDimension;if(e){var t=this.getValidDimensionScope(s["MatomoUrl"].hashParsed.value.scope);if("0"===e){var n={isAllowed:!0,scope:t};if(s["Matomo"].postEvent("CustomDimensions.initAddDimension",n),n&&!n.isAllowed)return this.editMode=!1,this.dimensionId=null,void(this.dimensionScope="")}this.editMode=!0,this.dimensionId=parseInt(e,10),this.dimensionScope=t}else this.editMode=!1,this.dimensionId=null,this.dimensionScope="";s["Matomo"].helper.lazyScrollToContent()}},computed:{addCustomDimCode:function(){return"./console customdimensions:add-custom-dimension --scope=action\n./console customdimensions:add-custom-dimension --scope=visit"},addMultipleCustomDimCode:function(){return"./console customdimensions:add-custom-dimension --scope=action --count=5"}}});Se.render=Ve;var Ee=Se;
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */Object(s["createAngularJsAdapter"])({component:Se,directiveName:"piwikCustomDimensionsManage"})}})}));
+ */Object(s["createAngularJsAdapter"])({component:Ee,directiveName:"piwikCustomDimensionsManage"})}})}));
//# sourceMappingURL=CustomDimensions.umd.min.js.map \ No newline at end of file
diff --git a/plugins/CustomDimensions/vue/src/List/List.vue b/plugins/CustomDimensions/vue/src/List/List.vue
index b41aed48e2..78ea09e7ee 100644
--- a/plugins/CustomDimensions/vue/src/List/List.vue
+++ b/plugins/CustomDimensions/vue/src/List/List.vue
@@ -23,7 +23,9 @@
v-for="scope in availableScopes"
:key="scope.value"
>
- <ContentBlock :content-title="`${scope.name} Dimensions`">
+ <ContentBlock
+ :content-title="translate(`CustomDimensions_ScopeTitle${ucfirst(scope.value)}`)"
+ >
<p>
{{ translate(`CustomDimensions_ScopeDescription${ucfirst(scope.value)}`) }}
{{ translate(`CustomDimensions_ScopeDescription${ucfirst(scope.value)}MoreInfo`) }}
diff --git a/plugins/Dashboard/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png b/plugins/Dashboard/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png
index 28eb224427..9f645c3b11 100644
--- a/plugins/Dashboard/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png
+++ b/plugins/Dashboard/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:62fc2afd2afafb0c31effa327eff0050496ebe55af35f3b8b31aabe33b916922
-size 32321
+oid sha256:46544d21655c84211cdd35097aa24a2b4492a4b20cfff0390603e6976c5bf12d
+size 32369
diff --git a/plugins/DevicesDetection/Columns/BrowserVersion.php b/plugins/DevicesDetection/Columns/BrowserVersion.php
index d8df75b4fc..9b2de1de0b 100644
--- a/plugins/DevicesDetection/Columns/BrowserVersion.php
+++ b/plugins/DevicesDetection/Columns/BrowserVersion.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,6 +7,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\DevicesDetection\Columns;
use Piwik\Tracker\Request;
@@ -36,8 +38,7 @@ class BrowserVersion extends Base
$aBrowserInfo = $parser->getClient();
if (!empty($aBrowserInfo['version'])) {
-
- return $aBrowserInfo['version'];
+ return substr($aBrowserInfo['version'], 0, 20);
}
return '';
diff --git a/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php b/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php
index 44423661e8..cf10439ab4 100644
--- a/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php
+++ b/plugins/GeoIp2/LocationProvider/GeoIp2/Php.php
@@ -251,7 +251,16 @@ class Php extends GeoIp2
if (is_array($lookupResult->subdivisions) && count($lookupResult->subdivisions) > 0) {
$subdivisions = $lookupResult->subdivisions;
$subdivision = $this->determinSubdivision($subdivisions, $result[self::COUNTRY_CODE_KEY]);
- $result[self::REGION_CODE_KEY] = $subdivision->isoCode ? strtoupper($subdivision->isoCode) : $this->determineRegionIsoCodeByNameAndCountryCode($subdivision->name, $result[self::COUNTRY_CODE_KEY]);
+ $subdivisionIsoCode = $subdivision->isoCode ? strtoupper($subdivision->isoCode) : '';
+
+ // In some cases the region code might be returned including the country code
+ // e.g. AE-DU instead of only DU. In that case we remove the prefix
+ // see https://github.com/matomo-org/matomo/issues/19323
+ if (0 === strpos($subdivisionIsoCode, $result[self::COUNTRY_CODE_KEY] . '-')) {
+ $subdivisionIsoCode = substr($subdivisionIsoCode, strlen($result[self::COUNTRY_CODE_KEY]) + 1);
+ }
+
+ $result[self::REGION_CODE_KEY] = $subdivisionIsoCode ? : $this->determineRegionIsoCodeByNameAndCountryCode($subdivision->name, $result[self::COUNTRY_CODE_KEY]);
$result[self::REGION_NAME_KEY] = $subdivision->name;
}
}
diff --git a/plugins/GeoIp2/tests/Integration/LocationProviderTest.php b/plugins/GeoIp2/tests/Integration/LocationProviderTest.php
index ea1fc20927..3798092694 100644
--- a/plugins/GeoIp2/tests/Integration/LocationProviderTest.php
+++ b/plugins/GeoIp2/tests/Integration/LocationProviderTest.php
@@ -58,6 +58,26 @@ class LocationProviderTest extends \PHPUnit\Framework\TestCase
], $result);
}
+ public function testGeoIP2CityWithIncorrectlyPrefixedRegionIsoCode()
+ {
+ // The IP 88.88.88.88 will return a region code that is prefixed with the country code, e.g. US-NJ instead of NJ
+ $locationProvider = new GeoIp2\Php(['loc' => ['GeoIP2-City.mmdb'], 'isp' => []]);
+ $result = $locationProvider->getLocation(['ip' => '88.88.88.88']);
+
+ $this->assertEquals([
+ 'continent_name' => 'North America',
+ 'continent_code' => 'NA',
+ 'country_code' => 'US',
+ 'country_name' => 'United States',
+ 'city_name' => 'Englewood Cliffs',
+ 'lat' => 40.892,
+ 'long' => -73.947,
+ 'postal_code' => null,
+ 'region_code' => 'NJ',
+ 'region_name' => 'New Jersey',
+ ], $result);
+ }
+
public function testGeoIP2Country()
{
$locationProvider = new GeoIp2\Php(['loc' => ['GeoIP2-Country.mmdb'], 'isp' => []]);
diff --git a/plugins/Goals/lang/en.json b/plugins/Goals/lang/en.json
index 16abfcc500..c888438a02 100644
--- a/plugins/Goals/lang/en.json
+++ b/plugins/Goals/lang/en.json
@@ -143,6 +143,6 @@
"ColumnRevenueAttributedDocumentation": "The share of all revenue for %s where this page was viewed before conversion.",
"ColumnConversionsEntryDocumentation": "The total number of goal conversions where this page was the entry page.",
"ColumnConversionEntryRateDocumentation": "The percent of entrances that were converted for %s.",
- "ColumnRevenueEntryDocumentation": "The share of all revenue for %s where this page was the entry pag.e"
+ "ColumnRevenueEntryDocumentation": "The share of all revenue for %s where this page was the entry page."
}
-} \ No newline at end of file
+}
diff --git a/plugins/ImageGraph/lang/en.json b/plugins/ImageGraph/lang/en.json
index b5cc868782..eff5fc5df6 100644
--- a/plugins/ImageGraph/lang/en.json
+++ b/plugins/ImageGraph/lang/en.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "The column '%1$s' was not found in this report. Try any of %2$s",
- "PluginDescription": "Generate beautiful static PNG Graph images for any of your data report."
+ "ColumnOrdinateMissing": "Could not find a \"%1$s\" column in this report. Try any of %2$s.",
+ "PluginDescription": "Generate beautiful static PNG graph images for any of your data reports."
}
-} \ No newline at end of file
+}
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png
index 0376c5bc8c..86e25d3d79 100644
--- a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d6a1a763044d093551dfa0ce23175812cb07f8a2c488d15423e0e435416fb9e5
-size 301789
+oid sha256:531fb5e2454ea22c51dc0abb2858953c826cec073069b033cae2e0507c1f6824
+size 363130
diff --git a/plugins/Live/VisitorDetails.php b/plugins/Live/VisitorDetails.php
index e709ffbb39..aad6fa64d9 100644
--- a/plugins/Live/VisitorDetails.php
+++ b/plugins/Live/VisitorDetails.php
@@ -97,7 +97,7 @@ class VisitorDetails extends VisitorDetailsAbstract
$sitesModel = new \Piwik\Plugins\SitesManager\Model();
- if (isset($action['type']) && $action['type'] == 'outlink' && isset($action['url'])) {
+ if (isset($action['type']) && in_array($action['type'] ,['outlink', 'download']) && isset($action['url'])) {
$action['url'] = html_entity_decode($action['url'], ENT_QUOTES, "UTF-8");
}
diff --git a/plugins/Login/Emails/PasswordResetEmail.php b/plugins/Login/Emails/PasswordResetEmail.php
index bdded77c45..dbbff22b24 100644
--- a/plugins/Login/Emails/PasswordResetEmail.php
+++ b/plugins/Login/Emails/PasswordResetEmail.php
@@ -49,7 +49,8 @@ class PasswordResetEmail extends Mail
$this->setSubject($this->getDefaultSubject());
$this->addReplyTo($replytoEmailAddress, $replytoEmailName);
- $this->setWrappedHtmlBody($this->getDefaultBodyText());
+ $this->setWrappedHtmlBody($this->getHTMLBody());
+ $this->setBodyText($this->getDefaultBodyText());
}
private function getDefaultSubject()
@@ -57,12 +58,32 @@ class PasswordResetEmail extends Mail
return Piwik::translate('Login_MailTopicPasswordChange');
}
- private function getDefaultBodyText()
+ /**
+ * Get the translated plain text email body with the reset link
+ *
+ * @return string
+ */
+ private function getDefaultBodyText() : string
+ {
+ return Piwik::translate('Login_MailPasswordChangeBody2',
+ [Common::sanitizeInputValue($this->login), Common::sanitizeInputValue($this->ip), Common::sanitizeInputValue($this->resetUrl)]);
+ }
+
+ /**
+ * Create the HTML email body from the plain text body
+ *
+ * @return string
+ */
+ private function getHTMLBody() : string
{
return '<p>' . str_replace(
"\n\n",
"</p><p>",
- Piwik::translate('Login_MailPasswordChangeBody2', [Common::sanitizeInputValue($this->login), Common::sanitizeInputValue($this->ip), Common::sanitizeInputValue($this->resetUrl)])
+ Piwik::translate('Login_MailPasswordChangeBody2',
+ [Common::sanitizeInputValue($this->login),
+ Common::sanitizeInputValue($this->ip),
+ '<p style="word-break: break-all"><a href="'.Common::sanitizeInputValue($this->resetUrl).'">'.
+ Common::sanitizeInputValue($this->resetUrl).'</a></p>'])
) . "</p>";
}
} \ No newline at end of file
diff --git a/plugins/Login/lang/en.json b/plugins/Login/lang/en.json
index 9f97cad22b..4e4a846295 100644
--- a/plugins/Login/lang/en.json
+++ b/plugins/Login/lang/en.json
@@ -1,68 +1,68 @@
{
"Login": {
"BruteForceLog": "Brute Force Log",
- "ConfirmationLinkSent": "A confirmation link has been sent to your inbox. Check your e-mail and visit this link to authorize your password change request.",
+ "ConfirmationLinkSent": "Open the confirmation link sent to your e-mail inbox to confirm changing your password.",
"ContactAdmin": "Possible reason: your host may have disabled the mail() function. <br \/>Please contact your Matomo administrator.",
- "ExceptionInvalidSuperUserAccessAuthenticationMethod": "A user with Super User access cannot be authenticated using the '%s' mechanism.",
+ "ExceptionInvalidSuperUserAccessAuthenticationMethod": "A user with superuser access cannot be authenticated using the '%s' mechanism.",
"ExceptionPasswordMD5HashExpected": "The password parameter is expected to be a MD5 hash of the password.",
- "InvalidNonceToken": "Form security failed, token miss match. Please reload the form and check that your cookies are enabled.",
- "InvalidNonceReferrer": "Form security failed, invalid referrer header. If you use a proxy server, you must %1$s configure Matomo to accept the proxy header %2$s that forwards the Host header. Also, check that your Referrer header is sent correctly and If you previously connected using https, please ensure you are connecting over a secure (SSL/TLS) connection and try again.",
- "InvalidNonceUnexpectedReferrer" : "Form security failed, the referrer header is different from the expected referrer header, check that your Referrer header is sent correctly.",
- "InvalidNonceOrigin": "Form security failed, invalid origin. If you previously connected using https, please ensure you are connecting over a secure (SSL/TLS) connection and try again.",
- "InvalidNonceSSLMisconfigured": "Also, you may %1$s force Matomo to use a secure connection%2$s: in your config file %3$s set %4$s below section %5$s",
- "InvalidOrExpiredToken": "Token is invalid or has expired.",
+ "InvalidNonceToken": "The form security failed because of a token mismatch. Please reload the form and check that your cookies are on.",
+ "InvalidNonceReferrer": "The form security failed because of an invalid \"Referer\" header. If you are using a proxy server, you must %1$sconfigure Matomo to accept the proxy header%2$s that forwards the host header. Also, check that your \"Referer\" header is sent correctly. If you previously connected using HTTPS, please ensure you are connecting over a secure (SSL/TLS) connection and try again.",
+ "InvalidNonceUnexpectedReferrer" : "The form security failed because the \"Referer\" header is different from what was expected. Check that it is sent correctly.",
+ "InvalidNonceOrigin": "The form security failed because of invalid origin. If you previously connected using HTTPS, please ensure you are connecting over a secure (SSL/TLS) connection and try again.",
+ "InvalidNonceSSLMisconfigured": "Also, you may %1$sforce Matomo to use a secure connection%2$s: in your config file%3$s set %4$s below section %5$s",
+ "InvalidOrExpiredToken": "The token is invalid or has expired.",
"InvalidUsernameEmail": "Invalid username or e-mail address.",
"LogIn": "Sign in",
- "LoginOrEmail": "Username or Email",
- "HelpIpRange": "Enter one IP address or one IP range per line. You can use CIDR notation eg. %1$s or you can use wildcards, eg. %2$s or %3$s",
- "SettingBruteForceEnable": "Enable Brute Force Detection",
- "SettingBruteForceEnableHelp": "Brute Force Detection is an important security feature used to protect your data from unauthorized access. Instead of allowing any user to try thousands, or millions of password combinations within a very short time, it will only allow a specific amount of failed logins within a short period of time. If too many failed logins occur in that time range, the user won't be able to log in until some time has passed. Please note that if an IP is blocked, every user that uses that IP will be blocked from logging in as well.",
+ "LoginOrEmail": "Username or e-mail",
+ "HelpIpRange": "Enter one IP address or one IP range per line. You can use CIDR notation e.g: %1$s or you can use wildcards, e.g: %2$s or %3$s",
+ "SettingBruteForceEnable": "Enable Brute-force Detection",
+ "SettingBruteForceEnableHelp": "Logs out users making too many password guesses within a timeframe for a while. This prevents anyone from testing all combinations. Getting a shared IP blocked also locks out its other users.",
"SettingBruteForceWhitelistIp": "Never block these IPs from logging in",
"SettingBruteForceBlacklistIp": "Always block these IPs from logging in",
- "NotAllowListTakesPrecendence": "If an IP matches both the block and never block list, then the block list takes precendence and the IP would not be allowed.",
- "SettingBruteForceMaxFailedLogins": "Number of allowed login retries within time range",
- "SettingBruteForceMaxFailedLoginsHelp": "If more than this number of failed logins are recorded within the time range configured below, block the IP.",
+ "NotAllowListTakesPrecendence": "If an IP is on both the list of IPs to block and never block, it is blocked.",
+ "SettingBruteForceMaxFailedLogins": "Number of allowed login retries within a given time frame",
+ "SettingBruteForceMaxFailedLoginsHelp": "Blocks the IP if more than this number of failed logins are recorded within the time frame set below.",
"SettingBruteForceTimeRange": "Count login retries within this time range in minutes",
- "SettingBruteForceTimeRangeHelp": "Enter a number in minutes.",
- "ConfirmPasswordReset": "Confirm password reset",
- "ConfirmPasswordResetIntro": "To confirm it is really you who requested this password change, please enter your new password again.",
- "ConfirmPasswordResetWrongPassword": "The entered password does not match your new password. If you don't remember your newly chosen password you can reset your password again. If you didn't request the password change, simply do nothing and your password won't be changed.",
- "LoginNotAllowedBecauseBlocked": "You are currently not allowed to log in because you had too many failed logins, try again later.",
- "CurrentlyBlockedIPs": "Currently blocked IPs",
+ "SettingBruteForceTimeRangeHelp": "Enter a number of minutes.",
+ "ConfirmPasswordReset": "Reset password",
+ "ConfirmPasswordResetIntro": "Please type your new password to confirm you really requested having your password changed.",
+ "ConfirmPasswordResetWrongPassword": "The entered password does not match your newly made one. Reset your password again if you don't remember it. Don't do anything to keep your password if you didn't request changing it.",
+ "LoginNotAllowedBecauseBlocked": "Too many failed logins. Please wait and try logging in again later.",
+ "CurrentlyBlockedIPs": "Blocked IPs",
"IPsAlwaysBlocked": "These IPs are always blocked",
- "UnblockAllIPs": "Unblock all currently blocked IPs",
- "CurrentlyBlockedIPsUnblockInfo": "You can unblock IPs that are currently blocked, so they can log in again in case they were falsely flagged and need to be able to log in again.",
- "CurrentlyBlockedIPsUnblockConfirm": "Are you sure you want to unblock all currently blocked IPs?",
- "LoginPasswordNotCorrect": "Wrong Username and password combination.",
+ "UnblockAllIPs": "Unblock all blocked IPs",
+ "CurrentlyBlockedIPsUnblockInfo": "You can unblock IPs blocked by mistake to allow them to log in again.",
+ "CurrentlyBlockedIPsUnblockConfirm": "Unblock all blocked IPs?",
+ "LoginPasswordNotCorrect": "Wrong username and/or password.",
"LostYourPassword": "Lost your password?",
"ChangeYourPassword": "Change your password",
- "MailPasswordChangeBody2": "Hi %1$s,\n\nA password reset request was received from %2$s. To confirm this password change so you can login with your new credentials, please copy and paste the following link in your browser:\n\n%3$s\n\nNote: this link will expire in 24 hours.\n\nAnd thank you for using Matomo!",
- "MailTopicPasswordChange": "Confirm Password Change",
+ "MailPasswordChangeBody2": "Hi %1$s,\n\nA request to reset the password was received from %2$s. Copy and paste the following link in your web browser within 24 hours to log in with your new username and password:\n\n%3$s\n\nThank you for using Matomo.",
+ "MailTopicPasswordChange": "Confirm changing the password",
"NewPassword": "New password",
"NewPasswordRepeat": "New password (repeat)",
- "PasswordChanged": "Your password has been changed.",
+ "PasswordChanged": "You can now use your new password to log in.",
"PasswordRepeat": "Password (repeat)",
- "PasswordsDoNotMatch": "Passwords do not match.",
- "PasswordResetAlreadySent": "You have requested too many password resets recently. A new request can be made in one hour. If you have problems resetting your password, please contact your administrator for help.",
- "WrongPasswordEntered": "Please enter your correct password.",
+ "PasswordsDoNotMatch": "Mismatching passwords.",
+ "PasswordResetAlreadySent": "You requested too many password resets recently. A new request can be made in one hour. Your administrator can help you if that doesn't work.",
+ "WrongPasswordEntered": "Please enter your password.",
"ConfirmPasswordToContinue": "Confirm your password to continue",
- "PluginDescription": "Provides authentication via username and password as well as password reset functionality. Authentication method can be changed by using another Login plugin such as LoginLdap available on the Marketplace.",
+ "PluginDescription": "Provides username and password login as well as password reset functionality. The login method can be changed by using another login plugin such as LoginLdap available on the marketplace.",
"RememberMe": "Remember Me",
- "SuspiciousLoginAttemptsInLastHourEmailSubject": "We've noticed some suspicious login attempts to your account...",
- "SuspiciousLoginAttemptsInLastHourEmail1": "We've noticed a suspiciously high number of login attempts to your Matomo account in the last hour, specifically %1$s login attempts from %2$s distinct IP addresses. We suspect someone may be trying to break into your account.",
- "SuspiciousLoginAttemptsInLastHourEmail2": "In order to safeguard your Matomo, we recommend taking the following precautions:",
- "SuspiciousLoginAttemptsInLastHourEmail3": "Ensure your password is a secure, random password of an appropriate length (for example, at least 30 characters).",
- "SuspiciousLoginAttemptsInLastHourEmail4": "Setup two-factor auth so attackers will need more information than just your password in order to login.",
- "SuspiciousLoginAttemptsInLastHourEmail5": "Additionally, if your Matomo has a limited set of users or IPs through which users will access it, it may be beneficial to setup a IP address allowlist. %1$sRead our docs for more information.%2$s",
- "LoginNotAllowedBecauseUserLoginBlocked": "Login functionality is temporarily disabled since we've a suspicious amount of failed login attempts in the last hour.",
- "InvitationTitle": "Accept Invitation",
- "InvitationDeclineTitle": "Decline Invitation",
- "InvitationDeclineBody": "Are you sure you want to decline this Invitation?",
- "InvitationHints": "(to cancel this action, just leave the page)",
+ "SuspiciousLoginAttemptsInLastHourEmailSubject": "Some suspicious login attempts were made using your username…",
+ "SuspiciousLoginAttemptsInLastHourEmail1": "A suspiciously high number of login attempts was made on your Matomo account the last hour. Specifically %1$s login attempts from %2$s distinct IP addresses. Someone may be trying to break into your account.",
+ "SuspiciousLoginAttemptsInLastHourEmail2": "Do the following:",
+ "SuspiciousLoginAttemptsInLastHourEmail3": "Ensure your password is a secure, random password of at least 30 characters.",
+ "SuspiciousLoginAttemptsInLastHourEmail4": "Set up two-factor authentication so attackers need more than just your password to log in.",
+ "SuspiciousLoginAttemptsInLastHourEmail5": "Set up a list of IP addresses to never block if your Matomo has a limited set of users or IPs users access it from. %1$sRead the docs for more info.%2$s",
+ "LoginNotAllowedBecauseUserLoginBlocked": "Logging in has been turned off since a suspicious amount of failed attempts were made during the last hour.",
+ "InvitationTitle": "Accept invitation",
+ "InvitationDeclineTitle": "Decline invitation",
+ "InvitationDeclineBody": "Decline this invitation?",
+ "InvitationHints": "(you can leave the page to cancel this action)",
"Accept": "Accept",
"Yes": "Yes",
- "TermsRequired": "Please Accept the terms and conditions",
- "PasswordRequired": "Please enter password to continue",
- "declineInvitationInfo": "Your invitation has been decline."
+ "TermsRequired": "Please accept the terms and conditions",
+ "PasswordRequired": "Please enter your password to continue",
+ "declineInvitationInfo": "Your invitation was declined."
}
}
diff --git a/plugins/Login/tests/Integration/PasswordResetterTest.php b/plugins/Login/tests/Integration/PasswordResetterTest.php
index b6014aecff..250676eb49 100644
--- a/plugins/Login/tests/Integration/PasswordResetterTest.php
+++ b/plugins/Login/tests/Integration/PasswordResetterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -8,7 +9,6 @@
namespace Piwik\Plugins\Login\tests\Integration;
-
use PHPMailer\PHPMailer\PHPMailer;
use Piwik\Access;
use Piwik\Auth;
@@ -17,7 +17,6 @@ use Piwik\Option;
use Piwik\Plugin\Manager;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
use Piwik\Plugins\Login\PasswordResetter;
-use Piwik\Plugins\UsersManager\Model;
use Piwik\Tests\Framework\Fixture;
/**
@@ -28,11 +27,6 @@ class PasswordResetterTest extends IntegrationTestCase
const NEWPASSWORD = 'newpassword';
/**
- * @var Model
- */
- private $userModel;
-
- /**
* @var string
*/
private $capturedToken;
@@ -46,20 +40,19 @@ class PasswordResetterTest extends IntegrationTestCase
{
parent::setUp();
$this->passwordResetter = new PasswordResetter();
- $this->userModel = new Model();
$this->capturedToken = null;
Manager::getInstance()->loadPluginTranslations();
}
- public function test_passwordReset_processWorksAsExpected()
+ public function testPasswordResetProcessWorksAsExpected()
{
$this->passwordResetter->setHashedPasswordForLogin('superUserLogin', $this->capturedToken);
$this->checkPasswordIs(self::NEWPASSWORD);
}
- public function tests_passwordReset_worksUpToThreeTimesInAnHour()
+ public function testsPasswordResetWorksUpToThreeTimesInAnHour()
{
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
@@ -74,10 +67,10 @@ class PasswordResetterTest extends IntegrationTestCase
$this->assertNotEquals($token, $this->capturedToken);
}
- public function test_passwordReset_notAllowedMoreThanThreeTimesInAnHour()
+ public function testPasswordResetNotAllowedMoreThanThreeTimesInAnHour()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('You have requested too many password resets recently. A new request can be made in one hour. If you have problems resetting your password, please contact your administrator for help.');
+ $this->expectExceptionMessage('You requested too many password resets recently. A new request can be made in one hour. Your administrator can help you if that doesn\'t work.');
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
@@ -94,14 +87,14 @@ class PasswordResetterTest extends IntegrationTestCase
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
}
- public function test_passwordReset_newRequestAllowedAfterAnHour()
+ public function testPasswordResetNewRequestAllowedAfterAnHour()
{
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
$optionName = $this->passwordResetter->getPasswordResetInfoOptionName('superUserLogin');
$data = json_decode(Option::get($optionName), true);
- $data['timestamp'] = time()-3601;
+ $data['timestamp'] = time() - 3601;
$data['requests'] = 3;
Option::set($optionName, json_encode($data));
@@ -117,10 +110,10 @@ class PasswordResetterTest extends IntegrationTestCase
$this->assertEquals(1, $data['requests']);
}
- public function test_passwordReset_shouldNotAllowTokenToBeUsedMoreThanOnce()
+ public function testPasswordResetShouldNotAllowTokenToBeUsedMoreThanOnce()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('Token is invalid or has expired');
+ $this->expectExceptionMessage('The token is invalid or has expired.');
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
$this->assertNotEmpty($this->capturedToken);
@@ -137,7 +130,7 @@ class PasswordResetterTest extends IntegrationTestCase
$this->passwordResetter->checkValidConfirmPasswordToken('superUserLogin', $oldCapturedToken);
}
- public function test_passwordReset_shouldNeverGenerateTheSameToken()
+ public function testPasswordResetShouldNeverGenerateTheSameToken()
{
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
$this->assertNotEmpty($this->capturedToken);
@@ -149,10 +142,10 @@ class PasswordResetterTest extends IntegrationTestCase
$this->assertNotEquals($oldCapturedToken, $this->capturedToken);
}
- public function test_passwordReset_shouldNotAllowOldTokenToBeUsedAfterAnotherResetRequest()
+ public function testPasswordResetShouldNotAllowOldTokenToBeUsedAfterAnotherResetRequest()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('Token is invalid or has expired');
+ $this->expectExceptionMessage('The token is invalid or has expired.');
$this->passwordResetter->initiatePasswordResetProcess('superUserLogin', self::NEWPASSWORD);
$this->assertNotEmpty($this->capturedToken);
@@ -195,7 +188,7 @@ class PasswordResetterTest extends IntegrationTestCase
['Test.Mail.send', \DI\value(function (PHPMailer $mail) {
$body = $mail->createBody();
$body = preg_replace("/=[\r\n]+/", '', $body);
- preg_match('/resetToken=[\s]*3D([a-zA-Z0-9=\s]+)<\/p>/', $body, $matches);
+ preg_match('/resetToken=[\s]*3D([a-zA-Z0-9=\s]+)"/', $body, $matches);
if (!empty($matches[1])) {
$capturedToken = $matches[1];
$capturedToken = preg_replace('/=\s*/', '', $capturedToken);
@@ -205,4 +198,4 @@ class PasswordResetterTest extends IntegrationTestCase
]),
];
}
-} \ No newline at end of file
+}
diff --git a/plugins/Login/tests/UI/Invite_spec.js b/plugins/Login/tests/UI/Invite_spec.js
index d937f2c891..7eb791b337 100644
--- a/plugins/Login/tests/UI/Invite_spec.js
+++ b/plugins/Login/tests/UI/Invite_spec.js
@@ -31,8 +31,9 @@ describe('Invite', function () {
await page.evaluate(function(){
$('#login_form_submit').click();
});
+ await page.waitForNetworkIdle();
expect(await page.screenshot({ fullPage: true })).to.matchImage('wrong_password');
});
-}); \ No newline at end of file
+});
diff --git a/plugins/Login/tests/UI/Login_spec.js b/plugins/Login/tests/UI/Login_spec.js
index dbbb4f326a..93ed3e3115 100644
--- a/plugins/Login/tests/UI/Login_spec.js
+++ b/plugins/Login/tests/UI/Login_spec.js
@@ -156,12 +156,12 @@ describe("Login", function () {
var expectedMailOutputFile = PIWIK_INCLUDE_PATH + '/tmp/Login.resetPassword.mail.json',
fileContents = require("fs").readFileSync(expectedMailOutputFile),
mailSent = JSON.parse(fileContents),
- resetUrl = mailSent.contents.match(/http:\/\/[^\s]+resetToken[^\s]+<\/p>/);
+ resetUrl = mailSent.contents.match(/http:\/\/[^"]+resetToken[^"]+"/);
if (!resetUrl || !resetUrl[0]) {
throw new Error(`Could not find reset URL in email, captured mail info: ${fileContents}`)
}
- resetUrl = resetUrl[0].replace(/<\/p>$/, '');
+ resetUrl = resetUrl[0].replace(/\"$/, '');
resetUrl = await page.evaluate((resetUrl) => {
return piwikHelper.htmlDecode(resetUrl);
}, resetUrl);
diff --git a/plugins/Login/tests/UI/expected-screenshots/Decline_default.png b/plugins/Login/tests/UI/expected-screenshots/Decline_default.png
index fa9acf274f..9a4fe458f1 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Decline_default.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Decline_default.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b4f71261c0c6e74cae66aba9d6749eb2e0852acb802349e573d35f38ad6a7861
-size 24210
+oid sha256:42adaabe0ae20e43f798ea9329da9fdf42f7fa4580c211217322829a82edd8cd
+size 21548
diff --git a/plugins/Login/tests/UI/expected-screenshots/Invite_error.png b/plugins/Login/tests/UI/expected-screenshots/Invite_error.png
index 5d5cc8fcd4..311289f3c7 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Invite_error.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Invite_error.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c273f68c05b5c8398aa2248a92633bc83b5209188b859d173d76be5a3d96f630
-size 40102
+oid sha256:35af886df3b8305375a45659de2f14af79fec9903a81642e18e193853ed52f28
+size 40378
diff --git a/plugins/Login/tests/UI/expected-screenshots/Invite_set_password.png b/plugins/Login/tests/UI/expected-screenshots/Invite_set_password.png
index 4979ed5066..fe50344e56 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Invite_set_password.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Invite_set_password.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d59911d79ef8cf203efa7a7d64024fe66c9c655dcf6ec32900954be7d9e7b494
-size 27166
+oid sha256:fab1147e5e81c984bb699b6ba3e50800c868c24498d0a6e5e2a5e21a643e534b
+size 27319
diff --git a/plugins/Login/tests/UI/expected-screenshots/Invite_wrong_password.png b/plugins/Login/tests/UI/expected-screenshots/Invite_wrong_password.png
index ac1265c02a..84f56b0b3c 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Invite_wrong_password.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Invite_wrong_password.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9a8c371e544e1964269b1d6200e933a719a47a6b3dcba01549588dc67bb2f3ea
-size 32681
+oid sha256:e52c0b45c5834cab0cb921a6d07cda995f0cfce71c2540832a977e7d01b84e75
+size 32893
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedapi.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedapi.png
index 7d1919e08f..2e6fc6190a 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedapi.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedapi.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:96d146d0451779db1b91b233b8e65a36406a096339ad3138ac3b6d693968f785
-size 13253
+oid sha256:eb616d5e970ca099978cdbe65bd2b35087c49c1beef846e9a890af094f7c1de2
+size 12385
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png
index 9a42cde0a9..5e8296fdd2 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogin.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bf87c9ad23692ec0ffe133b3cd75aa2aafc729ccbb094e8628d6b99d0f802517
-size 48163
+oid sha256:77893976b0db582a288fe8e1e0f1f87e23f3b1c76885227c0a3c662dad12a5e0
+size 43148
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png
index 9a42cde0a9..5e8296fdd2 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_blockedlogme.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bf87c9ad23692ec0ffe133b3cd75aa2aafc729ccbb094e8628d6b99d0f802517
-size 48163
+oid sha256:77893976b0db582a288fe8e1e0f1f87e23f3b1c76885227c0a3c662dad12a5e0
+size 43148
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png
index 1f0b84b090..73fe1d8e3a 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_noentries.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:47b698f988ed27aa73e26ccc1036a2e19b12d21ef491c052be52944745c84279
-size 50753
+oid sha256:873eb18f0f551f70504cdfa0b3f7e2eb05b564f3fd809fe5f880f06a1599099f
+size 48843
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png
index 175f65bf48..3dd901097d 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_bruteforcelog_withentries.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0f63bd20d066b619e26f486525bf565cb03a263432f864179d71cb249521d5a5
-size 68011
+oid sha256:d63af0574b2fd491127a6daadeb92165436f65916517059a513e754698a4c908
+size 61832
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png b/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png
index 2525c91025..64ab28507f 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_forgot_password.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d3ace83bcac411282ada8a81a209c30e70d3ea70f0db03ff6c06b889d6c60d58
-size 29973
+oid sha256:87d82e89940d56e08a67944a5c5cb484cbff393619d4aa5d0949d3a57fbcd4be
+size 30014
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png
index 435afa8475..606d062e4d 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_fail.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:79c147975d2d9560ba63653449e0f2f0aabe58557bb4cd1dedaa9bcf376d6fd4
-size 32041
+oid sha256:6bc910d3325eaffa8fa7043037510e0d5362ffc64fce1481f5cca9a6c021ba97
+size 30851
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png
index 0e8689e442..7e64ae2ca3 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_form.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a5bad4d68be89fb9986d704e6a09cebfbd2536674f4ba780e1e656eacb13dadc
-size 24653
+oid sha256:5125795ee575cb102187586db5797559240b09d3978df194d7e6dadde6e1d6b7
+size 24720
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png b/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png
index 0e8689e442..7e64ae2ca3 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_login_form_logout.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a5bad4d68be89fb9986d704e6a09cebfbd2536674f4ba780e1e656eacb13dadc
-size 24653
+oid sha256:5125795ee575cb102187586db5797559240b09d3978df194d7e6dadde6e1d6b7
+size 24720
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png
index 02ff47119b..334c20cda0 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a746bb9a3c3ce0d903932b0b9f02e5c023ce0eabd0ca4630dfa4f73681d8386e
-size 35075
+oid sha256:201f7f23022bfb14f7474396dc33d613078d4e4915efd0050d493cf36fecc66a
+size 29560
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png
index 444c34ef1c..06fd0ec25d 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_complete.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:75c01e8424d84fcffd001bdc461150ddc599f1442b509c8279443289296f8d8f
-size 29322
+oid sha256:858980e823577ccdad8e1cea514a39a872bacba86e6b0e8f66710a273ef13536
+size 30290
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_confirm.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_confirm.png
index a8d316b14b..76295dc9c4 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_confirm.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_confirm.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e1dc84be8b6ff77a388fb1f32ab9264a2f3b55f103117b2f697dd9fd6d4f00e3
-size 34453
+oid sha256:bde70cb6b9bca8218f971e119f7296134d4fadb46168ff861293f9d5d6f6afa6
+size 32022
diff --git a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png
index 5518708478..22bad72450 100644
--- a/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png
+++ b/plugins/Login/tests/UI/expected-screenshots/Login_password_reset_error.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e06a70d46e00b5b3ee12f67c404302873240d432d704d8ece727c495b8d1591f
-size 38921
+oid sha256:a90a83ff3dba45d0787c1436af0a251f77afb19497374273b58665ce303a4d07
+size 38980
diff --git a/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_noaccess.png b/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_noaccess.png
index 1f36d7d639..c91bc90680 100644
--- a/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_noaccess.png
+++ b/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_noaccess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8cad0d53718fdf9e776a22b2f0a1c9ced6b710585e085789e697f7a4f725f2af
-size 31950
+oid sha256:af33441214d2a2991128f71af2195ddb1289a18440490534a7bc4d976f1c547c
+size 31992
diff --git a/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_session_timeout.png b/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_session_timeout.png
index 84a2b2ae4b..ddba3053e9 100644
--- a/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_session_timeout.png
+++ b/plugins/Login/tests/UI/expected-screenshots/NoAccess_login_session_timeout.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c943113aa506b42f3055fd2735fefd42adeebdc53941039f4525d968d69bbc2e
-size 34156
+oid sha256:94a563127cc9f1d4c33cd89772dfc3302040cb4f6be2d49780fcae88d81d8d05
+size 34207
diff --git a/plugins/PrivacyManager/vue/dist/PrivacyManager.umd.js b/plugins/PrivacyManager/vue/dist/PrivacyManager.umd.js
index 7a1006f6f5..de96dcb7fa 100644
--- a/plugins/PrivacyManager/vue/dist/PrivacyManager.umd.js
+++ b/plugins/PrivacyManager/vue/dist/PrivacyManager.umd.js
@@ -1686,36 +1686,36 @@ var ReportDeletionSettings_store_ReportDeletionSettingsStore = /*#__PURE__*/func
}();
/* harmony default export */ var ReportDeletionSettings_store = (new ReportDeletionSettings_store_ReportDeletionSettingsStore());
-// 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/PrivacyManager/vue/src/DeleteOldLogs/DeleteOldLogs.vue?vue&type=template&id=2d91a21d
+// 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/PrivacyManager/vue/src/DeleteOldLogs/DeleteOldLogs.vue?vue&type=template&id=6e8611e8
-var DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_1 = {
+var DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_1 = {
id: "formDeleteSettings"
};
-var DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_2 = {
+var DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_2 = {
id: "deleteLogSettingEnabled"
};
-var DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_3 = {
+var DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_3 = {
class: "alert alert-warning deleteOldLogsWarning",
style: {
"width": "50%"
}
};
-var DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_4 = {
+var DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_4 = {
href: "https://matomo.org/faq/general/faq_125",
rel: "noreferrer noopener",
target: "_blank"
};
-var DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_5 = {
+var DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_5 = {
id: "deleteLogSettings"
};
-function DeleteOldLogsvue_type_template_id_2d91a21d_render(_ctx, _cache, $props, $setup, $data, $options) {
+function DeleteOldLogsvue_type_template_id_6e8611e8_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
var _component_SaveButton = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("SaveButton");
var _directive_form = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("form");
- 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", DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ 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", DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "checkbox",
name: "deleteEnable",
"model-value": _ctx.enabled,
@@ -1726,7 +1726,7 @@ function DeleteOldLogsvue_type_template_id_2d91a21d_render(_ctx, _cache, $props,
}),
title: _ctx.translate('PrivacyManager_UseDeleteLog'),
"inline-help": _ctx.translate('PrivacyManager_DeleteRawDataInfo')
- }, null, 8, ["model-value", "title", "inline-help"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ClickHere')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.enabled]])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_2d91a21d_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ }, null, 8, ["model-value", "title", "inline-help"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ClickHere')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.enabled]])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DeleteOldLogsvue_type_template_id_6e8611e8_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "text",
name: "deleteOlderThan",
"model-value": _ctx.deleteOlderThan,
@@ -1744,7 +1744,7 @@ function DeleteOldLogsvue_type_template_id_2d91a21d_render(_ctx, _cache, $props,
saving: _ctx.isLoading
}, null, 8, ["saving"])], 512)), [[_directive_form]]);
}
-// CONCATENATED MODULE: ./plugins/PrivacyManager/vue/src/DeleteOldLogs/DeleteOldLogs.vue?vue&type=template&id=2d91a21d
+// CONCATENATED MODULE: ./plugins/PrivacyManager/vue/src/DeleteOldLogs/DeleteOldLogs.vue?vue&type=template&id=6e8611e8
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/PrivacyManager/vue/src/DeleteOldLogs/DeleteOldLogs.vue?vue&type=script&lang=ts
@@ -1839,7 +1839,7 @@ var DeleteOldLogsvue_type_script_lang_ts_window = window,
-DeleteOldLogsvue_type_script_lang_ts.render = DeleteOldLogsvue_type_template_id_2d91a21d_render
+DeleteOldLogsvue_type_script_lang_ts.render = DeleteOldLogsvue_type_template_id_6e8611e8_render
/* harmony default export */ var DeleteOldLogs = (DeleteOldLogsvue_type_script_lang_ts);
// 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/PrivacyManager/vue/src/DeleteOldReports/DeleteOldReports.vue?vue&type=template&id=0a48298a
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
-Subproject 1d355279e8daf2212c90f22af8d451571ddf717
+Subproject 5d298fc57341e2eb975b022dc075be6fdbc8f82
diff --git a/plugins/Referrers/Columns/Base.php b/plugins/Referrers/Columns/Base.php
index a27aa925e2..0d9a658f79 100644
--- a/plugins/Referrers/Columns/Base.php
+++ b/plugins/Referrers/Columns/Base.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,9 +7,11 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\Referrers\Columns;
use Piwik\Common;
+use Piwik\Exception\UnexpectedWebsiteFoundException;
use Piwik\Piwik;
use Piwik\Plugin\Dimension\VisitDimension;
use Piwik\Plugins\Referrers\SearchEngine as SearchEngineDetection;
@@ -18,12 +21,10 @@ use Piwik\Tracker\Cache;
use Piwik\Tracker\PageUrl;
use Piwik\Tracker\Request;
use Piwik\Tracker\Visitor;
-use Piwik\Tracker\Action;
use Piwik\UrlHelper;
abstract class Base extends VisitDimension
{
-
// @see detect*() referrer methods
protected $typeReferrerAnalyzed;
protected $nameReferrerAnalyzed;
@@ -71,16 +72,22 @@ abstract class Base extends VisitDimension
{
$this->idsite = $idSite;
- // default values for the referer_* fields
$referrerUrl = Common::unsanitizeInputValue($referrerUrl);
- if (!empty($referrerUrl)
- && !UrlHelper::isLookLikeUrl($referrerUrl)
+
+ // Ignore referrer url if it doesn't look like a URL or is excluded in settings
+ if (
+ !empty($referrerUrl)
+ && (
+ !UrlHelper::isLookLikeUrl($referrerUrl)
+ || $this->isReferrerExcluded($referrerUrl)
+ )
) {
$referrerUrl = '';
}
$currentUrl = PageUrl::cleanupUrl($currentUrl);
+ // default values for the referer_* fields
$this->referrerUrl = $referrerUrl;
$this->referrerUrlParse = @parse_url($this->referrerUrl);
$this->currentUrlParse = @parse_url($currentUrl);
@@ -96,7 +103,8 @@ abstract class Base extends VisitDimension
$referrerDetected = $this->detectReferrerCampaign($request, $visitor);
if (!$referrerDetected) {
- if ($this->detectReferrerDirectEntry($request)
+ if (
+ $this->detectReferrerDirectEntry($request)
|| $this->detectReferrerSearchEngine()
|| $this->detectReferrerSocialNetwork()
) {
@@ -121,12 +129,12 @@ abstract class Base extends VisitDimension
$this->excludeQueryParamsFromReferrerUrl();
- $referrerInformation = array(
+ $referrerInformation = [
'referer_type' => $this->typeReferrerAnalyzed,
'referer_name' => $this->nameReferrerAnalyzed,
'referer_keyword' => $this->keywordReferrerAnalyzed,
'referer_url' => $this->referrerUrl,
- );
+ ];
if (!empty($referrerInformation['referer_name'])) {
$referrerInformation['referer_name'] = $this->truncateReferrerName($referrerInformation['referer_name']);
@@ -139,6 +147,46 @@ abstract class Base extends VisitDimension
return $referrerInformation;
}
+ protected function getExcludedReferrers($idSite): array
+ {
+ try {
+ $attributes = Cache::getCacheWebsiteAttributes($idSite);
+
+ if (isset($attributes['excluded_referrers'])) {
+ return $attributes['excluded_referrers'];
+ }
+ } catch (UnexpectedWebsiteFoundException $e) {
+ $cached = Cache::getCacheGeneral();
+ if (isset($cached['global_excluded_referrers'])) {
+ return $cached['global_excluded_referrers'];
+ }
+ }
+
+ return [];
+ }
+
+ protected function isReferrerExcluded(string $referrerUrl): bool
+ {
+ $urlsByHost = [];
+ $parsedReferrer = @parse_url($referrerUrl);
+
+ $excludedUrls = new SiteUrls();
+ $excludedReferrers = $this->getExcludedReferrers($this->idsite);
+ foreach ($excludedReferrers as $excludedReferrer) {
+ // ensure referrer is prefixed with protocol, so a parse_url works
+ $excludedReferrer = 'https://' . preg_replace('/^https?:\/\//', '', $excludedReferrer);
+ $excludedUrls->addUrlByHost($urlsByHost, $this->idsite, $excludedReferrer);
+ }
+
+ $matchingSites = $excludedUrls->getIdSitesMatchingUrl($parsedReferrer, $urlsByHost);
+
+ if (is_array($matchingSites) && in_array($this->idsite, $matchingSites)) {
+ return true;
+ }
+
+ return false;
+ }
+
protected function excludeQueryParamsFromReferrerUrl()
{
$parametersToExclude = [];
@@ -236,7 +284,7 @@ abstract class Base extends VisitDimension
* logic.
* @param string referrerUrl The referrer URL from the tracking request.
*/
- Piwik::postEvent('Tracker.detectReferrerSearchEngine', array(&$searchEngineInformation, $this->referrerUrl));
+ Piwik::postEvent('Tracker.detectReferrerSearchEngine', [&$searchEngineInformation, $this->referrerUrl]);
$cachedReferrerSearchEngine[$this->referrerUrl] = $searchEngineInformation;
$cache->save($cacheKey, $cachedReferrerSearchEngine);
@@ -287,7 +335,7 @@ abstract class Base extends VisitDimension
* logic.
* @param string referrerUrl The referrer URL from the tracking request.
*/
- Piwik::postEvent('Tracker.detectReferrerSocialNetwork', array(&$socialNetworkName, $this->referrerUrl));
+ Piwik::postEvent('Tracker.detectReferrerSocialNetwork', [&$socialNetworkName, $this->referrerUrl]);
$cachedReferrerSocialNetworks[$this->referrerUrl] = $socialNetworkName;
$cache->save($cacheKey, $cachedReferrerSocialNetworks);
@@ -334,7 +382,8 @@ abstract class Base extends VisitDimension
protected function detectReferrerCampaignFromLandingUrl()
{
- if (!isset($this->currentUrlParse['query'])
+ if (
+ !isset($this->currentUrlParse['query'])
&& !isset($this->currentUrlParse['fragment'])
) {
return false;
@@ -351,7 +400,8 @@ abstract class Base extends VisitDimension
}
// 2) Detect from fragment #hash
- if (!$found
+ if (
+ !$found
&& isset($this->currentUrlParse['fragment'])
) {
$this->detectCampaignFromString($this->currentUrlParse['fragment']);
@@ -385,7 +435,7 @@ abstract class Base extends VisitDimension
return $cache['allUrlsByHostAndIdSite'];
}
- return array();
+ return [];
}
/**
@@ -433,8 +483,10 @@ abstract class Base extends VisitDimension
protected function detectCampaignKeywordFromReferrerUrl()
{
- if (!empty($this->nameReferrerAnalyzed)
- && !empty($this->keywordReferrerAnalyzed)) {
+ if (
+ !empty($this->nameReferrerAnalyzed)
+ && !empty($this->keywordReferrerAnalyzed)
+ ) {
// keyword is already set, we skip
return true;
}
@@ -448,7 +500,8 @@ abstract class Base extends VisitDimension
}
// Set the keyword, to the hostname found, in a Adsense Referrer URL '&url=' parameter
- if (empty($this->keywordReferrerAnalyzed)
+ if (
+ empty($this->keywordReferrerAnalyzed)
&& !empty($this->referrerUrlParse['query'])
&& !empty($this->referrerHost)
&& (strpos($this->referrerHost, 'googleads') !== false || strpos($this->referrerHost, 'doubleclick') !== false)
@@ -458,7 +511,6 @@ abstract class Base extends VisitDimension
if (!empty($value)) {
$parsedAdsenseReferrerUrl = parse_url($value);
if (!empty($parsedAdsenseReferrerUrl['host'])) {
-
if (empty($this->nameReferrerAnalyzed)) {
$type = $this->getParameterValueFromReferrerUrl('ad_type');
$type = $type ? " ($type)" : '';
@@ -469,7 +521,6 @@ abstract class Base extends VisitDimension
}
}
}
-
}
/**
@@ -530,7 +581,6 @@ abstract class Base extends VisitDimension
/**
* @param Request $request
* @param Visitor $visitor
- * @param Action|null $action
* @return mixed
*/
public function getValueForRecordGoal(Request $request, Visitor $visitor)
@@ -556,7 +606,8 @@ abstract class Base extends VisitDimension
// 0) In some (unknown!?) cases the campaign is not found in the attribution cookie, but the URL ref was found.
// In this case we look up if the current visit is credited to a campaign and will credit this campaign rather than the URL ref (since campaigns have higher priority)
- if (empty($referrerCampaignName)
+ if (
+ empty($referrerCampaignName)
&& $type == Common::REFERRER_TYPE_CAMPAIGN
&& !empty($name)
) {
@@ -570,12 +621,11 @@ abstract class Base extends VisitDimension
Common::printDebug("Campaign information from 1st party cookie is used.");
} // 2) Referrer URL parsing
elseif (!empty($referrerUrl)) {
-
$idSite = $request->getIdSite();
$referrer = $this->getReferrerInformation($referrerUrl, $currentUrl = '', $idSite, $request, $visitor);
// if the parsed referrer is interesting enough, ie. website, social network or search engine
- if (in_array($referrer['referer_type'], array(Common::REFERRER_TYPE_SEARCH_ENGINE, Common::REFERRER_TYPE_WEBSITE, Common::REFERRER_TYPE_SOCIAL_NETWORK))) {
+ if (in_array($referrer['referer_type'], [Common::REFERRER_TYPE_SEARCH_ENGINE, Common::REFERRER_TYPE_WEBSITE, Common::REFERRER_TYPE_SOCIAL_NETWORK])) {
$type = $referrer['referer_type'];
$name = $referrer['referer_name'];
$keyword = $referrer['referer_keyword'];
@@ -590,11 +640,11 @@ abstract class Base extends VisitDimension
$this->setCampaignValuesToLowercase($type, $name, $keyword);
- $fields = array(
+ $fields = [
'referer_type' => $type,
'referer_name' => $name,
'referer_keyword' => $keyword,
- );
+ ];
if (array_key_exists($this->columnName, $fields)) {
return $fields[$this->columnName];
@@ -622,7 +672,7 @@ abstract class Base extends VisitDimension
protected function isReferrerInformationNew(Visitor $visitor, $information)
{
- foreach (array('referer_keyword', 'referer_name', 'referer_type') as $infoName) {
+ foreach (['referer_keyword', 'referer_name', 'referer_type'] as $infoName) {
if ($this->hasReferrerColumnChanged($visitor, $information, $infoName)) {
return true;
}
diff --git a/plugins/Referrers/tests/Integration/Columns/ReferrerTypeTest.php b/plugins/Referrers/tests/Integration/Columns/ReferrerTypeTest.php
index a31044a807..1394eb0e25 100644
--- a/plugins/Referrers/tests/Integration/Columns/ReferrerTypeTest.php
+++ b/plugins/Referrers/tests/Integration/Columns/ReferrerTypeTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -34,6 +35,7 @@ class ReferrerTypeTest extends IntegrationTestCase
private $idSite3 = 3;
private $idSite4 = 4;
private $idSite5 = 5;
+ private $idSite6 = 6;
public function setUp(): void
{
@@ -41,16 +43,20 @@ class ReferrerTypeTest extends IntegrationTestCase
Cache::clearCacheGeneral();
+ $this->referrerType = new ReferrerType();
+ }
+
+ protected static function beforeTableDataCached()
+ {
$date = '2012-01-01 00:00:00';
$ecommerce = false;
- Fixture::createWebsite($date, $ecommerce, $name = 'test1', $url = 'http://piwik.org/foo/bar');
- Fixture::createWebsite($date, $ecommerce, $name = 'test2', $url = 'http://piwik.org/');
- Fixture::createWebsite($date, $ecommerce, $name = 'test3', $url = 'http://piwik.xyz/');
- Fixture::createWebsite($date, $ecommerce, $name = 'test4', $url = 'http://google.com/subdir/', 1, null, null, null, null, $excludeUnknownUrls = 1);
- Fixture::createWebsite($date, $ecommerce, $name = 'test5', $url = null);
-
- $this->referrerType = new ReferrerType();
+ Fixture::createWebsite($date, $ecommerce, 'test1', 'http://piwik.org/foo/bar');
+ Fixture::createWebsite($date, $ecommerce, 'test2', 'http://piwik.org/');
+ Fixture::createWebsite($date, $ecommerce, 'test3', 'http://piwik.xyz/');
+ Fixture::createWebsite($date, $ecommerce, 'test4', 'http://google.com/subdir/', 1, null, null, null, null, $excludeUnknownUrls = 1);
+ Fixture::createWebsite($date, $ecommerce, 'test5', null);
+ Fixture::createWebsite($date, $ecommerce, 'test6', 'http://matomo.org/', 1, null, null, null, null, null, null, 'http://paypal.com,http://payments.amazon.com/proceed/,.payment.provider');
}
public function tearDown(): void
@@ -64,9 +70,9 @@ class ReferrerTypeTest extends IntegrationTestCase
/**
* @dataProvider getReferrerUrls
*/
- public function test_onNewVisit_shouldDetectCorrectReferrerType($expectedType, $idSite, $url, $referrerUrl)
+ public function testOnNewVisitShouldDetectCorrectReferrerType($expectedType, $idSite, $url, $referrerUrl)
{
- $request = $this->getRequest(array('idsite' => $idSite, 'url' => $url, 'urlref' => $referrerUrl));
+ $request = $this->getRequest(['idsite' => $idSite, 'url' => $url, 'urlref' => $referrerUrl]);
$type = $this->referrerType->onNewVisit($request, $this->getNewVisitor(), $action = null);
$this->assertSame($expectedType, $type);
@@ -78,71 +84,80 @@ class ReferrerTypeTest extends IntegrationTestCase
$referrer = 'http://piwik.org';
// $expectedType, $idSite, $url, $referrerUrl
- return array(
+ return [
// domain matches but path does not match for idsite1
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/'),
- // idSite2 matches any piwik.org path so this is a direct entry for it
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer . '/'),
- // idSite3 has different domain so it is coming from different website
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, $url, $referrer),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, $url, $referrer . '/'),
-
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz/'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz?x=5'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/'],
+ // idSite2 matches any piwik.org path, so this is a direct entry for it
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer . '/'],
+ // idSite3 has different domain, so it is coming from different website
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, $url, $referrer],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, $url, $referrer . '/'],
+
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz/'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/foo/bar/baz?x=5'],
// /not/xyz belongs to different website
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/not/xyz'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer . '/not/xyz'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite1, $url, $referrer . '/not/xyz'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite2, $url, $referrer . '/not/xyz'],
// /foo/bar/baz belongs to different website
- array(Common::REFERRER_TYPE_WEBSITE, $this->idSite2, $url, $referrer . '/foo/bar/baz'),
+ [Common::REFERRER_TYPE_WEBSITE, $this->idSite2, $url, $referrer . '/foo/bar/baz'],
// website as it is from different domain anyway
- array(Common::REFERRER_TYPE_WEBSITE, $this->idSite3, $url, $referrer . '/foo/bar/baz'),
+ [Common::REFERRER_TYPE_WEBSITE, $this->idSite3, $url, $referrer . '/foo/bar/baz'],
// should detect campaign independent of domain / path
- array(Common::REFERRER_TYPE_CAMPAIGN, $this->idSite1, $url . '?pk_campaign=test', $referrer),
- array(Common::REFERRER_TYPE_CAMPAIGN, $this->idSite2, $url . '?pk_campaign=test', $referrer),
- array(Common::REFERRER_TYPE_CAMPAIGN, $this->idSite3, $url . '?pk_campaign=test', $referrer),
+ [Common::REFERRER_TYPE_CAMPAIGN, $this->idSite1, $url . '?pk_campaign=test', $referrer],
+ [Common::REFERRER_TYPE_CAMPAIGN, $this->idSite2, $url . '?pk_campaign=test', $referrer],
+ [Common::REFERRER_TYPE_CAMPAIGN, $this->idSite3, $url . '?pk_campaign=test', $referrer],
- array(Common::REFERRER_TYPE_SEARCH_ENGINE, $this->idSite3, $url, 'http://google.com/search?q=piwik'),
+ [Common::REFERRER_TYPE_SEARCH_ENGINE, $this->idSite3, $url, 'http://google.com/search?q=piwik'],
- array(Common::REFERRER_TYPE_SOCIAL_NETWORK, $this->idSite3, $url, 'https://twitter.com/matomo_org'),
+ [Common::REFERRER_TYPE_SOCIAL_NETWORK, $this->idSite3, $url, 'https://twitter.com/matomo_org'],
// testing case for backwards compatibility where url has same domain as urlref but the domain is not known to any website
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com/foo', 'http://example.com/bar'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com/foo', 'http://example.com'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com', 'http://example.com/bar'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com/foo', 'http://example.com/bar'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com/foo', 'http://example.com'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite3, 'http://example.com', 'http://example.com/bar'],
// testing case where domain of referrer is not known to any site but neither is the URL, url != urlref
- array(Common::REFERRER_TYPE_WEBSITE, $this->idSite3, 'http://example.org', 'http://example.com/bar'),
+ [Common::REFERRER_TYPE_WEBSITE, $this->idSite3, 'http://example.org', 'http://example.com/bar'],
####### testing specific case:
## - ignore unknown urls is activated for idSite4
// referrer comes from another subdir, but same host => direct entry
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/site', 'http://google.com/base'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/site', 'http://google.com/base'],
// referrer comes from same subdir and host => direct entry
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/page', 'http://google.com/subdir/x'),
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/', 'http://google.com/subdir/?q=test'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/page', 'http://google.com/subdir/x'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/', 'http://google.com/subdir/?q=test'],
// referrer comes from another subdir, but same host, query matches search engine definition => search engine
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/index.html', 'http://google.com/search?q=test'),
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite4, 'http://google.com/subdir/index.html', 'http://google.com/search?q=test'],
// referrer comes from search engine not matching site
- array(Common::REFERRER_TYPE_SEARCH_ENGINE, $this->idSite4, 'http://google.com/subdir/index.html', 'http://google.fr/search?q=test'),
+ [Common::REFERRER_TYPE_SEARCH_ENGINE, $this->idSite4, 'http://google.com/subdir/index.html', 'http://google.fr/search?q=test'],
// site w/o url
- array(Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite5, $url, $referrer . '/'),
- );
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite5, $url, $referrer . '/'],
+
+ ##### testing referrer exclusion
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite6, 'https://matomo.org/faq', 'http://www.paypal.com/subdir/site'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite6, 'https://matomo.org/faq', 'https://paypal.com/subdir/site'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite6, 'https://matomo.org/faq', 'https://payment.provider/subdir/site'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite6, 'https://matomo.org/faq', 'https://custom.payment.provider/'],
+ [Common::REFERRER_TYPE_WEBSITE, $this->idSite6, 'https://matomo.org/faq', 'http://shop.paypal.com/subdir/site'],
+ [Common::REFERRER_TYPE_WEBSITE, $this->idSite6, 'https://matomo.org/faq', 'http://payments.amazon.com/'],
+ [Common::REFERRER_TYPE_DIRECT_ENTRY, $this->idSite6, 'https://matomo.org/faq', 'https://payments.amazon.com/proceed/with/payment'],
+ ];
}
/**
* @dataProvider getTestDataForOnExistingVisit
*/
- public function test_onExistingVisit_shouldSometimesOverwriteReferrerInfo($expectedType, $idSite, $url, $referrerUrl, $existingType)
+ public function testOnExistingVisitShouldSometimesOverwriteReferrerInfo($expectedType, $idSite, $url, $referrerUrl, $existingType)
{
- $request = $this->getRequest(array('idsite' => $idSite, 'url' => $url, 'urlref' => $referrerUrl));
+ $request = $this->getRequest(['idsite' => $idSite, 'url' => $url, 'urlref' => $referrerUrl]);
$visitor = $this->getNewVisitor();
$visitor->setVisitorColumn('referer_type', $existingType);
$type = $this->referrerType->onExistingVisit($request, $visitor, $action = null);
@@ -188,5 +203,4 @@ class ReferrerTypeTest extends IntegrationTestCase
{
return new Visitor(new VisitProperties());
}
-
}
diff --git a/plugins/Referrers/tests/System/expected/test_phpSerialized8__Referrers.getReferrerType_year.original b/plugins/Referrers/tests/System/expected/test_phpSerialized8__Referrers.getReferrerType_year.original
index 1a7eac1d06..5f28f88728 100644
--- a/plugins/Referrers/tests/System/expected/test_phpSerialized8__Referrers.getReferrerType_year.original
+++ b/plugins/Referrers/tests/System/expected/test_phpSerialized8__Referrers.getReferrerType_year.original
@@ -1 +1 @@
-O:15:"Piwik\DataTable":4:{s:7:"*rows";a:2:{i:0;O:19:"Piwik\DataTable\Row":4:{i:0;i:0;i:1;a:9:{s:5:"label";s:14:"Search Engines";s:9:"nb_visits";i:31;s:10:"nb_actions";i:31;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:31;s:19:"nb_visits_converted";i:0;s:26:"sum_daily_nb_uniq_visitors";i:31;s:18:"sum_daily_nb_users";i:0;}i:2;a:5:{s:15:"maxVisitsSummed";i:0;s:29:"Piwik\DataTable\Rowmetadata";a:2:{s:7:"segment";s:20:"referrerType==search";s:13:"referrer_type";i:2;}s:37:"Piwik\DataTable\RowisSubtableLoaded";b:0;s:10:"subtableId";N;s:33:"Piwik\DataTable\RowisSummaryRow";b:0;}i:3;N;}i:1;O:19:"Piwik\DataTable\Row":4:{i:0;i:0;i:1;a:12:{s:5:"label";s:8:"Websites";s:9:"nb_visits";i:31;s:10:"nb_actions";i:31;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:31;s:19:"nb_visits_converted";i:31;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:26:"sum_daily_nb_uniq_visitors";i:31;s:18:"sum_daily_nb_users";i:0;}i:2;a:5:{s:15:"maxVisitsSummed";i:0;s:29:"Piwik\DataTable\Rowmetadata";a:2:{s:7:"segment";s:21:"referrerType==website";s:13:"referrer_type";i:3;}s:37:"Piwik\DataTable\RowisSubtableLoaded";b:0;s:10:"subtableId";N;s:33:"Piwik\DataTable\RowisSummaryRow";b:0;}i:3;N;}}s:13:"*summaryRow";N;s:11:"*metadata";a:7:{s:11:"ts_archived";s:19:"today-date-removed-in-tests";s:4:"site";O:10:"Piwik\Site":2:{s:5:"*id";i:1;s:16:"Piwik\Sitesite";a:20:{s:6:"idsite";i:1;s:4:"name";s:10:"Piwik test";s:8:"main_url";s:16:"http://piwik.net";s:10:"ts_created";s:19:"2010-01-31 11:22:33";s:9:"ecommerce";i:0;s:10:"sitesearch";i:1;s:29:"sitesearch_keyword_parameters";s:0:"";s:30:"sitesearch_category_parameters";s:0:"";s:8:"timezone";s:3:"UTC";s:8:"currency";s:3:"USD";s:20:"exclude_unknown_urls";i:0;s:12:"excluded_ips";s:0:"";s:19:"excluded_parameters";s:0:"";s:20:"excluded_user_agents";s:0:"";s:5:"group";s:0:"";s:4:"type";s:7:"website";s:17:"keep_url_fragment";i:0;s:13:"creator_login";s:14:"superUserLogin";s:13:"timezone_name";s:3:"UTC";s:13:"currency_name";s:9:"US Dollar";}}s:6:"period";O:17:"Piwik\Period\Year":1:{s:7:"*date";O:10:"Piwik\Date":2:{s:12:"*timestamp";i:1262304000;s:11:"*timezone";s:3:"UTC";}}s:7:"segment";s:0:"";s:13:"segmentPretty";s:10:"All visits";s:6:"totals";a:15:{s:9:"nb_visits";i:62;s:10:"nb_actions";i:62;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:62;s:19:"nb_visits_converted";i:31;s:26:"sum_daily_nb_uniq_visitors";i:62;s:18:"sum_daily_nb_users";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:15:"conversion_rate";s:3:"50%";s:20:"nb_actions_per_visit";d:1;s:16:"avg_time_on_site";d:183;s:11:"bounce_rate";s:4:"100%";}s:17:"totalsUnformatted";a:15:{s:9:"nb_visits";i:62;s:10:"nb_actions";i:62;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:62;s:19:"nb_visits_converted";i:31;s:26:"sum_daily_nb_uniq_visitors";i:62;s:18:"sum_daily_nb_users";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:15:"conversion_rate";d:0.5;s:20:"nb_actions_per_visit";d:1;s:16:"avg_time_on_site";d:183;s:11:"bounce_rate";d:1;}}s:12:"*totalsRow";N;} \ No newline at end of file
+O:15:"Piwik\DataTable":4:{s:7:"*rows";a:2:{i:0;O:19:"Piwik\DataTable\Row":4:{i:0;i:0;i:1;a:9:{s:5:"label";s:14:"Search Engines";s:9:"nb_visits";i:31;s:10:"nb_actions";i:31;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:31;s:19:"nb_visits_converted";i:0;s:26:"sum_daily_nb_uniq_visitors";i:31;s:18:"sum_daily_nb_users";i:0;}i:2;a:5:{s:15:"maxVisitsSummed";i:0;s:29:"Piwik\DataTable\Rowmetadata";a:2:{s:7:"segment";s:20:"referrerType==search";s:13:"referrer_type";i:2;}s:37:"Piwik\DataTable\RowisSubtableLoaded";b:0;s:10:"subtableId";N;s:33:"Piwik\DataTable\RowisSummaryRow";b:0;}i:3;N;}i:1;O:19:"Piwik\DataTable\Row":4:{i:0;i:0;i:1;a:12:{s:5:"label";s:8:"Websites";s:9:"nb_visits";i:31;s:10:"nb_actions";i:31;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:31;s:19:"nb_visits_converted";i:31;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:26:"sum_daily_nb_uniq_visitors";i:31;s:18:"sum_daily_nb_users";i:0;}i:2;a:5:{s:15:"maxVisitsSummed";i:0;s:29:"Piwik\DataTable\Rowmetadata";a:2:{s:7:"segment";s:21:"referrerType==website";s:13:"referrer_type";i:3;}s:37:"Piwik\DataTable\RowisSubtableLoaded";b:0;s:10:"subtableId";N;s:33:"Piwik\DataTable\RowisSummaryRow";b:0;}i:3;N;}}s:13:"*summaryRow";N;s:11:"*metadata";a:7:{s:11:"ts_archived";s:19:"today-date-removed-in-tests";s:4:"site";O:10:"Piwik\Site":2:{s:5:"*id";i:1;s:16:"Piwik\Sitesite";a:21:{s:6:"idsite";i:1;s:4:"name";s:10:"Piwik test";s:8:"main_url";s:16:"http://piwik.net";s:10:"ts_created";s:19:"2010-01-31 11:22:33";s:9:"ecommerce";i:0;s:10:"sitesearch";i:1;s:29:"sitesearch_keyword_parameters";s:0:"";s:30:"sitesearch_category_parameters";s:0:"";s:8:"timezone";s:3:"UTC";s:8:"currency";s:3:"USD";s:20:"exclude_unknown_urls";i:0;s:12:"excluded_ips";s:0:"";s:19:"excluded_parameters";s:0:"";s:20:"excluded_user_agents";s:0:"";s:18:"excluded_referrers";s:0:"";s:5:"group";s:0:"";s:4:"type";s:7:"website";s:17:"keep_url_fragment";i:0;s:13:"creator_login";s:14:"superUserLogin";s:13:"timezone_name";s:3:"UTC";s:13:"currency_name";s:9:"US Dollar";}}s:6:"period";O:17:"Piwik\Period\Year":1:{s:7:"*date";O:10:"Piwik\Date":2:{s:12:"*timestamp";i:1262304000;s:11:"*timezone";s:3:"UTC";}}s:7:"segment";s:0:"";s:13:"segmentPretty";s:10:"All visits";s:6:"totals";a:15:{s:9:"nb_visits";i:62;s:10:"nb_actions";i:62;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:62;s:19:"nb_visits_converted";i:31;s:26:"sum_daily_nb_uniq_visitors";i:62;s:18:"sum_daily_nb_users";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:15:"conversion_rate";s:3:"50%";s:20:"nb_actions_per_visit";d:1;s:16:"avg_time_on_site";d:183;s:11:"bounce_rate";s:4:"100%";}s:17:"totalsUnformatted";a:15:{s:9:"nb_visits";i:62;s:10:"nb_actions";i:62;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:11315;s:12:"bounce_count";i:62;s:19:"nb_visits_converted";i:31;s:26:"sum_daily_nb_uniq_visitors";i:62;s:18:"sum_daily_nb_users";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:31;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:62;s:19:"nb_visits_converted";i:31;s:7:"revenue";d:0;}}s:14:"nb_conversions";i:93;s:7:"revenue";d:0;s:15:"conversion_rate";d:0.5;s:20:"nb_actions_per_visit";d:1;s:16:"avg_time_on_site";d:183;s:11:"bounce_rate";d:1;}}s:12:"*totalsRow";N;} \ No newline at end of file
diff --git a/plugins/Referrers/tests/System/expected/test_phpSerialized__Referrers.getReferrerType_year.original b/plugins/Referrers/tests/System/expected/test_phpSerialized__Referrers.getReferrerType_year.original
index fa9d34832c..2c278cd091 100644
--- a/plugins/Referrers/tests/System/expected/test_phpSerialized__Referrers.getReferrerType_year.original
+++ b/plugins/Referrers/tests/System/expected/test_phpSerialized__Referrers.getReferrerType_year.original
Binary files differ
diff --git a/plugins/SegmentEditor/tests/UI/SegmentSelectorEditor_spec.js b/plugins/SegmentEditor/tests/UI/SegmentSelectorEditor_spec.js
index 738868ae90..2381953340 100644
--- a/plugins/SegmentEditor/tests/UI/SegmentSelectorEditor_spec.js
+++ b/plugins/SegmentEditor/tests/UI/SegmentSelectorEditor_spec.js
@@ -17,12 +17,8 @@ describe("SegmentSelectorEditorTest", function () {
async function selectFieldValue(fieldName, textToSelect)
{
- await page.webpage.evaluate((fieldName) => {
- $(fieldName + ' input.select-dropdown').click();
- }, fieldName);
- await page.webpage.evaluate((fieldName, textToSelect) => {
- $(fieldName + ' .dropdown-content.active li:contains("' + textToSelect + '"):first').click();
- }, fieldName, textToSelect);
+ await (await page.jQuery(fieldName + ' input.select-dropdown', { waitFor: true })).click();
+ await (await page.jQuery(fieldName + ' .dropdown-content li:contains("' + textToSelect + '"):first', { waitFor: true })).click();
await page.mouse.move(-10, -10);
}
@@ -162,10 +158,10 @@ describe("SegmentSelectorEditorTest", function () {
await selectFieldValue('.segmentRow1 .segment-row .metricMatchBlock', 'Is not');
for (let i = 0; i < 3; i += 1) {
+ await page.waitForTimeout(200);
await page.evaluate(function (i) {
$(`.metricValueBlock input:eq(${i})`).val('new value ' + i).change();
}, i);
- await page.waitForTimeout(200);
}
await page.waitForTimeout(200);
@@ -267,10 +263,9 @@ describe("SegmentSelectorEditorTest", function () {
await selectDimension('.segmentRow0', 'Visitors', 'Browser');
await selectFieldValue('.segmentRow0 .segment-row:eq(0) .metricMatchBlock', 'Is not');
- await page.evaluate(function () {
- var complexValue = 's#2&#--_*+?# #5"\'&<>.22,3';
- $('.segmentRow0 .segment-row:first .metricValueBlock input').val(complexValue).change();
- });
+ var complexValue = 's#2&#--_*+?# #5"\'&<>.22,3';
+ await (await page.jQuery('.segmentRow0 .segment-row:first .metricValueBlock input')).type(complexValue);
+ await page.waitForTimeout(200);
await page.click('.segment-add-or');
await page.waitForFunction(() => !! $('.segmentRow0 .segment-row:eq(1)').length);
@@ -279,10 +274,8 @@ describe("SegmentSelectorEditorTest", function () {
await selectDimension('.segmentRow0 .segment-row:eq(1)', 'Visitors', 'Browser');
await selectFieldValue('.segmentRow0 .segment-row:eq(1) .metricMatchBlock', 'Is');
- await page.evaluate(function () {
- var complexValue = 's#2&#--_*+?# #5"\'&<>.22,3';
- $('.segmentRow0 .segment-row:eq(1) .metricValueBlock input').val(complexValue).change();
- });
+ await (await page.jQuery('.segmentRow0 .segment-row:eq(1) .metricValueBlock input')).type(complexValue);
+ await page.waitForTimeout(200);
await page.click('.segment-add-row');
await page.waitForSelector('.segmentRow1 .segment-row');
@@ -291,11 +284,7 @@ describe("SegmentSelectorEditorTest", function () {
await selectDimension('.segmentRow1', 'Visitors', 'Browser');
await selectFieldValue('.segmentRow1 .segment-row:first .metricMatchBlock', 'Is not');
- await page.evaluate(function () {
- var complexValue = 's#2&#--_*+?# #5"\'&<>.22,3';
- $('.segmentRow1 .metricValueBlock input').val(complexValue).change();
- });
-
+ await (await page.jQuery('.segmentRow1 .metricValueBlock input')).type(complexValue);
await page.waitForTimeout(200);
await page.evaluate(function () {
diff --git a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_capitalized.png b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_capitalized.png
index 0e42dbae7a..397bbf35a7 100644
--- a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_capitalized.png
+++ b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_capitalized.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:122a96abbcf8ad5dcbb60eb1b793f4ea6c4321b88233e0bf8679d2678c722e80
-size 56014
+oid sha256:294d8d610e72b60fab652a3acd9f5764ab365830df14392f985b15a6278db825
+size 57046
diff --git a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_lowercase.png b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_lowercase.png
index 1fb9c1df76..22051f3c69 100644
--- a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_lowercase.png
+++ b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_lowercase.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ed597e24f40b81b1da1ce325d23f84762405bc3fb65e24745222bddc27db8f0a
-size 56017
+oid sha256:cdeb85f25ddeda230b4b86d320e2c56a07a95721f84b33cd27112af5912e7329
+size 57055
diff --git a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_uppercase.png b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_uppercase.png
index b5cd2d4488..89ea6b70ca 100644
--- a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_uppercase.png
+++ b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_autocomplete_uppercase.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:847033562428cd07b98c94149f906b135de40d06d1ba1b55ca15ef61a285811c
-size 56063
+oid sha256:0c5a186ca3cf0b7dcc4f3adfa3846473d0552c9763616fd41898ae1882b5fdd9
+size 57090
diff --git a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_complex_segment.png b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_complex_segment.png
index d6263760f6..aa881f3d8c 100644
--- a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_complex_segment.png
+++ b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_complex_segment.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5f0b13892d997be58e77ca6b15e094a4a96d6d846f7becc7008742e4cc9e9efc
-size 143342
+oid sha256:8a2cce7ab9021235d9476a998dc65afdfb92969c06b14a2a2a338f4046ad0878
+size 378375
diff --git a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_updated_details.png b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_updated_details.png
index 735be8b61a..655518a99b 100644
--- a/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_updated_details.png
+++ b/plugins/SegmentEditor/tests/UI/expected-screenshots/SegmentSelectorEditorTest_updated_details.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e90fa5acc4d469a699ec1aa315e5f5d1970403829a6640ae9538935226bb827a
-size 50141
+oid sha256:dc5ce79d442c1a6e44f2914d74596571523fa3737e5d18e35d6de666f164efbb
+size 51104
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index e213ff1c96..4b4b6c6175 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,6 +7,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\SitesManager;
use DateTimeZone;
@@ -14,6 +16,7 @@ use Piwik\Access;
use Piwik\Common;
use Piwik\Container\StaticContainer;
use Piwik\Date;
+use Piwik\Exception\UnexpectedWebsiteFoundException;
use Piwik\Intl\Data\Provider\CurrencyDataProvider;
use Matomo\Network\IPUtils;
use Piwik\Option;
@@ -61,6 +64,7 @@ class API extends \Piwik\Plugin\API
const OPTION_SEARCH_KEYWORD_QUERY_PARAMETERS_GLOBAL = 'SitesManager_SearchKeywordParameters';
const OPTION_SEARCH_CATEGORY_QUERY_PARAMETERS_GLOBAL = 'SitesManager_SearchCategoryParameters';
const OPTION_EXCLUDED_USER_AGENTS_GLOBAL = 'SitesManager_ExcludedUserAgentsGlobal';
+ const OPTION_EXCLUDED_REFERRERS_GLOBAL = 'SitesManager_ExcludedReferrersGlobal';
const OPTION_KEEP_URL_FRAGMENTS_GLOBAL = 'SitesManager_KeepURLFragmentsGlobal';
/**
@@ -106,16 +110,29 @@ class API extends \Piwik\Plugin\API
* @param bool $crossDomain
* @param bool $forceMatomoEndpoint Whether the Matomo endpoint should be forced if Matomo was installed prior 3.7.0.
* @param bool $excludedQueryParams
+ * @param mixed $excludedReferrers array or comma separated string of ignored referrers. Defaults to configured ignored referrers
*
* @return string The Javascript tag ready to be included on the HTML pages
* @throws Exception
*/
- public function getJavascriptTag($idSite, $piwikUrl = '', $mergeSubdomains = false, $groupPageTitlesByDomain = false,
- $mergeAliasUrls = false, $visitorCustomVariables = false, $pageCustomVariables = false,
- $customCampaignNameQueryParam = false, $customCampaignKeywordParam = false,
- $doNotTrack = false, $disableCookies = false, $trackNoScript = false,
- $crossDomain = false, $forceMatomoEndpoint = false, $excludedQueryParams = false)
- {
+ public function getJavascriptTag(
+ $idSite,
+ $piwikUrl = '',
+ $mergeSubdomains = false,
+ $groupPageTitlesByDomain = false,
+ $mergeAliasUrls = false,
+ $visitorCustomVariables = false,
+ $pageCustomVariables = false,
+ $customCampaignNameQueryParam = false,
+ $customCampaignKeywordParam = false,
+ $doNotTrack = false,
+ $disableCookies = false,
+ $trackNoScript = false,
+ $crossDomain = false,
+ $forceMatomoEndpoint = false,
+ $excludedQueryParams = false,
+ $excludedReferrers = false
+ ) {
Piwik::checkUserHasViewAccess($idSite);
if (empty($piwikUrl)) {
@@ -140,13 +157,25 @@ class API extends \Piwik\Plugin\API
$generator->forceMatomoEndpoint();
}
- $code = $generator->generate($idSite, $piwikUrl, $mergeSubdomains, $groupPageTitlesByDomain,
- $mergeAliasUrls, $visitorCustomVariables, $pageCustomVariables,
- $customCampaignNameQueryParam, $customCampaignKeywordParam,
- $doNotTrack, $disableCookies, $trackNoScript, $crossDomain,
- $excludedQueryParams);
- $code = str_replace(array('<br>', '<br />', '<br/>'), '', $code);
- return $code;
+ $code = $generator->generate(
+ $idSite,
+ $piwikUrl,
+ $mergeSubdomains,
+ $groupPageTitlesByDomain,
+ $mergeAliasUrls,
+ $visitorCustomVariables,
+ $pageCustomVariables,
+ $customCampaignNameQueryParam,
+ $customCampaignKeywordParam,
+ $doNotTrack,
+ $disableCookies,
+ $trackNoScript,
+ $crossDomain,
+ $excludedQueryParams,
+ $excludedReferrers
+ );
+
+ return str_replace(['<br>', '<br />', '<br/>'], '', $code);
}
/**
@@ -159,9 +188,15 @@ class API extends \Piwik\Plugin\API
* @param bool $forceMatomoEndpoint Whether the Matomo endpoint should be forced if Matomo was installed prior 3.7.0.
* @return string The HTML tracking code.
*/
- public function getImageTrackingCode($idSite, $piwikUrl = '', $actionName = false, $idGoal = false, $revenue = false, $forceMatomoEndpoint = false)
- {
- $urlParams = array('idsite' => $idSite, 'rec' => 1);
+ public function getImageTrackingCode(
+ $idSite,
+ $piwikUrl = '',
+ $actionName = false,
+ $idGoal = false,
+ $revenue = false,
+ $forceMatomoEndpoint = false
+ ) {
+ $urlParams = ['idsite' => $idSite, 'rec' => 1];
if ($actionName !== false) {
$urlParams['action_name'] = urlencode(Common::unsanitizeInputValue($actionName));
@@ -184,7 +219,7 @@ class API extends \Piwik\Plugin\API
* @param array &$urlParams The query parameters used in the <img> element's src
* URL. See Matomo's image tracking docs for more info.
*/
- Piwik::postEvent('SitesManager.getImageTrackingCode', array(&$piwikUrl, &$urlParams));
+ Piwik::postEvent('SitesManager.getImageTrackingCode', [&$piwikUrl, &$urlParams]);
$trackerCodeGenerator = new TrackerCodeGenerator();
if ($forceMatomoEndpoint) {
@@ -192,7 +227,7 @@ class API extends \Piwik\Plugin\API
}
$matomoPhp = $trackerCodeGenerator->getPhpTrackerEndpoint();
- $url = (ProxyHttp::isHttps() ? "https://" : "http://") . rtrim($piwikUrl, '/') . '/'.$matomoPhp.'?' . Url::getQueryStringFromParameters($urlParams);
+ $url = (ProxyHttp::isHttps() ? "https://" : "http://") . rtrim($piwikUrl, '/') . '/' . $matomoPhp . '?' . Url::getQueryStringFromParameters($urlParams);
$html = "<!-- Matomo Image Tracker-->
<img referrerpolicy=\"no-referrer-when-downgrade\" src=\"" . htmlspecialchars($url, ENT_COMPAT, 'UTF-8') . "\" style=\"border:0\" alt=\"\" />
<!-- End Matomo -->";
@@ -290,7 +325,7 @@ class API extends \Piwik\Plugin\API
Piwik::checkUserHasSuperUserAccess();
$sites = $this->getModel()->getAllSites();
- $return = array();
+ $return = [];
foreach ($sites as $site) {
$this->enrichSite($site);
$return[$site['idsite']] = $site;
@@ -314,7 +349,7 @@ class API extends \Piwik\Plugin\API
return $this->getSitesId();
} catch (Exception $e) {
// can be called before Matomo tables are created so return empty
- return array();
+ return [];
}
}
@@ -428,20 +463,20 @@ class API extends \Piwik\Plugin\API
return Access::getInstance()->getSitesIdWithAtLeastViewAccess();
}
- if (!empty($_restrictSitesToLogin)
+ if (
+ !empty($_restrictSitesToLogin)
// Only Super User or logged in user can see viewable sites for a specific login,
// but during scheduled task execution, we sometimes want to restrict sites to
// a different login than the superuser.
&& (Piwik::hasUserSuperUserAccessOrIsTheUser($_restrictSitesToLogin)
|| $scheduler->isRunningTask())
) {
-
if (Piwik::hasTheUserSuperUserAccess($_restrictSitesToLogin)) {
return Access::getInstance()->getSitesIdWithAtLeastViewAccess();
}
$accessRaw = Access::getInstance()->getRawSitesWithSomeViewAccess($_restrictSitesToLogin);
- $sitesId = array();
+ $sitesId = [];
foreach ($accessRaw as $access) {
$sitesId[] = $access['idsite'];
@@ -482,13 +517,13 @@ class API extends \Piwik\Plugin\API
$hostname = str_replace('https://', '', $hostname);
// return all variations of the URL
- return array(
+ return [
$url,
"http://" . $hostname,
"http://www." . $hostname,
"https://" . $hostname,
"https://www." . $hostname
- );
+ ];
}
/**
@@ -528,7 +563,7 @@ class API extends \Piwik\Plugin\API
$ids = $this->getModel()->getSitesFromTimezones($timezones);
- $return = array();
+ $return = [];
foreach ($ids as $id) {
$return[] = $id['idsite'];
}
@@ -583,37 +618,40 @@ class API extends \Piwik\Plugin\API
* @see getKeepURLFragmentsGlobal.
* @param string $type The website type, defaults to "website" if not set.
* @param bool|null $excludeUnknownUrls Track only URL matching one of website URLs
+ * @param string|null $excludedReferrers Comma separated list of hosts/urls to exclude from referrer detection
*
* @return int the website ID created
*/
- public function addSite($siteName,
- $urls = null,
- $ecommerce = null,
- $siteSearch = null,
- $searchKeywordParameters = null,
- $searchCategoryParameters = null,
- $excludedIps = null,
- $excludedQueryParameters = null,
- $timezone = null,
- $currency = null,
- $group = null,
- $startDate = null,
- $excludedUserAgents = null,
- $keepURLFragments = null,
- $type = null,
- $settingValues = null,
- $excludeUnknownUrls = null)
- {
+ public function addSite(
+ $siteName,
+ $urls = null,
+ $ecommerce = null,
+ $siteSearch = null,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timezone = null,
+ $currency = null,
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents = null,
+ $keepURLFragments = null,
+ $type = null,
+ $settingValues = null,
+ $excludeUnknownUrls = null,
+ $excludedReferrers = null
+ ) {
Piwik::checkUserHasSuperUserAccess();
SitesManager::dieIfSitesAdminIsDisabled();
$this->checkName($siteName);
if (!isset($settingValues)) {
- $settingValues = array();
+ $settingValues = [];
}
- $coreProperties = array();
+ $coreProperties = [];
$coreProperties = $this->setSettingValue('urls', $urls, $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('ecommerce', $ecommerce, $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('group', $group, $coreProperties, $settingValues);
@@ -625,6 +663,7 @@ class API extends \Piwik\Plugin\API
$coreProperties = $this->setSettingValue('excluded_ips', explode(',', $excludedIps ?? ''), $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('excluded_parameters', explode(',', $excludedQueryParameters ?? ''), $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('excluded_user_agents', explode(',', $excludedUserAgents ?? ''), $coreProperties, $settingValues);
+ $coreProperties = $this->setSettingValue('excluded_referrers', explode(',', $excludedReferrers ?? ''), $coreProperties, $settingValues);
$timezone = trim($timezone ?? '');
if (empty($timezone)) {
@@ -637,7 +676,7 @@ class API extends \Piwik\Plugin\API
}
$this->checkValidCurrency($currency);
- $bind = array('name' => $siteName);
+ $bind = ['name' => $siteName];
$bind['timezone'] = $timezone;
$bind['currency'] = $currency;
$bind['main_url'] = '';
@@ -700,7 +739,7 @@ class API extends \Piwik\Plugin\API
*
* @param int $idSite The ID of the site that was added.
*/
- Piwik::postEvent('SitesManager.addSite.end', array($idSite));
+ Piwik::postEvent('SitesManager.addSite.end', [$idSite]);
return (int) $idSite;
}
@@ -710,23 +749,20 @@ class API extends \Piwik\Plugin\API
$pluginName = 'WebsiteMeasurable';
if (isset($value)) {
-
if (empty($coreProperties[$pluginName])) {
- $coreProperties[$pluginName] = array();
+ $coreProperties[$pluginName] = [];
}
- $coreProperties[$pluginName][] = array('name' => $fieldName, 'value' => $value);
-
+ $coreProperties[$pluginName][] = ['name' => $fieldName, 'value' => $value];
} elseif (!empty($settingValues[$pluginName])) {
// we check if the value is defined in the setting values instead
foreach ($settingValues[$pluginName] as $key => $setting) {
if ($setting['name'] === $fieldName) {
-
if (empty($coreProperties[$pluginName])) {
- $coreProperties[$pluginName] = array();
+ $coreProperties[$pluginName] = [];
}
- $coreProperties[$pluginName][] = array('name' => $fieldName, 'value' => $setting['value']);
+ $coreProperties[$pluginName][] = ['name' => $fieldName, 'value' => $setting['value']];
return $coreProperties;
}
}
@@ -811,7 +847,7 @@ class API extends \Piwik\Plugin\API
*
* @param int $idSite The ID of the site being deleted.
*/
- Piwik::postEvent('SitesManager.deleteSite.end', array($idSite));
+ Piwik::postEvent('SitesManager.deleteSite.end', [$idSite]);
}
private function checkValidTimezone($timezone)
@@ -824,13 +860,13 @@ class API extends \Piwik\Plugin\API
}
}
}
- throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidTimezone', array($timezone)));
+ throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidTimezone', [$timezone]));
}
private function checkValidCurrency($currency)
{
if (!in_array($currency, array_keys($this->getCurrencyList()))) {
- throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidCurrency', array($currency, "USD, EUR, etc.")));
+ throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidCurrency', [$currency, "USD, EUR, etc."]));
}
}
@@ -853,7 +889,7 @@ class API extends \Piwik\Plugin\API
*
* @param string $excludedIps Comma separated list of IP addresses
* @throws Exception
- * @return array of IPs
+ * @return string Comma separated list of IP addresses
*/
private function checkAndReturnExcludedIps($excludedIps)
{
@@ -867,12 +903,16 @@ class API extends \Piwik\Plugin\API
foreach ($ips as $ip) {
if (!$this->isValidIp($ip)) {
- throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidIPFormat', array($ip, "1.2.3.4, 1.2.3.*, or 1.2.3.4/5")));
+ throw new Exception(
+ $this->translator->translate(
+ 'SitesManager_ExceptionInvalidIPFormat',
+ [$ip, "1.2.3.4, 1.2.3.*, or 1.2.3.4/5"]
+ )
+ );
}
}
- $ips = implode(',', $ips);
- return $ips;
+ return implode(',', $ips);
}
/**
@@ -894,7 +934,7 @@ class API extends \Piwik\Plugin\API
}
if (!is_array($urls)) {
- $urls = array($urls);
+ $urls = [$urls];
}
$urlsInit = $this->getSiteUrlsFromId($idSite);
@@ -919,7 +959,7 @@ class API extends \Piwik\Plugin\API
*
* @return int the number of inserted URLs
*/
- public function setSiteAliasUrls($idSite, $urls = array())
+ public function setSiteAliasUrls($idSite, $urls = [])
{
Piwik::checkUserHasAdminAccess($idSite);
@@ -950,7 +990,7 @@ class API extends \Piwik\Plugin\API
return false;
}
- return array(IPUtils::binaryToStringIP($range[0]), IPUtils::binaryToStringIP($range[1]));
+ return [IPUtils::binaryToStringIP($range[0]), IPUtils::binaryToStringIP($range[1])];
}
/**
@@ -1055,6 +1095,75 @@ class API extends \Piwik\Plugin\API
}
/**
+ * Returns the list of urls/hosts that should be ignored when detecting referrers for the given site.
+ *
+ * @return array list of urls/hosts
+ */
+ public function getExcludedReferrers($idSite)
+ {
+ try {
+ $attributes = Cache::getCacheWebsiteAttributes($idSite);
+
+ if (isset($attributes['excluded_referrers'])) {
+ return $attributes['excluded_referrers'];
+ }
+ } catch (UnexpectedWebsiteFoundException $e) {
+ $cached = Cache::getCacheGeneral();
+ if (isset($cached['global_excluded_referrers'])) {
+ return $cached['global_excluded_referrers'];
+ }
+ }
+
+ return [];
+ }
+
+ /**
+ * Returns the global list of urls/hosts that should be ignored when detecting referrers.
+ * If a visitor is coming from a site on this list, it will be treated as direct entry
+ *
+ * @return string Comma separated list of strings
+ */
+ public function getExcludedReferrersGlobal(): string
+ {
+ Piwik::checkUserHasSomeAdminAccess();
+ $exclusion = Option::get(self::OPTION_EXCLUDED_REFERRERS_GLOBAL);
+
+ return is_string($exclusion) ? $exclusion : '';
+ }
+
+ /**
+ * Sets list of urls/hosts that should be ignored when detecting referrers. For more info,
+ * @see getExcludedReferrersGlobal.
+ *
+ * @param string $excludedReferrers Comma separated list of strings. Each element is trimmed,
+ * and empty strings are removed.
+ */
+ public function setGlobalExcludedReferrers(string $excludedReferrers): void
+ {
+ Piwik::checkUserHasSuperUserAccess();
+
+ $excludedUrls = $this->checkAndReturnCommaSeparatedStringList($excludedReferrers);
+
+ foreach (explode(',', $excludedUrls) ?: [] as $url) {
+ // We allow urls to be provided:
+ // - fully qualified like http://example.url/path
+ // - without protocol like example.url/path
+ // - with subdomain wildcard like .example.url/path
+ $prefixedUrl = 'https://' . ltrim(preg_replace('/^https?:\/\//', '', $url), '.');
+ $parsedUrl = @parse_url($prefixedUrl);
+ if (false === $parsedUrl || !UrlHelper::isLookLikeUrl($prefixedUrl)) {
+ throw new Exception(Piwik::translate('SitesManager_ExceptionInvalidUrl', [$url]));
+ }
+ }
+
+ // update option
+ Option::set(self::OPTION_EXCLUDED_REFERRERS_GLOBAL, $excludedUrls);
+
+ // make sure tracker cache will reflect change
+ Cache::deleteTrackerCache();
+ }
+
+ /**
* Returns true if the default behavior is to keep URL fragments when tracking,
* false if otherwise.
*
@@ -1195,31 +1304,34 @@ class API extends \Piwik\Plugin\API
* @param string $type The Website type, default value is "website"
* @param array|null $settingValues JSON serialized settings eg {settingName: settingValue, ...}
* @param bool|null $excludeUnknownUrls Track only URL matching one of website URLs
+ * @param string|null $excludedReferrers Comma separated list of hosts/urls to exclude from referrer detection
* @throws Exception
* @see getKeepURLFragmentsGlobal. If null, the existing value will
* not be modified.
*
* @return bool true on success
*/
- public function updateSite($idSite,
- $siteName = null,
- $urls = null,
- $ecommerce = null,
- $siteSearch = null,
- $searchKeywordParameters = null,
- $searchCategoryParameters = null,
- $excludedIps = null,
- $excludedQueryParameters = null,
- $timezone = null,
- $currency = null,
- $group = null,
- $startDate = null,
- $excludedUserAgents = null,
- $keepURLFragments = null,
- $type = null,
- $settingValues = null,
- $excludeUnknownUrls = null)
- {
+ public function updateSite(
+ $idSite,
+ $siteName = null,
+ $urls = null,
+ $ecommerce = null,
+ $siteSearch = null,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timezone = null,
+ $currency = null,
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents = null,
+ $keepURLFragments = null,
+ $type = null,
+ $settingValues = null,
+ $excludeUnknownUrls = null,
+ $excludedReferrers = null
+ ) {
Piwik::checkUserHasAdminAccess($idSite);
SitesManager::dieIfSitesAdminIsDisabled();
@@ -1230,7 +1342,7 @@ class API extends \Piwik\Plugin\API
}
// Build the SQL UPDATE based on specified updates to perform
- $bind = array();
+ $bind = [];
if (!is_null($siteName)) {
$this->checkName($siteName);
@@ -1238,11 +1350,11 @@ class API extends \Piwik\Plugin\API
}
if (!isset($settingValues)) {
- $settingValues = array();
+ $settingValues = [];
}
if (empty($coreProperties)) {
- $coreProperties = array();
+ $coreProperties = [];
}
$coreProperties = $this->setSettingValue('urls', $urls, $coreProperties, $settingValues);
@@ -1256,6 +1368,7 @@ class API extends \Piwik\Plugin\API
$coreProperties = $this->setSettingValue('excluded_ips', explode(',', $excludedIps ?? ''), $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('excluded_parameters', explode(',', $excludedQueryParameters ?? ''), $coreProperties, $settingValues);
$coreProperties = $this->setSettingValue('excluded_user_agents', explode(',', $excludedUserAgents ?? ''), $coreProperties, $settingValues);
+ $coreProperties = $this->setSettingValue('excluded_referrers', explode(',', $excludedReferrers ?? ''), $coreProperties, $settingValues);
if (isset($currency)) {
$currency = trim($currency);
@@ -1267,7 +1380,8 @@ class API extends \Piwik\Plugin\API
$this->checkValidTimezone($timezone);
$bind['timezone'] = $timezone;
}
- if (isset($group)
+ if (
+ isset($group)
&& Piwik::hasUserSuperUserAccess()
) {
$bind['group'] = trim($group);
@@ -1346,7 +1460,7 @@ class API extends \Piwik\Plugin\API
$dataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\CurrencyDataProvider');
$currency = $dataProvider->getCurrencyList();
- $return = array();
+ $return = [];
foreach (array_keys($currency) as $currencyCode) {
$return[$currencyCode] = $this->translator->translate('Intl_Currency_' . $currencyCode) .
' (' . $this->translator->translate('Intl_CurrencySymbol_' . $currencyCode) . ')';
@@ -1393,13 +1507,13 @@ class API extends \Piwik\Plugin\API
public function getTimezonesList()
{
if (!SettingsServer::isTimezoneSupportEnabled()) {
- return array('UTC' => $this->getTimezonesListUTCOffsets());
+ return ['UTC' => $this->getTimezonesListUTCOffsets()];
}
$countries = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider')->getCountryList();
- $return = array();
- $continents = array();
+ $return = [];
+ $continents = [];
foreach ($countries as $countryCode => $continentCode) {
$countryCode = strtoupper($countryCode);
$timezones = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $countryCode);
@@ -1436,7 +1550,7 @@ class API extends \Piwik\Plugin\API
public function getTimezoneName($timezone, $countryCode = null, $multipleTimezonesInCountry = null)
{
if (substr($timezone, 0, 3) === 'UTC') {
- return $this->translator->translate('SitesManager_Format_Utc', str_replace(array('.25', '.5', '.75'), array(':15', ':30', ':45'), substr($timezone, 3)));
+ return $this->translator->translate('SitesManager_Format_Utc', str_replace(['.25', '.5', '.75'], [':15', ':30', ':45'], substr($timezone, 3)));
}
if (!isset($countryCode)) {
@@ -1463,7 +1577,7 @@ class API extends \Piwik\Plugin\API
$return = $this->translator->translate('Intl_Country_' . $countryCode);
if ($multipleTimezonesInCountry) {
- $translationId = 'Intl_Timezone_' . str_replace(array('_', '/'), array('', '_'), $timezone);
+ $translationId = 'Intl_Timezone_' . str_replace(['_', '/'], ['', '_'], $timezone);
$city = $this->translator->translate($translationId);
// Fall back to English identifier, if translation is missing due to differences in tzdata in different PHP versions.
@@ -1481,10 +1595,10 @@ class API extends \Piwik\Plugin\API
private function getTimezonesListUTCOffsets()
{
// manually add the UTC offsets
- $GmtOffsets = array(-12, -11.5, -11, -10.5, -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5,
- 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14);
+ $GmtOffsets = [-12, -11.5, -11, -10.5, -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5,
+ 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14];
- $return = array();
+ $return = [];
foreach ($GmtOffsets as $offset) {
$offset = Common::forceDotAsSeparatorForDecimalPoint($offset);
@@ -1520,7 +1634,8 @@ class API extends \Piwik\Plugin\API
private function removeTrailingSlash($url)
{
// if there is a final slash, we take the URL without this slash (expected URL format)
- if (strlen($url) > 5
+ if (
+ strlen($url) > 5
&& $url[strlen($url) - 1] == '/'
) {
$url = substr($url, 0, strlen($url) - 1);
@@ -1576,18 +1691,20 @@ class API extends \Piwik\Plugin\API
$sitesHavingOldGroup = $this->getSitesFromGroup($oldGroupName);
foreach ($sitesHavingOldGroup as $site) {
- $this->updateSite($site['idsite'],
- $siteName = null,
- $urls = null,
- $ecommerce = null,
- $siteSearch = null,
- $searchKeywordParameters = null,
- $searchCategoryParameters = null,
- $excludedIps = null,
- $excludedQueryParameters = null,
- $timezone = null,
- $currency = null,
- $newGroupName);
+ $this->updateSite(
+ $site['idsite'],
+ $siteName = null,
+ $urls = null,
+ $ecommerce = null,
+ $siteSearch = null,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timezone = null,
+ $currency = null,
+ $newGroupName
+ );
}
return true;
@@ -1608,7 +1725,7 @@ class API extends \Piwik\Plugin\API
{
$ids = $this->getSitesIdWithAtLeastViewAccess();
if (empty($ids)) {
- return array();
+ return [];
}
$sites = $this->getModel()->getPatternMatchSites($ids, $pattern, $limit);
@@ -1637,5 +1754,4 @@ class API extends \Piwik\Plugin\API
return SettingsPiwik::getWebsitesCountToDisplay();
}
-
}
diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php
index 79e671a720..197dca845e 100644
--- a/plugins/SitesManager/Controller.php
+++ b/plugins/SitesManager/Controller.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,6 +7,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\SitesManager;
use Exception;
@@ -32,7 +34,8 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
/** @var Lazy */
private $cache;
- public function __construct(Lazy $cache) {
+ public function __construct(Lazy $cache)
+ {
$this->cache = $cache;
parent::__construct();
@@ -62,7 +65,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
$response = new ResponseBuilder(Common::getRequestVar('format'));
- $globalSettings = array();
+ $globalSettings = [];
$globalSettings['keepURLFragmentsGlobal'] = API::getInstance()->getKeepURLFragmentsGlobal();
$globalSettings['defaultCurrency'] = API::getInstance()->getDefaultCurrency();
$globalSettings['searchKeywordParametersGlobal'] = API::getInstance()->getSearchKeywordParametersGlobal();
@@ -71,6 +74,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
$globalSettings['excludedIpsGlobal'] = API::getInstance()->getExcludedIpsGlobal();
$globalSettings['excludedQueryParametersGlobal'] = API::getInstance()->getExcludedQueryParametersGlobal();
$globalSettings['excludedUserAgentsGlobal'] = API::getInstance()->getExcludedUserAgentsGlobal();
+ $globalSettings['excludedReferrersGlobal'] = API::getInstance()->getExcludedReferrersGlobal();
return $response->getResponse($globalSettings);
}
@@ -88,6 +92,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
$excludedIps = Common::getRequestVar('excludedIps', false);
$excludedQueryParameters = Common::getRequestVar('excludedQueryParameters', false);
$excludedUserAgents = Common::getRequestVar('excludedUserAgents', false);
+ $excludedReferrers = Common::getRequestVar('excludedReferrers', false);
$currency = Common::getRequestVar('currency', false);
$searchKeywordParameters = Common::getRequestVar('searchKeywordParameters', $default = "");
$searchCategoryParameters = Common::getRequestVar('searchCategoryParameters', $default = "");
@@ -99,6 +104,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
$api->setGlobalExcludedQueryParameters($excludedQueryParameters);
$api->setGlobalExcludedIps($excludedIps);
$api->setGlobalExcludedUserAgents($excludedUserAgents);
+ $api->setGlobalExcludedReferrers($excludedReferrers);
$api->setGlobalSearchParameters($searchKeywordParameters, $searchCategoryParameters);
$api->setKeepURLFragmentsGlobal($keepURLFragments);
@@ -159,7 +165,8 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
), $viewType = 'basic');
}
- public function siteWithoutDataTabs() {
+ public function siteWithoutDataTabs()
+ {
$this->checkSitePermission();
$mainUrl = $this->site->getMainUrl();
diff --git a/plugins/SitesManager/SiteUrls.php b/plugins/SitesManager/SiteUrls.php
index 530577b9ac..8880af0972 100644
--- a/plugins/SitesManager/SiteUrls.php
+++ b/plugins/SitesManager/SiteUrls.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,6 +7,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\SitesManager;
use Piwik\Cache;
@@ -44,10 +46,10 @@ class SiteUrls
public function groupUrlsByHost($siteUrls)
{
if (empty($siteUrls)) {
- return array();
+ return [];
}
- $allUrls = array();
+ $allUrls = [];
foreach ($siteUrls as $idSite => $urls) {
$idSite = (int) $idSite;
@@ -61,7 +63,7 @@ class SiteUrls
return $allUrls;
}
- private function addUrlByHost(&$allUrls, $idSite, $url, $addPath = true)
+ public function addUrlByHost(&$allUrls, $idSite, $url, $addPath = true)
{
$urlParsed = @parse_url($url);
@@ -73,7 +75,7 @@ class SiteUrls
$path = $this->getCanonicalPathFromParsedUrl($urlParsed);
if (!isset($allUrls[$host])) {
- $allUrls[$host] = array();
+ $allUrls[$host] = [];
}
if (!$addPath) {
@@ -81,7 +83,7 @@ class SiteUrls
}
if (!isset($allUrls[$host][$path])) {
- $allUrls[$host][$path] = array();
+ $allUrls[$host][$path] = [];
}
if (!in_array($idSite, $allUrls[$host][$path])) {
@@ -92,7 +94,7 @@ class SiteUrls
private function sortUrlsByHost(&$allUrls)
{
foreach ($allUrls as $host => $paths) {
- uksort($paths, array($this, 'sortByPathDepth'));
+ uksort($paths, [$this, 'sortByPathDepth']);
$allUrls[$host] = $paths;
}
}
@@ -106,23 +108,38 @@ class SiteUrls
$urlHost = $this->toCanonicalHost($parsedUrl['host']);
$urlPath = $this->getCanonicalPathFromParsedUrl($parsedUrl);
- $matchingSites = null;
- if (isset($urlsGroupedByHost[$urlHost])) {
- $paths = $urlsGroupedByHost[$urlHost];
-
- foreach ($paths as $path => $idSites) {
- if (0 === strpos($urlPath, $path)) {
- $matchingSites = $idSites;
- break;
+ // As wildcard subdomain might be allowed, for e.g. my.sub.example.org we need to check e.g.
+ // - my.sub.example.org
+ // - .my.sub.example.org
+ // - .sub.example.org
+ // - .example.org
+ $hostsToCheck = [
+ $urlHost,
+ '.' . $urlHost,
+ ];
+
+ while (substr_count($urlHost, '.') >= 2) {
+ $urlHost = substr($urlHost, strpos($urlHost, '.') + 1);
+ $hostsToCheck[] = '.' . $urlHost;
+ }
+
+ foreach ($hostsToCheck as $host) {
+ if (isset($urlsGroupedByHost[$host])) {
+ $paths = $urlsGroupedByHost[$host];
+
+ foreach ($paths as $path => $idSites) {
+ if (0 === strpos($urlPath, $path)) {
+ return $idSites;
+ }
}
- }
- if (!isset($matchingSites) && isset($paths['/'])) {
- $matchingSites = $paths['/'];
+ if (isset($paths['/'])) {
+ return $paths['/'];
+ }
}
}
- return $matchingSites;
+ return null;
}
public function getPathMatchingUrl($parsedUrl, $urlsGroupedByHost)
@@ -134,7 +151,6 @@ class SiteUrls
$urlHost = $this->toCanonicalHost($parsedUrl['host']);
$urlPath = $this->getCanonicalPathFromParsedUrl($parsedUrl);
- $matchingSites = null;
if (isset($urlsGroupedByHost[$urlHost])) {
$paths = $urlsGroupedByHost[$urlHost];
@@ -165,15 +181,15 @@ class SiteUrls
$siteUrls = $model->getAllKnownUrlsForAllSites();
if (empty($siteUrls)) {
- return array();
+ return [];
}
- $urls = array();
+ $urls = [];
foreach ($siteUrls as $siteUrl) {
$siteId = (int) $siteUrl['idsite'];
if (!isset($urls[$siteId])) {
- $urls[$siteId] = array();
+ $urls[$siteId] = [];
}
$urls[$siteId][] = $siteUrl['url'];
@@ -231,5 +247,4 @@ class SiteUrls
return $path;
}
-
}
diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php
index 7b0b305cd0..a43ed32813 100644
--- a/plugins/SitesManager/SitesManager.php
+++ b/plugins/SitesManager/SitesManager.php
@@ -183,6 +183,7 @@ class SitesManager extends \Piwik\Plugin
$array['excluded_ips'] = $this->getTrackerExcludedIps($website);
$array['excluded_parameters'] = self::getTrackerExcludedQueryParameters($website);
$array['excluded_user_agents'] = self::getExcludedUserAgents($website);
+ $array['excluded_referrers'] = self::getExcludedReferrers($website);
$array['keep_url_fragment'] = self::shouldKeepURLFragmentsFor($website);
$array['sitesearch'] = $website['sitesearch'];
$array['sitesearch_keyword_parameters'] = $this->getTrackerSearchKeywordParameters($website);
@@ -207,6 +208,7 @@ class SitesManager extends \Piwik\Plugin
Access::doAsSuperUser(function () use (&$cache) {
$cache['global_excluded_user_agents'] = self::filterBlankFromCommaSepList(API::getInstance()->getExcludedUserAgentsGlobal());
$cache['global_excluded_ips'] = self::filterBlankFromCommaSepList(API::getInstance()->getExcludedIpsGlobal());
+ $cache['global_excluded_referrers'] = self::filterBlankFromCommaSepList(API::getInstance()->getExcludedReferrersGlobal());
});
}
@@ -296,6 +298,20 @@ class SitesManager extends \Piwik\Plugin
}
/**
+ * Returns the array of excluded referrers. Filters out
+ * any garbage data & trims each entry.
+ *
+ * @param array $website The full set of information for a site.
+ * @return array
+ */
+ private static function getExcludedReferrers($website)
+ {
+ $excludedReferrers = API::getInstance()->getExcludedReferrersGlobal();
+ $excludedReferrers .= ',' . $website['excluded_referrers'];
+ return self::filterBlankFromCommaSepList($excludedReferrers);
+ }
+
+ /**
* Returns the array of URL query parameters to exclude from URLs
*
* @param array $website
@@ -448,6 +464,12 @@ class SitesManager extends \Piwik\Plugin
$translationKeys[] = "SitesManager_JsTrackingTagHelp";
$translationKeys[] = "SitesManager_SiteWithoutDataSinglePageApplication";
$translationKeys[] = "SitesManager_SiteWithoutDataSinglePageApplicationDescription";
-
+ $translationKeys[] = "SitesManager_GlobalListExcludedReferrers";
+ $translationKeys[] = "SitesManager_GlobalListExcludedReferrersDesc";
+ $translationKeys[] = "SitesManager_ExcludedReferrers";
+ $translationKeys[] = "SitesManager_ExcludedReferrersHelp";
+ $translationKeys[] = "SitesManager_ExcludedReferrersHelpDetails";
+ $translationKeys[] = "SitesManager_ExcludedReferrersHelpExamples";
+ $translationKeys[] = "SitesManager_ExcludedReferrersHelpSubDomains";
}
}
diff --git a/plugins/SitesManager/lang/en.json b/plugins/SitesManager/lang/en.json
index 8e0decd70e..e3e4166255 100644
--- a/plugins/SitesManager/lang/en.json
+++ b/plugins/SitesManager/lang/en.json
@@ -25,6 +25,13 @@
"ExcludedIps": "Excluded IPs",
"ExcludedParameters": "Excluded Parameters",
"ExcludedUserAgents": "Excluded User Agents",
+ "ExcludedReferrers": "Excluded referrers",
+ "ExcludedReferrersHelp": "Enter the list of hostnames and URLs, one per line, you want to exclude from referrer detection.",
+ "ExcludedReferrersHelpDetails": "Each entry needs to contain the hostname and may contain a path. If a path is provided a referrer will only be excluded if the path matches as well. URLs with and without 'www' are treated the same. Provided protocols will be ignored.",
+ "ExcludedReferrersHelpExamples": "e.g. \"%1$s\" would match \"%2$s\" and \"%3$s\" but not \"%4$s\"",
+ "ExcludedReferrersHelpSubDomains": "To also exclude all subdomains of a certain hostname, prefix it with a dot. e.g. \"%1$s\" would exclude \"%2$s\", but also all its subdomains like \"%3$s\".",
+ "GlobalListExcludedReferrers": "Global list of excluded referrers",
+ "GlobalListExcludedReferrersDesc": "The hostnames and URLs below will be excluded from referrer detection.",
"Format_Utc": "UTC%s",
"GlobalExcludedUserAgentHelp1": "Enter the list of user agents to exclude from being tracked by Matomo.",
"GlobalExcludedUserAgentHelp2": "You can use this to exclude some bots from being tracked.",
diff --git a/plugins/SitesManager/tests/Fixtures/ManySites.php b/plugins/SitesManager/tests/Fixtures/ManySites.php
index f070a53174..4f30ae492f 100644
--- a/plugins/SitesManager/tests/Fixtures/ManySites.php
+++ b/plugins/SitesManager/tests/Fixtures/ManySites.php
@@ -1,10 +1,12 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
+
namespace Piwik\Plugins\SitesManager\tests\Fixtures;
use Piwik\Plugins\MobileAppMeasurable;
@@ -32,12 +34,18 @@ class ManySites extends Fixture
$type = MobileAppMeasurable\Type::ID;
}
- self::createWebsite($this->dateTime, $ecommerce = 0, $siteName,
- $siteUrl = false,
- $siteSearch = 1, $searchKeywordParameters = null,
- $searchCategoryParameters = null, $timezone = null, $type);
+ self::createWebsite(
+ $this->dateTime,
+ $ecommerce = 0,
+ $siteName,
+ $siteUrl = false,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $timezone = null,
+ $type
+ );
}
}
}
-
-} \ No newline at end of file
+}
diff --git a/plugins/SitesManager/tests/Integration/ApiTest.php b/plugins/SitesManager/tests/Integration/ApiTest.php
index 3966c30c76..e94fbdec16 100644
--- a/plugins/SitesManager/tests/Integration/ApiTest.php
+++ b/plugins/SitesManager/tests/Integration/ApiTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -52,11 +53,11 @@ class ApiTest extends IntegrationTestCase
/**
* empty name -> exception
*/
- public function test_addSite_WithEmptyName_ThrowsException()
+ public function testAddSiteWithEmptyNameThrowsException()
{
$this->expectException(\Exception::class);
- API::getInstance()->addSite("", array("http://piwik.net"));
+ API::getInstance()->addSite("", ["http://piwik.net"]);
}
/**
@@ -64,13 +65,13 @@ class ApiTest extends IntegrationTestCase
*/
public function getInvalidUrlData()
{
- return array(
- array(array()), // no urls
- array(array("")),
- array(""),
- array("5http://piwik.net"),
- array("???://piwik.net"),
- );
+ return [
+ [[]], // no urls
+ [[""]],
+ [""],
+ ["5http://piwik.net"],
+ ["???://piwik.net"],
+ ];
}
/**
@@ -78,7 +79,7 @@ class ApiTest extends IntegrationTestCase
*
* @dataProvider getInvalidUrlData
*/
- public function test_addSite_WithWrongUrls_ThrowsException($url)
+ public function testAddSiteWithWrongUrlsThrowsException($url)
{
$this->expectException(\Exception::class);
API::getInstance()->addSite("name", $url);
@@ -87,7 +88,7 @@ class ApiTest extends IntegrationTestCase
/**
* Test with valid IPs
*/
- public function test_addSite_WithExcludedIps_AndTimezone_AndCurrency_AndExcludedQueryParameters_SucceedsWhenParamsAreValid()
+ public function testAddSiteWithExcludedIpsAndTimezoneAndCurrencyAndExcludedQueryParametersSucceedsWhenParamsAreValid()
{
$this->addSiteTest($expectedWebsiteType = 'mobile-\'app');
}
@@ -95,7 +96,7 @@ class ApiTest extends IntegrationTestCase
/**
* @dataProvider getDifferentTypesDataProvider
*/
- public function test_addSite_WhenTypeIsKnown($expectedWebsiteType)
+ public function testAddSiteWhenTypeIsKnown($expectedWebsiteType)
{
$this->addSiteTest($expectedWebsiteType);
}
@@ -109,11 +110,28 @@ class ApiTest extends IntegrationTestCase
$expectedExcludedQueryParameters = 'p1,P2,P33333';
$excludedUserAgents = " p1,P2, \nP3333 ";
$expectedExcludedUserAgents = "p1,P2,P3333";
+ $excludedReferrers = 'http://www.paypal.com,https://amazon.com';
$keepUrlFragment = 1;
- $idsite = API::getInstance()->addSite("name", "http://piwik.net/", $ecommerce = 1,
- $siteSearch = 1, $searchKeywordParameters = 'search,param', $searchCategoryParameters = 'cat,category',
- $ips, $excludedQueryParameters, $timezone, $currency, $group = null, $startDate = null, $excludedUserAgents,
- $keepUrlFragment, $expectedWebsiteType, $settingValues);
+ $idsite = API::getInstance()->addSite(
+ "name",
+ "http://piwik.net/",
+ $ecommerce = 1,
+ $siteSearch = 1,
+ $searchKeywordParameters = 'search,param',
+ $searchCategoryParameters = 'cat,category',
+ $ips,
+ $excludedQueryParameters,
+ $timezone,
+ $currency,
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents,
+ $keepUrlFragment,
+ $expectedWebsiteType,
+ $settingValues,
+ null,
+ $excludedReferrers
+ );
$siteInfo = API::getInstance()->getSiteFromId($idsite);
$this->assertEquals($ips, $siteInfo['excluded_ips']);
$this->assertEquals($timezone, $siteInfo['timezone']);
@@ -131,6 +149,7 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals($searchCategoryParameters, $siteInfo['sitesearch_category_parameters']);
$this->assertEquals($expectedExcludedQueryParameters, $siteInfo['excluded_parameters']);
$this->assertEquals($expectedExcludedUserAgents, $siteInfo['excluded_user_agents']);
+ $this->assertEquals($excludedReferrers, $siteInfo['excluded_referrers']);
return $siteInfo;
}
@@ -140,15 +159,15 @@ class ApiTest extends IntegrationTestCase
*/
public function getInvalidIPsData()
{
- return array(
- array('35817587341'),
- array('ieagieha'),
- array('1.2.3'),
- array('*.1.1.1'),
- array('*.*.1.1'),
- array('*.*.*.1'),
- array('1.1.1.1.1'),
- );
+ return [
+ ['35817587341'],
+ ['ieagieha'],
+ ['1.2.3'],
+ ['*.1.1.1'],
+ ['*.*.1.1'],
+ ['*.*.*.1'],
+ ['1.1.1.1.1'],
+ ];
}
/**
@@ -156,17 +175,24 @@ class ApiTest extends IntegrationTestCase
*
* @dataProvider getInvalidIPsData
*/
- public function test_addSite_WithInvalidExcludedIps_ThrowsException($ip)
+ public function testAddSiteWithInvalidExcludedIpsThrowsException($ip)
{
$this->expectException(\Exception::class);
- API::getInstance()->addSite("name", "http://piwik.net/", $ecommerce = 0,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, $ip);
+ API::getInstance()->addSite(
+ "name",
+ "http://piwik.net/",
+ $ecommerce = 0,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $ip
+ );
}
/**
* one url -> one main_url and nothing inserted as alias urls
*/
- public function test_addSite_WithOneUrl_Succeeds_AndCreatesNoAliasUrls()
+ public function testAddSiteWithOneUrlSucceedsAndCreatesNoAliasUrls()
{
$url = "http://piwik.net/";
$urlOK = "http://piwik.net";
@@ -184,10 +210,10 @@ class ApiTest extends IntegrationTestCase
/**
* several urls -> one main_url and others as alias urls
*/
- public function test_addSite_WithSeveralUrls_Succeeds_AndCreatesAliasUrls()
+ public function testAddSiteWithSeveralUrlsSucceedsAndCreatesAliasUrls()
{
- $urls = array("http://piwik.net/", "http://piwik.com", "https://piwik.net/test/", "piwik.net/another/test");
- $urlsOK = array("http://piwik.net", "http://piwik.com", "http://piwik.net/another/test", "https://piwik.net/test");
+ $urls = ["http://piwik.net/", "http://piwik.com", "https://piwik.net/test/", "piwik.net/another/test"];
+ $urlsOK = ["http://piwik.net", "http://piwik.com", "http://piwik.net/another/test", "https://piwik.net/test"];
$idsite = API::getInstance()->addSite("super website", $urls);
self::assertIsInt($idsite);
@@ -201,7 +227,7 @@ class ApiTest extends IntegrationTestCase
/**
* strange name
*/
- public function test_addSite_WithStrangeName_Succeeds()
+ public function testAddSiteWithStrangeNameSucceeds()
{
$name = "supertest(); ~@@()''!£\$'%%^'!£ போ";
$idsite = API::getInstance()->addSite($name, "http://piwik.net");
@@ -209,34 +235,32 @@ class ApiTest extends IntegrationTestCase
$siteInfo = API::getInstance()->getSiteFromId($idsite);
$this->assertEquals($name, $siteInfo['name']);
-
}
/**
* @dataProvider getDifferentTypesDataProvider
*/
- public function test_addSite_ShouldFailAndNotCreatedASite_IfASettingIsInvalid($type)
+ public function testAddSiteShouldFailAndNotCreatedASiteIfASettingIsInvalid($type)
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('SitesManager_OnlyMatchedUrlsAllowed');
try {
- $settings = array('WebsiteMeasurable' => array(array('name' => 'exclude_unknown_urls', 'value' => 'fooBar')));
+ $settings = ['WebsiteMeasurable' => [['name' => 'exclude_unknown_urls', 'value' => 'fooBar']]];
$this->addSiteWithType($type, $settings);
} catch (Exception $e) {
-
// make sure no site created
$ids = API::getInstance()->getAllSitesId();
- $this->assertEquals(array(), $ids);
+ $this->assertEquals([], $ids);
throw $e;
}
}
- public function test_addSite_ShouldSavePassedMeasurableSettings_IfSettingsAreValid()
+ public function testAddSiteShouldSavePassedMeasurableSettingsIfSettingsAreValid()
{
$type = WebsiteType::ID;
- $settings = array('WebsiteMeasurable' => array(array('name' => 'urls', 'value' => array('http://www.piwik.org'))));
+ $settings = ['WebsiteMeasurable' => [['name' => 'urls', 'value' => ['http://www.piwik.org']]]];
$idSite = $this->addSiteWithType($type, $settings);
$this->assertSame(1, $idSite);
@@ -244,7 +268,7 @@ class ApiTest extends IntegrationTestCase
$settings = $this->getWebsiteMeasurable($idSite);
$urls = $settings->urls->getValue();
- $this->assertSame(array('http://www.piwik.org'), $urls);
+ $this->assertSame(['http://www.piwik.org'], $urls);
}
/**
@@ -260,10 +284,10 @@ class ApiTest extends IntegrationTestCase
* adds a site
* use by several other unit tests
*/
- protected function _addSite()
+ protected function addSite()
{
$name = "website ";
- $idsite = API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/"));
+ $idsite = API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]);
self::assertIsInt($idsite);
$siteInfo = API::getInstance()->getSiteFromId($idsite);
@@ -271,15 +295,20 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals("http://piwik.net", $siteInfo['main_url']);
$siteUrls = API::getInstance()->getSiteUrlsFromId($idsite);
- $this->assertEquals(array("http://piwik.net", "http://piwik.com/test"), $siteUrls);
+ $this->assertEquals(["http://piwik.net", "http://piwik.com/test"], $siteUrls);
return $idsite;
}
private function addSiteWithType($type, $settings)
{
- return API::getInstance()->addSite("name", "http://piwik.net/", $ecommerce = 0,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null,
+ return API::getInstance()->addSite(
+ "name",
+ "http://piwik.net/",
+ $ecommerce = 0,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
$ip = null,
$excludedQueryParameters = null,
$timezone = null,
@@ -288,12 +317,15 @@ class ApiTest extends IntegrationTestCase
$startDate = null,
$excludedUserAgents = null,
$keepURLFragments = null,
- $type, $settings);
+ $type,
+ $settings
+ );
}
private function updateSiteSettings($idSite, $newSiteName, $settings)
{
- return API::getInstance()->updateSite($idSite,
+ return API::getInstance()->updateSite(
+ $idSite,
$newSiteName,
$urls = null,
$ecommerce = null,
@@ -309,33 +341,34 @@ class ApiTest extends IntegrationTestCase
$excludedUserAgents = null,
$keepURLFragments = null,
$type = null,
- $settings);
+ $settings
+ );
}
/**
* no duplicate -> all the urls are saved
*/
- public function test_addSiteAliasUrls_WithUniqueUrls_SavesAllUrls()
+ public function testAddSiteAliasUrlsWithUniqueUrlsSavesAllUrls()
{
- $idsite = $this->_addSite();
+ $idsite = $this->addSite();
$siteUrlsBefore = API::getInstance()->getSiteUrlsFromId($idsite);
- $toAdd = array("http://piwik1.net",
+ $toAdd = ["http://piwik1.net",
"http://piwik2.net",
"http://piwik3.net/test/",
"http://localhost/test",
"http://localho5.st/test",
"http://l42578gqege.f4",
"http://super.com/test/test/atqata675675/te"
- );
- $toAddValid = array("http://piwik1.net",
+ ];
+ $toAddValid = ["http://piwik1.net",
"http://piwik2.net",
"http://piwik3.net/test",
"http://localhost/test",
"http://localho5.st/test",
"http://l42578gqege.f4",
- "http://super.com/test/test/atqata675675/te");
+ "http://super.com/test/test/atqata675675/te"];
$insertedUrls = API::getInstance()->addSiteAliasUrls($idsite, $toAdd);
$this->assertEquals(count($toAdd), $insertedUrls);
@@ -353,13 +386,13 @@ class ApiTest extends IntegrationTestCase
/**
* duplicate -> don't save the already existing URLs
*/
- public function test_addSiteAliasUrls_WithDuplicateUrls_RemovesDuplicatesBeforeSaving()
+ public function testAddSiteAliasUrlsWithDuplicateUrlsRemovesDuplicatesBeforeSaving()
{
- $idsite = $this->_addSite();
+ $idsite = $this->addSite();
$siteUrlsBefore = API::getInstance()->getSiteUrlsFromId($idsite);
- $toAdd = array_merge($siteUrlsBefore, array("http://piwik1.net", "http://piwik2.net"));
+ $toAdd = array_merge($siteUrlsBefore, ["http://piwik1.net", "http://piwik2.net"]);
$insertedUrls = API::getInstance()->addSiteAliasUrls($idsite, $toAdd);
$this->assertEquals(count($toAdd) - count($siteUrlsBefore), $insertedUrls);
@@ -377,13 +410,13 @@ class ApiTest extends IntegrationTestCase
/**
* case empty array => nothing happens
*/
- public function test_addSiteAliasUrls_WithNoUrls_DoesNothing()
+ public function testAddSiteAliasUrlsWithNoUrlsDoesNothing()
{
- $idsite = $this->_addSite();
+ $idsite = $this->addSite();
$siteUrlsBefore = API::getInstance()->getSiteUrlsFromId($idsite);
- $toAdd = array();
+ $toAdd = [];
$insertedUrls = API::getInstance()->addSiteAliasUrls($idsite, $toAdd);
$this->assertEquals(count($toAdd), $insertedUrls);
@@ -401,9 +434,9 @@ class ApiTest extends IntegrationTestCase
/**
* case array only duplicate => nothing happens
*/
- public function test_addSiteAliasUrls_WithAlreadyPersistedUrls_DoesNothing()
+ public function testAddSiteAliasUrlsWithAlreadyPersistedUrlsDoesNothing()
{
- $idsite = $this->_addSite();
+ $idsite = $this->addSite();
$siteUrlsBefore = API::getInstance()->getSiteUrlsFromId($idsite);
@@ -425,41 +458,56 @@ class ApiTest extends IntegrationTestCase
/**
* wrong format urls => exception
*/
- public function test_addSiteAliasUrls_WithIncorrectFormat_ThrowsException_3()
+ public function testAddSiteAliasUrlsWithIncorrectFormatThrowsException3()
{
$this->expectException(\Exception::class);
- $idsite = $this->_addSite();
- $toAdd = array("http:mpigeq");
+ $idsite = $this->addSite();
+ $toAdd = ["http:mpigeq"];
API::getInstance()->addSiteAliasUrls($idsite, $toAdd);
}
/**
* wrong idsite => no exception because simply no access to this resource
*/
- public function test_addSiteAliasUrls_WithWrongIdSite_ThrowsException()
+ public function testAddSiteAliasUrlsWithWrongIdSiteThrowsException()
{
$this->expectException(\Exception::class);
- $toAdd = array("http://pigeq.com/test");
+ $toAdd = ["http://pigeq.com/test"];
API::getInstance()->addSiteAliasUrls(-1, $toAdd);
}
/**
* wrong idsite => exception
*/
- public function test_addSiteAliasUrls_WithWrongIdSite_ThrowsException2()
+ public function testAddSiteAliasUrlsWithWrongIdSiteThrowsException2()
{
$this->expectException(\Exception::class);
- $toAdd = array("http://pigeq.com/test");
+ $toAdd = ["http://pigeq.com/test"];
API::getInstance()->addSiteAliasUrls(155, $toAdd);
}
- public function test_addSite_CorrectlySavesExcludeUnknownUrlsSetting()
+ public function testAddSiteCorrectlySavesExcludeUnknownUrlsSetting()
{
- $idSite = API::getInstance()->addSite("site", array("http://piwik.net"), $ecommerce = null, $siteSearch = null,
- $searchKeywordParams = null, $searchCategoryParams = null, $excludedIps = null, $excludedQueryParams = null,
- $timezone = null, $currency = null, $group = null, $startDate = null, $excludedUserAgents = null,
- $keepUrlFragments = null, $type = null, $settings = null, $excludeUnknownUrls = true);
+ $idSite = API::getInstance()->addSite(
+ "site",
+ ["http://piwik.net"],
+ $ecommerce = null,
+ $siteSearch = null,
+ $searchKeywordParams = null,
+ $searchCategoryParams = null,
+ $excludedIps = null,
+ $excludedQueryParams = null,
+ $timezone = null,
+ $currency = null,
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents = null,
+ $keepUrlFragments = null,
+ $type = null,
+ $settings = null,
+ $excludeUnknownUrls = true
+ );
$site = API::getInstance()->getSiteFromId($idSite);
$this->assertEquals(1, $site['exclude_unknown_urls']);
@@ -468,25 +516,25 @@ class ApiTest extends IntegrationTestCase
/**
* no Id -> empty array
*/
- public function test_getAllSitesId_ReturnsNothing_WhenNoSitesSaved()
+ public function testGetAllSitesIdReturnsNothingWhenNoSitesSaved()
{
$ids = API::getInstance()->getAllSitesId();
- $this->assertEquals(array(), $ids);
+ $this->assertEquals([], $ids);
}
/**
* several Id -> normal array
*/
- public function test_getAllSitesId_ReturnsAllIds_WhenMultipleSitesPersisted()
+ public function testGetAllSitesIdReturnsAllIdsWhenMultipleSitesPersisted()
{
$name = "tetq";
- $idsites = array(
- API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/")),
- API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/")),
- API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/")),
- API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/")),
- API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/")),
- );
+ $idsites = [
+ API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]),
+ API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]),
+ API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]),
+ API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]),
+ API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]),
+ ];
$ids = API::getInstance()->getAllSitesId();
$this->assertEquals($idsites, $ids);
@@ -495,7 +543,7 @@ class ApiTest extends IntegrationTestCase
/**
* wrong id => exception
*/
- public function test_getSiteFromId_WithWrongId_ThrowsException1()
+ public function testGetSiteFromIdWithWrongIdThrowsException1()
{
$this->expectException(\Exception::class);
API::getInstance()->getSiteFromId(0);
@@ -504,7 +552,7 @@ class ApiTest extends IntegrationTestCase
/**
* wrong id => exception
*/
- public function test_getSiteFromId_WithWrongId_ThrowsException2()
+ public function testGetSiteFromIdWithWrongIdThrowsException2()
{
$this->expectException(\Exception::class);
API::getInstance()->getSiteFromId("x1");
@@ -513,15 +561,15 @@ class ApiTest extends IntegrationTestCase
/**
* wrong id : no access => exception
*/
- public function test_getSiteFromId_ThrowsException_WhenTheUserDoesNotHavaAcessToTheSite()
+ public function testGetSiteFromIdThrowsExceptionWhenTheUserDoesNotHavaAcessToTheSite()
{
$this->expectException(\Exception::class);
- $idsite = API::getInstance()->addSite("site", array("http://piwik.net", "http://piwik.com/test/"));
+ $idsite = API::getInstance()->addSite("site", ["http://piwik.net", "http://piwik.com/test/"]);
$this->assertEquals(1, $idsite);
// set noaccess to site 1
- FakeAccess::setIdSitesView(array(2));
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([2]);
+ FakeAccess::setIdSitesAdmin([]);
API::getInstance()->getSiteFromId(1);
}
@@ -529,10 +577,10 @@ class ApiTest extends IntegrationTestCase
/**
* normal case
*/
- public function test_getSiteFromId_WithNormalId_ReturnsTheCorrectSite()
+ public function testGetSiteFromIdWithNormalIdReturnsTheCorrectSite()
{
$name = "website ''";
- $idsite = API::getInstance()->addSite($name, array("http://piwik.net", "http://piwik.com/test/"));
+ $idsite = API::getInstance()->addSite($name, ["http://piwik.net", "http://piwik.com/test/"]);
self::assertIsInt($idsite);
$siteInfo = API::getInstance()->getSiteFromId($idsite);
@@ -543,29 +591,29 @@ class ApiTest extends IntegrationTestCase
/**
* there is no admin site available -> array()
*/
- public function test_getSitesWithAdminAccess_ReturnsNothing_WhenUserHasNoAdminAccess()
+ public function testGetSitesWithAdminAccessReturnsNothingWhenUserHasNoAdminAccess()
{
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesAdmin([]);
$sites = API::getInstance()->getSitesWithAdminAccess();
- $this->assertEquals(array(), $sites);
+ $this->assertEquals([], $sites);
}
/**
* normal case, admin and view and noaccess website => return only admin
*/
- public function test_getSitesWithAdminAccess_shouldOnlyReturnSitesHavingActuallyAdminAccess()
+ public function testGetSitesWithAdminAccessShouldOnlyReturnSitesHavingActuallyAdminAccess()
{
- API::getInstance()->addSite("site1", array("http://piwik.net", "http://piwik.com/test/"));
- API::getInstance()->addSite("site2", array("http://piwik.com/test/"));
- API::getInstance()->addSite("site3", array("http://piwik.org"), null, null, null, null, null, null, 'Asia/Tokyo');
+ API::getInstance()->addSite("site1", ["http://piwik.net", "http://piwik.com/test/"]);
+ API::getInstance()->addSite("site2", ["http://piwik.com/test/"]);
+ API::getInstance()->addSite("site3", ["http://piwik.org"], null, null, null, null, null, null, 'Asia/Tokyo');
- $resultWanted = array(
- 0 => array("idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'UTC', 'timezone_name' => 'SitesManager_Format_Utc', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'currency_name' => 'USD'),
- 1 => array("idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'Asia/Tokyo', 'timezone_name' => 'Intl_Country_JP', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'currency_name' => 'USD'),
- );
+ $resultWanted = [
+ 0 => ["idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'UTC', 'timezone_name' => 'SitesManager_Format_Utc', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'currency_name' => 'USD'],
+ 1 => ["idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'Asia/Tokyo', 'timezone_name' => 'Intl_Country_JP', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'currency_name' => 'USD'],
+ ];
- FakeAccess::setIdSitesAdmin(array(1, 3));
+ FakeAccess::setIdSitesAdmin([1, 3]);
$sites = API::getInstance()->getSitesWithAdminAccess();
@@ -575,7 +623,7 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals($resultWanted, $sites);
}
- public function test_getSitesWithAdminAccess_shouldApplyLimit_IfSet()
+ public function testGetSitesWithAdminAccessShouldApplyLimitIfSet()
{
$this->createManySitesWithAdminAccess(40);
@@ -585,50 +633,50 @@ class ApiTest extends IntegrationTestCase
// return only 5 sites
$sites = API::getInstance()->getSitesWithAdminAccess(false, false, 5);
- $this->assertReturnedSitesContainsSiteIds(array(1, 2, 3, 4, 5), $sites);
+ $this->assertReturnedSitesContainsSiteIds([1, 2, 3, 4, 5], $sites);
// return only 10 sites
$sites = API::getInstance()->getSitesWithAdminAccess(false, false, 10);
$this->assertReturnedSitesContainsSiteIds(range(1, 10), $sites);
}
- public function test_getSitesWithAdminAccess_shouldApplyPattern_IfSetAndFindBySiteName()
+ public function testGetSitesWithAdminAccessShouldApplyPatternIfSetAndFindBySiteName()
{
$this->createManySitesWithAdminAccess(40);
// by site name
$sites = API::getInstance()->getSitesWithAdminAccess(false, 'site38');
- $this->assertReturnedSitesContainsSiteIds(array(38), $sites);
+ $this->assertReturnedSitesContainsSiteIds([38], $sites);
}
- public function test_getSitesWithAdminAccess_shouldApplyPattern_IfSetAndFindByUrl()
+ public function testGetSitesWithAdminAccessShouldApplyPatternIfSetAndFindByUrl()
{
$this->createManySitesWithAdminAccess(40);
$sites = API::getInstance()->getSitesWithAdminAccess(false, 'piwik38.o');
- $this->assertReturnedSitesContainsSiteIds(array(38), $sites);
+ $this->assertReturnedSitesContainsSiteIds([38], $sites);
}
- public function test_getSitesWithAdminAccess_shouldApplyPattern_AndFindMany()
+ public function testGetSitesWithAdminAccessShouldApplyPatternAndFindMany()
{
$this->createManySitesWithAdminAccess(40);
$sites = API::getInstance()->getSitesWithAdminAccess(false, '5');
- $this->assertReturnedSitesContainsSiteIds(array(5, 15, 25, 35), $sites);
+ $this->assertReturnedSitesContainsSiteIds([5, 15, 25, 35], $sites);
}
- public function test_getSitesWithAdminAccess_shouldApplyPatternAndLimit()
+ public function testGetSitesWithAdminAccessShouldApplyPatternAndLimit()
{
$this->createManySitesWithAdminAccess(40);
$sites = API::getInstance()->getSitesWithAdminAccess(false, '5', 2);
- $this->assertReturnedSitesContainsSiteIds(array(5, 15), $sites);
+ $this->assertReturnedSitesContainsSiteIds([5, 15], $sites);
}
private function createManySitesWithAdminAccess($numSites)
{
for ($i = 1; $i <= $numSites; $i++) {
- API::getInstance()->addSite("site" . $i, array("http://piwik$i.org"));
+ API::getInstance()->addSite("site" . $i, ["http://piwik$i.org"]);
}
FakeAccess::setIdSitesAdmin(range(1, $numSites));
@@ -651,31 +699,31 @@ class ApiTest extends IntegrationTestCase
/**
* there is no admin site available -> array()
*/
- public function test_getSitesWithViewAccess_ReturnsNothing_IfUserHasNoViewOrAdminAccess()
+ public function testGetSitesWithViewAccessReturnsNothingIfUserHasNoViewOrAdminAccess()
{
- FakeAccess::setIdSitesView(array());
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([]);
+ FakeAccess::setIdSitesAdmin([]);
$sites = API::getInstance()->getSitesWithViewAccess();
- $this->assertEquals(array(), $sites);
+ $this->assertEquals([], $sites);
}
/**
* normal case, admin and view and noaccess website => return only admin
*/
- public function test_getSitesWithViewAccess_ReturnsSitesWithViewAccess()
+ public function testGetSitesWithViewAccessReturnsSitesWithViewAccess()
{
- API::getInstance()->addSite("site1", array("http://piwik.net", "http://piwik.com/test/"));
- API::getInstance()->addSite("site2", array("http://piwik.com/test/"));
- API::getInstance()->addSite("site3", array("http://piwik.org"));
+ API::getInstance()->addSite("site1", ["http://piwik.net", "http://piwik.com/test/"]);
+ API::getInstance()->addSite("site2", ["http://piwik.com/test/"]);
+ API::getInstance()->addSite("site3", ["http://piwik.org"]);
- $resultWanted = array(
- 0 => array("idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 0, 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', "excluded_ips" => "", 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'),
- 1 => array("idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', "excluded_ips" => "", 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'),
- );
+ $resultWanted = [
+ 0 => ["idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 0, 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', "excluded_ips" => "", 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'],
+ 1 => ["idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', "excluded_ips" => "", 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'],
+ ];
- FakeAccess::setIdSitesView(array(1, 3));
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([1, 3]);
+ FakeAccess::setIdSitesAdmin([]);
$sites = API::getInstance()->getSitesWithViewAccess();
@@ -689,31 +737,31 @@ class ApiTest extends IntegrationTestCase
/**
* there is no admin site available -> array()
*/
- public function test_getSitesWithAtLeastViewAccess_ReturnsNothing_WhenUserHasNoAccess()
+ public function testGetSitesWithAtLeastViewAccessReturnsNothingWhenUserHasNoAccess()
{
- FakeAccess::setIdSitesView(array());
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([]);
+ FakeAccess::setIdSitesAdmin([]);
$sites = API::getInstance()->getSitesWithAtLeastViewAccess();
- $this->assertEquals(array(), $sites);
+ $this->assertEquals([], $sites);
}
/**
* normal case, admin and view and noaccess website => return only admin
*/
- public function test_getSitesWithAtLeastViewAccess_ReturnsSitesWithViewAccess()
+ public function testGetSitesWithAtLeastViewAccessReturnsSitesWithViewAccess()
{
- API::getInstance()->addSite("site1", array("http://piwik.net", "http://piwik.com/test/"), $ecommerce = 1);
- API::getInstance()->addSite("site2", array("http://piwik.com/test/"));
- API::getInstance()->addSite("site3", array("http://piwik.org"));
+ API::getInstance()->addSite("site1", ["http://piwik.net", "http://piwik.com/test/"], $ecommerce = 1);
+ API::getInstance()->addSite("site2", ["http://piwik.com/test/"]);
+ API::getInstance()->addSite("site3", ["http://piwik.org"]);
- $resultWanted = array(
- 0 => array("idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 1, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'),
- 1 => array("idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'),
- );
+ $resultWanted = [
+ 0 => ["idsite" => 1, "name" => "site1", "main_url" => "http://piwik.net", "ecommerce" => 1, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'],
+ 1 => ["idsite" => 3, "name" => "site3", "main_url" => "http://piwik.org", "ecommerce" => 0, "excluded_ips" => "", 'sitesearch' => 1, 'sitesearch_keyword_parameters' => '', 'sitesearch_category_parameters' => '', 'excluded_parameters' => '', 'excluded_user_agents' => '', 'excluded_referrers' => '', 'timezone' => 'UTC', 'currency' => 'USD', 'group' => '', 'keep_url_fragment' => 0, 'type' => 'website', 'exclude_unknown_urls' => 0, 'timezone_name' => 'SitesManager_Format_Utc', 'currency_name' => 'USD'],
+ ];
- FakeAccess::setIdSitesView(array(1, 3));
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([1, 3]);
+ FakeAccess::setIdSitesAdmin([]);
$sites = API::getInstance()->getSitesWithAtLeastViewAccess();
// we don't test the ts_created
@@ -725,30 +773,30 @@ class ApiTest extends IntegrationTestCase
/**
* no urls for this site => array()
*/
- public function test_getSiteUrlsFromId_ReturnsMainUrlOnly_WhenNoAliasUrls()
+ public function testGetSiteUrlsFromIdReturnsMainUrlOnlyWhenNoAliasUrls()
{
- $idsite = API::getInstance()->addSite("site1", array("http://piwik.net"));
+ $idsite = API::getInstance()->addSite("site1", ["http://piwik.net"]);
$urls = API::getInstance()->getSiteUrlsFromId($idsite);
- $this->assertEquals(array("http://piwik.net"), $urls);
+ $this->assertEquals(["http://piwik.net"], $urls);
}
/**
* normal case
*/
- public function test_getSiteUrlsFromId_ReturnsMainAndAliasUrls()
+ public function testGetSiteUrlsFromIdReturnsMainAndAliasUrls()
{
- $site = array("http://piwik.net",
+ $site = ["http://piwik.net",
"http://piwik.org",
"http://piwik.org",
- "http://piwik.com");
+ "http://piwik.com"];
sort($site);
$idsite = API::getInstance()->addSite("site1", $site);
- $siteWanted = array("http://piwik.net",
+ $siteWanted = ["http://piwik.net",
"http://piwik.org",
- "http://piwik.com");
+ "http://piwik.com"];
sort($siteWanted);
$urls = API::getInstance()->getSiteUrlsFromId($idsite);
@@ -758,23 +806,23 @@ class ApiTest extends IntegrationTestCase
/**
* wrongId => exception
*/
- public function test_getSiteUrlsFromId_ThrowsException_WhenSiteIdIsIncorrect()
+ public function testGetSiteUrlsFromIdThrowsExceptionWhenSiteIdIsIncorrect()
{
$this->expectException(\Exception::class);
- FakeAccess::setIdSitesView(array(3));
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([3]);
+ FakeAccess::setIdSitesAdmin([]);
API::getInstance()->getSiteUrlsFromId(1);
}
/**
* one url => no change to alias urls
*/
- public function test_updateSite_WithOneUrl_RemovesAliasUrls_AndUpdatesTheSiteCorrectly()
+ public function testUpdateSiteWithOneUrlRemovesAliasUrlsAndUpdatesTheSiteCorrectly()
{
- $urls = array("http://piwiknew.com",
+ $urls = ["http://piwiknew.com",
"http://piwiknew.net",
"http://piwiknew.org",
- "http://piwiknew.fr");
+ "http://piwiknew.fr"];
$idsite = API::getInstance()->addSite("site1", $urls);
$newMainUrl = "http://main.url";
@@ -811,14 +859,13 @@ class ApiTest extends IntegrationTestCase
$allUrls = API::getInstance()->getSiteUrlsFromId($idsite);
$this->assertEquals($newMainUrl, $allUrls[0]);
$aliasUrls = array_slice($allUrls, 1);
- $this->assertEquals(array(), $aliasUrls);
-
+ $this->assertEquals([], $aliasUrls);
}
/**
* strange name and NO URL => name ok, main_url not updated
*/
- public function test_updateSite_WithStrangeName_AndNoAliasUrls_UpdatesTheName_ButNoUrls()
+ public function testUpdateSiteWithStrangeNameAndNoAliasUrlsUpdatesTheNameButNoUrls()
{
$idsite = API::getInstance()->addSite("site1", "http://main.url");
$newName = "test toto@{'786'}";
@@ -836,30 +883,52 @@ class ApiTest extends IntegrationTestCase
* several urls => both main and alias are updated
* also test the update of group field
*/
- public function test_updateSite_WithSeveralUrlsAndGroup_UpdatesGroupAndUrls()
+ public function testUpdateSiteWithSeveralUrlsAndGroupUpdatesGroupAndUrls()
{
- $urls = array("http://piwiknew.com",
+ $urls = ["http://piwiknew.com",
"http://piwiknew.net",
"http://piwiknew.org",
- "http://piwiknew.fr");
+ "http://piwiknew.fr"];
$group = 'GROUP Before';
- $idsite = API::getInstance()->addSite("site1", $urls, $ecommerce = 1,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null,
- $excludedIps = null, $excludedQueryParameters = null, $timezone = null, $currency = null, $group, $startDate = '2011-01-01');
+ $idsite = API::getInstance()->addSite(
+ "site1",
+ $urls,
+ $ecommerce = 1,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timezone = null,
+ $currency = null,
+ $group,
+ $startDate = '2011-01-01'
+ );
$websites = API::getInstance()->getSitesFromGroup($group);
$this->assertEquals(1, count($websites));
- $newurls = array("http://piwiknew2.com",
+ $newurls = ["http://piwiknew2.com",
"http://piwiknew2.net",
"http://piwiknew2.org",
- "http://piwiknew2.fr");
+ "http://piwiknew2.fr"];
$groupAfter = ' GROUP After';
- API::getInstance()->updateSite($idsite, "test toto@{}", $newurls, $ecommerce = 0,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null,
- $excludedIps = null, $excludedQueryParameters = null, $timezone = null, $currency = null, $groupAfter);
+ API::getInstance()->updateSite(
+ $idsite,
+ "test toto@{}",
+ $newurls,
+ $ecommerce = 0,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timezone = null,
+ $currency = null,
+ $groupAfter
+ );
// no result for the group before update
$websites = API::getInstance()->getSitesFromGroup($group);
@@ -871,7 +940,7 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals('2011-01-01', date('Y-m-d', strtotime($websites[0]['ts_created'])));
// Test fetch website groups
- $expectedGroups = array(trim($groupAfter));
+ $expectedGroups = [trim($groupAfter)];
$fetched = API::getInstance()->getSitesGroups();
$this->assertEquals($expectedGroups, $fetched);
@@ -881,18 +950,17 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals($newurls, $allUrls);
}
- public function test_updateSite_ShouldFailAndNotUpdateSite_IfASettingIsInvalid()
+ public function testUpdateSiteShouldFailAndNotUpdateSiteIfASettingIsInvalid()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('SitesManager_OnlyMatchedUrlsAllowed');
$type = MobileAppMeasurable\Type::ID;
- $idSite = $this->addSiteWithType($type, array());
+ $idSite = $this->addSiteWithType($type, []);
try {
- $settings = array('MobileAppMeasurable' => array(array('name' => 'exclude_unknown_urls', 'value' => 'fooBar')));
+ $settings = ['MobileAppMeasurable' => [['name' => 'exclude_unknown_urls', 'value' => 'fooBar']]];
$this->updateSiteSettings($idSite, 'newSiteName', $settings);
-
} catch (Exception $e) {
// verify nothing was updated (not even the name)
$measurable = new Measurable($idSite);
@@ -902,14 +970,14 @@ class ApiTest extends IntegrationTestCase
}
}
- public function test_updateSite_ShouldSavePassedMeasurableSettings_IfSettingsAreValid()
+ public function testUpdateSiteShouldSavePassedMeasurableSettingsIfSettingsAreValid()
{
$type = WebsiteType::ID;
- $idSite = $this->addSiteWithType($type, array());
+ $idSite = $this->addSiteWithType($type, []);
$this->assertSame(1, $idSite);
- $settings = array('WebsiteMeasurable' => array(array('name' => 'urls', 'value' => array('http://www.piwik.org'))));
+ $settings = ['WebsiteMeasurable' => [['name' => 'urls', 'value' => ['http://www.piwik.org']]]];
$this->updateSiteSettings($idSite, 'newSiteName', $settings);
@@ -918,20 +986,36 @@ class ApiTest extends IntegrationTestCase
// verify it was updated
$measurable = new Measurable($idSite);
$this->assertSame('newSiteName', $measurable->getName());
- $this->assertSame(array('http://www.piwik.org'), $settings->urls->getValue());
+ $this->assertSame(['http://www.piwik.org'], $settings->urls->getValue());
}
- public function test_updateSite_CorreclySavesExcludedUnknownUrlSettings()
+ public function testUpdateSiteCorrectlySavesExcludedUnknownUrlSettings()
{
- $idSite = API::getInstance()->addSite("site1", array("http://piwik.net"));
+ $idSite = API::getInstance()->addSite("site1", ["http://piwik.net"]);
$site = API::getInstance()->getSiteFromId($idSite);
$this->assertEquals(0, $site['exclude_unknown_urls']);
- API::getInstance()->updateSite($idSite, $siteName = null, $urls = null, $ecommerce = null, $siteSearch = null,
- $searchKeywordParams = null, $searchCategoryParams = null, $excludedIps = null, $excludedQueryParameters = null,
- $timzeone = null, $currency = null, $group = null, $startDate = null, $excludedUserAgents = null,
- $keepUrlFragments = null, $type = null, $settings = null, $excludeUnknownUrls = true);
+ API::getInstance()->updateSite(
+ $idSite,
+ $siteName = null,
+ $urls = null,
+ $ecommerce = null,
+ $siteSearch = null,
+ $searchKeywordParams = null,
+ $searchCategoryParams = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timzeone = null,
+ $currency = null,
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents = null,
+ $keepUrlFragments = null,
+ $type = null,
+ $settings = null,
+ $excludeUnknownUrls = true
+ );
$site = API::getInstance()->getSiteFromId($idSite);
$this->assertEquals(1, $site['exclude_unknown_urls']);
@@ -940,17 +1024,33 @@ class ApiTest extends IntegrationTestCase
/**
* @dataProvider getDifferentTypesDataProvider
*/
- public function test_updateSite_WithDifferentTypes($type)
+ public function testUpdateSiteWithDifferentTypes($type)
{
- $idSite = $this->addSiteWithType('website', array());
+ $idSite = $this->addSiteWithType('website', []);
$site = API::getInstance()->getSiteFromId($idSite);
$this->assertEquals(0, $site['exclude_unknown_urls']);
- API::getInstance()->updateSite($idSite, $siteName = 'new site name', $urls = null, $ecommerce = true, $siteSearch = false,
- $searchKeywordParams = null, $searchCategoryParams = null, $excludedIps = null, $excludedQueryParameters = null,
- $timzeone = null, $currency = 'NZD', $group = null, $startDate = null, $excludedUserAgents = null,
- $keepUrlFragments = null, $type, $settings = null, $excludeUnknownUrls = true);
+ API::getInstance()->updateSite(
+ $idSite,
+ $siteName = 'new site name',
+ $urls = null,
+ $ecommerce = true,
+ $siteSearch = false,
+ $searchKeywordParams = null,
+ $searchCategoryParams = null,
+ $excludedIps = null,
+ $excludedQueryParameters = null,
+ $timzeone = null,
+ $currency = 'NZD',
+ $group = null,
+ $startDate = null,
+ $excludedUserAgents = null,
+ $keepUrlFragments = null,
+ $type,
+ $settings = null,
+ $excludeUnknownUrls = true
+ );
$site = API::getInstance()->getSiteFromId($idSite);
$this->assertEquals('new site name', $site['name']);
@@ -962,19 +1062,19 @@ class ApiTest extends IntegrationTestCase
public function getDifferentTypesDataProvider()
{
- return array(
- array('website'),
- array('mobileapp'),
- array('notexistingtype'),
- );
+ return [
+ ['website'],
+ ['mobileapp'],
+ ['notexistingtype'],
+ ];
}
- public function test_delete_ShouldNotDeleteASiteInCaseThereIsOnlyOneSite()
+ public function testDeleteShouldNotDeleteASiteInCaseThereIsOnlyOneSite()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('SitesManager_ExceptionDeleteSite');
- $siteId1 = $this->_addSite();
+ $siteId1 = $this->addSite();
$this->assertHasSite($siteId1);
@@ -987,7 +1087,7 @@ class ApiTest extends IntegrationTestCase
}
}
- public function test_delete_ShouldTriggerException_IfGivenSiteDoesNotExist()
+ public function testDeleteShouldTriggerExceptionIfGivenSiteDoesNotExist()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('website id = 99999498 not found');
@@ -995,11 +1095,11 @@ class ApiTest extends IntegrationTestCase
API::getInstance()->deleteSite(99999498);
}
- public function test_delete_ShouldActuallyRemoveAnExistingSiteButOnlyTheGivenSite()
+ public function testDeleteShouldActuallyRemoveAnExistingSiteButOnlyTheGivenSite()
{
- $this->_addSite();
- $siteId1 = $this->_addSite();
- $siteId2 = $this->_addSite();
+ $this->addSite();
+ $siteId1 = $this->addSite();
+ $siteId2 = $this->addSite();
$this->assertHasSite($siteId1);
$this->assertHasSite($siteId2);
@@ -1010,7 +1110,7 @@ class ApiTest extends IntegrationTestCase
$this->assertHasSite($siteId2);
}
- public function test_delete_ShouldTriggerAnEventOnceSiteWasActuallyDeleted()
+ public function testDeleteShouldTriggerAnEventOnceSiteWasActuallyDeleted()
{
$called = 0;
$deletedSiteId = null;
@@ -1020,8 +1120,8 @@ class ApiTest extends IntegrationTestCase
$deletedSiteId = $param;
});
- $this->_addSite();
- $siteId1 = $this->_addSite();
+ $this->addSite();
+ $siteId1 = $this->addSite();
API::getInstance()->deleteSite($siteId1);
@@ -1045,8 +1145,8 @@ class ApiTest extends IntegrationTestCase
public function testGetSitesGroups()
{
- $groups = array('group1', ' group1 ', '', 'group2');
- $expectedGroups = array('group1', '', 'group2');
+ $groups = ['group1', ' group1 ', '', 'group2'];
+ $expectedGroups = ['group1', '', 'group2'];
foreach ($groups as $group) {
API::getInstance()->addSite("test toto@{}", 'http://example.org', $ecommerce = 1, $siteSearch = null, $searchKeywordParameters = null, $searchCategoryParameters = null, $excludedIps = null, $excludedQueryParameters = null, $timezone = null, $currency = null, $group);
}
@@ -1056,34 +1156,52 @@ class ApiTest extends IntegrationTestCase
public function getInvalidTimezoneData()
{
- return array(
- array('UTC+15'),
- array('Paris'),
- );
+ return [
+ ['UTC+15'],
+ ['Paris'],
+ ];
}
/**
*
* @dataProvider getInvalidTimezoneData
*/
- public function test_addSite_WithInvalidTimezone_ThrowsException($timezone)
+ public function testAddSiteWithInvalidTimezoneThrowsException($timezone)
{
$this->expectException(\Exception::class);
- API::getInstance()->addSite("site1", array('http://example.org'), $ecommerce = 0,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, $ip = '', $params = '', $timezone);
+ API::getInstance()->addSite(
+ "site1",
+ ['http://example.org'],
+ $ecommerce = 0,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $ip = '',
+ $params = '',
+ $timezone
+ );
}
- public function test_addSite_WithInvalidCurrency_ThrowsException()
+ public function testAddSiteWithInvalidCurrencyThrowsException()
{
$this->expectException(\Exception::class);
$invalidCurrency = '€';
- API::getInstance()->addSite("site1", array('http://example.org'), $ecommerce = 0,
- $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, '', 'UTC', $invalidCurrency);
+ API::getInstance()->addSite(
+ "site1",
+ ['http://example.org'],
+ $ecommerce = 0,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ '',
+ 'UTC',
+ $invalidCurrency
+ );
}
- public function test_setDefaultTimezone_AndCurrency_AndExcludedQueryParameters_AndExcludedIps_UpdatesDefaultsCorreclty()
+ public function testSetDefaultTimezoneAndCurrencyAndExcludedQueryParametersAndExcludedIpsUpdatesDefaultsCorrectly()
{
// test that they return default values
$defaultTimezone = API::getInstance()->getDefaultTimezone();
@@ -1096,7 +1214,7 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals('', $excludedQueryParameters);
// test that when not specified, defaults are set as expected
- $idsite = API::getInstance()->addSite("site1", array('http://example.org'));
+ $idsite = API::getInstance()->addSite("site1", ['http://example.org']);
$site = new Site($idsite);
$this->assertEquals('UTC', $site->getTimezone());
$this->assertEquals('USD', $site->getCurrency());
@@ -1132,9 +1250,17 @@ class ApiTest extends IntegrationTestCase
// create a website and check that default currency and default timezone are set
// however, excluded IPs and excluded query Params are not returned
- $idsite = API::getInstance()->addSite("site1", array('http://example.org'), $ecommerce = 0,
- $siteSearch = 0, $searchKeywordParameters = 'test1,test2', $searchCategoryParameters = 'test2,test1',
- '', '', $newDefaultTimezone);
+ $idsite = API::getInstance()->addSite(
+ "site1",
+ ['http://example.org'],
+ $ecommerce = 0,
+ $siteSearch = 0,
+ $searchKeywordParameters = 'test1,test2',
+ $searchCategoryParameters = 'test2,test1',
+ '',
+ '',
+ $newDefaultTimezone
+ );
$site = new Site($idsite);
$this->assertEquals($newDefaultTimezone, $site->getTimezone());
$this->assertEquals(date('Y-m-d'), $site->getCreationDate()->toString());
@@ -1149,11 +1275,11 @@ class ApiTest extends IntegrationTestCase
$this->assertFalse(Site::isEcommerceEnabledFor($idsite));
}
- public function test_getSitesIdFromSiteUrl_AsSuperUser_ReturnsTheRequestedSiteIds()
+ public function testGetSitesIdFromSiteUrlAsSuperUserReturnsTheRequestedSiteIds()
{
- API::getInstance()->addSite("site1", array("http://piwik.net", "http://piwik.com"));
- API::getInstance()->addSite("site2", array("http://piwik.com", "http://piwik.net"));
- API::getInstance()->addSite("site3", array("http://piwik.com", "http://piwik.org"));
+ API::getInstance()->addSite("site1", ["http://piwik.net", "http://piwik.com"]);
+ API::getInstance()->addSite("site2", ["http://piwik.com", "http://piwik.net"]);
+ API::getInstance()->addSite("site3", ["http://piwik.com", "http://piwik.org"]);
$idsites = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.org');
$this->assertTrue(count($idsites) == 1);
@@ -1168,29 +1294,29 @@ class ApiTest extends IntegrationTestCase
$this->assertTrue(count($idsites) == 3);
}
- public function test_getSitesIdFromSiteUrl_MatchesBothHttpAndHttpsUrls_AsSuperUser()
+ public function testGetSitesIdFromSiteUrlMatchesBothHttpAndHttpsUrlsAsSuperUser()
{
- API::getInstance()->addSite("site1", array("https://piwik.org", "http://example.com", "fb://special-url"));
+ API::getInstance()->addSite("site1", ["https://piwik.org", "http://example.com", "fb://special-url"]);
- $this->assert_getSitesIdFromSiteUrl_matchesBothHttpAndHttpsUrls();
+ $this->assertGetSitesIdFromSiteUrlMatchesBothHttpAndHttpsUrls();
}
- public function test_getSitesIdFromSiteUrl_MatchesBothHttpAndHttpsUrls_AsUserWithViewPermission()
+ public function testGetSitesIdFromSiteUrlMatchesBothHttpAndHttpsUrlsAsUserWithViewPermission()
{
- API::getInstance()->addSite("site1", array("https://piwik.org", "http://example.com", "fb://special-url"));
+ API::getInstance()->addSite("site1", ["https://piwik.org", "http://example.com", "fb://special-url"]);
APIUsersManager::getInstance()->addUser("user1", "geqgegagae", "tegst@tesgt.com");
- APIUsersManager::getInstance()->setUserAccess("user1", "view", array(1));
+ APIUsersManager::getInstance()->setUserAccess("user1", "view", [1]);
// Make sure we're not Super user
FakeAccess::$superUser = false;
FakeAccess::$identity = 'user1';
$this->assertFalse(Piwik::hasUserSuperUserAccess());
- $this->assert_getSitesIdFromSiteUrl_matchesBothHttpAndHttpsUrls();
+ $this->assertGetSitesIdFromSiteUrlMatchesBothHttpAndHttpsUrls();
}
- private function assert_getSitesIdFromSiteUrl_matchesBothHttpAndHttpsUrls()
+ private function assertGetSitesIdFromSiteUrlMatchesBothHttpAndHttpsUrls()
{
$idsites = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.org');
$this->assertTrue(count($idsites) == 1);
@@ -1217,27 +1343,27 @@ class ApiTest extends IntegrationTestCase
$this->assertTrue(count($idsites) == 0);
}
- public function test_getSitesIdFromSiteUrl_AsUser()
+ public function testGetSitesIdFromSiteUrlAsUser()
{
- API::getInstance()->addSite("site1", array("http://www.piwik.net", "https://piwik.com"));
- API::getInstance()->addSite("site2", array("http://piwik.com", "http://piwik.net"));
- API::getInstance()->addSite("site3", array("http://piwik.com", "http://piwik.org"));
+ API::getInstance()->addSite("site1", ["http://www.piwik.net", "https://piwik.com"]);
+ API::getInstance()->addSite("site2", ["http://piwik.com", "http://piwik.net"]);
+ API::getInstance()->addSite("site3", ["http://piwik.com", "http://piwik.org"]);
APIUsersManager::getInstance()->addUser("user1", "geqgegagae", "tegst@tesgt.com");
- APIUsersManager::getInstance()->setUserAccess("user1", "view", array(1));
+ APIUsersManager::getInstance()->setUserAccess("user1", "view", [1]);
APIUsersManager::getInstance()->addUser("user2", "geqgegagae", "tegst2@tesgt.com");
- APIUsersManager::getInstance()->setUserAccess("user2", "view", array(1));
- APIUsersManager::getInstance()->setUserAccess("user2", "admin", array(3));
+ APIUsersManager::getInstance()->setUserAccess("user2", "view", [1]);
+ APIUsersManager::getInstance()->setUserAccess("user2", "admin", [3]);
APIUsersManager::getInstance()->addUser("user3", "geqgegagae", "tegst3@tesgt.com");
- APIUsersManager::getInstance()->setUserAccess("user3", "view", array(1, 2));
- APIUsersManager::getInstance()->setUserAccess("user3", "admin", array(3));
+ APIUsersManager::getInstance()->setUserAccess("user3", "view", [1, 2]);
+ APIUsersManager::getInstance()->setUserAccess("user3", "admin", [3]);
FakeAccess::$superUser = false;
FakeAccess::$identity = 'user1';
- FakeAccess::setIdSitesView(array(1));
- FakeAccess::setIdSitesAdmin(array());
+ FakeAccess::setIdSitesView([1]);
+ FakeAccess::setIdSitesAdmin([]);
$this->assertFalse(Piwik::hasUserSuperUserAccess());
$idsites = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.com');
@@ -1251,16 +1377,16 @@ class ApiTest extends IntegrationTestCase
FakeAccess::$superUser = false;
FakeAccess::$identity = 'user2';
- FakeAccess::setIdSitesView(array(1));
- FakeAccess::setIdSitesAdmin(array(3));
+ FakeAccess::setIdSitesView([1]);
+ FakeAccess::setIdSitesAdmin([3]);
$idsites = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.com');
$this->assertEquals(2, count($idsites));
FakeAccess::$superUser = false;
FakeAccess::$identity = 'user3';
- FakeAccess::setIdSitesView(array(1, 2));
- FakeAccess::setIdSitesAdmin(array(3));
+ FakeAccess::setIdSitesView([1, 2]);
+ FakeAccess::setIdSitesAdmin([3]);
$idsites = API::getInstance()->getSitesIdFromSiteUrl('http://piwik.com');
$this->assertEquals(3, count($idsites));
@@ -1269,21 +1395,20 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals(3, count($idsites));
}
- public function test_getSitesFromTimezones_ReturnsCorrectIdSites()
+ public function testGetSitesFromTimezonesReturnsCorrectIdSites()
{
- API::getInstance()->addSite("site3", array("http://piwik.org"), null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'UTC');
- $idsite2 = API::getInstance()->addSite("site3", array("http://piwik.org"), null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'Pacific/Auckland');
- $idsite3 = API::getInstance()->addSite("site3", array("http://piwik.org"), null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'Pacific/Auckland');
- $idsite4 = API::getInstance()->addSite("site3", array("http://piwik.org"), null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'UTC+10');
- $result = API::getInstance()->getSitesIdFromTimezones(array('UTC+10', 'Pacific/Auckland'));
- $this->assertEquals(array($idsite2, $idsite3, $idsite4), $result);
+ API::getInstance()->addSite("site3", ["http://piwik.org"], null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'UTC');
+ $idsite2 = API::getInstance()->addSite("site3", ["http://piwik.org"], null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'Pacific/Auckland');
+ $idsite3 = API::getInstance()->addSite("site3", ["http://piwik.org"], null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'Pacific/Auckland');
+ $idsite4 = API::getInstance()->addSite("site3", ["http://piwik.org"], null, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, null, null, 'UTC+10');
+ $result = API::getInstance()->getSitesIdFromTimezones(['UTC+10', 'Pacific/Auckland']);
+ $this->assertEquals([$idsite2, $idsite3, $idsite4], $result);
}
public function provideContainerConfig()
{
- return array(
+ return [
'Piwik\Access' => new FakeAccess(),
- );
+ ];
}
-
}
diff --git a/plugins/SitesManager/tests/Integration/ModelTest.php b/plugins/SitesManager/tests/Integration/ModelTest.php
index 21ff01479c..433662dda9 100644
--- a/plugins/SitesManager/tests/Integration/ModelTest.php
+++ b/plugins/SitesManager/tests/Integration/ModelTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -31,21 +32,21 @@ class ModelTest extends IntegrationTestCase
$this->model = new Model();
}
- public function test_getUsedTypeIds_shouldReturnNoType_IfNoSitesExist()
+ public function testGetUsedTypeIdsShouldReturnNoTypeIfNoSitesExist()
{
- $this->assertSame(array(), $this->model->getUsedTypeIds());
+ $this->assertSame([], $this->model->getUsedTypeIds());
}
- public function test_getUsedTypeIds_shouldReturnOnlyOneType_IfAllSitesUseSameType()
+ public function testGetUsedTypeIdsShouldReturnOnlyOneTypeIfAllSitesUseSameType()
{
for ($i = 0; $i < 9; $i++) {
$this->createMeasurable('website');
}
- $this->assertSame(array('website'), $this->model->getUsedTypeIds());
+ $this->assertSame(['website'], $this->model->getUsedTypeIds());
}
- public function test_getUsedTypeIds_shouldReturnAnotherType_IfDifferentOnesAreUsed()
+ public function testGetUsedTypeIdsShouldReturnAnotherTypeIfDifferentOnesAreUsed()
{
for ($i = 0; $i < 9; $i++) {
$this->createMeasurable('website');
@@ -53,10 +54,10 @@ class ModelTest extends IntegrationTestCase
$this->createMeasurable('mobileapp');
}
- $this->assertSame(array('website', 'universal', 'mobileapp'), $this->model->getUsedTypeIds());
+ $this->assertSame(['website', 'universal', 'mobileapp'], $this->model->getUsedTypeIds());
}
- public function test_getAllKnownUrlsForAllSites_shouldReturnAllUrls()
+ public function testGetAllKnownUrlsForAllSitesShouldReturnAllUrls()
{
$idSite = $this->createMeasurable('website', 'http://apache.piwik');
$this->model->insertSiteUrl($idSite, 'http://example.apache.piwik');
@@ -68,45 +69,52 @@ class ModelTest extends IntegrationTestCase
$idSite3 = $this->createMeasurable('website', 'http://example.pro');
- $expected = array(
- array(
+ $expected = [
+ [
'idsite' => $idSite,
'url' => 'http://apache.piwik'
- ),
- array(
+ ],
+ [
'idsite' => $idSite2,
'url' => 'http://piwik.net'
- ),
- array(
+ ],
+ [
'idsite' => $idSite3,
'url' => 'http://example.pro'
- ),
- array(
+ ],
+ [
'idsite' => $idSite,
'url' => 'http://example.apache.piwik'
- ),
- array(
+ ],
+ [
'idsite' => $idSite,
'url' => 'http://example.org'
- ),
- array(
+ ],
+ [
'idsite' => $idSite2,
'url' => 'http://example.com'
- ),
- array(
+ ],
+ [
'idsite' => $idSite2,
'url' => 'http://example.org'
- )
+ ]
- );
+ ];
$this->assertEquals($expected, $this->model->getAllKnownUrlsForAllSites());
}
private function createMeasurable($type, $siteUrl = false)
{
- return Fixture::createWebsite('2015-01-01 00:00:00',
- $ecommerce = 0, $siteName = false, $siteUrl,
- $siteSearch = 1, $searchKeywordParameters = null,
- $searchCategoryParameters = null, $timezone = null, $type);
+ return Fixture::createWebsite(
+ '2015-01-01 00:00:00',
+ $ecommerce = 0,
+ $siteName = false,
+ $siteUrl,
+ $siteSearch = 1,
+ $searchKeywordParameters = null,
+ $searchCategoryParameters = null,
+ $timezone = null,
+ $type
+ );
}
}
diff --git a/plugins/SitesManager/tests/Integration/SiteUrlsTest.php b/plugins/SitesManager/tests/Integration/SiteUrlsTest.php
index 69608e7cec..2232cf4e4c 100644
--- a/plugins/SitesManager/tests/Integration/SiteUrlsTest.php
+++ b/plugins/SitesManager/tests/Integration/SiteUrlsTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -7,6 +8,7 @@
*/
namespace Piwik\Plugins\SitesManager\tests\Integration;
+
use Piwik\Cache;
use Piwik\Plugins\SitesManager\API;
use Piwik\Plugins\SitesManager\SiteUrls;
@@ -39,50 +41,50 @@ class SiteUrlsTest extends IntegrationTestCase
SiteUrls::clearSitesCache();
}
- public function testGetAllSiteUrls_shouldReturnAnEmptyArray_IfThereAreNoSites()
+ public function testGetAllSiteUrlsShouldReturnAnEmptyArrayIfThereAreNoSites()
{
- $this->assertSiteUrls(array());
+ $this->assertSiteUrls([]);
}
- public function testGetAllSiteUrls_shouldReturnUrlsForEachSiteId()
+ public function testGetAllSiteUrlsShouldReturnUrlsForEachSiteId()
{
$this->addSite('http://www.example.com'); // only one main URL
- $this->assertSiteUrls(array(1 => array('http://www.example.com')));
+ $this->assertSiteUrls([1 => ['http://www.example.com']]);
$this->addSite('http://www.example.com', 'http://www.piwik.org'); // main URL and alias URL
- $this->assertSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com', 'http://www.piwik.org')));
+ $this->assertSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com', 'http://www.piwik.org']]);
$this->api->addSiteAliasUrls(2, 'http://piwik.org');
- $this->assertSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com', 'http://piwik.org', 'http://www.piwik.org')));
+ $this->assertSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com', 'http://piwik.org', 'http://www.piwik.org']]);
- $this->api->setSiteAliasUrls(2, array());
- $this->assertSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com')));
+ $this->api->setSiteAliasUrls(2, []);
+ $this->assertSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com']]);
}
- public function testGetAllCachedSiteUrls_shouldReturnAnEmptyArray_IfThereAreNoSites()
+ public function testGetAllCachedSiteUrlsShouldReturnAnEmptyArrayIfThereAreNoSites()
{
- $this->assertCachedSiteUrls(array());
+ $this->assertCachedSiteUrls([]);
}
- public function testGetAllCachedSiteUrls_ShouldReturnCorrectResultEvenIfItIsCachedAsWeClearTheCacheOnAnyChange()
+ public function testGetAllCachedSiteUrlsShouldReturnCorrectResultEvenIfItIsCachedAsWeClearTheCacheOnAnyChange()
{
$this->addSite('http://www.example.com'); // only one main URL
- $this->assertCachedSiteUrls(array(1 => array('http://www.example.com')));
+ $this->assertCachedSiteUrls([1 => ['http://www.example.com']]);
$this->addSite('http://www.example.com', 'http://www.piwik.org'); // main URL and alias URL
- $this->assertCachedSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com', 'http://www.piwik.org')));
+ $this->assertCachedSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com', 'http://www.piwik.org']]);
$this->api->addSiteAliasUrls(2, 'http://piwik.org');
- $this->assertCachedSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com', 'http://piwik.org', 'http://www.piwik.org')));
+ $this->assertCachedSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com', 'http://piwik.org', 'http://www.piwik.org']]);
- $this->api->setSiteAliasUrls(2, array());
- $this->assertCachedSiteUrls(array(1 => array('http://www.example.com'), 2 => array('http://www.example.com')));
+ $this->api->setSiteAliasUrls(2, []);
+ $this->assertCachedSiteUrls([1 => ['http://www.example.com'], 2 => ['http://www.example.com']]);
- $this->api->updateSite(1, 'siteName3', array('http://updated.example.com', 'http://2.example.com'));
- $this->assertCachedSiteUrls(array(1 => array('http://updated.example.com', 'http://2.example.com'), 2 => array('http://www.example.com')));
+ $this->api->updateSite(1, 'siteName3', ['http://updated.example.com', 'http://2.example.com']);
+ $this->assertCachedSiteUrls([1 => ['http://updated.example.com', 'http://2.example.com'], 2 => ['http://www.example.com']]);
}
- public function testGetAllCachedSiteUrls_ShouldWriteACacheFile()
+ public function testGetAllCachedSiteUrlsShouldWriteACacheFile()
{
// make sure cache is empty
$this->assertValueInCache(false);
@@ -91,16 +93,16 @@ class SiteUrlsTest extends IntegrationTestCase
$this->siteUrls->getAllCachedSiteUrls();
// make sure we have a cached result
- $this->assertValueInCache(array(1 => array('http://www.example.com')));
+ $this->assertValueInCache([1 => ['http://www.example.com']]);
}
- public function test_clearSitesCache_ShouldActuallyDeleteACache()
+ public function testClearSitesCacheShouldActuallyDeleteACache()
{
$this->addSite('http://www.example.com');
$this->siteUrls->getAllCachedSiteUrls();
// make sure we have a cached result
- $this->assertValueInCache(array(1 => array('http://www.example.com')));
+ $this->assertValueInCache([1 => ['http://www.example.com']]);
SiteUrls::clearSitesCache();
@@ -108,9 +110,9 @@ class SiteUrlsTest extends IntegrationTestCase
$this->assertValueInCache(false);
}
- public function testGetAllCachedSiteUrls_ShouldReadFromTheCacheFile()
+ public function testGetAllCachedSiteUrlsShouldReadFromTheCacheFile()
{
- $urlsToFake = array(1 => 'Whatever');
+ $urlsToFake = [1 => 'Whatever'];
$cache = $this->buildCache();
$cache->save('allSiteUrlsPerSite', $urlsToFake, 600);
@@ -119,36 +121,36 @@ class SiteUrlsTest extends IntegrationTestCase
$this->assertEquals($urlsToFake, $actual);
}
- public function test_groupUrlsByHost_shouldReturnEmptyArray_WhenNoUrlsGiven()
+ public function testGroupUrlsByHostShouldReturnEmptyArrayWhenNoUrlsGiven()
{
- $this->assertSame(array(), $this->siteUrls->groupUrlsByHost(array()));
- $this->assertSame(array(), $this->siteUrls->groupUrlsByHost(null));
+ $this->assertSame([], $this->siteUrls->groupUrlsByHost([]));
+ $this->assertSame([], $this->siteUrls->groupUrlsByHost(null));
}
- public function test_groupUrlsByHost_shouldGroupByHost_WithOneSiteAndDifferentDomains_shouldRemoveWwwAndDefaultToPathSlash()
+ public function testGroupUrlsByHostShouldGroupByHostWithOneSiteAndDifferentDomainsShouldRemoveWwwAndDefaultToPathSlash()
{
$idSite = 1;
- $oneSite = array(
- $idSite => array(
+ $oneSite = [
+ $idSite => [
'http://apache.piwik',
'http://www.example.com', // should remove www.
'https://example.org', // should handle https or other protocol
'http://apache.piwik/', // same as initial one but with slash at the end, should not add idsite twice
'http://third.www.com' // should not remove www. in the middle of a domain
- )
- );
+ ]
+ ];
- $expected = array(
- 'apache.piwik' => array('/' => array($idSite)),
- 'example.com' => array('/' => array($idSite)),
- 'example.org' => array('/' => array($idSite)),
- 'third.www.com' => array('/' => array($idSite)),
- );
+ $expected = [
+ 'apache.piwik' => ['/' => [$idSite]],
+ 'example.com' => ['/' => [$idSite]],
+ 'example.org' => ['/' => [$idSite]],
+ 'third.www.com' => ['/' => [$idSite]],
+ ];
$this->assertSame($expected, $this->siteUrls->groupUrlsByHost($oneSite));
}
- public function test_groupUrlsByHost_shouldGroupByHost_WithDifferentDomainsAndPathsShouldListPathByNumberOfDirectoriesAndConvertToLowerCase()
+ public function testGroupUrlsByHostShouldGroupByHostWithDifferentDomainsAndPathsShouldListPathByNumberOfDirectoriesAndConvertToLowerCase()
{
$idSite = 1;
$idSite2 = 2;
@@ -156,36 +158,36 @@ class SiteUrlsTest extends IntegrationTestCase
$idSite4 = 4;
$idSite5 = 5;
- $urls = array(
- $idSite => array(
+ $urls = [
+ $idSite => [
'http://apache.piwik/test', 'http://apache.piWik', 'http://apache.piwik/foo/bAr/', 'http://apache.piwik/Foo/SECOND'
- ),
- $idSite2 => array(
+ ],
+ $idSite2 => [
'http://apache.piwik/test/', 'http://example.oRg', 'http://apache.piwik/foo/secOnd'
- ),
- $idSite3 => array(
+ ],
+ $idSite3 => [
'http://apache.piwik/', 'http://apache.piwik/third', 'http://exampLe.com', 'http://example.org/foo/test/two'
- ),
- $idSite4 => array(),
- $idSite5 => array('invalidUrl', 'ftp://example.org/'),
- );
-
- $expected = array(
- 'apache.piwik' => array(
- '/foo/second/' => array($idSite, $idSite2),
- '/foo/bar/' => array($idSite),
- '/third/' => array($idSite3),
- '/test/' => array($idSite, $idSite2),
- '/' => array($idSite, $idSite3)
- ),
- 'example.org' => array(
- '/foo/test/two/' => array($idSite3),
- '/' => array($idSite2, $idSite5)
- ),
- 'example.com' => array(
- '/' => array($idSite3)
- ),
- );
+ ],
+ $idSite4 => [],
+ $idSite5 => ['invalidUrl', 'ftp://example.org/'],
+ ];
+
+ $expected = [
+ 'apache.piwik' => [
+ '/foo/second/' => [$idSite, $idSite2],
+ '/foo/bar/' => [$idSite],
+ '/third/' => [$idSite3],
+ '/test/' => [$idSite, $idSite2],
+ '/' => [$idSite, $idSite3]
+ ],
+ 'example.org' => [
+ '/foo/test/two/' => [$idSite3],
+ '/' => [$idSite2, $idSite5]
+ ],
+ 'example.com' => [
+ '/' => [$idSite3]
+ ],
+ ];
$this->assertSame($expected, $this->siteUrls->groupUrlsByHost($urls));
}
@@ -193,26 +195,32 @@ class SiteUrlsTest extends IntegrationTestCase
/**
* @dataProvider getTestIdSitesMatchingUrl
*/
- public function test_getIdSitesMatchingUrl($expectedMatchSites, $parsedUrl)
+ public function testGetIdSitesMatchingUrl($expectedMatchSites, $parsedUrl)
{
- $urlsGroupedByHost = array(
- 'apache.piwik' => array(
- '/foo/second/' => array(2),
- '/foo/sec/' => array(4),
- '/foo/bar/' => array(1),
- '/third/' => array(3),
- '/test/' => array(1, 2),
- '/' => array(1, 3)
- ),
- 'example.org' => array(
- '/foo/test/two/' => array(3),
- '/foo/second/' => array(6),
- '/' => array(2, 5)
- ),
- 'example.com' => array(
- '/' => array(3)
- ),
- );
+ $urlsGroupedByHost = [
+ 'apache.piwik' => [
+ '/foo/second/' => [2],
+ '/foo/sec/' => [4],
+ '/foo/bar/' => [1],
+ '/third/' => [3],
+ '/test/' => [1, 2],
+ '/' => [1, 3]
+ ],
+ 'example.org' => [
+ '/foo/test/two/' => [3],
+ '/foo/second/' => [6],
+ '/' => [2, 5]
+ ],
+ 'example.com' => [
+ '/' => [3]
+ ],
+ 'my.site.com' => [
+ '/path/' => [2]
+ ],
+ '.site.com' => [
+ '/' => [3]
+ ]
+ ];
$matchedSites = $this->siteUrls->getIdSitesMatchingUrl($parsedUrl, $urlsGroupedByHost);
$this->assertSame($expectedMatchSites, $matchedSites);
@@ -220,49 +228,52 @@ class SiteUrlsTest extends IntegrationTestCase
public function getTestIdSitesMatchingUrl()
{
- return array(
- array(array(1,3), array('host' => 'apache.piwik')),
- array(array(1,3), array('host' => 'apache.piwik', 'path' => '/')),
- array(array(1,3), array('host' => 'apache.piwik', 'path' => 'nomatch')), // no other URL matches a site so we fall back to domain match
- array(array(1,3), array('host' => 'apache.piwik', 'path' => '/nomatch')),
- array(array(2), array('host' => 'apache.piwik', 'path' => '/foo/second')),
- array(array(2), array('host' => 'apache.piwik', 'path' => '/foo/second/')), // it shouldn't matter if slash is at end or not
- array(array(2), array('host' => 'apache.piwik', 'path' => '/foo/second/test')), // it should find best match
- array(array(4), array('host' => 'apache.piwik', 'path' => '/foo/sec/test')), // it should not use /foo/second for these
- array(array(4), array('host' => 'apache.piwik', 'path' => '/foo/sec/')),
- array(array(4), array('host' => 'apache.piwik', 'path' => '/foo/sec')),
- array(array(1,3), array('host' => 'apache.piwik', 'path' => '/foo')),
- array(array(2,5), array('host' => 'example.org')),
- array(array(2,5), array('host' => 'example.org', 'path' => '/')),
- array(array(2,5), array('host' => 'example.org', 'path' => 'any/nonmatching/path')),
- array(array(6), array('host' => 'example.org', 'path' => '/foo/second')),
- array(array(6), array('host' => 'example.org', 'path' => '/foo/second/test')),
- array(array(3), array('host' => 'example.com')),
- array(null, array('host' => 'example.pro')),
- array(null, array('host' => 'example.pro', 'path' => '/any')),
- );
+ return [
+ [[1,3], ['host' => 'apache.piwik']],
+ [[1,3], ['host' => 'apache.piwik', 'path' => '/']],
+ [[1,3], ['host' => 'apache.piwik', 'path' => 'nomatch']], // no other URL matches a site so we fall back to domain match
+ [[1,3], ['host' => 'apache.piwik', 'path' => '/nomatch']],
+ [[2], ['host' => 'apache.piwik', 'path' => '/foo/second']],
+ [[2], ['host' => 'apache.piwik', 'path' => '/foo/second/']], // it shouldn't matter if slash is at end or not
+ [[2], ['host' => 'apache.piwik', 'path' => '/foo/second/test']], // it should find best match
+ [[4], ['host' => 'apache.piwik', 'path' => '/foo/sec/test']], // it should not use /foo/second for these
+ [[4], ['host' => 'apache.piwik', 'path' => '/foo/sec/']],
+ [[4], ['host' => 'apache.piwik', 'path' => '/foo/sec']],
+ [[1,3], ['host' => 'apache.piwik', 'path' => '/foo']],
+ [[2,5], ['host' => 'example.org']],
+ [[2,5], ['host' => 'example.org', 'path' => '/']],
+ [[2,5], ['host' => 'example.org', 'path' => 'any/nonmatching/path']],
+ [[6], ['host' => 'example.org', 'path' => '/foo/second']],
+ [[6], ['host' => 'example.org', 'path' => '/foo/second/test']],
+ [[3], ['host' => 'example.com']],
+ [null, ['host' => 'example.pro']],
+ [null, ['host' => 'example.pro', 'path' => '/any']],
+ [[2], ['host' => 'my.site.com', 'path' => '/path/sub']],
+ [[3], ['host' => 'my.site.com', 'path' => '/other/path']],
+ [[3], ['host' => 'any.site.com', 'path' => '/']],
+ ];
}
/**
* @dataProvider getTestPathMatchingUrl
*/
- public function test_getPathMatchingUrl($expectedMatchSites, $parsedUrl)
+ public function testGetPathMatchingUrl($expectedMatchSites, $parsedUrl)
{
- $urlsGroupedByHost = array(
- 'apache.piwik' => array(
- '/foo/second/' => array(2),
- '/foo/sec/' => array(4),
- '/foo/bar/' => array(1),
- '/third/' => array(3),
- '/test/' => array(1, 2),
- '/' => array(1, 3)
- ),
- 'example.org' => array(
- '/foo/test/two/' => array(3),
- '/foo/second/' => array(6),
- '/' => array(2, 5)
- ),
- );
+ $urlsGroupedByHost = [
+ 'apache.piwik' => [
+ '/foo/second/' => [2],
+ '/foo/sec/' => [4],
+ '/foo/bar/' => [1],
+ '/third/' => [3],
+ '/test/' => [1, 2],
+ '/' => [1, 3]
+ ],
+ 'example.org' => [
+ '/foo/test/two/' => [3],
+ '/foo/second/' => [6],
+ '/' => [2, 5]
+ ],
+ ];
$matchedSites = $this->siteUrls->getPathMatchingUrl($parsedUrl, $urlsGroupedByHost);
$this->assertSame($expectedMatchSites, $matchedSites);
@@ -270,23 +281,23 @@ class SiteUrlsTest extends IntegrationTestCase
public function getTestPathMatchingUrl()
{
- return array(
- array('/', array('host' => 'apache.piwik')),
- array('/', array('host' => 'apache.piwik', 'path' => '/')),
- array('/', array('host' => 'apache.piwik', 'path' => '')),
- array(null, array('host' => 'test.piwik')),
- array(null, array('host' => 'test.apache.piwik')), // we do not match subdomains, only exact domain match
-
- array('/foo/bar/', array('host' => 'apache.piwik', 'path' => '/foo/bar')),
- array('/foo/bar/', array('host' => 'apache.piwik', 'path' => '/foo/bar/')),
- array('/foo/bar/', array('host' => 'apache.piwik', 'path' => '/foo/bar/baz/')),
- array('/', array('host' => 'apache.piwik', 'path' => '/foo/baz/bar/')),
- array('/third/', array('host' => 'apache.piwik', 'path' => '/third/bar/baz/')),
-
- array('/foo/second/', array('host' => 'example.org', 'path' => '/foo/second/')),
- array('/', array('host' => 'example.org', 'path' => '/foo/secon')),
- array(null, array('host' => 'example.pro', 'path' => '/foo/second/')),
- );
+ return [
+ ['/', ['host' => 'apache.piwik']],
+ ['/', ['host' => 'apache.piwik', 'path' => '/']],
+ ['/', ['host' => 'apache.piwik', 'path' => '']],
+ [null, ['host' => 'test.piwik']],
+ [null, ['host' => 'test.apache.piwik']], // we do not match subdomains, only exact domain match
+
+ ['/foo/bar/', ['host' => 'apache.piwik', 'path' => '/foo/bar']],
+ ['/foo/bar/', ['host' => 'apache.piwik', 'path' => '/foo/bar/']],
+ ['/foo/bar/', ['host' => 'apache.piwik', 'path' => '/foo/bar/baz/']],
+ ['/', ['host' => 'apache.piwik', 'path' => '/foo/baz/bar/']],
+ ['/third/', ['host' => 'apache.piwik', 'path' => '/third/bar/baz/']],
+
+ ['/foo/second/', ['host' => 'example.org', 'path' => '/foo/second/']],
+ ['/', ['host' => 'example.org', 'path' => '/foo/secon']],
+ [null, ['host' => 'example.pro', 'path' => '/foo/second/']],
+ ];
}
private function assertSiteUrls($expectedUrls)
diff --git a/plugins/SitesManager/tests/Integration/SitesManagerTest.php b/plugins/SitesManager/tests/Integration/SitesManagerTest.php
index 2dcbba313a..20d6b959fd 100644
--- a/plugins/SitesManager/tests/Integration/SitesManagerTest.php
+++ b/plugins/SitesManager/tests/Integration/SitesManagerTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -45,7 +46,7 @@ class SitesManagerTest extends IntegrationTestCase
$this->siteId = Fixture::createWebsite('2014-03-03 00:00:00');
}
- public function test_onSiteDeleted_shouldClearSiteCache()
+ public function testOnSiteDeletedShouldClearSiteCache()
{
$cache = Cache::getLazyCache();
$cache->save($this->siteId, 'testcontent');
@@ -55,7 +56,7 @@ class SitesManagerTest extends IntegrationTestCase
$this->assertFalse($cache->contains($this->siteId));
}
- public function test_onSiteDeleted_shouldRemoveRememberedArchiveReports()
+ public function testOnSiteDeletedShouldRemoveRememberedArchiveReports()
{
$archive = StaticContainer::get('Piwik\Archive\ArchiveInvalidator');
$archive->rememberToInvalidateArchivedReportsLater($this->siteId, Date::factory('2014-04-05'));
@@ -66,23 +67,23 @@ class SitesManagerTest extends IntegrationTestCase
$this->assertCount(2, $remembered);
sort($remembered['2014-04-05']);
- $this->assertSame(array($this->siteId, 4949), $remembered['2014-04-05']);
+ $this->assertSame([$this->siteId, 4949], $remembered['2014-04-05']);
sort($remembered['2014-04-06']);
- $this->assertSame(array($this->siteId), $remembered['2014-04-06']);
+ $this->assertSame([$this->siteId], $remembered['2014-04-06']);
$this->manager->onSiteDeleted($this->siteId);
- $expected = array(
- '2014-04-05' => array(4949)
- );
+ $expected = [
+ '2014-04-05' => [4949]
+ ];
$this->assertEquals($expected, $archive->getRememberedArchivedReportsThatShouldBeInvalidated());
}
/**
* @dataProvider getTestDataForRedirectDashboard
*/
- public function test_redirectDashboardToWelcomePage_doesNothingIfModuleActionAreIncorrect($module, $action)
+ public function testRedirectDashboardToWelcomePageDoesNothingIfModuleActionAreIncorrect($module, $action)
{
$originalModule = $module;
$originalAction = $action;
@@ -102,7 +103,7 @@ class SitesManagerTest extends IntegrationTestCase
];
}
- public function test_redirectDashboardToWelcomePage_doesNothingIfThereIsNoIdSiteParam()
+ public function testRedirectDashboardToWelcomePageDoesNothingIfThereIsNoIdSiteParam()
{
$module = 'CoreHome';
$action = 'index';
@@ -114,7 +115,7 @@ class SitesManagerTest extends IntegrationTestCase
$this->assertEquals('index', $action);
}
- public function test_redirectDashboardToWelcomePage_doesNothingIfAVisitWasTrackedInThePast()
+ public function testRedirectDashboardToWelcomePageDoesNothingIfAVisitWasTrackedInThePast()
{
$module = 'CoreHome';
$action = 'index';
@@ -136,7 +137,7 @@ class SitesManagerTest extends IntegrationTestCase
$this->assertEquals('index', $action);
}
- public function test_redirectDashboardToWelcomePage_doesNothingIfAVisitWasTrackedAndWasLaterPurged()
+ public function testRedirectDashboardToWelcomePageDoesNothingIfAVisitWasTrackedAndWasLaterPurged()
{
$module = 'CoreHome';
$action = 'index';
@@ -159,7 +160,7 @@ class SitesManagerTest extends IntegrationTestCase
$this->assertEquals('index', $action);
}
- public function test_redirectDashboardToWelcomePage_redirectsIfThereIsNoDataAndAppropriateParams()
+ public function testRedirectDashboardToWelcomePageRedirectsIfThereIsNoDataAndAppropriateParams()
{
$module = 'CoreHome';
$action = 'index';
@@ -183,8 +184,8 @@ class SitesManagerTest extends IntegrationTestCase
public function provideContainerConfig()
{
- return array(
+ return [
'Piwik\Access' => new FakeAccess()
- );
+ ];
}
}
diff --git a/plugins/SitesManager/tests/Integration/TrackingTest.php b/plugins/SitesManager/tests/Integration/TrackingTest.php
index 042f44075a..623c59e27c 100644
--- a/plugins/SitesManager/tests/Integration/TrackingTest.php
+++ b/plugins/SitesManager/tests/Integration/TrackingTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -20,7 +21,7 @@ use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
*/
class TrackingTest extends IntegrationTestCase
{
- public function test_TrackingOldVisits_ResetsSiteCreatedTime_SoDataCanBeViewedInUI()
+ public function testTrackingOldVisitsResetsSiteCreatedTimeSoDataCanBeViewedInUI()
{
Fixture::createWebsite('2015-01-01 00:00:00');
@@ -35,7 +36,7 @@ class TrackingTest extends IntegrationTestCase
$this->assertEquals('2014-05-04 00:00:00', $createdTime);
}
- public function test_TrackingOldVisit_ThatIsExcluded_DoesNotResetCreatedTime()
+ public function testTrackingOldVisitThatIsExcludedDoesNotResetCreatedTime()
{
Fixture::createWebsite('2015-01-01 00:00:00');
@@ -53,7 +54,7 @@ class TrackingTest extends IntegrationTestCase
$this->assertEquals('2014-12-31 00:00:00', $createdTime);
}
- public function test_TrackingOldVisit_ForSiteWithNoTsCreatedTime_DoesNotResetCreatedTime()
+ public function testTrackingOldVisitForSiteWithNoTsCreatedTimeDoesNotResetCreatedTime()
{
Fixture::createWebsite('2015-01-01 00:00:00');
@@ -77,12 +78,12 @@ class TrackingTest extends IntegrationTestCase
private function getSiteCreatedTime($idSite)
{
- return Db::fetchOne("SELECT ts_created FROM " . Common::prefixTable('site') . " WHERE idsite = ?", array($idSite));
+ return Db::fetchOne("SELECT ts_created FROM " . Common::prefixTable('site') . " WHERE idsite = ?", [$idSite]);
}
private function unsetCreatedTime($idSite)
{
- Db::query("UPDATE " . Common::prefixTable('site') . " SET ts_created = NULL WHERE idsite = ?", array($idSite));
+ Db::query("UPDATE " . Common::prefixTable('site') . " SET ts_created = NULL WHERE idsite = ?", [$idSite]);
}
protected static function configureFixture($fixture)
@@ -91,4 +92,4 @@ class TrackingTest extends IntegrationTestCase
$fixture->createSuperUser = true;
}
-} \ No newline at end of file
+}
diff --git a/plugins/SitesManager/tests/System/ApiTest.php b/plugins/SitesManager/tests/System/ApiTest.php
index 6d7d3e0ba7..188416c700 100644
--- a/plugins/SitesManager/tests/System/ApiTest.php
+++ b/plugins/SitesManager/tests/System/ApiTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -35,67 +36,67 @@ class ApiTest extends SystemTestCase
public function getApiForTesting()
{
- $apiToTest = array();
- $apiToTest[] = array(array('SitesManager.getPatternMatchSites'),
- array(
+ $apiToTest = [];
+ $apiToTest[] = [['SitesManager.getPatternMatchSites'],
+ [
'idSite' => 1,
'date' => self::$fixture->dateTime,
- 'periods' => array('day'),
- 'otherRequestParameters' => array('pattern' => 'SiteTest1')
- )
- );
- $apiToTest[] = array(array('SitesManager.getPatternMatchSites'),
- array(
+ 'periods' => ['day'],
+ 'otherRequestParameters' => ['pattern' => 'SiteTest1']
+ ]
+ ];
+ $apiToTest[] = [['SitesManager.getPatternMatchSites'],
+ [
'idSite' => 1,
'date' => self::$fixture->dateTime,
- 'periods' => array('day'),
- 'otherRequestParameters' => array('pattern' => 'SiteTest1', 'limit' => 2),
+ 'periods' => ['day'],
+ 'otherRequestParameters' => ['pattern' => 'SiteTest1', 'limit' => 2],
'testSuffix' => 'withLimit'
- )
- );
- $apiToTest[] = array(array('SitesManager.getNumWebsitesToDisplayPerPage'),
- array(
+ ]
+ ];
+ $apiToTest[] = [['SitesManager.getNumWebsitesToDisplayPerPage'],
+ [
'idSite' => 1,
'date' => self::$fixture->dateTime,
- 'periods' => array('day'),
- 'otherRequestParameters' => array('pattern' => 'SiteTest1')
- )
- );
- $apiToTest[] = array(array('SitesManager.getSiteSettings'),
- array(
+ 'periods' => ['day'],
+ 'otherRequestParameters' => ['pattern' => 'SiteTest1']
+ ]
+ ];
+ $apiToTest[] = [['SitesManager.getSiteSettings'],
+ [
'idSite' => 1
- )
- );
+ ]
+ ];
return $apiToTest;
}
- public function test_InstalledBeforeMatomo37()
+ public function testInstalledBeforeMatomo37()
{
$this->setInstallVersion('3.6.0');
- $this->runApiTests(array('SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'), array(
+ $this->runApiTests(['SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'], [
'idSite' => 1,
'testSuffix' => '_prior3_7_0'
- ));
+ ]);
}
- public function test_InstalledBeforeMatomo37ButForced()
+ public function testInstalledBeforeMatomo37ButForced()
{
$this->setInstallVersion('3.6.0');
- $this->runApiTests(array('SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'), array(
+ $this->runApiTests(['SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'], [
'idSite' => 1,
- 'otherRequestParameters' => array('forceMatomoEndpoint' => 1),
+ 'otherRequestParameters' => ['forceMatomoEndpoint' => 1],
'testSuffix' => '_prior3_7_0_but_forced'
- ));
+ ]);
}
- public function test_InstalledAfterMatomo37()
+ public function testInstalledAfterMatomo37()
{
$this->setInstallVersion('3.7.0');
- $this->runApiTests(array('SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'), array(
+ $this->runApiTests(['SitesManager.getJavascriptTag', 'SitesManager.getImageTrackingCode'], [
'idSite' => 1,
'testSuffix' => '_after3_7_0'
- ));
+ ]);
}
private function setInstallVersion($installVersion)
@@ -112,7 +113,6 @@ class ApiTest extends SystemTestCase
{
return dirname(__FILE__);
}
-
}
-ApiTest::$fixture = new ManySites(); \ No newline at end of file
+ApiTest::$fixture = new ManySites();
diff --git a/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getPatternMatchSites.xml b/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getPatternMatchSites.xml
index 40a0823b76..429d57fd42 100644
--- a/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getPatternMatchSites.xml
+++ b/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getPatternMatchSites.xml
@@ -15,6 +15,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -37,6 +38,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -59,6 +61,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -81,6 +84,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -103,6 +107,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -125,6 +130,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -147,6 +153,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -169,6 +176,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -191,6 +199,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -213,6 +222,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -235,6 +245,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
diff --git a/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getSiteSettings.xml b/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getSiteSettings.xml
index 624774cb7d..0fadc11a5b 100644
--- a/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getSiteSettings.xml
+++ b/plugins/SitesManager/tests/System/expected/test_SitesManager__SitesManager.getSiteSettings.xml
@@ -125,6 +125,26 @@ https://www.example.org/</placeholder>
<condition />
</row>
<row>
+ <name>excluded_referrers</name>
+ <title>Excluded referrers</title>
+ <value>
+ </value>
+ <defaultValue>
+ </defaultValue>
+ <type>array</type>
+ <uiControl>textarea</uiControl>
+ <uiControlAttributes>
+ <cols>20</cols>
+ <rows>4</rows>
+ </uiControlAttributes>
+ <availableValues />
+ <description />
+ <inlineHelp>Enter the list of hostnames and URLs, one per line, you want to exclude from referrer detection.&lt;br /&gt;&lt;br /&gt;Each entry needs to contain the hostname and may contain a path. If a path is provided a referrer will only be excluded if the path matches as well. URLs with and without 'www' are treated the same. Provided protocols will be ignored.&lt;br /&gt;e.g. &quot;www.example.org&quot; would match &quot;http://example.org/mypath&quot; and &quot;https://www.example.org/?param=1&quot; but not &quot;https://sub.example.org/&quot;&lt;br /&gt;&lt;br /&gt;To also exclude all subdomains of a certain hostname, prefix it with a dot. e.g. &quot;.sub.example.org&quot; would exclude &quot;http://sub.example.org/mypath&quot;, but also all its subdomains like &quot;https://new.sub.example.org/&quot;.</inlineHelp>
+ <templateFile />
+ <introduction />
+ <condition />
+ </row>
+ <row>
<name>sitesearch</name>
<title>Site Search</title>
<value>1</value>
diff --git a/plugins/SitesManager/tests/System/expected/test_SitesManagerwithLimit__SitesManager.getPatternMatchSites.xml b/plugins/SitesManager/tests/System/expected/test_SitesManagerwithLimit__SitesManager.getPatternMatchSites.xml
index ff12b972da..d24e8d2354 100644
--- a/plugins/SitesManager/tests/System/expected/test_SitesManagerwithLimit__SitesManager.getPatternMatchSites.xml
+++ b/plugins/SitesManager/tests/System/expected/test_SitesManagerwithLimit__SitesManager.getPatternMatchSites.xml
@@ -15,6 +15,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
@@ -37,6 +38,7 @@
<excluded_ips />
<excluded_parameters />
<excluded_user_agents />
+ <excluded_referrers />
<group />
<type>website</type>
<keep_url_fragment>0</keep_url_fragment>
diff --git a/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_global_settings.png b/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_global_settings.png
index 2db69b918e..7a9b969825 100644
--- a/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_global_settings.png
+++ b/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_global_settings.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:de015ca1177509f696d12d07bfdc10c034f90d688c143d544b5fcb9fc997e8f7
-size 254454
+oid sha256:a2c8a88774382621127514bca028ecbb35ed4c45c88ad2ccca1762053c7aaba9
+size 323951
diff --git a/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_site_edit_url.png b/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_site_edit_url.png
index 891834b2c4..0cc7ff1efd 100644
--- a/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_site_edit_url.png
+++ b/plugins/SitesManager/tests/UI/expected-screenshots/SitesManager_site_edit_url.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:50e9b492ac0e36727fce571beb6c4ee7fad2e4d54a3c5cebb4f41bb545af4f14
-size 330106
+oid sha256:2fda752b4a36129a30d2f31f382f62d0ef65fb8dfb5719c4a626b0299d751dc4
+size 391919
diff --git a/plugins/SitesManager/tests/Unit/APITest.php b/plugins/SitesManager/tests/Unit/APITest.php
index 15b46171ac..2d7610aca8 100644
--- a/plugins/SitesManager/tests/Unit/APITest.php
+++ b/plugins/SitesManager/tests/Unit/APITest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -47,18 +48,18 @@ class APITest extends \PHPUnit\Framework\TestCase
public function getTimezoneNameTestData()
{
- return array(
- array('Europe/Rome', 'en', 'Italy'),
- array('Europe/Rome', 'it', 'Italia'),
- array('America/New_York', 'en', 'United States - New York'),
- array('America/New_York', 'ru', 'Соединенные Штаты - Нью-Йорк'),
- array('Asia/Foo_Bar', 'en', 'Foo Bar'),
- array('Etc/UTC', 'en', 'UTC'),
- array('UTC', 'en', 'UTC'),
- array('UTC+1', 'en', 'UTC+1'),
- array('UTC+1.5', 'en', 'UTC+1:30'),
- array('UTC-1.5', 'en', 'UTC-1:30'),
- );
+ return [
+ ['Europe/Rome', 'en', 'Italy'],
+ ['Europe/Rome', 'it', 'Italia'],
+ ['America/New_York', 'en', 'United States - New York'],
+ ['America/New_York', 'ru', 'Соединенные Штаты - Нью-Йорк'],
+ ['Asia/Foo_Bar', 'en', 'Foo Bar'],
+ ['Etc/UTC', 'en', 'UTC'],
+ ['UTC', 'en', 'UTC'],
+ ['UTC+1', 'en', 'UTC+1'],
+ ['UTC+1.5', 'en', 'UTC+1:30'],
+ ['UTC-1.5', 'en', 'UTC-1:30'],
+ ];
}
/**
diff --git a/plugins/SitesManager/tests/Unit/GuessSiteTypeAndGtmTest.php b/plugins/SitesManager/tests/Unit/GuessSiteTypeAndGtmTest.php
index 66045cc909..ed85e26a55 100644
--- a/plugins/SitesManager/tests/Unit/GuessSiteTypeAndGtmTest.php
+++ b/plugins/SitesManager/tests/Unit/GuessSiteTypeAndGtmTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -16,7 +17,7 @@ use Piwik\Plugins\SitesManager\SitesManager;
* @group GtmSiteTypeGuesserTest
* @group Plugins
*/
-class GtmSiteTypeGuesserTest extends \PHPUnit\Framework\TestCase
+class GuessSiteTypeAndGtmTest extends \PHPUnit\Framework\TestCase
{
/**
* @var GtmSiteTypeGuesser
@@ -30,17 +31,17 @@ class GtmSiteTypeGuesserTest extends \PHPUnit\Framework\TestCase
$this->guesser = new GtmSiteTypeGuesser();
}
- public function test_site_type_unknown_if_response_false()
+ public function testSiteTypeUnknownIfResponseFalse()
{
$this->assertEquals(SitesManager::SITE_TYPE_UNKNOWN, $this->guesser->guessSiteTypeFromResponse(false));
}
- public function test_gtm_is_false_if_response_false()
+ public function testGtmIsFalseIfResponseFalse()
{
$this->assertFalse($this->guesser->guessGtmFromResponse(false));
}
- public function test_gtm_is_true()
+ public function testGtmIsTrue()
{
$response = [
'status' => 200,
@@ -54,7 +55,7 @@ class GtmSiteTypeGuesserTest extends \PHPUnit\Framework\TestCase
/**
* @dataProvider responseProvider
*/
- public function test_site_types_by_response($expected, $response)
+ public function testSiteTypesByResponse($expected, $response)
{
$this->assertEquals($expected, $this->guesser->guessSiteTypeFromResponse($response));
}
diff --git a/plugins/SitesManager/vue/dist/SitesManager.umd.js b/plugins/SitesManager/vue/dist/SitesManager.umd.js
index 4601a84174..aa0ff4d137 100644
--- a/plugins/SitesManager/vue/dist/SitesManager.umd.js
+++ b/plugins/SitesManager/vue/dist/SitesManager.umd.js
@@ -1442,6 +1442,7 @@ var GlobalSettingsStore_GlobalSettingsStore = /*#__PURE__*/function () {
excludedIpsGlobal: '',
excludedQueryParametersGlobal: '',
excludedUserAgentsGlobal: '',
+ excludedReferrersGlobal: '',
searchKeywordParametersGlobal: '',
searchCategoryParametersGlobal: ''
}
@@ -1492,6 +1493,7 @@ var GlobalSettingsStore_GlobalSettingsStore = /*#__PURE__*/function () {
excludedIpsGlobal: response.excludedIpsGlobal || '',
excludedQueryParametersGlobal: response.excludedQueryParametersGlobal || '',
excludedUserAgentsGlobal: response.excludedUserAgentsGlobal || '',
+ excludedReferrersGlobal: response.excludedReferrersGlobal || '',
searchKeywordParametersGlobal: response.searchKeywordParametersGlobal || '',
searchCategoryParametersGlobal: response.searchCategoryParametersGlobal || ''
});
@@ -1806,81 +1808,96 @@ SitesManagementvue_type_script_lang_ts.render = render
window.angular.module('piwikApp').factory('sitesManagerAPI', function () {
return {};
});
-// 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/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue?vue&type=template&id=213acaec
+// 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/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue?vue&type=template&id=5467128a
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_1 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_1 = {
class: "SitesManager"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
name: "globalSettings",
id: "globalSettings"
}, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_3 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_3 = {
id: "excludedIpsGlobalHelp",
class: "inline-help-node"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_4 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_4 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_5 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_5 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_6 = ["innerHTML"];
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_7 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_6 = ["innerHTML"];
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_7 = {
id: "excludedQueryParametersGlobalHelp",
class: "inline-help-node"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_8 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_8 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_9 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_9 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_10 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_10 = {
id: "excludedUserAgentsGlobalHelp",
class: "inline-help-node"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_11 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_11 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_12 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_12 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_13 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_13 = {
+ id: "excludedReferrersGlobalHelp",
+ class: "inline-help-node"
+};
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_14 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_16 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_17 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_18 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_19 = {
id: "timezoneHelp",
class: "inline-help-node"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_14 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_20 = {
key: 0
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_21 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_16 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_22 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_17 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_23 = {
id: "keepURLFragmentsHelp",
class: "inline-help-node"
};
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_18 = ["innerHTML"];
-var ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_19 = {
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_24 = ["innerHTML"];
+var ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_25 = {
class: "alert alert-info"
};
-function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache, $props, $setup, $data, $options) {
+function ManageGlobalSettingsvue_type_template_id_5467128a_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
var _component_SaveButton = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("SaveButton");
var _component_ContentBlock = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ContentBlock");
- return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ContentBlock, {
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ContentBlock, {
"content-title": _ctx.translate('SitesManager_GlobalWebsitesSettings')
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
- return [ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_HelpExcludedIpAddresses', '1.2.3.4/24', '1.2.3.*', '1.2.*.*')) + " ", 1), ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_4, ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
+ return [ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_HelpExcludedIpAddresses', '1.2.3.4/24', '1.2.3.*', '1.2.*.*')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_4, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
innerHTML: _ctx.$sanitize(_ctx.yourCurrentIpAddressIs)
- }, null, 8, ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_6)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ListOfQueryParametersToExclude', '/^sess.*|.*[dD]ate$/')) + " ", 1), ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_8, ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_9, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters', 'phpsessid, sessionid, ...')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_10, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp1')) + " ", 1), ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_11, ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_12, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalListExcludedUserAgents_Desc')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp2')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp3', '/bot|spider|crawl|scanner/i')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [!_ctx.timezoneSupportEnabled ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_14, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_AdvancedTimezoneSupportNotFound')) + " ", 1), ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_15])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_UTCTimeIs', _ctx.utcTimeDate)) + " ", 1), ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_16, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_17, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
+ }, null, 8, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_6)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ListOfQueryParametersToExclude', '/^sess.*|.*[dD]ate$/')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_8, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_9, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters', 'phpsessid, sessionid, ...')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_10, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp1')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_11, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_12, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalListExcludedUserAgents_Desc')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp2')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_GlobalExcludedUserAgentHelp3', '/bot|spider|crawl|scanner/i')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ExcludedReferrersHelp')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_14, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_15, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ExcludedReferrersHelpDetails')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_16, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ExcludedReferrersHelpExamples', 'www.example.org', 'http://example.org/mypath', 'https://www.example.org/?param=1', 'https://sub.example.org/')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_17, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_18, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ExcludedReferrersHelpSubDomains', '.sub.example.org', 'http://sub.example.org/mypath', 'https://new.sub.example.org/')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_19, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [!_ctx.timezoneSupportEnabled ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_20, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_AdvancedTimezoneSupportNotFound')) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_21])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_UTCTimeIs', _ctx.utcTimeDate)) + " ", 1), ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_22, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward')), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_23, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
innerHTML: _ctx.$sanitize(_ctx.keepUrlFragmentHelp)
- }, null, 8, ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_18), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_KeepURLFragmentsHelp2')), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ }, null, 8, ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_24), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_KeepURLFragmentsHelp2')), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "textarea",
name: "excludedIpsGlobal",
"var-type": "array",
@@ -1917,22 +1934,34 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
"inline-help": '#excludedUserAgentsGlobalHelp',
disabled: _ctx.isLoading
}, null, 8, ["modelValue", "title", "introduction", "disabled"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ uicontrol: "textarea",
+ name: "excludedReferrersGlobal",
+ "var-type": "array",
+ modelValue: _ctx.excludedReferrersGlobal,
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
+ return _ctx.excludedReferrersGlobal = $event;
+ }),
+ title: _ctx.translate('SitesManager_GlobalListExcludedReferrersDesc'),
+ introduction: _ctx.translate('SitesManager_GlobalListExcludedReferrers'),
+ "inline-help": '#excludedReferrersGlobalHelp',
+ disabled: _ctx.isLoading
+ }, null, 8, ["modelValue", "title", "introduction", "disabled"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "checkbox",
name: "keepURLFragmentsGlobal",
modelValue: _ctx.keepURLFragmentsGlobal,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return _ctx.keepURLFragmentsGlobal = $event;
}),
title: _ctx.translate('SitesManager_KeepURLFragmentsLong'),
introduction: _ctx.translate('SitesManager_KeepURLFragments'),
"inline-help": '#keepURLFragmentsHelp',
disabled: _ctx.isLoading
- }, null, 8, ["modelValue", "title", "introduction", "disabled"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h3", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_TrackingSiteSearch')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SiteSearchUse')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_213acaec_hoisted_19, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SearchParametersNote')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SearchParametersNote2')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
+ }, null, 8, ["modelValue", "title", "introduction", "disabled"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h3", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_TrackingSiteSearch')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SiteSearchUse')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ManageGlobalSettingsvue_type_template_id_5467128a_hoisted_25, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SearchParametersNote')) + " " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_SearchParametersNote2')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "text",
name: "searchKeywordParametersGlobal",
"var-type": "array",
modelValue: _ctx.searchKeywordParametersGlobal,
- "onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
return _ctx.searchKeywordParametersGlobal = $event;
}),
title: _ctx.translate('SitesManager_SearchKeywordLabel'),
@@ -1943,7 +1972,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
name: "searchCategoryParametersGlobal",
"var-type": "array",
modelValue: _ctx.searchCategoryParametersGlobal,
- "onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
return _ctx.searchCategoryParametersGlobal = $event;
}),
title: _ctx.translate('SitesManager_SearchCategoryLabel'),
@@ -1958,14 +1987,14 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
"inline-help": '#timezoneHelp',
disabled: _ctx.isLoading,
modelValue: _ctx.defaultTimezone,
- "onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = function ($event) {
return _ctx.defaultTimezone = $event;
})
}, null, 8, ["options", "title", "introduction", "disabled", "modelValue"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: "select",
name: "defaultCurrency",
modelValue: _ctx.defaultCurrency,
- "onUpdate:modelValue": _cache[7] || (_cache[7] = function ($event) {
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = function ($event) {
return _ctx.defaultCurrency = $event;
}),
options: _ctx.currencies,
@@ -1975,7 +2004,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
disabled: _ctx.isLoading
}, null, 8, ["modelValue", "options", "title", "introduction", "inline-help", "disabled"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_SaveButton, {
saving: _ctx.isSaving,
- onConfirm: _cache[8] || (_cache[8] = function ($event) {
+ onConfirm: _cache[9] || (_cache[9] = function ($event) {
return _ctx.saveGlobalSettings();
})
}, null, 8, ["saving"])];
@@ -1983,7 +2012,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
_: 1
}, 8, ["content-title"]), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSuperUserAccess]])]);
}
-// CONCATENATED MODULE: ./plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue?vue&type=template&id=213acaec
+// CONCATENATED MODULE: ./plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue?vue&type=template&id=5467128a
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue?vue&type=script&lang=ts
@@ -2016,6 +2045,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
excludedIpsGlobal: (settings.excludedIpsGlobal || '').split(','),
excludedQueryParametersGlobal: (settings.excludedQueryParametersGlobal || '').split(','),
excludedUserAgentsGlobal: (settings.excludedUserAgentsGlobal || '').split(','),
+ excludedReferrersGlobal: (settings.excludedReferrersGlobal || '').split(','),
searchKeywordParametersGlobal: (settings.searchKeywordParametersGlobal || '').split(','),
searchCategoryParametersGlobal: (settings.searchCategoryParametersGlobal || '').split(','),
isSaving: false
@@ -2036,6 +2066,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
_this.excludedIpsGlobal = (settings.excludedIpsGlobal || '').split(',');
_this.excludedQueryParametersGlobal = (settings.excludedQueryParametersGlobal || '').split(',');
_this.excludedUserAgentsGlobal = (settings.excludedUserAgentsGlobal || '').split(',');
+ _this.excludedReferrersGlobal = (settings.excludedReferrersGlobal || '').split(',');
_this.searchKeywordParametersGlobal = (settings.searchKeywordParametersGlobal || '').split(',');
_this.searchCategoryParametersGlobal = (settings.searchCategoryParametersGlobal || '').split(',');
});
@@ -2057,6 +2088,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
excludedIps: this.excludedIpsGlobal.join(','),
excludedQueryParameters: this.excludedQueryParametersGlobal.join(','),
excludedUserAgents: this.excludedUserAgentsGlobal.join(','),
+ excludedReferrers: this.excludedReferrersGlobal.join(','),
searchKeywordParameters: this.searchKeywordParametersGlobal.join(','),
searchCategoryParameters: this.searchCategoryParametersGlobal.join(',')
}).then(function () {
@@ -2126,7 +2158,7 @@ function ManageGlobalSettingsvue_type_template_id_213acaec_render(_ctx, _cache,
-ManageGlobalSettingsvue_type_script_lang_ts.render = ManageGlobalSettingsvue_type_template_id_213acaec_render
+ManageGlobalSettingsvue_type_script_lang_ts.render = ManageGlobalSettingsvue_type_template_id_5467128a_render
/* harmony default export */ var ManageGlobalSettings = (ManageGlobalSettingsvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.adapter.ts
diff --git a/plugins/SitesManager/vue/dist/SitesManager.umd.min.js b/plugins/SitesManager/vue/dist/SitesManager.umd.min.js
index 25fb5ddb6a..dea9ca88c0 100644
--- a/plugins/SitesManager/vue/dist/SitesManager.umd.min.js
+++ b/plugins/SitesManager/vue/dist/SitesManager.umd.min.js
@@ -1,45 +1,45 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["SitesManager"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["SitesManager"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var i=t[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},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 a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(a,i,function(t){return e[t]}.bind(null,i));return a},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/SitesManager/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"SiteTypesStore",(function(){return h})),n.d(t,"CurrencyStore",(function(){return Xe})),n.d(t,"TimezoneStore",(function(){return Re})),n.d(t,"SitesManagement",(function(){return gt})),n.d(t,"ManageGlobalSettings",(function(){return Lt})),"undefined"!==typeof window){var a=window.document.currentScript,i=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}var r=n("19dc"),l=n("8bbf");function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function c(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):"function"===typeof define&&define.amd?define(["CoreHome",,"CorePluginsAdmin"],t):"object"===typeof exports?exports["SitesManager"]=t(require("CoreHome"),require("vue"),require("CorePluginsAdmin")):e["SitesManager"]=t(e["CoreHome"],e["Vue"],e["CorePluginsAdmin"])})("undefined"!==typeof self?self:this,(function(e,t,n){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var i=t[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},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 a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(a,i,function(t){return e[t]}.bind(null,i));return a},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/SitesManager/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},a5a2:function(e,t){e.exports=n},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"SiteTypesStore",(function(){return p})),n.d(t,"CurrencyStore",(function(){return Xe})),n.d(t,"TimezoneStore",(function(){return We})),n.d(t,"SitesManagement",(function(){return gt})),n.d(t,"ManageGlobalSettings",(function(){return Rt})),"undefined"!==typeof window){var a=window.document.currentScript,i=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}var r=n("19dc"),l=n("8bbf");function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function c(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}function u(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 d=window,b=d.$,m=function(){function e(){var t=this;o(this,e),u(this,"state",Object(l["reactive"])({isLoading:!1,typesById:{}})),u(this,"typesById",Object(l["computed"])((function(){return Object(l["readonly"])(t.state).typesById}))),u(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.state).isLoading}))),u(this,"types",Object(l["computed"])((function(){return Object.values(t.typesById.value)}))),u(this,"response",void 0)}return c(e,[{key:"init",value:function(){return this.fetchAvailableTypes()}},{key:"fetchAvailableTypes",value:function(){var e=this;return this.response?Promise.resolve(this.response):(this.state.isLoading=!0,this.response=r["AjaxHelper"].fetch({method:"API.getAvailableMeasurableTypes",filter_limit:"-1"}).then((function(t){return t.forEach((function(t){e.state.typesById[t.id]=t})),e.types.value})).finally((function(){e.state.isLoading=!1})),this.response)}},{key:"getEditSiteIdParameter",value:function(){var e=r["MatomoUrl"].hashQuery.value.match(/editsiteid=([0-9]+)/);if(e){var t="1"===r["MatomoUrl"].urlParsed.value.showaddsite||"true"===r["MatomoUrl"].urlParsed.value.showaddsite,n=e[1];return n&&b.isNumeric(n)&&!t?n:void 0}}},{key:"removeEditSiteIdParameterFromHash",value:function(){var e=Object.assign({},r["MatomoUrl"].hashParsed.value);delete e.editsiteid,r["MatomoUrl"].updateHash(e)}}]),e}(),h=new m;
+ */var d=window,b=d.$,m=function(){function e(){var t=this;o(this,e),u(this,"state",Object(l["reactive"])({isLoading:!1,typesById:{}})),u(this,"typesById",Object(l["computed"])((function(){return Object(l["readonly"])(t.state).typesById}))),u(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.state).isLoading}))),u(this,"types",Object(l["computed"])((function(){return Object.values(t.typesById.value)}))),u(this,"response",void 0)}return c(e,[{key:"init",value:function(){return this.fetchAvailableTypes()}},{key:"fetchAvailableTypes",value:function(){var e=this;return this.response?Promise.resolve(this.response):(this.state.isLoading=!0,this.response=r["AjaxHelper"].fetch({method:"API.getAvailableMeasurableTypes",filter_limit:"-1"}).then((function(t){return t.forEach((function(t){e.state.typesById[t.id]=t})),e.types.value})).finally((function(){e.state.isLoading=!1})),this.response)}},{key:"getEditSiteIdParameter",value:function(){var e=r["MatomoUrl"].hashQuery.value.match(/editsiteid=([0-9]+)/);if(e){var t="1"===r["MatomoUrl"].urlParsed.value.showaddsite||"true"===r["MatomoUrl"].urlParsed.value.showaddsite,n=e[1];return n&&b.isNumeric(n)&&!t?n:void 0}}},{key:"removeEditSiteIdParameterFromHash",value:function(){var e=Object.assign({},r["MatomoUrl"].hashParsed.value);delete e.editsiteid,r["MatomoUrl"].updateHash(e)}}]),e}(),p=new m;
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function p(){return{get typesById(){return Object(r["clone"])(h.typesById.value)},fetchTypeById:function(e){var t=this;return h.fetchAvailableTypes().then((function(){return Object(r["cloneThenApply"])(t.typesById[e])}))},fetchAvailableTypes:function(){return h.fetchAvailableTypes().then((function(e){return Object(r["cloneThenApply"])(e)}))},hasMultipleTypes:function(){return h.fetchAvailableTypes().then((function(e){return e&&Object.keys(e).length>1}))},removeEditSiteIdParameterFromHash:h.removeEditSiteIdParameterFromHash.bind(h),getEditSiteIdParameter:h.getEditSiteIdParameter.bind(h)}}window.angular.module("piwikApp.service").factory("sitesManagerTypeModel",p);var g={class:"SitesManager",ref:"root"},f={class:"sites-manager-header"},S=["innerHTML"],v=Object(l["createElementVNode"])("br",null,null,-1),j=["innerHTML"],O={class:"loadingPiwik"},y=["alt"],E={class:"ui-confirm"},N={class:"center"},V=["title","onClick"],T={class:"ui-button-text"},x={class:"sitesManagerList"},M={key:0},w={class:"bottomButtonBar"};function A(e,t,n,a,i,r){var o=this,s=Object(l["resolveComponent"])("EnrichedHeadline"),c=Object(l["resolveComponent"])("ButtonBar"),u=Object(l["resolveComponent"])("MatomoDialog"),d=Object(l["resolveComponent"])("SiteFields"),b=Object(l["resolveDirective"])("content-intro");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",g,[Object(l["createElementVNode"])("div",f,[Object(l["withDirectives"])(Object(l["createElementVNode"])("div",null,[Object(l["withDirectives"])(Object(l["createElementVNode"])("h2",null,[Object(l["createVNode"])(s,{"help-url":"https://matomo.org/docs/manage-websites/","feature-name":e.translate("SitesManager_WebsitesManagement")},{default:Object(l["withCtx"])((function(){return[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.headlineText),1)]})),_:1},8,["help-url","feature-name"])],512),[[l["vShow"],e.availableTypes.length]]),Object(l["createElementVNode"])("p",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_MainDescription"))+" ",1),Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.mainDescription)},null,8,S),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",null,[v,Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.superUserAccessMessage)},null,8,j)],512),[[l["vShow"],e.hasSuperUserAccess]])])],512),[[b]])]),Object(l["createElementVNode"])("div",null,[Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])({hide_only:!e.isLoading})},[Object(l["createElementVNode"])("div",O,[Object(l["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:e.translate("General_LoadingData")},null,8,y),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_LoadingData")),1)])],2)]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(c,{"site-is-being-edited":e.isSiteBeingEdited,"has-prev":e.hasPrev,hasNext:e.hasNext,"offset-start":e.offsetStart,"offset-end":e.offsetEnd,"total-number-of-sites":e.totalNumberOfSites,"is-loading":e.isLoading,"search-term":e.searchTerm,"is-searching":!!e.activeSearchTerm,"onUpdate:searchTerm":t[0]||(t[0]=function(t){return e.searchTerm=t}),onAdd:t[1]||(t[1]=function(t){return e.addNewEntity()}),onSearch:t[2]||(t[2]=function(t){return e.searchSites(t)}),onPrev:t[3]||(t[3]=function(t){return e.previousPage()}),onNext:t[4]||(t[4]=function(t){return e.nextPage()})},null,8,["site-is-being-edited","has-prev","hasNext","offset-start","offset-end","total-number-of-sites","is-loading","search-term","is-searching"])]),Object(l["createVNode"])(u,{modelValue:e.showAddSiteDialog,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.showAddSiteDialog=t})},{default:Object(l["withCtx"])((function(){return[Object(l["createElementVNode"])("div",E,[Object(l["createElementVNode"])("div",null,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.translate("SitesManager_ChooseMeasurableTypeHeadline")),1),Object(l["createElementVNode"])("div",N,[Object(l["createElementVNode"])("p",null,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableTypes,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("button",{type:"button",key:t.id,title:t.description,class:"modal-close btn",style:{"margin-left":"20px"},onClick:function(n){e.addSite(t.id)},"aria-disabled":"false"},[Object(l["createElementVNode"])("span",T,Object(l["toDisplayString"])(t.name),1)],8,V)})),128))])])])])]})),_:1},8,["modelValue"]),Object(l["createElementVNode"])("div",x,[e.activeSearchTerm&&0===e.sites.length&&!e.isLoading?(Object(l["openBlock"])(),Object(l["createElementBlock"])("p",M,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_NotFound"))+" ",1),Object(l["createElementVNode"])("strong",null,Object(l["toDisplayString"])(e.activeSearchTerm),1)])):Object(l["createCommentVNode"])("",!0),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.sites,(function(n,a){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:n.idsite},[Object(l["createVNode"])(d,{site:n,"timezone-support-enabled":e.timezoneSupportEnabled,"utc-time":e.utcTime,"global-settings":e.globalSettings,onEditSite:t[6]||(t[6]=function(e){return o.isSiteBeingEdited=!0}),onCancelEditSite:t[7]||(t[7]=function(t){return e.afterCancelEdit(t)}),onDelete:t[8]||(t[8]=function(t){return e.afterDelete(t)}),onSave:function(t){return e.afterSave(t.site,t.settingValues,a,t.isNew)}},null,8,["site","timezone-support-enabled","utc-time","global-settings","onSave"])])})),128))]),Object(l["createElementVNode"])("div",w,[Object(l["createVNode"])(c,{"site-is-being-edited":e.isSiteBeingEdited,"has-prev":e.hasPrev,hasNext:e.hasNext,"offset-start":e.offsetStart,"offset-end":e.offsetEnd,"total-number-of-sites":e.totalNumberOfSites,"is-loading":e.isLoading,"search-term":e.searchTerm,"is-searching":!!e.activeSearchTerm,"onUpdate:searchTerm":t[9]||(t[9]=function(t){return e.searchTerm=t}),onAdd:t[10]||(t[10]=function(t){return e.addNewEntity()}),onSearch:t[11]||(t[11]=function(t){return e.searchSites(t)}),onPrev:t[12]||(t[12]=function(t){return e.previousPage()}),onNext:t[13]||(t[13]=function(t){return e.nextPage()})},null,8,["site-is-being-edited","has-prev","hasNext","offset-start","offset-end","total-number-of-sites","is-loading","search-term","is-searching"])])],512)}var C={class:"sitesButtonBar clearfix"},_={class:"search"},P=["value","placeholder","disabled"],D=["title"],k={class:"paging"},G=["disabled"],U={style:{cursor:"pointer"}},L={class:"counter"},z=["disabled"],I={style:{cursor:"pointer"},class:"pointer"};function B(e,t,n,a,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",C,[Object(l["withDirectives"])(Object(l["createElementVNode"])("a",{class:Object(l["normalizeClass"])(["btn addSite",{disabled:e.siteIsBeingEdited}]),onClick:t[0]||(t[0]=function(t){return e.addNewEntity()}),tabindex:"1"},Object(l["toDisplayString"])(e.availableTypes.length>1?e.translate("SitesManager_AddMeasurable"):e.translate("SitesManager_AddSite")),3),[[l["vShow"],e.hasSuperUserAccess&&e.availableTypes]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",_,[Object(l["createElementVNode"])("input",{value:e.searchTerm,onKeydown:t[1]||(t[1]=function(t){return e.onKeydown(t)}),placeholder:e.translate("Actions_SubmenuSitesearch"),type:"text",disabled:e.siteIsBeingEdited},null,40,P),Object(l["createElementVNode"])("img",{onClick:t[2]||(t[2]=function(t){return e.searchSite()}),title:e.translate("General_ClickToSearch"),class:"search_ico",src:"plugins/Morpheus/images/search_ico.png"},null,8,D)],512),[[l["vShow"],e.hasPrev||e.hasNext||e.isSearching]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",k,[Object(l["createElementVNode"])("a",{class:"btn prev",disabled:!(e.hasPrev&&!e.isLoading&&!e.siteIsBeingEdited)||void 0,onClick:t[3]||(t[3]=function(t){return e.previousPage()})},[Object(l["createElementVNode"])("span",U,"« "+Object(l["toDisplayString"])(e.translate("General_Previous")),1)],8,G),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",L,[Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(e.paginationText),1)],512),[[l["vShow"],e.hasPrev||e.hasNext]]),Object(l["createElementVNode"])("a",{class:"btn next",disabled:!(e.hasNext&&!e.isLoading&&!e.siteIsBeingEdited)||void 0,onClick:t[4]||(t[4]=function(t){return e.nextPage()})},[Object(l["createElementVNode"])("span",I,Object(l["toDisplayString"])(e.translate("General_Next"))+" »",1)],8,z)],512),[[l["vShow"],e.hasPrev||e.hasNext]])])}var H=Object(l["defineComponent"])({props:{siteIsBeingEdited:{type:Boolean,required:!0},hasPrev:{type:Boolean,required:!0},hasNext:{type:Boolean,required:!0},offsetStart:{type:Number,required:!0},offsetEnd:{type:Number,required:!0},totalNumberOfSites:{type:Number},isLoading:{type:Boolean,required:!0},searchTerm:{type:String,required:!0},isSearching:{type:Boolean,required:!0}},emits:["add","search","prev","next","update:searchTerm"],created:function(){h.init(),this.onKeydown=Object(r["debounce"])(this.onKeydown,50)},computed:{hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},availableTypes:function(){return h.types.value},paginationText:function(){var e;return e=this.isSearching?Object(r["translate"])("General_PaginationWithoutTotal","".concat(this.offsetStart),"".concat(this.offsetEnd)):Object(r["translate"])("General_Pagination","".concat(this.offsetStart),"".concat(this.offsetEnd),null===this.totalNumberOfSites?"?":"".concat(this.totalNumberOfSites))," ".concat(e," ")}},methods:{addNewEntity:function(){this.$emit("add")},searchSite:function(){this.siteIsBeingEdited||this.$emit("search")},previousPage:function(){this.$emit("prev")},nextPage:function(){this.$emit("next")},onKeydown:function(e){var t=this;setTimeout((function(){"Enter"!==e.key?t.$emit("update:searchTerm",e.target.value):t.searchSiteOnEnter(e)}))},searchSiteOnEnter:function(e){e.preventDefault(),this.searchSite()}}});H.render=B;var F=H,K=["idsite","type"],W={class:"card-content"},R={key:0,class:"row"},Q={class:"col m3"},q={class:"title"},$={class:"title"},Y=["target","title","href"],J={class:"col m4"},X={class:"title"},Z={class:"title"},ee={class:"title"},te={class:"title"},ne={class:"col m4"},ae={class:"title"},ie=Object(l["createTextVNode"])(": "),re=["href"],le={key:0},oe={class:"title"},se={key:1},ce={class:"title"},ue={key:2},de={class:"title"},be={class:"col m1 text-right"},me=["title"],he=Object(l["createElementVNode"])("span",{class:"icon-edit"},null,-1),pe=[he],ge=["title"],fe=Object(l["createElementVNode"])("span",{class:"icon-delete"},null,-1),Se=[fe],ve={key:1},je={class:"form-group row"},Oe={class:"col s12 m6 input-field"},ye=["placeholder"],Ee=Object(l["createElementVNode"])("div",{class:"col s12 m6"},null,-1),Ne={id:"timezoneHelpText",class:"inline-help-node"},Ve={key:0},Te=Object(l["createElementVNode"])("br",null,null,-1),xe=Object(l["createElementVNode"])("br",null,null,-1),Me={class:"editingSiteFooter"},we=["value"],Ae={class:"ui-confirm"},Ce=["value"],_e=["value"];function Pe(e,t,n,a,i,r){var o,s,c,u=this,d=Object(l["resolveComponent"])("ActivityIndicator"),b=Object(l["resolveComponent"])("GroupedSettings"),m=Object(l["resolveComponent"])("Field"),h=Object(l["resolveComponent"])("MatomoDialog");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{class:Object(l["normalizeClass"])(["site card hoverable",{editingSite:!!e.editMode}]),idsite:e.theSite.idsite,type:e.theSite.type,ref:"root"},[Object(l["createElementVNode"])("div",W,[e.editMode?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",R,[Object(l["createElementVNode"])("div",Q,[Object(l["createElementVNode"])("h4",null,Object(l["toDisplayString"])(e.theSite.name),1),Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",q,Object(l["toDisplayString"])(e.translate("General_Id"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.idsite),1)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",$,Object(l["toDisplayString"])(e.translate("SitesManager_Type"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.currentType.name),1)],512),[[l["vShow"],e.availableTypes.length>1]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("a",{target:e.isInternalSetupUrl?"_self":"_blank",title:e.translate("SitesManager_ShowTrackingTag"),href:e.setupUrl},Object(l["toDisplayString"])(e.translate("SitesManager_ShowTrackingTag")),9,Y)],512),[[l["vShow"],e.theSite.idsite&&e.howToSetupUrl]])])]),Object(l["createElementVNode"])("div",J,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",X,Object(l["toDisplayString"])(e.translate("SitesManager_Timezone"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.timezone_name),1)]),Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",Z,Object(l["toDisplayString"])(e.translate("SitesManager_Currency"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.currency_name),1)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",ee,Object(l["toDisplayString"])(e.translate("Goals_Ecommerce"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Yes")),1)],512),[[l["vShow"],1===e.theSite.ecommerce||"1"===e.theSite.ecommerce]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",te,Object(l["toDisplayString"])(e.translate("Actions_SubmenuSitesearch"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Yes")),1)],512),[[l["vShow"],1===e.theSite.sitesearch||"1"===e.theSite.sitesearch]])])]),Object(l["createElementVNode"])("div",ne,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",ae,Object(l["toDisplayString"])(e.translate("SitesManager_Urls")),1),ie,(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.theSite.alias_urls,(function(t,n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("span",{key:t},[Object(l["createElementVNode"])("a",{target:"_blank",rel:"noreferrer noopener",href:t},Object(l["toDisplayString"])(t)+Object(l["toDisplayString"])(n===e.theSite.alias_urls.length-1?"":", "),9,re)])})),128))]),null!==(o=e.theSite.excluded_ips)&&void 0!==o&&o.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",le,[Object(l["createElementVNode"])("span",oe,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedIps"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_ips.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0),null!==(s=e.theSite.excluded_parameters)&&void 0!==s&&s.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",se,[Object(l["createElementVNode"])("span",ce,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedParameters"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_parameters.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0),null!==(c=e.theSite.excluded_user_agents)&&void 0!==c&&c.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",ue,[Object(l["createElementVNode"])("span",de,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedUserAgents"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_user_agents.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0)])]),Object(l["createElementVNode"])("div",be,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("button",{class:"table-action",onClick:t[0]||(t[0]=function(t){return e.editSite()}),title:e.translate("General_Edit")},pe,8,me)]),Object(l["createElementVNode"])("li",null,[Object(l["withDirectives"])(Object(l["createElementVNode"])("button",{class:"table-action",onClick:t[1]||(t[1]=function(e){return u.showRemoveDialog=!0}),title:e.translate("General_Delete")},Se,8,ge),[[l["vShow"],e.theSite.idsite]])])])])])),e.editMode?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ve,[Object(l["createElementVNode"])("div",je,[Object(l["createElementVNode"])("div",Oe,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.theSite.name=t}),maxlength:"90",placeholder:e.translate("General_Name")},null,8,ye),[[l["vModelText"],e.theSite.name]]),Object(l["createElementVNode"])("label",null,Object(l["toDisplayString"])(e.translate("General_Name")),1)]),Ee]),Object(l["createVNode"])(d,{loading:e.isLoading},null,8,["loading"]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.measurableSettings,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:t.pluginName},[Object(l["createVNode"])(b,{"group-name":t.pluginName,settings:t.settings,"all-setting-values":e.settingValues,onChange:function(n){return e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}},null,8,["group-name","settings","all-setting-values","onChange"])])})),128)),Object(l["createVNode"])(m,{uicontrol:"select",name:"currency",modelValue:e.theSite.currency,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.theSite.currency=t}),title:e.translate("SitesManager_Currency"),"inline-help":e.translate("SitesManager_CurrencySymbolWillBeUsedForGoals"),options:e.currencies},null,8,["modelValue","title","inline-help","options"]),Object(l["createVNode"])(m,{uicontrol:"select",name:"timezone",modelValue:e.theSite.timezone,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.theSite.timezone=t}),title:e.translate("SitesManager_Timezone"),"inline-help":"#timezoneHelpText",options:e.timezones},null,8,["modelValue","title","options"]),Object(l["createElementVNode"])("div",Ne,[Object(l["createElementVNode"])("div",null,[e.timezoneSupportEnabled?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",Ve,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_AdvancedTimezoneSupportNotFound"))+" ",1),Te])),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.utcTimeIs)+" ",1),xe,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward")),1)])]),Object(l["createElementVNode"])("div",Me,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"submit",class:"btn",value:e.translate("General_Save"),onClick:t[5]||(t[5]=function(t){return e.saveSite()})},null,8,we),[[l["vShow"],!e.isLoading]]),Object(l["createElementVNode"])("button",{class:"btn btn-link",onClick:t[6]||(t[6]=function(t){return e.cancelEditSite(e.site)})},Object(l["toDisplayString"])(e.translate("General_Cancel","","")),1)])])):Object(l["createCommentVNode"])("",!0)]),Object(l["createVNode"])(h,{modelValue:e.showRemoveDialog,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.showRemoveDialog=t}),onYes:t[8]||(t[8]=function(t){return e.deleteSite()})},{default:Object(l["withCtx"])((function(){return[Object(l["createElementVNode"])("div",Ae,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.removeDialogTitle),1),Object(l["createElementVNode"])("p",null,Object(l["toDisplayString"])(e.translate("SitesManager_DeleteSiteExplanation")),1),Object(l["createElementVNode"])("input",{type:"button",value:e.translate("General_Yes"),role:"yes"},null,8,Ce),Object(l["createElementVNode"])("input",{type:"button",value:e.translate("General_No"),role:"no"},null,8,_e)])]})),_:1},8,["modelValue"])],10,K)}var De=n("a5a2");function ke(e,t){return Ie(e)||ze(e,t)||Ue(e,t)||Ge()}function Ge(){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 Ue(e,t){if(e){if("string"===typeof e)return Le(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)?Le(e,t):void 0}}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function ze(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r=[],l=!0,o=!1;try{for(n=n.call(e);!(l=(a=n.next()).done);l=!0)if(r.push(a.value),t&&r.length===t)break}catch(s){o=!0,i=s}finally{try{l||null==n["return"]||n["return"]()}finally{if(o)throw i}}return r}}function Ie(e){if(Array.isArray(e))return e}function Be(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function He(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Fe(e,t,n){return t&&He(e.prototype,t),n&&He(e,n),e}function Ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+function h(){return{get typesById(){return Object(r["clone"])(p.typesById.value)},fetchTypeById:function(e){var t=this;return p.fetchAvailableTypes().then((function(){return Object(r["cloneThenApply"])(t.typesById[e])}))},fetchAvailableTypes:function(){return p.fetchAvailableTypes().then((function(e){return Object(r["cloneThenApply"])(e)}))},hasMultipleTypes:function(){return p.fetchAvailableTypes().then((function(e){return e&&Object.keys(e).length>1}))},removeEditSiteIdParameterFromHash:p.removeEditSiteIdParameterFromHash.bind(p),getEditSiteIdParameter:p.getEditSiteIdParameter.bind(p)}}window.angular.module("piwikApp.service").factory("sitesManagerTypeModel",h);var g={class:"SitesManager",ref:"root"},f={class:"sites-manager-header"},S=["innerHTML"],j=Object(l["createElementVNode"])("br",null,null,-1),O=["innerHTML"],v={class:"loadingPiwik"},y=["alt"],E={class:"ui-confirm"},N={class:"center"},V=["title","onClick"],x={class:"ui-button-text"},T={class:"sitesManagerList"},M={key:0},w={class:"bottomButtonBar"};function A(e,t,n,a,i,r){var o=this,s=Object(l["resolveComponent"])("EnrichedHeadline"),c=Object(l["resolveComponent"])("ButtonBar"),u=Object(l["resolveComponent"])("MatomoDialog"),d=Object(l["resolveComponent"])("SiteFields"),b=Object(l["resolveDirective"])("content-intro");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",g,[Object(l["createElementVNode"])("div",f,[Object(l["withDirectives"])(Object(l["createElementVNode"])("div",null,[Object(l["withDirectives"])(Object(l["createElementVNode"])("h2",null,[Object(l["createVNode"])(s,{"help-url":"https://matomo.org/docs/manage-websites/","feature-name":e.translate("SitesManager_WebsitesManagement")},{default:Object(l["withCtx"])((function(){return[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.headlineText),1)]})),_:1},8,["help-url","feature-name"])],512),[[l["vShow"],e.availableTypes.length]]),Object(l["createElementVNode"])("p",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_MainDescription"))+" ",1),Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.mainDescription)},null,8,S),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",null,[j,Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.superUserAccessMessage)},null,8,O)],512),[[l["vShow"],e.hasSuperUserAccess]])])],512),[[b]])]),Object(l["createElementVNode"])("div",null,[Object(l["createElementVNode"])("div",{class:Object(l["normalizeClass"])({hide_only:!e.isLoading})},[Object(l["createElementVNode"])("div",v,[Object(l["createElementVNode"])("img",{src:"plugins/Morpheus/images/loading-blue.gif",alt:e.translate("General_LoadingData")},null,8,y),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_LoadingData")),1)])],2)]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(c,{"site-is-being-edited":e.isSiteBeingEdited,"has-prev":e.hasPrev,hasNext:e.hasNext,"offset-start":e.offsetStart,"offset-end":e.offsetEnd,"total-number-of-sites":e.totalNumberOfSites,"is-loading":e.isLoading,"search-term":e.searchTerm,"is-searching":!!e.activeSearchTerm,"onUpdate:searchTerm":t[0]||(t[0]=function(t){return e.searchTerm=t}),onAdd:t[1]||(t[1]=function(t){return e.addNewEntity()}),onSearch:t[2]||(t[2]=function(t){return e.searchSites(t)}),onPrev:t[3]||(t[3]=function(t){return e.previousPage()}),onNext:t[4]||(t[4]=function(t){return e.nextPage()})},null,8,["site-is-being-edited","has-prev","hasNext","offset-start","offset-end","total-number-of-sites","is-loading","search-term","is-searching"])]),Object(l["createVNode"])(u,{modelValue:e.showAddSiteDialog,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.showAddSiteDialog=t})},{default:Object(l["withCtx"])((function(){return[Object(l["createElementVNode"])("div",E,[Object(l["createElementVNode"])("div",null,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.translate("SitesManager_ChooseMeasurableTypeHeadline")),1),Object(l["createElementVNode"])("div",N,[Object(l["createElementVNode"])("p",null,[(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.availableTypes,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("button",{type:"button",key:t.id,title:t.description,class:"modal-close btn",style:{"margin-left":"20px"},onClick:function(n){e.addSite(t.id)},"aria-disabled":"false"},[Object(l["createElementVNode"])("span",x,Object(l["toDisplayString"])(t.name),1)],8,V)})),128))])])])])]})),_:1},8,["modelValue"]),Object(l["createElementVNode"])("div",T,[e.activeSearchTerm&&0===e.sites.length&&!e.isLoading?(Object(l["openBlock"])(),Object(l["createElementBlock"])("p",M,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_NotFound"))+" ",1),Object(l["createElementVNode"])("strong",null,Object(l["toDisplayString"])(e.activeSearchTerm),1)])):Object(l["createCommentVNode"])("",!0),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.sites,(function(n,a){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:n.idsite},[Object(l["createVNode"])(d,{site:n,"timezone-support-enabled":e.timezoneSupportEnabled,"utc-time":e.utcTime,"global-settings":e.globalSettings,onEditSite:t[6]||(t[6]=function(e){return o.isSiteBeingEdited=!0}),onCancelEditSite:t[7]||(t[7]=function(t){return e.afterCancelEdit(t)}),onDelete:t[8]||(t[8]=function(t){return e.afterDelete(t)}),onSave:function(t){return e.afterSave(t.site,t.settingValues,a,t.isNew)}},null,8,["site","timezone-support-enabled","utc-time","global-settings","onSave"])])})),128))]),Object(l["createElementVNode"])("div",w,[Object(l["createVNode"])(c,{"site-is-being-edited":e.isSiteBeingEdited,"has-prev":e.hasPrev,hasNext:e.hasNext,"offset-start":e.offsetStart,"offset-end":e.offsetEnd,"total-number-of-sites":e.totalNumberOfSites,"is-loading":e.isLoading,"search-term":e.searchTerm,"is-searching":!!e.activeSearchTerm,"onUpdate:searchTerm":t[9]||(t[9]=function(t){return e.searchTerm=t}),onAdd:t[10]||(t[10]=function(t){return e.addNewEntity()}),onSearch:t[11]||(t[11]=function(t){return e.searchSites(t)}),onPrev:t[12]||(t[12]=function(t){return e.previousPage()}),onNext:t[13]||(t[13]=function(t){return e.nextPage()})},null,8,["site-is-being-edited","has-prev","hasNext","offset-start","offset-end","total-number-of-sites","is-loading","search-term","is-searching"])])],512)}var _={class:"sitesButtonBar clearfix"},C={class:"search"},G=["value","placeholder","disabled"],P=["title"],D={class:"paging"},k=["disabled"],U={style:{cursor:"pointer"}},L={class:"counter"},z=["disabled"],I={style:{cursor:"pointer"},class:"pointer"};function B(e,t,n,a,i,r){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",_,[Object(l["withDirectives"])(Object(l["createElementVNode"])("a",{class:Object(l["normalizeClass"])(["btn addSite",{disabled:e.siteIsBeingEdited}]),onClick:t[0]||(t[0]=function(t){return e.addNewEntity()}),tabindex:"1"},Object(l["toDisplayString"])(e.availableTypes.length>1?e.translate("SitesManager_AddMeasurable"):e.translate("SitesManager_AddSite")),3),[[l["vShow"],e.hasSuperUserAccess&&e.availableTypes]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",C,[Object(l["createElementVNode"])("input",{value:e.searchTerm,onKeydown:t[1]||(t[1]=function(t){return e.onKeydown(t)}),placeholder:e.translate("Actions_SubmenuSitesearch"),type:"text",disabled:e.siteIsBeingEdited},null,40,G),Object(l["createElementVNode"])("img",{onClick:t[2]||(t[2]=function(t){return e.searchSite()}),title:e.translate("General_ClickToSearch"),class:"search_ico",src:"plugins/Morpheus/images/search_ico.png"},null,8,P)],512),[[l["vShow"],e.hasPrev||e.hasNext||e.isSearching]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("div",D,[Object(l["createElementVNode"])("a",{class:"btn prev",disabled:!(e.hasPrev&&!e.isLoading&&!e.siteIsBeingEdited)||void 0,onClick:t[3]||(t[3]=function(t){return e.previousPage()})},[Object(l["createElementVNode"])("span",U,"« "+Object(l["toDisplayString"])(e.translate("General_Previous")),1)],8,k),Object(l["withDirectives"])(Object(l["createElementVNode"])("span",L,[Object(l["createElementVNode"])("span",null,Object(l["toDisplayString"])(e.paginationText),1)],512),[[l["vShow"],e.hasPrev||e.hasNext]]),Object(l["createElementVNode"])("a",{class:"btn next",disabled:!(e.hasNext&&!e.isLoading&&!e.siteIsBeingEdited)||void 0,onClick:t[4]||(t[4]=function(t){return e.nextPage()})},[Object(l["createElementVNode"])("span",I,Object(l["toDisplayString"])(e.translate("General_Next"))+" »",1)],8,z)],512),[[l["vShow"],e.hasPrev||e.hasNext]])])}var H=Object(l["defineComponent"])({props:{siteIsBeingEdited:{type:Boolean,required:!0},hasPrev:{type:Boolean,required:!0},hasNext:{type:Boolean,required:!0},offsetStart:{type:Number,required:!0},offsetEnd:{type:Number,required:!0},totalNumberOfSites:{type:Number},isLoading:{type:Boolean,required:!0},searchTerm:{type:String,required:!0},isSearching:{type:Boolean,required:!0}},emits:["add","search","prev","next","update:searchTerm"],created:function(){p.init(),this.onKeydown=Object(r["debounce"])(this.onKeydown,50)},computed:{hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},availableTypes:function(){return p.types.value},paginationText:function(){var e;return e=this.isSearching?Object(r["translate"])("General_PaginationWithoutTotal","".concat(this.offsetStart),"".concat(this.offsetEnd)):Object(r["translate"])("General_Pagination","".concat(this.offsetStart),"".concat(this.offsetEnd),null===this.totalNumberOfSites?"?":"".concat(this.totalNumberOfSites))," ".concat(e," ")}},methods:{addNewEntity:function(){this.$emit("add")},searchSite:function(){this.siteIsBeingEdited||this.$emit("search")},previousPage:function(){this.$emit("prev")},nextPage:function(){this.$emit("next")},onKeydown:function(e){var t=this;setTimeout((function(){"Enter"!==e.key?t.$emit("update:searchTerm",e.target.value):t.searchSiteOnEnter(e)}))},searchSiteOnEnter:function(e){e.preventDefault(),this.searchSite()}}});H.render=B;var F=H,R=["idsite","type"],K={class:"card-content"},W={key:0,class:"row"},Q={class:"col m3"},q={class:"title"},$={class:"title"},Y=["target","title","href"],J={class:"col m4"},X={class:"title"},Z={class:"title"},ee={class:"title"},te={class:"title"},ne={class:"col m4"},ae={class:"title"},ie=Object(l["createTextVNode"])(": "),re=["href"],le={key:0},oe={class:"title"},se={key:1},ce={class:"title"},ue={key:2},de={class:"title"},be={class:"col m1 text-right"},me=["title"],pe=Object(l["createElementVNode"])("span",{class:"icon-edit"},null,-1),he=[pe],ge=["title"],fe=Object(l["createElementVNode"])("span",{class:"icon-delete"},null,-1),Se=[fe],je={key:1},Oe={class:"form-group row"},ve={class:"col s12 m6 input-field"},ye=["placeholder"],Ee=Object(l["createElementVNode"])("div",{class:"col s12 m6"},null,-1),Ne={id:"timezoneHelpText",class:"inline-help-node"},Ve={key:0},xe=Object(l["createElementVNode"])("br",null,null,-1),Te=Object(l["createElementVNode"])("br",null,null,-1),Me={class:"editingSiteFooter"},we=["value"],Ae={class:"ui-confirm"},_e=["value"],Ce=["value"];function Ge(e,t,n,a,i,r){var o,s,c,u=this,d=Object(l["resolveComponent"])("ActivityIndicator"),b=Object(l["resolveComponent"])("GroupedSettings"),m=Object(l["resolveComponent"])("Field"),p=Object(l["resolveComponent"])("MatomoDialog");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{class:Object(l["normalizeClass"])(["site card hoverable",{editingSite:!!e.editMode}]),idsite:e.theSite.idsite,type:e.theSite.type,ref:"root"},[Object(l["createElementVNode"])("div",K,[e.editMode?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",W,[Object(l["createElementVNode"])("div",Q,[Object(l["createElementVNode"])("h4",null,Object(l["toDisplayString"])(e.theSite.name),1),Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",q,Object(l["toDisplayString"])(e.translate("General_Id"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.idsite),1)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",$,Object(l["toDisplayString"])(e.translate("SitesManager_Type"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.currentType.name),1)],512),[[l["vShow"],e.availableTypes.length>1]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("a",{target:e.isInternalSetupUrl?"_self":"_blank",title:e.translate("SitesManager_ShowTrackingTag"),href:e.setupUrl},Object(l["toDisplayString"])(e.translate("SitesManager_ShowTrackingTag")),9,Y)],512),[[l["vShow"],e.theSite.idsite&&e.howToSetupUrl]])])]),Object(l["createElementVNode"])("div",J,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",X,Object(l["toDisplayString"])(e.translate("SitesManager_Timezone"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.timezone_name),1)]),Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",Z,Object(l["toDisplayString"])(e.translate("SitesManager_Currency"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.currency_name),1)]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",ee,Object(l["toDisplayString"])(e.translate("Goals_Ecommerce"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Yes")),1)],512),[[l["vShow"],1===e.theSite.ecommerce||"1"===e.theSite.ecommerce]]),Object(l["withDirectives"])(Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",te,Object(l["toDisplayString"])(e.translate("Actions_SubmenuSitesearch"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("General_Yes")),1)],512),[[l["vShow"],1===e.theSite.sitesearch||"1"===e.theSite.sitesearch]])])]),Object(l["createElementVNode"])("div",ne,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("span",ae,Object(l["toDisplayString"])(e.translate("SitesManager_Urls")),1),ie,(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.theSite.alias_urls,(function(t,n){return Object(l["openBlock"])(),Object(l["createElementBlock"])("span",{key:t},[Object(l["createElementVNode"])("a",{target:"_blank",rel:"noreferrer noopener",href:t},Object(l["toDisplayString"])(t)+Object(l["toDisplayString"])(n===e.theSite.alias_urls.length-1?"":", "),9,re)])})),128))]),null!==(o=e.theSite.excluded_ips)&&void 0!==o&&o.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",le,[Object(l["createElementVNode"])("span",oe,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedIps"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_ips.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0),null!==(s=e.theSite.excluded_parameters)&&void 0!==s&&s.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",se,[Object(l["createElementVNode"])("span",ce,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedParameters"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_parameters.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0),null!==(c=e.theSite.excluded_user_agents)&&void 0!==c&&c.length?(Object(l["openBlock"])(),Object(l["createElementBlock"])("li",ue,[Object(l["createElementVNode"])("span",de,Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedUserAgents"))+":",1),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.theSite.excluded_user_agents.split(/\s*,\s*/g).join(", ")),1)])):Object(l["createCommentVNode"])("",!0)])]),Object(l["createElementVNode"])("div",be,[Object(l["createElementVNode"])("ul",null,[Object(l["createElementVNode"])("li",null,[Object(l["createElementVNode"])("button",{class:"table-action",onClick:t[0]||(t[0]=function(t){return e.editSite()}),title:e.translate("General_Edit")},he,8,me)]),Object(l["createElementVNode"])("li",null,[Object(l["withDirectives"])(Object(l["createElementVNode"])("button",{class:"table-action",onClick:t[1]||(t[1]=function(e){return u.showRemoveDialog=!0}),title:e.translate("General_Delete")},Se,8,ge),[[l["vShow"],e.theSite.idsite]])])])])])),e.editMode?(Object(l["openBlock"])(),Object(l["createElementBlock"])("div",je,[Object(l["createElementVNode"])("div",Oe,[Object(l["createElementVNode"])("div",ve,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.theSite.name=t}),maxlength:"90",placeholder:e.translate("General_Name")},null,8,ye),[[l["vModelText"],e.theSite.name]]),Object(l["createElementVNode"])("label",null,Object(l["toDisplayString"])(e.translate("General_Name")),1)]),Ee]),Object(l["createVNode"])(d,{loading:e.isLoading},null,8,["loading"]),(Object(l["openBlock"])(!0),Object(l["createElementBlock"])(l["Fragment"],null,Object(l["renderList"])(e.measurableSettings,(function(t){return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",{key:t.pluginName},[Object(l["createVNode"])(b,{"group-name":t.pluginName,settings:t.settings,"all-setting-values":e.settingValues,onChange:function(n){return e.settingValues["".concat(t.pluginName,".").concat(n.name)]=n.value}},null,8,["group-name","settings","all-setting-values","onChange"])])})),128)),Object(l["createVNode"])(m,{uicontrol:"select",name:"currency",modelValue:e.theSite.currency,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.theSite.currency=t}),title:e.translate("SitesManager_Currency"),"inline-help":e.translate("SitesManager_CurrencySymbolWillBeUsedForGoals"),options:e.currencies},null,8,["modelValue","title","inline-help","options"]),Object(l["createVNode"])(m,{uicontrol:"select",name:"timezone",modelValue:e.theSite.timezone,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.theSite.timezone=t}),title:e.translate("SitesManager_Timezone"),"inline-help":"#timezoneHelpText",options:e.timezones},null,8,["modelValue","title","options"]),Object(l["createElementVNode"])("div",Ne,[Object(l["createElementVNode"])("div",null,[e.timezoneSupportEnabled?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",Ve,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_AdvancedTimezoneSupportNotFound"))+" ",1),xe])),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.utcTimeIs)+" ",1),Te,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward")),1)])]),Object(l["createElementVNode"])("div",Me,[Object(l["withDirectives"])(Object(l["createElementVNode"])("input",{type:"submit",class:"btn",value:e.translate("General_Save"),onClick:t[5]||(t[5]=function(t){return e.saveSite()})},null,8,we),[[l["vShow"],!e.isLoading]]),Object(l["createElementVNode"])("button",{class:"btn btn-link",onClick:t[6]||(t[6]=function(t){return e.cancelEditSite(e.site)})},Object(l["toDisplayString"])(e.translate("General_Cancel","","")),1)])])):Object(l["createCommentVNode"])("",!0)]),Object(l["createVNode"])(p,{modelValue:e.showRemoveDialog,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.showRemoveDialog=t}),onYes:t[8]||(t[8]=function(t){return e.deleteSite()})},{default:Object(l["withCtx"])((function(){return[Object(l["createElementVNode"])("div",Ae,[Object(l["createElementVNode"])("h2",null,Object(l["toDisplayString"])(e.removeDialogTitle),1),Object(l["createElementVNode"])("p",null,Object(l["toDisplayString"])(e.translate("SitesManager_DeleteSiteExplanation")),1),Object(l["createElementVNode"])("input",{type:"button",value:e.translate("General_Yes"),role:"yes"},null,8,_e),Object(l["createElementVNode"])("input",{type:"button",value:e.translate("General_No"),role:"no"},null,8,Ce)])]})),_:1},8,["modelValue"])],10,R)}var Pe=n("a5a2");function De(e,t){return Ie(e)||ze(e,t)||Ue(e,t)||ke()}function ke(){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 Ue(e,t){if(e){if("string"===typeof e)return Le(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)?Le(e,t):void 0}}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function ze(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r=[],l=!0,o=!1;try{for(n=n.call(e);!(l=(a=n.next()).done);l=!0)if(r.push(a.value),t&&r.length===t)break}catch(s){o=!0,i=s}finally{try{l||null==n["return"]||n["return"]()}finally{if(o)throw i}}return r}}function Ie(e){if(Array.isArray(e))return e}function Be(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function He(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Fe(e,t,n){return t&&He(e.prototype,t),n&&He(e,n),e}function Re(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 We=function(){function e(){var t=this;Be(this,e),Ke(this,"privateState",Object(l["reactive"])({isLoading:!1,timezones:[],timezoneSupportEnabled:!1})),Ke(this,"state",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState)}))),Ke(this,"timezones",Object(l["computed"])((function(){return t.state.value.timezones}))),Ke(this,"timezoneSupportEnabled",Object(l["computed"])((function(){return t.state.value.timezoneSupportEnabled}))),Ke(this,"isLoading",Object(l["computed"])((function(){return t.state.value.isLoading}))),Ke(this,"initializePromise",null)}return Fe(e,[{key:"init",value:function(){var e=this;return this.initializePromise||(this.privateState.isLoading=!0,this.initializePromise=Promise.all([this.checkTimezoneSupportEnabled(),this.fetchTimezones()]).finally((function(){e.privateState.isLoading=!1}))),this.initializePromise}},{key:"fetchTimezones",value:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.getTimezonesList"}).then((function(t){var n=[];Object.entries(t).forEach((function(e){var t=ke(e,2),a=t[0],i=t[1];Object.entries(i).forEach((function(e){var t=ke(e,2),i=t[0],r=t[1];n.push({group:a,label:i,code:r})}))})),e.privateState.timezones=n}))}},{key:"checkTimezoneSupportEnabled",value:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.isTimezoneSupportEnabled"}).then((function(t){e.privateState.timezoneSupportEnabled=t.value}))}}]),e}(),Re=new We;function Qe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function $e(e,t,n){return t&&qe(e.prototype,t),n&&qe(e,n),e}function Ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */var Ke=function(){function e(){var t=this;Be(this,e),Re(this,"privateState",Object(l["reactive"])({isLoading:!1,timezones:[],timezoneSupportEnabled:!1})),Re(this,"state",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState)}))),Re(this,"timezones",Object(l["computed"])((function(){return t.state.value.timezones}))),Re(this,"timezoneSupportEnabled",Object(l["computed"])((function(){return t.state.value.timezoneSupportEnabled}))),Re(this,"isLoading",Object(l["computed"])((function(){return t.state.value.isLoading}))),Re(this,"initializePromise",null)}return Fe(e,[{key:"init",value:function(){var e=this;return this.initializePromise||(this.privateState.isLoading=!0,this.initializePromise=Promise.all([this.checkTimezoneSupportEnabled(),this.fetchTimezones()]).finally((function(){e.privateState.isLoading=!1}))),this.initializePromise}},{key:"fetchTimezones",value:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.getTimezonesList"}).then((function(t){var n=[];Object.entries(t).forEach((function(e){var t=De(e,2),a=t[0],i=t[1];Object.entries(i).forEach((function(e){var t=De(e,2),i=t[0],r=t[1];n.push({group:a,label:i,code:r})}))})),e.privateState.timezones=n}))}},{key:"checkTimezoneSupportEnabled",value:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.isTimezoneSupportEnabled"}).then((function(t){e.privateState.timezoneSupportEnabled=t.value}))}}]),e}(),We=new Ke;function Qe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function $e(e,t,n){return t&&qe(e.prototype,t),n&&qe(e,n),e}function Ye(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 Je=function(){function e(){var t=this;Qe(this,e),Ye(this,"privateState",Object(l["reactive"])({isLoading:!1,currencies:{}})),Ye(this,"currencies",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).currencies}))),Ye(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).isLoading}))),Ye(this,"initializePromise",null)}return $e(e,[{key:"init",value:function(){return this.initializePromise||(this.initializePromise=this.fetchCurrencies()),this.initializePromise}},{key:"fetchCurrencies",value:function(){var e=this;return this.privateState.isLoading=!0,r["AjaxHelper"].fetch({method:"SitesManager.getCurrencyList"}).then((function(t){e.privateState.currencies=t})).finally((function(){e.privateState.isLoading=!1}))}}]),e}(),Xe=new Je;function Ze(e,t){return it(e)||at(e,t)||tt(e,t)||et()}function et(){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 tt(e,t){if(e){if("string"===typeof e)return nt(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)?nt(e,t):void 0}}function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function at(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r=[],l=!0,o=!1;try{for(n=n.call(e);!(l=(a=n.next()).done);l=!0)if(r.push(a.value),t&&r.length===t)break}catch(s){o=!0,i=s}finally{try{l||null==n["return"]||n["return"]()}finally{if(o)throw i}}return r}}function it(e){if(Array.isArray(e))return e}var rt=Object(l["computed"])((function(){return Re.timezones.value.map((function(e){var t=e.group,n=e.label,a=e.code;return{group:t,key:n,value:a}}))}));function lt(e){return"undefined"===typeof e.idsite}var ot=Object(l["defineComponent"])({props:{site:{type:Object,required:!0},timezoneSupportEnabled:{type:Boolean},utcTime:{type:Date,required:!0},globalSettings:{type:Object,required:!0}},data:function(){return{isLoading:!1,editMode:!1,theSite:Object.assign({},this.site),measurableSettings:[],settingValues:{},showRemoveDialog:!1}},components:{MatomoDialog:r["MatomoDialog"],Field:De["Field"],GroupedSettings:De["GroupedSettings"],ActivityIndicator:r["ActivityIndicator"]},emits:["delete","editSite","cancelEditSite","save"],created:function(){Xe.init(),Re.init(),h.init(),this.onSiteChanged()},watch:{site:function(){this.onSiteChanged()},measurableSettings:function(e){if(e.length){var t={};e.forEach((function(e){e.settings.forEach((function(n){t["".concat(e.pluginName,".").concat(n.name)]=n.value}))})),this.settingValues=t}}},methods:{onSiteChanged:function(){var e=this.site;this.theSite=Object.assign({},e);var t=lt(e);if(t){var n=this.globalSettings;this.theSite.timezone=n.defaultTimezone,this.theSite.currency=n.defaultCurrency}var a=h.getEditSiteIdParameter();(t||a&&"".concat(e.idsite)===a)&&this.editSite()},editSite:function(){var e=this;if(this.editMode=!0,this.$emit("editSite",{idSite:this.theSite.idsite}),this.measurableSettings=[],lt(this.theSite)){if(!this.currentType)return;this.measurableSettings=this.currentType.settings||[]}else this.isLoading=!0,r["AjaxHelper"].fetch({method:"SitesManager.getSiteSettings",idSite:this.theSite.idsite}).then((function(t){e.measurableSettings=t})).finally((function(){e.isLoading=!1}))},saveSite:function(){var e=this,t={siteName:this.theSite.name,timezone:this.theSite.timezone,currency:this.theSite.currency,type:this.theSite.type,settingValues:{}},n=lt(this.theSite),a="SitesManager.addSite";n||(a="SitesManager.updateSite",t.idSite=this.theSite.idsite),Object.entries(this.settingValues).forEach((function(e){var n=Ze(e,2),a=n[0],i=n[1],r=a.split("."),l=Ze(r,2),o=l[0],s=l[1],c=t.settingValues;c[o]||(c[o]=[]);var u=i;!1===i?u="0":!0===i?u="1":Array.isArray(i)&&(u=i.filter((function(e){return!!e}))),c[o].push({name:s,value:u})})),r["AjaxHelper"].post({method:a},t).then((function(a){e.editMode=!1,!e.theSite.idsite&&a&&a.value&&(e.theSite.idsite="".concat(a.value));var i=Re.timezones.value.find((function(t){return t.code===e.theSite.timezone}));e.theSite.timezone_name=(null===i||void 0===i?void 0:i.label)||e.theSite.timezone,e.theSite.currency&&(e.theSite.currency_name=Xe.currencies.value[e.theSite.currency]);var l=r["NotificationsStore"].show({message:n?Object(r["translate"])("SitesManager_WebsiteCreated"):Object(r["translate"])("SitesManager_WebsiteUpdated"),context:"success",id:"websitecreated",type:"transient"});r["NotificationsStore"].scrollToNotification(l),h.removeEditSiteIdParameterFromHash(),e.$emit("save",{site:e.theSite,settingValues:t.settingValues,isNew:n})}))},cancelEditSite:function(e){this.editMode=!1,h.removeEditSiteIdParameterFromHash(),this.$emit("cancelEditSite",{site:e,element:this.$refs.root})},deleteSite:function(){var e=this;r["AjaxHelper"].fetch({idSite:this.theSite.idsite,module:"API",format:"json",method:"SitesManager.deleteSite"}).then((function(){e.$emit("delete",e.theSite)}))}},computed:{availableTypes:function(){return h.types.value},setupUrl:function(){var e=this.theSite,t="",n="";return this.isInternalSetupUrl&&(t=r["MatomoUrl"].stringify({idSite:e.idsite,period:r["MatomoUrl"].parsed.value.period,date:r["MatomoUrl"].parsed.value.date,updated:"false"}),n=-1===this.howToSetupUrl.indexOf("?")?"?":"&"),"".concat(this.howToSetupUrl).concat(n).concat(t)},utcTimeIs:function(){var e=this.utcTime,t=function(e){return e.toString().padStart(2,"0")},n=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds()),l="".concat(Object(r["format"])(this.utcTime)," ").concat(n,":").concat(a,":").concat(i);return Object(r["translate"])("SitesManager_UTCTimeIs",l)},timezones:function(){return rt.value},currencies:function(){return Xe.currencies.value},currentType:function(){var e=this.site,t=h.typesById.value[e.type];return t||{name:e.type}},howToSetupUrl:function(){var e=this.currentType;if(e)return e.howToSetupUrl},isInternalSetupUrl:function(){var e=this.howToSetupUrl;return!!e&&"?"==="".concat(e).substring(0,1)},removeDialogTitle:function(){return Object(r["translate"])("SitesManager_DeleteConfirm",'"'.concat(this.theSite.name,'" (idSite = ').concat(this.theSite.idsite,")"))}}});ot.render=Pe;var st=ot;function ct(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ut(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function dt(e,t,n){return t&&ut(e.prototype,t),n&&ut(e,n),e}function bt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}
+ */var Je=function(){function e(){var t=this;Qe(this,e),Ye(this,"privateState",Object(l["reactive"])({isLoading:!1,currencies:{}})),Ye(this,"currencies",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).currencies}))),Ye(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).isLoading}))),Ye(this,"initializePromise",null)}return $e(e,[{key:"init",value:function(){return this.initializePromise||(this.initializePromise=this.fetchCurrencies()),this.initializePromise}},{key:"fetchCurrencies",value:function(){var e=this;return this.privateState.isLoading=!0,r["AjaxHelper"].fetch({method:"SitesManager.getCurrencyList"}).then((function(t){e.privateState.currencies=t})).finally((function(){e.privateState.isLoading=!1}))}}]),e}(),Xe=new Je;function Ze(e,t){return it(e)||at(e,t)||tt(e,t)||et()}function et(){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 tt(e,t){if(e){if("string"===typeof e)return nt(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)?nt(e,t):void 0}}function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function at(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r=[],l=!0,o=!1;try{for(n=n.call(e);!(l=(a=n.next()).done);l=!0)if(r.push(a.value),t&&r.length===t)break}catch(s){o=!0,i=s}finally{try{l||null==n["return"]||n["return"]()}finally{if(o)throw i}}return r}}function it(e){if(Array.isArray(e))return e}var rt=Object(l["computed"])((function(){return We.timezones.value.map((function(e){var t=e.group,n=e.label,a=e.code;return{group:t,key:n,value:a}}))}));function lt(e){return"undefined"===typeof e.idsite}var ot=Object(l["defineComponent"])({props:{site:{type:Object,required:!0},timezoneSupportEnabled:{type:Boolean},utcTime:{type:Date,required:!0},globalSettings:{type:Object,required:!0}},data:function(){return{isLoading:!1,editMode:!1,theSite:Object.assign({},this.site),measurableSettings:[],settingValues:{},showRemoveDialog:!1}},components:{MatomoDialog:r["MatomoDialog"],Field:Pe["Field"],GroupedSettings:Pe["GroupedSettings"],ActivityIndicator:r["ActivityIndicator"]},emits:["delete","editSite","cancelEditSite","save"],created:function(){Xe.init(),We.init(),p.init(),this.onSiteChanged()},watch:{site:function(){this.onSiteChanged()},measurableSettings:function(e){if(e.length){var t={};e.forEach((function(e){e.settings.forEach((function(n){t["".concat(e.pluginName,".").concat(n.name)]=n.value}))})),this.settingValues=t}}},methods:{onSiteChanged:function(){var e=this.site;this.theSite=Object.assign({},e);var t=lt(e);if(t){var n=this.globalSettings;this.theSite.timezone=n.defaultTimezone,this.theSite.currency=n.defaultCurrency}var a=p.getEditSiteIdParameter();(t||a&&"".concat(e.idsite)===a)&&this.editSite()},editSite:function(){var e=this;if(this.editMode=!0,this.$emit("editSite",{idSite:this.theSite.idsite}),this.measurableSettings=[],lt(this.theSite)){if(!this.currentType)return;this.measurableSettings=this.currentType.settings||[]}else this.isLoading=!0,r["AjaxHelper"].fetch({method:"SitesManager.getSiteSettings",idSite:this.theSite.idsite}).then((function(t){e.measurableSettings=t})).finally((function(){e.isLoading=!1}))},saveSite:function(){var e=this,t={siteName:this.theSite.name,timezone:this.theSite.timezone,currency:this.theSite.currency,type:this.theSite.type,settingValues:{}},n=lt(this.theSite),a="SitesManager.addSite";n||(a="SitesManager.updateSite",t.idSite=this.theSite.idsite),Object.entries(this.settingValues).forEach((function(e){var n=Ze(e,2),a=n[0],i=n[1],r=a.split("."),l=Ze(r,2),o=l[0],s=l[1],c=t.settingValues;c[o]||(c[o]=[]);var u=i;!1===i?u="0":!0===i?u="1":Array.isArray(i)&&(u=i.filter((function(e){return!!e}))),c[o].push({name:s,value:u})})),r["AjaxHelper"].post({method:a},t).then((function(a){e.editMode=!1,!e.theSite.idsite&&a&&a.value&&(e.theSite.idsite="".concat(a.value));var i=We.timezones.value.find((function(t){return t.code===e.theSite.timezone}));e.theSite.timezone_name=(null===i||void 0===i?void 0:i.label)||e.theSite.timezone,e.theSite.currency&&(e.theSite.currency_name=Xe.currencies.value[e.theSite.currency]);var l=r["NotificationsStore"].show({message:n?Object(r["translate"])("SitesManager_WebsiteCreated"):Object(r["translate"])("SitesManager_WebsiteUpdated"),context:"success",id:"websitecreated",type:"transient"});r["NotificationsStore"].scrollToNotification(l),p.removeEditSiteIdParameterFromHash(),e.$emit("save",{site:e.theSite,settingValues:t.settingValues,isNew:n})}))},cancelEditSite:function(e){this.editMode=!1,p.removeEditSiteIdParameterFromHash(),this.$emit("cancelEditSite",{site:e,element:this.$refs.root})},deleteSite:function(){var e=this;r["AjaxHelper"].fetch({idSite:this.theSite.idsite,module:"API",format:"json",method:"SitesManager.deleteSite"}).then((function(){e.$emit("delete",e.theSite)}))}},computed:{availableTypes:function(){return p.types.value},setupUrl:function(){var e=this.theSite,t="",n="";return this.isInternalSetupUrl&&(t=r["MatomoUrl"].stringify({idSite:e.idsite,period:r["MatomoUrl"].parsed.value.period,date:r["MatomoUrl"].parsed.value.date,updated:"false"}),n=-1===this.howToSetupUrl.indexOf("?")?"?":"&"),"".concat(this.howToSetupUrl).concat(n).concat(t)},utcTimeIs:function(){var e=this.utcTime,t=function(e){return e.toString().padStart(2,"0")},n=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds()),l="".concat(Object(r["format"])(this.utcTime)," ").concat(n,":").concat(a,":").concat(i);return Object(r["translate"])("SitesManager_UTCTimeIs",l)},timezones:function(){return rt.value},currencies:function(){return Xe.currencies.value},currentType:function(){var e=this.site,t=p.typesById.value[e.type];return t||{name:e.type}},howToSetupUrl:function(){var e=this.currentType;if(e)return e.howToSetupUrl},isInternalSetupUrl:function(){var e=this.howToSetupUrl;return!!e&&"?"==="".concat(e).substring(0,1)},removeDialogTitle:function(){return Object(r["translate"])("SitesManager_DeleteConfirm",'"'.concat(this.theSite.name,'" (idSite = ').concat(this.theSite.idsite,")"))}}});ot.render=Ge;var st=ot;function ct(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ut(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function dt(e,t,n){return t&&ut(e.prototype,t),n&&ut(e,n),e}function bt(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 mt=function(){function e(){var t=this;ct(this,e),bt(this,"privateState",Object(l["reactive"])({isLoading:!1,globalSettings:{keepURLFragmentsGlobal:!1,defaultCurrency:"",defaultTimezone:"",excludedIpsGlobal:"",excludedQueryParametersGlobal:"",excludedUserAgentsGlobal:"",searchKeywordParametersGlobal:"",searchCategoryParametersGlobal:""}})),bt(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).isLoading}))),bt(this,"globalSettings",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).globalSettings})))}return dt(e,[{key:"init",value:function(){return this.fetchGlobalSettings()}},{key:"saveGlobalSettings",value:function(e){var t=this;return this.privateState.isLoading=!0,r["AjaxHelper"].post({module:"SitesManager",format:"json",action:"setGlobalSettings"},e,{withTokenInUrl:!0}).finally((function(){t.privateState.isLoading=!1}))}},{key:"fetchGlobalSettings",value:function(){var e=this;this.privateState.isLoading=!0,r["AjaxHelper"].fetch({module:"SitesManager",action:"getGlobalSettings"}).then((function(t){e.privateState.globalSettings=Object.assign(Object.assign({},t),{},{excludedIpsGlobal:t.excludedIpsGlobal||"",excludedQueryParametersGlobal:t.excludedQueryParametersGlobal||"",excludedUserAgentsGlobal:t.excludedUserAgentsGlobal||"",searchKeywordParametersGlobal:t.searchKeywordParametersGlobal||"",searchCategoryParametersGlobal:t.searchCategoryParametersGlobal||""})})).finally((function(){e.privateState.isLoading=!1}))}}]),e}(),ht=new mt,pt=Object(l["defineComponent"])({props:{dummy:String},components:{MatomoDialog:r["MatomoDialog"],ButtonBar:F,SiteFields:st,EnrichedHeadline:r["EnrichedHeadline"]},directives:{ContentIntro:r["ContentIntro"]},data:function(){var e=new Date,t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());return{pageSize:10,currentPage:0,showAddSiteDialog:!1,searchTerm:"",activeSearchTerm:"",fetchedSites:[],isLoadingInitialEntities:!1,utcTime:t,totalNumberOfSites:null,isSiteBeingEdited:!1,fetchLimitedSitesAbortController:null}},created:function(){var e=this;Re.init(),h.init(),ht.init(),this.isLoadingInitialEntities=!0,Promise.all([h.fetchAvailableTypes(),this.fetchLimitedSitesWithAdminAccess(),this.getTotalNumberOfSites()]).then((function(){e.triggerAddSiteIfRequested()})).finally((function(){e.isLoadingInitialEntities=!1})),Object(l["watch"])((function(){return r["MatomoUrl"].hashQuery.value}),(function(){e.checkGlobalSettingsHash()}))},computed:{sites:function(){var e=this.fetchedSites.filter((function(e){return!e.idsite})).length;return this.fetchedSites.slice(0,this.pageSize+e)},isLoading:function(){return!!this.fetchLimitedSitesAbortController||this.isLoadingInitialEntities||null===this.totalNumberOfSites||h.isLoading.value||Re.isLoading.value||ht.isLoading.value},availableTypes:function(){return h.types.value},timezoneSupportEnabled:function(){return Re.timezoneSupportEnabled.value},globalSettings:function(){return ht.globalSettings.value},headlineText:function(){return Object(r["translate"])("SitesManager_XManagement",this.availableTypes.length>1?Object(r["translate"])("General_Measurables"):Object(r["translate"])("SitesManager_Sites"))},mainDescription:function(){return Object(r["translate"])("SitesManager_YouCurrentlyHaveAccessToNWebsites","<strong>".concat(this.totalNumberOfSites,"</strong>"))},hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},superUserAccessMessage:function(){return Object(r["translate"])("SitesManager_SuperUserAccessCan","<a href='#globalSettings'>","</a>")},hasPrev:function(){return this.currentPage>=1},hasNext:function(){return this.fetchedSites.filter((function(e){return!!e.idsite})).length>=this.pageSize+1},offsetStart:function(){return this.currentPage*this.pageSize+1},offsetEnd:function(){return this.offsetStart+this.sites.filter((function(e){return!!e.idsite})).length-1}},methods:{checkGlobalSettingsHash:function(){var e=r["MatomoUrl"].hashQuery.value;!r["Matomo"].hasSuperUserAccess||"globalSettings"!==e&&"/globalSettings"!==e||r["MatomoUrl"].updateLocation(Object.assign(Object.assign({},r["MatomoUrl"].urlParsed.value),{},{action:"globalSettings"}))},addNewEntity:function(){this.availableTypes.length>1?this.showAddSiteDialog=!0:1===this.availableTypes.length&&this.addSite(this.availableTypes[0].id)},addSite:function(e){var t=e,n={isAllowed:!0,measurableType:t};r["Matomo"].postEvent("SitesManager.initAddSite",n),n&&!n.isAllowed||(t||(t="website"),this.fetchedSites.unshift({type:t}),this.isSiteBeingEdited=!0)},afterCancelEdit:function(e){var t=e.site,n=e.element;this.isSiteBeingEdited=!1,t.idsite?n.scrollIntoView():this.fetchedSites=this.fetchedSites.filter((function(e){return!!e.idsite}))},fetchLimitedSitesWithAdminAccess:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.fetchLimitedSitesAbortController&&this.fetchLimitedSitesAbortController.abort(),this.fetchLimitedSitesAbortController=new AbortController;var n=this.pageSize+1,a=this.currentPage*this.pageSize,i={method:"SitesManager.getSitesWithAdminAccess",fetchAliasUrls:1,limit:n+a,filter_offset:a,filter_limit:n};return t&&(i.pattern=t),r["AjaxHelper"].fetch(i).then((function(t){e.fetchedSites=t||[]})).then((function(n){return e.activeSearchTerm=t,n})).finally((function(){e.fetchLimitedSitesAbortController=null}))},getTotalNumberOfSites:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.getSitesIdWithAdminAccess",filter_limit:"-1"}).then((function(t){e.totalNumberOfSites=t.length}))},triggerAddSiteIfRequested:function(){var e=h.getEditSiteIdParameter(),t=r["MatomoUrl"].urlParsed.value.showaddsite;"1"===t?this.addNewEntity():e&&(this.searchTerm=e,this.fetchLimitedSitesWithAdminAccess(this.searchTerm))},previousPage:function(){this.currentPage=Math.max(0,this.currentPage-1),this.fetchLimitedSitesWithAdminAccess(this.activeSearchTerm)},nextPage:function(){this.currentPage=Math.max(0,this.currentPage+1),this.fetchLimitedSitesWithAdminAccess(this.activeSearchTerm)},searchSites:function(){this.currentPage=0,this.fetchLimitedSitesWithAdminAccess(this.searchTerm)},afterDelete:function(e){var t={showaddsite:0};if(r["MatomoUrl"].urlParsed.value.idSite==="".concat(e.idsite)){var n=this.sites.find((function(t){return t.idsite!==e.idsite}));n&&(t=Object.assign(Object.assign({},t),{},{idSite:n.idsite}))}r["Matomo"].helper.redirect(t)},afterSave:function(e,t,n,a){var i=["excluded_ips","excluded_parameters","excluded_user_agents","sitesearch_keyword_parameters","sitesearch_category_parameters"],r=Object.assign({},e);Object.values(t).forEach((function(e){e.forEach((function(e){"urls"===e.name?r.alias_urls=e.value:-1!==i.indexOf(e.name)?r[e.name]=e.value.join(", "):r[e.name]=e.value}))})),this.fetchedSites[n]=r,a&&null!==this.totalNumberOfSites&&(this.totalNumberOfSites+=1),this.isSiteBeingEdited=!1}}});pt.render=A;var gt=pt;
+ */var mt=function(){function e(){var t=this;ct(this,e),bt(this,"privateState",Object(l["reactive"])({isLoading:!1,globalSettings:{keepURLFragmentsGlobal:!1,defaultCurrency:"",defaultTimezone:"",excludedIpsGlobal:"",excludedQueryParametersGlobal:"",excludedUserAgentsGlobal:"",excludedReferrersGlobal:"",searchKeywordParametersGlobal:"",searchCategoryParametersGlobal:""}})),bt(this,"isLoading",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).isLoading}))),bt(this,"globalSettings",Object(l["computed"])((function(){return Object(l["readonly"])(t.privateState).globalSettings})))}return dt(e,[{key:"init",value:function(){return this.fetchGlobalSettings()}},{key:"saveGlobalSettings",value:function(e){var t=this;return this.privateState.isLoading=!0,r["AjaxHelper"].post({module:"SitesManager",format:"json",action:"setGlobalSettings"},e,{withTokenInUrl:!0}).finally((function(){t.privateState.isLoading=!1}))}},{key:"fetchGlobalSettings",value:function(){var e=this;this.privateState.isLoading=!0,r["AjaxHelper"].fetch({module:"SitesManager",action:"getGlobalSettings"}).then((function(t){e.privateState.globalSettings=Object.assign(Object.assign({},t),{},{excludedIpsGlobal:t.excludedIpsGlobal||"",excludedQueryParametersGlobal:t.excludedQueryParametersGlobal||"",excludedUserAgentsGlobal:t.excludedUserAgentsGlobal||"",excludedReferrersGlobal:t.excludedReferrersGlobal||"",searchKeywordParametersGlobal:t.searchKeywordParametersGlobal||"",searchCategoryParametersGlobal:t.searchCategoryParametersGlobal||""})})).finally((function(){e.privateState.isLoading=!1}))}}]),e}(),pt=new mt,ht=Object(l["defineComponent"])({props:{dummy:String},components:{MatomoDialog:r["MatomoDialog"],ButtonBar:F,SiteFields:st,EnrichedHeadline:r["EnrichedHeadline"]},directives:{ContentIntro:r["ContentIntro"]},data:function(){var e=new Date,t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());return{pageSize:10,currentPage:0,showAddSiteDialog:!1,searchTerm:"",activeSearchTerm:"",fetchedSites:[],isLoadingInitialEntities:!1,utcTime:t,totalNumberOfSites:null,isSiteBeingEdited:!1,fetchLimitedSitesAbortController:null}},created:function(){var e=this;We.init(),p.init(),pt.init(),this.isLoadingInitialEntities=!0,Promise.all([p.fetchAvailableTypes(),this.fetchLimitedSitesWithAdminAccess(),this.getTotalNumberOfSites()]).then((function(){e.triggerAddSiteIfRequested()})).finally((function(){e.isLoadingInitialEntities=!1})),Object(l["watch"])((function(){return r["MatomoUrl"].hashQuery.value}),(function(){e.checkGlobalSettingsHash()}))},computed:{sites:function(){var e=this.fetchedSites.filter((function(e){return!e.idsite})).length;return this.fetchedSites.slice(0,this.pageSize+e)},isLoading:function(){return!!this.fetchLimitedSitesAbortController||this.isLoadingInitialEntities||null===this.totalNumberOfSites||p.isLoading.value||We.isLoading.value||pt.isLoading.value},availableTypes:function(){return p.types.value},timezoneSupportEnabled:function(){return We.timezoneSupportEnabled.value},globalSettings:function(){return pt.globalSettings.value},headlineText:function(){return Object(r["translate"])("SitesManager_XManagement",this.availableTypes.length>1?Object(r["translate"])("General_Measurables"):Object(r["translate"])("SitesManager_Sites"))},mainDescription:function(){return Object(r["translate"])("SitesManager_YouCurrentlyHaveAccessToNWebsites","<strong>".concat(this.totalNumberOfSites,"</strong>"))},hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},superUserAccessMessage:function(){return Object(r["translate"])("SitesManager_SuperUserAccessCan","<a href='#globalSettings'>","</a>")},hasPrev:function(){return this.currentPage>=1},hasNext:function(){return this.fetchedSites.filter((function(e){return!!e.idsite})).length>=this.pageSize+1},offsetStart:function(){return this.currentPage*this.pageSize+1},offsetEnd:function(){return this.offsetStart+this.sites.filter((function(e){return!!e.idsite})).length-1}},methods:{checkGlobalSettingsHash:function(){var e=r["MatomoUrl"].hashQuery.value;!r["Matomo"].hasSuperUserAccess||"globalSettings"!==e&&"/globalSettings"!==e||r["MatomoUrl"].updateLocation(Object.assign(Object.assign({},r["MatomoUrl"].urlParsed.value),{},{action:"globalSettings"}))},addNewEntity:function(){this.availableTypes.length>1?this.showAddSiteDialog=!0:1===this.availableTypes.length&&this.addSite(this.availableTypes[0].id)},addSite:function(e){var t=e,n={isAllowed:!0,measurableType:t};r["Matomo"].postEvent("SitesManager.initAddSite",n),n&&!n.isAllowed||(t||(t="website"),this.fetchedSites.unshift({type:t}),this.isSiteBeingEdited=!0)},afterCancelEdit:function(e){var t=e.site,n=e.element;this.isSiteBeingEdited=!1,t.idsite?n.scrollIntoView():this.fetchedSites=this.fetchedSites.filter((function(e){return!!e.idsite}))},fetchLimitedSitesWithAdminAccess:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.fetchLimitedSitesAbortController&&this.fetchLimitedSitesAbortController.abort(),this.fetchLimitedSitesAbortController=new AbortController;var n=this.pageSize+1,a=this.currentPage*this.pageSize,i={method:"SitesManager.getSitesWithAdminAccess",fetchAliasUrls:1,limit:n+a,filter_offset:a,filter_limit:n};return t&&(i.pattern=t),r["AjaxHelper"].fetch(i).then((function(t){e.fetchedSites=t||[]})).then((function(n){return e.activeSearchTerm=t,n})).finally((function(){e.fetchLimitedSitesAbortController=null}))},getTotalNumberOfSites:function(){var e=this;return r["AjaxHelper"].fetch({method:"SitesManager.getSitesIdWithAdminAccess",filter_limit:"-1"}).then((function(t){e.totalNumberOfSites=t.length}))},triggerAddSiteIfRequested:function(){var e=p.getEditSiteIdParameter(),t=r["MatomoUrl"].urlParsed.value.showaddsite;"1"===t?this.addNewEntity():e&&(this.searchTerm=e,this.fetchLimitedSitesWithAdminAccess(this.searchTerm))},previousPage:function(){this.currentPage=Math.max(0,this.currentPage-1),this.fetchLimitedSitesWithAdminAccess(this.activeSearchTerm)},nextPage:function(){this.currentPage=Math.max(0,this.currentPage+1),this.fetchLimitedSitesWithAdminAccess(this.activeSearchTerm)},searchSites:function(){this.currentPage=0,this.fetchLimitedSitesWithAdminAccess(this.searchTerm)},afterDelete:function(e){var t={showaddsite:0};if(r["MatomoUrl"].urlParsed.value.idSite==="".concat(e.idsite)){var n=this.sites.find((function(t){return t.idsite!==e.idsite}));n&&(t=Object.assign(Object.assign({},t),{},{idSite:n.idsite}))}r["Matomo"].helper.redirect(t)},afterSave:function(e,t,n,a){var i=["excluded_ips","excluded_parameters","excluded_user_agents","sitesearch_keyword_parameters","sitesearch_category_parameters"],r=Object.assign({},e);Object.values(t).forEach((function(e){e.forEach((function(e){"urls"===e.name?r.alias_urls=e.value:-1!==i.indexOf(e.name)?r[e.name]=e.value.join(", "):r[e.name]=e.value}))})),this.fetchedSites[n]=r,a&&null!==this.totalNumberOfSites&&(this.totalNumberOfSites+=1),this.isSiteBeingEdited=!1}}});ht.render=A;var gt=ht;
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */Object(r["createAngularJsAdapter"])({component:gt,scope:{},directiveName:"matomoSitesManagement"});window.angular.module("piwikApp").factory("sitesManagerAPI",(function(){return{}}));var ft={class:"SitesManager"},St=Object(l["createElementVNode"])("a",{name:"globalSettings",id:"globalSettings"},null,-1),vt={id:"excludedIpsGlobalHelp",class:"inline-help-node"},jt=Object(l["createElementVNode"])("br",null,null,-1),Ot=Object(l["createElementVNode"])("br",null,null,-1),yt=["innerHTML"],Et={id:"excludedQueryParametersGlobalHelp",class:"inline-help-node"},Nt=Object(l["createElementVNode"])("br",null,null,-1),Vt=Object(l["createElementVNode"])("br",null,null,-1),Tt={id:"excludedUserAgentsGlobalHelp",class:"inline-help-node"},xt=Object(l["createElementVNode"])("br",null,null,-1),Mt=Object(l["createElementVNode"])("br",null,null,-1),wt={id:"timezoneHelp",class:"inline-help-node"},At={key:0},Ct=Object(l["createElementVNode"])("br",null,null,-1),_t=Object(l["createElementVNode"])("br",null,null,-1),Pt={id:"keepURLFragmentsHelp",class:"inline-help-node"},Dt=["innerHTML"],kt={class:"alert alert-info"};function Gt(e,t,n,a,i,r){var o=Object(l["resolveComponent"])("Field"),s=Object(l["resolveComponent"])("SaveButton"),c=Object(l["resolveComponent"])("ContentBlock");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ft,[Object(l["withDirectives"])(Object(l["createVNode"])(c,{"content-title":e.translate("SitesManager_GlobalWebsitesSettings")},{default:Object(l["withCtx"])((function(){return[St,Object(l["createElementVNode"])("div",vt,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_HelpExcludedIpAddresses","1.2.3.4/24","1.2.3.*","1.2.*.*"))+" ",1),jt,Ot,Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.yourCurrentIpAddressIs)},null,8,yt)])]),Object(l["createElementVNode"])("div",Et,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_ListOfQueryParametersToExclude","/^sess.*|.*[dD]ate$/"))+" ",1),Nt,Vt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters","phpsessid, sessionid, ...")),1)])]),Object(l["createElementVNode"])("div",Tt,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp1"))+" ",1),xt,Mt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalListExcludedUserAgents_Desc"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp2"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp3","/bot|spider|crawl|scanner/i")),1)])]),Object(l["createElementVNode"])("div",wt,[Object(l["createElementVNode"])("div",null,[e.timezoneSupportEnabled?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",At,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_AdvancedTimezoneSupportNotFound"))+" ",1),Ct])),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_UTCTimeIs",e.utcTimeDate))+" ",1),_t,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward")),1)])]),Object(l["createElementVNode"])("div",Pt,[Object(l["createElementVNode"])("div",{innerHTML:e.$sanitize(e.keepUrlFragmentHelp)},null,8,Dt),Object(l["createElementVNode"])("div",null,Object(l["toDisplayString"])(e.translate("SitesManager_KeepURLFragmentsHelp2")),1)]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedIpsGlobal","var-type":"array",modelValue:e.excludedIpsGlobal,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.excludedIpsGlobal=t}),title:e.translate("SitesManager_ListOfIpsToBeExcludedOnAllWebsites"),introduction:e.translate("SitesManager_GlobalListExcludedIps"),"inline-help":"#excludedIpsGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedQueryParametersGlobal","var-type":"array",modelValue:e.excludedQueryParametersGlobal,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.excludedQueryParametersGlobal=t}),title:e.translate("SitesManager_ListOfQueryParametersToBeExcludedOnAllWebsites"),introduction:e.translate("SitesManager_GlobalListExcludedQueryParameters"),"inline-help":"#excludedQueryParametersGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedUserAgentsGlobal","var-type":"array",modelValue:e.excludedUserAgentsGlobal,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.excludedUserAgentsGlobal=t}),title:e.translate("SitesManager_GlobalListExcludedUserAgents_Desc"),introduction:e.translate("SitesManager_GlobalListExcludedUserAgents"),"inline-help":"#excludedUserAgentsGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"checkbox",name:"keepURLFragmentsGlobal",modelValue:e.keepURLFragmentsGlobal,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.keepURLFragmentsGlobal=t}),title:e.translate("SitesManager_KeepURLFragmentsLong"),introduction:e.translate("SitesManager_KeepURLFragments"),"inline-help":"#keepURLFragmentsHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("h3",null,Object(l["toDisplayString"])(e.translate("SitesManager_TrackingSiteSearch")),1),Object(l["createElementVNode"])("p",null,Object(l["toDisplayString"])(e.translate("SitesManager_SiteSearchUse")),1),Object(l["createElementVNode"])("div",kt,Object(l["toDisplayString"])(e.translate("SitesManager_SearchParametersNote"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_SearchParametersNote2")),1),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"text",name:"searchKeywordParametersGlobal","var-type":"array",modelValue:e.searchKeywordParametersGlobal,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.searchKeywordParametersGlobal=t}),title:e.translate("SitesManager_SearchKeywordLabel"),"inline-help":e.translate("SitesManager_SearchKeywordParametersDesc"),disabled:e.isLoading},null,8,["modelValue","title","inline-help","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"text",name:"searchCategoryParametersGlobal","var-type":"array",modelValue:e.searchCategoryParametersGlobal,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.searchCategoryParametersGlobal=t}),title:e.translate("SitesManager_SearchCategoryLabel"),"inline-help":e.searchCategoryParamsInlineHelp,disabled:e.isLoading},null,8,["modelValue","title","inline-help","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"select",name:"defaultTimezone",options:e.timezoneOptions,title:e.translate("SitesManager_SelectDefaultTimezone"),introduction:e.translate("SitesManager_DefaultTimezoneForNewWebsites"),"inline-help":"#timezoneHelp",disabled:e.isLoading,modelValue:e.defaultTimezone,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.defaultTimezone=t})},null,8,["options","title","introduction","disabled","modelValue"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"select",name:"defaultCurrency",modelValue:e.defaultCurrency,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.defaultCurrency=t}),options:e.currencies,title:e.translate("SitesManager_SelectDefaultCurrency"),introduction:e.translate("SitesManager_DefaultCurrencyForNewWebsites"),"inline-help":e.translate("SitesManager_CurrencySymbolWillBeUsedForGoals"),disabled:e.isLoading},null,8,["modelValue","options","title","introduction","inline-help","disabled"])]),Object(l["createVNode"])(s,{saving:e.isSaving,onConfirm:t[8]||(t[8]=function(t){return e.saveGlobalSettings()})},null,8,["saving"])]})),_:1},8,["content-title"]),[[l["vShow"],e.hasSuperUserAccess]])])}var Ut=Object(l["defineComponent"])({props:{dummy:String},components:{ContentBlock:r["ContentBlock"],Field:De["Field"],SaveButton:De["SaveButton"]},data:function(){var e=new Date,t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()),n=ht.globalSettings.value;return{currentIpAddress:null,utcTime:t,keepURLFragmentsGlobal:n.keepURLFragmentsGlobal,defaultTimezone:n.defaultTimezone,defaultCurrency:n.defaultCurrency,excludedIpsGlobal:(n.excludedIpsGlobal||"").split(","),excludedQueryParametersGlobal:(n.excludedQueryParametersGlobal||"").split(","),excludedUserAgentsGlobal:(n.excludedUserAgentsGlobal||"").split(","),searchKeywordParametersGlobal:(n.searchKeywordParametersGlobal||"").split(","),searchCategoryParametersGlobal:(n.searchCategoryParametersGlobal||"").split(","),isSaving:!1}},created:function(){var e=this;Xe.init(),Re.init(),ht.init(),Object(l["watch"])((function(){return ht.globalSettings.value}),(function(t){e.keepURLFragmentsGlobal=t.keepURLFragmentsGlobal,e.defaultTimezone=t.defaultTimezone,e.defaultCurrency=t.defaultCurrency,e.excludedIpsGlobal=(t.excludedIpsGlobal||"").split(","),e.excludedQueryParametersGlobal=(t.excludedQueryParametersGlobal||"").split(","),e.excludedUserAgentsGlobal=(t.excludedUserAgentsGlobal||"").split(","),e.searchKeywordParametersGlobal=(t.searchKeywordParametersGlobal||"").split(","),e.searchCategoryParametersGlobal=(t.searchCategoryParametersGlobal||"").split(",")})),r["AjaxHelper"].fetch({method:"API.getIpFromHeader"}).then((function(t){e.currentIpAddress=t.value}))},methods:{saveGlobalSettings:function(){var e=this;this.isSaving=!0,ht.saveGlobalSettings({keepURLFragments:this.keepURLFragmentsGlobal,currency:this.defaultCurrency,timezone:this.defaultTimezone,excludedIps:this.excludedIpsGlobal.join(","),excludedQueryParameters:this.excludedQueryParametersGlobal.join(","),excludedUserAgents:this.excludedUserAgentsGlobal.join(","),searchKeywordParameters:this.searchKeywordParametersGlobal.join(","),searchCategoryParameters:this.searchCategoryParametersGlobal.join(",")}).then((function(){r["Matomo"].helper.redirect({showaddsite:!1})})).finally((function(){e.isSaving=!1}))}},computed:{isLoading:function(){return ht.isLoading.value||Re.isLoading.value||Xe.isLoading.value},timezones:function(){return Re.timezones.value},timezoneOptions:function(){return this.timezones.map((function(e){var t=e.group,n=e.label,a=e.code;return{group:t,key:n,value:a}}))},currencies:function(){return Xe.currencies.value},hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},yourCurrentIpAddressIs:function(){return Object(r["translate"])("SitesManager_YourCurrentIpAddressIs","<i>".concat(this.currentIpAddress,"</i>"))},timezoneSupportEnabled:function(){return Re.timezoneSupportEnabled.value},utcTimeDate:function(){var e=this.utcTime,t=function(e){return e.toString().padStart(2,"0")},n=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds());return"".concat(Object(r["format"])(this.utcTime)," ").concat(n,":").concat(a,":").concat(i)},keepUrlFragmentHelp:function(){return Object(r["translate"])("SitesManager_KeepURLFragmentsHelp","<em>#</em>","<em>example.org/index.html#first_section</em>","<em>example.org/index.html</em>")},searchCategoryParamsInlineHelp:function(){var e=[Object(r["translate"])("Goals_Optional"),Object(r["translate"])("SitesManager_SearchCategoryDesc"),Object(r["translate"])("SitesManager_SearchCategoryParametersDesc")];return e.join(" ")}}});Ut.render=Gt;var Lt=Ut;
+ */Object(r["createAngularJsAdapter"])({component:gt,scope:{},directiveName:"matomoSitesManagement"});window.angular.module("piwikApp").factory("sitesManagerAPI",(function(){return{}}));var ft={class:"SitesManager"},St=Object(l["createElementVNode"])("a",{name:"globalSettings",id:"globalSettings"},null,-1),jt={id:"excludedIpsGlobalHelp",class:"inline-help-node"},Ot=Object(l["createElementVNode"])("br",null,null,-1),vt=Object(l["createElementVNode"])("br",null,null,-1),yt=["innerHTML"],Et={id:"excludedQueryParametersGlobalHelp",class:"inline-help-node"},Nt=Object(l["createElementVNode"])("br",null,null,-1),Vt=Object(l["createElementVNode"])("br",null,null,-1),xt={id:"excludedUserAgentsGlobalHelp",class:"inline-help-node"},Tt=Object(l["createElementVNode"])("br",null,null,-1),Mt=Object(l["createElementVNode"])("br",null,null,-1),wt={id:"excludedReferrersGlobalHelp",class:"inline-help-node"},At=Object(l["createElementVNode"])("br",null,null,-1),_t=Object(l["createElementVNode"])("br",null,null,-1),Ct=Object(l["createElementVNode"])("br",null,null,-1),Gt=Object(l["createElementVNode"])("br",null,null,-1),Pt=Object(l["createElementVNode"])("br",null,null,-1),Dt={id:"timezoneHelp",class:"inline-help-node"},kt={key:0},Ut=Object(l["createElementVNode"])("br",null,null,-1),Lt=Object(l["createElementVNode"])("br",null,null,-1),zt={id:"keepURLFragmentsHelp",class:"inline-help-node"},It=["innerHTML"],Bt={class:"alert alert-info"};function Ht(e,t,n,a,i,r){var o=Object(l["resolveComponent"])("Field"),s=Object(l["resolveComponent"])("SaveButton"),c=Object(l["resolveComponent"])("ContentBlock");return Object(l["openBlock"])(),Object(l["createElementBlock"])("div",ft,[Object(l["withDirectives"])(Object(l["createVNode"])(c,{"content-title":e.translate("SitesManager_GlobalWebsitesSettings")},{default:Object(l["withCtx"])((function(){return[St,Object(l["createElementVNode"])("div",jt,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_HelpExcludedIpAddresses","1.2.3.4/24","1.2.3.*","1.2.*.*"))+" ",1),Ot,vt,Object(l["createElementVNode"])("span",{innerHTML:e.$sanitize(e.yourCurrentIpAddressIs)},null,8,yt)])]),Object(l["createElementVNode"])("div",Et,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_ListOfQueryParametersToExclude","/^sess.*|.*[dD]ate$/"))+" ",1),Nt,Vt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters","phpsessid, sessionid, ...")),1)])]),Object(l["createElementVNode"])("div",xt,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp1"))+" ",1),Tt,Mt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalListExcludedUserAgents_Desc"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp2"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_GlobalExcludedUserAgentHelp3","/bot|spider|crawl|scanner/i")),1)])]),Object(l["createElementVNode"])("div",wt,[Object(l["createElementVNode"])("div",null,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedReferrersHelp"))+" ",1),At,_t,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedReferrersHelpDetails"))+" ",1),Ct,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedReferrersHelpExamples","www.example.org","http://example.org/mypath","https://www.example.org/?param=1","https://sub.example.org/"))+" ",1),Gt,Pt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ExcludedReferrersHelpSubDomains",".sub.example.org","http://sub.example.org/mypath","https://new.sub.example.org/")),1)])]),Object(l["createElementVNode"])("div",Dt,[Object(l["createElementVNode"])("div",null,[e.timezoneSupportEnabled?Object(l["createCommentVNode"])("",!0):(Object(l["openBlock"])(),Object(l["createElementBlock"])("span",kt,[Object(l["createTextVNode"])(Object(l["toDisplayString"])(e.translate("SitesManager_AdvancedTimezoneSupportNotFound"))+" ",1),Ut])),Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_UTCTimeIs",e.utcTimeDate))+" ",1),Lt,Object(l["createTextVNode"])(" "+Object(l["toDisplayString"])(e.translate("SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward")),1)])]),Object(l["createElementVNode"])("div",zt,[Object(l["createElementVNode"])("div",{innerHTML:e.$sanitize(e.keepUrlFragmentHelp)},null,8,It),Object(l["createElementVNode"])("div",null,Object(l["toDisplayString"])(e.translate("SitesManager_KeepURLFragmentsHelp2")),1)]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedIpsGlobal","var-type":"array",modelValue:e.excludedIpsGlobal,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.excludedIpsGlobal=t}),title:e.translate("SitesManager_ListOfIpsToBeExcludedOnAllWebsites"),introduction:e.translate("SitesManager_GlobalListExcludedIps"),"inline-help":"#excludedIpsGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedQueryParametersGlobal","var-type":"array",modelValue:e.excludedQueryParametersGlobal,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.excludedQueryParametersGlobal=t}),title:e.translate("SitesManager_ListOfQueryParametersToBeExcludedOnAllWebsites"),introduction:e.translate("SitesManager_GlobalListExcludedQueryParameters"),"inline-help":"#excludedQueryParametersGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedUserAgentsGlobal","var-type":"array",modelValue:e.excludedUserAgentsGlobal,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.excludedUserAgentsGlobal=t}),title:e.translate("SitesManager_GlobalListExcludedUserAgents_Desc"),introduction:e.translate("SitesManager_GlobalListExcludedUserAgents"),"inline-help":"#excludedUserAgentsGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"textarea",name:"excludedReferrersGlobal","var-type":"array",modelValue:e.excludedReferrersGlobal,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.excludedReferrersGlobal=t}),title:e.translate("SitesManager_GlobalListExcludedReferrersDesc"),introduction:e.translate("SitesManager_GlobalListExcludedReferrers"),"inline-help":"#excludedReferrersGlobalHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"checkbox",name:"keepURLFragmentsGlobal",modelValue:e.keepURLFragmentsGlobal,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.keepURLFragmentsGlobal=t}),title:e.translate("SitesManager_KeepURLFragmentsLong"),introduction:e.translate("SitesManager_KeepURLFragments"),"inline-help":"#keepURLFragmentsHelp",disabled:e.isLoading},null,8,["modelValue","title","introduction","disabled"])]),Object(l["createElementVNode"])("h3",null,Object(l["toDisplayString"])(e.translate("SitesManager_TrackingSiteSearch")),1),Object(l["createElementVNode"])("p",null,Object(l["toDisplayString"])(e.translate("SitesManager_SiteSearchUse")),1),Object(l["createElementVNode"])("div",Bt,Object(l["toDisplayString"])(e.translate("SitesManager_SearchParametersNote"))+" "+Object(l["toDisplayString"])(e.translate("SitesManager_SearchParametersNote2")),1),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"text",name:"searchKeywordParametersGlobal","var-type":"array",modelValue:e.searchKeywordParametersGlobal,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.searchKeywordParametersGlobal=t}),title:e.translate("SitesManager_SearchKeywordLabel"),"inline-help":e.translate("SitesManager_SearchKeywordParametersDesc"),disabled:e.isLoading},null,8,["modelValue","title","inline-help","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"text",name:"searchCategoryParametersGlobal","var-type":"array",modelValue:e.searchCategoryParametersGlobal,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.searchCategoryParametersGlobal=t}),title:e.translate("SitesManager_SearchCategoryLabel"),"inline-help":e.searchCategoryParamsInlineHelp,disabled:e.isLoading},null,8,["modelValue","title","inline-help","disabled"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"select",name:"defaultTimezone",options:e.timezoneOptions,title:e.translate("SitesManager_SelectDefaultTimezone"),introduction:e.translate("SitesManager_DefaultTimezoneForNewWebsites"),"inline-help":"#timezoneHelp",disabled:e.isLoading,modelValue:e.defaultTimezone,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.defaultTimezone=t})},null,8,["options","title","introduction","disabled","modelValue"])]),Object(l["createElementVNode"])("div",null,[Object(l["createVNode"])(o,{uicontrol:"select",name:"defaultCurrency",modelValue:e.defaultCurrency,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.defaultCurrency=t}),options:e.currencies,title:e.translate("SitesManager_SelectDefaultCurrency"),introduction:e.translate("SitesManager_DefaultCurrencyForNewWebsites"),"inline-help":e.translate("SitesManager_CurrencySymbolWillBeUsedForGoals"),disabled:e.isLoading},null,8,["modelValue","options","title","introduction","inline-help","disabled"])]),Object(l["createVNode"])(s,{saving:e.isSaving,onConfirm:t[9]||(t[9]=function(t){return e.saveGlobalSettings()})},null,8,["saving"])]})),_:1},8,["content-title"]),[[l["vShow"],e.hasSuperUserAccess]])])}var Ft=Object(l["defineComponent"])({props:{dummy:String},components:{ContentBlock:r["ContentBlock"],Field:Pe["Field"],SaveButton:Pe["SaveButton"]},data:function(){var e=new Date,t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()),n=pt.globalSettings.value;return{currentIpAddress:null,utcTime:t,keepURLFragmentsGlobal:n.keepURLFragmentsGlobal,defaultTimezone:n.defaultTimezone,defaultCurrency:n.defaultCurrency,excludedIpsGlobal:(n.excludedIpsGlobal||"").split(","),excludedQueryParametersGlobal:(n.excludedQueryParametersGlobal||"").split(","),excludedUserAgentsGlobal:(n.excludedUserAgentsGlobal||"").split(","),excludedReferrersGlobal:(n.excludedReferrersGlobal||"").split(","),searchKeywordParametersGlobal:(n.searchKeywordParametersGlobal||"").split(","),searchCategoryParametersGlobal:(n.searchCategoryParametersGlobal||"").split(","),isSaving:!1}},created:function(){var e=this;Xe.init(),We.init(),pt.init(),Object(l["watch"])((function(){return pt.globalSettings.value}),(function(t){e.keepURLFragmentsGlobal=t.keepURLFragmentsGlobal,e.defaultTimezone=t.defaultTimezone,e.defaultCurrency=t.defaultCurrency,e.excludedIpsGlobal=(t.excludedIpsGlobal||"").split(","),e.excludedQueryParametersGlobal=(t.excludedQueryParametersGlobal||"").split(","),e.excludedUserAgentsGlobal=(t.excludedUserAgentsGlobal||"").split(","),e.excludedReferrersGlobal=(t.excludedReferrersGlobal||"").split(","),e.searchKeywordParametersGlobal=(t.searchKeywordParametersGlobal||"").split(","),e.searchCategoryParametersGlobal=(t.searchCategoryParametersGlobal||"").split(",")})),r["AjaxHelper"].fetch({method:"API.getIpFromHeader"}).then((function(t){e.currentIpAddress=t.value}))},methods:{saveGlobalSettings:function(){var e=this;this.isSaving=!0,pt.saveGlobalSettings({keepURLFragments:this.keepURLFragmentsGlobal,currency:this.defaultCurrency,timezone:this.defaultTimezone,excludedIps:this.excludedIpsGlobal.join(","),excludedQueryParameters:this.excludedQueryParametersGlobal.join(","),excludedUserAgents:this.excludedUserAgentsGlobal.join(","),excludedReferrers:this.excludedReferrersGlobal.join(","),searchKeywordParameters:this.searchKeywordParametersGlobal.join(","),searchCategoryParameters:this.searchCategoryParametersGlobal.join(",")}).then((function(){r["Matomo"].helper.redirect({showaddsite:!1})})).finally((function(){e.isSaving=!1}))}},computed:{isLoading:function(){return pt.isLoading.value||We.isLoading.value||Xe.isLoading.value},timezones:function(){return We.timezones.value},timezoneOptions:function(){return this.timezones.map((function(e){var t=e.group,n=e.label,a=e.code;return{group:t,key:n,value:a}}))},currencies:function(){return Xe.currencies.value},hasSuperUserAccess:function(){return r["Matomo"].hasSuperUserAccess},yourCurrentIpAddressIs:function(){return Object(r["translate"])("SitesManager_YourCurrentIpAddressIs","<i>".concat(this.currentIpAddress,"</i>"))},timezoneSupportEnabled:function(){return We.timezoneSupportEnabled.value},utcTimeDate:function(){var e=this.utcTime,t=function(e){return e.toString().padStart(2,"0")},n=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds());return"".concat(Object(r["format"])(this.utcTime)," ").concat(n,":").concat(a,":").concat(i)},keepUrlFragmentHelp:function(){return Object(r["translate"])("SitesManager_KeepURLFragmentsHelp","<em>#</em>","<em>example.org/index.html#first_section</em>","<em>example.org/index.html</em>")},searchCategoryParamsInlineHelp:function(){var e=[Object(r["translate"])("Goals_Optional"),Object(r["translate"])("SitesManager_SearchCategoryDesc"),Object(r["translate"])("SitesManager_SearchCategoryParametersDesc")];return e.join(" ")}}});Ft.render=Ht;var Rt=Ft;
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */Object(r["createAngularJsAdapter"])({component:Lt,scope:{},directiveName:"matomoGlobalSettings"})}})}));
+ */Object(r["createAngularJsAdapter"])({component:Rt,scope:{},directiveName:"matomoGlobalSettings"})}})}));
//# sourceMappingURL=SitesManager.umd.min.js.map \ No newline at end of file
diff --git a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts
index 12d2edbf1a..e7a72a946d 100644
--- a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts
+++ b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts
@@ -12,6 +12,7 @@ interface GlobalSettings {
excludedIpsGlobal?: string;
excludedQueryParametersGlobal?: string;
excludedUserAgentsGlobal?: string;
+ excludedReferrersGlobal?: string;
searchKeywordParametersGlobal?: string;
searchCategoryParametersGlobal?: string;
}
diff --git a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts
index 13201e74ef..da5af703db 100644
--- a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts
+++ b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts
@@ -25,6 +25,7 @@ interface SaveGlobalSettingsParams {
excludedIps: string;
excludedQueryParameters: string;
excludedUserAgents: string;
+ excludedReferrers: string;
searchKeywordParameters: string;
searchCategoryParameters: string;
}
@@ -39,6 +40,7 @@ class GlobalSettingsStore {
excludedIpsGlobal: '',
excludedQueryParametersGlobal: '',
excludedUserAgentsGlobal: '',
+ excludedReferrersGlobal: '',
searchKeywordParametersGlobal: '',
searchCategoryParametersGlobal: '',
},
@@ -82,6 +84,7 @@ class GlobalSettingsStore {
excludedIpsGlobal: response.excludedIpsGlobal || '',
excludedQueryParametersGlobal: response.excludedQueryParametersGlobal || '',
excludedUserAgentsGlobal: response.excludedUserAgentsGlobal || '',
+ excludedReferrersGlobal: response.excludedReferrersGlobal || '',
searchKeywordParametersGlobal: response.searchKeywordParametersGlobal || '',
searchCategoryParametersGlobal: response.searchCategoryParametersGlobal || '',
};
diff --git a/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue b/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue
index bc0dd92187..f2a59cdffe 100644
--- a/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue
+++ b/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue
@@ -55,6 +55,29 @@
</div>
</div>
+ <div id="excludedReferrersGlobalHelp" class="inline-help-node">
+ <div>
+ {{ translate('SitesManager_ExcludedReferrersHelp') }}
+ <br/><br/>
+ {{ translate('SitesManager_ExcludedReferrersHelpDetails') }}
+ <br/>
+ {{ translate(
+ 'SitesManager_ExcludedReferrersHelpExamples',
+ 'www.example.org',
+ 'http://example.org/mypath',
+ 'https://www.example.org/?param=1',
+ 'https://sub.example.org/'
+ ) }}
+ <br/><br/>
+ {{ translate(
+ 'SitesManager_ExcludedReferrersHelpSubDomains',
+ '.sub.example.org',
+ 'http://sub.example.org/mypath',
+ 'https://new.sub.example.org/'
+ ) }}
+ </div>
+ </div>
+
<div id="timezoneHelp" class="inline-help-node">
<div>
<span v-if="!timezoneSupportEnabled">
@@ -114,6 +137,19 @@
<div>
<Field
+ uicontrol="textarea"
+ name="excludedReferrersGlobal"
+ var-type="array"
+ v-model="excludedReferrersGlobal"
+ :title="translate('SitesManager_GlobalListExcludedReferrersDesc')"
+ :introduction="translate('SitesManager_GlobalListExcludedReferrers')"
+ :inline-help="'#excludedReferrersGlobalHelp'"
+ :disabled="isLoading"
+ />
+ </div>
+
+ <div>
+ <Field
uicontrol="checkbox"
name="keepURLFragmentsGlobal"
v-model="keepURLFragmentsGlobal"
@@ -210,6 +246,7 @@ interface GlobalSettingsState {
excludedIpsGlobal: string[];
excludedQueryParametersGlobal: string[];
excludedUserAgentsGlobal: string[];
+ excludedReferrersGlobal: string[];
searchKeywordParametersGlobal: string[];
searchCategoryParametersGlobal: string[];
isSaving: boolean;
@@ -253,6 +290,7 @@ export default defineComponent({
excludedQueryParametersGlobal:
(settings.excludedQueryParametersGlobal || '').split(','),
excludedUserAgentsGlobal: (settings.excludedUserAgentsGlobal || '').split(','),
+ excludedReferrersGlobal: (settings.excludedReferrersGlobal || '').split(','),
searchKeywordParametersGlobal:
(settings.searchKeywordParametersGlobal || '').split(','),
searchCategoryParametersGlobal:
@@ -273,6 +311,7 @@ export default defineComponent({
this.excludedQueryParametersGlobal = (settings.excludedQueryParametersGlobal || '')
.split(',');
this.excludedUserAgentsGlobal = (settings.excludedUserAgentsGlobal || '').split(',');
+ this.excludedReferrersGlobal = (settings.excludedReferrersGlobal || '').split(',');
this.searchKeywordParametersGlobal = (settings.searchKeywordParametersGlobal || '')
.split(',');
this.searchCategoryParametersGlobal = (settings.searchCategoryParametersGlobal || '')
@@ -293,6 +332,7 @@ export default defineComponent({
excludedIps: this.excludedIpsGlobal.join(','),
excludedQueryParameters: this.excludedQueryParametersGlobal.join(','),
excludedUserAgents: this.excludedUserAgentsGlobal.join(','),
+ excludedReferrers: this.excludedReferrersGlobal.join(','),
searchKeywordParameters: this.searchKeywordParametersGlobal.join(','),
searchCategoryParameters: this.searchCategoryParametersGlobal.join(','),
}).then(() => {
diff --git a/plugins/TagManager b/plugins/TagManager
-Subproject 44d38e81d696509c6c071afcf1d3f3e0a2e223b
+Subproject cd3bf61caf2fdf85221e0bc2b59b23191dae9f4
diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index 8bfdabbe04..1c642e76f7 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -6,6 +7,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
+
namespace Piwik\Plugins\UserCountryMap;
use Exception;
@@ -27,7 +29,7 @@ class Controller extends \Piwik\Plugin\Controller
{
// By default plot up to the last 3 days of visitors on the map, for low traffic sites
const REAL_TIME_WINDOW = 'last3';
-
+
/**
* @var Translator
*/
@@ -58,7 +60,7 @@ class Controller extends \Piwik\Plugin\Controller
$segment = '';
}
}
-
+
$token_auth = Piwik::getCurrentUserTokenAuth();
$view = new View('@UserCountryMap/visitorMap');
@@ -73,21 +75,53 @@ class Controller extends \Piwik\Plugin\Controller
. '&token_auth=' . $token_auth
. '&filter_limit=-1'
);
- $config = array();
+ $config = [];
$config['visitsSummary'] = json_decode($request->process(), true);
- $config['countryDataUrl'] = $this->_report('UserCountry', 'getCountry',
- $this->idSite, $period, $date, $token_auth, false, $segment);
- $config['regionDataUrl'] = $this->_report('UserCountry', 'getRegion',
- $this->idSite, $period, $date, $token_auth, true, $segment);
- $config['cityDataUrl'] = $this->_report('UserCountry', 'getCity',
- $this->idSite, $period, $date, $token_auth, true, $segment);
- $config['countrySummaryUrl'] = $this->getApiRequestUrl('VisitsSummary', 'get',
- $this->idSite, $period, $date, $token_auth, true, $segment);
+ $config['countryDataUrl'] = $this->_report(
+ 'UserCountry',
+ 'getCountry',
+ $this->idSite,
+ $period,
+ $date,
+ $token_auth,
+ false,
+ $segment
+ );
+ $config['regionDataUrl'] = $this->_report(
+ 'UserCountry',
+ 'getRegion',
+ $this->idSite,
+ $period,
+ $date,
+ $token_auth,
+ true,
+ $segment
+ );
+ $config['cityDataUrl'] = $this->_report(
+ 'UserCountry',
+ 'getCity',
+ $this->idSite,
+ $period,
+ $date,
+ $token_auth,
+ true,
+ $segment
+ );
+ $config['countrySummaryUrl'] = $this->getApiRequestUrl(
+ 'VisitsSummary',
+ 'get',
+ $this->idSite,
+ $period,
+ $date,
+ $token_auth,
+ true,
+ $segment
+ );
$view->defaultMetric = array_key_exists('nb_uniq_visitors', $config['visitsSummary']) ? 'nb_uniq_visitors' : 'nb_visits';
$noVisitTranslation = $this->translator->translate('UserCountryMap_NoVisit');
// some translations containing metric number
- $translations = array(
+ $translations = [
'nb_visits' => $this->translator->translate('General_NVisits'),
'no_visit' => $noVisitTranslation,
'nb_actions' => $this->translator->translate('VisitsSummary_NbActionsDescription'),
@@ -97,11 +131,13 @@ class Controller extends \Piwik\Plugin\Controller
'and_n_others' => $this->translator->translate('UserCountryMap_AndNOthers'),
'nb_uniq_visitors' => $this->translator->translate('General_NUniqueVisitors'),
'nb_users' => $this->translator->translate('VisitsSummary_NbUsers'),
- );
+ ];
foreach ($translations as &$translation) {
- if (false === strpos($translation, '%s')
- && $translation !== $noVisitTranslation) {
+ if (
+ false === strpos($translation, '%s')
+ && $translation !== $noVisitTranslation
+ ) {
$translation = '%s ' . $translation;
}
}
@@ -111,7 +147,7 @@ class Controller extends \Piwik\Plugin\Controller
$view->localeJSON = json_encode($translations);
- $view->reqParamsJSON = $this->getEnrichedRequest($params = array(
+ $view->reqParamsJSON = $this->getEnrichedRequest($params = [
'period' => $period,
'idSite' => $this->idSite,
'date' => $date,
@@ -119,7 +155,7 @@ class Controller extends \Piwik\Plugin\Controller
'token_auth' => $token_auth,
'enable_filter_excludelowpop' => 1,
'filter_excludelowpop_value' => -1
- ));
+ ]);
$view->metrics = $config['metrics'] = $this->getMetrics($this->idSite, $period, $date, $token_auth);
$config['svgBasePath'] = 'plugins/UserCountryMap/svg/';
@@ -127,24 +163,24 @@ class Controller extends \Piwik\Plugin\Controller
$view->config = json_encode($config);
$view->noData = empty($config['visitsSummary']['nb_visits']);
- $countriesByIso = array();
+ $countriesByIso = [];
$regionDataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider');
$countries = array_keys($regionDataProvider->getCountryList());
- foreach ($countries AS $country) {
- $countriesByIso[strtoupper($country)] = Piwik::translate('Intl_Country_'.strtoupper($country));
+ foreach ($countries as $country) {
+ $countriesByIso[strtoupper($country)] = Piwik::translate('Intl_Country_' . strtoupper($country));
}
$view->countriesByIso = $countriesByIso;
- $view->continents = array(
+ $view->continents = [
'AF' => \Piwik\Plugins\UserCountry\continentTranslate('afr'),
'AS' => \Piwik\Plugins\UserCountry\continentTranslate('asi'),
'EU' => \Piwik\Plugins\UserCountry\continentTranslate('eur'),
'NA' => \Piwik\Plugins\UserCountry\continentTranslate('amn'),
'OC' => \Piwik\Plugins\UserCountry\continentTranslate('oce'),
'SA' => \Piwik\Plugins\UserCountry\continentTranslate('ams')
- );
+ ];
return $view->render();
}
@@ -188,7 +224,7 @@ class Controller extends \Piwik\Plugin\Controller
$maxVisits = Common::getRequestVar('filter_limit', 100, 'int');
// some translations
- $locale = array(
+ $locale = [
'nb_actions' => $this->translator->translate('VisitsSummary_NbActionsDescription'),
'local_time' => $this->translator->translate('VisitTime_ColumnLocalTime'),
'from' => $this->translator->translate('General_FromReferrer'),
@@ -202,15 +238,15 @@ class Controller extends \Piwik\Plugin\Controller
'actions' => $this->translator->translate('Transitions_NumPageviews'),
'searches' => $this->translator->translate('UserCountryMap_Searches'),
'goal_conversions' => $this->translator->translate('UserCountryMap_GoalConversions'),
- );
+ ];
$segment = $segmentOverride ? : Request::getRawSegmentFromRequest() ? : '';
- $params = array(
+ $params = [
'period' => 'range',
'idSite' => $this->idSite,
'segment' => $segment,
'token_auth' => $token_auth,
- );
+ ];
$realtimeWindow = Common::getRequestVar('realtimeWindow', self::REAL_TIME_WINDOW, 'string');
if ($realtimeWindow != 'false') { // handle special value
@@ -219,8 +255,8 @@ class Controller extends \Piwik\Plugin\Controller
$reqParams = $this->getEnrichedRequest($params, $encode = false);
- $view->config = array(
- 'metrics' => array(),
+ $view->config = [
+ 'metrics' => [],
'svgBasePath' => 'plugins/UserCountryMap/svg/',
'liveRefreshAfterMs' => $liveRefreshAfterMs,
'_' => $locale,
@@ -234,7 +270,7 @@ class Controller extends \Piwik\Plugin\Controller
'doNotRefreshVisits' => Common::getRequestVar('doNotRefreshVisits', false, 'int'),
'enableAnimation' => Common::getRequestVar('enableAnimation', true, 'int'),
'forceNowValue' => Common::getRequestVar('forceNowValue', false, 'int')
- );
+ ];
return $view->render();
}
@@ -281,15 +317,15 @@ class Controller extends \Piwik\Plugin\Controller
);
$metaData = json_decode($request->process(), true);
- $metrics = array();
+ $metrics = [];
if (!empty($metaData[0]['metrics']) && is_array($metaData[0]['metrics'])) {
foreach ($metaData[0]['metrics'] as $id => $val) {
- $metrics[] = array($id, $val);
+ $metrics[] = [$id, $val];
}
}
if (!empty($metaData[0]['processedMetrics']) && is_array($metaData[0]['processedMetrics'])) {
foreach ($metaData[0]['processedMetrics'] as $id => $val) {
- $metrics[] = array($id, $val);
+ $metrics[] = [$id, $val];
}
}
return $metrics;
@@ -321,7 +357,15 @@ class Controller extends \Piwik\Plugin\Controller
private function _report($module, $action, $idSite, $period, $date, $token_auth, $filter_by_country = false, $segmentOverride = false)
{
- return $this->getApiRequestUrl('API', 'getProcessedReport&apiModule=' . $module . '&apiAction=' . $action,
- $idSite, $period, $date, $token_auth, $filter_by_country, $segmentOverride);
+ return $this->getApiRequestUrl(
+ 'API',
+ 'getProcessedReport&apiModule=' . $module . '&apiAction=' . $action,
+ $idSite,
+ $period,
+ $date,
+ $token_auth,
+ $filter_by_country,
+ $segmentOverride
+ );
}
}
diff --git a/plugins/UserCountryMap/javascripts/visitor-map.js b/plugins/UserCountryMap/javascripts/visitor-map.js
index 9a972962b0..82e08e36a0 100644
--- a/plugins/UserCountryMap/javascripts/visitor-map.js
+++ b/plugins/UserCountryMap/javascripts/visitor-map.js
@@ -1389,7 +1389,7 @@ $.extend(UserCountryMap, {
ISO2toISO3: {"BD": "BGD", "BE": "BEL", "BF": "BFA", "BG": "BGR", "BA": "BIH", "BB": "BRB", "WF": "WLF", "BL": "BLM", "BM": "BMU", "BN": "BRN", "BO": "BOL", "BH": "BHR", "BI": "BDI", "BJ": "BEN", "BT": "BTN", "JM": "JAM", "BV": "BVT", "BW": "BWA", "WS": "WSM", "BQ": "BES", "BR": "BRA", "BS": "BHS", "JE": "JEY", "BY": "BLR", "BZ": "BLZ", "RU": "RUS", "RW": "RWA", "RS": "SRB", "TL": "TLS", "RE": "REU", "TM": "TKM", "TJ": "TJK", "RO": "ROU", "TK": "TKL", "GW": "GNB", "GU": "GUM", "GT": "GTM", "GS": "SGS", "GR": "GRC", "GQ": "GNQ", "GP": "GLP", "JP": "JPN", "GY": "GUY", "GG": "GGY", "GF": "GUF", "GE": "GEO", "GD": "GRD", "GB": "GBR", "GA": "GAB", "SV": "SLV", "GN": "GIN", "GM": "GMB", "GL": "GRL", "GI": "GIB", "GH": "GHA", "OM": "OMN", "TN": "TUN", "JO": "JOR", "HR": "HRV", "HT": "HTI", "HU": "HUN", "HK": "HKG", "HN": "HND", "HM": "HMD", "VE": "VEN", "PR": "PRI", "PS": "PSE", "PW": "PLW", "PT": "PRT", "SJ": "SJM", "PY": "PRY", "IQ": "IRQ", "PA": "PAN", "PF": "PYF", "PG": "PNG", "PE": "PER", "PK": "PAK", "PH": "PHL", "PN": "PCN", "PL": "POL", "PM": "SPM", "ZM": "ZMB", "EH": "ESH", "EE": "EST", "EG": "EGY", "ZA": "ZAF", "EC": "ECU", "IT": "ITA", "VN": "VNM", "SB": "SLB", "ET": "ETH", "SO": "SOM", "ZW": "ZWE", "SA": "SAU", "ES": "ESP", "ER": "ERI", "ME": "MNE", "MD": "MDA", "MG": "MDG", "MF": "MAF", "MA": "MAR", "MC": "MCO", "UZ": "UZB", "MM": "MMR", "ML": "MLI", "MO": "MAC", "MN": "MNG", "MH": "MHL", "MK": "MKD", "MU": "MUS", "MT": "MLT", "MW": "MWI", "MV": "MDV", "MQ": "MTQ", "MP": "MNP", "MS": "MSR", "MR": "MRT", "IM": "IMN", "UG": "UGA", "TZ": "TZA", "MY": "MYS", "MX": "MEX", "IL": "ISR", "FR": "FRA", "IO": "IOT", "SH": "SHN", "FI": "FIN", "FJ": "FJI", "FK": "FLK", "FM": "FSM", "FO": "FRO", "NI": "NIC", "NL": "NLD", "NO": "NOR", "NA": "NAM", "VU": "VUT", "NC": "NCL", "NE": "NER", "NF": "NFK", "NG": "NGA", "NZ": "NZL", "NP": "NPL", "NR": "NRU", "NU": "NIU", "CK": "COK", "XK": "XKX", "CI": "CIV", "CH": "CHE", "CO": "COL", "CN": "CHN", "CM": "CMR", "CL": "CHL", "CC": "CCK", "CA": "CAN", "CG": "COG", "CF": "CAF", "CD": "COD", "CZ": "CZE", "CY": "CYP", "CX": "CXR", "CS": "SCG", "CR": "CRI", "CW": "CUW", "CV": "CPV", "CU": "CUB", "SZ": "SWZ", "SY": "SYR", "SX": "SXM", "KG": "KGZ", "KE": "KEN", "SS": "SSD", "SR": "SUR", "KI": "KIR", "KH": "KHM", "KN": "KNA", "KM": "COM", "ST": "STP", "SK": "SVK", "KR": "KOR", "SI": "SVN", "KP": "PRK", "KW": "KWT", "SN": "SEN", "SM": "SMR", "SL": "SLE", "SC": "SYC", "KZ": "KAZ", "KY": "CYM", "SG": "SGP", "SE": "SWE", "SD": "SDN", "DO": "DOM", "DM": "DMA", "DJ": "DJI", "DK": "DNK", "VG": "VGB", "DE": "DEU", "YE": "YEM", "DZ": "DZA", "US": "USA", "UY": "URY", "YT": "MYT", "UM": "UMI", "LB": "LBN", "LC": "LCA", "LA": "LAO", "TV": "TUV", "TW": "TWN", "TT": "TTO", "TR": "TUR", "LK": "LKA", "LI": "LIE", "LV": "LVA", "TO": "TON", "LT": "LTU", "LU": "LUX", "LR": "LBR", "LS": "LSO", "TH": "THA", "TF": "ATF", "TG": "TGO", "TD": "TCD", "TC": "TCA", "LY": "LBY", "VA": "VAT", "VC": "VCT", "AE": "ARE", "AD": "AND", "AG": "ATG", "AF": "AFG", "AI": "AIA", "VI": "VIR", "IS": "ISL", "IR": "IRN", "AM": "ARM", "AL": "ALB", "AO": "AGO", "AN": "ANT", "AQ": "ATA", "AS": "ASM", "AR": "ARG", "AU": "AUS", "AT": "AUT", "AW": "ABW", "IN": "IND", "AX": "ALA", "AZ": "AZE", "IE": "IRL", "ID": "IDN", "UA": "UKR", "QA": "QAT", "MZ": "MOZ"},
// iso alpha-3 --> continent code
- ISO3toCONT: {"AGO": "AF", "DZA": "AF", "EGY": "AF", "BGD": "AS", "NER": "AF", "LIE": "EU", "NAM": "AF", "BGR": "EU", "BOL": "SA", "GHA": "AF", "CCK": "AS", "PAK": "AS", "CPV": "AF", "JOR": "AS", "LBR": "AF", "LBY": "AF", "MYS": "AS", "DOM": "NA", "PRI": "NA", "SXM": "NA", "PRK": "AS", "PSE": "AS", "TZA": "AF", "BWA": "AF", "KHM": "AS", "UMI": "OC", "NIC": "NA", "TTO": "NA", "ETH": "AF", "PRY": "SA", "HKG": "AS", "SAU": "AS", "LBN": "AS", "SVN": "EU", "BFA": "AF", "CHE": "EU", "MRT": "AF", "HRV": "EU", "CHL": "SA", "CHN": "AS", "KNA": "NA", "SLE": "AF", "JAM": "NA", "SMR": "EU", "GIB": "EU", "DJI": "AF", "GIN": "AF", "FIN": "EU", "URY": "SA", "THA": "AS", "STP": "AF", "SYC": "AF", "NPL": "AS", "CXR": "AS", "LAO": "AS", "YEM": "AS", "BVT": "AN", "ZAF": "AF", "KIR": "OC", "PHL": "AS", "ROU": "EU", "VIR": "NA", "SYR": "AS", "MAC": "AS", "MAF": "NA", "MLT": "EU", "KAZ": "AS", "TCA": "NA", "PYF": "OC", "NIU": "OC", "DMA": "NA", "BEN": "AF", "GUF": "SA", "BEL": "EU", "MSR": "NA", "TGO": "AF", "DEU": "EU", "GUM": "OC", "LKA": "AS", "SSD": "AF", "FLK": "SA", "GBR": "EU", "BES": "NA", "GUY": "SA", "CRI": "NA", "CMR": "AF", "MAR": "AF", "MNP": "OC", "LSO": "AF", "HUN": "EU", "TKM": "AS", "SUR": "SA", "NLD": "EU", "BMU": "NA", "HMD": "AN", "TCD": "AF", "GEO": "AS", "MNE": "EU", "MNG": "AS", "MHL": "OC", "MTQ": "NA", "BLZ": "NA", "NFK": "OC", "MMR": "AS", "AFG": "AS", "BDI": "AF", "VGB": "NA", "BLR": "EU", "BLM": "NA", "GRD": "NA", "TKL": "OC", "GRC": "EU", "RUS": "EU", "GRL": "NA", "SHN": "AF", "AND": "EU", "MOZ": "AF", "TJK": "AS", "XKX": "EU", "HTI": "NA", "MEX": "NA", "ANT": "NA", "ZWE": "AF", "LCA": "NA", "IND": "AS", "LVA": "EU", "BTN": "AS", "VCT": "NA", "VNM": "AS", "NOR": "EU", "CZE": "EU", "ATF": "AN", "ATG": "NA", "FJI": "OC", "IOT": "AS", "HND": "NA", "MUS": "AF", "ATA": "AN", "LUX": "EU", "ISR": "AS", "FSM": "OC", "PER": "SA", "REU": "AF", "IDN": "AS", "VUT": "OC", "MKD": "EU", "COD": "AF", "COG": "AF", "ISL": "EU", "GLP": "NA", "COK": "OC", "COM": "AF", "COL": "SA", "NGA": "AF", "TLS": "OC", "TWN": "AS", "PRT": "EU", "MDA": "EU", "GGY": "EU", "MDG": "AF", "ECU": "SA", "SEN": "AF", "NZL": "OC", "MDV": "AS", "ASM": "OC", "SPM": "NA", "CUW": "NA", "FRA": "EU", "LTU": "EU", "RWA": "AF", "ZMB": "AF", "GMB": "AF", "WLF": "OC", "JEY": "EU", "FRO": "EU", "GTM": "NA", "DNK": "EU", "IMN": "EU", "AUS": "OC", "AUT": "EU", "SJM": "EU", "VEN": "SA", "PLW": "OC", "KEN": "AF", "MYT": "AF", "WSM": "OC", "TUR": "AS", "ALB": "EU", "OMN": "AS", "TUV": "OC", "ALA": "EU", "BRN": "AS", "TUN": "AF", "PCN": "OC", "BRB": "NA", "BRA": "SA", "CIV": "AF", "SRB": "EU", "GNQ": "AF", "USA": "NA", "QAT": "AS", "SWE": "EU", "AZE": "AS", "GNB": "AF", "SWZ": "AF", "TON": "OC", "CAN": "NA", "UKR": "EU", "KOR": "AS", "AIA": "NA", "CAF": "AF", "SVK": "EU", "CYP": "EU", "BIH": "EU", "SGP": "AS", "SGS": "AN", "SOM": "AF", "UZB": "AS", "ERI": "AF", "POL": "EU", "KWT": "AS", "SCG": "EU", "GAB": "AF", "CYM": "NA", "VAT": "EU", "EST": "EU", "MWI": "AF", "ESP": "EU", "IRQ": "AS", "SLV": "NA", "MLI": "AF", "IRL": "EU", "IRN": "AS", "ABW": "NA", "PNG": "OC", "PAN": "NA", "SDN": "AF", "SLB": "OC", "ESH": "AF", "MCO": "EU", "ITA": "EU", "JPN": "AS", "KGZ": "AS", "UGA": "AF", "NCL": "OC", "ARE": "AS", "ARG": "SA", "BHS": "NA", "BHR": "AS", "ARM": "AS", "NRU": "OC", "CUB": "NA"},
+ ISO3toCONT: {"AGO": "AF", "DZA": "AF", "EGY": "AF", "BGD": "AS", "NER": "AF", "LIE": "EU", "NAM": "AF", "BGR": "EU", "BOL": "SA", "GHA": "AF", "CCK": "AS", "PAK": "AS", "CPV": "AF", "JOR": "AS", "LBR": "AF", "LBY": "AF", "MYS": "OC", "DOM": "NA", "PRI": "NA", "SXM": "NA", "PRK": "AS", "PSE": "AS", "TZA": "AF", "BWA": "AF", "KHM": "AS", "UMI": "OC", "NIC": "NA", "TTO": "NA", "ETH": "AF", "PRY": "SA", "HKG": "AS", "SAU": "AS", "LBN": "AS", "SVN": "EU", "BFA": "AF", "CHE": "EU", "MRT": "AF", "HRV": "EU", "CHL": "SA", "CHN": "AS", "KNA": "NA", "SLE": "AF", "JAM": "NA", "SMR": "EU", "GIB": "EU", "DJI": "AF", "GIN": "AF", "FIN": "EU", "URY": "SA", "THA": "AS", "STP": "AF", "SYC": "AF", "NPL": "AS", "CXR": "AS", "LAO": "AS", "YEM": "AS", "BVT": "AN", "ZAF": "AF", "KIR": "OC", "PHL": "AS", "ROU": "EU", "VIR": "NA", "SYR": "AS", "MAC": "AS", "MAF": "NA", "MLT": "EU", "KAZ": "AS", "TCA": "NA", "PYF": "OC", "NIU": "OC", "DMA": "NA", "BEN": "AF", "GUF": "SA", "BEL": "EU", "MSR": "NA", "TGO": "AF", "DEU": "EU", "GUM": "OC", "LKA": "AS", "SSD": "AF", "FLK": "SA", "GBR": "EU", "BES": "NA", "GUY": "SA", "CRI": "NA", "CMR": "AF", "MAR": "AF", "MNP": "OC", "LSO": "AF", "HUN": "EU", "TKM": "AS", "SUR": "SA", "NLD": "EU", "BMU": "NA", "HMD": "AN", "TCD": "AF", "GEO": "AS", "MNE": "EU", "MNG": "AS", "MHL": "OC", "MTQ": "NA", "BLZ": "NA", "NFK": "OC", "MMR": "AS", "AFG": "AS", "BDI": "AF", "VGB": "NA", "BLR": "EU", "BLM": "NA", "GRD": "NA", "TKL": "OC", "GRC": "EU", "RUS": "EU", "GRL": "NA", "SHN": "AF", "AND": "EU", "MOZ": "AF", "TJK": "AS", "XKX": "EU", "HTI": "NA", "MEX": "NA", "ANT": "NA", "ZWE": "AF", "LCA": "NA", "IND": "AS", "LVA": "EU", "BTN": "AS", "VCT": "NA", "VNM": "AS", "NOR": "EU", "CZE": "EU", "ATF": "AN", "ATG": "NA", "FJI": "OC", "IOT": "AS", "HND": "NA", "MUS": "AF", "ATA": "AN", "LUX": "EU", "ISR": "AS", "FSM": "OC", "PER": "SA", "REU": "AF", "IDN": "OC", "VUT": "OC", "MKD": "EU", "COD": "AF", "COG": "AF", "ISL": "EU", "GLP": "NA", "COK": "OC", "COM": "AF", "COL": "SA", "NGA": "AF", "TLS": "OC", "TWN": "AS", "PRT": "EU", "MDA": "EU", "GGY": "EU", "MDG": "AF", "ECU": "SA", "SEN": "AF", "NZL": "OC", "MDV": "AS", "ASM": "OC", "SPM": "NA", "CUW": "NA", "FRA": "EU", "LTU": "EU", "RWA": "AF", "ZMB": "AF", "GMB": "AF", "WLF": "OC", "JEY": "EU", "FRO": "EU", "GTM": "NA", "DNK": "EU", "IMN": "EU", "AUS": "OC", "AUT": "EU", "SJM": "EU", "VEN": "SA", "PLW": "OC", "KEN": "AF", "MYT": "AF", "WSM": "OC", "TUR": "AS", "ALB": "EU", "OMN": "AS", "TUV": "OC", "ALA": "EU", "BRN": "AS", "TUN": "AF", "PCN": "OC", "BRB": "NA", "BRA": "SA", "CIV": "AF", "SRB": "EU", "GNQ": "AF", "USA": "NA", "QAT": "AS", "SWE": "EU", "AZE": "AS", "GNB": "AF", "SWZ": "AF", "TON": "OC", "CAN": "NA", "UKR": "EU", "KOR": "AS", "AIA": "NA", "CAF": "AF", "SVK": "EU", "CYP": "EU", "BIH": "EU", "SGP": "AS", "SGS": "AN", "SOM": "AF", "UZB": "AS", "ERI": "AF", "POL": "EU", "KWT": "AS", "SCG": "EU", "GAB": "AF", "CYM": "NA", "VAT": "EU", "EST": "EU", "MWI": "AF", "ESP": "EU", "IRQ": "AS", "SLV": "NA", "MLI": "AF", "IRL": "EU", "IRN": "AS", "ABW": "NA", "PNG": "OC", "PAN": "NA", "SDN": "AF", "SLB": "OC", "ESH": "AF", "MCO": "EU", "ITA": "EU", "JPN": "AS", "KGZ": "AS", "UGA": "AF", "NCL": "OC", "ARE": "AS", "ARG": "SA", "BHS": "NA", "BHR": "AS", "ARM": "AS", "NRU": "OC", "CUB": "NA"},
// special region aggregation for some countries
aggregate: {
diff --git a/plugins/UsersManager/tests/Integration/UserInviteTest.php b/plugins/UsersManager/tests/Integration/UserInviteTest.php
index 098089d33e..321f037d3c 100644
--- a/plugins/UsersManager/tests/Integration/UserInviteTest.php
+++ b/plugins/UsersManager/tests/Integration/UserInviteTest.php
@@ -60,7 +60,7 @@ class UserInviteTest extends IntegrationTestCase
$response = Http::sendHttpRequest(Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php?module=Login&action=acceptInvitation&token=' . $this->token,
10);
- $this->assertStringContainsString('Accept Invitation', $response, 'error on accept invitation');
+ $this->assertStringContainsString('Accept invitation', $response, 'error on accept invitation');
}
}
diff --git a/plugins/UsersManager/tests/UI/UsersManager_spec.js b/plugins/UsersManager/tests/UI/UsersManager_spec.js
index 9feb4e0fb8..e4e4b58e64 100644
--- a/plugins/UsersManager/tests/UI/UsersManager_spec.js
+++ b/plugins/UsersManager/tests/UI/UsersManager_spec.js
@@ -172,12 +172,6 @@ describe("UsersManager", function () {
});
it('should delete a single user when the modal is confirmed is clicked', async function () {
-
- await page.evaluate(function () {
- $('select[name=access-level-filter]').val('string:view').change();
- $('#user-text-filter').val('ight').change();
- });
-
await (await page.jQuery('.deleteuser:eq(0)')).click();
await (await page.jQuery('.delete-user-confirm-modal .modal-close:not(.modal-no):visible')).click();
await page.waitForNetworkIdle();
@@ -440,6 +434,7 @@ describe("UsersManager", function () {
it('should display the superuser access tab when the superuser tab is clicked', async function () {
await page.click('.userEditForm .menuSuperuser');
await page.mouse.move(0, 0);
+ await page.waitForTimeout(100);
expect(await page.screenshotSelector('.usersManager')).to.matchImage('superuser_tab');
});
@@ -490,7 +485,7 @@ describe("UsersManager", function () {
});
it('should show the edit user form when the edit icon in a row is clicked', async function () {
- await (await page.jQuery('button.edituser:eq(1)', { waitFor: true })).click();
+ await (await page.jQuery('button.edituser:eq(2)', { waitFor: true })).click();
await page.waitForTimeout(250);
await page.waitForNetworkIdle();
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 ed6d558535..3ce45b448c 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:3f7a1c8ede3bb61b869dbab37be56d784879f3d7be5c4e80bb86e7f275487374
-size 136964
+oid sha256:d900ab4e0295bbe056d943cf62f2c7b9bfa4de96bb2269612d0063dde7434e20
+size 136766
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 dca72af936..3aee339185 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:92168d09555061bed7c9744f3b5252fc5328a24c51f80df7cb56331b398c04be
-size 26969
+oid sha256:92825d9f4fb5080afd23dbabf519d2be4d4964a6623c3da11f4820f1517115a6
+size 169385
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 fc91101f8b..ca7bf2eacc 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:7f4cb4fcec0ec3eebad0063bddbfd1d7e0c8410a64ee8569d5ef78f8df3302a5
-size 170348
+oid sha256:6ae36fbee0d0eceb6b320808da446b9f7538e12c926bd55271b9909b4bef191d
+size 170695
diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_asks_confirmation.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_asks_confirmation.png
index 7854904373..e44dd90328 100644
--- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_asks_confirmation.png
+++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_asks_confirmation.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:86f5888587a18b98c0118ad5709d6d3d98486ac8f3f5f5f6c82a5936d72eafed
-size 21978
+oid sha256:3b47b430f67f92811615b9b10dafc3137923b849580f50256598bc33e92d3bc5
+size 21831
diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_confirmed_wrong_password.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_confirmed_wrong_password.png
index c5325fd782..c3a3455aaf 100644
--- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_confirmed_wrong_password.png
+++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_basic_confirmed_wrong_password.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:052ed4ad65093f9967ddf7366847fc53fae99260bdbfced20f7bf11f9e33d3f2
-size 31099
+oid sha256:319f8ab21d7da64f61896b14966b3a290682a294b25e5372d22bd8ed8efb999d
+size 30872
diff --git a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_form.png b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_form.png
index 107d81d036..3e090100ff 100644
--- a/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_form.png
+++ b/plugins/UsersManager/tests/UI/expected-screenshots/UsersManager_edit_user_form.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:37d8b53b65dbe7e0b696f83e5ab4b8a2e4787ad5a524eb6dd619f1d3f5f56d82
-size 24864
+oid sha256:6808d97c5c13d69a0a622c925bd77000d8ec9807d5adc574f4961c88632863d1
+size 24258
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 953c45f5cb..9dbfe8223d 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:d15a7db15186c51b0103b34a6c842a10175a9993cc8c16a273c1f4bfb6bcafea
-size 167125
+oid sha256:5575d62aec7479771521771d917833f917118ed81d0a26a09c5bfa340c956842
+size 180151
diff --git a/plugins/WebsiteMeasurable/MeasurableSettings.php b/plugins/WebsiteMeasurable/MeasurableSettings.php
index 749a32e8a3..ddea90083d 100644
--- a/plugins/WebsiteMeasurable/MeasurableSettings.php
+++ b/plugins/WebsiteMeasurable/MeasurableSettings.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -7,16 +8,19 @@
*/
namespace Piwik\Plugins\WebsiteMeasurable;
+
use Piwik\IP;
use Piwik\Measurable\Type\TypeManager;
use Matomo\Network\IPUtils;
use Piwik\Piwik;
use Piwik\Plugin;
use Piwik\Plugins\WebsiteMeasurable\Settings\Urls;
+use Piwik\Settings\Measurable\MeasurableProperty;
use Piwik\Settings\Setting;
use Piwik\Settings\FieldConfig;
use Piwik\Plugins\SitesManager;
use Exception;
+use Piwik\UrlHelper;
/**
* Defines Settings for ExampleSettingsPlugin.
@@ -62,6 +66,9 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
public $excludedParameters;
/** @var Setting */
+ public $excludedReferrers;
+
+ /** @var Setting */
public $ecommerce;
/**
@@ -84,8 +91,13 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
*/
private $unsetSiteSearchKeywords = false;
- public function __construct(SitesManager\API $api, Plugin\Manager $pluginManager, TypeManager $typeManager, $idSite, $idMeasurableType)
- {
+ public function __construct(
+ SitesManager\API $api,
+ Plugin\Manager $pluginManager,
+ TypeManager $typeManager,
+ $idSite,
+ $idMeasurableType
+ ) {
$this->sitesManagerApi = $api;
$this->pluginManager = $pluginManager;
$this->typeManager = $typeManager;
@@ -119,6 +131,7 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$this->excludedIps = $this->makeExcludeIps();
$this->excludedParameters = $this->makeExcludedParameters();
$this->excludedUserAgents = $this->makeExcludedUserAgents();
+ $this->excludedReferrers = $this->makeExcludedReferrers($this->sitesManagerApi);
/**
* SiteSearch
@@ -139,7 +152,7 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$this->ecommerce = $this->makeEcommerce();
}
- private function makeExcludeUnknownUrls()
+ private function makeExcludeUnknownUrls(): MeasurableProperty
{
return $this->makeProperty('exclude_unknown_urls', $default = false, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
$field->title = Piwik::translate('SitesManager_OnlyMatchedUrlsAllowed');
@@ -150,7 +163,7 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
});
}
- private function makeKeepUrlFragments(SitesManager\API $sitesManagerApi)
+ private function makeKeepUrlFragments(SitesManager\API $sitesManagerApi): MeasurableProperty
{
return $this->makeProperty('keep_url_fragment', $default = '0', FieldConfig::TYPE_STRING, function (FieldConfig $field) use ($sitesManagerApi) {
$field->title = Piwik::translate('SitesManager_KeepURLFragmentsLong');
@@ -162,29 +175,29 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$default = Piwik::translate('General_No');
}
- $field->availableValues = array(
+ $field->availableValues = [
'0' => $default . ' (' . Piwik::translate('General_Default') . ')',
'1' => Piwik::translate('General_Yes'),
'2' => Piwik::translate('General_No')
- );
+ ];
});
}
- private function makeExcludeIps()
+ private function makeExcludeIps(): MeasurableProperty
{
- return $this->makeProperty('excluded_ips', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
+ return $this->makeProperty('excluded_ips', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
$ip = IP::getIpFromHeader();
$field->title = Piwik::translate('SitesManager_ExcludedIps');
- $field->inlineHelp = Piwik::translate('SitesManager_HelpExcludedIpAddresses', array('1.2.3.4/24', '1.2.3.*', '1.2.*.*'))
+ $field->inlineHelp = Piwik::translate('SitesManager_HelpExcludedIpAddresses', ['1.2.3.4/24', '1.2.3.*', '1.2.*.*'])
. '<br /><br />'
- . Piwik::translate('SitesManager_YourCurrentIpAddressIs', array('<i>' . $ip . '</i>'));
+ . Piwik::translate('SitesManager_YourCurrentIpAddressIs', ['<i>' . $ip . '</i>']);
$field->uiControl = FieldConfig::UI_CONTROL_TEXTAREA;
- $field->uiControlAttributes = array(
+ $field->uiControlAttributes = [
'cols' => '20',
'rows' => '4',
'placeholder' => $ip,
- );
+ ];
$field->validate = function ($value) {
if (!empty($value)) {
@@ -193,14 +206,14 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
foreach ($ips as $ip) {
if (IPUtils::getIPRangeBounds($ip) === null) {
- throw new Exception(Piwik::translate('SitesManager_ExceptionInvalidIPFormat', array($ip, "1.2.3.4, 1.2.3.*, or 1.2.3.4/5")));
+ throw new Exception(Piwik::translate('SitesManager_ExceptionInvalidIPFormat', [$ip, "1.2.3.4, 1.2.3.*, or 1.2.3.4/5"]));
}
}
}
};
$field->transform = function ($value) {
if (empty($value)) {
- return array();
+ return [];
}
$ips = array_map('trim', $value);
@@ -210,26 +223,26 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
});
}
- private function makeExcludedParameters()
+ private function makeExcludedParameters(): MeasurableProperty
{
$self = $this;
- return $this->makeProperty('excluded_parameters', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($self) {
+ return $this->makeProperty('excluded_parameters', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($self) {
$field->title = Piwik::translate('SitesManager_ExcludedParameters');
$field->inlineHelp = Piwik::translate('SitesManager_ListOfQueryParametersToExclude', "/^sess.*|.*[dD]ate$/")
. '<br /><br />'
- . Piwik::translate('SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters', array('phpsessid, sessionid, ...'));
+ . Piwik::translate('SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters', ['phpsessid, sessionid, ...']);
$field->uiControl = FieldConfig::UI_CONTROL_TEXTAREA;
- $field->uiControlAttributes = array('cols' => '20', 'rows' => '4');
+ $field->uiControlAttributes = ['cols' => '20', 'rows' => '4'];
$field->transform = function ($value) use ($self) {
return $self->checkAndReturnCommaSeparatedStringList($value);
};
});
}
- private function makeExcludedUserAgents()
+ private function makeExcludedUserAgents(): MeasurableProperty
{
$self = $this;
- return $this->makeProperty('excluded_user_agents', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($self) {
+ return $this->makeProperty('excluded_user_agents', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($self) {
$field->title = Piwik::translate('SitesManager_ExcludedUserAgents');
$field->inlineHelp = Piwik::translate('SitesManager_GlobalExcludedUserAgentHelp1')
. '<br /><br />'
@@ -239,23 +252,80 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
. Piwik::translate('SitesManager_GlobalExcludedUserAgentHelp3', "/bot|spider|crawl|scanner/i")
;
$field->uiControl = FieldConfig::UI_CONTROL_TEXTAREA;
- $field->uiControlAttributes = array('cols' => '20', 'rows' => '4');
+ $field->uiControlAttributes = ['cols' => '20', 'rows' => '4'];
$field->transform = function ($value) use ($self) {
return $self->checkAndReturnCommaSeparatedStringList($value);
};
});
}
- private function makeSiteSearch()
+ private function makeExcludedReferrers(SitesManager\API $sitesManagerApi): MeasurableProperty
+ {
+ $self = $this;
+ return $this->makeProperty('excluded_referrers', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($sitesManagerApi, $self) {
+ $field->title = Piwik::translate('SitesManager_ExcludedReferrers');
+
+ $referrersGlobal = $sitesManagerApi->getExcludedReferrersGlobal();
+
+ $field->inlineHelp = Piwik::translate('SitesManager_ExcludedReferrersHelp')
+ . '<br /><br />'
+ . Piwik::translate('SitesManager_ExcludedReferrersHelpDetails')
+ . '<br />'
+ . Piwik::translate('SitesManager_ExcludedReferrersHelpExamples', [
+ 'www.example.org',
+ 'http://example.org/mypath',
+ 'https://www.example.org/?param=1',
+ 'https://sub.example.org/'
+ ])
+ . '<br /><br />'
+ . Piwik::translate('SitesManager_ExcludedReferrersHelpSubDomains', [
+ '.sub.example.org',
+ 'http://sub.example.org/mypath',
+ 'https://new.sub.example.org/'
+ ])
+ ;
+
+ if (!empty($referrersGlobal)) {
+ $field->inlineHelp .= '<br /><br />'
+ . '<strong>' . Piwik::translate('SitesManager_GlobalListExcludedReferrers') . '</strong><br />'
+ . $referrersGlobal;
+ }
+ $field->uiControl = FieldConfig::UI_CONTROL_TEXTAREA;
+ $field->uiControlAttributes = ['cols' => '20', 'rows' => '4'];
+ $field->validate = function ($value) {
+ if (!empty($value)) {
+ $urls = array_map('trim', $value);
+ $urls = array_filter($urls, 'strlen');
+
+ foreach ($urls as $url) {
+ // We allow urls to be provided:
+ // - fully qualified like http://example.url/path
+ // - without protocol like example.url/path
+ // - with subdomain wildcard like .example.url/path
+ $prefixedUrl = 'https://' . ltrim(preg_replace('/^https?:\/\//', '', $url), '.');
+ $parsedUrl = @parse_url($prefixedUrl);
+ if (false === $parsedUrl || !UrlHelper::isLookLikeUrl($prefixedUrl)) {
+ throw new Exception(Piwik::translate('SitesManager_ExceptionInvalidUrl', [$url]));
+ }
+ }
+ }
+ };
+ $field->transform = function ($value) use ($self) {
+ return $self->checkAndReturnCommaSeparatedStringList($value);
+ };
+ });
+ }
+
+ private function makeSiteSearch(): MeasurableProperty
{
return $this->makeProperty('sitesearch', $default = 1, FieldConfig::TYPE_INT, function (FieldConfig $field) {
$field->title = Piwik::translate('Actions_SubmenuSitesearch');
$field->inlineHelp = Piwik::translate('SitesManager_SiteSearchUse');
$field->uiControl = FieldConfig::UI_CONTROL_SINGLE_SELECT;
- $field->availableValues = array(
+ $field->availableValues = [
1 => Piwik::translate('SitesManager_EnableSiteSearch'),
0 => Piwik::translate('SitesManager_DisableSiteSearch')
- );
+ ];
});
}
@@ -265,9 +335,9 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
return $this->makeSetting('use_default_site_search_params', $default = true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) use ($sitesManagerApi, $settings) {
if (Piwik::hasUserSuperUserAccess()) {
- $title = Piwik::translate('SitesManager_SearchUseDefault', array("<a href='#globalSettings'>","</a>"));
+ $title = Piwik::translate('SitesManager_SearchUseDefault', ["<a href='#globalSettings'>","</a>"]);
} else {
- $title = Piwik::translate('SitesManager_SearchUseDefault', array('', ''));
+ $title = Piwik::translate('SitesManager_SearchUseDefault', ['', '']);
}
$field->title = $title;
@@ -301,7 +371,7 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
private function makeSiteSearchKeywords()
{
$settings = $this;
- return $this->makeProperty('sitesearch_keyword_parameters', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($settings) {
+ return $this->makeProperty('sitesearch_keyword_parameters', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($settings) {
$field->title = Piwik::translate('SitesManager_SearchKeywordLabel');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->inlineHelp = Piwik::translate('SitesManager_SearchKeywordParametersDesc');
@@ -317,7 +387,7 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
private function makeSiteSearchCategory(Plugin\Manager $pluginManager)
{
- return $this->makeProperty('sitesearch_category_parameters', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($pluginManager) {
+ return $this->makeProperty('sitesearch_category_parameters', $default = [], FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($pluginManager) {
$field->title = Piwik::translate('SitesManager_SearchCategoryLabel');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->inlineHelp = Piwik::translate('Goals_Optional')
@@ -334,20 +404,22 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$field->title = Piwik::translate('Goals_Ecommerce');
$field->inlineHelp = Piwik::translate('SitesManager_EcommerceHelp')
. '<br />'
- . Piwik::translate('SitesManager_PiwikOffersEcommerceAnalytics',
- array("<a href='https://matomo.org/docs/ecommerce-analytics/' target='_blank'>", '</a>'));
+ . Piwik::translate(
+ 'SitesManager_PiwikOffersEcommerceAnalytics',
+ ["<a href='https://matomo.org/docs/ecommerce-analytics/' target='_blank'>", '</a>']
+ );
$field->uiControl = FieldConfig::UI_CONTROL_SINGLE_SELECT;
- $field->availableValues = array(
+ $field->availableValues = [
0 => Piwik::translate('SitesManager_NotAnEcommerceSite'),
1 => Piwik::translate('SitesManager_EnableEcommerce')
- );
+ ];
});
}
public function checkAndReturnCommaSeparatedStringList($parameters)
{
if (empty($parameters)) {
- return array();
+ return [];
}
$parameters = array_map('trim', $parameters);
@@ -355,5 +427,4 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$parameters = array_unique($parameters);
return $parameters;
}
-
}
diff --git a/tests/PHPUnit/Fixtures/OmniFixture.php b/tests/PHPUnit/Fixtures/OmniFixture.php
index c6e36aa67b..9be299fa93 100644
--- a/tests/PHPUnit/Fixtures/OmniFixture.php
+++ b/tests/PHPUnit/Fixtures/OmniFixture.php
@@ -194,6 +194,7 @@ class OmniFixture extends Fixture
'group' => $properties['group'],
'startDate' => $properties['ts_created'],
'excludedUserAgents' => $properties['excluded_user_agents'],
+ 'excludedReferrers' => $properties['excluded_referrers'],
'keepURLFragments' => $properties['keep_url_fragment'],
'type' => $properties['type'],
'excludeUnknownUrls' => $properties['exclude_unknown_urls']
diff --git a/tests/PHPUnit/Fixtures/UITestFixture.php b/tests/PHPUnit/Fixtures/UITestFixture.php
index dcb6bd2c64..65fa4b8273 100644
--- a/tests/PHPUnit/Fixtures/UITestFixture.php
+++ b/tests/PHPUnit/Fixtures/UITestFixture.php
@@ -1,10 +1,12 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
+
namespace Piwik\Tests\Fixtures;
use Exception;
@@ -76,8 +78,9 @@ class UITestFixture extends SqlDump
self::updateDatabase();
// make sure site has an early enough creation date (for period selector tests)
- Db::get()->update(Common::prefixTable("site"),
- array('ts_created' => '2011-01-01'),
+ Db::get()->update(
+ Common::prefixTable("site"),
+ ['ts_created' => '2011-01-01'],
"idsite = 1"
);
@@ -97,11 +100,11 @@ class UITestFixture extends SqlDump
// create non super user
UsersManagerAPI::getInstance()->addUser('oliverqueen', 'smartypants', 'oli@queenindustries.com');
- UsersManagerAPI::getInstance()->setUserAccess('oliverqueen', 'view', array(1));
+ UsersManagerAPI::getInstance()->setUserAccess('oliverqueen', 'view', [1]);
// another non super user
UsersManagerAPI::getInstance()->addUser('anotheruser', 'anotheruser', 'someemail@email.com');
- UsersManagerAPI::getInstance()->setUserAccess('anotheruser', 'view', array(1));
+ UsersManagerAPI::getInstance()->setUserAccess('anotheruser', 'view', [1]);
// add xss scheduled report
APIScheduledReports::getInstance()->addReport(
@@ -112,7 +115,7 @@ class UITestFixture extends SqlDump
ScheduledReports::EMAIL_TYPE,
ReportRenderer::HTML_FORMAT,
['ExampleAPI_xssReportforTwig', 'ExampleAPI_xssReportforAngular'],
- array(ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_ONLY)
+ [ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_ONLY]
);
APIScheduledReports::getInstance()->addReport(
$idSite = 1,
@@ -122,7 +125,7 @@ class UITestFixture extends SqlDump
ScheduledReports::EMAIL_TYPE,
ReportRenderer::HTML_FORMAT,
['ExampleAPI_xssReportforTwig', 'ExampleAPI_xssReportforAngular'],
- array(ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_ONLY)
+ [ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_ONLY]
);
$this->addDangerousLinks();
@@ -132,23 +135,23 @@ class UITestFixture extends SqlDump
if (empty($user)) {
$model->addUser(self::VIEW_USER_LOGIN, self::VIEW_USER_PASSWORD, 'hello2@example.org', Date::now()->getDatetime());
- $model->addUserAccess(self::VIEW_USER_LOGIN, 'view', array(1, 3));
+ $model->addUserAccess(self::VIEW_USER_LOGIN, 'view', [1, 3]);
} else {
$model->updateUser(self::VIEW_USER_LOGIN, self::VIEW_USER_PASSWORD, 'hello2@example.org');
}
if (!$model->getUserByTokenAuth(self::VIEW_USER_TOKEN)) {
- $model->addTokenAuth(self::VIEW_USER_LOGIN,self::VIEW_USER_TOKEN, 'View user token', Date::now()->getDatetime());
+ $model->addTokenAuth(self::VIEW_USER_LOGIN, self::VIEW_USER_TOKEN, 'View user token', Date::now()->getDatetime());
}
}
public function performSetUp($setupEnvironmentOnly = false)
{
- $this->extraTestEnvVars = array(
+ $this->extraTestEnvVars = [
'loadRealTranslations' => 1,
- );
- $this->extraPluginsToLoad = array(
+ ];
+ $this->extraPluginsToLoad = [
'CustomDirPlugin'
- );
+ ];
parent::performSetUp($setupEnvironmentOnly);
@@ -159,7 +162,8 @@ class UITestFixture extends SqlDump
$visitorIdDeterministic = bin2hex(Db::fetchOne(
"SELECT idvisitor FROM " . Common::prefixTable('log_visit')
- . " WHERE idsite = 2 AND location_latitude IS NOT NULL LIMIT 1"));
+ . " WHERE idsite = 2 AND location_latitude IS NOT NULL LIMIT 1"
+ ));
$this->testEnvironment->forcedIdVisitor = $visitorIdDeterministic;
$this->testEnvironment->overlayUrl = self::getLocalTestSiteUrl();
@@ -192,42 +196,43 @@ class UITestFixture extends SqlDump
{
$baseUrl = $this->getLocalTestSiteUrl();
- $visitProfiles = array(
- array('', 'page-1.html', 'page-2.html', 'page-3.html', ''),
- array('', 'page-3.html', 'page-4.html'),
- array('', 'page-4.html'),
- array('', 'page-1.html', 'page-3.html', 'page-4.html'),
- array('', 'page-4.html', 'page-1.html'),
- array('', 'page-1.html', ''),
- array('page-4.html', ''),
- array('', 'page-2.html', 'page-3.html'),
- array('', 'page-1.html', 'page-2.html'),
- array('', 'page-6.html', 'page-5.html', 'page-4.html', 'page-3.html', 'page-2.html', 'page-1.html', ''),
- array('', 'page-5.html', 'page-3.html', 'page-1.html'),
- array('', 'page-1.html', 'page-2.html', 'page-3.html'),
- array('', 'page-4.html', 'page-3.html'),
- array('', 'page-1.html', ''),
- array('page-6.html', 'page-3.html', ''),
- );
+ $visitProfiles = [
+ ['', 'page-1.html', 'page-2.html', 'page-3.html', ''],
+ ['', 'page-3.html', 'page-4.html'],
+ ['', 'page-4.html'],
+ ['', 'page-1.html', 'page-3.html', 'page-4.html'],
+ ['', 'page-4.html', 'page-1.html'],
+ ['', 'page-1.html', ''],
+ ['page-4.html', ''],
+ ['', 'page-2.html', 'page-3.html'],
+ ['', 'page-1.html', 'page-2.html'],
+ ['', 'page-6.html', 'page-5.html', 'page-4.html', 'page-3.html', 'page-2.html', 'page-1.html', ''],
+ ['', 'page-5.html', 'page-3.html', 'page-1.html'],
+ ['', 'page-1.html', 'page-2.html', 'page-3.html'],
+ ['', 'page-4.html', 'page-3.html'],
+ ['', 'page-1.html', ''],
+ ['page-6.html', 'page-3.html', ''],
+ ];
- $ips = array( // ip's chosen for geolocation data
- "72.44.32.12",
- "50.112.3.5",
- "70.117.169.113",
- "73.77.55.45",
- "206.190.75.8",
- "108.211.181.12",
- "174.97.139.63",
- "24.125.31.147",
- "67.51.31.21",
- "156.5.3.1",
- "194.57.91.215",
- "137.82.130.1",
- "113.62.1.1",
- "151.100.101.92",
- "72.44.32.10",
- "95.81.66.139",
- );
+ // ip's chosen for geolocation data
+ $ips = [
+ '72.44.32.12', // not mapped, so defaults to France, without details
+ '50.112.3.5', // San Jose, California, United States
+ '70.117.169.113', // El Paso, Texas, United States
+ '73.77.55.45', // Mount Laurel, New Jersey, United States
+ '206.190.75.8', // Lake Forest, California, United States
+ '108.211.181.12', // San Francisco, California, United States
+ '174.97.139.63', // Raleigh, North Carolina, United States
+ '24.125.31.147', // Mechanicsville, Virginia, United States
+ '67.51.31.21', // Ogden, Utah, United States
+ '156.5.3.1', // Englewood Cliffs, New Jersey, United States
+ '194.57.91.215', // Besançon, Bourgogne-Franche-Comte, France
+ '137.82.130.1', // Vancouver, British Columbia, Canada
+ '113.62.1.1', // Lhasa, Tibet, China
+ '151.100.101.92', // Rome, Latium, Italy
+ '72.44.32.10', // Ashburn, Virginia, United States
+ '95.81.66.139', // Tabriz, East Azerbaijan, Iran
+ ];
$userAgents = [
'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36',
@@ -249,7 +254,7 @@ class UITestFixture extends SqlDump
];
$date = Date::factory('yesterday');
- $t = self::getTracker($idSite = 3, $dateTime = $date->getDatetime(), $defaultInit = true);
+ $t = self::getTracker(3, $date->getDatetime(), true);
$t->enableBulkTracking();
foreach ($visitProfiles as $visitCount => $visit) {
@@ -282,13 +287,15 @@ class UITestFixture extends SqlDump
Filesystem::unlinkRecursive($realDir, true);
}
- $files = array('index.html', 'page-1.html', 'page-2.html', 'page-3.html', 'page-4.html', 'page-5.html', 'page-6.html');
+ $files = ['index.html', 'page-1.html', 'page-2.html', 'page-3.html', 'page-4.html', 'page-5.html', 'page-6.html'];
// copy templates to overlay-test-site-real
mkdir($realDir);
foreach ($files as $file) {
- copy(PIWIK_INCLUDE_PATH . "/tests/resources/overlay-test-site/$file",
- PIWIK_INCLUDE_PATH . "/tests/resources/overlay-test-site-real/$file");
+ copy(
+ PIWIK_INCLUDE_PATH . "/tests/resources/overlay-test-site/$file",
+ PIWIK_INCLUDE_PATH . "/tests/resources/overlay-test-site-real/$file"
+ );
}
// replace URL in copied files
@@ -318,11 +325,21 @@ class UITestFixture extends SqlDump
private function addNewSitesForSiteSelector()
{
for ($i = 0; $i != 8; ++$i) {
- self::createWebsite("2011-01-01 00:00:00", $ecommerce = 1, $siteName = "Site #$i",
- $siteUrl = "http://site$i.com", 1, null, null,
- null, null, 0,
+ self::createWebsite(
+ "2011-01-01 00:00:00",
+ $ecommerce = 1,
+ $siteName = "Site #$i",
+ $siteUrl = "http://site$i.com",
+ 1,
+ null,
+ null,
+ null,
+ null,
+ 0,
implode(',', [$this->xssTesting->forTwig('excludedparameter'),
- $this->xssTesting->forAngular('excludedparameter'),'sid']));
+ $this->xssTesting->forAngular('excludedparameter'),
+ 'sid'])
+ );
}
}
@@ -332,12 +349,12 @@ class UITestFixture extends SqlDump
$dashboardColumnCount = 3;
$dashboardCount = 4;
- $layout = array();
+ $layout = [];
for ($j = 0; $j != $dashboardColumnCount; ++$j) {
- $layout[] = array();
+ $layout[] = [];
}
- $dashboards = array();
+ $dashboards = [];
for ($i = 0; $i != $dashboardCount; ++$i) {
$dashboards[] = $layout;
}
@@ -347,9 +364,9 @@ class UITestFixture extends SqlDump
$_GET['token_auth'] = \Piwik\Piwik::getCurrentUserTokenAuth();
// collect widgets & sort them so widget order is not important
- $allWidgets = Request::processRequest('API.getWidgetMetadata', array(
+ $allWidgets = Request::processRequest('API.getWidgetMetadata', [
'idSite' => 1
- ));
+ ]);
usort($allWidgets, function ($lhs, $rhs) {
return strcmp($lhs['uniqueId'], $rhs['uniqueId']);
@@ -358,10 +375,11 @@ class UITestFixture extends SqlDump
$widgetsPerDashboard = ceil(count($allWidgets) / $dashboardCount);
// group widgets so they will be spread out across 3 dashboards
- $groupedWidgets = array();
+ $groupedWidgets = [];
$dashboard = 0;
foreach ($allWidgets as $widget) {
- if ($widget['uniqueId'] == 'widgetSEOgetRank'
+ if (
+ $widget['uniqueId'] == 'widgetSEOgetRank'
|| $widget['uniqueId'] == 'widgetLivegetVisitorProfilePopup'
|| $widget['uniqueId'] == 'widgetActionsgetPageTitles'
|| $widget['uniqueId'] == 'widgetCoreHomequickLinks'
@@ -370,10 +388,10 @@ class UITestFixture extends SqlDump
continue;
}
- $widgetEntry = array(
+ $widgetEntry = [
'uniqueId' => $widget['uniqueId'],
'parameters' => $widget['parameters']
- );
+ ];
// for realtime map, disable some randomness
if ($widget['uniqueId'] == 'widgetUserCountryMaprealtimeMap') {
@@ -413,7 +431,7 @@ class UITestFixture extends SqlDump
foreach ($dashboards as $id => $layout) {
if ($id == 0) {
$_GET['name'] = $this->xssTesting->forTwig('dashboard name' . $id);
- } else if ($id == 1) {
+ } elseif ($id == 1) {
$_GET['name'] = $this->xssTesting->forAngular('dashboard name' . $id);
} else {
$_GET['name'] = 'dashboard name' . $id;
@@ -424,21 +442,21 @@ class UITestFixture extends SqlDump
}
// create empty dashboard
- $dashboard = array(
- array(
- array(
+ $dashboard = [
+ [
+ [
'uniqueId' => "widgetVisitsSummarygetEvolutionGraphforceView1viewDataTablegraphEvolution",
- 'parameters' => array(
+ 'parameters' => [
'module' => 'VisitsSummary',
'action' => 'getEvolutionGraph',
'forceView' => '1',
'viewDataTable' => 'graphEvolution'
- )
- )
- ),
- array(),
- array()
- );
+ ]
+ ]
+ ],
+ [],
+ []
+ ];
$_GET['name'] = 'D4';
$_GET['layout'] = json_encode($dashboard);
@@ -457,14 +475,29 @@ class UITestFixture extends SqlDump
$segmentName = $this->xssTesting->forTwig('segment');
$segmentDefinition = "browserCode==FF";
APISegmentEditor::getInstance()->add(
- $segmentName, $segmentDefinition, $idSite = 1, $autoArchive = true, $enabledAllUsers = true);
+ $segmentName,
+ $segmentDefinition,
+ $idSite = 1,
+ $autoArchive = true,
+ $enabledAllUsers = true
+ );
// create two more segments
$segmentName = $this->xssTesting->forAngular("From Europe segment");
APISegmentEditor::getInstance()->add(
- 'From Europe ' . $segmentName, "continentCode==eur", $idSite = 1, $autoArchive = false, $enabledAllUsers = true);
+ 'From Europe ' . $segmentName,
+ "continentCode==eur",
+ $idSite = 1,
+ $autoArchive = false,
+ $enabledAllUsers = true
+ );
APISegmentEditor::getInstance()->add(
- "Multiple actions", "actions>=2", $idSite = 1, $autoArchive = false, $enabledAllUsers = true);
+ "Multiple actions",
+ "actions>=2",
+ $idSite = 1,
+ $autoArchive = false,
+ $enabledAllUsers = true
+ );
Rules::setBrowserTriggerArchiving(true);
}
@@ -474,7 +507,9 @@ class UITestFixture extends SqlDump
API::$_autoSuggestLookBack = floor(Date::today()->getTimestamp() - Date::factory('2012-01-01')->getTimestamp()) / (24 * 60 * 60);
return [
- 'Tests.now' => \DI\decorate(function(){ return Option::get("Tests.forcedNowTimestamp"); }),
+ 'Tests.now' => \DI\decorate(function () {
+ return Option::get("Tests.forcedNowTimestamp");
+ }),
'observers.global' => \DI\add([
['Report.addReports', \DI\value(function (&$reports) {
$report = new XssReport();
@@ -538,13 +573,13 @@ class XssReport extends Report
{
parent::init();
- $this->metrics = array('nb_visits');
+ $this->metrics = ['nb_visits'];
$this->order = 10;
$action = Common::getRequestVar('actionToWidgetize', false) ?: Common::getRequestVar('action', false);
if ($action == 'xssReportforTwig') {
$this->initForXss('forTwig');
- } else if ($action == 'xssReportforAngular') {
+ } elseif ($action == 'xssReportforAngular') {
$this->initForXss('forAngular');
}
}
diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php
index cb1ca43245..9ea5424199 100644
--- a/tests/PHPUnit/Framework/Fixture.php
+++ b/tests/PHPUnit/Framework/Fixture.php
@@ -521,20 +521,20 @@ class Fixture extends \PHPUnit\Framework\Assert
* Creates a website, then sets its creation date to a day earlier than specified dateTime
* Useful to create a website now, but force data to be archived back in the past.
*
- * @param string $dateTime eg '2010-01-01 12:34:56'
- * @param int $ecommerce
- * @param string $siteName
- *
+ * @param string $dateTime eg '2010-01-01 12:34:56'
+ * @param int $ecommerce
+ * @param bool $siteName
* @param bool|string $siteUrl
- * @param int $siteSearch
+ * @param int $siteSearch
* @param null|string $searchKeywordParameters
* @param null|string $searchCategoryParameters
* @param null|string $timezone
- * @param null|string $type eg 'website' or 'mobileapp'
- * @param null|string $settings eg 'website' or 'mobileapp'
- * @param int $excludeUnknownUrls
+ * @param null|string $type eg 'website' or 'mobileapp'
+ * @param int $excludeUnknownUrls
* @param null|string $excludedParameters
+ * @param null $excludedReferrers
* @return int idSite of website created
+ * @throws Exception
*/
public static function createWebsite(
$dateTime,
@@ -547,7 +547,8 @@ class Fixture extends \PHPUnit\Framework\Assert
$timezone = null,
$type = null,
$excludeUnknownUrls = 0,
- $excludedParameters = null
+ $excludedParameters = null,
+ $excludedReferrers = null
) {
if ($siteName === false) {
$siteName = self::DEFAULT_SITE_NAME;
@@ -560,7 +561,7 @@ class Fixture extends \PHPUnit\Framework\Assert
$searchKeywordParameters,
$searchCategoryParameters,
$ips = null,
- $excludedQueryParameters = $excludedParameters,
+ $excludedParameters,
$timezone,
$currency = null,
$group = null,
@@ -569,7 +570,8 @@ class Fixture extends \PHPUnit\Framework\Assert
$keepURLFragments = null,
$type,
$settings = null,
- $excludeUnknownUrls
+ $excludeUnknownUrls,
+ $excludedReferrers
);
// Manually set the website creation date to a day earlier than the earliest day we record stats for
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getAvailableMeasurableTypes.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getAvailableMeasurableTypes.xml
index 91c5bb6333..f088c38a71 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getAvailableMeasurableTypes.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getAvailableMeasurableTypes.xml
@@ -130,6 +130,26 @@ https://www.example.org/</placeholder>
<condition />
</row>
<row>
+ <name>excluded_referrers</name>
+ <title>Excluded referrers</title>
+ <value>
+ </value>
+ <defaultValue>
+ </defaultValue>
+ <type>array</type>
+ <uiControl>textarea</uiControl>
+ <uiControlAttributes>
+ <cols>20</cols>
+ <rows>4</rows>
+ </uiControlAttributes>
+ <availableValues />
+ <description />
+ <inlineHelp>Enter the list of hostnames and URLs, one per line, you want to exclude from referrer detection.&lt;br /&gt;&lt;br /&gt;Each entry needs to contain the hostname and may contain a path. If a path is provided a referrer will only be excluded if the path matches as well. URLs with and without 'www' are treated the same. Provided protocols will be ignored.&lt;br /&gt;e.g. &quot;www.example.org&quot; would match &quot;http://example.org/mypath&quot; and &quot;https://www.example.org/?param=1&quot; but not &quot;https://sub.example.org/&quot;&lt;br /&gt;&lt;br /&gt;To also exclude all subdomains of a certain hostname, prefix it with a dot. e.g. &quot;.sub.example.org&quot; would exclude &quot;http://sub.example.org/mypath&quot;, but also all its subdomains like &quot;https://new.sub.example.org/&quot;.</inlineHelp>
+ <templateFile />
+ <introduction />
+ <condition />
+ </row>
+ <row>
<name>sitesearch</name>
<title>Site Search</title>
<value>1</value>
@@ -415,6 +435,26 @@ https://www.example.org/</placeholder>
<condition />
</row>
<row>
+ <name>excluded_referrers</name>
+ <title>Excluded referrers</title>
+ <value>
+ </value>
+ <defaultValue>
+ </defaultValue>
+ <type>array</type>
+ <uiControl>textarea</uiControl>
+ <uiControlAttributes>
+ <cols>20</cols>
+ <rows>4</rows>
+ </uiControlAttributes>
+ <availableValues />
+ <description />
+ <inlineHelp>Enter the list of hostnames and URLs, one per line, you want to exclude from referrer detection.&lt;br /&gt;&lt;br /&gt;Each entry needs to contain the hostname and may contain a path. If a path is provided a referrer will only be excluded if the path matches as well. URLs with and without 'www' are treated the same. Provided protocols will be ignored.&lt;br /&gt;e.g. &quot;www.example.org&quot; would match &quot;http://example.org/mypath&quot; and &quot;https://www.example.org/?param=1&quot; but not &quot;https://sub.example.org/&quot;&lt;br /&gt;&lt;br /&gt;To also exclude all subdomains of a certain hostname, prefix it with a dot. e.g. &quot;.sub.example.org&quot; would exclude &quot;http://sub.example.org/mypath&quot;, but also all its subdomains like &quot;https://new.sub.example.org/&quot;.</inlineHelp>
+ <templateFile />
+ <introduction />
+ <condition />
+ </row>
+ <row>
<name>sitesearch</name>
<title>Site Search</title>
<value>1</value>
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png b/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
index e27618a188..5f4f6fe707 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:acd073900f58d1bff4aa3fb68b1987c658e0b2c53f6f0bfb7aaf5f8956e2f14d
-size 107634
+oid sha256:f7111399d9c3755037d20a36a10a6c661a326f37cfd36e6f182eb4c2aabfca9b
+size 107910
diff --git a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
index a6ee9239bb..8301c6836a 100644
--- a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
+++ b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c56f95e19db8af09a3150c391f3ad6ec094a8ca05b857b718b86a63ca5e36e47
-size 486040
+oid sha256:37c0f3eaae3a0a4a32ce7a99f507089fbfb3713f160c799bc76b9065cdec07aa
+size 547481
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
index f9724156e1..e3d8c426a4 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5352bb565d46cc2a592f0159393bb05057c249d3d07b9d87fea7ec838cae2b26
-size 5275447
+oid sha256:0858300415bf7b2039c21a422276935738ba26ff1ce9a2b148b1877f6c966421
+size 5243804
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
index 858d279ff1..20f709eddd 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:041e3ec0c437afb715dbd0d9c0fbb7cb5a2a9c8c5feb14482e8d01bd5acb7a1a
-size 1098224
+oid sha256:2390c83b9eb3890b110078585097d7f0ce50dff1347e3d627cb5a1f1f1079d8e
+size 1097506
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
index 1cc8235710..ca3f9621ea 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9f6d2f56b01e3253b223dba2fbbdf346d308e74562858639b0c7c66f7192358b
-size 1099888
+oid sha256:b4eec846d22ab3fce767845c622bb3e5d618a753a72396563ba4f2aa896a605f
+size 1099155
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
index 70cd0967e0..da2547581e 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:840ab2c65b59c15faa00eed28152910b6d590a147e9d10be6ecf71c9a802521b
-size 1341485
+oid sha256:93ea21b85aa82bb81a4d96d4fffcedaea305ae5e15f28193fa23133e768c00cf
+size 1308053
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
index 59e8f53d21..2f573ecc28 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e6291f3e7475eef0fe07443cd97cb383bf1275316cd8fccc03060cb695f71be0
-size 5047076
+oid sha256:7498df49cc7f6b2bc105dd5231753e7862e0bece21c551c256723d4b3489d03b
+size 5075019
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png b/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
index 308372433d..887c299d18 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:930e30f4161388868725081d1edcbfb5e1182d0ed18a8b2a7d79336cf20926a8
-size 604068
+oid sha256:0bbd3dfd1bba70d3d58632ca5dfbcbb3a0cc288201feaddad4545427dd1a7890
+size 604165
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png b/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
index 4d529bd4c0..e69007cb09 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fa08ffd2e1cc0255a362bace54a9827a76a23a3f4f7cc87024f98251b87a6c0a
-size 751117
+oid sha256:81982f750f72edf3b726ca19f670d4339001fb3f0067eddae3b93dd18d291360
+size 751273
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
index 5905bf65e8..0c2848d883 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:562a65b35a71b6663475121175bd7fdb7b43c6de681729002362d382bd92d772
-size 31897
+oid sha256:8781ce60793e447dd7993c77c2004e48ef2efad91735f49f77f111775fc8ef6c
+size 31947
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_not_logged_in.png b/tests/UI/expected-screenshots/UIIntegrationTest_not_logged_in.png
index 28eb224427..9f645c3b11 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_not_logged_in.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_not_logged_in.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:62fc2afd2afafb0c31effa327eff0050496ebe55af35f3b8b31aabe33b916922
-size 32321
+oid sha256:46544d21655c84211cdd35097aa24a2b4492a4b20cfff0390603e6976c5bf12d
+size 32369
diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index a78ba1784d..c967b6b47c 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -2096,7 +2096,7 @@ function PiwikTest() {
});
test("API methods", function() {
- expect(121);
+ expect(123);
equal( typeof Piwik.addPlugin, 'function', 'addPlugin' );
equal( typeof Piwik.addPlugin, 'function', 'addTracker' );
@@ -2156,6 +2156,8 @@ function PiwikTest() {
equal( typeof tracker.setRequestContentType, 'function', 'setRequestContentType' );
equal( typeof tracker.setGenerationTimeMs, 'function', 'setGenerationTimeMs' );
equal( typeof tracker.setReferrerUrl, 'function', 'setReferrerUrl' );
+ equal( typeof tracker.setExcludedReferrers, 'function', 'setExcludedReferrers' );
+ equal( typeof tracker.getExcludedReferrers, 'function', 'getExcludedReferrers' );
equal( typeof tracker.setCustomUrl, 'function', 'setCustomUrl' );
equal( typeof tracker.setDocumentTitle, 'function', 'setDocumentTitle' );
equal( typeof tracker.setDownloadClasses, 'function', 'setDownloadClasses' );
@@ -3649,8 +3651,44 @@ if ($mysql) {
equal( tracker2.getAttributionReferrerUrl(), 'http://www.google.fr/?query=test', "getAttributionReferrerUrl() should be read from cookie in new tracker")
});
+ test("referrer ignore list", function() {
+ expect(23);
+
+ var testCases = [
+ ['no exclusion', 'https://www.google.fr/?query=test', '', false],
+ ['host exclusion matches', 'https://www.google.fr/?query=test', 'www.google.fr', true],
+ ['host exclusion matches (www ignored)', 'https://google.fr/?query=test', 'www.google.fr', true],
+ ['host exclusion matches (www ignored)', 'https://www.google.fr/?query=test', 'google.fr', true],
+ ['host exclusion not matching', 'https://www.google.de/?query=test', 'www.google.fr', false],
+ ['wildcard subdomain exclusion matches', 'https://www.google.fr/?query=test', '*.google.fr', true],
+ ['host with path exclusion matches', 'https://www.paypal.com/proceed/payment/', 'www.paypal.com/proceed/', true],
+ ['host with path exclusion not matching', 'https://www.paypal.com/proceed/payment/', 'www.paypal.com/proceed/shipping', false],
+ ['host with wild card path exclusion matches', 'https://www.paypal.com/proceed/payment/', 'www.paypal.com/proceed*', true],
+ ['host with wild card path exclusion matches again', 'https://www.paypal.com/proceed-my-payment/', 'www.paypal.com/proceed*', true],
+ ];
+
+ for (var i=0; i < testCases.length; i++) {
+ var testName = testCases[i][0];
+ var referrerUrl = testCases[i][1];
+ var excludedReferrer = testCases[i][2];
+ var result = testCases[i][3];
+ var expectedExcludedReferrer = [];
+
+ var tracker = Piwik.getTracker();
+ tracker.setTrackerUrl("matomo.php");
+ tracker.setSiteId(1);
+ tracker.setReferrerUrl(referrerUrl);
+ if (excludedReferrer) {
+ tracker.setExcludedReferrers(excludedReferrer);
+ expectedExcludedReferrer = tracker.hook.test._isString(excludedReferrer) ? [excludedReferrer] : excludedReferrer;
+ }
+ deepEqual(tracker.getExcludedReferrers(), expectedExcludedReferrer, testName + " - check getExcludedReferrers()");
+ deepEqual(tracker.hook.test._isReferrerExcluded(referrerUrl), result, testName + " - check isReferrerExcluded()");
+ }
+ });
+
test("tracking", function() {
- expect(178);
+ expect(180);
// Prevent Opera and HtmlUnit from performing the default action (i.e., load the href URL)
var stopEvent = function (evt) {
@@ -3792,6 +3830,12 @@ if ($mysql) {
strictEqual(1, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter');
+ tracker.setExcludedReferrers('ignored.referrer.url')
+ tracker.setReferrerUrl('http://ignored.referrer.url/path/page?query=string');
+ tracker.trackPageView();
+
+ strictEqual(2, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter');
+
var idPageview = tracker.getConfigIdPageView();
ok(/([0-9a-zA-Z]){6}/.test(idPageview), 'trackPageview, should generate a random pageview id');
@@ -3799,7 +3843,7 @@ if ($mysql) {
equal(tracker.getCustomDimension(2), "", "custom dimensions should not be cleared after a tracked pageview");
tracker.trackPageView("CustomTitleTest", {dimension2: 'my new value', dimension5: 'another dimension'});
- strictEqual(2, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter');
+ strictEqual(3, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter');
var idPageviewCustomTitle = tracker.getConfigIdPageView();
ok(idPageviewCustomTitle != idPageview, 'trackPageview, should generate a new random pageview id whenever it is called');
@@ -3888,14 +3932,14 @@ if ($mysql) {
attributionInfo2 = tracker.getAttributionInfo();
ok( attributionInfo1 && attributionInfo2 && attributionInfo1.length == attributionInfo2.length, "getAttributionInfo()" );
referrer2 = tracker.getAttributionReferrerUrl();
- ok( referrer2 == referrerUrl, "getAttributionReferrerUrl()" );
- ok( referrer1 == referrerUrl, "async getAttributionReferrerUrl()" );
+ equal( referrer2, referrerUrl, "getAttributionReferrerUrl()" );
+ equal( referrer1, referrerUrl, "async getAttributionReferrerUrl()" );
referrerTimestamp2 = tracker.getAttributionReferrerTimestamp();
- ok( referrerTimestamp2 == referrerTimestamp, "tracker.getAttributionReferrerTimestamp()" );
+ equal( referrerTimestamp2, referrerTimestamp, "tracker.getAttributionReferrerTimestamp()" );
campaignName2 = tracker.getAttributionCampaignName();
campaignKeyword2 = tracker.getAttributionCampaignKeyword();
- ok( campaignName2 == "YEAH", "getAttributionCampaignName()");
- ok( campaignKeyword2 == "RIGHT!", "getAttributionCampaignKeyword()");
+ equal( campaignName2, "YEAH", "getAttributionCampaignName()");
+ equal( campaignKeyword2, "RIGHT!", "getAttributionCampaignKeyword()");
// Test visitor ID at the start is the same at the end
var visitorIdEnd = tracker.getVisitorId();
@@ -4162,7 +4206,7 @@ if ($mysql) {
var countTrackingEvents = /<span\>([0-9]+)\<\/span\>/.exec(results);
ok (countTrackingEvents, "countTrackingEvents is set");
if(countTrackingEvents) {
- equal( countTrackingEvents[1], "54", "count tracking events" );
+ equal( countTrackingEvents[1], "55", "count tracking events" );
}
// firing callback
@@ -4194,6 +4238,7 @@ if ($mysql) {
ok( /CompatibilityLayer/.test( results ), "piwik_log(): compatibility layer" );
ok( /localhost.localdomain/.test( results ), "setCustomUrl()" );
ok( /referrer.example.com/.test( results ), "setReferrerUrl()" );
+ ok( ! /ignored.referrer.url/.test( results ), "ignored referrer url isn't sent with request" );
ok( /cookiename/.test( results ) && /cookievalue/.test( results ), "tracking request contains custom variable" );
ok( /DeleteCustomVariableCookie/.test( results ), "tracking request deleting custom variable" );
ok( /DoTrack/.test( results ), "setDoNotTrack(false)" );
@@ -5226,7 +5271,7 @@ if ($mysql) {
tracker.hook.test._beforeUnloadHandler();
stopTime = new Date();
var msSinceStarted = (stopTime.getTime() - startTime.getTime());
- ok( msSinceStarted < 530, 'beforeUnloadHandler(): ' + msSinceStarted + ' was greater than 530 ' );
+ ok( msSinceStarted < 540, 'beforeUnloadHandler(): ' + msSinceStarted + ' was greater than 540 ' );
tracker.disableAlwaysUseSendBeacon();
tracker.setLinkTrackingTimer(2000);
diff --git a/tests/javascript/matomotest.js b/tests/javascript/matomotest.js
index 763d56bf4c..b674ec289d 100644
--- a/tests/javascript/matomotest.js
+++ b/tests/javascript/matomotest.js
@@ -21,6 +21,7 @@ Matomo.addPlugin('testPlugin', {
'_isString : isString,' +
'_isSiteHostName : isSiteHostName,' +
'_isSiteHostPath : isSiteHostPath,' +
+ '_isReferrerExcluded : isReferrerExcluded,' +
'_getClassesRegExp : getClassesRegExp,' +
'_hasCookies : hasCookies,' +
'_getCookie : getCookie,' +
diff --git a/tests/lib/geoip-files/GeoIP2-City.json b/tests/lib/geoip-files/GeoIP2-City.json
index d9e6f4c0aa..ccc7f43d2c 100644
--- a/tests/lib/geoip-files/GeoIP2-City.json
+++ b/tests/lib/geoip-files/GeoIP2-City.json
@@ -2487,6 +2487,76 @@
}
},
{
+ "::88.88.88.88/128": {
+ "city": {
+ "geoname_id": 45645645,
+ "names": {
+ "de": "Englewood Cliffs",
+ "en": "Englewood Cliffs"
+ }
+ },
+ "continent": {
+ "code": "NA",
+ "geoname_id": 6255149,
+ "names": {
+ "de": "Nordamerika",
+ "en": "North America",
+ "es": "Norteamérica",
+ "fr": "Amérique du Nord",
+ "ja": "北アメリカ",
+ "pt-BR": "América do Norte",
+ "ru": "Северная Америка",
+ "zh-CN": "北美洲"
+ }
+ },
+ "country": {
+ "geoname_id": 6252001,
+ "iso_code": "US",
+ "names": {
+ "de": "USA",
+ "en": "United States",
+ "es": "Estados Unidos",
+ "fr": "États-Unis",
+ "ja": "アメリカ合衆国",
+ "pt-BR": "Estados Unidos",
+ "ru": "США",
+ "zh-CN": "美国"
+ }
+ },
+ "location": {
+ "accuracy_radius": 3500,
+ "latitude": 40.892,
+ "longitude": -73.947,
+ "time_zone": "America\/New_York"
+ },
+ "registered_country": {
+ "geoname_id": 6252001,
+ "iso_code": "US",
+ "names": {
+ "de": "USA",
+ "en": "United States",
+ "es": "Estados Unidos",
+ "fr": "États-Unis",
+ "ja": "アメリカ合衆国",
+ "pt-BR": "Estados Unidos",
+ "ru": "США",
+ "zh-CN": "美国"
+ }
+ },
+ "subdivisions": [
+ {
+ "geoname_id": 4567555,
+ "iso_code": "US-NJ",
+ "names": {
+ "en": "New Jersey",
+ "es": "New Jersey",
+ "fr": "New Jersey"
+ }
+ }
+ ]
+ }
+ },
+ {
"::99.99.99.99/128": {
"city": {
"geoname_id": 45645645,
diff --git a/tests/lib/geoip-files/GeoIP2-City.mmdb b/tests/lib/geoip-files/GeoIP2-City.mmdb
index 0da250e8ff..55608054be 100644
--- a/tests/lib/geoip-files/GeoIP2-City.mmdb
+++ b/tests/lib/geoip-files/GeoIP2-City.mmdb
Binary files differ