*/
/* harmony default export */ var DropdownMenu = ({
mounted: function mounted(element, binding) {
var options = {};
$(element).addClass('matomo-dropdown-menu');
var isSubmenu = !!$(element).parent().closest('.dropdown-content').length;
if (isSubmenu) {
var _binding$value;
options = {
hover: true
};
$(element).addClass('submenu');
$(((_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value.activates) || $(element).data('target')).addClass('submenu-dropdown-content'); // if a submenu is used, the dropdown will never scroll
$(element).parents('.dropdown-content').addClass('submenu-container');
}
$(element).dropdown(options);
},
updated: function updated(element) {
// classes can be overwritten when elements bind to :class, nextTick + using
// updated avoids this problem (and doing in both mounted and updated avoids a temporary
// state where the classes aren't added)
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
$(element).addClass('matomo-dropdown-menu');
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DropdownMenu/DropdownMenu.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikDropdownMenu($timeout) {
return {
restrict: 'A',
link: function piwikDropdownMenuLink(scope, element, attrs) {
var binding = {
instance: null,
value: {
activates: $("#".concat(attrs.activates))[0]
},
oldValue: null,
modifiers: {},
dir: {}
};
$timeout(function () {
DropdownMenu.mounted(element[0], binding);
});
}
};
}
piwikDropdownMenu.$inject = ['$timeout'];
window.angular.module('piwikApp').directive('piwikDropdownMenu', piwikDropdownMenu);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FocusAnywhereButHere/FocusAnywhereButHere.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function onClickOutsideElement(element, binding, event) {
var hadUsedScrollbar = binding.value.isMouseDown && binding.value.hasScrolled;
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
if (hadUsedScrollbar) {
return;
}
if (!element.contains(event.target)) {
if (binding.value) {
binding.value.blur();
}
}
}
function onScroll(element, binding) {
binding.value.hasScrolled = true;
}
function onMouseDown(element, binding) {
binding.value.isMouseDown = true;
binding.value.hasScrolled = false;
}
function onEscapeHandler(element, binding, event) {
if (event.which === 27) {
setTimeout(function () {
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
if (binding.value.blur) {
binding.value.blur();
}
}, 0);
}
}
var doc = document.documentElement;
/**
* Usage (in a component):
*
* directives: {
* // function call is important since we store state in this directive
* FocusAnywhereButHere: FocusAnywhereButHere(),
* }
*
* Note: the binding data needs to be static, changes will not be handled.
*/
/* harmony default export */ var FocusAnywhereButHere = ({
mounted: function mounted(el, binding) {
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
binding.value.onEscapeHandler = onEscapeHandler.bind(null, el, binding);
binding.value.onMouseDown = onMouseDown.bind(null, el, binding);
binding.value.onClickOutsideElement = onClickOutsideElement.bind(null, el, binding);
binding.value.onScroll = onScroll.bind(null, el, binding);
doc.addEventListener('keyup', binding.value.onEscapeHandler);
doc.addEventListener('mousedown', binding.value.onMouseDown);
doc.addEventListener('mouseup', binding.value.onClickOutsideElement);
doc.addEventListener('scroll', binding.value.onScroll);
},
unmounted: function unmounted(el, binding) {
doc.removeEventListener('keyup', binding.value.onEscapeHandler);
doc.removeEventListener('mousedown', binding.value.onMouseDown);
doc.removeEventListener('mouseup', binding.value.onClickOutsideElement);
doc.removeEventListener('scroll', binding.value.onScroll);
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FocusAnywhereButHere/FocusAnywhereButHere.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/**
* The given expression will be executed when the user presses either escape or presses something
* outside of this element
*
* Example:
*
my dialog
*/
function piwikFocusAnywhereButHere() {
return {
restrict: 'A',
link: function focusAnywhereButHereLink(scope, element, attr) {
var binding = {
instance: null,
value: {
blur: function blur() {
setTimeout(function () {
scope.$apply(attr.piwikFocusAnywhereButHere);
}, 0);
}
},
oldValue: null,
modifiers: {},
dir: {}
};
FocusAnywhereButHere.mounted(element[0], binding);
element.on('$destroy', function () {
return FocusAnywhereButHere.unmounted(element[0], binding);
});
}
};
}
window.angular.module('piwikApp.directive').directive('piwikFocusAnywhereButHere', piwikFocusAnywhereButHere);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FocusIf/FocusIf.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function doFocusIf(el, binding) {
var _binding$value, _binding$oldValue;
if ((_binding$value = binding.value) !== null && _binding$value !== void 0 && _binding$value.focused && !((_binding$oldValue = binding.oldValue) !== null && _binding$oldValue !== void 0 && _binding$oldValue.focused)) {
setTimeout(function () {
el.focus();
if (binding.value.afterFocus) {
binding.value.afterFocus();
}
}, 5);
}
}
/* harmony default export */ var FocusIf = ({
mounted: function mounted(el, binding) {
doFocusIf(el, binding);
},
updated: function updated(el, binding) {
doFocusIf(el, binding);
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FocusIf/FocusIf.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/**
* If the given expression evaluates to true the element will be focused
*
* Example:
*
*/
function piwikFocusIf() {
return {
restrict: 'A',
link: function focusIfLink(scope, element, attrs) {
scope.$watch(attrs.piwikFocusIf, function (newValue) {
var binding = {
instance: null,
value: {
focused: newValue ? true : undefined,
afterFocus: function afterFocus() {
return scope.$apply();
}
},
oldValue: null,
modifiers: {},
dir: {}
};
FocusIf.updated(element[0], binding);
});
}
};
}
window.angular.module('piwikApp.directive').directive('piwikFocusIf', piwikFocusIf);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/directiveUtilities.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function getRef(expander, binding) {
var _binding$instance;
return expander instanceof HTMLElement ? expander : (_binding$instance = binding.instance) === null || _binding$instance === void 0 ? void 0 : _binding$instance.$refs[expander];
}
/* harmony default export */ var directiveUtilities = ({
getRef: getRef
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ExpandOnClick/ExpandOnClick.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function onExpand(element) {
element.classList.toggle('expanded');
var positionElement = element.querySelector('.dropdown.positionInViewport');
if (positionElement) {
Matomo_Matomo.helper.setMarginLeftToBeInViewport(positionElement);
}
}
function ExpandOnClick_onClickOutsideElement(element, binding, event) {
var hadUsedScrollbar = binding.value.isMouseDown && binding.value.hasScrolled;
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
if (hadUsedScrollbar) {
return;
}
if (!element.contains(event.target)) {
element.classList.remove('expanded');
}
}
function ExpandOnClick_onScroll(binding) {
binding.value.hasScrolled = true;
}
function ExpandOnClick_onMouseDown(binding) {
binding.value.isMouseDown = true;
binding.value.hasScrolled = false;
}
function ExpandOnClick_onEscapeHandler(element, binding, event) {
if (event.which === 27) {
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
element.classList.remove('expanded');
}
}
var ExpandOnClick_doc = document.documentElement;
var ExpandOnClick_window = window,
ExpandOnClick_$ = ExpandOnClick_window.$;
/**
* Usage (in a component):
*
* directives: {
* ExpandOnClick: ExpandOnClick(), // function call is important since we store state
* // in this directive
* }
*/
/* harmony default export */ var ExpandOnClick = ({
mounted: function mounted(el, binding) {
binding.value.isMouseDown = false;
binding.value.hasScrolled = false;
binding.value.onExpand = onExpand.bind(null, el);
binding.value.onEscapeHandler = ExpandOnClick_onEscapeHandler.bind(null, el, binding);
binding.value.onMouseDown = ExpandOnClick_onMouseDown.bind(null, binding);
binding.value.onClickOutsideElement = ExpandOnClick_onClickOutsideElement.bind(null, el, binding);
binding.value.onScroll = ExpandOnClick_onScroll.bind(null, binding);
setTimeout(function () {
var expander = directiveUtilities.getRef(binding.value.expander, binding);
if (expander) {
ExpandOnClick_$(expander).on('click', binding.value.onExpand);
}
});
ExpandOnClick_doc.addEventListener('keyup', binding.value.onEscapeHandler);
ExpandOnClick_doc.addEventListener('mousedown', binding.value.onMouseDown);
ExpandOnClick_doc.addEventListener('mouseup', binding.value.onClickOutsideElement);
ExpandOnClick_doc.addEventListener('scroll', binding.value.onScroll);
},
unmounted: function unmounted(el, binding) {
var expander = directiveUtilities.getRef(binding.value.expander, binding);
if (expander) {
ExpandOnClick_$(expander).off('click', binding.value.onExpand);
}
ExpandOnClick_doc.removeEventListener('keyup', binding.value.onEscapeHandler);
ExpandOnClick_doc.removeEventListener('mousedown', binding.value.onMouseDown);
ExpandOnClick_doc.removeEventListener('mouseup', binding.value.onClickOutsideElement);
ExpandOnClick_doc.removeEventListener('scroll', binding.value.onScroll);
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ExpandOnClick/ExpandOnClick.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikExpandOnClick() {
return {
restrict: 'A',
link: function expandOnClickLink(scope, element) {
var binding = {
instance: null,
value: {
expander: element.find('.title').first()[0]
},
oldValue: null,
modifiers: {},
dir: {}
};
ExpandOnClick.mounted(element[0], binding);
element.on('$destroy', function () {
return ExpandOnClick.unmounted(element[0], binding);
});
}
};
}
window.angular.module('piwikApp').directive('piwikExpandOnClick', piwikExpandOnClick);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ExpandOnHover/ExpandOnHover.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function onMouseEnter(element) {
element.classList.add('expanded');
var positionElement = element.querySelector('.dropdown.positionInViewport');
if (positionElement) {
Matomo_Matomo.helper.setMarginLeftToBeInViewport(positionElement);
}
}
function onMouseLeave(element) {
element.classList.remove('expanded');
}
function ExpandOnHover_onClickOutsideElement(element, event) {
if (!element.contains(event.target)) {
element.classList.remove('expanded');
}
}
function ExpandOnHover_onEscapeHandler(element, event) {
if (event.which === 27) {
element.classList.remove('expanded');
}
}
var ExpandOnHover_doc = document.documentElement;
/**
* Usage (in a component):
*
* directives: {
* ExpandOnHover: ExpandOnHover(), // function call is important since we store state
* // in this directive
* }
*/
/* harmony default export */ var ExpandOnHover = ({
mounted: function mounted(el, binding) {
binding.value.onMouseEnter = onMouseEnter.bind(null, el);
binding.value.onMouseLeave = onMouseLeave.bind(null, el);
binding.value.onClickOutsideElement = ExpandOnHover_onClickOutsideElement.bind(null, el);
binding.value.onEscapeHandler = ExpandOnHover_onEscapeHandler.bind(null, el);
setTimeout(function () {
var expander = directiveUtilities.getRef(binding.value.expander, binding);
if (expander) {
expander.addEventListener('mouseenter', binding.value.onMouseEnter);
}
});
el.addEventListener('mouseleave', binding.value.onMouseLeave);
ExpandOnHover_doc.addEventListener('keyup', binding.value.onEscapeHandler);
ExpandOnHover_doc.addEventListener('mouseup', binding.value.onClickOutsideElement);
},
unmounted: function unmounted(el, binding) {
var expander = directiveUtilities.getRef(binding.value.expander, binding);
if (expander) {
expander.removeEventListener('mouseenter', binding.value.onMouseEnter);
}
el.removeEventListener('mouseleave', binding.value.onMouseLeave);
document.removeEventListener('keyup', binding.value.onEscapeHandler);
document.removeEventListener('mouseup', binding.value.onClickOutsideElement);
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ExpandOnHover/ExpandOnHover.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikExpandOnHover() {
return {
restrict: 'A',
link: function expandOnHoverLink(scope, element) {
var binding = {
instance: null,
value: {
expander: element.find('.title').first()[0]
},
oldValue: null,
modifiers: {},
dir: {}
};
ExpandOnHover.mounted(element[0], binding);
element.on('$destroy', function () {
return ExpandOnHover.unmounted(element[0], binding);
});
}
};
}
window.angular.module('piwikApp').directive('piwikExpandOnHover', piwikExpandOnHover);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ShowSensitiveData/ShowSensitiveData.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var ShowSensitiveData_window = window,
ShowSensitiveData_$ = ShowSensitiveData_window.$;
/**
* Handles visibility of sensitive data. By default data will be shown replaced with stars (*)
* On click on the element the full data will be shown
*
* Configuration attributes:
* data-show-characters number of characters to show in clear text (defaults to 6)
* data-click-element-selector selector for element that will show the full data on click
* (defaults to element)
*
* Example:
*
*/
/* harmony default export */ var ShowSensitiveData = ({
mounted: function mounted(el, binding) {
var element = ShowSensitiveData_$(el);
var sensitiveData = binding.value.sensitiveData;
var showCharacters = binding.value.showCharacters || 6;
var clickElement = binding.value.clickElementSelector || element;
var protectedData = '';
if (showCharacters > 0) {
protectedData += sensitiveData.slice(0, showCharacters);
}
protectedData += sensitiveData.slice(showCharacters).replace(/./g, '*');
element.html(protectedData);
function onClickHandler() {
element.html(sensitiveData);
ShowSensitiveData_$(clickElement).css({
cursor: ''
});
ShowSensitiveData_$(clickElement).tooltip('destroy');
}
ShowSensitiveData_$(clickElement).tooltip({
content: translate('CoreHome_ClickToSeeFullInformation'),
items: '*',
track: true
});
ShowSensitiveData_$(clickElement).one('click', onClickHandler);
ShowSensitiveData_$(clickElement).css({
cursor: 'pointer'
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ShowSensitiveData/ShowSensitiveData.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikShowSensitiveData() {
return {
restrict: 'A',
link: function piwikShowSensitiveDataLink(scope, element, attr) {
var binding = {
instance: null,
value: {
sensitiveData: attr.piwikShowSensitiveData || (attr.text ? attr.text() : ''),
showCharacters: attr.showCharacters ? parseInt(attr.showCharacters, 10) : undefined,
clickElementSelector: attr.clickElementSelector
},
oldValue: null,
modifiers: {},
dir: {}
};
ShowSensitiveData.mounted(element[0], binding);
}
};
}
window.angular.module('piwikApp').directive('piwikShowSensitiveData', piwikShowSensitiveData);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DropdownButton/DropdownButton.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var DropdownButton_window = window,
DropdownButton_$ = DropdownButton_window.$;
/* harmony default export */ var DropdownButton = ({
mounted: function mounted(el) {
var element = DropdownButton_$(el); // BC for materializecss 0.97 => 1.0
if (!element.attr('data-target') && element.attr('data-activates')) {
element.attr('data-target', element.attr('data-activates'));
}
var target = element.attr('data-target');
if (target && DropdownButton_$("#".concat(target)).length) {
element.dropdown({
inDuration: 300,
outDuration: 225,
constrainWidth: false,
// hover: true, // Activate on hover
belowOrigin: true // Displays dropdown below the button
});
}
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DropdownButton/DropdownButton.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikDropdownButton() {
return {
restrict: 'C',
link: function piwikDropdownButtonLink(scope, element) {
DropdownButton.mounted(element[0]);
}
};
}
window.angular.module('piwikApp').directive('dropdownButton', piwikDropdownButton);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SelectOnFocus/SelectOnFocus.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function onFocusHandler(binding, event) {
if (binding.value.focusedElement !== event.target) {
binding.value.focusedElement = event.target;
window.angular.element(event.target).select();
}
}
function SelectOnFocus_onClickHandler(event) {
// .select() + focus and blur seems to not work on pre elements
var range = document.createRange();
range.selectNode(event.target);
var selection = window.getSelection();
if (selection && selection.rangeCount > 0) {
selection.removeAllRanges();
}
if (selection) {
selection.addRange(range);
}
}
function onBlurHandler(binding) {
delete binding.value.focusedElement;
}
/* harmony default export */ var SelectOnFocus = ({
mounted: function mounted(el, binding) {
var tagName = el.tagName.toLowerCase();
binding.value.elementSupportsSelect = tagName === 'textarea';
if (binding.value.elementSupportsSelect) {
binding.value.onFocusHandler = onFocusHandler.bind(null, binding);
binding.value.onBlurHandler = onBlurHandler.bind(null, binding);
el.addEventListener('focus', binding.value.onFocusHandler);
el.addEventListener('blur', binding.value.onBlurHandler);
} else {
binding.value.onClickHandler = SelectOnFocus_onClickHandler;
el.addEventListener('click', binding.value.onClickHandler);
}
},
unmounted: function unmounted(el, binding) {
if (binding.value.elementSupportsSelect) {
el.removeEventListener('focus', binding.value.onFocusHandler);
el.removeEventListener('blur', binding.value.onBlurHandler);
} else {
el.removeEventListener('click', binding.value.onClickHandler);
}
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SelectOnFocus/SelectOnFocus.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikSelectOnFocus() {
return {
restrict: 'A',
link: function piwikSelectOnFocusLink(scope, element) {
var binding = {
instance: null,
value: {},
oldValue: null,
modifiers: {},
dir: {}
};
SelectOnFocus.mounted(element[0], binding);
element.on('$destroy', function () {
return SelectOnFocus.unmounted(element[0], binding);
});
}
};
}
window.angular.module('piwikApp').directive('piwikSelectOnFocus', piwikSelectOnFocus);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SideNav/SideNav.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var initialized = false;
/**
* Will activate the materialize side nav feature once rendered. We use this directive as
* it makes sure the actual left menu is rendered at the time we init the side nav.
*
* Has to be set on a collaapsible element
*
* Example:
*
...
*/
/* harmony default export */ var SideNav = ({
mounted: function mounted(el, binding) {
if (!binding.value.activator) {
return;
}
setTimeout(function () {
if (!initialized) {
initialized = true;
var sideNavActivator = directiveUtilities.getRef(binding.value.activator, binding);
if (sideNavActivator) {
window.$(sideNavActivator).show();
var targetSelector = sideNavActivator.getAttribute('data-target'); // @ts-ignore
window.$("#".concat(targetSelector)).sidenav({
closeOnClick: true
});
}
}
if (el.classList.contains('collapsible')) {
window.$(el).collapsible();
}
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SideNav/SideNav.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikSideNav($timeout) {
return {
restrict: 'A',
priority: 10,
link: function linkPiwikSideNav(scope, element, attr) {
var binding = {
instance: null,
value: {
activator: $(attr.piwikSideNav)[0]
},
oldValue: null,
modifiers: {},
dir: {}
};
$timeout(function () {
SideNav.mounted(element[0], binding);
});
}
};
}
piwikSideNav.$inject = ['$timeout'];
window.angular.module('piwikApp.directive').directive('piwikSideNav', piwikSideNav);
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=template&id=a14c48d8
var _hoisted_1 = {
ref: "root"
};
function MatomoDialogvue_type_template_id_a14c48d8_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")], 512)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.modelValue]]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=template&id=a14c48d8
// 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/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=script&lang=ts
/* harmony default export */ var MatomoDialogvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
/**
* Whether the modal is displayed or not;
*/
modelValue: {
type: Boolean,
required: true
},
/**
* Only here for backwards compatibility w/ AngularJS. If supplied, we use this
* element to launch the modal instead of the element in the slot. This should not
* be used for new Vue code.
*
* @deprecated
*/
element: {
type: HTMLElement,
required: false
}
},
emits: ['yes', 'no', 'closeEnd', 'close', 'validation', 'update:modelValue'],
activated: function activated() {
this.$emit('update:modelValue', false);
},
watch: {
modelValue: function modelValue(newValue, oldValue) {
var _this = this;
if (newValue) {
var slotElement = this.element || this.$refs.root.firstElementChild;
Matomo_Matomo.helper.modalConfirm(slotElement, {
yes: function yes() {
_this.$emit('yes');
},
no: function no() {
_this.$emit('no');
},
validation: function validation() {
_this.$emit('validation');
}
}, {
onCloseEnd: function onCloseEnd() {
// materialize removes the child element, so we move it back to the slot
if (!_this.element) {
_this.$refs.root.appendChild(slotElement);
}
_this.$emit('update:modelValue', false);
_this.$emit('closeEnd');
}
});
} else if (newValue === false && oldValue === true) {
// the user closed the dialog, e.g. by pressing Esc or clicking away from it
$('.modal.open').modal('close');
this.$emit('close');
}
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.vue
MatomoDialogvue_type_script_lang_ts.render = MatomoDialogvue_type_template_id_a14c48d8_render
/* harmony default export */ var MatomoDialog = (MatomoDialogvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MatomoDialog/MatomoDialog.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var MatomoDialog_adapter = (createAngularJsAdapter({
component: MatomoDialog,
scope: {
show: {
vue: 'modelValue',
default: false
},
element: {
default: function _default(scope, element) {
return element[0];
}
}
},
events: {
yes: function yes($event, vm, scope, element, attrs) {
if (attrs.yes) {
scope.$eval(attrs.yes);
setTimeout(function () {
scope.$apply();
}, 0);
}
},
no: function no($event, vm, scope, element, attrs) {
if (attrs.no) {
scope.$eval(attrs.no);
setTimeout(function () {
scope.$apply();
}, 0);
}
},
validation: function validation($event, vm, scope, element, attrs) {
if (attrs.no) {
scope.$eval(attrs.no);
setTimeout(function () {
scope.$apply();
}, 0);
}
},
close: function close($event, vm, scope, element, attrs) {
if (attrs.close) {
scope.$eval(attrs.close);
setTimeout(function () {
scope.$apply();
}, 0);
}
},
'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, controller, $parse) {
setTimeout(function () {
scope.$apply($parse(attrs.piwikDialog).assign(scope, newValue));
}, 0);
}
},
$inject: ['$parse'],
directiveName: 'piwikDialog',
transclude: true,
mountPointFactory: function mountPointFactory(scope, element) {
var vueRootPlaceholder = $('');
vueRootPlaceholder.appendTo(element);
return vueRootPlaceholder[0];
},
postCreate: function postCreate(vm, scope, element, attrs) {
scope.$watch(attrs.piwikDialog, function (newValue, oldValue) {
if (oldValue !== newValue) {
vm.modelValue = newValue || false;
}
});
},
noScope: true
}));
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.vue?vue&type=template&id=744f4bf7
var EnrichedHeadlinevue_type_template_id_744f4bf7_hoisted_1 = {
key: 0,
class: "title",
tabindex: "6"
};
var _hoisted_2 = ["href", "title"];
var _hoisted_3 = {
class: "iconsBar"
};
var _hoisted_4 = ["href", "title"];
var _hoisted_5 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon-help"
}, null, -1);
var _hoisted_6 = [_hoisted_5];
var _hoisted_7 = ["title"];
var _hoisted_8 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon-info"
}, null, -1);
var _hoisted_9 = [_hoisted_8];
var _hoisted_10 = {
class: "ratingIcons"
};
var _hoisted_11 = {
class: "inlineHelp"
};
var _hoisted_12 = ["innerHTML"];
var _hoisted_13 = ["innerHTML"];
var _hoisted_14 = ["href"];
function EnrichedHeadlinevue_type_template_id_744f4bf7_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_RateFeature = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("RateFeature");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: "enrichedHeadline",
onMouseenter: _cache[1] || (_cache[1] = function ($event) {
return _ctx.showIcons = true;
}),
onMouseleave: _cache[2] || (_cache[2] = function ($event) {
return _ctx.showIcons = false;
}),
ref: "root"
}, [!_ctx.editUrl ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", EnrichedHeadlinevue_type_template_id_744f4bf7_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.editUrl ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 1,
class: "title",
href: _ctx.editUrl,
title: _ctx.translate('CoreHome_ClickToEditX', _ctx.htmlEntities(_ctx.actualFeatureName))
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")], 8, _hoisted_2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_3, [_ctx.helpUrl && !_ctx.actualInlineHelp ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 0,
rel: "noreferrer noopener",
target: "_blank",
class: "helpIcon",
href: _ctx.helpUrl,
title: _ctx.translate('CoreHome_ExternalHelp')
}, _hoisted_6, 8, _hoisted_4)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualInlineHelp ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 1,
onClick: _cache[0] || (_cache[0] = function ($event) {
return _ctx.showInlineHelp = !_ctx.showInlineHelp;
}),
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["helpIcon", {
'active': _ctx.showInlineHelp
}]),
title: _ctx.translate(_ctx.reportGenerated ? 'General_HelpReport' : 'General_Help')
}, _hoisted_9, 10, _hoisted_7)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_10, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_RateFeature, {
title: _ctx.actualFeatureName
}, null, 8, ["title"])])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showIcons || _ctx.showInlineHelp]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_11, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
innerHTML: _ctx.$sanitize(_ctx.actualInlineHelp)
}, null, 8, _hoisted_12), _ctx.reportGenerated != '' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
key: 0,
class: "helpDate",
innerHTML: _ctx.$sanitize(_ctx.reportGenerated)
}, null, 8, _hoisted_13)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.helpUrl ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 1,
rel: "noreferrer noopener",
target: "_blank",
class: "readMore",
href: _ctx.helpUrl
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_MoreDetails')), 9, _hoisted_14)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showInlineHelp]])], 544);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.vue?vue&type=template&id=744f4bf7
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/useExternalPluginComponent.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/ban-ts-comment */
function useExternalPluginComponent(plugin, component) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineAsyncComponent"])(function () {
return new Promise(function (resolve) {
window.$(document).ready(function () {
if (window[plugin]) {
resolve(window[plugin][component]);
} else {
// @ts-ignore
resolve(null); // plugin not loaded
}
});
});
});
}
// 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/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.vue?vue&type=script&lang=ts
// working around a cycle in dependencies (CoreHome depends on Feedback, Feedback depends on
// CoreHome)
var RateFeature = useExternalPluginComponent('Feedback', 'RateFeature');
/**
* Usage:
*
*
All Websites Dashboard
* -> uses "All Websites Dashboard" as featurename
*
*
All Websites Dashboard (Total:
* 309 Visits)
* -> custom featurename
*
*
All Websites Dashboard
* -> shows help icon and links to external url
*
*
All Websites
* Dashboard
* -> makes the headline clickable linking to the specified url
*
*
Pages report
* -> inlineHelp specified via a attribute shows help icon on headline hover
*
*
All Websites Dashboard
*
My inline help
*
* -> alternative definition for inline help
* -> shows help icon to display inline help on click. Note: You can combine inlinehelp and help-url
*
* *
Pages report
* -> reportGenerated specified via this attribute shows a clock icon with a tooltip which
* activated by hover
* -> the tooltip shows the value of the attribute
*/
/* harmony default export */ var EnrichedHeadlinevue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
helpUrl: {
type: String,
default: ''
},
editUrl: {
type: String,
default: ''
},
reportGenerated: String,
featureName: String,
inlineHelp: String
},
components: {
RateFeature: RateFeature
},
data: function data() {
return {
showIcons: false,
showInlineHelp: false,
actualFeatureName: this.featureName,
actualInlineHelp: this.inlineHelp
};
},
watch: {
inlineHelp: function inlineHelp(newValue) {
this.actualInlineHelp = newValue;
},
featureName: function featureName(newValue) {
this.actualFeatureName = newValue;
}
},
mounted: function mounted() {
var _this = this;
var root = this.$refs.root; // timeout used since angularjs does not fill out the transclude at this point
setTimeout(function () {
if (!_this.actualInlineHelp) {
var _root$parentElement;
var helpNode = root.querySelector('.title .inlineHelp');
if (!helpNode && (_root$parentElement = root.parentElement) !== null && _root$parentElement !== void 0 && _root$parentElement.nextElementSibling) {
// hack for reports :(
helpNode = root.parentElement.nextElementSibling.querySelector('.reportDocumentation');
}
if (helpNode) {
var _helpNode$getAttribut;
// hackish solution to get binded html of p tag within the help node
// at this point the ng-bind-html is not yet converted into html when report is not
// initially loaded. Using $compile doesn't work. So get and set it manually
var helpDocs = (_helpNode$getAttribut = helpNode.getAttribute('data-content')) === null || _helpNode$getAttribut === void 0 ? void 0 : _helpNode$getAttribut.trim();
if (helpDocs && helpDocs.length) {
_this.actualInlineHelp = "
".concat(helpDocs, "
");
setTimeout(function () {
return helpNode.remove();
}, 0);
}
}
}
if (!_this.actualFeatureName) {
var _root$querySelector;
_this.actualFeatureName = (_root$querySelector = root.querySelector('.title')) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.textContent;
}
if (Matomo_Matomo.period && Matomo_Matomo.currentDateString) {
var currentPeriod = Periods_Periods.parse(Matomo_Matomo.period, Matomo_Matomo.currentDateString);
if (_this.reportGenerated && currentPeriod.containsToday()) {
window.$(root.querySelector('.report-generated')).tooltip({
track: true,
content: _this.reportGenerated,
items: 'div',
show: false,
hide: false
});
}
}
});
},
methods: {
htmlEntities: function htmlEntities(v) {
return Matomo_Matomo.helper.htmlEntities(v);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.vue
EnrichedHeadlinevue_type_script_lang_ts.render = EnrichedHeadlinevue_type_template_id_744f4bf7_render
/* harmony default export */ var EnrichedHeadline = (EnrichedHeadlinevue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/EnrichedHeadline/EnrichedHeadline.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var EnrichedHeadline_adapter = (createAngularJsAdapter({
component: EnrichedHeadline,
scope: {
helpUrl: {
angularJsBind: '@'
},
editUrl: {
angularJsBind: '@'
},
reportGenerated: {
angularJsBind: '@?'
},
featureName: {
angularJsBind: '@'
},
inlineHelp: {
angularJsBind: '@?'
}
},
directiveName: 'piwikEnrichedHeadline',
transclude: true
}));
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/ContentBlock/ContentBlock.vue?vue&type=template&id=bb18e396
var ContentBlockvue_type_template_id_bb18e396_hoisted_1 = {
class: "card",
ref: "root"
};
var ContentBlockvue_type_template_id_bb18e396_hoisted_2 = {
class: "card-content"
};
var ContentBlockvue_type_template_id_bb18e396_hoisted_3 = {
key: 0,
class: "card-title"
};
var ContentBlockvue_type_template_id_bb18e396_hoisted_4 = {
key: 1,
class: "card-title"
};
var ContentBlockvue_type_template_id_bb18e396_hoisted_5 = {
ref: "content"
};
function ContentBlockvue_type_template_id_bb18e396_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_EnrichedHeadline = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("EnrichedHeadline");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ContentBlockvue_type_template_id_bb18e396_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ContentBlockvue_type_template_id_bb18e396_hoisted_2, [_ctx.contentTitle && !_ctx.actualFeature && !_ctx.helpUrl && !_ctx.actualHelpText ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("h2", ContentBlockvue_type_template_id_bb18e396_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.decode(_ctx.contentTitle)), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.contentTitle && (_ctx.actualFeature || _ctx.helpUrl || _ctx.actualHelpText) ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("h2", ContentBlockvue_type_template_id_bb18e396_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_EnrichedHeadline, {
"feature-name": _ctx.actualFeature,
"help-url": _ctx.helpUrl,
"inline-help": _ctx.actualHelpText
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.decode(_ctx.contentTitle)), 1)];
}),
_: 1
}, 8, ["feature-name", "help-url", "inline-help"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ContentBlockvue_type_template_id_bb18e396_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")], 512)])], 512);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentBlock/ContentBlock.vue?vue&type=template&id=bb18e396
// 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/CoreHome/vue/src/ContentBlock/ContentBlock.vue?vue&type=script&lang=ts
var adminContent = null;
var ContentBlockvue_type_script_lang_ts_window = window,
ContentBlockvue_type_script_lang_ts_$ = ContentBlockvue_type_script_lang_ts_window.$;
/* harmony default export */ var ContentBlockvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
contentTitle: String,
feature: String,
helpUrl: String,
helpText: String,
anchor: String
},
components: {
EnrichedHeadline: EnrichedHeadline
},
data: function data() {
return {
actualFeature: this.feature,
actualHelpText: this.helpText
};
},
watch: {
feature: function feature(newValue) {
this.actualFeature = newValue;
},
helpText: function helpText(newValue) {
this.actualHelpText = newValue;
}
},
mounted: function mounted() {
var _this = this;
var root = this.$refs.root;
var content = this.$refs.content;
if (this.anchor && root && root.parentElement) {
var anchorElement = document.createElement('a');
anchorElement.id = this.anchor;
ContentBlockvue_type_script_lang_ts_$(root.parentElement).prepend(anchorElement);
}
setTimeout(function () {
var inlineHelp = content.querySelector('.contentHelp');
if (inlineHelp) {
_this.actualHelpText = inlineHelp.innerHTML;
inlineHelp.remove();
}
}, 0);
if (this.actualFeature && this.actualFeature === 'true') {
this.actualFeature = this.contentTitle;
}
if (adminContent === null) {
// cache admin node for further content blocks
adminContent = document.querySelector('#content.admin');
}
var contentTopPosition = null;
if (adminContent) {
contentTopPosition = adminContent.offsetTop;
}
if (contentTopPosition || contentTopPosition === 0) {
var parents = root.closest('[piwik-widget-loader]'); // when shown within the widget loader, we need to get the offset of that element
// as the widget loader might be still shown. Would otherwise not position correctly
// the widgets on the admin home page
var topThis = parents ? parents.offsetTop : root.offsetTop;
if (topThis - contentTopPosition < 17) {
// we make sure to display the first card with no margin-top to have it on same as line as
// navigation
root.style.marginTop = '0';
}
}
},
methods: {
decode: function decode(s) {
return Matomo_Matomo.helper.htmlDecode(s);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentBlock/ContentBlock.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentBlock/ContentBlock.vue
ContentBlockvue_type_script_lang_ts.render = ContentBlockvue_type_template_id_bb18e396_render
/* harmony default export */ var ContentBlock = (ContentBlockvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentBlock/ContentBlock.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var ContentBlock_adapter = (createAngularJsAdapter({
component: ContentBlock,
scope: {
contentTitle: {
angularJsBind: '@'
},
feature: {
angularJsBind: '@'
},
helpUrl: {
angularJsBind: '@'
},
helpText: {
angularJsBind: '@'
},
anchor: {
angularJsBind: '@?'
}
},
directiveName: 'piwikContentBlock',
transclude: true
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Segmentation/Segments.store.ts
function Segments_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function Segments_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function Segments_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) Segments_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) Segments_store_defineProperties(Constructor, staticProps); return Constructor; }
function Segments_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var Segments_store_SegmentsStore = /*#__PURE__*/function () {
function SegmentsStore() {
var _this = this;
Segments_store_classCallCheck(this, SegmentsStore);
Segments_store_defineProperty(this, "segmentState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
availableSegments: []
}));
Matomo_Matomo.on('piwikSegmentationInited', function () {
return _this.setSegmentState();
});
}
Segments_store_createClass(SegmentsStore, [{
key: "state",
get: function get() {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.segmentState);
}
}, {
key: "setSegmentState",
value: function setSegmentState() {
try {
var uiControlObject = $('.segmentEditorPanel').data('uiControlObject');
this.segmentState.availableSegments = uiControlObject.impl.availableSegments || [];
} catch (e) {// segment editor is not initialized yet
}
}
}]);
return SegmentsStore;
}();
/* harmony default export */ var Segments_store = (new Segments_store_SegmentsStore());
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Comparisons/Comparisons.store.ts
function Comparisons_store_toConsumableArray(arr) { return Comparisons_store_arrayWithoutHoles(arr) || Comparisons_store_iterableToArray(arr) || Comparisons_store_unsupportedIterableToArray(arr) || Comparisons_store_nonIterableSpread(); }
function Comparisons_store_nonIterableSpread() { 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 Comparisons_store_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return Comparisons_store_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 Comparisons_store_arrayLikeToArray(o, minLen); }
function Comparisons_store_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function Comparisons_store_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return Comparisons_store_arrayLikeToArray(arr); }
function Comparisons_store_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 Comparisons_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function Comparisons_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function Comparisons_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) Comparisons_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) Comparisons_store_defineProperties(Constructor, staticProps); return Constructor; }
function Comparisons_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var SERIES_COLOR_COUNT = 8;
var SERIES_SHADE_COUNT = 3;
function wrapArray(values) {
if (!values) {
return [];
}
return Array.isArray(values) ? values : [values];
}
var Comparisons_store_ComparisonsStore = /*#__PURE__*/function () {
// for tests
function ComparisonsStore() {
var _this = this;
Comparisons_store_classCallCheck(this, ComparisonsStore);
Comparisons_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
comparisonsDisabledFor: []
}));
Comparisons_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.privateState));
Comparisons_store_defineProperty(this, "colors", {});
Comparisons_store_defineProperty(this, "segmentComparisons", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.parseSegmentComparisons();
}));
Comparisons_store_defineProperty(this, "periodComparisons", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.parsePeriodComparisons();
}));
Comparisons_store_defineProperty(this, "isEnabled", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.checkEnabledForCurrentPage();
}));
this.loadComparisonsDisabledFor();
$(function () {
_this.colors = _this.getAllSeriesColors();
});
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return _this.getComparisons();
}, function () {
return Matomo_Matomo.postEvent('piwikComparisonsChanged');
}, {
deep: true
});
}
Comparisons_store_createClass(ComparisonsStore, [{
key: "getComparisons",
value: function getComparisons() {
return this.getSegmentComparisons().concat(this.getPeriodComparisons());
}
}, {
key: "isComparing",
value: function isComparing() {
return this.isComparisonEnabled() // first two in each array are for the currently selected segment/period
&& (this.segmentComparisons.value.length > 1 || this.periodComparisons.value.length > 1);
}
}, {
key: "isComparingPeriods",
value: function isComparingPeriods() {
return this.getPeriodComparisons().length > 1; // first is currently selected period
}
}, {
key: "getSegmentComparisons",
value: function getSegmentComparisons() {
if (!this.isComparisonEnabled()) {
return [];
}
return this.segmentComparisons.value;
}
}, {
key: "getPeriodComparisons",
value: function getPeriodComparisons() {
if (!this.isComparisonEnabled()) {
return [];
}
return this.periodComparisons.value;
}
}, {
key: "getSeriesColor",
value: function getSeriesColor(segmentComparison, periodComparison) {
var metricIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
var seriesIndex = this.getComparisonSeriesIndex(periodComparison.index, segmentComparison.index) % SERIES_COLOR_COUNT;
if (metricIndex === 0) {
return this.colors["series".concat(seriesIndex)];
}
var shadeIndex = metricIndex % SERIES_SHADE_COUNT;
return this.colors["series".concat(seriesIndex, "-shade").concat(shadeIndex)];
}
}, {
key: "getSeriesColorName",
value: function getSeriesColorName(seriesIndex, metricIndex) {
var colorName = "series".concat(seriesIndex % SERIES_COLOR_COUNT);
if (metricIndex > 0) {
colorName += "-shade".concat(metricIndex % SERIES_SHADE_COUNT);
}
return colorName;
}
}, {
key: "isComparisonEnabled",
value: function isComparisonEnabled() {
return this.isEnabled.value;
}
}, {
key: "getIndividualComparisonRowIndices",
value: function getIndividualComparisonRowIndices(seriesIndex) {
var segmentCount = this.getSegmentComparisons().length;
var segmentIndex = seriesIndex % segmentCount;
var periodIndex = Math.floor(seriesIndex / segmentCount);
return {
segmentIndex: segmentIndex,
periodIndex: periodIndex
};
}
}, {
key: "getComparisonSeriesIndex",
value: function getComparisonSeriesIndex(periodIndex, segmentIndex) {
var segmentCount = this.getSegmentComparisons().length;
return periodIndex * segmentCount + segmentIndex;
}
}, {
key: "getAllComparisonSeries",
value: function getAllComparisonSeries() {
var _this2 = this;
var seriesInfo = [];
var seriesIndex = 0;
this.getPeriodComparisons().forEach(function (periodComp) {
_this2.getSegmentComparisons().forEach(function (segmentComp) {
seriesInfo.push({
index: seriesIndex,
params: Object.assign(Object.assign({}, segmentComp.params), periodComp.params),
color: _this2.colors["series".concat(seriesIndex)]
});
seriesIndex += 1;
});
});
return seriesInfo;
}
}, {
key: "removeSegmentComparison",
value: function removeSegmentComparison(index) {
if (!this.isComparisonEnabled()) {
throw new Error('Comparison disabled.');
}
var newComparisons = Comparisons_store_toConsumableArray(this.segmentComparisons.value);
newComparisons.splice(index, 1);
var extraParams = {};
if (index === 0) {
extraParams.segment = newComparisons[0].params.segment;
}
this.updateQueryParamsFromComparisons(newComparisons, this.periodComparisons.value, extraParams);
}
}, {
key: "addSegmentComparison",
value: function addSegmentComparison(params) {
if (!this.isComparisonEnabled()) {
throw new Error('Comparison disabled.');
}
var newComparisons = this.segmentComparisons.value.concat([{
params: params,
index: -1,
title: ''
}]);
this.updateQueryParamsFromComparisons(newComparisons, this.periodComparisons.value);
}
}, {
key: "updateQueryParamsFromComparisons",
value: function updateQueryParamsFromComparisons(segmentComparisons, periodComparisons) {
var extraParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
// get unique segments/periods/dates from new Comparisons
var compareSegments = {};
var comparePeriodDatePairs = {};
var firstSegment = false;
var firstPeriod = false;
segmentComparisons.forEach(function (comparison) {
if (firstSegment) {
compareSegments[comparison.params.segment] = true;
} else {
firstSegment = true;
}
});
periodComparisons.forEach(function (comparison) {
if (firstPeriod) {
comparePeriodDatePairs["".concat(comparison.params.period, "|").concat(comparison.params.date)] = true;
} else {
firstPeriod = true;
}
});
var comparePeriods = [];
var compareDates = [];
Object.keys(comparePeriodDatePairs).forEach(function (pair) {
var parts = pair.split('|');
comparePeriods.push(parts[0]);
compareDates.push(parts[1]);
});
var compareParams = {
compareSegments: Object.keys(compareSegments),
comparePeriods: comparePeriods,
compareDates: compareDates
}; // change the page w/ these new param values
var baseParams = Matomo_Matomo.helper.isAngularRenderingThePage() ? src_MatomoUrl_MatomoUrl.hashParsed.value : src_MatomoUrl_MatomoUrl.urlParsed.value;
src_MatomoUrl_MatomoUrl.updateLocation(Object.assign(Object.assign(Object.assign({}, baseParams), compareParams), extraParams));
}
}, {
key: "getAllSeriesColors",
value: function getAllSeriesColors() {
var ColorManager = Matomo_Matomo.ColorManager;
if (!ColorManager) {
return [];
}
var seriesColorNames = [];
for (var i = 0; i < SERIES_COLOR_COUNT; i += 1) {
seriesColorNames.push("series".concat(i));
for (var j = 0; j < SERIES_SHADE_COUNT; j += 1) {
seriesColorNames.push("series".concat(i, "-shade").concat(j));
}
}
return ColorManager.getColors('comparison-series-color', seriesColorNames);
}
}, {
key: "loadComparisonsDisabledFor",
value: function loadComparisonsDisabledFor() {
var _this3 = this;
var matomoModule = src_MatomoUrl_MatomoUrl.parsed.value.module; // check if body id #installation exist
if (window.piwik.installation) {
this.privateState.comparisonsDisabledFor = [];
return;
}
if (matomoModule === 'CoreUpdater' || matomoModule === 'Installation' || matomoModule === 'Overlay' || window.piwik.isPagesComparisonApiDisabled) {
this.privateState.comparisonsDisabledFor = [];
return;
}
AjaxHelper_AjaxHelper.fetch({
module: 'API',
method: 'API.getPagesComparisonsDisabledFor'
}).then(function (result) {
_this3.privateState.comparisonsDisabledFor = result;
});
}
}, {
key: "parseSegmentComparisons",
value: function parseSegmentComparisons() {
var availableSegments = Segments_store.state.availableSegments;
var compareSegments = Comparisons_store_toConsumableArray(wrapArray(src_MatomoUrl_MatomoUrl.parsed.value.compareSegments)); // add base comparisons
compareSegments.unshift(src_MatomoUrl_MatomoUrl.parsed.value.segment || '');
var newSegmentComparisons = [];
compareSegments.forEach(function (segment, idx) {
var storedSegment;
availableSegments.forEach(function (s) {
if (s.definition === segment || s.definition === decodeURIComponent(segment) || decodeURIComponent(s.definition) === segment) {
storedSegment = s;
}
});
var segmentTitle = storedSegment ? storedSegment.name : translate('General_Unknown');
if (segment.trim() === '') {
segmentTitle = translate('SegmentEditor_DefaultAllVisits');
}
newSegmentComparisons.push({
params: {
segment: segment
},
title: Matomo_Matomo.helper.htmlDecode(segmentTitle),
index: idx
});
});
return newSegmentComparisons;
}
}, {
key: "parsePeriodComparisons",
value: function parsePeriodComparisons() {
var comparePeriods = Comparisons_store_toConsumableArray(wrapArray(src_MatomoUrl_MatomoUrl.parsed.value.comparePeriods));
var compareDates = Comparisons_store_toConsumableArray(wrapArray(src_MatomoUrl_MatomoUrl.parsed.value.compareDates));
comparePeriods.unshift(src_MatomoUrl_MatomoUrl.parsed.value.period);
compareDates.unshift(src_MatomoUrl_MatomoUrl.parsed.value.date);
var newPeriodComparisons = [];
for (var i = 0; i < Math.min(compareDates.length, comparePeriods.length); i += 1) {
var title = void 0;
try {
title = Periods_Periods.parse(comparePeriods[i], compareDates[i]).getPrettyString();
} catch (e) {
title = translate('General_Error');
}
newPeriodComparisons.push({
params: {
date: compareDates[i],
period: comparePeriods[i]
},
title: title,
index: i
});
}
return newPeriodComparisons;
}
}, {
key: "checkEnabledForCurrentPage",
value: function checkEnabledForCurrentPage() {
// category/subcategory is not included on top bar pages, so in that case we use module/action
var category = src_MatomoUrl_MatomoUrl.parsed.value.category || src_MatomoUrl_MatomoUrl.parsed.value.module;
var subcategory = src_MatomoUrl_MatomoUrl.parsed.value.subcategory || src_MatomoUrl_MatomoUrl.parsed.value.action;
var id = "".concat(category, ".").concat(subcategory);
var isEnabled = this.privateState.comparisonsDisabledFor.indexOf(id) === -1 && this.privateState.comparisonsDisabledFor.indexOf("".concat(category, ".*")) === -1;
document.documentElement.classList.toggle('comparisonsDisabled', !isEnabled);
return isEnabled;
}
}]);
return ComparisonsStore;
}();
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Comparisons/Comparisons.store.instance.ts
/* harmony default export */ var Comparisons_store_instance = (new Comparisons_store_ComparisonsStore());
// 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/Comparisons/Comparisons.vue?vue&type=template&id=d1a096d8
var Comparisonsvue_type_template_id_d1a096d8_hoisted_1 = {
key: 0,
ref: "root",
class: "matomo-comparisons"
};
var Comparisonsvue_type_template_id_d1a096d8_hoisted_2 = {
class: "comparison-type"
};
var Comparisonsvue_type_template_id_d1a096d8_hoisted_3 = ["title"];
var Comparisonsvue_type_template_id_d1a096d8_hoisted_4 = ["href"];
var Comparisonsvue_type_template_id_d1a096d8_hoisted_5 = ["title"];
var Comparisonsvue_type_template_id_d1a096d8_hoisted_6 = {
class: "comparison-period-label"
};
var Comparisonsvue_type_template_id_d1a096d8_hoisted_7 = ["onClick"];
var Comparisonsvue_type_template_id_d1a096d8_hoisted_8 = ["title"];
var Comparisonsvue_type_template_id_d1a096d8_hoisted_9 = {
class: "loadingPiwik",
style: {
"display": "none"
}
};
var Comparisonsvue_type_template_id_d1a096d8_hoisted_10 = ["alt"];
function Comparisonsvue_type_template_id_d1a096d8_render(_ctx, _cache, $props, $setup, $data, $options) {
var _directive_tooltips = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("tooltips");
return _ctx.isComparing ? 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", Comparisonsvue_type_template_id_d1a096d8_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h3", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Comparisons')), 1), (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.segmentComparisons, function (comparison, $index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: "comparison card",
key: comparison.index
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Comparisonsvue_type_template_id_d1a096d8_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Segment')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
class: "title",
title: comparison.title + ' ' + decodeURIComponent(comparison.params.segment)
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
target: "_blank",
href: _ctx.getUrlToSegment(comparison.params.segment)
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(comparison.title), 9, Comparisonsvue_type_template_id_d1a096d8_hoisted_4)], 8, Comparisonsvue_type_template_id_d1a096d8_hoisted_3), (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.periodComparisons, function (periodComparison) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: "comparison-period",
key: periodComparison.index,
title: _ctx.getComparisonTooltip(comparison, periodComparison)
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "comparison-dot",
style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
'background-color': _ctx.getSeriesColor(comparison, periodComparison)
})
}, null, 4), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Comparisonsvue_type_template_id_d1a096d8_hoisted_6, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(periodComparison.title) + " (" + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.getComparisonPeriodType(periodComparison)) + ") ", 1)], 8, Comparisonsvue_type_template_id_d1a096d8_hoisted_5);
}), 128)), _ctx.segmentComparisons.length > 1 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 0,
class: "remove-button",
onClick: function onClick($event) {
return _ctx.removeSegmentComparison($index);
}
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon icon-close",
title: _ctx.translate('General_ClickToRemoveComp')
}, null, 8, Comparisonsvue_type_template_id_d1a096d8_hoisted_8)], 8, Comparisonsvue_type_template_id_d1a096d8_hoisted_7)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]);
}), 128)), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Comparisonsvue_type_template_id_d1a096d8_hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
src: "plugins/Morpheus/images/loading-blue.gif",
alt: _ctx.translate('General_LoadingData')
}, null, 8, Comparisonsvue_type_template_id_d1a096d8_hoisted_10), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_LoadingData')), 1)])], 512)), [[_directive_tooltips, {
duration: 200,
delay: 200,
content: _ctx.transformTooltipContent
}]]) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Comparisons/Comparisons.vue?vue&type=template&id=d1a096d8
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Tooltips/Tooltips.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var Tooltips_window = window,
Tooltips_$ = Tooltips_window.$;
function defaultContentTransform() {
var title = Tooltips_$(this).attr('title') || '';
return window.vueSanitize(title.replace(/\n/g, ' '));
}
function setupTooltips(el, binding) {
var _binding$value, _binding$value2, _binding$value3;
Tooltips_$(el).tooltip({
track: true,
content: ((_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value.content) || defaultContentTransform,
show: {
delay: ((_binding$value2 = binding.value) === null || _binding$value2 === void 0 ? void 0 : _binding$value2.delay) || 700,
duration: ((_binding$value3 = binding.value) === null || _binding$value3 === void 0 ? void 0 : _binding$value3.duration) || 200
},
hide: false
});
}
/* harmony default export */ var Tooltips = ({
mounted: function mounted(el, binding) {
setTimeout(function () {
return setupTooltips(el, binding);
});
},
updated: function updated(el, binding) {
setTimeout(function () {
return setupTooltips(el, binding);
});
},
beforeUnmount: function beforeUnmount(el) {
try {
window.$(el).tooltip('destroy');
} catch (e) {// ignore
}
}
});
// 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/CoreHome/vue/src/Comparisons/Comparisons.vue?vue&type=script&lang=ts
/* harmony default export */ var Comparisonsvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {},
directives: {
Tooltips: Tooltips
},
data: function data() {
return {
comparisonTooltips: null
};
},
setup: function setup() {
// accessing has to be done through a computed property so we can use the computed
// instance directly in the template. unfortunately, vue won't register to changes.
var isComparing = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Comparisons_store_instance.isComparing();
});
var segmentComparisons = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Comparisons_store_instance.getSegmentComparisons();
});
var periodComparisons = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Comparisons_store_instance.getPeriodComparisons();
});
var getSeriesColor = Comparisons_store_instance.getSeriesColor.bind(Comparisons_store_instance);
function transformTooltipContent() {
var title = window.$(this).attr('title');
if (!title) {
return title;
}
return window.vueSanitize(title.replace(/\n/g, ' '));
}
return {
isComparing: isComparing,
segmentComparisons: segmentComparisons,
periodComparisons: periodComparisons,
getSeriesColor: getSeriesColor,
transformTooltipContent: transformTooltipContent
};
},
methods: {
comparisonHasSegment: function comparisonHasSegment(comparison) {
return typeof comparison.params.segment !== 'undefined';
},
removeSegmentComparison: function removeSegmentComparison(index) {
// otherwise the tooltip will be stuck on the screen
window.$(this.$refs.root).tooltip('destroy');
Comparisons_store_instance.removeSegmentComparison(index);
},
getComparisonPeriodType: function getComparisonPeriodType(comparison) {
var period = comparison.params.period;
if (period === 'range') {
return translate('CoreHome_PeriodRange');
}
var periodStr = translate("Intl_Period".concat(period.substring(0, 1).toUpperCase()).concat(period.substring(1)));
return periodStr.substring(0, 1).toUpperCase() + periodStr.substring(1);
},
getComparisonTooltip: function getComparisonTooltip(segmentComparison, periodComparison) {
if (!this.comparisonTooltips || !Object.keys(this.comparisonTooltips).length) {
return undefined;
}
return (this.comparisonTooltips[periodComparison.index] || {})[segmentComparison.index];
},
getUrlToSegment: function getUrlToSegment(segment) {
var hash = Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value);
delete hash.comparePeriods;
delete hash.compareDates;
delete hash.compareSegments;
hash.segment = segment;
return "".concat(window.location.search, "#?").concat(src_MatomoUrl_MatomoUrl.stringify(hash));
},
onComparisonsChanged: function onComparisonsChanged() {
var _this = this;
this.comparisonTooltips = null;
if (!Comparisons_store_instance.isComparing()) {
return;
}
var periodComparisons = Comparisons_store_instance.getPeriodComparisons();
var segmentComparisons = Comparisons_store_instance.getSegmentComparisons();
AjaxHelper_AjaxHelper.fetch({
method: 'API.getProcessedReport',
apiModule: 'VisitsSummary',
apiAction: 'get',
compare: '1',
compareSegments: src_MatomoUrl_MatomoUrl.getSearchParam('compareSegments'),
comparePeriods: src_MatomoUrl_MatomoUrl.getSearchParam('comparePeriods'),
compareDates: src_MatomoUrl_MatomoUrl.getSearchParam('compareDates'),
format_metrics: '1'
}).then(function (report) {
_this.comparisonTooltips = {};
periodComparisons.forEach(function (periodComp) {
_this.comparisonTooltips[periodComp.index] = {};
segmentComparisons.forEach(function (segmentComp) {
var tooltip = _this.generateComparisonTooltip(report, periodComp, segmentComp);
_this.comparisonTooltips[periodComp.index][segmentComp.index] = tooltip;
});
});
});
},
generateComparisonTooltip: function generateComparisonTooltip(visitsSummary, periodComp, segmentComp) {
if (!visitsSummary.reportData.comparisons) {
// sanity check
return '';
}
var firstRowIndex = Comparisons_store_instance.getComparisonSeriesIndex(periodComp.index, 0);
var firstRow = visitsSummary.reportData.comparisons[firstRowIndex];
var comparisonRowIndex = Comparisons_store_instance.getComparisonSeriesIndex(periodComp.index, segmentComp.index);
var comparisonRow = visitsSummary.reportData.comparisons[comparisonRowIndex];
var firstPeriodRow = visitsSummary.reportData.comparisons[segmentComp.index];
var tooltip = '
must have the ui-state-hover class
var elementToAddClassTo = $dateCellLink.length ? $dateCellLink : $dateCell;
elementToAddClassTo.addClass('ui-state-hover');
} else {
$dateCell.removeClass('ui-state-hover');
$dateCellLink.removeClass('ui-state-hover');
}
}
function getCellDate($dateCell, month, year) {
if ($dateCell.hasClass('ui-datepicker-other-month')) {
return getOtherMonthDate($dateCell, month, year); // eslint-disable-line
}
var day = parseInt($dateCell.children('a,span').text(), 10);
return new Date(year, month, day);
}
function getOtherMonthDate($dateCell, month, year) {
var date;
var $row = $dateCell.parent();
var $rowCells = $row.children('td'); // if in the first row, the date cell is before the current month
if ($row.is(':first-child')) {
var $firstDateInMonth = $row.children('td:not(.ui-datepicker-other-month)').first();
date = getCellDate($firstDateInMonth, month, year);
date.setDate($rowCells.index($dateCell) - $rowCells.index($firstDateInMonth) + 1);
return date;
} // the date cell is after the current month
var $lastDateInMonth = $row.children('td:not(.ui-datepicker-other-month)').last();
date = getCellDate($lastDateInMonth, month, year);
date.setDate(date.getDate() + $rowCells.index($dateCell) - $rowCells.index($lastDateInMonth));
return date;
}
function getMonthYearDisplayed() {
var element = DatePickervue_type_script_lang_ts_$(root.value);
var $firstCellWithMonth = element.find('td[data-month]');
var month = parseInt($firstCellWithMonth.attr('data-month'), 10);
var year = parseInt($firstCellWithMonth.attr('data-year'), 10);
return [month, year];
}
function setDatePickerCellColors() {
var element = DatePickervue_type_script_lang_ts_$(root.value);
var $calendarTable = element.find('.ui-datepicker-calendar');
var monthYear = getMonthYearDisplayed(); // highlight the rest of the cells by first getting the date for the first cell
// in the calendar, then just incrementing by one for the rest of the cells.
var $cells = $calendarTable.find('td');
var $firstDateCell = $cells.first();
var currentDate = getCellDate($firstDateCell, monthYear[0], monthYear[1]);
$cells.each(function setCellColor() {
setDateCellColor(DatePickervue_type_script_lang_ts_$(this), currentDate);
currentDate.setDate(currentDate.getDate() + 1);
});
}
function viewDateChanged() {
if (!props.viewDate) {
return false;
}
var date;
if (typeof props.viewDate === 'string') {
try {
date = parseDate(props.viewDate);
} catch (e) {
return false;
}
} else {
date = props.viewDate;
}
var element = DatePickervue_type_script_lang_ts_$(root.value); // only change the datepicker date if the date is outside of the current month/year.
// this avoids a re-render in other cases.
var monthYear = getMonthYearDisplayed();
if (monthYear[0] !== date.getMonth() || monthYear[1] !== date.getFullYear()) {
element.datepicker('setDate', date);
return true;
}
return false;
} // remove the ui-state-active class & click handlers for every cell. we bypass
// the datepicker's date selection logic for smoother browser rendering.
function onJqueryUiRenderedPicker() {
var element = DatePickervue_type_script_lang_ts_$(root.value);
element.find('td[data-event]').off('click');
element.find('.ui-state-active').removeClass('ui-state-active');
element.find('.ui-datepicker-current-day').removeClass('ui-datepicker-current-day'); // add href to left/right nav in calendar so they can be accessed via keyboard
element.find('.ui-datepicker-prev,.ui-datepicker-next').attr('href', '');
}
function stepMonthsChanged() {
var element = DatePickervue_type_script_lang_ts_$(root.value);
var stepMonths = props.stepMonths || DEFAULT_STEP_MONTHS;
if (element.datepicker('option', 'stepMonths') === stepMonths) {
return false;
} // setting stepMonths will change the month in view back to the selected date. to avoid
// we set the selected date to the month in view.
var currentMonth = DatePickervue_type_script_lang_ts_$('.ui-datepicker-month', element).val();
var currentYear = DatePickervue_type_script_lang_ts_$('.ui-datepicker-year', element).val();
element.datepicker('option', 'stepMonths', stepMonths).datepicker('setDate', new Date(currentYear, currentMonth));
onJqueryUiRenderedPicker();
return true;
}
function enableDisableMonthDropdown() {
var element = DatePickervue_type_script_lang_ts_$(root.value);
var monthPicker = element.find('.ui-datepicker-month')[0];
if (monthPicker) {
monthPicker.disabled = props.disableMonthDropdown;
}
}
function handleOtherMonthClick() {
if (!DatePickervue_type_script_lang_ts_$(this).hasClass('ui-state-hover')) {
return;
}
var $row = DatePickervue_type_script_lang_ts_$(this).parent();
var $tbody = $row.parent();
if ($row.is(':first-child')) {
// click on first of the month
$tbody.find('a').first().click();
} else {
// click on last of month
$tbody.find('a').last().click();
}
}
function onCalendarViewChange() {
// clicking left/right re-enables the month dropdown, so we disable it again
enableDisableMonthDropdown();
setDatePickerCellColors();
} // on a prop change (NOTE: we can't watch just `props`, since then newProps and oldProps will
// have the same values (since it is a proxy object). Using a copy doesn't quite work, the
// object it returns will always be different, BUT, since we check what changes it works
// for our purposes. The only downside is that it runs on every tick basically, but since
// that is within the context of the date picker component, it's bearable.
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return Object.assign({}, props);
}, function (newProps, oldProps) {
var redraw = false;
[function (x) {
return x.selectedDateStart;
}, function (x) {
return x.selectedDateEnd;
}, function (x) {
return x.highlightedDateStart;
}, function (x) {
return x.highlightedDateEnd;
}].forEach(function (selector) {
if (redraw) {
return;
}
var newProp = selector(newProps);
var oldProp = selector(oldProps);
if (!newProp && oldProp) {
redraw = true;
}
if (newProp && !oldProp) {
redraw = true;
}
if (newProp && oldProp && newProp.getTime() !== oldProp.getTime()) {
redraw = true;
}
});
if (newProps.viewDate !== oldProps.viewDate && viewDateChanged()) {
redraw = true;
}
if (newProps.stepMonths !== oldProps.stepMonths) {
stepMonthsChanged();
}
if (newProps.disableMonthDropdown !== oldProps.disableMonthDropdown) {
enableDisableMonthDropdown();
} // redraw when selected/highlighted dates change
if (redraw) {
setDatePickerCellColors();
}
});
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["onMounted"])(function () {
var element = DatePickervue_type_script_lang_ts_$(root.value);
var customOptions = props.options || {};
var datePickerOptions = Object.assign(Object.assign(Object.assign({}, Matomo_Matomo.getBaseDatePickerOptions()), customOptions), {}, {
onChangeMonthYear: function onChangeMonthYear() {
// datepicker renders the HTML after this hook is called, so we use setTimeout
// to run some code after the render.
setTimeout(function () {
onJqueryUiRenderedPicker();
});
}
});
element.datepicker(datePickerOptions);
element.on('mouseover', 'tbody td a', function (event) {
// this event is triggered when a user clicks a date as well. in that case,
// the originalEvent is null. we don't need to redraw again for that, so
// we ignore events like that.
if (event.originalEvent) {
setDatePickerCellColors();
}
}); // on hover cell, execute scope.cellHover()
element.on('mouseenter', 'tbody td', function onMouseEnter() {
var monthYear = getMonthYearDisplayed();
var $dateCell = DatePickervue_type_script_lang_ts_$(this);
var dateValue = getCellDate($dateCell, monthYear[0], monthYear[1]);
context.emit('cellHover', {
date: dateValue,
$cell: $dateCell
});
}); // overrides jquery UI handler that unhighlights a cell when the mouse leaves it
element.on('mouseout', 'tbody td a', function () {
setDatePickerCellColors();
}); // call scope.cellHoverLeave() when mouse leaves table body (can't do event on tbody, for
// some reason that fails, so we do two events, one on the table & one on thead)
element.on('mouseleave', 'table', function () {
return context.emit('cellHoverLeave');
}).on('mouseenter', 'thead', function () {
return context.emit('cellHoverLeave');
}); // make sure whitespace is clickable when the period makes it appropriate
element.on('click', 'tbody td.ui-datepicker-other-month', handleOtherMonthClick); // NOTE: using a selector w/ .on() doesn't seem to work for some reason...
element.on('click', function (e) {
e.preventDefault();
var $target = DatePickervue_type_script_lang_ts_$(e.target).closest('a');
if (!$target.is('.ui-datepicker-next') && !$target.is('.ui-datepicker-prev')) {
return;
}
onCalendarViewChange();
}); // when a cell is clicked, invoke the onDateSelected function. this, in conjunction
// with onJqueryUiRenderedPicker(), overrides the date picker's click behavior.
element.on('click', 'td[data-month]', function (event) {
var $cell = DatePickervue_type_script_lang_ts_$(event.target).closest('td');
var month = parseInt($cell.attr('data-month'), 10);
var year = parseInt($cell.attr('data-year'), 10);
var day = parseInt($cell.children('a,span').text(), 10);
context.emit('dateSelect', {
date: new Date(year, month, day)
});
});
var renderPostProcessed = stepMonthsChanged();
viewDateChanged();
enableDisableMonthDropdown();
if (!renderPostProcessed) {
onJqueryUiRenderedPicker();
}
setDatePickerCellColors();
});
return {
root: root
};
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DatePicker/DatePicker.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DatePicker/DatePicker.vue
DatePickervue_type_script_lang_ts.render = DatePickervue_type_template_id_589729fc_render
/* harmony default export */ var DatePicker = (DatePickervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DatePicker/DatePicker.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var DatePicker_adapter = (createAngularJsAdapter({
component: DatePicker,
scope: {
selectedDateStart: {
angularJsBind: '<'
},
selectedDateEnd: {
angularJsBind: '<'
},
highlightedDateStart: {
angularJsBind: '<'
},
highlightedDateEnd: {
angularJsBind: '<'
},
viewDate: {
angularJsBind: '<'
},
stepMonths: {
angularJsBind: '<'
},
disableMonthDropdown: {
angularJsBind: '<'
},
options: {
angularJsBind: '<'
},
cellHover: {
angularJsBind: '&'
},
cellHoverLeave: {
angularJsBind: '&'
},
dateSelect: {
angularJsBind: '&'
}
},
directiveName: 'piwikDatePicker',
events: {
'cell-hover': function cellHover(event, vm, scope, element, attrs, controller, $timeout) {
$timeout(); // trigger new digest
},
'cell-hover-leave': function cellHoverLeave(event, vm, scope, element, attrs, controller, $timeout) {
$timeout(); // trigger new digest
},
'date-select': function dateSelect(event, vm, scope, element, attrs, controller, $timeout) {
$timeout(); // trigger new digest
}
},
$inject: ['$timeout']
}));
// 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/DateRangePicker/DateRangePicker.vue?vue&type=template&id=7bf842c2
var DateRangePickervue_type_template_id_7bf842c2_hoisted_1 = {
id: "calendarRangeFrom"
};
var DateRangePickervue_type_template_id_7bf842c2_hoisted_2 = {
id: "calendarRangeTo"
};
function DateRangePickervue_type_template_id_7bf842c2_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_DatePicker = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("DatePicker");
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"])("div", DateRangePickervue_type_template_id_7bf842c2_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h6", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_DateRangeFrom')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "text",
id: "inputCalendarFrom",
name: "inputCalendarFrom",
class: "browser-default",
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.startDateText = $event;
}),
onKeydown: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onRangeInputChanged('from', $event);
}),
onKeyup: _cache[2] || (_cache[2] = function ($event) {
return _ctx.handleEnterPress($event);
})
}, null, 544), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.startDateText]])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_DatePicker, {
id: "calendarFrom",
"view-date": _ctx.startDate,
"selected-date-start": _ctx.fromPickerSelectedDates[0],
"selected-date-end": _ctx.fromPickerSelectedDates[1],
"highlighted-date-start": _ctx.fromPickerHighlightedDates[0],
"highlighted-date-end": _ctx.fromPickerHighlightedDates[1],
onDateSelect: _cache[3] || (_cache[3] = function ($event) {
return _ctx.setStartRangeDate($event.date);
}),
onCellHover: _cache[4] || (_cache[4] = function ($event) {
return _ctx.fromPickerHighlightedDates = _ctx.getNewHighlightedDates($event.date, $event.$cell);
}),
onCellHoverLeave: _cache[5] || (_cache[5] = function ($event) {
return _ctx.fromPickerHighlightedDates = [null, null];
})
}, null, 8, ["view-date", "selected-date-start", "selected-date-end", "highlighted-date-start", "highlighted-date-end"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DateRangePickervue_type_template_id_7bf842c2_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h6", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_DateRangeTo')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "text",
id: "inputCalendarTo",
name: "inputCalendarTo",
class: "browser-default",
"onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
return _ctx.endDateText = $event;
}),
onKeydown: _cache[7] || (_cache[7] = function ($event) {
return _ctx.onRangeInputChanged('to', $event);
}),
onKeyup: _cache[8] || (_cache[8] = function ($event) {
return _ctx.handleEnterPress($event);
})
}, null, 544), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.endDateText]])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_DatePicker, {
id: "calendarTo",
"view-date": _ctx.endDate,
"selected-date-start": _ctx.toPickerSelectedDates[0],
"selected-date-end": _ctx.toPickerSelectedDates[1],
"highlighted-date-start": _ctx.toPickerHighlightedDates[0],
"highlighted-date-end": _ctx.toPickerHighlightedDates[1],
onDateSelect: _cache[9] || (_cache[9] = function ($event) {
return _ctx.setEndRangeDate($event.date);
}),
onCellHover: _cache[10] || (_cache[10] = function ($event) {
return _ctx.toPickerHighlightedDates = _ctx.getNewHighlightedDates($event.date, $event.$cell);
}),
onCellHoverLeave: _cache[11] || (_cache[11] = function ($event) {
return _ctx.toPickerHighlightedDates = [null, null];
})
}, null, 8, ["view-date", "selected-date-start", "selected-date-end", "highlighted-date-start", "highlighted-date-end"])])]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DateRangePicker/DateRangePicker.vue?vue&type=template&id=7bf842c2
// 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/CoreHome/vue/src/DateRangePicker/DateRangePicker.vue?vue&type=script&lang=ts
var DATE_FORMAT = 'YYYY-MM-DD';
/* harmony default export */ var DateRangePickervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
startDate: String,
endDate: String
},
components: {
DatePicker: DatePicker
},
data: function data() {
var startDate = null;
try {
if (this.startDate) {
startDate = parseDate(this.startDate);
}
} catch (e) {// ignore
}
var endDate = null;
try {
if (this.endDate) {
endDate = parseDate(this.endDate);
}
} catch (e) {// ignore
}
return {
fromPickerSelectedDates: [startDate, startDate],
toPickerSelectedDates: [endDate, endDate],
fromPickerHighlightedDates: [null, null],
toPickerHighlightedDates: [null, null],
startDateText: this.startDate,
endDateText: this.endDate,
startDateInvalid: false,
endDateInvalid: false
};
},
emits: ['rangeChange', 'submit'],
watch: {
startDate: function startDate() {
this.startDateText = this.startDate;
this.setStartRangeDateFromStr(this.startDate);
},
endDate: function endDate() {
this.endDateText = this.endDate;
this.setEndRangeDateFromStr(this.endDate);
}
},
mounted: function mounted() {
this.rangeChanged(); // emit with initial range pair
},
methods: {
setStartRangeDate: function setStartRangeDate(date) {
this.fromPickerSelectedDates = [date, date];
this.rangeChanged();
},
setEndRangeDate: function setEndRangeDate(date) {
this.toPickerSelectedDates = [date, date];
this.rangeChanged();
},
onRangeInputChanged: function onRangeInputChanged(source, event) {
var _this = this;
setTimeout(function () {
if (source === 'from') {
_this.setStartRangeDateFromStr(event.target.value);
} else {
_this.setEndRangeDateFromStr(event.target.value);
}
});
},
getNewHighlightedDates: function getNewHighlightedDates(date, $cell) {
if ($cell.hasClass('ui-datepicker-unselectable')) {
return null;
}
return [date, date];
},
handleEnterPress: function handleEnterPress($event) {
if ($event.keyCode !== 13) {
return;
}
this.$emit('submit', {
start: this.startDate,
end: this.endDate
});
},
setStartRangeDateFromStr: function setStartRangeDateFromStr(dateStr) {
this.startDateInvalid = true;
var startDateParsed = null;
try {
if (dateStr && dateStr.length === DATE_FORMAT.length) {
startDateParsed = parseDate(dateStr);
}
} catch (e) {// ignore
}
if (startDateParsed) {
this.fromPickerSelectedDates = [startDateParsed, startDateParsed];
this.startDateInvalid = false;
this.rangeChanged();
}
},
setEndRangeDateFromStr: function setEndRangeDateFromStr(dateStr) {
this.endDateInvalid = true;
var endDateParsed = null;
try {
if (dateStr && dateStr.length === DATE_FORMAT.length) {
endDateParsed = parseDate(dateStr);
}
} catch (e) {// ignore
}
if (endDateParsed) {
this.toPickerSelectedDates = [endDateParsed, endDateParsed];
this.endDateInvalid = false;
this.rangeChanged();
}
},
rangeChanged: function rangeChanged() {
this.$emit('rangeChange', {
start: this.fromPickerSelectedDates[0] ? format(this.fromPickerSelectedDates[0]) : null,
end: this.toPickerSelectedDates[0] ? format(this.toPickerSelectedDates[0]) : null
});
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DateRangePicker/DateRangePicker.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DateRangePicker/DateRangePicker.vue
DateRangePickervue_type_script_lang_ts.render = DateRangePickervue_type_template_id_7bf842c2_render
/* harmony default export */ var DateRangePicker = (DateRangePickervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/DateRangePicker/DateRangePicker.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var DateRangePicker_adapter = (createAngularJsAdapter({
component: DateRangePicker,
scope: {
startDate: {
angularJsBind: '<'
},
endDate: {
angularJsBind: '<'
},
rangeChange: {
angularJsBind: '&'
},
submit: {
angularJsBind: '&'
}
},
directiveName: 'piwikDateRangePicker',
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/PeriodDatePicker/PeriodDatePicker.vue?vue&type=template&id=6d1fa14c
function PeriodDatePickervue_type_template_id_6d1fa14c_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_DatePicker = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("DatePicker");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_DatePicker, {
"selected-date-start": _ctx.selectedDates[0],
"selected-date-end": _ctx.selectedDates[1],
"highlighted-date-start": _ctx.highlightedDates[0],
"highlighted-date-end": _ctx.highlightedDates[1],
"view-date": _ctx.viewDate,
"step-months": _ctx.period === 'year' ? 12 : 1,
"disable-month-dropdown": _ctx.period === 'year',
onCellHover: _cache[0] || (_cache[0] = function ($event) {
return _ctx.onHoverNormalCell($event.date, $event.$cell);
}),
onCellHoverLeave: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onHoverLeaveNormalCells();
}),
onDateSelect: _cache[2] || (_cache[2] = function ($event) {
return _ctx.onDateSelected($event.date);
})
}, null, 8, ["selected-date-start", "selected-date-end", "highlighted-date-start", "highlighted-date-end", "view-date", "step-months", "disable-month-dropdown"]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodDatePicker/PeriodDatePicker.vue?vue&type=template&id=6d1fa14c
// 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/CoreHome/vue/src/PeriodDatePicker/PeriodDatePicker.vue?vue&type=script&lang=ts
var PeriodDatePickervue_type_script_lang_ts_piwikMinDate = new Date(Matomo_Matomo.minDateYear, Matomo_Matomo.minDateMonth - 1, Matomo_Matomo.minDateDay);
var piwikMaxDate = new Date(Matomo_Matomo.maxDateYear, Matomo_Matomo.maxDateMonth - 1, Matomo_Matomo.maxDateDay);
/* harmony default export */ var PeriodDatePickervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
period: {
type: String,
required: true
},
date: [String, Date]
},
components: {
DatePicker: DatePicker
},
emits: ['select'],
setup: function setup(props, context) {
var viewDate = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(props.date);
var selectedDates = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])([null, null]);
var highlightedDates = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])([null, null]);
function getBoundedDateRange(date) {
var dates = Periods_Periods.get(props.period).parse(date).getDateRange(); // make sure highlighted date range is within min/max date range
dates[0] = PeriodDatePickervue_type_script_lang_ts_piwikMinDate < dates[0] ? dates[0] : PeriodDatePickervue_type_script_lang_ts_piwikMinDate;
dates[1] = piwikMaxDate > dates[1] ? dates[1] : piwikMaxDate;
return dates;
}
function onHoverNormalCell(cellDate, $cell) {
var isOutOfMinMaxDateRange = cellDate < PeriodDatePickervue_type_script_lang_ts_piwikMinDate || cellDate > piwikMaxDate; // don't highlight anything if the period is month or day, and we're hovering over calendar
// whitespace. since there are no dates, it's doesn't make sense what you're selecting.
var shouldNotHighlightFromWhitespace = $cell.hasClass('ui-datepicker-other-month') && (props.period === 'month' || props.period === 'day');
if (isOutOfMinMaxDateRange || shouldNotHighlightFromWhitespace) {
highlightedDates.value = [null, null];
return;
}
highlightedDates.value = getBoundedDateRange(cellDate);
}
function onHoverLeaveNormalCells() {
highlightedDates.value = [null, null];
}
function onDateSelected(date) {
context.emit('select', {
date: date
});
}
function onChanges() {
if (!props.period || !props.date) {
selectedDates.value = [null, null];
viewDate.value = null;
return;
}
selectedDates.value = getBoundedDateRange(props.date);
viewDate.value = parseDate(props.date);
}
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(props, onChanges);
onChanges();
return {
selectedDates: selectedDates,
highlightedDates: highlightedDates,
viewDate: viewDate,
onHoverNormalCell: onHoverNormalCell,
onHoverLeaveNormalCells: onHoverLeaveNormalCells,
onDateSelected: onDateSelected
};
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodDatePicker/PeriodDatePicker.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodDatePicker/PeriodDatePicker.vue
PeriodDatePickervue_type_script_lang_ts.render = PeriodDatePickervue_type_template_id_6d1fa14c_render
/* harmony default export */ var PeriodDatePicker = (PeriodDatePickervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodDatePicker/PeriodDatePicker.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var PeriodDatePicker_adapter = (createAngularJsAdapter({
component: PeriodDatePicker,
scope: {
period: {
angularJsBind: '<'
},
date: {
angularJsBind: '<'
},
select: {
angularJsBind: '&'
}
},
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=157b316e
var SiteSelectorvue_type_template_id_157b316e_hoisted_1 = ["value", "name"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_2 = ["title"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_3 = ["textContent"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_4 = {
key: 1,
class: "placeholder"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_5 = {
class: "dropdown"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_6 = {
class: "custom_select_search"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_7 = ["placeholder"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_8 = {
key: 0
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_9 = {
class: "custom_select_container"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_10 = ["onClick"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_11 = ["innerHTML", "href", "title"];
var SiteSelectorvue_type_template_id_157b316e_hoisted_12 = {
class: "ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all\n siteSelect"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_13 = {
class: "ui-menu-item"
};
var SiteSelectorvue_type_template_id_157b316e_hoisted_14 = {
class: "ui-corner-all",
tabindex: "-1"
};
var _hoisted_15 = {
key: 1
};
function SiteSelectorvue_type_template_id_157b316e_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");
var _directive_focus_if = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-if");
var _directive_focus_anywhere_but_here = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-anywhere-but-here");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["siteSelector piwikSelector borderedControl", {
'expanded': _ctx.showSitesList,
'disabled': !_ctx.hasMultipleSites
}])
}, [_ctx.name ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("input", {
key: 0,
type: "hidden",
value: (_ctx$modelValue = _ctx.modelValue) === null || _ctx$modelValue === void 0 ? void 0 : _ctx$modelValue.id,
name: _ctx.name
}, null, 8, SiteSelectorvue_type_template_id_157b316e_hoisted_1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
ref: "selectorLink",
onClick: _cache[0] || (_cache[0] = function () {
return _ctx.onClickSelector && _ctx.onClickSelector.apply(_ctx, arguments);
}),
onKeydown: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onPressEnter($event);
}),
href: "javascript:void(0)",
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([{
'loading': _ctx.isLoading
}, "title"]),
tabindex: "4",
title: _ctx.selectorLinkTitle
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["icon icon-arrow-bottom", {
'iconHidden': _ctx.isLoading,
'collapsed': !_ctx.showSitesList
}])
}, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, [(_ctx$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_157b316e_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_157b316e_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_157b316e_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_157b316e_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_157b316e_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "text",
onClick: _cache[2] || (_cache[2] = function ($event) {
_ctx.searchTerm = '';
_ctx.loadInitialSites();
}),
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return _ctx.searchTerm = $event;
}),
tabindex: "4",
class: "websiteSearch inp browser-default",
placeholder: _ctx.translate('General_Search')
}, null, 8, SiteSelectorvue_type_template_id_157b316e_hoisted_7), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {
focused: _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 = '';
_ctx.loadInitialSites();
}),
class: "reset",
src: "plugins/CoreHome/images/reset_search.png"
}, null, 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm]])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.autocompleteMinSites <= _ctx.sites.length || _ctx.searchTerm]]), _ctx.allSitesLocation === 'top' && _ctx.showAllSitesItem ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", SiteSelectorvue_type_template_id_157b316e_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_157b316e_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;
})
}, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.sites, function (site, index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
onClick: function onClick($event) {
return _ctx.switchSite(Object.assign(Object.assign({}, site), {}, {
id: site.idsite
}), $event);
},
key: index
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
onClick: _cache[6] || (_cache[6] = function ($event) {
return $event.preventDefault();
}),
innerHTML: _ctx.$sanitize(_ctx.getMatchedSiteName(site.name)),
tabindex: "4",
href: _ctx.getUrlForSiteId(site.idsite),
title: site.name
}, null, 8, SiteSelectorvue_type_template_id_157b316e_hoisted_11)], 8, SiteSelectorvue_type_template_id_157b316e_hoisted_10)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(!_ctx.showSelectedSite && "".concat(_ctx.activeSiteId) === "".concat(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_157b316e_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", SiteSelectorvue_type_template_id_157b316e_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", SiteSelectorvue_type_template_id_157b316e_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) {
return _ctx.onAllSitesClick($event);
})
}, null, 8, ["href", "all-sites-text"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showSitesList]])], 2)), [[_directive_focus_anywhere_but_here, {
blur: _ctx.onBlur
}]]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=template&id=157b316e
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=template&id=45607d28
var AllSitesLinkvue_type_template_id_45607d28_hoisted_1 = ["innerHTML", "href"];
function AllSitesLinkvue_type_template_id_45607d28_render(_ctx, _cache, $props, $setup, $data, $options) {
var _this = this;
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
onClick: _cache[1] || (_cache[1] = function ($event) {
return _this.onClick($event);
}),
class: "custom_select_all"
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
onClick: _cache[0] || (_cache[0] = function ($event) {
return $event.preventDefault();
}),
innerHTML: _ctx.$sanitize(_ctx.allSitesText),
tabindex: "4",
href: _ctx.href
}, null, 8, AllSitesLinkvue_type_template_id_45607d28_hoisted_1)]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=template&id=45607d28
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=script&lang=ts
/* harmony default export */ var AllSitesLinkvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
href: String,
allSitesText: String
},
emits: ['click'],
methods: {
onClick: function onClick(event) {
this.$emit('click', event);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/AllSitesLink.vue
AllSitesLinkvue_type_script_lang_ts.render = AllSitesLinkvue_type_template_id_45607d28_render
/* harmony default export */ var AllSitesLink = (AllSitesLinkvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SitesStore.ts
function SitesStore_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function SitesStore_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function SitesStore_createClass(Constructor, protoProps, staticProps) { if (protoProps) SitesStore_defineProperties(Constructor.prototype, protoProps); if (staticProps) SitesStore_defineProperties(Constructor, staticProps); return Constructor; }
function SitesStore_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var SitesStore_SitesStore = /*#__PURE__*/function () {
function SitesStore() {
var _this = this;
SitesStore_classCallCheck(this, SitesStore);
SitesStore_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
initialSites: [],
isInitialized: false
}));
SitesStore_defineProperty(this, "stateFiltered", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
initialSites: [],
isInitialized: false,
excludedSites: []
}));
SitesStore_defineProperty(this, "currentRequestAbort", null);
SitesStore_defineProperty(this, "limitRequest", void 0);
SitesStore_defineProperty(this, "initialSites", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.state.initialSites);
}));
SitesStore_defineProperty(this, "initialSitesFiltered", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.stateFiltered.initialSites);
}));
}
SitesStore_createClass(SitesStore, [{
key: "loadInitialSites",
value: function loadInitialSites() {
var _this2 = this;
var onlySitesWithAdminAccess = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var sitesToExclude = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
if (this.state.isInitialized && sitesToExclude.length === 0) {
return Promise.resolve(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.state.initialSites));
} // If the filtered state has already been initialized with the same sites, return that.
if (this.stateFiltered.isInitialized && sitesToExclude.length === this.stateFiltered.excludedSites.length && sitesToExclude.every(function (val, index) {
return val === _this2.stateFiltered.excludedSites[index];
})) {
return Promise.resolve(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.stateFiltered.initialSites));
} // If we want to exclude certain sites, perform the search for that.
if (sitesToExclude.length > 0) {
this.searchSite('%', onlySitesWithAdminAccess, sitesToExclude).then(function (sites) {
_this2.stateFiltered.isInitialized = true;
_this2.stateFiltered.excludedSites = sitesToExclude;
if (sites !== null) {
_this2.stateFiltered.initialSites = sites;
}
});
} // If the main state has already been initialized, no need to continue.
if (this.state.isInitialized) {
return Promise.resolve(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.state.initialSites));
}
return this.searchSite('%', onlySitesWithAdminAccess, sitesToExclude).then(function (sites) {
_this2.state.isInitialized = true;
if (sites !== null) {
_this2.state.initialSites = sites;
}
return sites;
});
}
}, {
key: "loadSite",
value: function loadSite(idSite) {
if (idSite === 'all') {
src_MatomoUrl_MatomoUrl.updateUrl(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, {
module: 'MultiSites',
action: 'index',
date: src_MatomoUrl_MatomoUrl.parsed.value.date,
period: src_MatomoUrl_MatomoUrl.parsed.value.period
}));
} else {
src_MatomoUrl_MatomoUrl.updateUrl(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, {
segment: '',
idSite: idSite
}), Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
segment: '',
idSite: idSite
}));
}
}
}, {
key: "searchSite",
value: function searchSite(term) {
var _this3 = this;
var onlySitesWithAdminAccess = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var sitesToExclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
if (!term) {
return this.loadInitialSites(onlySitesWithAdminAccess, sitesToExclude);
}
if (this.currentRequestAbort) {
this.currentRequestAbort.abort();
}
if (!this.limitRequest) {
this.limitRequest = AjaxHelper_AjaxHelper.fetch({
method: 'SitesManager.getNumWebsitesToDisplayPerPage'
});
}
return this.limitRequest.then(function (response) {
var limit = response.value;
var methodToCall = 'SitesManager.getPatternMatchSites';
if (onlySitesWithAdminAccess) {
methodToCall = 'SitesManager.getSitesWithAdminAccess';
}
_this3.currentRequestAbort = new AbortController();
return AjaxHelper_AjaxHelper.fetch({
method: methodToCall,
limit: limit,
pattern: term,
sitesToExclude: sitesToExclude
}, {
abortController: _this3.currentRequestAbort
});
}).then(function (response) {
if (response) {
return _this3.processWebsitesList(response);
}
return null;
}).finally(function () {
_this3.currentRequestAbort = null;
});
}
}, {
key: "processWebsitesList",
value: function processWebsitesList(response) {
var sites = response;
if (!sites || !sites.length) {
return [];
}
sites = sites.map(function (s) {
return Object.assign(Object.assign({}, s), {}, {
name: s.group ? "[".concat(s.group, "] ").concat(s.name) : s.name
});
});
sites.sort(function (lhs, rhs) {
if (lhs.name.toLowerCase() < rhs.name.toLowerCase()) {
return -1;
}
return lhs.name.toLowerCase() > rhs.name.toLowerCase() ? 1 : 0;
});
return sites;
}
}]);
return SitesStore;
}();
/* harmony default export */ var SiteSelector_SitesStore = (new SitesStore_SitesStore());
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/debounce.ts
var DEFAULT_DEBOUNCE_DELAY = 300;
function debounce(fn) {
var delayInMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_DEBOUNCE_DELAY;
var timeout;
return function wrapper() {
var _this = this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function () {
fn.call.apply(fn, [_this].concat(args));
}, delayInMs);
};
}
// 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/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=script&lang=ts
/* harmony default export */ var SiteSelectorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
modelValue: Object,
showSelectedSite: {
type: Boolean,
default: false
},
showAllSitesItem: {
type: Boolean,
default: true
},
switchSiteOnSelect: {
type: Boolean,
default: true
},
onlySitesWithAdminAccess: {
type: Boolean,
default: false
},
name: {
type: String,
default: ''
},
allSitesText: {
type: String,
default: translate('General_MultiSitesSummary')
},
allSitesLocation: {
type: String,
default: 'bottom'
},
placeholder: String,
defaultToFirstSite: Boolean,
sitesToExclude: {
type: Array,
default: function _default() {
return [];
}
}
},
emits: ['update:modelValue', 'blur'],
components: {
AllSitesLink: AllSitesLink
},
directives: {
FocusAnywhereButHere: FocusAnywhereButHere,
FocusIf: FocusIf
},
watch: {
searchTerm: function searchTerm() {
this.onSearchTermChanged();
}
},
data: function data() {
return {
searchTerm: '',
activeSiteId: "".concat(Matomo_Matomo.idSite),
showSitesList: false,
isLoading: false,
sites: [],
autocompleteMinSites: parseInt(Matomo_Matomo.config.autocomplete_min_sites, 10)
};
},
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.defaultToFirstSite) && _this.sites[0]) {
_this.$emit('update:modelValue', {
id: _this.sites[0].idsite,
name: _this.sites[0].name
});
}
});
var shortcutTitle = translate('CoreHome_ShortcutWebsiteSelector');
Matomo_Matomo.helper.registerShortcut('w', shortcutTitle, function (event) {
if (event.altKey) {
return;
}
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false; // IE
}
var selectorLink = _this.$refs.selectorLink;
if (selectorLink) {
selectorLink.click();
selectorLink.focus();
}
});
},
computed: {
shouldFocusOnSearch: function shouldFocusOnSearch() {
return this.showSitesList && this.autocompleteMinSites <= this.sites.length || this.searchTerm;
},
selectorLinkTitle: function selectorLinkTitle() {
var _this$modelValue;
return this.hasMultipleSites ? translate('CoreHome_ChangeCurrentWebsite', ((_this$modelValue = this.modelValue) === null || _this$modelValue === void 0 ? void 0 : _this$modelValue.name) || this.firstSiteName) : '';
},
hasMultipleSites: function hasMultipleSites() {
var initialSites = SiteSelector_SitesStore.initialSitesFiltered.value && SiteSelector_SitesStore.initialSitesFiltered.value.length ? SiteSelector_SitesStore.initialSitesFiltered.value : SiteSelector_SitesStore.initialSites.value;
return initialSites && initialSites.length > 1;
},
firstSiteName: function firstSiteName() {
var initialSites = SiteSelector_SitesStore.initialSitesFiltered.value && SiteSelector_SitesStore.initialSitesFiltered.value.length ? SiteSelector_SitesStore.initialSitesFiltered.value : SiteSelector_SitesStore.initialSites.value;
return initialSites && initialSites.length > 0 ? initialSites[0].name : '';
},
urlAllSites: function urlAllSites() {
var newQuery = src_MatomoUrl_MatomoUrl.stringify(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, {
module: 'MultiSites',
action: 'index',
date: src_MatomoUrl_MatomoUrl.parsed.value.date,
period: src_MatomoUrl_MatomoUrl.parsed.value.period
}));
return "?".concat(newQuery);
}
},
methods: {
onSearchTermChanged: function onSearchTermChanged() {
if (!this.searchTerm) {
this.isLoading = false;
this.loadInitialSites();
} else {
this.isLoading = true;
this.searchSite(this.searchTerm);
}
},
onAllSitesClick: function onAllSitesClick(event) {
this.switchSite({
id: 'all',
name: this.$props.allSitesText
}, event);
this.showSitesList = false;
},
switchSite: function switchSite(site, event) {
// for Mac OS cmd key needs to be pressed, ctrl key on other systems
var controlKey = navigator.userAgent.indexOf('Mac OS X') !== -1 ? event.metaKey : event.ctrlKey;
if (event && controlKey && event.target && event.target.href) {
window.open(event.target.href, '_blank');
return;
}
this.$emit('update:modelValue', {
id: site.id,
name: site.name
});
if (!this.switchSiteOnSelect || this.activeSiteId === site.id) {
return;
}
SiteSelector_SitesStore.loadSite(site.id);
},
onBlur: function onBlur() {
this.showSitesList = false;
this.$emit('blur');
},
onClickSelector: function onClickSelector() {
if (this.hasMultipleSites) {
this.showSitesList = !this.showSitesList;
if (!this.isLoading && !this.searchTerm) {
this.loadInitialSites();
}
}
},
onPressEnter: function onPressEnter(event) {
if (event.key !== 'Enter') {
return;
}
event.preventDefault();
this.showSitesList = !this.showSitesList;
if (this.showSitesList && !this.isLoading) {
this.loadInitialSites();
}
},
getMatchedSiteName: function getMatchedSiteName(siteName) {
var index = siteName.toUpperCase().indexOf(this.searchTerm.toUpperCase());
if (index === -1 || this.isLoading // only highlight when we know the displayed results are for a search
) {
return Matomo_Matomo.helper.htmlEntities(siteName);
}
var previousPart = Matomo_Matomo.helper.htmlEntities(siteName.substring(0, index));
var lastPart = Matomo_Matomo.helper.htmlEntities(siteName.substring(index + this.searchTerm.length));
return "".concat(previousPart, "").concat(this.searchTerm, "").concat(lastPart);
},
loadInitialSites: function loadInitialSites() {
var _this2 = this;
return SiteSelector_SitesStore.loadInitialSites(this.onlySitesWithAdminAccess, this.sitesToExclude ? this.sitesToExclude : []).then(function (sites) {
_this2.sites = sites || [];
});
},
searchSite: function searchSite(term) {
var _this3 = this;
this.isLoading = true;
SiteSelector_SitesStore.searchSite(term, this.onlySitesWithAdminAccess, this.sitesToExclude ? this.sitesToExclude : []).then(function (sites) {
if (term !== _this3.searchTerm) {
return; // search term changed in the meantime
}
if (sites) {
_this3.sites = sites;
}
}).finally(function () {
_this3.isLoading = false;
});
},
getUrlForSiteId: function getUrlForSiteId(idSite) {
var newQuery = src_MatomoUrl_MatomoUrl.stringify(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.urlParsed.value), {}, {
segment: '',
idSite: idSite
}));
var newHash = src_MatomoUrl_MatomoUrl.stringify(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
segment: '',
idSite: idSite
}));
return "?".concat(newQuery, "#?").concat(newHash);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.vue
SiteSelectorvue_type_script_lang_ts.render = SiteSelectorvue_type_template_id_157b316e_render
/* harmony default export */ var SiteSelector = (SiteSelectorvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SiteSelector.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var SiteSelector_adapter = (createAngularJsAdapter({
component: SiteSelector,
require: '?ngModel',
scope: {
showSelectedSite: {
angularJsBind: '='
},
showAllSitesItem: {
angularJsBind: '='
},
switchSiteOnSelect: {
angularJsBind: '='
},
onlySitesWithAdminAccess: {
angularJsBind: '='
},
name: {
angularJsBind: '@'
},
allSitesText: {
angularJsBind: '@'
},
allSitesLocation: {
angularJsBind: '@'
},
placeholder: {
angularJsBind: '@'
},
modelValue: {
default: function _default(scope, element, attrs) {
if (attrs.siteid && attrs.sitename) {
return {
id: attrs.siteid,
name: Matomo_Matomo.helper.htmlDecode(attrs.sitename)
};
}
if (Matomo_Matomo.idSite) {
return {
id: Matomo_Matomo.idSite,
name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName)
};
}
return undefined;
}
}
},
$inject: ['$timeout'],
directiveName: 'piwikSiteselector',
events: {
'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, ngModel, $timeout) {
if (newValue && !vm.modelValue || !newValue && vm.modelValue || newValue.id !== vm.modelValue.id) {
$timeout(function () {
scope.value = newValue;
element.attr('siteid', newValue.id);
element.trigger('change', newValue);
if (ngModel) {
ngModel.$setViewValue(newValue);
ngModel.$render(); // not called automatically by the digest
}
});
}
},
blur: function blur(event, vm, scope) {
setTimeout(function () {
return scope.$apply();
});
}
},
postCreate: function postCreate(vm, scope, element, attrs, controller) {
var ngModel = controller;
scope.$watch('value', function (newVal) {
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
if (newVal !== vm.modelValue) {
vm.modelValue = newVal;
}
});
});
if (attrs.siteid && attrs.sitename) {
scope.value = {
id: attrs.siteid,
name: Matomo_Matomo.helper.htmlDecode(attrs.sitename)
};
vm.modelValue = scope.value;
} else if (Matomo_Matomo.idSite) {
scope.value = {
id: Matomo_Matomo.idSite,
name: Matomo_Matomo.helper.htmlDecode(Matomo_Matomo.siteName)
};
vm.modelValue = scope.value;
} // setup ng-model mapping
if (ngModel) {
ngModel.$setViewValue(vm.modelValue);
ngModel.$render = function () {
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
if (window.angular.isString(ngModel.$viewValue)) {
vm.modelValue = JSON.parse(ngModel.$viewValue);
} else {
vm.modelValue = ngModel.$viewValue;
}
});
});
};
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/SiteSelector/SitesStore.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function siteSelectorModelAdapter() {
return {
get initialSites() {
return SiteSelector_SitesStore.initialSites.value;
},
loadSite: SiteSelector_SitesStore.loadSite.bind(SiteSelector_SitesStore),
loadInitialSites: function loadInitialSites() {
return cloneThenApply(SiteSelector_SitesStore.loadInitialSites());
},
searchSite: function searchSite() {
return cloneThenApply(SiteSelector_SitesStore.searchSite.apply(SiteSelector_SitesStore, arguments));
}
};
}
window.angular.module('piwikApp.service').factory('siteSelectorModel', siteSelectorModelAdapter);
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=template&id=6bbc907a
var QuickAccessvue_type_template_id_6bbc907a_hoisted_1 = {
ref: "root",
class: "quickAccessInside"
};
var QuickAccessvue_type_template_id_6bbc907a_hoisted_2 = ["title", "placeholder"];
var QuickAccessvue_type_template_id_6bbc907a_hoisted_3 = {
class: "dropdown"
};
var QuickAccessvue_type_template_id_6bbc907a_hoisted_4 = {
class: "no-result"
};
var QuickAccessvue_type_template_id_6bbc907a_hoisted_5 = ["onClick"];
var QuickAccessvue_type_template_id_6bbc907a_hoisted_6 = ["onMouseenter", "onClick"];
var QuickAccessvue_type_template_id_6bbc907a_hoisted_7 = {
class: "quickAccessMatomoSearch"
};
var QuickAccessvue_type_template_id_6bbc907a_hoisted_8 = ["onMouseenter", "onClick"];
var QuickAccessvue_type_template_id_6bbc907a_hoisted_9 = ["textContent"];
var QuickAccessvue_type_template_id_6bbc907a_hoisted_10 = {
class: "quick-access-category helpCategory"
};
var QuickAccessvue_type_template_id_6bbc907a_hoisted_11 = ["href"];
function QuickAccessvue_type_template_id_6bbc907a_render(_ctx, _cache, $props, $setup, $data, $options) {
var _directive_focus_if = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-if");
var _directive_focus_anywhere_but_here = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("focus-anywhere-but-here");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", QuickAccessvue_type_template_id_6bbc907a_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon-search",
onMouseenter: _cache[0] || (_cache[0] = function ($event) {
return _ctx.searchActive = true;
})
}, null, 32), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
class: "s",
onKeydown: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onKeypress($event);
}),
onFocus: _cache[2] || (_cache[2] = function ($event) {
return _ctx.searchActive = true;
}),
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return _ctx.searchTerm = $event;
}),
type: "text",
tabindex: "2",
title: _ctx.quickAccessTitle,
placeholder: _ctx.translate('General_Search'),
ref: "input"
}, null, 40, QuickAccessvue_type_template_id_6bbc907a_hoisted_2), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm], [_directive_focus_if, {
focused: _ctx.searchActive
}]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", QuickAccessvue_type_template_id_6bbc907a_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", QuickAccessvue_type_template_id_6bbc907a_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_SearchNoResults')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.numMenuItems > 0 || _ctx.sites.length)]]), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.menuItems, function (subcategory) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("ul", {
key: subcategory.title
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", {
class: "quick-access-category",
onClick: function onClick($event) {
_ctx.searchTerm = subcategory.title;
_ctx.searchMenu(_ctx.searchTerm);
}
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcategory.title), 9, QuickAccessvue_type_template_id_6bbc907a_hoisted_5), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(subcategory.items, function (submenuEntry) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["result", {
selected: submenuEntry.menuIndex === _ctx.searchIndex
}]),
onMouseenter: function onMouseenter($event) {
return _ctx.searchIndex = submenuEntry.menuIndex;
},
onClick: function onClick($event) {
return _ctx.selectMenuItem(submenuEntry.index);
},
key: submenuEntry.index
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(submenuEntry.name.trim()), 1)], 42, QuickAccessvue_type_template_id_6bbc907a_hoisted_6);
}), 128))]);
}), 128)), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", QuickAccessvue_type_template_id_6bbc907a_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", {
class: "quick-access-category websiteCategory"
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_Sites')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && _ctx.sites.length || _ctx.isLoading]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", {
class: "no-result"
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('MultiSites_LoadingWebsites')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && _ctx.isLoading]]), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.sites, function (site, index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["result", {
selected: _ctx.numMenuItems + index === _ctx.searchIndex
}]),
onMouseenter: function onMouseenter($event) {
return _ctx.searchIndex = _ctx.numMenuItems + index;
},
onClick: function onClick($event) {
return _ctx.selectSite(site.idsite);
},
key: site.idsite
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
textContent: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(site.name)
}, null, 8, QuickAccessvue_type_template_id_6bbc907a_hoisted_9)], 42, QuickAccessvue_type_template_id_6bbc907a_hoisted_8)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSitesSelector && !_ctx.isLoading]]);
}), 128))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", QuickAccessvue_type_template_id_6bbc907a_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_HelpResources')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([{
selected: _ctx.searchIndex === 'help'
}, "quick-access-help"]),
onMouseenter: _cache[4] || (_cache[4] = function ($event) {
return _ctx.searchIndex = 'help';
})
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "https://matomo.org?mtm_campaign=App_Help&mtm_source=Matomo_App&mtm_keyword=QuickSearch&s=".concat(encodeURIComponent(_ctx.searchTerm)),
target: "_blank"
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_SearchOnMatomo', _ctx.searchTerm)), 9, QuickAccessvue_type_template_id_6bbc907a_hoisted_11)], 34)])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.searchTerm && _ctx.searchActive]])], 512)), [[_directive_focus_anywhere_but_here, {
blur: _ctx.onBlur
}]]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=template&id=6bbc907a
// 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/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=script&lang=ts
function isElementInViewport(element) {
var rect = element.getBoundingClientRect();
var $window = window.$(window);
return rect.top >= 0 && rect.left >= 0 && rect.bottom <= $window.height() && rect.right <= $window.width();
}
function scrollFirstElementIntoView(element) {
if (element && element.scrollIntoView) {
// make sure search is visible
element.scrollIntoView();
}
}
/* harmony default export */ var QuickAccessvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
directives: {
FocusAnywhereButHere: FocusAnywhereButHere,
FocusIf: FocusIf
},
watch: {
searchActive: function searchActive(newValue) {
var root = this.$refs.root;
if (!root || !root.parentElement) {
return;
}
var classes = root.parentElement.classList;
classes.toggle('active', newValue);
classes.toggle('expanded', newValue);
}
},
mounted: function mounted() {
var _this = this;
var root = this.$refs.root; // TODO: temporary, remove after angularjs is removed.
// this is currently needed since angularjs will render a div, then vue will render a div
// within it, but the top controls and CSS expect to have certain CSS classes in the root
// element.
// same applies to above watch for searchActive()
if (root && root.parentElement) {
root.parentElement.classList.add('quick-access', 'piwikSelector');
}
if (typeof window.initTopControls !== 'undefined' && window.initTopControls) {
window.initTopControls();
}
Matomo_Matomo.helper.registerShortcut('f', translate('CoreHome_ShortcutSearch'), function (event) {
if (event.altKey) {
return;
}
event.preventDefault();
scrollFirstElementIntoView(_this.$refs.root);
_this.activateSearch();
});
},
data: function data() {
var hasSegmentSelector = !!document.querySelector('.segmentEditorPanel');
return {
menuItems: [],
numMenuItems: 0,
searchActive: false,
searchTerm: '',
searchIndex: 0,
menuIndexCounter: -1,
topMenuItems: null,
leftMenuItems: null,
segmentItems: null,
hasSegmentSelector: hasSegmentSelector,
sites: [],
isLoading: false
};
},
created: function created() {
this.searchMenu = debounce(this.searchMenu.bind(this));
},
computed: {
hasSitesSelector: function hasSitesSelector() {
return !!document.querySelector('.top_controls [piwik-siteselector]');
},
quickAccessTitle: function quickAccessTitle() {
var searchAreasTitle = '';
var searchAreas = [translate('CoreHome_MenuEntries')];
if (this.hasSegmentSelector) {
searchAreas.push(translate('CoreHome_Segments'));
}
if (this.hasSitesSelector) {
searchAreas.push(translate('SitesManager_Sites'));
}
while (searchAreas.length) {
searchAreasTitle += searchAreas.shift();
if (searchAreas.length >= 2) {
searchAreasTitle += ', ';
} else if (searchAreas.length === 1) {
searchAreasTitle += " ".concat(translate('General_And'), " ");
}
}
return translate('CoreHome_QuickAccessTitle', searchAreasTitle);
}
},
emits: ['itemSelected', 'blur'],
methods: {
onKeypress: function onKeypress(event) {
var _this2 = this;
var areSearchResultsDisplayed = this.searchTerm && this.searchActive;
var isTabKey = event.which === 9;
var isEscKey = event.which === 27;
if (event.which === 38) {
this.highlightPreviousItem();
event.preventDefault();
} else if (event.which === 40) {
this.highlightNextItem();
event.preventDefault();
} else if (event.which === 13) {
this.clickQuickAccessMenuItem();
} else if (isTabKey && areSearchResultsDisplayed) {
this.deactivateSearch();
} else if (isEscKey && areSearchResultsDisplayed) {
this.deactivateSearch();
} else {
setTimeout(function () {
_this2.searchActive = true;
_this2.searchMenu(_this2.searchTerm);
});
}
},
highlightPreviousItem: function highlightPreviousItem() {
if (this.searchIndex - 1 < 0) {
this.searchIndex = 0;
} else {
this.searchIndex -= 1;
}
this.makeSureSelectedItemIsInViewport();
},
highlightNextItem: function highlightNextItem() {
var numTotal = this.$refs.root.querySelectorAll('li.result').length;
if (numTotal <= this.searchIndex + 1) {
this.searchIndex = numTotal - 1;
} else {
this.searchIndex += 1;
}
this.makeSureSelectedItemIsInViewport();
},
clickQuickAccessMenuItem: function clickQuickAccessMenuItem() {
var _this3 = this;
var selectedMenuElement = this.getCurrentlySelectedElement();
if (selectedMenuElement) {
setTimeout(function () {
selectedMenuElement.click();
_this3.$emit('itemSelected', selectedMenuElement);
}, 20);
}
},
deactivateSearch: function deactivateSearch() {
this.searchTerm = '';
this.searchActive = false;
if (this.$refs.input) {
this.$refs.input.blur();
}
},
makeSureSelectedItemIsInViewport: function makeSureSelectedItemIsInViewport() {
var element = this.getCurrentlySelectedElement();
if (element && !isElementInViewport(element)) {
scrollFirstElementIntoView(element);
}
},
getCurrentlySelectedElement: function getCurrentlySelectedElement() {
var results = this.$refs.root.querySelectorAll('li.result');
if (results && results.length && results.item(this.searchIndex)) {
return results.item(this.searchIndex);
}
return undefined;
},
searchMenu: function searchMenu(unprocessedSearchTerm) {
var _this4 = this;
var searchTerm = unprocessedSearchTerm.toLowerCase();
var index = -1;
var menuItemsIndex = {};
var menuItems = [];
var moveToCategory = function moveToCategory(theSubmenuItem) {
// force rerender of element to prevent weird side effects
var submenuItem = Object.assign({}, theSubmenuItem); // needed for proper highlighting with arrow keys
index += 1;
submenuItem.menuIndex = index;
var category = submenuItem.category;
if (!(category in menuItemsIndex)) {
menuItems.push({
title: category,
items: []
});
menuItemsIndex[category] = menuItems.length - 1;
}
var indexOfCategory = menuItemsIndex[category];
menuItems[indexOfCategory].items.push(submenuItem);
};
this.resetSearchIndex();
if (this.hasSitesSelector) {
this.isLoading = true;
SiteSelector_SitesStore.searchSite(searchTerm).then(function (sites) {
if (sites) {
_this4.sites = sites;
}
}).finally(function () {
_this4.isLoading = false;
});
}
var menuItemMatches = function menuItemMatches(i) {
return i.name.toLowerCase().indexOf(searchTerm) !== -1 || i.category.toLowerCase().indexOf(searchTerm) !== -1;
}; // get the menu items on first search since this component can be mounted
// before the menus are
if (this.topMenuItems === null) {
this.topMenuItems = this.getTopMenuItems();
}
if (this.leftMenuItems === null) {
this.leftMenuItems = this.getLeftMenuItems();
}
if (this.segmentItems === null) {
this.segmentItems = this.getSegmentItems();
}
var topMenuItems = this.topMenuItems.filter(menuItemMatches);
var leftMenuItems = this.leftMenuItems.filter(menuItemMatches);
var segmentItems = this.segmentItems.filter(menuItemMatches);
topMenuItems.forEach(moveToCategory);
leftMenuItems.forEach(moveToCategory);
segmentItems.forEach(moveToCategory);
this.numMenuItems = topMenuItems.length + leftMenuItems.length + segmentItems.length;
this.menuItems = menuItems;
},
resetSearchIndex: function resetSearchIndex() {
this.searchIndex = 0;
this.makeSureSelectedItemIsInViewport();
},
selectSite: function selectSite(idSite) {
SiteSelector_SitesStore.loadSite(idSite);
},
selectMenuItem: function selectMenuItem(index) {
var target = document.querySelector("[quick_access='".concat(index, "']"));
if (target) {
this.deactivateSearch();
var href = target.getAttribute('href');
if (href && href.length > 10 && target && target.click) {
try {
target.click();
} catch (e) {
window.$(target).click();
}
} else {
// not sure why jquery is used here and above, but only sometimes. keeping for BC.
window.$(target).click();
}
}
},
onBlur: function onBlur() {
this.searchActive = false;
this.$emit('blur');
},
activateSearch: function activateSearch() {
this.searchActive = true;
},
getTopMenuItems: function getTopMenuItems() {
var _this5 = this;
var category = translate('CoreHome_Menu');
var topMenuItems = [];
document.querySelectorAll('nav .sidenav li > a').forEach(function (element) {
var _element$textContent;
var text = (_element$textContent = element.textContent) === null || _element$textContent === void 0 ? void 0 : _element$textContent.trim();
if (!text) {
var _element$getAttribute;
text = (_element$getAttribute = element.getAttribute('title')) === null || _element$getAttribute === void 0 ? void 0 : _element$getAttribute.trim(); // possibly a icon, use title instead
}
if (text) {
topMenuItems.push({
name: text,
index: _this5.menuIndexCounter += 1,
category: category
});
element.setAttribute('quick_access', "".concat(_this5.menuIndexCounter));
}
});
return topMenuItems;
},
getLeftMenuItems: function getLeftMenuItems() {
var _this6 = this;
var leftMenuItems = [];
document.querySelectorAll('#secondNavBar .menuTab').forEach(function (element) {
var _categoryElement$;
var categoryElement = window.$(element).find('> .item');
var category = ((_categoryElement$ = categoryElement[0]) === null || _categoryElement$ === void 0 ? void 0 : _categoryElement$.innerText.trim()) || '';
if (category && category.lastIndexOf('\n') !== -1) {
// remove "\n\nMenu"
category = category.slice(0, category.lastIndexOf('\n')).trim();
}
window.$(element).find('li .item').each(function (i, subElement) {
var _subElement$textConte;
var text = (_subElement$textConte = subElement.textContent) === null || _subElement$textConte === void 0 ? void 0 : _subElement$textConte.trim();
if (text) {
leftMenuItems.push({
name: text,
category: category,
index: _this6.menuIndexCounter += 1
});
subElement.setAttribute('quick_access', "".concat(_this6.menuIndexCounter));
}
});
});
return leftMenuItems;
},
getSegmentItems: function getSegmentItems() {
var _this7 = this;
if (!this.hasSegmentSelector) {
return [];
}
var category = translate('CoreHome_Segments');
var segmentItems = [];
document.querySelectorAll('.segmentList [data-idsegment]').forEach(function (element) {
var _element$querySelecto, _element$querySelecto2;
var text = (_element$querySelecto = element.querySelector('.segname')) === null || _element$querySelecto === void 0 ? void 0 : (_element$querySelecto2 = _element$querySelecto.textContent) === null || _element$querySelecto2 === void 0 ? void 0 : _element$querySelecto2.trim();
if (text) {
segmentItems.push({
name: text,
category: category,
index: _this7.menuIndexCounter += 1
});
element.setAttribute('quick_access', "".concat(_this7.menuIndexCounter));
}
});
return segmentItems;
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.vue
QuickAccessvue_type_script_lang_ts.render = QuickAccessvue_type_template_id_6bbc907a_render
/* harmony default export */ var QuickAccess = (QuickAccessvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/QuickAccess/QuickAccess.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var QuickAccess_adapter = (createAngularJsAdapter({
component: QuickAccess,
directiveName: 'piwikQuickAccess',
events: {
itemSelected: function itemSelected(event, vm, scope, elem, attrs, controller, $timeout) {
$timeout();
},
blur: function blur(event, vm, scope) {
setTimeout(function () {
return scope.$apply();
});
}
}
}));
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/FieldArray/FieldArray.vue?vue&type=template&id=02c82ed4
function FieldArrayvue_type_template_id_02c82ed4_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var FieldArrayvue_type_template_id_02c82ed4_hoisted_1 = {
class: "fieldArray form-group"
};
var FieldArrayvue_type_template_id_02c82ed4_hoisted_2 = {
key: 0,
class: "fieldUiControl"
};
var FieldArrayvue_type_template_id_02c82ed4_hoisted_3 = ["onClick", "title"];
function FieldArrayvue_type_template_id_02c82ed4_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldArrayvue_type_template_id_02c82ed4_hoisted_1, [(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.modelValue, function (item, index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["fieldArrayTable multiple valign-wrapper", FieldArrayvue_type_template_id_02c82ed4_defineProperty({}, "fieldArrayTable".concat(index), true)]),
key: index
}, [_ctx.field.uiControl ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FieldArrayvue_type_template_id_02c82ed4_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
"full-width": true,
"model-value": item,
options: _ctx.field.availableValues,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.onEntryChange($event, index);
},
"model-modifiers": _ctx.field.modelModifiers,
placeholder: ' ',
uicontrol: _ctx.field.uiControl,
title: _ctx.field.title,
name: "".concat(_ctx.name, "-").concat(index),
"template-file": _ctx.field.templateFile,
component: _ctx.field.component
}, null, 8, ["model-value", "options", "onUpdate:modelValue", "model-modifiers", "uicontrol", "title", "name", "template-file", "component"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
onClick: function onClick($event) {
return _ctx.removeEntry(index);
},
class: "icon-minus valign",
title: _ctx.translate('General_Remove')
}, null, 8, FieldArrayvue_type_template_id_02c82ed4_hoisted_3), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], index + 1 !== _ctx.modelValue.length]])], 2);
}), 128))]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FieldArray/FieldArray.vue?vue&type=template&id=02c82ed4
// 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/CoreHome/vue/src/FieldArray/FieldArray.vue?vue&type=script&lang=ts
function FieldArrayvue_type_script_lang_ts_toConsumableArray(arr) { return FieldArrayvue_type_script_lang_ts_arrayWithoutHoles(arr) || FieldArrayvue_type_script_lang_ts_iterableToArray(arr) || FieldArrayvue_type_script_lang_ts_unsupportedIterableToArray(arr) || FieldArrayvue_type_script_lang_ts_nonIterableSpread(); }
function FieldArrayvue_type_script_lang_ts_nonIterableSpread() { 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 FieldArrayvue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return FieldArrayvue_type_script_lang_ts_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 FieldArrayvue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function FieldArrayvue_type_script_lang_ts_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function FieldArrayvue_type_script_lang_ts_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return FieldArrayvue_type_script_lang_ts_arrayLikeToArray(arr); }
function FieldArrayvue_type_script_lang_ts_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; }
// async since this is a a recursive component
var Field = useExternalPluginComponent('CorePluginsAdmin', 'Field');
/* harmony default export */ var FieldArrayvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
modelValue: Array,
name: String,
field: Object
},
components: {
Field: Field
},
emits: ['update:modelValue'],
watch: {
modelValue: function modelValue(newValue) {
this.checkEmptyModelValue(newValue);
}
},
mounted: function mounted() {
this.checkEmptyModelValue(this.modelValue);
},
methods: {
checkEmptyModelValue: function checkEmptyModelValue(newValue) {
// make sure there is always an empty new value
if (!newValue || !newValue.length || newValue.slice(-1)[0] !== '') {
this.$emit('update:modelValue', [].concat(FieldArrayvue_type_script_lang_ts_toConsumableArray(newValue || []), ['']));
}
},
onEntryChange: function onEntryChange(newValue, index) {
var newArrayValue = FieldArrayvue_type_script_lang_ts_toConsumableArray(this.modelValue || []);
newArrayValue[index] = newValue;
this.$emit('update:modelValue', newArrayValue);
},
removeEntry: function removeEntry(index) {
if (index > -1 && this.modelValue) {
var newValue = this.modelValue.filter(function (x, i) {
return i !== index;
});
this.$emit('update:modelValue', newValue);
}
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FieldArray/FieldArray.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FieldArray/FieldArray.vue
FieldArrayvue_type_script_lang_ts.render = FieldArrayvue_type_template_id_02c82ed4_render
/* harmony default export */ var FieldArray = (FieldArrayvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/FieldArray/FieldArray.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var FieldArray_adapter = (createAngularJsAdapter({
component: FieldArray,
require: '?ngModel',
scope: {
name: {
angularJsBind: '='
},
field: {
angularJsBind: '='
}
},
directiveName: 'matomoFieldArray',
events: {
'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, ngModel) {
if (newValue !== vm.modelValue) {
element.trigger('change', newValue);
if (ngModel) {
ngModel.$setViewValue(newValue);
}
}
}
},
postCreate: function postCreate(vm, scope, element, attrs, controller) {
var ngModel = controller; // setup ng-model mapping
if (ngModel) {
ngModel.$setViewValue(vm.modelValue);
ngModel.$render = function () {
if (window.angular.isString(ngModel.$viewValue)) {
vm.modelValue = JSON.parse(ngModel.$viewValue);
} else {
vm.modelValue = ngModel.$viewValue;
}
};
}
}
}));
// 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/MultiPairField/MultiPairField.vue?vue&type=template&id=340e896b
function MultiPairFieldvue_type_template_id_340e896b_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var MultiPairFieldvue_type_template_id_340e896b_hoisted_1 = {
class: "multiPairField form-group"
};
var MultiPairFieldvue_type_template_id_340e896b_hoisted_2 = {
key: 1,
class: "fieldUiControl fieldUiControl2"
};
var MultiPairFieldvue_type_template_id_340e896b_hoisted_3 = {
key: 2,
class: "fieldUiControl fieldUiControl3"
};
var MultiPairFieldvue_type_template_id_340e896b_hoisted_4 = {
key: 3,
class: "fieldUiControl fieldUiControl4"
};
var MultiPairFieldvue_type_template_id_340e896b_hoisted_5 = ["onClick", "title"];
function MultiPairFieldvue_type_template_id_340e896b_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MultiPairFieldvue_type_template_id_340e896b_hoisted_1, [(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.modelValue, function (item, index) {
var _ref;
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["multiPairFieldTable multiple valign-wrapper", (_ref = {}, MultiPairFieldvue_type_template_id_340e896b_defineProperty(_ref, "multiPairFieldTable".concat(index), true), MultiPairFieldvue_type_template_id_340e896b_defineProperty(_ref, "has".concat(_ctx.fieldCount, "Fields"), true), _ref)]),
key: index
}, [_ctx.field1 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
key: 0,
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["fieldUiControl fieldUiControl1", {
hasMultiFields: _ctx.field1.type && _ctx.field2.type
}])
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
"full-width": true,
"model-value": item[_ctx.field1.key],
options: _ctx.field1.availableValues,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.onEntryChange(index, _ctx.field1.key, $event);
},
"model-modifiers": _ctx.field1.modelModifiers,
placeholder: ' ',
uicontrol: _ctx.field1.uiControl,
name: "".concat(_ctx.name, "-p1-").concat(index),
title: _ctx.field1.title,
"template-file": _ctx.field1.templateFile,
component: _ctx.field1.component
}, null, 8, ["model-value", "options", "onUpdate:modelValue", "model-modifiers", "uicontrol", "name", "title", "template-file", "component"])], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.field2 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MultiPairFieldvue_type_template_id_340e896b_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
"full-width": true,
options: _ctx.field2.availableValues,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.onEntryChange(index, _ctx.field2.key, $event);
},
"model-value": item[_ctx.field2.key],
"model-modifiers": _ctx.field2.modelModifiers,
placeholder: ' ',
uicontrol: _ctx.field2.uiControl,
name: "".concat(_ctx.name, "-p2-").concat(index),
title: _ctx.field2.title,
"template-file": _ctx.field2.templateFile,
component: _ctx.field2.component
}, null, 8, ["options", "onUpdate:modelValue", "model-value", "model-modifiers", "uicontrol", "name", "title", "template-file", "component"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.field3 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MultiPairFieldvue_type_template_id_340e896b_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
"full-width": true,
options: _ctx.field3.availableValues,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.onEntryChange(index, _ctx.field3.key, $event);
},
"model-value": item[_ctx.field3.key],
"model-modifiers": _ctx.field3.modelModifiers,
placeholder: ' ',
uicontrol: _ctx.field3.uiControl,
title: _ctx.field3.title,
"template-file": _ctx.field3.templateFile,
component: _ctx.field3.component
}, null, 8, ["options", "onUpdate:modelValue", "model-value", "model-modifiers", "uicontrol", "title", "template-file", "component"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.field4 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", MultiPairFieldvue_type_template_id_340e896b_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
"full-width": true,
options: _ctx.field4.availableValues,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.onEntryChange(index, _ctx.field4.key, $event);
},
"model-value": item[_ctx.field4.key],
"model-modifiers": _ctx.field4.modelModifiers,
placeholder: ' ',
uicontrol: _ctx.field4.uiControl,
title: _ctx.field4.title,
"template-file": _ctx.field4.templateFile,
component: _ctx.field4.component
}, null, 8, ["options", "onUpdate:modelValue", "model-value", "model-modifiers", "uicontrol", "title", "template-file", "component"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
onClick: function onClick($event) {
return _ctx.removeEntry(index);
},
class: "icon-minus valign",
title: _ctx.translate('General_Remove')
}, null, 8, MultiPairFieldvue_type_template_id_340e896b_hoisted_5), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], index + 1 !== _ctx.modelValue.length]])], 2);
}), 128))]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MultiPairField/MultiPairField.vue?vue&type=template&id=340e896b
// 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/CoreHome/vue/src/MultiPairField/MultiPairField.vue?vue&type=script&lang=ts
function MultiPairFieldvue_type_script_lang_ts_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function MultiPairFieldvue_type_script_lang_ts_toConsumableArray(arr) { return MultiPairFieldvue_type_script_lang_ts_arrayWithoutHoles(arr) || MultiPairFieldvue_type_script_lang_ts_iterableToArray(arr) || MultiPairFieldvue_type_script_lang_ts_unsupportedIterableToArray(arr) || MultiPairFieldvue_type_script_lang_ts_nonIterableSpread(); }
function MultiPairFieldvue_type_script_lang_ts_nonIterableSpread() { 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 MultiPairFieldvue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return MultiPairFieldvue_type_script_lang_ts_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 MultiPairFieldvue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function MultiPairFieldvue_type_script_lang_ts_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function MultiPairFieldvue_type_script_lang_ts_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return MultiPairFieldvue_type_script_lang_ts_arrayLikeToArray(arr); }
function MultiPairFieldvue_type_script_lang_ts_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; }
// async since this is a a recursive component
var MultiPairFieldvue_type_script_lang_ts_Field = useExternalPluginComponent('CorePluginsAdmin', 'Field');
/* harmony default export */ var MultiPairFieldvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
modelValue: Array,
name: String,
field1: Object,
field2: Object,
field3: Object,
field4: Object
},
components: {
Field: MultiPairFieldvue_type_script_lang_ts_Field
},
computed: {
fieldCount: function fieldCount() {
if (this.field1 && this.field2 && this.field3 && this.field4) {
return 4;
}
if (this.field1 && this.field2 && this.field3) {
return 3;
}
if (this.field1 && this.field2) {
return 2;
}
if (this.field1) {
return 1;
}
return 0;
}
},
emits: ['update:modelValue'],
watch: {
modelValue: function modelValue(newValue) {
this.checkEmptyModelValue(newValue);
}
},
mounted: function mounted() {
this.checkEmptyModelValue(this.modelValue);
},
methods: {
checkEmptyModelValue: function checkEmptyModelValue(newValue) {
// make sure there is always an empty new value
if (!newValue || !newValue.length || this.isEmptyValue(newValue.slice(-1)[0])) {
this.$emit('update:modelValue', [].concat(MultiPairFieldvue_type_script_lang_ts_toConsumableArray(newValue || []), [this.makeEmptyValue()]));
}
},
onEntryChange: function onEntryChange(index, key, newValue) {
var newWholeValue = MultiPairFieldvue_type_script_lang_ts_toConsumableArray(this.modelValue);
newWholeValue[index] = Object.assign(Object.assign({}, newWholeValue[index]), {}, MultiPairFieldvue_type_script_lang_ts_defineProperty({}, key, newValue));
this.$emit('update:modelValue', newWholeValue);
},
removeEntry: function removeEntry(index) {
if (index > -1 && this.modelValue) {
var newValue = this.modelValue.filter(function (x, i) {
return i !== index;
});
this.$emit('update:modelValue', newValue);
}
},
isEmptyValue: function isEmptyValue(value) {
var fieldCount = this.fieldCount;
if (fieldCount === 4) {
if (!value[this.field1.key] && !value[this.field2.key] && !value[this.field3.key] && !value[this.field4.key]) {
return false;
}
} else if (fieldCount === 3) {
if (!value[this.field1.key] && !value[this.field2.key] && !value[this.field3.key]) {
return false;
}
} else if (fieldCount === 2) {
if (!value[this.field1.key] && !value[this.field2.key]) {
return false;
}
} else if (fieldCount === 1) {
if (!value[this.field1.key]) {
return false;
}
}
return true;
},
makeEmptyValue: function makeEmptyValue() {
var result = {};
if (this.field1 && this.field1.key) {
result[this.field1.key] = '';
}
if (this.field2 && this.field2.key) {
result[this.field2.key] = '';
}
if (this.field3 && this.field3.key) {
result[this.field3.key] = '';
}
if (this.field4 && this.field4.key) {
result[this.field4.key] = '';
}
return result;
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MultiPairField/MultiPairField.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MultiPairField/MultiPairField.vue
MultiPairFieldvue_type_script_lang_ts.render = MultiPairFieldvue_type_template_id_340e896b_render
/* harmony default export */ var MultiPairField = (MultiPairFieldvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/MultiPairField/MultiPairField.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var MultiPairField_adapter = (createAngularJsAdapter({
component: MultiPairField,
require: '?ngModel',
scope: {
name: {
angularJsBind: '='
},
field1: {
angularJsBind: '='
},
field2: {
angularJsBind: '='
},
field3: {
angularJsBind: '='
},
field4: {
angularJsBind: '='
}
},
directiveName: 'matomoMultiPairField',
events: {
'update:modelValue': function updateModelValue(newValue, vm, scope, element, attrs, ngModel) {
if (newValue !== vm.modelValue) {
element.trigger('change', newValue);
if (ngModel) {
ngModel.$setViewValue(newValue);
}
}
}
},
postCreate: function postCreate(vm, scope, element, attrs, controller) {
var ngModel = controller; // setup ng-model mapping
if (ngModel) {
ngModel.$setViewValue(vm.modelValue);
ngModel.$render = function () {
if (window.angular.isString(ngModel.$viewValue)) {
vm.modelValue = JSON.parse(ngModel.$viewValue);
} else {
vm.modelValue = ngModel.$viewValue;
}
};
}
}
}));
// 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/PeriodSelector/PeriodSelector.vue?vue&type=template&id=155889f6
var PeriodSelectorvue_type_template_id_155889f6_hoisted_1 = {
ref: "root",
class: "periodSelector piwikSelector"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_2 = ["title"];
var PeriodSelectorvue_type_template_id_155889f6_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon icon-calendar"
}, null, -1);
var PeriodSelectorvue_type_template_id_155889f6_hoisted_4 = {
id: "periodMore",
class: "dropdown"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_5 = {
class: "flex"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_6 = {
key: 0,
class: "period-date"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_7 = {
class: "period-type"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_8 = {
id: "otherPeriods"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_9 = ["onDblclick", "title"];
var PeriodSelectorvue_type_template_id_155889f6_hoisted_10 = ["id", "checked", "onChange", "onDblclick"];
var PeriodSelectorvue_type_template_id_155889f6_hoisted_11 = {
key: 0,
class: "compare-checkbox"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_12 = {
id: "comparePeriodToDropdown"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_13 = {
key: 1,
class: "compare-date-range"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_14 = {
id: "comparePeriodStartDate"
};
var PeriodSelectorvue_type_template_id_155889f6_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "compare-dates-separator"
}, null, -1);
var _hoisted_16 = {
id: "comparePeriodEndDate"
};
var _hoisted_17 = {
class: "apply-button-container"
};
var _hoisted_18 = ["disabled", "value"];
var _hoisted_19 = {
key: 2,
id: "ajaxLoadingCalendar"
};
var _hoisted_20 = {
class: "loadingSegment"
};
function PeriodSelectorvue_type_template_id_155889f6_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_DateRangePicker = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("DateRangePicker");
var _component_PeriodDatePicker = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("PeriodDatePicker");
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
var _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator");
var _directive_expand_on_click = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("expand-on-click");
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", PeriodSelectorvue_type_template_id_155889f6_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
ref: "title",
id: "date",
class: "title",
tabindex: "-1",
title: _ctx.translate('General_ChooseDate', _ctx.currentlyViewingText)
}, [PeriodSelectorvue_type_template_id_155889f6_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.currentlyViewingText), 1)], 8, PeriodSelectorvue_type_template_id_155889f6_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_DateRangePicker, {
class: "period-range",
"start-date": _ctx.startRangeDate,
"end-date": _ctx.endRangeDate,
onRangeChange: _cache[0] || (_cache[0] = function ($event) {
return _ctx.onRangeChange($event.start, $event.end);
}),
onSubmit: _cache[1] || (_cache[1] = function ($event) {
return _ctx.onApplyClicked();
})
}, null, 8, ["start-date", "end-date"]), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.selectedPeriod === 'range']]), _ctx.selectedPeriod !== 'range' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_PeriodDatePicker, {
id: "datepicker",
period: _ctx.selectedPeriod,
date: _ctx.periodValue === _ctx.selectedPeriod ? _ctx.dateValue : null,
onSelect: _cache[2] || (_cache[2] = function ($event) {
return _ctx.setPiwikPeriodAndDate(_ctx.selectedPeriod, $event.date);
})
}, null, 8, ["period", "date"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h6", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Period')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_8, [(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.periodsFiltered, function (period) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", {
key: period
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
'selected-period-label': period === _ctx.selectedPeriod
}),
onDblclick: function onDblclick($event) {
return _ctx.changeViewedPeriod(period);
},
title: period === _ctx.periodValue ? '' : _ctx.translate('General_DoubleClickToChangePeriod')
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "radio",
name: "period",
id: "period_id_".concat(period),
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return _ctx.selectedPeriod = $event;
}),
checked: _ctx.selectedPeriod === period,
onChange: function onChange($event) {
return _ctx.selectedPeriod = period;
},
onDblclick: function onDblclick($event) {
return _ctx.changeViewedPeriod(period);
}
}, null, 40, PeriodSelectorvue_type_template_id_155889f6_hoisted_10), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelRadio"], _ctx.selectedPeriod]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.getPeriodDisplayText(period)), 1)], 42, PeriodSelectorvue_type_template_id_155889f6_hoisted_9)]);
}), 128))])])]), _ctx.isComparisonEnabled ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_11, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
id: "comparePeriodTo",
type: "checkbox",
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return _ctx.isComparing = $event;
})
}, null, 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelCheckbox"], _ctx.isComparing]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_CompareTo')), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
modelValue: _ctx.comparePeriodType,
"onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
return _ctx.comparePeriodType = $event;
}),
style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
'visibility': _ctx.isComparing ? 'visible' : 'hidden'
}),
name: 'comparePeriodToDropdown',
uicontrol: 'select',
options: _ctx.comparePeriodDropdownOptions,
"full-width": true,
disabled: !_ctx.isComparing
}, null, 8, ["modelValue", "style", "options", "disabled"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.isComparing && _ctx.comparePeriodType === 'custom' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", PeriodSelectorvue_type_template_id_155889f6_hoisted_14, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
modelValue: _ctx.compareStartDate,
"onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
return _ctx.compareStartDate = $event;
}),
name: 'comparePeriodStartDate',
uicontrol: 'text',
"full-width": true,
title: _ctx.translate('CoreHome_StartDate'),
placeholder: 'YYYY-MM-DD'
}, null, 8, ["modelValue", "title"])])]), PeriodSelectorvue_type_template_id_155889f6_hoisted_15, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_16, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
modelValue: _ctx.compareEndDate,
"onUpdate:modelValue": _cache[7] || (_cache[7] = function ($event) {
return _ctx.compareEndDate = $event;
}),
name: 'comparePeriodEndDate',
uicontrol: 'text',
"full-width": true,
title: _ctx.translate('CoreHome_EndDate'),
placeholder: 'YYYY-MM-DD'
}, null, 8, ["modelValue", "title"])])])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_17, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "submit",
id: "calendarApply",
class: "btn",
onClick: _cache[8] || (_cache[8] = function ($event) {
return _ctx.onApplyClicked();
}),
disabled: !_ctx.isApplyEnabled(),
value: _ctx.translate('General_Apply')
}, null, 8, _hoisted_18)]), _ctx.isLoadingNewPage ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_19, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ActivityIndicator, {
loading: true
}), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_20, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SegmentEditor_LoadingSegmentedDataMayTakeSomeTime')), 1)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 512)), [[_directive_expand_on_click, {
expander: 'title'
}]]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodSelector/PeriodSelector.vue?vue&type=template&id=155889f6
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=7c5fe406
var ActivityIndicatorvue_type_template_id_7c5fe406_hoisted_1 = {
class: "loadingPiwik"
};
var ActivityIndicatorvue_type_template_id_7c5fe406_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
src: "plugins/Morpheus/images/loading-blue.gif",
alt: ""
}, null, -1);
function ActivityIndicatorvue_type_template_id_7c5fe406_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])((Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ActivityIndicatorvue_type_template_id_7c5fe406_hoisted_1, [ActivityIndicatorvue_type_template_id_7c5fe406_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.loadingMessage), 1)], 512)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.loading]]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=template&id=7c5fe406
// 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/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts
/* harmony default export */ var ActivityIndicatorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
loading: {
type: Boolean,
required: true,
default: false
},
loadingMessage: {
type: String,
required: false,
default: translate('General_LoadingData')
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ActivityIndicator/ActivityIndicator.vue
ActivityIndicatorvue_type_script_lang_ts.render = ActivityIndicatorvue_type_template_id_7c5fe406_render
/* harmony default export */ var ActivityIndicator = (ActivityIndicatorvue_type_script_lang_ts);
// 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/CoreHome/vue/src/PeriodSelector/PeriodSelector.vue?vue&type=script&lang=ts
function PeriodSelectorvue_type_script_lang_ts_slicedToArray(arr, i) { return PeriodSelectorvue_type_script_lang_ts_arrayWithHoles(arr) || PeriodSelectorvue_type_script_lang_ts_iterableToArrayLimit(arr, i) || PeriodSelectorvue_type_script_lang_ts_unsupportedIterableToArray(arr, i) || PeriodSelectorvue_type_script_lang_ts_nonIterableRest(); }
function PeriodSelectorvue_type_script_lang_ts_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 PeriodSelectorvue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PeriodSelectorvue_type_script_lang_ts_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 PeriodSelectorvue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function PeriodSelectorvue_type_script_lang_ts_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 PeriodSelectorvue_type_script_lang_ts_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 PeriodSelectorvue_type_script_lang_ts_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var PeriodSelectorvue_type_script_lang_ts_Field = useExternalPluginComponent('CorePluginsAdmin', 'Field');
var NBSP = Matomo_Matomo.helper.htmlDecode(' ');
var COMPARE_PERIOD_OPTIONS = [{
key: 'custom',
value: translate('General_Custom')
}, {
key: 'previousPeriod',
value: translate('General_PreviousPeriod').replace(/\s+/, NBSP)
}, {
key: 'previousYear',
value: translate('General_PreviousYear').replace(/\s+/, NBSP)
}];
var PeriodSelectorvue_type_script_lang_ts_piwikMinDate = new Date(Matomo_Matomo.minDateYear, Matomo_Matomo.minDateMonth - 1, Matomo_Matomo.minDateDay);
var PeriodSelectorvue_type_script_lang_ts_piwikMaxDate = new Date(Matomo_Matomo.maxDateYear, Matomo_Matomo.maxDateMonth - 1, Matomo_Matomo.maxDateDay);
function isValidDate(d) {
if (Object.prototype.toString.call(d) !== '[object Date]') {
return false;
}
return !Number.isNaN(d.getTime());
}
/* harmony default export */ var PeriodSelectorvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
periods: Array
},
components: {
DateRangePicker: DateRangePicker,
PeriodDatePicker: PeriodDatePicker,
Field: PeriodSelectorvue_type_script_lang_ts_Field,
ActivityIndicator: ActivityIndicator
},
directives: {
ExpandOnClick: ExpandOnClick
},
data: function data() {
var selectedPeriod = src_MatomoUrl_MatomoUrl.parsed.value.period;
return {
comparePeriodDropdownOptions: COMPARE_PERIOD_OPTIONS,
periodValue: selectedPeriod,
dateValue: null,
selectedPeriod: selectedPeriod,
startRangeDate: null,
endRangeDate: null,
isRangeValid: null,
isLoadingNewPage: false,
isComparing: null,
comparePeriodType: 'previousPeriod',
compareStartDate: '',
compareEndDate: ''
};
},
mounted: function mounted() {
var _this = this;
Matomo_Matomo.on('hidePeriodSelector', function () {
window.$(_this.$refs.root).parent('#periodString').hide();
}); // some widgets might hide the period selector using the event above, so ensure it's
// shown again when switching the page
Matomo_Matomo.on('piwikPageChange', function () {
window.$(_this.$refs.root).parent('#periodString').show();
});
this.updateSelectedValuesFromHash();
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return src_MatomoUrl_MatomoUrl.parsed.value;
}, this.updateSelectedValuesFromHash);
this.isComparing = Comparisons_store_instance.isComparingPeriods();
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return Comparisons_store_instance.isComparingPeriods();
}, function (newVal) {
_this.isComparing = newVal;
});
window.initTopControls(); // must be called when a top control changes width
this.handleZIndexPositionRelativeCompareDropdownIssue();
},
computed: {
currentlyViewingText: function currentlyViewingText() {
var date;
if (this.periodValue === 'range') {
if (!this.startRangeDate || !this.endRangeDate) {
return translate('General_Error');
}
date = "".concat(this.startRangeDate, ",").concat(this.endRangeDate);
} else {
if (!this.dateValue) {
return translate('General_Error');
}
date = format(this.dateValue);
}
try {
return Periods_Periods.parse(this.periodValue, date).getPrettyString();
} catch (e) {
return translate('General_Error');
}
},
isComparisonEnabled: function isComparisonEnabled() {
return Comparisons_store_instance.isComparisonEnabled();
},
periodsFiltered: function periodsFiltered() {
return (this.periods || []).filter(function (periodLabel) {
return Periods_Periods.isRecognizedPeriod(periodLabel);
});
},
selectedComparisonParams: function selectedComparisonParams() {
if (!this.isComparing) {
return {};
}
if (this.comparePeriodType === 'custom') {
return {
comparePeriods: ['range'],
compareDates: ["".concat(this.compareStartDate, ",").concat(this.compareEndDate)]
};
}
if (this.comparePeriodType === 'previousPeriod') {
return {
comparePeriods: [this.selectedPeriod],
compareDates: [this.previousPeriodDateToSelectedPeriod]
};
}
if (this.comparePeriodType === 'previousYear') {
var dateStr = this.selectedPeriod === 'range' ? "".concat(this.startRangeDate, ",").concat(this.endRangeDate) : format(this.dateValue);
var currentDateRange = Periods_Periods.parse(this.selectedPeriod, dateStr).getDateRange();
currentDateRange[0].setFullYear(currentDateRange[0].getFullYear() - 1);
currentDateRange[1].setFullYear(currentDateRange[1].getFullYear() - 1);
if (this.selectedPeriod === 'range') {
return {
comparePeriods: ['range'],
compareDates: ["".concat(format(currentDateRange[0]), ",").concat(format(currentDateRange[1]))]
};
}
return {
comparePeriods: [this.selectedPeriod],
compareDates: [format(currentDateRange[0])]
};
}
console.warn("Unknown compare period type: ".concat(this.comparePeriodType));
return {};
},
previousPeriodDateToSelectedPeriod: function previousPeriodDateToSelectedPeriod() {
if (this.selectedPeriod === 'range') {
var currentStartRange = parseDate(this.startRangeDate);
var currentEndRange = parseDate(this.endRangeDate);
var newEndDate = Range_RangePeriod.getLastNRange('day', 2, currentStartRange).startDate;
var rangeSize = Math.floor((currentEndRange.valueOf() - currentStartRange.valueOf()) / 86400000);
var newRange = Range_RangePeriod.getLastNRange('day', 1 + rangeSize, newEndDate);
return "".concat(format(newRange.startDate), ",").concat(format(newRange.endDate));
}
var newStartDate = Range_RangePeriod.getLastNRange(this.selectedPeriod, 2, this.dateValue).startDate;
return format(newStartDate);
},
selectedDateString: function selectedDateString() {
if (this.selectedPeriod === 'range') {
var dateFrom = this.startRangeDate;
var dateTo = this.endRangeDate;
var oDateFrom = parseDate(dateFrom);
var oDateTo = parseDate(dateTo);
if (!isValidDate(oDateFrom) || !isValidDate(oDateTo) || oDateFrom > oDateTo) {
// TODO: use a notification instead?
window.$('#alert').find('h2').text(translate('General_InvalidDateRange'));
Matomo_Matomo.helper.modalConfirm('#alert', {});
return null;
}
return "".concat(dateFrom, ",").concat(dateTo);
}
return format(this.dateValue);
}
},
methods: {
handleZIndexPositionRelativeCompareDropdownIssue: function handleZIndexPositionRelativeCompareDropdownIssue() {
var $element = window.$(this.$refs.root);
$element.on('focus', '#comparePeriodToDropdown .select-dropdown', function () {
$element.addClass('compare-dropdown-open');
}).on('blur', '#comparePeriodToDropdown .select-dropdown', function () {
$element.removeClass('compare-dropdown-open');
});
},
changeViewedPeriod: function changeViewedPeriod(period) {
// only change period if it's different from what's being shown currently
if (period === this.periodValue) {
return;
} // can't just change to a range period, w/o setting two new dates
if (period === 'range') {
return;
}
this.setPiwikPeriodAndDate(period, this.dateValue);
},
setPiwikPeriodAndDate: function setPiwikPeriodAndDate(period, date) {
this.periodValue = period;
this.selectedPeriod = period;
this.dateValue = date;
var currentDateString = format(date);
this.setRangeStartEndFromPeriod(period, currentDateString);
this.propagateNewUrlParams(currentDateString, this.selectedPeriod);
window.initTopControls();
},
propagateNewUrlParams: function propagateNewUrlParams(date, period) {
var compareParams = this.selectedComparisonParams;
var baseParams;
if (Matomo_Matomo.helper.isAngularRenderingThePage()) {
this.closePeriodSelector();
baseParams = src_MatomoUrl_MatomoUrl.hashParsed.value;
} else {
this.isLoadingNewPage = true;
baseParams = src_MatomoUrl_MatomoUrl.parsed.value;
} // get params without comparePeriods/compareSegments/compareDates
var paramsWithoutCompare = Object.assign({}, baseParams);
delete paramsWithoutCompare.comparePeriods;
delete paramsWithoutCompare.compareDates;
src_MatomoUrl_MatomoUrl.updateLocation(Object.assign(Object.assign({}, paramsWithoutCompare), {}, {
date: date,
period: period
}, compareParams));
},
onApplyClicked: function onApplyClicked() {
if (this.selectedPeriod === 'range') {
var dateString = this.selectedDateString;
if (!dateString) {
return;
}
this.periodValue = 'range';
this.propagateNewUrlParams(dateString, 'range');
return;
}
this.setPiwikPeriodAndDate(this.selectedPeriod, this.dateValue);
},
updateSelectedValuesFromHash: function updateSelectedValuesFromHash() {
var date = src_MatomoUrl_MatomoUrl.parsed.value.date;
var period = src_MatomoUrl_MatomoUrl.parsed.value.period;
this.periodValue = period;
this.selectedPeriod = period;
this.dateValue = null;
this.startRangeDate = null;
this.endRangeDate = null;
try {
Periods_Periods.parse(period, date);
} catch (e) {
return;
}
if (period === 'range') {
var periodObj = Periods_Periods.get(period).parse(date);
var _periodObj$getDateRan = periodObj.getDateRange(),
_periodObj$getDateRan2 = PeriodSelectorvue_type_script_lang_ts_slicedToArray(_periodObj$getDateRan, 2),
startDate = _periodObj$getDateRan2[0],
endDate = _periodObj$getDateRan2[1];
this.dateValue = startDate;
this.startRangeDate = format(startDate);
this.endRangeDate = format(endDate);
} else {
this.dateValue = parseDate(date);
this.setRangeStartEndFromPeriod(period, date);
}
},
setRangeStartEndFromPeriod: function setRangeStartEndFromPeriod(period, dateStr) {
var dateRange = Periods_Periods.parse(period, dateStr).getDateRange();
this.startRangeDate = format(dateRange[0] < PeriodSelectorvue_type_script_lang_ts_piwikMinDate ? PeriodSelectorvue_type_script_lang_ts_piwikMinDate : dateRange[0]);
this.endRangeDate = format(dateRange[1] > PeriodSelectorvue_type_script_lang_ts_piwikMaxDate ? PeriodSelectorvue_type_script_lang_ts_piwikMaxDate : dateRange[1]);
},
getPeriodDisplayText: function getPeriodDisplayText(periodLabel) {
return Periods_Periods.get(periodLabel).getDisplayText();
},
onRangeChange: function onRangeChange(start, end) {
if (!start || !end) {
this.isRangeValid = false;
return;
}
this.isRangeValid = true;
this.startRangeDate = start;
this.endRangeDate = end;
},
isApplyEnabled: function isApplyEnabled() {
if (this.selectedPeriod === 'range' && !this.isRangeValid) {
return false;
}
if (this.isComparing && this.comparePeriodType === 'custom' && !this.isCompareRangeValid()) {
return false;
}
return true;
},
closePeriodSelector: function closePeriodSelector() {
this.$refs.root.classList.remove('expanded');
},
isCompareRangeValid: function isCompareRangeValid() {
try {
parseDate(this.compareStartDate);
} catch (e) {
return false;
}
try {
parseDate(this.compareEndDate);
} catch (e) {
return false;
}
return true;
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodSelector/PeriodSelector.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodSelector/PeriodSelector.vue
PeriodSelectorvue_type_script_lang_ts.render = PeriodSelectorvue_type_template_id_155889f6_render
/* harmony default export */ var PeriodSelector = (PeriodSelectorvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/PeriodSelector/PeriodSelector.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var PeriodSelector_adapter = (createAngularJsAdapter({
component: PeriodSelector,
scope: {
periods: {
angularJsBind: '<'
}
},
directiveName: 'piwikPeriodSelector'
}));
// 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/ReportingMenu/ReportingMenu.vue?vue&type=template&id=5cfc36bc
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_1 = {
class: "reportingMenu"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_2 = ["aria-label"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_3 = ["onClick"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_4 = {
class: "hidden"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_5 = {
role: "menu"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_6 = ["href", "onClick", "title"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_7 = ["href", "onClick"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_8 = ["onClick"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_9 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "icon-help"
}, null, -1);
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_10 = [ReportingMenuvue_type_template_id_5cfc36bc_hoisted_9];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_11 = {
id: "mobile-left-menu",
class: "sidenav hide-on-large-only"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_12 = {
class: "collapsible collapsible-accordion"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_13 = {
class: "collapsible-header"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_14 = {
class: "collapsible-body"
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_15 = {
key: 0
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_16 = ["onClick", "href"];
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_17 = {
key: 1
};
var ReportingMenuvue_type_template_id_5cfc36bc_hoisted_18 = ["onClick", "href"];
function ReportingMenuvue_type_template_id_5cfc36bc_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_MenuItemsDropdown = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("MenuItemsDropdown");
var _directive_side_nav = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("side-nav");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", {
class: "navbar hide-on-med-and-down",
role: "menu",
"aria-label": _ctx.translate('CoreHome_MainNavigation')
}, [(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.menu, function (category) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["menuTab", {
'active': category.id === _ctx.activeCategory
}]),
role: "menuitem",
key: category.id
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
class: "item",
tabindex: "5",
href: "",
onClick: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function ($event) {
return _ctx.loadCategory(category);
}, ["prevent"])
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])("menu-icon ".concat(category.icon ? category.icon : 'icon-arrow-right'))
}, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(category.name) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_Menu')), 1)], 8, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_3), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_5, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(category.subcategories, function (subcategory) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
role: "menuitem",
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
'active': (subcategory.id === _ctx.displayedSubcategory || subcategory.isGroup && _ctx.activeSubsubcategory === _ctx.displayedSubcategory) && category.id === _ctx.displayedCategory
}),
key: subcategory.id
}, [subcategory.isGroup ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_MenuItemsDropdown, {
key: 0,
"show-search": true,
"menu-title": _ctx.htmlEntities(subcategory.name)
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(subcategory.subcategories, function (subcat) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["item", {
active: subcat.id === _ctx.activeSubsubcategory && subcategory.id === _ctx.displayedSubcategory && category.id === _ctx.displayedCategory
}]),
tabindex: "5",
href: "#?".concat(_ctx.makeUrl(category, subcat)),
onClick: function onClick($event) {
return _ctx.loadSubcategory(category, subcat, $event);
},
title: subcat.tooltip,
key: subcat.id
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcat.name), 11, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_6);
}), 128))];
}),
_: 2
}, 1032, ["menu-title"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !subcategory.isGroup ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 1,
href: "#?".concat(_ctx.makeUrl(category, subcategory)),
class: "item",
onClick: function onClick($event) {
return _ctx.loadSubcategory(category, subcategory, $event);
}
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcategory.name), 9, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_7)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), subcategory.help ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
key: 2,
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["item-help-icon", {
active: _ctx.helpShownCategory && _ctx.helpShownCategory.subcategory === subcategory.id && _ctx.helpShownCategory.category === category.id && subcategory.help
}]),
tabindex: "5",
href: "javascript:",
onClick: function onClick($event) {
return _ctx.showHelp(category, subcategory, $event);
}
}, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_10, 10, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_8)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}), 128))])], 2);
}), 128))], 8, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_11, [(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.menu, function (category) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
class: "no-padding",
key: category.id
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("li", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("i", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(category.icon ? category.icon : 'icon-arrow-bottom')
}, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(category.name), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_14, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [(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"])(category.subcategories, function (subcategory) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
key: subcategory.id
}, [subcategory.isGroup ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_15, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(subcategory.subcategories, function (subcat) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
onClick: function onClick($event) {
return _ctx.loadSubcategory(category, subcat);
},
href: "#?".concat(_ctx.makeUrl(category, subcat)),
key: subcat.id
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcat.name), 9, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_16);
}), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !subcategory.isGroup ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", ReportingMenuvue_type_template_id_5cfc36bc_hoisted_17, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
onClick: function onClick($event) {
return _ctx.loadSubcategory(category, subcategory);
},
href: "#?".concat(_ctx.makeUrl(category, subcategory))
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(subcategory.name), 9, ReportingMenuvue_type_template_id_5cfc36bc_hoisted_18)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]);
}), 128))])])])], 512), [[_directive_side_nav, {
activator: _ctx.sideNavActivator
}]])]);
}), 128))])]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.vue?vue&type=template&id=5cfc36bc
// 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/Notification/Notification.vue?vue&type=template&id=52166f8a
var Notificationvue_type_template_id_52166f8a_hoisted_1 = {
key: 0
};
var Notificationvue_type_template_id_52166f8a_hoisted_2 = ["data-notification-instance-id"];
var Notificationvue_type_template_id_52166f8a_hoisted_3 = {
key: 1
};
var Notificationvue_type_template_id_52166f8a_hoisted_4 = {
class: "notification-body"
};
var Notificationvue_type_template_id_52166f8a_hoisted_5 = ["innerHTML"];
var Notificationvue_type_template_id_52166f8a_hoisted_6 = {
key: 1
};
function Notificationvue_type_template_id_52166f8a_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_["createBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Transition"], {
name: _ctx.type === 'toast' ? 'slow-fade-out' : undefined,
onAfterLeave: _cache[1] || (_cache[1] = function ($event) {
return _ctx.toastClosed();
})
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [!_ctx.deleted ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Notificationvue_type_template_id_52166f8a_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Transition"], {
name: _ctx.type === 'toast' ? 'toast-slide-up' : undefined,
appear: ""
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Transition"], {
name: _ctx.animate ? 'fade-in' : undefined,
appear: ""
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["notification system", _ctx.cssClasses]),
style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])(_ctx.style),
ref: "root",
"data-notification-instance-id": _ctx.notificationInstanceId
}, [_ctx.canClose ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("button", {
key: 0,
type: "button",
class: "close",
"data-dismiss": "alert",
onClick: _cache[0] || (_cache[0] = function ($event) {
return _ctx.closeNotification($event);
})
}, " × ")) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.title ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("strong", Notificationvue_type_template_id_52166f8a_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.title), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Notificationvue_type_template_id_52166f8a_hoisted_4, [_ctx.message ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
key: 0,
innerHTML: _ctx.$sanitize(_ctx.message)
}, null, 8, Notificationvue_type_template_id_52166f8a_hoisted_5)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.message ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Notificationvue_type_template_id_52166f8a_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 14, Notificationvue_type_template_id_52166f8a_hoisted_2)];
}),
_: 3
}, 8, ["name"])])];
}),
_: 3
}, 8, ["name"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)];
}),
_: 3
}, 8, ["name"]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notification.vue?vue&type=template&id=52166f8a
// 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/CoreHome/vue/src/Notification/Notification.vue?vue&type=script&lang=ts
var Notificationvue_type_script_lang_ts_window = window,
Notificationvue_type_script_lang_ts_$ = Notificationvue_type_script_lang_ts_window.$;
/* harmony default export */ var Notificationvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
notificationId: String,
// NOTE: notificationId refers to server side ID for notifications stored in the session.
// this ID is just so it can be selected outside of this component (just for scrolling).
notificationInstanceId: String,
title: String,
context: String,
type: String,
noclear: Boolean,
toastLength: {
type: Number,
default: 12 * 1000
},
style: [String, Object],
animate: Boolean,
message: String,
cssClass: String
},
computed: {
cssClasses: function cssClasses() {
var result = {};
if (this.context) {
result["notification-".concat(this.context)] = true;
}
if (this.cssClass) {
result[this.cssClass] = true;
}
return result;
},
canClose: function canClose() {
if (this.type === 'persistent') {
// otherwise it is never possible to dismiss the notification
return true;
}
return !this.noclear;
}
},
emits: ['closed'],
data: function data() {
return {
deleted: false
};
},
mounted: function mounted() {
var _this = this;
var addToastEvent = function addToastEvent() {
setTimeout(function () {
_this.deleted = true;
}, _this.toastLength);
};
if (this.type === 'toast') {
addToastEvent();
}
if (this.style) {
Notificationvue_type_script_lang_ts_$(this.$refs.root).css(this.style);
}
},
methods: {
toastClosed: function toastClosed() {
var _this2 = this;
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
_this2.$emit('closed');
});
},
closeNotification: function closeNotification(event) {
var _this3 = this;
if (this.canClose && event && event.target) {
this.deleted = true;
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
_this3.$emit('closed');
});
}
this.markNotificationAsRead();
},
markNotificationAsRead: function markNotificationAsRead() {
if (!this.notificationId) {
return;
}
AjaxHelper_AjaxHelper.post({
module: 'CoreHome',
action: 'markNotificationAsRead'
}, {
notificationId: this.notificationId
}, {
withTokenInUrl: true
});
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notification.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notification.vue
Notificationvue_type_script_lang_ts.render = Notificationvue_type_template_id_52166f8a_render
/* harmony default export */ var Notification = (Notificationvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notification.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var Notification_adapter = (createAngularJsAdapter({
component: Notification,
scope: {
notificationId: {
angularJsBind: '@?'
},
title: {
angularJsBind: '@?notificationTitle'
},
context: {
angularJsBind: '@?'
},
type: {
angularJsBind: '@?'
},
noclear: {
angularJsBind: '@?',
transform: transformAngularJsBoolAttr
},
toastLength: {
angularJsBind: '@?'
}
},
directiveName: 'piwikNotification',
transclude: true
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notifications.store.ts
function Notifications_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function Notifications_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function Notifications_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) Notifications_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) Notifications_store_defineProperties(Constructor, staticProps); return Constructor; }
function Notifications_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var Notifications_store_window = window,
Notifications_store_$ = Notifications_store_window.$;
var Notifications_store_NotificationsStore = /*#__PURE__*/function () {
function NotificationsStore() {
Notifications_store_classCallCheck(this, NotificationsStore);
Notifications_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
notifications: []
}));
Notifications_store_defineProperty(this, "nextNotificationId", 0);
}
Notifications_store_createClass(NotificationsStore, [{
key: "state",
get: function get() {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.privateState);
}
}, {
key: "appendNotification",
value: function appendNotification(notification) {
this.checkMessage(notification.message); // remove existing notification before adding
if (notification.id) {
this.remove(notification.id);
}
this.privateState.notifications.push(notification);
}
}, {
key: "prependNotification",
value: function prependNotification(notification) {
this.checkMessage(notification.message); // remove existing notification before adding
if (notification.id) {
this.remove(notification.id);
}
this.privateState.notifications.unshift(notification);
}
/**
* Removes a previously shown notification having the given notification id.
*/
}, {
key: "remove",
value: function remove(id) {
this.privateState.notifications = this.privateState.notifications.filter(function (n) {
return n.id !== id;
});
}
}, {
key: "parseNotificationDivs",
value: function parseNotificationDivs() {
var _this = this;
var $notificationNodes = Notifications_store_$('[data-role="notification"]');
var notificationsToShow = [];
$notificationNodes.each(function (index, notificationNode) {
var $notificationNode = Notifications_store_$(notificationNode);
var attributes = $notificationNode.data();
var message = $notificationNode.html();
if (message) {
notificationsToShow.push(Object.assign(Object.assign({}, attributes), {}, {
message: message,
animate: false
}));
}
$notificationNodes.remove();
});
notificationsToShow.forEach(function (n) {
return _this.show(n);
});
}
}, {
key: "clearTransientNotifications",
value: function clearTransientNotifications() {
this.privateState.notifications = this.privateState.notifications.filter(function (n) {
return n.type !== 'transient';
});
}
/**
* Creates a notification and shows it to the user.
*/
}, {
key: "show",
value: function show(notification) {
this.checkMessage(notification.message);
var addMethod = notification.prepend ? this.prependNotification : this.appendNotification;
var notificationPosition = '#notificationContainer';
if (notification.placeat) {
notificationPosition = notification.placeat;
} else {
// If a modal is open, we want to make sure the error message is visible and therefore
// show it within the opened modal
var modalSelector = '.modal.open .modal-content';
var modal = document.querySelector(modalSelector);
if (modal) {
if (!modal.querySelector('#modalNotificationContainer')) {
Notifications_store_$(modal).prepend('');
}
notificationPosition = "".concat(modalSelector, " #modalNotificationContainer");
addMethod = this.prependNotification;
}
}
var group = notification.group || (notificationPosition ? notificationPosition.toString() : '');
this.initializeNotificationContainer(notificationPosition, group);
var notificationInstanceId = (this.nextNotificationId += 1).toString();
addMethod.call(this, Object.assign(Object.assign({}, notification), {}, {
noclear: !!notification.noclear,
group: group,
notificationId: notification.id,
notificationInstanceId: notificationInstanceId,
type: notification.type || 'transient'
}));
return notificationInstanceId;
}
}, {
key: "scrollToNotification",
value: function scrollToNotification(notificationInstanceId) {
setTimeout(function () {
var element = document.querySelector("[data-notification-instance-id='".concat(notificationInstanceId, "']"));
if (element) {
Matomo_Matomo.helper.lazyScrollTo(element, 250);
}
});
}
/**
* Shows a notification at a certain point with a quick upwards animation.
*/
}, {
key: "toast",
value: function toast(notification) {
this.checkMessage(notification.message);
var $placeat = notification.placeat ? Notifications_store_$(notification.placeat) : undefined;
if (!$placeat || !$placeat.length) {
throw new Error('A valid selector is required for the placeat option when using Notification.toast().');
}
var toastElement = document.createElement('div');
toastElement.style.position = 'absolute';
toastElement.style.top = "".concat($placeat.offset().top, "px");
toastElement.style.left = "".concat($placeat.offset().left, "px");
toastElement.style.zIndex = '1000';
document.body.appendChild(toastElement);
var app = createVueApp({
render: function render() {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(Notification, Object.assign(Object.assign({}, notification), {}, {
notificationId: notification.id,
type: 'toast',
onClosed: function onClosed() {
app.unmount();
}
}));
}
});
app.mount(toastElement);
}
}, {
key: "initializeNotificationContainer",
value: function initializeNotificationContainer(notificationPosition, group) {
if (!notificationPosition) {
return;
}
var $container = Notifications_store_$(notificationPosition);
if ($container.children('.notification-group').length) {
return;
} // avoiding a dependency cycle. won't need to do this when NotificationGroup's do not need
// to be dynamically initialized.
var NotificationGroup = window.CoreHome.NotificationGroup; // eslint-disable-line
var app = createVueApp({
template: '',
data: function data() {
return {
group: group
};
}
});
app.component('NotificationGroup', NotificationGroup);
app.mount($container[0]);
}
}, {
key: "checkMessage",
value: function checkMessage(message) {
if (!message) {
throw new Error('No message given, cannot display notification');
}
}
}]);
return NotificationsStore;
}();
var Notifications_store_instance = new Notifications_store_NotificationsStore();
/* harmony default export */ var Notifications_store = (Notifications_store_instance); // parse notifications on dom load
Notifications_store_$(function () {
return Notifications_store_instance.parseNotificationDivs();
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/Notifications.store.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
window.angular.module('piwikApp').factory('notifications', function () {
return Notifications_store;
});
// 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/Notification/NotificationGroup.vue?vue&type=template&id=672051da
var NotificationGroupvue_type_template_id_672051da_hoisted_1 = {
class: "notification-group"
};
var NotificationGroupvue_type_template_id_672051da_hoisted_2 = ["innerHTML"];
function NotificationGroupvue_type_template_id_672051da_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Notification = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Notification");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", NotificationGroupvue_type_template_id_672051da_hoisted_1, [(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.notifications, function (notification, index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_Notification, {
key: notification.id || "no-id-".concat(index),
"notification-id": notification.id,
title: notification.title,
context: notification.context,
type: notification.type,
noclear: notification.noclear,
"toast-length": notification.toastLength,
style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])(notification.style),
animate: notification.animate,
message: notification.message,
"notification-instance-id": notification.notificationInstanceId,
"css-class": notification.class,
onClosed: function onClosed($event) {
return _ctx.removeNotification(notification.id);
}
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
innerHTML: _ctx.$sanitize(notification.message)
}, null, 8, NotificationGroupvue_type_template_id_672051da_hoisted_2)];
}),
_: 2
}, 1032, ["notification-id", "title", "context", "type", "noclear", "toast-length", "style", "animate", "message", "notification-instance-id", "css-class", "onClosed"]);
}), 128))]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/NotificationGroup.vue?vue&type=template&id=672051da
// 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/CoreHome/vue/src/Notification/NotificationGroup.vue?vue&type=script&lang=ts
/* harmony default export */ var NotificationGroupvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
group: String
},
components: {
Notification: Notification
},
computed: {
notifications: function notifications() {
var _this = this;
return Notifications_store.state.notifications.filter(function (n) {
if (_this.group) {
return _this.group === n.group;
}
return !n.group;
});
}
},
methods: {
removeNotification: function removeNotification(id) {
Notifications_store.remove(id);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/NotificationGroup.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/NotificationGroup.vue
NotificationGroupvue_type_script_lang_ts.render = NotificationGroupvue_type_template_id_672051da_render
/* harmony default export */ var Notification_NotificationGroup = (NotificationGroupvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Notification/index.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPages/ReportingPages.store.ts
function ReportingPages_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function ReportingPages_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function ReportingPages_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) ReportingPages_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) ReportingPages_store_defineProperties(Constructor, staticProps); return Constructor; }
function ReportingPages_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var ReportingPages_store_ReportingPagesStore = /*#__PURE__*/function () {
function ReportingPagesStore() {
var _this = this;
ReportingPages_store_classCallCheck(this, ReportingPagesStore);
ReportingPages_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
pages: []
}));
ReportingPages_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.privateState);
}));
ReportingPages_store_defineProperty(this, "fetchAllPagesPromise", void 0);
ReportingPages_store_defineProperty(this, "pages", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.state.value.pages;
}));
}
ReportingPages_store_createClass(ReportingPagesStore, [{
key: "findPageInCategory",
value: function findPageInCategory(categoryId) {
// happens when user switches between sites, in this case check if the same category exists and
// if so, select first entry from that category
return this.pages.value.find(function (p) {
return p && p.category && p.category.id === categoryId && p.subcategory && p.subcategory.id;
});
}
}, {
key: "findPage",
value: function findPage(categoryId, subcategoryId) {
return this.pages.value.find(function (p) {
return p && p.category && p.subcategory && p.category.id === categoryId && "".concat(p.subcategory.id) === subcategoryId;
});
}
}, {
key: "reloadAllPages",
value: function reloadAllPages() {
delete this.fetchAllPagesPromise;
return this.getAllPages();
}
}, {
key: "getAllPages",
value: function getAllPages() {
var _this2 = this;
if (!this.fetchAllPagesPromise) {
this.fetchAllPagesPromise = AjaxHelper_AjaxHelper.fetch({
method: 'API.getReportPagesMetadata',
filter_limit: '-1'
}).then(function (response) {
_this2.privateState.pages = response;
return _this2.pages.value;
});
}
return this.fetchAllPagesPromise.then(function () {
return _this2.pages.value;
});
}
}]);
return ReportingPagesStore;
}();
/* harmony default export */ var ReportingPages_store = (new ReportingPages_store_ReportingPagesStore());
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Orderable.ts
function Orderable_toConsumableArray(arr) { return Orderable_arrayWithoutHoles(arr) || Orderable_iterableToArray(arr) || Orderable_unsupportedIterableToArray(arr) || Orderable_nonIterableSpread(); }
function Orderable_nonIterableSpread() { 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 Orderable_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return Orderable_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 Orderable_arrayLikeToArray(o, minLen); }
function Orderable_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function Orderable_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return Orderable_arrayLikeToArray(arr); }
function Orderable_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; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function sortOrderables(menu) {
var result = Orderable_toConsumableArray(menu || []);
result.sort(function (lhs, rhs) {
if (lhs.order < rhs.order) {
return -1;
}
if (lhs.order > rhs.order) {
return 1;
}
return 0;
});
return result;
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/Category.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function getCategoryChildren(category) {
var container = category;
if (container.subcategories) {
return container.subcategories;
}
return [];
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/Subcategory.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function getSubcategoryChildren(subcategory) {
var container = subcategory;
if (container.subcategories) {
return container.subcategories;
}
return [];
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.ts
function ReportingMenu_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function ReportingMenu_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function ReportingMenu_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) ReportingMenu_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) ReportingMenu_store_defineProperties(Constructor, staticProps); return Constructor; }
function ReportingMenu_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function isNumeric(text) {
var n = parseFloat(text);
return !Number.isNaN(n) && Number.isFinite(n);
}
var ReportingMenu_store_ReportingMenuStore = /*#__PURE__*/function () {
function ReportingMenuStore() {
var _this = this;
ReportingMenu_store_classCallCheck(this, ReportingMenuStore);
ReportingMenu_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
activeSubcategoryId: null,
activeSubsubcategoryId: null
}));
ReportingMenu_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.privateState);
}));
ReportingMenu_store_defineProperty(this, "activeCategory", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
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 () {
return _this.state.value.activeSubcategoryId || src_MatomoUrl_MatomoUrl.parsed.value.subcategory;
}));
ReportingMenu_store_defineProperty(this, "activeSubsubcategory", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var manuallySetId = _this.state.value.activeSubsubcategoryId;
if (manuallySetId) {
return manuallySetId;
} // default to activeSubcategory if the activeSubcategory is part of a group
var foundCategory = _this.findSubcategory(_this.activeCategory.value, _this.activeSubcategory.value);
if (foundCategory.subsubcategory && foundCategory.subsubcategory.id === _this.activeSubcategory.value) {
return foundCategory.subsubcategory.id;
}
return null;
}));
ReportingMenu_store_defineProperty(this, "menu", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.buildMenuFromPages();
}));
}
ReportingMenu_store_createClass(ReportingMenuStore, [{
key: "fetchMenuItems",
value: function fetchMenuItems() {
var _this2 = this;
return ReportingPages_store.getAllPages().then(function () {
return _this2.menu.value;
});
}
}, {
key: "reloadMenuItems",
value: function reloadMenuItems() {
var _this3 = this;
return ReportingPages_store.reloadAllPages().then(function () {
return _this3.menu.value;
});
}
}, {
key: "findSubcategory",
value: function findSubcategory(categoryId, subcategoryId) {
var foundCategory = undefined;
var foundSubcategory = undefined;
var foundSubSubcategory = undefined;
this.menu.value.forEach(function (category) {
if (category.id !== categoryId) {
return;
}
(getCategoryChildren(category) || []).forEach(function (subcategory) {
if (subcategory.id === subcategoryId) {
foundCategory = category;
foundSubcategory = subcategory;
}
if (subcategory.isGroup) {
(getSubcategoryChildren(subcategory) || []).forEach(function (subcat) {
if (subcat.id === subcategoryId) {
foundCategory = category;
foundSubcategory = subcategory;
foundSubSubcategory = subcat;
}
});
}
});
});
return {
category: foundCategory,
subcategory: foundSubcategory,
subsubcategory: foundSubSubcategory
};
}
}, {
key: "buildMenuFromPages",
value: function buildMenuFromPages() {
var menu = [];
var displayedCategory = src_MatomoUrl_MatomoUrl.parsed.value.category;
var displayedSubcategory = src_MatomoUrl_MatomoUrl.parsed.value.subcategory;
var pages = ReportingPages_store.pages.value;
var categoriesHandled = {};
pages.forEach(function (page) {
var category = Object.assign({}, page.category);
var categoryId = category.id;
var isCategoryDisplayed = categoryId === displayedCategory;
if (categoriesHandled[categoryId]) {
return;
}
categoriesHandled[categoryId] = true;
category.subcategories = [];
var categoryGroups = null;
var pagesWithCategory = pages.filter(function (p) {
return p.category.id === categoryId;
});
pagesWithCategory.forEach(function (p) {
var subcategory = Object.assign({}, p.subcategory);
var isSubcategoryDisplayed = subcategory.id === displayedSubcategory && isCategoryDisplayed;
if (p.widgets && p.widgets[0] && isNumeric(p.subcategory.id)) {
// we handle a goal or something like it
if (!categoryGroups) {
categoryGroups = Object.assign({}, subcategory);
categoryGroups.name = translate('CoreHome_ChooseX', [category.name]);
categoryGroups.isGroup = true;
categoryGroups.subcategories = [];
categoryGroups.order = 10;
}
if (isSubcategoryDisplayed) {
categoryGroups.name = subcategory.name;
}
var entityId = page.subcategory.id;
subcategory.tooltip = "".concat(subcategory.name, " (id = ").concat(entityId, ")");
categoryGroups.subcategories.push(subcategory);
return;
}
category.subcategories.push(subcategory);
});
if (categoryGroups && categoryGroups.subcategories && categoryGroups.subcategories.length <= 5) {
categoryGroups.subcategories.forEach(function (sub) {
return category.subcategories.push(sub);
});
} else if (categoryGroups) {
category.subcategories.push(categoryGroups);
}
category.subcategories = sortOrderables(getCategoryChildren(category));
menu.push(category);
});
return sortOrderables(menu);
}
}, {
key: "toggleCategory",
value: function toggleCategory(category) {
this.privateState.activeSubcategoryId = null;
this.privateState.activeSubsubcategoryId = null;
if (this.activeCategory.value === category.id) {
this.privateState.activeCategoryId = null;
return false;
}
this.privateState.activeCategoryId = category.id;
return true;
}
}, {
key: "enterSubcategory",
value: function enterSubcategory(category, subcategory, subsubcategory) {
if (!category || !subcategory) {
return;
}
this.privateState.activeCategoryId = category.id;
this.privateState.activeSubcategoryId = subcategory.id;
if (subsubcategory) {
this.privateState.activeSubsubcategoryId = subsubcategory.id;
}
}
}]);
return ReportingMenuStore;
}();
/* harmony default export */ var ReportingMenu_store = (new ReportingMenu_store_ReportingMenuStore());
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widgets.store.ts
function Widgets_store_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Widgets_store_typeof = function _typeof(obj) { return typeof obj; }; } else { Widgets_store_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Widgets_store_typeof(obj); }
function Widgets_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function Widgets_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function Widgets_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) Widgets_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) Widgets_store_defineProperties(Constructor, staticProps); return Constructor; }
function Widgets_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function getWidgetChildren(widget) {
var container = widget;
if (container.widgets) {
return container.widgets;
}
return [];
}
var Widgets_store_WidgetsStore = /*#__PURE__*/function () {
function WidgetsStore() {
var _this = this;
Widgets_store_classCallCheck(this, WidgetsStore);
Widgets_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
isFetchedFirstTime: false,
categorizedWidgets: {}
}));
Widgets_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
if (!_this.privateState.isFetchedFirstTime) {
// initiating a side effect in a computed property seems wrong, but it needs to be
// executed after knowing a user's logged in and it will succeed.
_this.fetchAvailableWidgets();
}
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.privateState);
}));
Widgets_store_defineProperty(this, "widgets", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.state.value.categorizedWidgets;
}));
}
Widgets_store_createClass(WidgetsStore, [{
key: "fetchAvailableWidgets",
value: function fetchAvailableWidgets() {
var _this2 = this;
// if there's no idSite, don't make the request since it will just fail
if (!src_MatomoUrl_MatomoUrl.parsed.value.idSite) {
return Promise.resolve(this.widgets.value);
}
this.privateState.isFetchedFirstTime = true;
return new Promise(function (resolve, reject) {
try {
window.widgetsHelper.getAvailableWidgets(function (widgets) {
var casted = widgets;
_this2.privateState.categorizedWidgets = casted;
resolve(_this2.widgets.value);
});
} catch (e) {
reject(e);
}
});
}
}, {
key: "reloadAvailableWidgets",
value: function reloadAvailableWidgets() {
if (Widgets_store_typeof(window.widgetsHelper) === 'object' && window.widgetsHelper.availableWidgets) {
// lets also update widgetslist so will be easier to update list of available widgets in
// dashboard selector immediately
delete window.widgetsHelper.availableWidgets;
}
return this.fetchAvailableWidgets();
}
}]);
return WidgetsStore;
}();
/* harmony default export */ var Widgets_store = (new Widgets_store_WidgetsStore());
// 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/CoreHome/vue/src/ReportingMenu/ReportingMenu.vue?vue&type=script&lang=ts
var REPORTING_HELP_NOTIFICATION_ID = 'reportingmenu-help';
/* harmony default export */ var ReportingMenuvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
components: {
MenuItemsDropdown: MenuItemsDropdown
},
directives: {
SideNav: SideNav
},
props: {},
data: function data() {
return {
showSubcategoryHelpOnLoad: null,
initialLoad: true,
helpShownCategory: null
};
},
computed: {
sideNavActivator: function sideNavActivator() {
return document.querySelector('nav .activateLeftMenu');
},
menu: function menu() {
return ReportingMenu_store.menu.value;
},
activeCategory: function activeCategory() {
return ReportingMenu_store.activeCategory.value;
},
activeSubcategory: function activeSubcategory() {
return ReportingMenu_store.activeSubcategory.value;
},
activeSubsubcategory: function activeSubsubcategory() {
return ReportingMenu_store.activeSubsubcategory.value;
},
displayedCategory: function displayedCategory() {
return src_MatomoUrl_MatomoUrl.parsed.value.category;
},
displayedSubcategory: function displayedSubcategory() {
return src_MatomoUrl_MatomoUrl.parsed.value.subcategory;
}
},
created: function created() {
var _this = this;
ReportingMenu_store.fetchMenuItems().then(function (menu) {
if (!src_MatomoUrl_MatomoUrl.parsed.value.subcategory) {
var categoryToLoad = menu[0];
var subcategoryToLoad = categoryToLoad.subcategories[0]; // load first, initial page if no subcategory is present
ReportingMenu_store.enterSubcategory(categoryToLoad, subcategoryToLoad);
_this.propagateUrlChange(categoryToLoad, subcategoryToLoad);
}
});
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return src_MatomoUrl_MatomoUrl.parsed.value;
}, function (query) {
var found = ReportingMenu_store.findSubcategory(query.category, query.subcategory);
ReportingMenu_store.enterSubcategory(found.category, found.subcategory, found.subsubcategory);
});
Matomo_Matomo.on('piwikPageChange', function () {
if (!_this.initialLoad) {
window.globalAjaxQueue.abort();
}
_this.helpShownCategory = null;
if (_this.showSubcategoryHelpOnLoad) {
_this.showHelp(_this.showSubcategoryHelpOnLoad.category, _this.showSubcategoryHelpOnLoad.subcategory);
_this.showSubcategoryHelpOnLoad = null;
}
window.$('#loadingError,#loadingRateLimitError').hide();
_this.initialLoad = false;
});
Matomo_Matomo.on('updateReportingMenu', function () {
ReportingMenu_store.reloadMenuItems().then(function () {
var category = src_MatomoUrl_MatomoUrl.parsed.value.category;
var subcategory = src_MatomoUrl_MatomoUrl.parsed.value.subcategory; // we need to make sure to select same categories again
if (category && subcategory) {
var found = ReportingMenu_store.findSubcategory(category, subcategory);
if (found.category) {
ReportingMenu_store.enterSubcategory(found.category, found.subcategory, found.subsubcategory);
}
}
});
Widgets_store.reloadAvailableWidgets();
});
},
methods: {
propagateUrlChange: function propagateUrlChange(category, subcategory) {
var queryParams = src_MatomoUrl_MatomoUrl.parsed.value;
if (queryParams.category === category.id && queryParams.subcategory === subcategory.id) {
// we need to manually trigger change as URL would not change and therefore page would not
// be reloaded
this.loadSubcategory(category, subcategory);
} else {
src_MatomoUrl_MatomoUrl.updateHash(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
category: category.id,
subcategory: subcategory.id
}));
}
},
loadCategory: function loadCategory(category) {
Notifications_store.remove(REPORTING_HELP_NOTIFICATION_ID);
var isActive = ReportingMenu_store.toggleCategory(category);
if (isActive && category.subcategories && category.subcategories.length === 1) {
this.helpShownCategory = null;
var subcategory = category.subcategories[0];
this.propagateUrlChange(category, subcategory);
}
},
loadSubcategory: function loadSubcategory(category, subcategory, event) {
if (event && (event.shiftKey || event.ctrlKey || event.metaKey)) {
return;
}
Notifications_store.remove(REPORTING_HELP_NOTIFICATION_ID);
if (subcategory && subcategory.id === this.activeSubcategory) {
this.helpShownCategory = null; // this menu item is already active, a location change success would not be triggered,
// instead trigger an event (after the URL changes)
setTimeout(function () {
Matomo_Matomo.postEvent('loadPage', category.id, subcategory.id);
});
}
},
makeUrl: function makeUrl(category, subcategory) {
var _MatomoUrl$parsed$val = src_MatomoUrl_MatomoUrl.parsed.value,
idSite = _MatomoUrl$parsed$val.idSite,
period = _MatomoUrl$parsed$val.period,
date = _MatomoUrl$parsed$val.date,
segment = _MatomoUrl$parsed$val.segment,
comparePeriods = _MatomoUrl$parsed$val.comparePeriods,
compareDates = _MatomoUrl$parsed$val.compareDates,
compareSegments = _MatomoUrl$parsed$val.compareSegments;
return src_MatomoUrl_MatomoUrl.stringify({
idSite: idSite,
period: period,
date: date,
segment: segment,
comparePeriods: comparePeriods,
compareDates: compareDates,
compareSegments: compareSegments,
category: category.id,
subcategory: subcategory.id
});
},
htmlEntities: function htmlEntities(v) {
return Matomo_Matomo.helper.htmlEntities(v);
},
showHelp: function showHelp(category, subcategory, event) {
var parsedUrl = src_MatomoUrl_MatomoUrl.parsed.value;
var currentCategory = parsedUrl.category;
var currentSubcategory = parsedUrl.subcategory;
if ((currentCategory !== category.id || currentSubcategory !== subcategory.id) && event) {
this.showSubcategoryHelpOnLoad = {
category: category,
subcategory: subcategory
};
src_MatomoUrl_MatomoUrl.updateHash(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
category: category.id,
subcategory: subcategory.id
}));
return;
}
if (this.helpShownCategory && category.id === this.helpShownCategory.category && subcategory.id === this.helpShownCategory.subcategory) {
Notifications_store.remove(REPORTING_HELP_NOTIFICATION_ID);
this.helpShownCategory = null;
return;
}
var prefixText = translate('CoreHome_ReportingCategoryHelpPrefix', category.name, subcategory.name);
var prefix = "".concat(prefixText, " ");
Notifications_store.show({
context: 'info',
id: REPORTING_HELP_NOTIFICATION_ID,
type: 'help',
noclear: true,
class: 'help-notification',
message: prefix + subcategory.help,
placeat: '#notificationContainer',
prepend: true
});
this.helpShownCategory = {
category: category.id,
subcategory: subcategory.id
};
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.vue
ReportingMenuvue_type_script_lang_ts.render = ReportingMenuvue_type_template_id_5cfc36bc_render
/* harmony default export */ var ReportingMenu = (ReportingMenuvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var ReportingMenu_adapter = (createAngularJsAdapter({
component: ReportingMenu,
directiveName: 'piwikReportingMenu'
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingMenu/ReportingMenu.store.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
// removed boolean active property from objects in vue so we can keep the store immutable, but,
// angularjs version should still have them
function addActiveMenuItems(menu) {
menu.forEach(function (category) {
if (category.id === ReportingMenu_store.activeCategory.value) {
category.active = true;
(category.subcategories || []).forEach(function (subcat) {
if (subcat.id === ReportingMenu_store.activeSubcategory.value) {
subcat.active = true;
(subcat.subcategories || []).forEach(function (subsubcat) {
if (subsubcat.id === ReportingMenu_store.activeSubsubcategory.value) {
subsubcat.active = true;
}
});
}
});
}
});
return menu;
}
function reportingMenuModelAdapter() {
return {
get menu() {
return ReportingMenu_store.menu.value;
},
findSubcategory: ReportingMenu_store.findSubcategory.bind(ReportingMenu_store),
reloadMenuItems: function reloadMenuItems() {
return ReportingMenu_store.reloadMenuItems().then(function (p) {
return addActiveMenuItems(cloneThenApply(p));
});
},
fetchMenuItems: function fetchMenuItems() {
return ReportingMenu_store.fetchMenuItems().then(function (p) {
return addActiveMenuItems(cloneThenApply(p));
});
}
};
}
window.angular.module('piwikApp.service').factory('reportingMenuModel', reportingMenuModelAdapter);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPages/ReportingPages.store.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function reportingPagesModelAdapter() {
return {
get pages() {
return ReportingPages_store.pages.value;
},
findPageInCategory: function findPageInCategory() {
return clone(ReportingPages_store.findPageInCategory.apply(ReportingPages_store, arguments));
},
findPage: function findPage() {
return clone(ReportingPages_store.findPage.apply(ReportingPages_store, arguments));
},
reloadAllPages: function reloadAllPages() {
return ReportingPages_store.reloadAllPages().then(function (p) {
return cloneThenApply(p);
});
},
getAllPages: function getAllPages() {
return ReportingPages_store.getAllPages().then(function (p) {
return cloneThenApply(p);
});
}
};
}
window.angular.module('piwikApp.service').factory('reportingPagesModel', reportingPagesModelAdapter);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportMetadata/ReportMetadata.store.ts
function ReportMetadata_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function ReportMetadata_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function ReportMetadata_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) ReportMetadata_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) ReportMetadata_store_defineProperties(Constructor, staticProps); return Constructor; }
function ReportMetadata_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var ReportMetadata_store_ReportMetadataStore = /*#__PURE__*/function () {
function ReportMetadataStore() {
var _this = this;
ReportMetadata_store_classCallCheck(this, ReportMetadataStore);
ReportMetadata_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({
reports: []
}));
ReportMetadata_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(this.privateState));
ReportMetadata_store_defineProperty(this, "reports", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.state.reports;
}));
ReportMetadata_store_defineProperty(this, "reportsPromise", void 0);
}
ReportMetadata_store_createClass(ReportMetadataStore, [{
key: "findReport",
value: // TODO: it used to return an empty array when nothing was found, will that be an issue?
function findReport(reportModule, reportAction) {
return this.reports.value.find(function (r) {
return r.module === reportModule && r.action === reportAction;
});
}
}, {
key: "fetchReportMetadata",
value: function fetchReportMetadata() {
var _this2 = this;
if (!this.reportsPromise) {
this.reportsPromise = AjaxHelper_AjaxHelper.fetch({
method: 'API.getReportMetadata',
filter_limit: '-1',
idSite: Matomo_Matomo.idSite || src_MatomoUrl_MatomoUrl.parsed.value.idSite
}).then(function (response) {
_this2.privateState.reports = response;
return response;
});
}
return this.reportsPromise.then(function () {
return _this2.reports.value;
});
}
}]);
return ReportMetadataStore;
}();
/* harmony default export */ var ReportMetadata_store = (new ReportMetadata_store_ReportMetadataStore());
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportMetadata/ReportMetadata.store.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
window.angular.module('piwikApp.service').factory('reportMetadataModel', function () {
return {
get reports() {
return ReportMetadata_store.reports.value;
},
findReport: ReportMetadata_store.findReport.bind(ReportMetadata_store),
fetchReportMetadata: function fetchReportMetadata() {
return ReportMetadata_store.fetchReportMetadata().then(function (m) {
return cloneThenApply(m);
});
}
};
});
// 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/WidgetLoader/WidgetLoader.vue?vue&type=template&id=43c0d326
var WidgetLoadervue_type_template_id_43c0d326_hoisted_1 = {
key: 0
};
var WidgetLoadervue_type_template_id_43c0d326_hoisted_2 = {
key: 1,
class: "notification system notification-error"
};
var WidgetLoadervue_type_template_id_43c0d326_hoisted_3 = {
key: 0,
rel: "noreferrer noopener",
target: "_blank",
href: "https://matomo.org/faq/troubleshooting/faq_19489/"
};
var WidgetLoadervue_type_template_id_43c0d326_hoisted_4 = {
key: 2,
class: "notification system notification-error"
};
var WidgetLoadervue_type_template_id_43c0d326_hoisted_5 = {
class: "theWidgetContent",
ref: "widgetContent"
};
function WidgetLoadervue_type_template_id_43c0d326_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator");
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_["createVNode"])(_component_ActivityIndicator, {
"loading-message": _ctx.loadingMessage,
loading: _ctx.loading
}, null, 8, ["loading-message", "loading"]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [_ctx.widgetName ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("h2", WidgetLoadervue_type_template_id_43c0d326_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.widgetName), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.loadingFailedRateLimit ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", WidgetLoadervue_type_template_id_43c0d326_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ErrorRequest', '', '')) + " ", 1), _ctx.hasErrorFaqLink ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", WidgetLoadervue_type_template_id_43c0d326_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ErrorRequestFaqLink')), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", WidgetLoadervue_type_template_id_43c0d326_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ErrorRateLimit')), 1))], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.loadingFailed]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", WidgetLoadervue_type_template_id_43c0d326_hoisted_5, null, 512)]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetLoader/WidgetLoader.vue?vue&type=template&id=43c0d326
// 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/CoreHome/vue/src/WidgetLoader/WidgetLoader.vue?vue&type=script&lang=ts
/**
* Loads any custom widget or URL based on the given parameters.
*
* The currently active idSite, period, date and segment (if needed) is automatically
* appended to the parameters. If this widget is removed from the DOM and requests are in
* progress, these requests will be aborted. A loading message or an error message on failure
* is shown as well. It's kinda similar to ng-include but there it is not possible to
* listen to HTTP errors etc.
*
* Example:
*
*/
/* harmony default export */ var WidgetLoadervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
widgetParams: Object,
widgetName: String
},
components: {
ActivityIndicator: ActivityIndicator
},
data: function data() {
return {
loading: false,
loadingFailed: false,
loadingFailedRateLimit: false,
changeCounter: 0,
currentScope: null,
lastWidgetAbortController: null
};
},
watch: {
widgetParams: function widgetParams(parameters) {
if (parameters) {
this.loadWidgetUrl(parameters, this.changeCounter += 1);
}
}
},
computed: {
loadingMessage: function loadingMessage() {
if (!this.widgetName) {
return translate('General_LoadingData');
}
return translate('General_LoadingPopover', this.widgetName);
},
hasErrorFaqLink: function hasErrorFaqLink() {
var isGeneralSettingsAdminEnabled = Matomo_Matomo.config.enable_general_settings_admin;
var isPluginsAdminEnabled = Matomo_Matomo.config.enable_plugins_admin;
return Matomo_Matomo.hasSuperUserAccess && (isGeneralSettingsAdminEnabled || isPluginsAdminEnabled);
}
},
mounted: function mounted() {
if (this.widgetParams) {
this.loadWidgetUrl(this.widgetParams, this.changeCounter += 1);
}
},
beforeUnmount: function beforeUnmount() {
this.cleanupLastWidgetContent();
},
methods: {
abortHttpRequestIfNeeded: function abortHttpRequestIfNeeded() {
if (this.lastWidgetAbortController) {
this.lastWidgetAbortController.abort();
this.lastWidgetAbortController = null;
}
},
cleanupLastWidgetContent: function cleanupLastWidgetContent() {
var widgetContent = this.$refs.widgetContent;
Matomo_Matomo.helper.destroyVueComponent(widgetContent);
if (this.currentScope) {
this.currentScope.$destroy();
}
if (widgetContent) {
widgetContent.innerHTML = '';
}
},
getWidgetUrl: function getWidgetUrl(parameters) {
var urlParams = src_MatomoUrl_MatomoUrl.parsed.value;
var fullParameters = Object.assign({}, parameters || {});
var paramsToForward = Object.keys(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
idSite: '',
period: '',
date: '',
segment: '',
widget: ''
}));
paramsToForward.forEach(function (key) {
if (key === 'category' || key === 'subcategory') {
return;
}
if (!(key in fullParameters)) {
fullParameters[key] = urlParams[key];
}
});
if (Comparisons_store_instance.isComparisonEnabled()) {
fullParameters = Object.assign(Object.assign({}, fullParameters), {}, {
comparePeriods: urlParams.comparePeriods,
compareDates: urlParams.compareDates,
compareSegments: urlParams.compareSegments
});
}
if (!parameters || !('showtitle' in parameters)) {
fullParameters.showtitle = '1';
}
if (Matomo_Matomo.shouldPropagateTokenAuth && urlParams.token_auth) {
if (!Matomo_Matomo.broadcast.isWidgetizeRequestWithoutSession()) {
fullParameters.force_api_session = '1';
}
fullParameters.token_auth = urlParams.token_auth;
}
fullParameters.random = Math.floor(Math.random() * 10000);
return fullParameters;
},
loadWidgetUrl: function loadWidgetUrl(parameters, thisChangeId) {
var _this = this;
this.loading = true;
this.abortHttpRequestIfNeeded();
this.cleanupLastWidgetContent();
this.lastWidgetAbortController = new AbortController();
AjaxHelper_AjaxHelper.fetch(this.getWidgetUrl(parameters), {
format: 'html',
abortController: this.lastWidgetAbortController
}).then(function (response) {
if (thisChangeId !== _this.changeCounter || typeof response !== 'string') {
// another widget was requested meanwhile, ignore this response
return;
}
_this.lastWidgetAbortController = null;
_this.loading = false;
_this.loadingFailed = false;
var widgetContent = _this.$refs.widgetContent;
window.$(widgetContent).html(response);
var $content = window.$(widgetContent).children();
if (_this.widgetName) {
// we need to respect the widget title, which overwrites a possibly set report title
var $title = $content.find('> .card-content .card-title');
if (!$title.length) {
$title = $content.find('> h2');
}
if ($title.length) {
// required to use htmlEntities since it also escapes '{{' format items
$title.html(Matomo_Matomo.helper.htmlEntities(_this.widgetName));
}
}
var $rootScope = Matomo_Matomo.helper.getAngularDependency('$rootScope');
var scope = $rootScope.$new();
_this.currentScope = scope; // compile angularjs first since it will modify all dom nodes, breaking vue bindings
// if they are present
Matomo_Matomo.helper.compileAngularComponents($content, {
scope: scope
});
Matomo_Matomo.helper.compileVueEntryComponents($content);
Notifications_store.parseNotificationDivs();
setTimeout(function () {
Matomo_Matomo.postEvent('widget:loaded', {
parameters: parameters,
element: $content
});
});
}).catch(function (response) {
if (thisChangeId !== _this.changeCounter) {
// another widget was requested meanwhile, ignore this response
return;
}
_this.lastWidgetAbortController = null;
_this.cleanupLastWidgetContent();
_this.loading = false;
if (response.xhrStatus === 'abort') {
return;
}
if (response.status === 429) {
_this.loadingFailedRateLimit = true;
}
_this.loadingFailed = true;
});
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetLoader/WidgetLoader.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetLoader/WidgetLoader.vue
WidgetLoadervue_type_script_lang_ts.render = WidgetLoadervue_type_template_id_43c0d326_render
/* harmony default export */ var WidgetLoader = (WidgetLoadervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetLoader/WidgetLoader.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var WidgetLoader_adapter = (createAngularJsAdapter({
component: WidgetLoader,
scope: {
piwikWidgetLoader: {
vue: 'widgetParams',
angularJsBind: '='
},
widgetName: {
angularJsBind: '@'
}
},
directiveName: 'piwikWidgetLoader'
}));
// 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/WidgetContainer/WidgetContainer.vue?vue&type=template&id=41745e0f
function WidgetContainervue_type_template_id_41745e0f_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Widget = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Widget");
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_["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.actualContainer, function (widget, index) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
key: index
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Widget, {
widget: widget,
"prevent-recursion": true
}, null, 8, ["widget"])])]);
}), 128))]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue?vue&type=template&id=41745e0f
// 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/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue?vue&type=script&lang=ts
function WidgetContainervue_type_script_lang_ts_toConsumableArray(arr) { return WidgetContainervue_type_script_lang_ts_arrayWithoutHoles(arr) || WidgetContainervue_type_script_lang_ts_iterableToArray(arr) || WidgetContainervue_type_script_lang_ts_unsupportedIterableToArray(arr) || WidgetContainervue_type_script_lang_ts_nonIterableSpread(); }
function WidgetContainervue_type_script_lang_ts_nonIterableSpread() { 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 WidgetContainervue_type_script_lang_ts_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function WidgetContainervue_type_script_lang_ts_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return WidgetContainervue_type_script_lang_ts_arrayLikeToArray(arr); }
function WidgetContainervue_type_script_lang_ts_slicedToArray(arr, i) { return WidgetContainervue_type_script_lang_ts_arrayWithHoles(arr) || WidgetContainervue_type_script_lang_ts_iterableToArrayLimit(arr, i) || WidgetContainervue_type_script_lang_ts_unsupportedIterableToArray(arr, i) || WidgetContainervue_type_script_lang_ts_nonIterableRest(); }
function WidgetContainervue_type_script_lang_ts_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 WidgetContainervue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return WidgetContainervue_type_script_lang_ts_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 WidgetContainervue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function WidgetContainervue_type_script_lang_ts_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 WidgetContainervue_type_script_lang_ts_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 WidgetContainervue_type_script_lang_ts_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
// since we're recursing, don't import the plugin directly
var Widget = useExternalPluginComponent('CoreHome', 'Widget');
/* harmony default export */ var WidgetContainervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
container: {
type: Array,
required: true
}
},
components: {
Widget: Widget
},
computed: {
actualContainer: function actualContainer() {
var _container$, _widget$parameters, _widget$parameters2;
var container = this.container;
if (!(container !== null && container !== void 0 && (_container$ = container[0]) !== null && _container$ !== void 0 && _container$.parameters)) {
return container;
}
var _container = WidgetContainervue_type_script_lang_ts_slicedToArray(container, 1),
widget = _container[0];
var isWidgetized = ((_widget$parameters = widget.parameters) === null || _widget$parameters === void 0 ? void 0 : _widget$parameters.widget) === '1' || ((_widget$parameters2 = widget.parameters) === null || _widget$parameters2 === void 0 ? void 0 : _widget$parameters2.widget) === 1;
var isGraphEvolution = isWidgetized && widget.viewDataTable === 'graphEvolution'; // we hide the first title for Visits Overview with Graph and Goal Overview
var firstWidget = isGraphEvolution ? Object.assign(Object.assign({}, widget), {}, {
parameters: Object.assign(Object.assign({}, widget.parameters), {}, {
showtitle: '0'
})
}) : widget;
return [firstWidget].concat(WidgetContainervue_type_script_lang_ts_toConsumableArray(container.slice(1)));
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.vue
WidgetContainervue_type_script_lang_ts.render = WidgetContainervue_type_template_id_41745e0f_render
/* harmony default export */ var WidgetContainer = (WidgetContainervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetContainer/WidgetContainer.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var WidgetContainer_adapter = (createAngularJsAdapter({
component: WidgetContainer,
scope: {
container: {
angularJsBind: '=piwikWidgetContainer'
}
},
directiveName: 'piwikWidgetContainer'
}));
// 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/WidgetByDimensionContainer/WidgetByDimensionContainer.vue?vue&type=template&id=3681f928
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_1 = {
class: "reportsByDimensionView"
};
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_2 = {
class: "entityList"
};
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_3 = {
class: "listCircle"
};
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_4 = ["onClick"];
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_5 = {
class: "dimension"
};
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_6 = {
class: "reportContainer"
};
var WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_7 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
class: "clear"
}, null, -1);
function WidgetByDimensionContainervue_type_template_id_3681f928_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_WidgetLoader = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetLoader");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_2, [(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.widgetsByCategory, function (category) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: "dimensionCategory",
key: category.name
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(category.name) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_3, [(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"])(category.widgets, function (widget) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["reportDimension", {
activeDimension: _ctx.selectedWidget.uniqueId === widget.uniqueId
}]),
key: widget.uniqueId,
onClick: function onClick($event) {
return _ctx.selectWidget(widget);
}
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(widget.name), 1)], 10, WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_4);
}), 128))])]);
}), 128))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_6, [_ctx.selectedWidget.parameters ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_WidgetLoader, {
key: 0,
"widget-params": _ctx.selectedWidget.parameters,
class: "dimensionReport"
}, null, 8, ["widget-params"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]), WidgetByDimensionContainervue_type_template_id_3681f928_hoisted_7]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetByDimensionContainer/WidgetByDimensionContainer.vue?vue&type=template&id=3681f928
// 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/CoreHome/vue/src/WidgetByDimensionContainer/WidgetByDimensionContainer.vue?vue&type=script&lang=ts
function WidgetByDimensionContainervue_type_script_lang_ts_slicedToArray(arr, i) { return WidgetByDimensionContainervue_type_script_lang_ts_arrayWithHoles(arr) || WidgetByDimensionContainervue_type_script_lang_ts_iterableToArrayLimit(arr, i) || WidgetByDimensionContainervue_type_script_lang_ts_unsupportedIterableToArray(arr, i) || WidgetByDimensionContainervue_type_script_lang_ts_nonIterableRest(); }
function WidgetByDimensionContainervue_type_script_lang_ts_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 WidgetByDimensionContainervue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return WidgetByDimensionContainervue_type_script_lang_ts_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 WidgetByDimensionContainervue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function WidgetByDimensionContainervue_type_script_lang_ts_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 WidgetByDimensionContainervue_type_script_lang_ts_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 WidgetByDimensionContainervue_type_script_lang_ts_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
/* harmony default export */ var WidgetByDimensionContainervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
widgets: Array
},
components: {
WidgetLoader: WidgetLoader
},
data: function data() {
return {
selectedWidget: null
};
},
created: function created() {
var _this$widgetsSorted = WidgetByDimensionContainervue_type_script_lang_ts_slicedToArray(this.widgetsSorted, 1);
this.selectedWidget = _this$widgetsSorted[0];
},
computed: {
widgetsSorted: function widgetsSorted() {
return sortOrderables(this.widgets);
},
widgetsByCategory: function widgetsByCategory() {
var byCategory = {};
this.widgetsSorted.forEach(function (widget) {
var _widget$subcategory;
var category = (_widget$subcategory = widget.subcategory) === null || _widget$subcategory === void 0 ? void 0 : _widget$subcategory.name;
if (!category) {
return;
}
if (!byCategory[category]) {
byCategory[category] = {
name: category,
order: widget.order,
widgets: []
};
}
byCategory[category].widgets.push(widget);
});
return sortOrderables(Object.values(byCategory));
}
},
methods: {
selectWidget: function selectWidget(widget) {
// we copy to force rerender if selecting same widget
this.selectedWidget = Object.assign({}, widget);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetByDimensionContainer/WidgetByDimensionContainer.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetByDimensionContainer/WidgetByDimensionContainer.vue
WidgetByDimensionContainervue_type_script_lang_ts.render = WidgetByDimensionContainervue_type_template_id_3681f928_render
/* harmony default export */ var WidgetByDimensionContainer = (WidgetByDimensionContainervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/WidgetByDimensionContainer/WidgetByDimensionContainer.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var WidgetByDimensionContainer_adapter = (createAngularJsAdapter({
component: WidgetByDimensionContainer,
scope: {
widgets: {
angularJsBind: '=piwikWidgetByDimensionContainer',
transform: function transform(v) {
return v.widgets;
}
}
},
directiveName: 'piwikWidgetByDimensionContainer'
}));
// 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/Widget/Widget.vue?vue&type=template&id=23f53472
var Widgetvue_type_template_id_23f53472_hoisted_1 = ["id"];
var Widgetvue_type_template_id_23f53472_hoisted_2 = {
key: 1
};
var Widgetvue_type_template_id_23f53472_hoisted_3 = {
key: 2
};
function Widgetvue_type_template_id_23f53472_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_WidgetLoader = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetLoader");
var _component_WidgetContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetContainer");
var _component_WidgetByDimensionContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("WidgetByDimensionContainer");
var _directive_tooltips = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("tooltips");
return _ctx.actualWidget ? 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: 0,
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["matomo-widget", {
'isFirstWidgetInPage': _ctx.actualWidget.isFirstInPage
}]),
id: _ctx.actualWidget.uniqueId
}, [!_ctx.actualWidget.isContainer && _ctx.actualWidget.parameters ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_WidgetLoader, {
key: 0,
"widget-params": _ctx.actualWidget.parameters,
"widget-name": _ctx.actualWidget.name
}, null, 8, ["widget-params", "widget-name"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout !== 'ByDimension' && !this.preventRecursion ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_23f53472_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetContainer, {
container: _ctx.actualWidget.widgets
}, null, 8, ["container"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.actualWidget.isContainer && _ctx.actualWidget.layout === 'ByDimension' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Widgetvue_type_template_id_23f53472_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_WidgetByDimensionContainer, {
widgets: _ctx.actualWidget.widgets
}, null, 8, ["widgets"])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, Widgetvue_type_template_id_23f53472_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showWidget], [_directive_tooltips, {
content: _ctx.tooltipContent
}]]) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=template&id=23f53472
// 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/CoreHome/vue/src/Widget/Widget.vue?vue&type=script&lang=ts
function findContainer(widgetsByCategory, containerId) {
var widget = undefined;
Object.values(widgetsByCategory || {}).some(function (widgets) {
widget = widgets.find(function (w) {
var _w$parameters;
return w && w.isContainer && ((_w$parameters = w.parameters) === null || _w$parameters === void 0 ? void 0 : _w$parameters.containerId) === containerId;
});
return widget;
});
return widget;
}
/**
* Renders any kind of widget. If you have a widget and you want to have it rendered, use this
* directive. It will display a name on top and the actual widget below. It can handle any kind
* of widget, no matter whether it is a regular widget or a container.
*
* @param {Object} piwikWidget A widget object as returned by the WidgetMetadata API.
* @param {Object} piwikWidget.middlewareParameters If present, we will request a URL using the
* given parameters and only if this URL
* returns a JSON `true` the widget will be
* shown. Otherwise the widget won't be shown.
* @param {String} containerId If you do not have a widget object but a containerId we will find
* the correct widget object based on the given containerId. Be aware
* that we might not find the widget if it is for example not
* available for the current user or period/date.
* @param {Boolean} widgetized true if the widget is widgetized (eg in Dashboard or exported).
* In this case we will add a URL parameter widget=1 to all widgets.
* Eg sparklines will be then displayed one after another
* (vertically aligned) instead of two next to each other.
*
* Example:
*
* // in this case we will find the correct widget automatically
*
* // disables rating feature, no initial headline
*
*/
/* harmony default export */ var Widgetvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
widget: Object,
widgetized: Boolean,
containerid: String,
preventRecursion: Boolean
},
components: {
WidgetLoader: WidgetLoader,
WidgetContainer: WidgetContainer,
WidgetByDimensionContainer: WidgetByDimensionContainer
},
directives: {
Tooltips: Tooltips
},
data: function data() {
return {
showWidget: false
};
},
setup: function setup() {
function tooltipContent() {
var $this = window.$(this);
if ($this.attr('piwik-field') === '' || $this.hasClass('matomo-form-field')) {
// do not show it for form fields
return '';
}
var title = window.$(this).attr('title') || '';
return window.vueSanitize(title.replace(/\n/g, ' '));
}
return {
tooltipContent: tooltipContent
};
},
created: function created() {
var _this = this;
var actualWidget = this.actualWidget;
if (actualWidget && actualWidget.middlewareParameters) {
var params = actualWidget.middlewareParameters;
AjaxHelper_AjaxHelper.fetch(params).then(function (response) {
_this.showWidget = !!response;
});
} else {
this.showWidget = true;
}
},
computed: {
allWidgets: function allWidgets() {
return Widgets_store.widgets.value;
},
actualWidget: function actualWidget() {
var _this2 = this;
var widget = this.widget;
if (widget) {
var result = Object.assign({}, widget);
if (widget && widget.isReport && !widget.documentation) {
var report = ReportMetadata_store.findReport(widget.module, widget.action);
if (report && report.documentation) {
result.documentation = report.documentation;
}
}
return widget;
}
if (this.containerid) {
var containerWidget = findContainer(this.allWidgets, this.containerid);
if (containerWidget) {
var _result = Object.assign({}, containerWidget);
if (this.widgetized) {
_result.isFirstInPage = true;
_result.parameters = Object.assign(Object.assign({}, _result.parameters), {}, {
widget: '1'
});
var widgets = getWidgetChildren(_result);
if (widgets) {
_result.widgets = widgets.map(function (w) {
return Object.assign(Object.assign({}, w), {}, {
parameters: Object.assign(Object.assign({}, w.parameters), {}, {
widget: '1',
containerId: _this2.containerid
})
});
});
}
}
return _result;
}
}
return null;
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.vue
Widgetvue_type_script_lang_ts.render = Widgetvue_type_template_id_23f53472_render
/* harmony default export */ var Widget_Widget = (Widgetvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Widget/Widget.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var Widget_adapter = (createAngularJsAdapter({
component: Widget_Widget,
scope: {
widget: {
angularJsBind: '=?piwikWidget'
},
widgetized: {
angularJsBind: '=?'
},
containerid: {
angularJsBind: '@'
}
},
directiveName: 'piwikWidget'
}));
// 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/ReportingPage/ReportingPage.vue?vue&type=template&id=f0afbf38
var ReportingPagevue_type_template_id_f0afbf38_hoisted_1 = {
class: "reporting-page"
};
var ReportingPagevue_type_template_id_f0afbf38_hoisted_2 = {
key: 1,
class: "col s12 l6 leftWidgetColumn"
};
var ReportingPagevue_type_template_id_f0afbf38_hoisted_3 = {
key: 2,
class: "col s12 l6 rightWidgetColumn"
};
function ReportingPagevue_type_template_id_f0afbf38_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator");
var _component_Widget = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Widget");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportingPagevue_type_template_id_f0afbf38_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ActivityIndicator, {
loading: _ctx.loading
}, null, 8, ["loading"]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_NoSuchPage')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasNoPage]]), (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.widgets, function (widget) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: "row",
key: widget.uniqueId
}, [!widget.group ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_Widget, {
key: 0,
class: "col s12 fullWidgetColumn",
widget: widget
}, null, 8, ["widget"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), widget.group ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportingPagevue_type_template_id_f0afbf38_hoisted_2, [(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"])(widget.left, function (widgetInGroup) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_Widget, {
widget: widgetInGroup,
key: widgetInGroup.uniqueId
}, null, 8, ["widget"]);
}), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), widget.group ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportingPagevue_type_template_id_f0afbf38_hoisted_3, [(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"])(widget.right, function (widgetInGroup) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_Widget, {
widget: widgetInGroup,
key: widgetInGroup.uniqueId
}, null, 8, ["widget"]);
}), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]);
}), 128))]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.vue?vue&type=template&id=f0afbf38
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.store.ts
function ReportingPage_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function ReportingPage_store_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function ReportingPage_store_createClass(Constructor, protoProps, staticProps) { if (protoProps) ReportingPage_store_defineProperties(Constructor.prototype, protoProps); if (staticProps) ReportingPage_store_defineProperties(Constructor, staticProps); return Constructor; }
function ReportingPage_store_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function ReportingPage_store_toConsumableArray(arr) { return ReportingPage_store_arrayWithoutHoles(arr) || ReportingPage_store_iterableToArray(arr) || ReportingPage_store_unsupportedIterableToArray(arr) || ReportingPage_store_nonIterableSpread(); }
function ReportingPage_store_nonIterableSpread() { 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 ReportingPage_store_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return ReportingPage_store_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 ReportingPage_store_arrayLikeToArray(o, minLen); }
function ReportingPage_store_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function ReportingPage_store_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return ReportingPage_store_arrayLikeToArray(arr); }
function ReportingPage_store_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; }
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function shouldBeRenderedWithFullWidth(widget) {
// rather controller logic
if (widget.isContainer && widget.layout && widget.layout === 'ByDimension' || widget.viewDataTable === 'bydimension') {
return true;
}
if (widget.isWide) {
return true;
}
return widget.viewDataTable && (widget.viewDataTable === 'tableAllColumns' || widget.viewDataTable === 'sparklines' || widget.viewDataTable === 'graphEvolution');
}
function markWidgetsInFirstRowOfPage(widgets) {
if (widgets && widgets[0]) {
var newWidgets = ReportingPage_store_toConsumableArray(widgets);
var groupedWidgets = widgets[0];
if (groupedWidgets.group) {
newWidgets[0] = Object.assign(Object.assign({}, newWidgets[0]), {}, {
left: markWidgetsInFirstRowOfPage(groupedWidgets.left || []),
right: markWidgetsInFirstRowOfPage(groupedWidgets.right || [])
});
} else {
newWidgets[0] = Object.assign(Object.assign({}, newWidgets[0]), {}, {
isFirstInPage: true
});
}
return newWidgets;
}
return widgets;
}
var ReportingPage_store_ReportingPageStore = /*#__PURE__*/function () {
function ReportingPageStore() {
var _this = this;
ReportingPage_store_classCallCheck(this, ReportingPageStore);
ReportingPage_store_defineProperty(this, "privateState", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["reactive"])({}));
ReportingPage_store_defineProperty(this, "state", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["readonly"])(_this.privateState);
}));
ReportingPage_store_defineProperty(this, "page", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return _this.state.value.page;
}));
ReportingPage_store_defineProperty(this, "widgets", Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var page = _this.page.value;
if (!page) {
return [];
}
var widgets = [];
var reportsToIgnore = {};
var isIgnoredReport = function isIgnoredReport(widget) {
return widget.isReport && reportsToIgnore["".concat(widget.module, ".").concat(widget.action)];
};
var getRelatedReports = function getRelatedReports(widget) {
if (!widget.isReport) {
return [];
}
var report = ReportMetadata_store.findReport(widget.module, widget.action);
if (!report || !report.relatedReports) {
return [];
}
return report.relatedReports;
};
(page.widgets || []).forEach(function (widget) {
if (isIgnoredReport(widget)) {
return;
}
getRelatedReports(widget).forEach(function (report) {
reportsToIgnore["".concat(report.module, ".").concat(report.action)] = true;
});
widgets.push(widget);
});
widgets = sortOrderables(widgets);
if (widgets.length === 1) {
// if there is only one widget, we always display it full width
return markWidgetsInFirstRowOfPage(widgets);
}
var groupedWidgets = [];
for (var i = 0; i < widgets.length; i += 1) {
var widget = widgets[i];
if (shouldBeRenderedWithFullWidth(widget) || widgets[i + 1] && shouldBeRenderedWithFullWidth(widgets[i + 1])) {
groupedWidgets.push(Object.assign(Object.assign({}, widget), {}, {
widgets: sortOrderables(getWidgetChildren(widget))
}));
} else {
var counter = 0;
var left = [widget];
var right = [];
while (widgets[i + 1] && !shouldBeRenderedWithFullWidth(widgets[i + 1])) {
i += 1;
counter += 1;
if (counter % 2 === 0) {
left.push(widgets[i]);
} else {
right.push(widgets[i]);
}
}
groupedWidgets.push({
group: true,
left: left,
right: right
});
}
}
var sortedWidgets = markWidgetsInFirstRowOfPage(groupedWidgets);
return sortedWidgets;
}));
}
ReportingPage_store_createClass(ReportingPageStore, [{
key: "fetchPage",
value: function fetchPage(category, subcategory) {
var _this2 = this;
this.resetPage();
return Promise.all([ReportingPages_store.getAllPages(), ReportMetadata_store.fetchReportMetadata()]).then(function () {
_this2.privateState.page = ReportingPages_store.findPage(category, subcategory);
return _this2.page.value;
});
}
}, {
key: "resetPage",
value: function resetPage() {
this.privateState.page = undefined;
}
}]);
return ReportingPageStore;
}();
/* harmony default export */ var ReportingPage_store = (new ReportingPage_store_ReportingPageStore());
// 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/CoreHome/vue/src/ReportingPage/ReportingPage.vue?vue&type=script&lang=ts
function showOnlyRawDataNotification() {
var params = 'category=General_Visitors&subcategory=Live_VisitorLog';
var url = window.broadcast.buildReportingUrl(params);
Notifications_store.show({
id: 'onlyRawData',
animate: false,
context: 'info',
message: translate('CoreHome_PeriodHasOnlyRawData', ""), ''),
type: 'transient'
});
}
function hideOnlyRawDataNoticifation() {
Notifications_store.remove('onlyRawData');
}
/* harmony default export */ var ReportingPagevue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
components: {
ActivityIndicator: ActivityIndicator,
Widget: Widget_Widget
},
data: function data() {
return {
loading: false,
hasRawData: false,
hasNoVisits: false,
dateLastChecked: null,
hasNoPage: false
};
},
created: function created() {
var _this = this;
ReportingPage_store.resetPage();
this.loading = true; // we only set loading on initial load
this.renderInitialPage();
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return src_MatomoUrl_MatomoUrl.parsed.value;
}, function (newValue, oldValue) {
if (newValue.category === oldValue.category && newValue.subcategory === oldValue.subcategory && newValue.period === oldValue.period && newValue.date === oldValue.date && newValue.segment === oldValue.segment && JSON.stringify(newValue.compareDates) === JSON.stringify(oldValue.compareDates) && JSON.stringify(newValue.comparePeriods) === JSON.stringify(oldValue.comparePeriods) && JSON.stringify(newValue.compareSegments) === JSON.stringify(oldValue.compareSegments) && JSON.stringify(newValue.columns || '') === JSON.stringify(oldValue.columns || '')) {
// this page is already loaded
return;
}
if (newValue.date !== oldValue.date || newValue.period !== oldValue.period) {
hideOnlyRawDataNoticifation();
_this.dateLastChecked = null;
_this.hasRawData = false;
_this.hasNoVisits = false;
}
_this.renderPage(newValue.category, newValue.subcategory);
});
Matomo_Matomo.on('loadPage', function (category, subcategory) {
_this.renderPage(category, subcategory);
});
},
computed: {
widgets: function widgets() {
return ReportingPage_store.widgets.value;
}
},
methods: {
renderPage: function renderPage(category, subcategory) {
var _this2 = this;
if (!category || !subcategory) {
ReportingPage_store.resetPage();
this.loading = false;
return;
}
var parsedUrl = src_MatomoUrl_MatomoUrl.parsed.value;
var currentPeriod = parsedUrl.period;
var currentDate = parsedUrl.date;
try {
Periods_Periods.parse(currentPeriod, currentDate);
} catch (e) {
Notifications_store.show({
id: 'invalidDate',
animate: false,
context: 'error',
message: translate('CoreHome_DateInvalid'),
type: 'transient'
});
ReportingPage_store.resetPage();
this.loading = false;
return;
}
Notifications_store.remove('invalidDate');
Matomo_Matomo.postEvent('piwikPageChange', {});
Notifications_store.clearTransientNotifications();
if (Periods_Periods.parse(currentPeriod, currentDate).containsToday()) {
this.showOnlyRawDataMessageIfRequired();
}
var params = {
category: category,
subcategory: subcategory
};
Matomo_Matomo.postEvent('ReportingPage.loadPage', params);
if (params.promise) {
this.loading = true;
Promise.resolve(params.promise).finally(function () {
_this2.loading = false;
});
return;
}
ReportingPage_store.fetchPage(category, subcategory).then(function () {
var hasNoPage = !ReportingPage_store.page.value;
if (hasNoPage) {
var page = ReportingPages_store.findPageInCategory(category);
if (page && page.subcategory) {
src_MatomoUrl_MatomoUrl.updateHash(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
subcategory: page.subcategory.id
}));
return;
}
}
_this2.hasNoPage = hasNoPage;
_this2.loading = false;
});
},
renderInitialPage: function renderInitialPage() {
var parsed = src_MatomoUrl_MatomoUrl.parsed.value;
this.renderPage(parsed.category, parsed.subcategory);
},
showOnlyRawDataMessageIfRequired: function showOnlyRawDataMessageIfRequired() {
var _this3 = this;
if (this.hasRawData && this.hasNoVisits) {
showOnlyRawDataNotification();
}
var parsedUrl = src_MatomoUrl_MatomoUrl.parsed.value;
var segment = parsedUrl.segment;
if (segment) {
hideOnlyRawDataNoticifation();
return;
}
var subcategoryExceptions = ['Live_VisitorLog', 'General_RealTime', 'UserCountryMap_RealTimeMap', 'MediaAnalytics_TypeAudienceLog', 'MediaAnalytics_TypeRealTime', 'FormAnalytics_TypeRealTime', 'Goals_AddNewGoal'];
var categoryExceptions = ['HeatmapSessionRecording_Heatmaps', 'HeatmapSessionRecording_SessionRecordings', 'Marketplace_Marketplace'];
var subcategory = parsedUrl.subcategory;
var category = parsedUrl.category;
if (subcategoryExceptions.indexOf(subcategory) !== -1 || categoryExceptions.indexOf(category) !== -1 || subcategory.toLowerCase().indexOf('manage') !== -1) {
hideOnlyRawDataNoticifation();
return;
}
var minuteInMilliseconds = 60000;
if (this.dateLastChecked && new Date().valueOf() - this.dateLastChecked.valueOf() < minuteInMilliseconds) {
return;
}
AjaxHelper_AjaxHelper.fetch({
method: 'VisitsSummary.getVisits'
}).then(function (json) {
_this3.dateLastChecked = new Date();
if (json.value > 0) {
_this3.hasNoVisits = false;
hideOnlyRawDataNoticifation();
return undefined;
}
_this3.hasNoVisits = true;
if (_this3.hasRawData) {
showOnlyRawDataNotification();
return undefined;
}
return AjaxHelper_AjaxHelper.fetch({
method: 'Live.getLastVisitsDetails',
filter_limit: 1,
doNotFetchActions: 1
}).then(function (lastVisits) {
if (!lastVisits || lastVisits.length === 0) {
_this3.hasRawData = false;
hideOnlyRawDataNoticifation();
return;
}
_this3.hasRawData = true;
showOnlyRawDataNotification();
});
});
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.vue
ReportingPagevue_type_script_lang_ts.render = ReportingPagevue_type_template_id_f0afbf38_render
/* harmony default export */ var ReportingPage = (ReportingPagevue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportingPage/ReportingPage.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var ReportingPage_adapter = (createAngularJsAdapter({
component: ReportingPage,
directiveName: 'piwikReportingPage'
}));
// 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/ReportExport/ReportExportPopover.vue?vue&type=template&id=3d203950
var ReportExportPopovervue_type_template_id_3d203950_hoisted_1 = {
class: "report-export-popover row",
id: "reportExport"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_2 = {
class: "col l6"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_3 = {
name: "format"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_4 = {
name: "option_flat"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_5 = {
name: "option_expanded"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_6 = {
name: "option_format_metrics"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_7 = {
class: "col l6"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_8 = {
name: "filter_type"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_9 = {
class: "filter_limit"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_10 = {
name: "filter_limit_all"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_11 = {
key: 0,
name: "filter_limit"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_12 = {
key: 1,
name: "filter_limit"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_13 = {
class: "col l12"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_14 = ["value"];
var ReportExportPopovervue_type_template_id_3d203950_hoisted_15 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])("\n ");
var ReportExportPopovervue_type_template_id_3d203950_hoisted_16 = [ReportExportPopovervue_type_template_id_3d203950_hoisted_15];
var ReportExportPopovervue_type_template_id_3d203950_hoisted_17 = ["innerHTML"];
var ReportExportPopovervue_type_template_id_3d203950_hoisted_18 = {
class: "col l12"
};
var ReportExportPopovervue_type_template_id_3d203950_hoisted_19 = ["href", "title"];
function ReportExportPopovervue_type_template_id_3d203950_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Field = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Field");
var _directive_select_on_focus = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDirective"])("select-on-focus");
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'radio',
name: 'format',
title: _ctx.translate('CoreHome_ExportFormat'),
modelValue: _ctx.reportFormat,
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.reportFormat = $event;
}),
"full-width": true,
options: _ctx.availableReportFormats[_ctx.reportType]
}, null, 8, ["title", "modelValue", "options"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'checkbox',
name: 'option_flat',
title: _ctx.translate('CoreHome_FlattenReport'),
modelValue: _ctx.optionFlat,
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return _ctx.optionFlat = $event;
})
}, null, 8, ["title", "modelValue"]), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSubtables]])])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'checkbox',
name: 'option_expanded',
title: _ctx.translate('CoreHome_ExpandSubtables'),
modelValue: _ctx.optionExpanded,
"onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
return _ctx.optionExpanded = $event;
})
}, null, 8, ["title", "modelValue"]), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.hasSubtables && !_ctx.optionFlat]])])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'checkbox',
name: 'option_format_metrics',
title: _ctx.translate('CoreHome_FormatMetrics'),
modelValue: _ctx.optionFormatMetrics,
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return _ctx.optionFormatMetrics = $event;
})
}, null, 8, ["title", "modelValue"])])])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_7, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_8, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'radio',
name: 'filter_type',
title: _ctx.translate('CoreHome_ReportType'),
modelValue: _ctx.reportType,
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return _ctx.reportType = $event;
}),
"full-width": true,
options: _ctx.availableReportTypes
}, null, 8, ["title", "modelValue", "options"])])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_10, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'radio',
name: 'filter_limit_all',
title: _ctx.translate('CoreHome_RowLimit'),
modelValue: _ctx.reportLimitAll,
"onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
return _ctx.reportLimitAll = $event;
}),
"full-width": true,
options: _ctx.limitAllOptions
}, null, 8, ["title", "modelValue", "options"])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.maxFilterLimit || _ctx.maxFilterLimit <= 0]]), _ctx.reportLimitAll === 'no' && _ctx.maxFilterLimit <= 0 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_11, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'number',
name: "filter_limit",
min: 1,
modelValue: _ctx.reportLimit,
"onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
return _ctx.reportLimit = $event;
}),
"full-width": true
}, null, 8, ["modelValue"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.reportLimitAll === 'no' && _ctx.maxFilterLimit > 0 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_12, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Field, {
uicontrol: 'number',
name: 'filter_limit',
min: 1,
max: _ctx.maxFilterLimit,
modelValue: _ctx.reportLimit,
"onUpdate:modelValue": _cache[7] || (_cache[7] = function ($event) {
return _ctx.reportLimit = $event;
}),
value: _ctx.reportLimit,
"full-width": true,
title: _ctx.filterLimitTooltip
}, null, 8, ["max", "modelValue", "value", "title"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("textarea", {
readonly: "",
class: "exportFullUrl",
value: _ctx.exportLinkWithoutToken
}, ReportExportPopovervue_type_template_id_3d203950_hoisted_16, 8, ReportExportPopovervue_type_template_id_3d203950_hoisted_14), [[_directive_select_on_focus, {}]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
class: "tooltip",
innerHTML: _ctx.$sanitize(_ctx.translate('CoreHome_ExportTooltipWithLink', '', '', 'ENTER_YOUR_TOKEN_AUTH_HERE'))
}, null, 8, ReportExportPopovervue_type_template_id_3d203950_hoisted_17)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showUrl]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", ReportExportPopovervue_type_template_id_3d203950_hoisted_18, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
class: "btn",
href: _ctx.exportLink,
target: "_new",
title: _ctx.translate('CoreHome_ExportTooltip')
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Export')), 9, ReportExportPopovervue_type_template_id_3d203950_hoisted_19), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "javascript:",
onClick: _cache[8] || (_cache[8] = function ($event) {
return _ctx.showUrl = !_ctx.showUrl;
}),
class: "toggle-export-url"
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_ShowExportUrl')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !_ctx.showUrl]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('CoreHome_HideExportUrl')), 513), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.showUrl]])])])]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportExport/ReportExportPopover.vue?vue&type=template&id=3d203950
// 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/CoreHome/vue/src/ReportExport/ReportExportPopover.vue?vue&type=script&lang=ts
function ReportExportPopovervue_type_script_lang_ts_slicedToArray(arr, i) { return ReportExportPopovervue_type_script_lang_ts_arrayWithHoles(arr) || ReportExportPopovervue_type_script_lang_ts_iterableToArrayLimit(arr, i) || ReportExportPopovervue_type_script_lang_ts_unsupportedIterableToArray(arr, i) || ReportExportPopovervue_type_script_lang_ts_nonIterableRest(); }
function ReportExportPopovervue_type_script_lang_ts_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 ReportExportPopovervue_type_script_lang_ts_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return ReportExportPopovervue_type_script_lang_ts_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 ReportExportPopovervue_type_script_lang_ts_arrayLikeToArray(o, minLen); }
function ReportExportPopovervue_type_script_lang_ts_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 ReportExportPopovervue_type_script_lang_ts_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 ReportExportPopovervue_type_script_lang_ts_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var ReportExportPopovervue_type_script_lang_ts_Field = useExternalPluginComponent('CorePluginsAdmin', 'Field');
/* harmony default export */ var ReportExportPopovervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
components: {
Field: ReportExportPopovervue_type_script_lang_ts_Field
},
directives: {
SelectOnFocus: SelectOnFocus
},
props: {
hasSubtables: Boolean,
availableReportTypes: Object,
availableReportFormats: {
type: Object,
required: true
},
maxFilterLimit: Number,
limitAllOptions: Object,
dataTable: {
type: Object,
required: true
},
requestParams: [Object, String],
apiMethod: {
type: String,
required: true
},
initialReportType: {
type: String,
default: 'default'
},
initialReportLimit: {
type: [String, Number],
default: 100
},
initialReportLimitAll: {
type: String,
default: 'yes'
},
initialOptionFlat: {
type: Boolean,
default: false
},
initialOptionExpanded: {
type: Boolean,
default: true
},
initialOptionFormatMetrics: {
type: Boolean,
default: false
},
initialReportFormat: {
type: String,
default: 'XML'
}
},
data: function data() {
return {
showUrl: false,
reportFormat: this.initialReportFormat,
optionFlat: this.initialOptionFlat,
optionExpanded: this.initialOptionExpanded,
optionFormatMetrics: this.initialOptionFormatMetrics,
reportType: this.initialReportType,
reportLimitAll: this.initialReportLimitAll,
reportLimit: typeof this.initialReportLimit === 'string' ? parseInt(this.initialReportLimit, 10) : this.initialReportLimit
};
},
watch: {
reportType: function reportType(newVal) {
if (!this.availableReportFormats[newVal][this.reportFormat]) {
this.reportFormat = 'XML';
}
},
reportLimit: function reportLimit(newVal, oldVal) {
if (this.maxFilterLimit && this.maxFilterLimit > 0 && newVal > this.maxFilterLimit) {
this.reportLimit = oldVal;
}
}
},
computed: {
filterLimitTooltip: function filterLimitTooltip() {
var rowLimit = translate('CoreHome_RowLimit');
var computedMetricMax = this.maxFilterLimit ? translate('General_ComputedMetricMax', this.maxFilterLimit.toString()) : '';
return "".concat(rowLimit, " (").concat(computedMetricMax, ")");
},
exportLink: function exportLink() {
return this.getExportLink(true);
},
exportLinkWithoutToken: function exportLinkWithoutToken() {
return this.getExportLink(false);
}
},
methods: {
getExportLink: function getExportLink() {
var withToken = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
var reportFormat = this.reportFormat,
apiMethod = this.apiMethod,
reportType = this.reportType;
var dataTable = this.dataTable;
if (!reportFormat) {
return undefined;
}
var requestParams = {};
var limit = this.reportLimitAll === 'yes' ? -1 : this.reportLimit;
if (this.requestParams && typeof this.requestParams === 'string') {
requestParams = JSON.parse(this.requestParams);
}
var _dataTable$param = dataTable.param,
segment = _dataTable$param.segment,
label = _dataTable$param.label,
idGoal = _dataTable$param.idGoal,
idDimension = _dataTable$param.idDimension,
idSite = _dataTable$param.idSite;
var _dataTable$param2 = dataTable.param,
date = _dataTable$param2.date,
period = _dataTable$param2.period;
if (reportFormat === 'RSS') {
date = 'last10';
}
if (typeof dataTable.param.dateUsedInGraph !== 'undefined') {
date = dataTable.param.dateUsedInGraph;
}
var formatsUseDayNotRange = Matomo_Matomo.config.datatable_export_range_as_day.toLowerCase();
if (formatsUseDayNotRange.indexOf(reportFormat.toLowerCase()) !== -1 && dataTable.param.period === 'range') {
period = 'day';
} // Below evolution graph, show daily exports
if (dataTable.param.period === 'range' && dataTable.param.viewDataTable === 'graphEvolution') {
period = 'day';
}
var exportUrlParams = {
module: 'API',
format: reportFormat,
idSite: idSite,
period: period,
date: date
};
if (reportType === 'processed') {
exportUrlParams.method = 'API.getProcessedReport';
var _apiMethod$split = apiMethod.split('.');
var _apiMethod$split2 = ReportExportPopovervue_type_script_lang_ts_slicedToArray(_apiMethod$split, 2);
exportUrlParams.apiModule = _apiMethod$split2[0];
exportUrlParams.apiAction = _apiMethod$split2[1];
} else {
exportUrlParams.method = apiMethod;
}
if (dataTable.param.compareDates && dataTable.param.compareDates.length) {
exportUrlParams.compareDates = dataTable.param.compareDates;
exportUrlParams.compare = '1';
}
if (dataTable.param.comparePeriods && dataTable.param.comparePeriods.length) {
exportUrlParams.comparePeriods = dataTable.param.comparePeriods;
exportUrlParams.compare = '1';
}
if (dataTable.param.compareSegments && dataTable.param.compareSegments.length) {
exportUrlParams.compareSegments = dataTable.param.compareSegments;
exportUrlParams.compare = '1';
}
if (typeof dataTable.param.filter_pattern !== 'undefined') {
exportUrlParams.filter_pattern = dataTable.param.filter_pattern;
}
if (typeof dataTable.param.filter_pattern_recursive !== 'undefined') {
exportUrlParams.filter_pattern_recursive = dataTable.param.filter_pattern_recursive;
}
if (window.$.isPlainObject(requestParams)) {
Object.entries(requestParams).forEach(function (_ref) {
var _ref2 = ReportExportPopovervue_type_script_lang_ts_slicedToArray(_ref, 2),
index = _ref2[0],
param = _ref2[1];
var value = param;
if (value === true) {
value = 1;
} else if (value === false) {
value = 0;
}
exportUrlParams[index] = value;
});
}
if (this.optionFlat) {
exportUrlParams.flat = 1;
if (typeof dataTable.param.include_aggregate_rows !== 'undefined' && dataTable.param.include_aggregate_rows === '1') {
exportUrlParams.include_aggregate_rows = 1;
}
}
if (!this.optionFlat && this.optionExpanded) {
exportUrlParams.expanded = 1;
}
if (this.optionFormatMetrics) {
exportUrlParams.format_metrics = 1;
}
if (dataTable.param.pivotBy) {
exportUrlParams.pivotBy = dataTable.param.pivotBy;
exportUrlParams.pivotByColumnLimit = 20;
if (dataTable.props.pivot_by_column) {
exportUrlParams.pivotByColumn = dataTable.props.pivot_by_column;
}
}
if (reportFormat === 'CSV' || reportFormat === 'TSV' || reportFormat === 'RSS') {
exportUrlParams.translateColumnNames = 1;
exportUrlParams.language = Matomo_Matomo.language;
}
if (typeof segment !== 'undefined') {
exportUrlParams.segment = decodeURIComponent(segment);
} // Export Goals specific reports
if (typeof idGoal !== 'undefined' && idGoal !== '-1') {
exportUrlParams.idGoal = idGoal;
} // Export Dimension specific reports
if (typeof idDimension !== 'undefined' && idDimension !== '-1') {
exportUrlParams.idDimension = idDimension;
}
if (label) {
var labelParts = label.split(',');
if (labelParts.length > 1) {
exportUrlParams.label = labelParts;
} else {
var _labelParts = ReportExportPopovervue_type_script_lang_ts_slicedToArray(labelParts, 1);
exportUrlParams.label = _labelParts[0];
}
}
exportUrlParams.token_auth = 'ENTER_YOUR_TOKEN_AUTH_HERE';
if (withToken === true) {
exportUrlParams.token_auth = Matomo_Matomo.token_auth;
exportUrlParams.force_api_session = 1;
}
exportUrlParams.filter_limit = limit;
var prefix = window.location.href.split('?')[0];
return "".concat(prefix, "?").concat(src_MatomoUrl_MatomoUrl.stringify(exportUrlParams));
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportExport/ReportExportPopover.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportExport/ReportExportPopover.vue
ReportExportPopovervue_type_script_lang_ts.render = ReportExportPopovervue_type_template_id_3d203950_render
/* harmony default export */ var ReportExportPopover = (ReportExportPopovervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportExport/ReportExport.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var ReportExport_window = window,
ReportExport_$ = ReportExport_window.$;
/* harmony default export */ var ReportExport = ({
mounted: function mounted(el, binding) {
el.addEventListener('click', function () {
var popoverParamBackup = src_MatomoUrl_MatomoUrl.hashParsed.value.popover;
var dataTable = ReportExport_$(el).closest('[data-report]').data('uiControlObject');
var popover = window.Piwik_Popover.showLoading('Export');
var formats = binding.value.reportFormats;
var reportLimit = dataTable.param.filter_limit;
if (binding.value.maxFilterLimit > 0) {
reportLimit = Math.min(reportLimit, binding.value.maxFilterLimit);
}
var optionFlat = dataTable.param.flat === true || dataTable.param.flat === 1 || dataTable.param.flat === '1';
var props = {
initialReportType: 'default',
initialReportLimit: reportLimit > 0 ? reportLimit : 100,
initialReportLimitAll: reportLimit === -1 ? 'yes' : 'no',
initialOptionFlat: optionFlat,
initialOptionExpanded: true,
initialOptionFormatMetrics: false,
hasSubtables: optionFlat || dataTable.numberOfSubtables > 0,
availableReportFormats: {
default: formats,
processed: {
XML: formats.XML,
JSON: formats.JSON
}
},
availableReportTypes: {
default: translate('CoreHome_StandardReport'),
processed: translate('CoreHome_ReportWithMetadata')
},
limitAllOptions: {
yes: translate('General_All'),
no: translate('CoreHome_CustomLimit')
},
maxFilterLimit: binding.value.maxFilterLimit,
dataTable: dataTable,
requestParams: binding.value.requestParams,
apiMethod: binding.value.apiMethod
};
var app = createVueApp({
template: "\n ",
data: function data() {
return {
bind: props
};
}
});
app.component('popover', ReportExportPopover);
var mountPoint = document.createElement('div');
app.mount(mountPoint);
var reportTitle = binding.value.reportTitle;
window.Piwik_Popover.setTitle("".concat(translate('General_Export'), " ").concat(Matomo_Matomo.helper.htmlEntities(reportTitle)));
window.Piwik_Popover.setContent(mountPoint);
window.Piwik_Popover.onClose(function () {
app.unmount();
if (popoverParamBackup !== '') {
setTimeout(function () {
src_MatomoUrl_MatomoUrl.updateHash(Object.assign(Object.assign({}, src_MatomoUrl_MatomoUrl.hashParsed.value), {}, {
popover: popoverParamBackup
}));
if (binding.value.onClose) {
binding.value.onClose();
}
}, 100);
}
});
setTimeout(function () {
popover.dialog();
ReportExport_$('.exportFullUrl, .btn', popover).tooltip({
track: true,
show: false,
hide: false
});
}, 100);
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ReportExport/ReportExport.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikReportExport($timeout) {
return {
restrict: 'A',
scope: {
reportTitle: '@',
requestParams: '@',
reportFormats: '@',
apiMethod: '@',
maxFilterLimit: '@'
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
link: function piwikReportExportLink(scope, element) {
var binding = {
instance: null,
value: {
reportTitle: scope.reportTitle,
requestParams: scope.requestParams,
reportFormats: typeof scope.reportFormats === 'string' ? JSON.parse(scope.reportFormats) : scope.reportFormats,
apiMethod: scope.apiMethod,
maxFilterLimit: parseInt(scope.maxFilterLimit, 10),
onClose: function onClose() {
$timeout(function () {
window.angular.element(document).injector().get('$rootScope').$apply();
}, 10);
}
},
oldValue: null,
modifiers: {},
dir: {}
};
ReportExport.mounted(element[0], binding);
}
};
}
piwikReportExport.$inject = ['$timeout'];
window.angular.module('piwikApp').directive('piwikReportExport', piwikReportExport);
// 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/Sparkline/Sparkline.vue?vue&type=template&id=25e2c9f0
var Sparklinevue_type_template_id_25e2c9f0_hoisted_1 = ["src"];
function Sparklinevue_type_template_id_25e2c9f0_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"])("img", {
src: _ctx.sparklineUrl
}, null, 8, Sparklinevue_type_template_id_25e2c9f0_hoisted_1);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Sparkline/Sparkline.vue?vue&type=template&id=25e2c9f0
// 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/CoreHome/vue/src/Sparkline/Sparkline.vue?vue&type=script&lang=ts
/* harmony default export */ var Sparklinevue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
seriesIndices: Array,
params: Object
},
data: function data() {
return {
isWidget: false
};
},
mounted: function mounted() {
this.isWidget = !!this.$el.closest('[widgetId]');
},
computed: {
sparklineUrl: function sparklineUrl() {
var seriesIndices = this.seriesIndices,
params = this.params;
var sparklineColors = Matomo_Matomo.getSparklineColors();
if (seriesIndices) {
sparklineColors.lineColor = sparklineColors.lineColor.filter(function (c, index) {
return seriesIndices.indexOf(index) !== -1;
});
}
var colors = JSON.stringify(sparklineColors);
var defaultParams = {
forceView: '1',
viewDataTable: 'sparkline',
widget: this.isWidget ? '1' : '0',
showtitle: '1',
colors: colors,
random: Date.now(),
date: this.defaultDate,
// mixinDefaultGetParams() will use the raw, encoded value from the URL (legacy behavior),
// which means MatomoUrl.stringify() will end up double encoding it if we don't set it
// ourselves here.
segment: src_MatomoUrl_MatomoUrl.parsed.value.segment
};
var helper = new AjaxHelper_AjaxHelper();
var urlParams = helper.mixinDefaultGetParams(Object.assign(Object.assign({}, defaultParams), params)); // Append the token_auth to the URL if it was set (eg. embed dashboard)
var token_auth = src_MatomoUrl_MatomoUrl.parsed.value.token_auth;
if (token_auth && token_auth.length && Matomo_Matomo.shouldPropagateTokenAuth) {
urlParams.token_auth = token_auth;
}
return "?".concat(src_MatomoUrl_MatomoUrl.stringify(urlParams));
},
defaultDate: function defaultDate() {
if (Matomo_Matomo.period === 'range') {
return "".concat(Matomo_Matomo.startDateString, ",").concat(Matomo_Matomo.endDateString);
}
var dateRange = Range_RangePeriod.getLastNRange(Matomo_Matomo.period, 30, Matomo_Matomo.currentDateString).getDateRange();
var piwikMinDate = new Date(Matomo_Matomo.minDateYear, Matomo_Matomo.minDateMonth - 1, Matomo_Matomo.minDateDay);
if (dateRange[0] < piwikMinDate) {
dateRange[0] = piwikMinDate;
}
var startDateStr = format(dateRange[0]);
var endDateStr = format(dateRange[1]);
return "".concat(startDateStr, ",").concat(endDateStr);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Sparkline/Sparkline.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Sparkline/Sparkline.vue
Sparklinevue_type_script_lang_ts.render = Sparklinevue_type_template_id_25e2c9f0_render
/* harmony default export */ var Sparkline = (Sparklinevue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Sparkline/Sparkline.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var Sparkline_adapter = (createAngularJsAdapter({
component: Sparkline,
scope: {
seriesIndices: {
angularJsBind: '<'
},
params: {
angularJsBind: '<'
}
},
directiveName: 'piwikSparkline',
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/Progressbar/Progressbar.vue?vue&type=template&id=0048ddd7
var Progressbarvue_type_template_id_0048ddd7_hoisted_1 = {
class: "progressbar"
};
var Progressbarvue_type_template_id_0048ddd7_hoisted_2 = {
class: "progress"
};
var Progressbarvue_type_template_id_0048ddd7_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
src: "plugins/Morpheus/images/loading-blue.gif",
style: {
"margin-right": "3.5px"
}
}, null, -1);
var Progressbarvue_type_template_id_0048ddd7_hoisted_4 = ["innerHTML"];
function Progressbarvue_type_template_id_0048ddd7_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", Progressbarvue_type_template_id_0048ddd7_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Progressbarvue_type_template_id_0048ddd7_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
class: "determinate",
style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])([{
"width": "0"
}, {
width: "".concat(_ctx.actualProgress, "%")
}])
}, null, 4)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, [Progressbarvue_type_template_id_0048ddd7_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: "label",
innerHTML: _ctx.$sanitize(_ctx.label)
}, null, 8, Progressbarvue_type_template_id_0048ddd7_hoisted_4)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !!_ctx.label]])]);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Progressbar/Progressbar.vue?vue&type=template&id=0048ddd7
// 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/CoreHome/vue/src/Progressbar/Progressbar.vue?vue&type=script&lang=ts
/* harmony default export */ var Progressbarvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
progress: {
type: Number,
required: true
},
label: String
},
computed: {
actualProgress: function actualProgress() {
if (this.progress > 100) {
return 100;
}
if (this.progress < 0) {
return 0;
}
return this.progress;
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Progressbar/Progressbar.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Progressbar/Progressbar.vue
Progressbarvue_type_script_lang_ts.render = Progressbarvue_type_template_id_0048ddd7_render
/* harmony default export */ var Progressbar = (Progressbarvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/Progressbar/Progressbar.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var Progressbar_adapter = (createAngularJsAdapter({
component: Progressbar,
scope: {
progress: {
angularJsBind: '='
},
label: {
angularJsBind: '='
}
},
directiveName: 'piwikProgressbar'
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentIntro/ContentIntro.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var ContentIntro = ({
mounted: function mounted(el) {
el.classList.add('piwik-content-intro');
},
updated: function updated(el) {
// classes can be overwritten when elements bind to :class, nextTick + using
// updated avoids this problem (and doing in both mounted and updated avoids a temporary
// state where the classes aren't added)
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
el.classList.add('piwik-content-intro');
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentIntro/ContentIntro.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikContentIntro() {
return {
restrict: 'A',
link: function piwikContentIntroLink(scope, element) {
ContentIntro.mounted(element[0]);
}
};
}
window.angular.module('piwikApp').directive('piwikContentIntro', piwikContentIntro);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentTable/ContentTable.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/* harmony default export */ var ContentTable = ({
mounted: function mounted(el) {
el.classList.add('card', 'card-table', 'entityTable');
},
updated: function updated(el) {
// classes can be overwritten when elements bind to :class, nextTick + using
// updated avoids this problem (and doing in both mounted and updated avoids a temporary
// state where the classes aren't added)
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
el.classList.add('card', 'card-table', 'entityTable');
});
}
});
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/ContentTable/ContentTable.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
function piwikContentTable() {
return {
restrict: 'A',
link: function piwikContentTableLink(scope, element) {
ContentTable.mounted(element[0]);
}
};
}
window.angular.module('piwikApp').directive('piwikContentTable', piwikContentTable);
// 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/AjaxForm/AjaxForm.vue?vue&type=template&id=00d5220c
var AjaxFormvue_type_template_id_00d5220c_hoisted_1 = {
ref: "root"
};
function AjaxFormvue_type_template_id_00d5220c_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", AjaxFormvue_type_template_id_00d5220c_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default", {
formData: _ctx.formData,
submitApiMethod: _ctx.submitApiMethod,
sendJsonPayload: _ctx.sendJsonPayload,
noErrorNotification: _ctx.noErrorNotification,
noSuccessNotification: _ctx.noSuccessNotification,
submitForm: _ctx.submitForm,
isSubmitting: _ctx.isSubmitting,
successfulPostResponse: _ctx.successfulPostResponse,
errorPostResponse: _ctx.errorPostResponse
})], 512);
}
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxForm/AjaxForm.vue?vue&type=template&id=00d5220c
// 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/CoreHome/vue/src/AjaxForm/AjaxForm.vue?vue&type=script&lang=ts
var AjaxFormvue_type_script_lang_ts_window = window,
AjaxFormvue_type_script_lang_ts_$ = AjaxFormvue_type_script_lang_ts_window.$;
/**
* Example usage:
*
*
*
*
*
*
*
*
* Data does not flow upwards in any way. :form-data is used for submitForm(), and the
* containing component binds to properties of the object in controls to fill the object.
*/
/* harmony default export */ var AjaxFormvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
formData: {
type: Object,
required: true
},
submitApiMethod: {
type: String,
required: true
},
sendJsonPayload: Boolean,
noErrorNotification: Boolean,
noSuccessNotification: Boolean
},
data: function data() {
return {
isSubmitting: false,
successfulPostResponse: null,
errorPostResponse: null
};
},
emits: ['update:modelValue'],
mounted: function mounted() {
var _this = this;
// on submit call controller submit method
AjaxFormvue_type_script_lang_ts_$(this.$refs.root).on('click', 'input[type=submit]', function () {
_this.submitForm();
});
},
methods: {
submitForm: function submitForm() {
var _this2 = this;
this.successfulPostResponse = null;
this.errorPostResponse = null;
var postParams = this.formData;
if (this.sendJsonPayload) {
postParams = {
data: JSON.stringify(this.formData)
};
}
this.isSubmitting = true;
AjaxHelper_AjaxHelper.post({
module: 'API',
method: this.submitApiMethod
}, postParams, {
createErrorNotification: !this.noErrorNotification
}).then(function (response) {
_this2.successfulPostResponse = response;
if (!_this2.noSuccessNotification) {
var notificationInstanceId = Notifications_store.show({
message: translate('General_YourChangesHaveBeenSaved'),
context: 'success',
type: 'toast',
id: 'ajaxHelper'
});
Notifications_store.scrollToNotification(notificationInstanceId);
}
}).catch(function (error) {
_this2.errorPostResponse = error.message;
}).finally(function () {
_this2.isSubmitting = false;
});
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxForm/AjaxForm.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxForm/AjaxForm.vue
AjaxFormvue_type_script_lang_ts.render = AjaxFormvue_type_template_id_00d5220c_render
/* harmony default export */ var AjaxForm = (AjaxFormvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreHome/vue/src/AjaxForm/AjaxForm.adapter.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var AjaxForm_adapter_window = window,
AjaxForm_adapter_$ = AjaxForm_adapter_window.$;
/**
* AngularJS directive that manages an AJAX form.
*
* This directive will detect inputs & selects defined within an element and when a
* submit button is clicked, will post data from the inputs & selects to a Piwik API method.
*
* When the POST request is finished the result will, by default, be displayed as a
* notification.
*
* This directive accepts the following attributes:
*
* - **submit-api-method**: **required** The Piwik API method that handles the POST request.
* - **send-json-payload**: Whether to send the data as a form encoded URL or to send it as JSON.
* If sending as JSON, the payload will still be a form encoded value,
* but will contain a JSON object like `{data: {...form data...}}`.
*
* This is for forms with lots of fields where having the same number
* of parameters in an API method would not be desired.
* - **no-error-notification**: If true, does not display an error notification if the AJAX post
* fails.
* - **no-success-notification**: If true, does not display an error notification if the AJAX
* results in success.
*
* **Custom Success/Error Handling**
*
* On success/failure, the response will be stored in controller scope. Child elements of a
* piwik-ajax-form element can access this data, and thus, can customize what happens when
* a form submit succeeds/fails.
*
* See the ajax-form.controller.js file for more info.
*
* Usage:
*
*
*
*
My Form
*
*
*
*
*
ERROR!
*
* @deprecated
*/
function piwikAjaxForm($parse) {
return {
restrict: 'A',
scope: {
submitApiMethod: '=',
sendJsonPayload: '=',
noErrorNotification: '=',
noSuccessNotification: '=',
useCustomDataBinding: '='
},
require: '?ngModel',
transclude: true,
compile: function piwikAjaxFormCompile(compileElement, compileAttrs) {
compileAttrs.noErrorNotification = !!compileAttrs.noErrorNotification; // eslint-disable-next-line @typescript-eslint/no-explicit-any
return function piwikAjaxFormLink(scope, element, attrs, ngModel, transclude) {
if (!scope.submitApiMethod) {
throw new Error('submitApiMethod is required');
}
scope.ajaxForm = {};
scope.ajaxForm.submitApiMethod = scope.submitApiMethod;
scope.ajaxForm.sendJsonPayload = scope.sendJsonPayload;
scope.ajaxForm.noErrorNotification = scope.noErrorNotification;
scope.ajaxForm.noSuccessNotification = scope.noSuccessNotification;
scope.ajaxForm.data = {}; // if a model is supplied, initiate form data w/ model value
if (ngModel) {
// probably redundant, but I cannot find another way to get the ng model value here
var ngModelGetter = $parse(attrs.ngModel);
scope.ajaxForm.data = ngModelGetter(scope.$parent);
}
var specialBindDirective = {
mounted: function mounted(el, binding) {
scope.ajaxForm.submitForm = binding.value.submitForm;
}
};
var rootTemplate = "\n \n \n \n \n ";
var app = createVueApp({
template: rootTemplate,
data: function data() {
return scope.ajaxForm;
},
setup: function setup() {
var transcludeTarget = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(null);
return {
transcludeTarget: transcludeTarget
};
}
});
app.component('AjaxForm', AjaxForm);
app.directive('SpecialBindDirective', specialBindDirective);
var vm = app.mount(element[0]);
element.on('$destroy', function () {
app.unmount();
});
function setFormValueFromInput(inputElement, skipScopeApply) {
var name = AjaxForm_adapter_$(inputElement).attr('name');
var val;
if (AjaxForm_adapter_$(inputElement).attr('type') === 'checkbox') {
val = AjaxForm_adapter_$(inputElement).is(':checked');
} else {
val = AjaxForm_adapter_$(inputElement).val();
}
scope.ajaxForm.data[name] = val;
if (!skipScopeApply) {
setTimeout(function () {
scope.$apply();
}, 0);
}
} // on change of any input, change appropriate value in model, but only if requested
if (!scope.useCustomDataBinding) {
element.on('change', 'input,select', function (event) {
setFormValueFromInput(event.target);
});
} // make sure child elements can access this directive's scope
// eslint-disable-next-line @typescript-eslint/no-explicit-any
transclude(scope, function (clone, transcludeScope) {
if (!transcludeScope.useCustomDataBinding) {
var $inputs = clone.find('input,select').not('[type=submit]'); // initialize form data to input values (include