Ubuntu
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("CoreHome"), require("vue"));
else if(typeof define === 'function' && define.amd)
define(["CoreHome", ], factory);
else if(typeof exports === 'object')
exports["CoreVisualizations"] = factory(require("CoreHome"), require("vue"));
else
root["CoreVisualizations"] = factory(root["CoreHome"], root["Vue"]);
})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__19dc__, __WEBPACK_EXTERNAL_MODULE__8bbf__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "plugins/CoreVisualizations/vue/dist/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "fae3");
/******/ })
/************************************************************************/
/******/ ({
/***/ "19dc":
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__19dc__;
/***/ }),
/***/ "8bbf":
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;
/***/ }),
/***/ "fae3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "SeriesPicker", function() { return /* reexport */ SeriesPicker; });
__webpack_require__.d(__webpack_exports__, "SingleMetricView", function() { return /* reexport */ SingleMetricView; });
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.
if (typeof window !== 'undefined') {
var currentScript = window.document.currentScript
if (false) { var getCurrentScript; }
var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
if (src) {
__webpack_require__.p = src[1] // eslint-disable-line
}
}
// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = (null);
// EXTERNAL MODULE: external "CoreHome"
var external_CoreHome_ = __webpack_require__("19dc");
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf");
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.vue?vue&type=template&id=bd202f38
var _hoisted_1 = {
key: 0,
class: "jqplot-seriespicker-popover"
};
var _hoisted_2 = {
class: "headline"
};
var _hoisted_3 = ["onClick"];
var _hoisted_4 = ["type", "checked"];
var _hoisted_5 = {
key: 0,
class: "headline recordsToPlot"
};
var _hoisted_6 = ["onClick"];
var _hoisted_7 = ["type", "checked"];
function SeriesPickervue_type_template_id_bd202f38_render(_ctx, _cache, $props, $setup, $data, $options) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["jqplot-seriespicker", {
open: _ctx.isPopupVisible
}]),
onMouseenter: _cache[1] || (_cache[1] = function ($event) {
return _ctx.isPopupVisible = true;
}),
onMouseleave: _cache[2] || (_cache[2] = function ($event) {
return _ctx.onLeavePopup();
})
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
href: "#",
onClick: _cache[0] || (_cache[0] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function () {}, ["prevent", "stop"]))
}, " + "), _ctx.isPopupVisible ? (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_["createElementVNode"])("p", _hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate(_ctx.multiselect ? 'General_MetricsToPlot' : 'General_MetricToPlot')), 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.selectableColumns, function (columnConfig) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", {
class: "pickColumn",
onClick: function onClick($event) {
return _ctx.optionSelected(columnConfig.column, _ctx.columnStates);
},
key: columnConfig.column
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
class: "select",
type: _ctx.multiselect ? 'checkbox' : 'radio',
checked: !!_ctx.columnStates[columnConfig.column]
}, null, 8, _hoisted_4), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(columnConfig.translation), 1)])], 8, _hoisted_3);
}), 128)), _ctx.selectableRows.length ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", _hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_RecordsToPlot')), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), (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.selectableRows, function (rowConfig) {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", {
class: "pickRow",
onClick: function onClick($event) {
return _ctx.optionSelected(rowConfig.matcher, _ctx.rowStates);
},
key: rowConfig.matcher
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
class: "select",
type: _ctx.multiselect ? 'checkbox' : 'radio',
checked: !!_ctx.rowStates[rowConfig.matcher]
}, null, 8, _hoisted_7), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(rowConfig.label), 1)])], 8, _hoisted_6);
}), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 34);
}
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.vue?vue&type=template&id=bd202f38
// 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/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.vue?vue&type=script&lang=ts
function getInitialOptionStates(allOptions, selectedOptions) {
var states = {};
allOptions.forEach(function (columnConfig) {
var name = columnConfig.column || columnConfig.matcher;
states[name] = false;
});
selectedOptions.forEach(function (column) {
states[column] = true;
});
return states;
}
function arrayEqual(lhs, rhs) {
if (lhs.length !== rhs.length) {
return false;
}
return lhs.filter(function (element) {
return rhs.indexOf(element) === -1;
}).length === 0;
}
function unselectOptions(optionStates) {
Object.keys(optionStates).forEach(function (optionName) {
optionStates[optionName] = false;
});
}
function getSelected(optionStates) {
return Object.keys(optionStates).filter(function (optionName) {
return !!optionStates[optionName];
});
}
/* harmony default export */ var SeriesPickervue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
multiselect: Boolean,
selectableColumns: {
type: Array,
default: function _default() {
return [];
}
},
selectableRows: {
type: Array,
default: function _default() {
return [];
}
},
selectedColumns: {
type: Array,
default: function _default() {
return [];
}
},
selectedRows: {
type: Array,
default: function _default() {
return [];
}
}
},
data: function data() {
return {
isPopupVisible: false,
columnStates: getInitialOptionStates(this.selectableColumns, this.selectedColumns),
rowStates: getInitialOptionStates(this.selectableRows, this.selectedRows)
};
},
emits: ['select'],
created: function created() {
this.optionSelected = Object(external_CoreHome_["debounce"])(this.optionSelected, 0);
},
methods: {
optionSelected: function optionSelected(optionValue, optionStates) {
if (!this.multiselect) {
unselectOptions(this.columnStates);
unselectOptions(this.rowStates);
}
optionStates[optionValue] = !optionStates[optionValue];
this.triggerOnSelectAndClose();
},
onLeavePopup: function onLeavePopup() {
this.isPopupVisible = false;
if (this.optionsChanged()) {
this.triggerOnSelectAndClose();
}
},
triggerOnSelectAndClose: function triggerOnSelectAndClose() {
this.isPopupVisible = false;
this.$emit('select', {
columns: getSelected(this.columnStates),
rows: getSelected(this.rowStates)
});
},
optionsChanged: function optionsChanged() {
return !arrayEqual(getSelected(this.columnStates), this.selectedColumns) || !arrayEqual(getSelected(this.rowStates), this.selectedRows);
}
}
}));
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.vue
SeriesPickervue_type_script_lang_ts.render = SeriesPickervue_type_template_id_bd202f38_render
/* harmony default export */ var SeriesPicker = (SeriesPickervue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SeriesPicker/SeriesPicker.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 SeriesPicker_adapter = (Object(external_CoreHome_["createAngularJsAdapter"])({
component: SeriesPicker,
scope: {
multiselect: {
angularJsBind: '<'
},
selectableColumns: {
angularJsBind: '<'
},
selectableRows: {
angularJsBind: '<'
},
selectedColumns: {
angularJsBind: '<'
},
selectedRows: {
angularJsBind: '<'
},
onSelect: {
angularJsBind: '&',
vue: 'select'
}
},
directiveName: 'piwikSeriesPicker',
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/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.vue?vue&type=template&id=2e2e889f
var SingleMetricViewvue_type_template_id_2e2e889f_hoisted_1 = {
class: "metric-sparkline"
};
var SingleMetricViewvue_type_template_id_2e2e889f_hoisted_2 = {
class: "metric-value"
};
var SingleMetricViewvue_type_template_id_2e2e889f_hoisted_3 = ["title"];
var SingleMetricViewvue_type_template_id_2e2e889f_hoisted_4 = ["title"];
function SingleMetricViewvue_type_template_id_2e2e889f_render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Sparkline = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("Sparkline");
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"])(["singleMetricView", {
'loading': _ctx.isLoading
}]),
ref: "root"
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SingleMetricViewvue_type_template_id_2e2e889f_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_Sparkline, {
params: _ctx.sparklineParams
}, null, 8, ["params"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SingleMetricViewvue_type_template_id_2e2e889f_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
title: _ctx.metricDocumentation
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("strong", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.metricValue), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])((_ctx.metricTranslation || '').toLowerCase()), 1)], 8, SingleMetricViewvue_type_template_id_2e2e889f_hoisted_3), _ctx.pastValue !== null ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
key: 0,
class: "metricEvolution",
title: _ctx.translate('General_EvolutionSummaryGeneric', _ctx.metricValue, _ctx.currentPeriod, _ctx.pastValue, _ctx.pastPeriod, _ctx.metricChangePercent)
}, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
'positive-evolution': _ctx.metricValueUnformatted > _ctx.pastValueUnformatted,
'negative-evolution': _ctx.metricValueUnformatted < _ctx.pastValueUnformatted
})
}, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.metricChangePercent), 3)], 8, SingleMetricViewvue_type_template_id_2e2e889f_hoisted_4)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 2);
}
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.vue?vue&type=template&id=2e2e889f
// 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/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.vue?vue&type=script&lang=ts
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function getPastPeriodStr() {
var _Range$getLastNRange = external_CoreHome_["Range"].getLastNRange(external_CoreHome_["Matomo"].period, 2, external_CoreHome_["Matomo"].currentDateString),
startDate = _Range$getLastNRange.startDate;
var dateRange = external_CoreHome_["Periods"].get(external_CoreHome_["Matomo"].period).parse(startDate).getDateRange();
return "".concat(Object(external_CoreHome_["format"])(dateRange[0]), ",").concat(Object(external_CoreHome_["format"])(dateRange[1]));
}
var _window = window,
$ = _window.$;
/* harmony default export */ var SingleMetricViewvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
metric: {
type: String,
required: true
},
idGoal: [String, Number],
metricTranslations: {
type: Object,
required: true
},
metricDocumentations: Object,
goals: {
type: Object,
required: true
},
goalMetrics: Array
},
components: {
Sparkline: external_CoreHome_["Sparkline"]
},
setup: function setup(props) {
var root = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(null);
var isLoading = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(false);
var responses = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(null);
var actualMetric = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(props.metric);
var actualIdGoal = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])(props.idGoal);
var selectedColumns = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
return [actualIdGoal.value ? "goal".concat(actualIdGoal.value, "_").concat(actualMetric.value) : actualMetric.value];
});
var metricValueUnformatted = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _responses$value;
if (!((_responses$value = responses.value) !== null && _responses$value !== void 0 && _responses$value[1])) {
return null;
}
return responses.value[1][actualMetric.value];
});
var pastValueUnformatted = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _responses$value2;
if (!((_responses$value2 = responses.value) !== null && _responses$value2 !== void 0 && _responses$value2[2])) {
return null;
}
return responses.value[2][actualMetric.value] || 0;
});
var metricChangePercent = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
if (!metricValueUnformatted.value) {
return null;
}
var currentValue = typeof metricValueUnformatted.value === 'string' ? parseInt(metricValueUnformatted.value, 10) : metricValueUnformatted.value;
var pastValue = typeof pastValueUnformatted.value === 'string' ? parseInt(pastValueUnformatted.value, 10) : pastValueUnformatted.value;
var evolution = external_CoreHome_["Matomo"].helper.calculateEvolution(currentValue, pastValue);
return "".concat((evolution * 100).toFixed(2), " %");
});
var pastValue = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _responses$value3;
if (!((_responses$value3 = responses.value) !== null && _responses$value3 !== void 0 && _responses$value3[3])) {
return null;
}
var pastDataFormatted = responses.value[3];
return pastDataFormatted[actualMetric.value] || 0;
});
var metricValue = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _responses$value4;
if (!((_responses$value4 = responses.value) !== null && _responses$value4 !== void 0 && _responses$value4[0])) {
return null;
}
var currentData = responses.value[0];
return currentData[actualMetric.value] || 0;
});
var metricTranslation = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _props$metricTranslat;
if (!((_props$metricTranslat = props.metricTranslations) !== null && _props$metricTranslat !== void 0 && _props$metricTranslat[actualMetric.value])) {
return '';
}
return props.metricTranslations[actualMetric.value];
});
var metricDocumentation = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var _props$metricDocument;
if (!((_props$metricDocument = props.metricDocumentations) !== null && _props$metricDocument !== void 0 && _props$metricDocument[actualMetric.value])) {
return '';
}
return props.metricDocumentations[actualMetric.value];
});
var currentPeriod = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
if (external_CoreHome_["Matomo"].startDateString === external_CoreHome_["Matomo"].endDateString) {
return external_CoreHome_["Matomo"].endDateString;
}
return "".concat(external_CoreHome_["Matomo"].startDateString, ", ").concat(external_CoreHome_["Matomo"].endDateString);
});
function isIdGoalSet() {
return actualIdGoal.value || actualIdGoal.value === 0;
}
var sparklineParams = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var params = {
module: 'API',
action: 'get',
columns: actualMetric.value
};
if (isIdGoalSet()) {
params.idGoal = actualIdGoal.value;
params.module = 'Goals';
}
return params;
});
var pastPeriod = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
if (external_CoreHome_["Matomo"].period === 'range') {
return undefined;
}
return getPastPeriodStr();
});
var selectableColumns = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
var result = [];
Object.keys(props.metricTranslations).forEach(function (column) {
result.push({
column: column,
translation: props.metricTranslations[column]
});
});
Object.values(props.goals || {}).forEach(function (goal) {
props.goalMetrics.forEach(function (column) {
result.push({
column: "goal".concat(goal.idgoal, "_").concat(column),
translation: "".concat(goal.name, " - ").concat(props.metricTranslations[column])
});
});
});
return result;
});
function setWidgetTitle() {
var title = metricTranslation.value;
if (isIdGoalSet()) {
var _props$goals$actualId;
var goalName = ((_props$goals$actualId = props.goals[actualIdGoal.value]) === null || _props$goals$actualId === void 0 ? void 0 : _props$goals$actualId.name) || Object(external_CoreHome_["translate"])('General_Unknown');
title = "".concat(goalName, " - ").concat(title);
}
$(root.value).closest('div.widget').find('.widgetTop > .widgetName > span').text(title);
}
function getLastPeriodDate() {
var range = external_CoreHome_["Range"].getLastNRange(external_CoreHome_["Matomo"].period, 2, external_CoreHome_["Matomo"].currentDateString);
return Object(external_CoreHome_["format"])(range.startDate);
}
function fetchData() {
isLoading.value = true;
var promises = [];
var apiModule = 'API';
var apiAction = 'get';
var extraParams = {};
if (isIdGoalSet()) {
// the conversion rate added by the AddColumnsProcessedMetrics filter conflicts w/
// the goals one, so don't run it
extraParams.idGoal = actualIdGoal.value;
extraParams.filter_add_columns_when_show_all_columns = 0;
apiModule = 'Goals';
apiAction = 'get';
}
var method = "".concat(apiModule, ".").concat(apiAction); // first request for formatted data
promises.push(external_CoreHome_["AjaxHelper"].fetch(Object.assign({
method: method,
format_metrics: 'all'
}, extraParams)));
if (external_CoreHome_["Matomo"].period !== 'range') {
// second request for unformatted data so we can calculate evolution
promises.push(external_CoreHome_["AjaxHelper"].fetch(Object.assign({
method: method,
format_metrics: '0'
}, extraParams))); // third request for past data (unformatted)
promises.push(external_CoreHome_["AjaxHelper"].fetch(Object.assign({
method: method,
date: getLastPeriodDate(),
format_metrics: '0'
}, extraParams))); // fourth request for past data (formatted for tooltip display)
promises.push(external_CoreHome_["AjaxHelper"].fetch(Object.assign({
method: method,
date: getLastPeriodDate(),
format_metrics: 'all'
}, extraParams)));
}
return Promise.all(promises).then(function (r) {
responses.value = r;
isLoading.value = false;
});
}
function onMetricChanged(newMetric) {
actualMetric.value = newMetric;
fetchData().then(setWidgetTitle); // notify widget of parameter change so it is replaced
$(root.value).closest('[widgetId]').trigger('setParameters', {
column: actualMetric.value,
idGoal: actualIdGoal.value
});
}
function setMetric(newColumn) {
var idGoal = undefined;
var actualColumn = newColumn;
var m = newColumn.match(/^goal([0-9]+)_(.*)/);
if (m) {
idGoal = +m[1];
var _m = _slicedToArray(m, 3);
actualColumn = _m[2];
}
if (actualMetric.value !== actualColumn || idGoal !== actualIdGoal.value) {
actualMetric.value = actualColumn;
actualIdGoal.value = idGoal;
onMetricChanged(actualColumn);
}
}
function createSeriesPicker() {
var element = $(root.value);
var $widgetName = element.closest('div.widget').find('.widgetTop > .widgetName');
var $seriesPickerElem = $('');
var app = Object(external_CoreHome_["createVueApp"])({
render: function render() {
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(SeriesPicker, {
multiselect: false,
selectableColumns: selectableColumns.value,
selectableRows: [],
selectedColumns: selectedColumns.value,
selectedRows: [],
onSelect: function onSelect(_ref) {
var columns = _ref.columns;
setMetric(columns[0]);
}
});
}
});
$widgetName.append($seriesPickerElem);
app.mount($seriesPickerElem.children()[0]);
return app;
}
var seriesPickerApp;
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["onMounted"])(function () {
seriesPickerApp = createSeriesPicker();
});
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["onBeforeUnmount"])(function () {
$(root.value).closest('.widgetContent').off('widget:destroy').off('widget:reload');
$(root.value).closest('div.widget').find('.single-metric-view-picker').remove();
seriesPickerApp.unmount();
});
Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
return props.metric;
}, function () {
onMetricChanged(props.metric);
});
onMetricChanged(props.metric);
return {
root: root,
metricValue: metricValue,
isLoading: isLoading,
selectedColumns: selectedColumns,
responses: responses,
metricValueUnformatted: metricValueUnformatted,
pastValueUnformatted: pastValueUnformatted,
metricChangePercent: metricChangePercent,
pastValue: pastValue,
metricTranslation: metricTranslation,
metricDocumentation: metricDocumentation,
sparklineParams: sparklineParams,
pastPeriod: pastPeriod,
selectableColumns: selectableColumns,
currentPeriod: currentPeriod
};
}
}));
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.vue?vue&type=script&lang=ts
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.vue
SingleMetricViewvue_type_script_lang_ts.render = SingleMetricViewvue_type_template_id_2e2e889f_render
/* harmony default export */ var SingleMetricView = (SingleMetricViewvue_type_script_lang_ts);
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/SingleMetricView/SingleMetricView.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 SingleMetricView_adapter = (Object(external_CoreHome_["createAngularJsAdapter"])({
component: SingleMetricView,
scope: {
metric: {
angularJsBind: '<'
},
idGoal: {
angularJsBind: '<'
},
metricTranslations: {
angularJsBind: '<'
},
metricDocumentations: {
angularJsBind: '<'
},
goals: {
angularJsBind: '<'
},
goalMetrics: {
angularJsBind: '<'
}
},
directiveName: 'piwikSingleMetricView',
restrict: 'E',
postCreate: function postCreate(vm, scope, element) {
element.closest('.widgetContent').on('widget:destroy', function () {
scope.$parent.$destroy();
}).on('widget:reload', function () {
scope.$parent.$destroy();
});
}
}));
// CONCATENATED MODULE: ./plugins/CoreVisualizations/vue/src/index.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
/***/ })
/******/ });
});
//# sourceMappingURL=CoreVisualizations.umd.js.map