From 451992f41dcc7ab108f8c9f04615b92d0195ae6e Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 19 Aug 2025 16:16:41 +1200 Subject: [PATCH 01/16] creating QuickStats plugin --- plugins/QuickStats/CHANGELOG.md | 3 +++ plugins/QuickStats/QuickStats.php | 36 +++++++++++++++++++++++++ plugins/QuickStats/README.md | 6 +++++ plugins/QuickStats/config/config.php | 3 +++ plugins/QuickStats/config/tracker.php | 3 +++ plugins/QuickStats/docs/faq.md | 5 ++++ plugins/QuickStats/docs/index.md | 1 + plugins/QuickStats/plugin.json | 29 ++++++++++++++++++++ plugins/QuickStats/screenshots/.gitkeep | 0 9 files changed, 86 insertions(+) create mode 100644 plugins/QuickStats/CHANGELOG.md create mode 100644 plugins/QuickStats/QuickStats.php create mode 100644 plugins/QuickStats/README.md create mode 100644 plugins/QuickStats/config/config.php create mode 100644 plugins/QuickStats/config/tracker.php create mode 100644 plugins/QuickStats/docs/faq.md create mode 100644 plugins/QuickStats/docs/index.md create mode 100644 plugins/QuickStats/plugin.json create mode 100644 plugins/QuickStats/screenshots/.gitkeep diff --git a/plugins/QuickStats/CHANGELOG.md b/plugins/QuickStats/CHANGELOG.md new file mode 100644 index 00000000000..854631896a5 --- /dev/null +++ b/plugins/QuickStats/CHANGELOG.md @@ -0,0 +1,3 @@ +## Changelog + +Here goes the changelog text. diff --git a/plugins/QuickStats/QuickStats.php b/plugins/QuickStats/QuickStats.php new file mode 100644 index 00000000000..3600f9c50b3 --- /dev/null +++ b/plugins/QuickStats/QuickStats.php @@ -0,0 +1,36 @@ + 'getArchivingAPIMethodForPlugin', + 'Template.pageFooter' => 'getPageFooter', + ]; + } + + // support archiving just this plugin via core:archive + public function getArchivingAPIMethodForPlugin(&$method, $plugin) + { + if ($plugin == 'QuickStats') { + $method = 'QuickStats.getExampleArchivedMetric'; + } + } + public function getPageFooter(&$out) + { + $view = new View('@QuickStats/footer.twig'); + $out .= $view->render(); + } +} \ No newline at end of file diff --git a/plugins/QuickStats/README.md b/plugins/QuickStats/README.md new file mode 100644 index 00000000000..2f497cf2672 --- /dev/null +++ b/plugins/QuickStats/README.md @@ -0,0 +1,6 @@ +# Matomo QuickStats Plugin + +## Description + +Add your plugin description here. + diff --git a/plugins/QuickStats/config/config.php b/plugins/QuickStats/config/config.php new file mode 100644 index 00000000000..d5be5de26f9 --- /dev/null +++ b/plugins/QuickStats/config/config.php @@ -0,0 +1,3 @@ +=5.4.0-b4,<6.0.0-b1" + }, + "authors": [ + { + "name": "Matomo", + "email": "", + "homepage": "" + } + ], + "support": { + "email": "", + "issues": "", + "forum": "", + "irc": "", + "wiki": "", + "source": "", + "docs": "", + "rss": "" + }, + "homepage": "", + "license": "GPL v3+", + "keywords": [] +} \ No newline at end of file diff --git a/plugins/QuickStats/screenshots/.gitkeep b/plugins/QuickStats/screenshots/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d From 5aad96b403450bddcf1799deeeca9865a771fa6a Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 19 Aug 2025 16:17:15 +1200 Subject: [PATCH 02/16] creating QuickStats footer --- plugins/QuickStats/stylesheets/footer.less | 9 +++++++++ plugins/QuickStats/templates/footer.twig | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 plugins/QuickStats/stylesheets/footer.less create mode 100644 plugins/QuickStats/templates/footer.twig diff --git a/plugins/QuickStats/stylesheets/footer.less b/plugins/QuickStats/stylesheets/footer.less new file mode 100644 index 00000000000..88748cbc9ef --- /dev/null +++ b/plugins/QuickStats/stylesheets/footer.less @@ -0,0 +1,9 @@ +#footerLinks { + text-align: center; + font-size: .7rem; + color: @color-silver; + + a { + color: @color-silver; + } +} \ No newline at end of file diff --git a/plugins/QuickStats/templates/footer.twig b/plugins/QuickStats/templates/footer.twig new file mode 100644 index 00000000000..76733c01f67 --- /dev/null +++ b/plugins/QuickStats/templates/footer.twig @@ -0,0 +1,3 @@ + \ No newline at end of file From 4815caec9cb01ffa7ea5141428265ba6b0490e0a Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 19 Aug 2025 16:17:36 +1200 Subject: [PATCH 03/16] creating QuickStats vue files --- .../vue/src/QuickStats/QuickStats.vue | 66 +++++++++++++++++++ plugins/QuickStats/vue/src/index.ts | 1 + 2 files changed, 67 insertions(+) create mode 100644 plugins/QuickStats/vue/src/QuickStats/QuickStats.vue create mode 100644 plugins/QuickStats/vue/src/index.ts diff --git a/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue b/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue new file mode 100644 index 00000000000..5f5e913be41 --- /dev/null +++ b/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue @@ -0,0 +1,66 @@ + + + + + + + diff --git a/plugins/QuickStats/vue/src/index.ts b/plugins/QuickStats/vue/src/index.ts new file mode 100644 index 00000000000..a798426b031 --- /dev/null +++ b/plugins/QuickStats/vue/src/index.ts @@ -0,0 +1 @@ +export { default as QuickStats } from './QuickStats/QuickStats.vue'; From 6284f5e70b7782cc84ec842a27afb570d40f9df8 Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 19 Aug 2025 16:17:49 +1200 Subject: [PATCH 04/16] saving the built files --- plugins/QuickStats/vue/dist/QuickStats.css | 1 + plugins/QuickStats/vue/dist/QuickStats.umd.js | 246 ++++++++++++++++++ .../QuickStats/vue/dist/QuickStats.umd.min.js | 2 + plugins/QuickStats/vue/dist/umd.metadata.json | 5 + 4 files changed, 254 insertions(+) create mode 100644 plugins/QuickStats/vue/dist/QuickStats.css create mode 100644 plugins/QuickStats/vue/dist/QuickStats.umd.js create mode 100644 plugins/QuickStats/vue/dist/QuickStats.umd.min.js create mode 100644 plugins/QuickStats/vue/dist/umd.metadata.json diff --git a/plugins/QuickStats/vue/dist/QuickStats.css b/plugins/QuickStats/vue/dist/QuickStats.css new file mode 100644 index 00000000000..692724105b5 --- /dev/null +++ b/plugins/QuickStats/vue/dist/QuickStats.css @@ -0,0 +1 @@ +.quick-stat-component[data-v-4f4b3205]{display:flex;justify-content:center;align-items:center} \ No newline at end of file diff --git a/plugins/QuickStats/vue/dist/QuickStats.umd.js b/plugins/QuickStats/vue/dist/QuickStats.umd.js new file mode 100644 index 00000000000..7baaf4e27d1 --- /dev/null +++ b/plugins/QuickStats/vue/dist/QuickStats.umd.js @@ -0,0 +1,246 @@ +(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["QuickStats"] = factory(require("CoreHome"), require("vue")); + else + root["QuickStats"] = 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/QuickStats/vue/dist/"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "fae3"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "130b": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_1_1_QuickStats_vue_vue_type_style_index_0_id_4f4b3205_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("dde8"); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_1_1_QuickStats_vue_vue_type_style_index_0_id_4f4b3205_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_1_1_QuickStats_vue_vue_type_style_index_0_id_4f4b3205_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__); +/* unused harmony reexport * */ + + +/***/ }), + +/***/ "19dc": +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__19dc__; + +/***/ }), + +/***/ "8bbf": +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__; + +/***/ }), + +/***/ "dde8": +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "fae3": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "QuickStats", function() { return /* reexport */ QuickStats; }); + +// 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 {"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--13-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue?vue&type=template&id=4f4b3205&scoped=true + +const _withScopeId = n => (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["pushScopeId"])("data-v-4f4b3205"), n = n(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["popScopeId"])(), n); +const _hoisted_1 = { + class: "quick-stat-component" +}; +const _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", { + class: "ui-confirm" +}, [/*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, "Visitor Stats"), /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, " The count is greater than 15 right now! "), /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { + type: "button", + value: "OK", + role: "yes" +})], -1)); +function render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_MatomoDialog = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("MatomoDialog"); + return 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"])("a", { + class: "btn", + target: "_blank", + onClick: _cache[0] || (_cache[0] = (...args) => _ctx.increment && _ctx.increment(...args)) + }, "Quick Stats"), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", { + onClick: _cache[1] || (_cache[1] = (...args) => _ctx.decrement && _ctx.decrement(...args)) + }, "-"), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.count) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", { + onClick: _cache[2] || (_cache[2] = (...args) => _ctx.increment && _ctx.increment(...args)) + }, "+"), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_MatomoDialog, { + modelValue: _ctx.showDialog, + "onUpdate:modelValue": _cache[3] || (_cache[3] = $event => _ctx.showDialog = $event) + }, { + default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(() => [_hoisted_2]), + _: 1 + }, 8, ["modelValue"])]); +} +// CONCATENATED MODULE: ./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue?vue&type=template&id=4f4b3205&scoped=true + +// EXTERNAL MODULE: external "CoreHome" +var external_CoreHome_ = __webpack_require__("19dc"); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--15-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--1-1!./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue?vue&type=script&lang=ts + + +/* harmony default export */ var QuickStatsvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + components: { + MatomoDialog: external_CoreHome_["MatomoDialog"] + }, + data() { + return { + count: 12, + showDialog: false + }; + }, + methods: { + increment() { + this.count += 1; + this.showDialog = this.count > 15; + }, + decrement() { + this.count -= 1; + this.showDialog = this.count > 15; + } + } +})); +// CONCATENATED MODULE: ./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue?vue&type=script&lang=ts + +// EXTERNAL MODULE: ./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue?vue&type=style&index=0&id=4f4b3205&lang=less&scoped=true +var QuickStatsvue_type_style_index_0_id_4f4b3205_lang_less_scoped_true = __webpack_require__("130b"); + +// CONCATENATED MODULE: ./plugins/QuickStats/vue/src/QuickStats/QuickStats.vue + + + + + +QuickStatsvue_type_script_lang_ts.render = render +QuickStatsvue_type_script_lang_ts.__scopeId = "data-v-4f4b3205" + +/* harmony default export */ var QuickStats = (QuickStatsvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/QuickStats/vue/src/index.ts + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js + + + + +/***/ }) + +/******/ }); +}); +//# sourceMappingURL=QuickStats.umd.js.map \ No newline at end of file diff --git a/plugins/QuickStats/vue/dist/QuickStats.umd.min.js b/plugins/QuickStats/vue/dist/QuickStats.umd.min.js new file mode 100644 index 00000000000..6c6721e29a8 --- /dev/null +++ b/plugins/QuickStats/vue/dist/QuickStats.umd.min.js @@ -0,0 +1,2 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue")):"function"===typeof define&&define.amd?define(["CoreHome"],t):"object"===typeof exports?exports["QuickStats"]=t(require("CoreHome"),require("vue")):e["QuickStats"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="plugins/QuickStats/vue/dist/",o(o.s="fae3")}({"130b":function(e,t,o){"use strict";o("dde8")},"19dc":function(t,o){t.exports=e},"8bbf":function(e,o){e.exports=t},dde8:function(e,t,o){},fae3:function(e,t,o){"use strict";if(o.r(t),o.d(t,"QuickStats",(function(){return f})),"undefined"!==typeof window){var n=window.document.currentScript,r=n&&n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);r&&(o.p=r[1])}var c=o("8bbf");const i=e=>(Object(c["pushScopeId"])("data-v-4f4b3205"),e=e(),Object(c["popScopeId"])(),e),u={class:"quick-stat-component"},a=i(()=>Object(c["createElementVNode"])("div",{class:"ui-confirm"},[Object(c["createElementVNode"])("h2",null,"Visitor Stats"),Object(c["createElementVNode"])("p",null," The count is greater than 15 right now! "),Object(c["createElementVNode"])("input",{type:"button",value:"OK",role:"yes"})],-1));function l(e,t,o,n,r,i){const l=Object(c["resolveComponent"])("MatomoDialog");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",u,[Object(c["createElementVNode"])("a",{class:"btn",target:"_blank",onClick:t[0]||(t[0]=(...t)=>e.increment&&e.increment(...t))},"Quick Stats"),Object(c["createElementVNode"])("button",{onClick:t[1]||(t[1]=(...t)=>e.decrement&&e.decrement(...t))},"-"),Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(e.count)+" ",1),Object(c["createElementVNode"])("button",{onClick:t[2]||(t[2]=(...t)=>e.increment&&e.increment(...t))},"+"),Object(c["createVNode"])(l,{modelValue:e.showDialog,"onUpdate:modelValue":t[3]||(t[3]=t=>e.showDialog=t)},{default:Object(c["withCtx"])(()=>[a]),_:1},8,["modelValue"])])}var d=o("19dc"),s=Object(c["defineComponent"])({components:{MatomoDialog:d["MatomoDialog"]},data(){return{count:12,showDialog:!1}},methods:{increment(){this.count+=1,this.showDialog=this.count>15},decrement(){this.count-=1,this.showDialog=this.count>15}}});o("130b");s.render=l,s.__scopeId="data-v-4f4b3205";var f=s}})})); +//# sourceMappingURL=QuickStats.umd.min.js.map \ No newline at end of file diff --git a/plugins/QuickStats/vue/dist/umd.metadata.json b/plugins/QuickStats/vue/dist/umd.metadata.json new file mode 100644 index 00000000000..9ecfcc04562 --- /dev/null +++ b/plugins/QuickStats/vue/dist/umd.metadata.json @@ -0,0 +1,5 @@ +{ + "dependsOn": [ + "CoreHome" + ] +} \ No newline at end of file From cab6aee7a192be4358f7628e19de7d442a1880f2 Mon Sep 17 00:00:00 2001 From: chip Date: Tue, 19 Aug 2025 16:28:52 +1200 Subject: [PATCH 05/16] removing unused variables and components --- .../QuickStats/vue/src/QuickStats/QuickStats.vue | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue b/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue index 5f5e913be41..b26e738ae33 100644 --- a/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue +++ b/plugins/QuickStats/vue/src/QuickStats/QuickStats.vue @@ -7,10 +7,7 @@