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

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Feedback/vue')
-rw-r--r--plugins/Feedback/vue/dist/Feedback.umd.js276
-rw-r--r--plugins/Feedback/vue/dist/Feedback.umd.min.js10
-rw-r--r--plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.adapter.ts19
-rw-r--r--plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.less34
-rw-r--r--plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue169
-rw-r--r--plugins/Feedback/vue/src/RateFeature/RateFeature.vue3
-rw-r--r--plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue90
-rw-r--r--plugins/Feedback/vue/src/index.ts3
8 files changed, 474 insertions, 130 deletions
diff --git a/plugins/Feedback/vue/dist/Feedback.umd.js b/plugins/Feedback/vue/dist/Feedback.umd.js
index d50ae72ce5..fca5e1f1d8 100644
--- a/plugins/Feedback/vue/dist/Feedback.umd.js
+++ b/plugins/Feedback/vue/dist/Feedback.umd.js
@@ -118,8 +118,8 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;
__webpack_require__.r(__webpack_exports__);
// EXPORTS
-__webpack_require__.d(__webpack_exports__, "ReviewLinks", function() { return /* reexport */ ReviewLinks; });
__webpack_require__.d(__webpack_exports__, "RateFeature", function() { return /* reexport */ RateFeature; });
+__webpack_require__.d(__webpack_exports__, "FeedbackQuestion", function() { return /* reexport */ FeedbackQuestion; });
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.
@@ -143,7 +143,7 @@ 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/Feedback/vue/src/RateFeature/RateFeature.vue?vue&type=template&id=65bd066a
+// 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/Feedback/vue/src/RateFeature/RateFeature.vue?vue&type=template&id=10cf2a3c
var _hoisted_1 = ["title"];
var _hoisted_2 = {
@@ -173,8 +173,6 @@ var _hoisted_11 = ["value"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_MatomoDialog = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("MatomoDialog");
- var _component_ReviewLinks = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ReviewLinks");
-
return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
title: _ctx.translate('Feedback_RateFeatureTitle', _ctx.$sanitize(_ctx.title)),
class: "ratefeature"
@@ -235,7 +233,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, {
default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
- return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Feedback_ThankYou', _ctx.title)), 1), _ctx.like ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_10, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ReviewLinks)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
+ return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_9, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Feedback_ThankYou', _ctx.title)), 1), _ctx.like ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_10)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
type: "button",
value: _ctx.translate('General_Ok'),
role: "yes"
@@ -244,44 +242,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
_: 1
}, 8, ["modelValue"])], 8, _hoisted_1);
}
-// CONCATENATED MODULE: ./plugins/Feedback/vue/src/RateFeature/RateFeature.vue?vue&type=template&id=65bd066a
-
-// 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/Feedback/vue/src/ReviewLinks/ReviewLinks.vue?vue&type=template&id=4471fc41
-
-var ReviewLinksvue_type_template_id_4471fc41_hoisted_1 = {
- class: "requestReview"
-};
-
-var ReviewLinksvue_type_template_id_4471fc41_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createStaticVNode"])("<br><br><div class=\"review-links\"><div class=\"review-link\"><a href=\"https://www.capterra.com/p/182627/Matomo-Analytics/\" target=\"_blank\"><div class=\"image\"><img loading=\"lazy\" src=\"plugins/Feedback/images/capterra.svg\"></div><div class=\"link\">Capterra</div></a></div><div class=\"review-link\"><a href=\"https://www.g2crowd.com/products/matomo-formerly-piwik/details\" target=\"_blank\"><div class=\"image\"><img loading=\"lazy\" src=\"plugins/Feedback/images/g2crowd.svg\"></div><div class=\"link\">G2 Crowd</div></a></div><div class=\"review-link\"><a href=\"https://www.producthunt.com/posts/matomo-2\" target=\"_blank\"><div class=\"image\"><img loading=\"lazy\" src=\"plugins/Feedback/images/producthunt.svg\"></div><div class=\"link\">Product Hunt</div></a></div><div class=\"review-link\"><a href=\"https://www.saasworthy.com/product/matomo\" target=\"_blank\"><div class=\"image\"><img loading=\"lazy\" src=\"plugins/Feedback/images/saasworthy.png\"></div><div class=\"link\">SaaSworthy</div></a></div><div class=\"review-link\"><a href=\"https://www.trustradius.com/products/matomo/reviews\" target=\"_blank\"><div class=\"image\"><img loading=\"lazy\" src=\"plugins/Feedback/images/trustradius.svg\"></div><div class=\"link\">TrustRadius</div></a></div></div>", 3);
-
-function ReviewLinksvue_type_template_id_4471fc41_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", ReviewLinksvue_type_template_id_4471fc41_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Feedback_PleaseLeaveExternalReviewForMatomo')), 1), ReviewLinksvue_type_template_id_4471fc41_hoisted_2]);
-}
-// CONCATENATED MODULE: ./plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue?vue&type=template&id=4471fc41
-
-// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue?vue&type=script&lang=ts
+// CONCATENATED MODULE: ./plugins/Feedback/vue/src/RateFeature/RateFeature.vue?vue&type=template&id=10cf2a3c
-/* harmony default export */ var ReviewLinksvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({}));
-// CONCATENATED MODULE: ./plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue?vue&type=script&lang=ts
-
-// CONCATENATED MODULE: ./plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue
-
-
-
-ReviewLinksvue_type_script_lang_ts.render = ReviewLinksvue_type_template_id_4471fc41_render
-
-/* harmony default export */ var ReviewLinks = (ReviewLinksvue_type_script_lang_ts);
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/Feedback/vue/src/RateFeature/RateFeature.vue?vue&type=script&lang=ts
-
/* harmony default export */ var RateFeaturevue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
props: {
title: String
},
components: {
- MatomoDialog: external_CoreHome_["MatomoDialog"],
- ReviewLinks: ReviewLinks
+ MatomoDialog: external_CoreHome_["MatomoDialog"]
},
data: function data() {
return {
@@ -337,6 +308,242 @@ RateFeaturevue_type_script_lang_ts.render = render
},
directiveName: 'piwikRateFeature'
}));
+// 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/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue?vue&type=template&id=2d5e9885
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_1 = {
+ key: 0,
+ class: "bannerHeader"
+};
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("i", {
+ class: "icon-heart red-text"
+}, null, -1);
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("i", {
+ class: "icon-close white-text"
+}, null, -1);
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_4 = [FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_3];
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_5 = {
+ class: "ratefeature"
+};
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_6 = {
+ class: "ui-confirm ratefeatureDialog"
+};
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_7 = ["innerHTML"];
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_8 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_9 = {
+ class: "messageContainer"
+};
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_10 = {
+ key: 0,
+ class: "error-text"
+};
+
+var FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_11 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1);
+
+var _hoisted_12 = ["innerHTML"];
+var _hoisted_13 = ["value"];
+var _hoisted_14 = ["value"];
+var _hoisted_15 = {
+ class: "ui-confirm ratefeatureDialog"
+};
+var _hoisted_16 = ["innerHTML"];
+var _hoisted_17 = ["value"];
+function FeedbackQuestionvue_type_template_id_2d5e9885_render(_ctx, _cache, $props, $setup, $data, $options) {
+ var _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", null, [!_ctx.isHidden ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("Feedback_FeedbackTitle")) + " ", 1), FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_2]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+ onClick: _cache[0] || (_cache[0] = function () {
+ return _ctx.showQuestion && _ctx.showQuestion.apply(_ctx, arguments);
+ }),
+ class: "btn"
+ }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("Feedback_Question".concat(_ctx.question))), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", {
+ class: "close-btn",
+ onClick: _cache[1] || (_cache[1] = function () {
+ return _ctx.disableReminder && _ctx.disableReminder.apply(_ctx, arguments);
+ })
+ }, FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_4)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_5, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_MatomoDialog, {
+ modelValue: _ctx.showFeedbackForm,
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
+ return _ctx.showFeedbackForm = $event;
+ }),
+ onValidation: _cache[4] || (_cache[4] = function ($event) {
+ return _ctx.sendFeedback();
+ })
+ }, {
+ default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
+ return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("Feedback_Question".concat(_ctx.question))), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", {
+ innerHTML: _ctx.translate('Feedback_FeedbackSubtitle', "<i class='icon-heart red-text'></i>")
+ }, null, 8, FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_7), FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_8, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_9, [_ctx.errorMessage ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.errorMessage), 1)) : 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"])("textarea", {
+ id: "message",
+ class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({
+ 'has-error': _ctx.errorMessage
+ }),
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
+ return _ctx.feedbackMessage = $event;
+ })
+ }, null, 2), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.feedbackMessage]])]), FeedbackQuestionvue_type_template_id_2d5e9885_hoisted_11, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", {
+ innerHTML: _ctx.translate('Feedback_Policy', "<a rel='nofollow' href='https://matomo.org/privacy-policy/' target='_blank'>", '</a>')
+ }, null, 8, _hoisted_12), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
+ type: "button",
+ role: "validation",
+ value: _ctx.translate('Feedback_SendFeedback')
+ }, null, 8, _hoisted_13), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
+ type: "button",
+ role: "cancel",
+ value: _ctx.translate('General_Cancel')
+ }, null, 8, _hoisted_14)])];
+ }),
+ _: 1
+ }, 8, ["modelValue"]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_MatomoDialog, {
+ modelValue: _ctx.feedbackDone,
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
+ return _ctx.feedbackDone = $event;
+ })
+ }, {
+ default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
+ return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_15, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate("Feedback_ThankYou")), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", {
+ innerHTML: _ctx.translate('Feedback_ThankYourForFeedback', "<i class='icon-heart red-text'></i>")
+ }, null, 8, _hoisted_16), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
+ type: "button",
+ role: "cancel",
+ value: _ctx.translate('General_Close')
+ }, null, 8, _hoisted_17)])];
+ }),
+ _: 1
+ }, 8, ["modelValue"])])]);
+}
+// CONCATENATED MODULE: ./plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue?vue&type=template&id=2d5e9885
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-3!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue?vue&type=script&lang=ts
+
+
+var _window = window,
+ $ = _window.$;
+var cookieName = 'feedback-question';
+/* harmony default export */ var FeedbackQuestionvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
+ props: {
+ showQuestionBanner: String
+ },
+ components: {
+ MatomoDialog: external_CoreHome_["MatomoDialog"]
+ },
+ computed: {
+ isHidden: function isHidden() {
+ if (this.showQuestionBanner === '0') {
+ return true;
+ }
+
+ return !!this.hide;
+ }
+ },
+ data: function data() {
+ return {
+ questionText: '',
+ question: 0,
+ hide: null,
+ feedbackDone: false,
+ expanded: false,
+ showFeedbackForm: false,
+ feedbackMessage: null,
+ errorMessage: null
+ };
+ },
+ watch: {
+ showFeedbackForm: function showFeedbackForm(val) {
+ // eslint-disable-next-line no-underscore-dangle
+ this.questionText = Object(external_CoreHome_["translate"])("Feedback_Question".concat(this.question));
+
+ if (val) {
+ setInterval(function () {
+ $('#message').focus();
+ }, 500);
+ }
+ }
+ },
+ created: function created() {
+ if (this.showQuestionBanner !== '0') {
+ this.initQuestion();
+ }
+ },
+ methods: {
+ initQuestion: function initQuestion() {
+ if (!Object(external_CoreHome_["getCookie"])(cookieName)) {
+ this.question = this.getRandomIntBetween(0, 4);
+ } else {
+ // eslint-disable-next-line radix
+ this.question = parseInt(Object(external_CoreHome_["getCookie"])(cookieName));
+ }
+
+ var nextQuestion = (this.question + 1) % 4;
+ var sevenDays = 7 * 60 * 60 * 24 * 1000;
+ Object(external_CoreHome_["setCookie"])(cookieName, nextQuestion, sevenDays);
+ },
+ getRandomIntBetween: function getRandomIntBetween(min, max) {
+ // eslint-disable-next-line no-param-reassign
+ min = Math.ceil(min); // eslint-disable-next-line no-param-reassign
+
+ max = Math.floor(max);
+ return Math.floor(Math.random() * (max - min + 1) + min);
+ },
+ showQuestion: function showQuestion() {
+ this.showFeedbackForm = true;
+ this.errorMessage = null;
+ },
+ disableReminder: function disableReminder() {
+ external_CoreHome_["AjaxHelper"].fetch({
+ method: 'Feedback.updateFeedbackReminderDate'
+ });
+ this.hide = true;
+ },
+ sendFeedback: async function sendFeedback() {
+ this.errorMessage = null;
+ var res = await external_CoreHome_["AjaxHelper"].fetch({
+ method: 'Feedback.sendFeedbackForSurvey',
+ question: this.questionText,
+ message: this.feedbackMessage
+ });
+
+ if (res.value === 'success') {
+ $('.modal').modal('close');
+ this.feedbackDone = true;
+ this.hide = true;
+ } else {
+ this.errorMessage = res.value;
+ }
+ }
+ }
+}));
+// CONCATENATED MODULE: ./plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue?vue&type=script&lang=ts
+
+// CONCATENATED MODULE: ./plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue
+
+
+
+FeedbackQuestionvue_type_script_lang_ts.render = FeedbackQuestionvue_type_template_id_2d5e9885_render
+
+/* harmony default export */ var FeedbackQuestion = (FeedbackQuestionvue_type_script_lang_ts);
+// CONCATENATED MODULE: ./plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.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 FeedbackQuestion_adapter = (Object(external_CoreHome_["createAngularJsAdapter"])({
+ component: FeedbackQuestion,
+ scope: {
+ showQuestionBanner: {
+ angularJsBind: '@'
+ }
+ },
+ directiveName: 'piwikFeedbackQuestion'
+}));
// CONCATENATED MODULE: ./plugins/Feedback/vue/src/index.ts
/*!
* Matomo - free/libre analytics platform
@@ -347,6 +554,7 @@ RateFeaturevue_type_script_lang_ts.render = render
+
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
diff --git a/plugins/Feedback/vue/dist/Feedback.umd.min.js b/plugins/Feedback/vue/dist/Feedback.umd.min.js
index 805ddb155a..690932aefa 100644
--- a/plugins/Feedback/vue/dist/Feedback.umd.min.js
+++ b/plugins/Feedback/vue/dist/Feedback.umd.min.js
@@ -1,8 +1,14 @@
-(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["Feedback"]=t(require("CoreHome"),require("vue")):e["Feedback"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function a(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,a),r.l=!0,r.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="plugins/Feedback/vue/dist/",a(a.s="fae3")}({"19dc":function(t,a){t.exports=e},"8bbf":function(e,a){e.exports=t},fae3:function(e,t,a){"use strict";if(a.r(t),a.d(t,"ReviewLinks",(function(){return h})),a.d(t,"RateFeature",(function(){return V})),"undefined"!==typeof window){var n=window.document.currentScript,r=n&&n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);r&&(a.p=r[1])}var i=a("19dc"),o=a("8bbf"),c=["title"],l={class:"ui-confirm ratefeatureDialog"},s={key:0},d={key:1},u=Object(o["createElementVNode"])("br",null,null,-1),b={class:"messageContainer"},m=["title","value"],p=["value"],v={class:"ui-confirm ratefeatureDialog"},f={key:0},k=["value"];function g(e,t,a,n,r,i){var g=Object(o["resolveComponent"])("MatomoDialog"),j=Object(o["resolveComponent"])("ReviewLinks");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{title:e.translate("Feedback_RateFeatureTitle",e.$sanitize(e.title)),class:"ratefeature"},[Object(o["createElementVNode"])("div",{class:"iconContainer",onMouseenter:t[2]||(t[2]=function(t){return e.expanded=!0}),onMouseleave:t[3]||(t[3]=function(t){return e.expanded=!1})},[Object(o["createElementVNode"])("img",{onClick:t[0]||(t[0]=function(t){e.likeFeature(),e.showFeedbackForm=!0}),class:"like-icon",src:"plugins/Feedback/vue/src/RateFeature/thumbs-up.png"}),Object(o["withDirectives"])(Object(o["createElementVNode"])("img",{onClick:t[1]||(t[1]=function(t){e.dislikeFeature(),e.showFeedbackForm=!0}),class:"dislike-icon",src:"plugins/Feedback/vue/src/RateFeature/thumbs-down.png"},null,512),[[o["vShow"],e.expanded]])],32),Object(o["createVNode"])(g,{modelValue:e.showFeedbackForm,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.showFeedbackForm=t}),onYes:t[6]||(t[6]=function(t){return e.sendFeedback()})},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("div",l,[Object(o["createElementVNode"])("h2",null,Object(o["toDisplayString"])(e.translate("Feedback_RateFeatureThankYouTitle",e.title)),1),e.like?(Object(o["openBlock"])(),Object(o["createElementBlock"])("p",s,Object(o["toDisplayString"])(e.translate("Feedback_RateFeatureLeaveMessageLike")),1)):Object(o["createCommentVNode"])("",!0),e.like?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("p",d,Object(o["toDisplayString"])(e.translate("Feedback_RateFeatureLeaveMessageDislike")),1)),u,Object(o["createElementVNode"])("div",b,[Object(o["withDirectives"])(Object(o["createElementVNode"])("textarea",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.feedbackMessage=t})},null,512),[[o["vModelText"],e.feedbackMessage]])]),Object(o["createElementVNode"])("input",{type:"button",title:e.translate("Feedback_RateFeatureSendFeedbackInformation"),value:e.translate("Feedback_SendFeedback"),role:"yes"},null,8,m),Object(o["createElementVNode"])("input",{type:"button",role:"cancel",value:e.translate("General_Cancel")},null,8,p)])]})),_:1},8,["modelValue"]),Object(o["createVNode"])(g,{modelValue:e.ratingDone,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.ratingDone=t})},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("div",v,[Object(o["createElementVNode"])("h2",null,Object(o["toDisplayString"])(e.translate("Feedback_ThankYou",e.title)),1),e.like?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",f,[Object(o["createVNode"])(j)])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("input",{type:"button",value:e.translate("General_Ok"),role:"yes"},null,8,k)])]})),_:1},8,["modelValue"])],8,c)}var j={class:"requestReview"},O=Object(o["createStaticVNode"])('<br><br><div class="review-links"><div class="review-link"><a href="https://www.capterra.com/p/182627/Matomo-Analytics/" target="_blank"><div class="image"><img loading="lazy" src="plugins/Feedback/images/capterra.svg"></div><div class="link">Capterra</div></a></div><div class="review-link"><a href="https://www.g2crowd.com/products/matomo-formerly-piwik/details" target="_blank"><div class="image"><img loading="lazy" src="plugins/Feedback/images/g2crowd.svg"></div><div class="link">G2 Crowd</div></a></div><div class="review-link"><a href="https://www.producthunt.com/posts/matomo-2" target="_blank"><div class="image"><img loading="lazy" src="plugins/Feedback/images/producthunt.svg"></div><div class="link">Product Hunt</div></a></div><div class="review-link"><a href="https://www.saasworthy.com/product/matomo" target="_blank"><div class="image"><img loading="lazy" src="plugins/Feedback/images/saasworthy.png"></div><div class="link">SaaSworthy</div></a></div><div class="review-link"><a href="https://www.trustradius.com/products/matomo/reviews" target="_blank"><div class="image"><img loading="lazy" src="plugins/Feedback/images/trustradius.svg"></div><div class="link">TrustRadius</div></a></div></div>',3);function w(e,t,a,n,r,i){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",j,[Object(o["createElementVNode"])("p",null,Object(o["toDisplayString"])(e.translate("Feedback_PleaseLeaveExternalReviewForMatomo")),1),O])}var F=Object(o["defineComponent"])({});F.render=w;var h=F,y=Object(o["defineComponent"])({props:{title:String},components:{MatomoDialog:i["MatomoDialog"],ReviewLinks:h},data:function(){return{like:!1,ratingDone:!1,expanded:!1,showFeedbackForm:!1,feedbackMessage:""}},methods:{dislikeFeature:function(){this.like=!1},likeFeature:function(){this.like=!0},sendFeedback:function(){i["AjaxHelper"].fetch({method:"Feedback.sendFeedbackForFeature",featureName:this.title,like:this.like?"1":"0",message:this.feedbackMessage}),this.ratingDone=!0}}});y.render=g;var V=y;
+(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["Feedback"]=t(require("CoreHome"),require("vue")):e["Feedback"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/Feedback/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"RateFeature",(function(){return F})),n.d(t,"FeedbackQuestion",(function(){return U})),"undefined"!==typeof window){var a=window.document.currentScript,o=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var r=n("19dc"),c=n("8bbf"),l=["title"],i={class:"ui-confirm ratefeatureDialog"},s={key:0},u={key:1},d=Object(c["createElementVNode"])("br",null,null,-1),b={class:"messageContainer"},m=["title","value"],f=["value"],k={class:"ui-confirm ratefeatureDialog"},p={key:0},j=["value"];function O(e,t,n,a,o,r){var O=Object(c["resolveComponent"])("MatomoDialog");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{title:e.translate("Feedback_RateFeatureTitle",e.$sanitize(e.title)),class:"ratefeature"},[Object(c["createElementVNode"])("div",{class:"iconContainer",onMouseenter:t[2]||(t[2]=function(t){return e.expanded=!0}),onMouseleave:t[3]||(t[3]=function(t){return e.expanded=!1})},[Object(c["createElementVNode"])("img",{onClick:t[0]||(t[0]=function(t){e.likeFeature(),e.showFeedbackForm=!0}),class:"like-icon",src:"plugins/Feedback/vue/src/RateFeature/thumbs-up.png"}),Object(c["withDirectives"])(Object(c["createElementVNode"])("img",{onClick:t[1]||(t[1]=function(t){e.dislikeFeature(),e.showFeedbackForm=!0}),class:"dislike-icon",src:"plugins/Feedback/vue/src/RateFeature/thumbs-down.png"},null,512),[[c["vShow"],e.expanded]])],32),Object(c["createVNode"])(O,{modelValue:e.showFeedbackForm,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.showFeedbackForm=t}),onYes:t[6]||(t[6]=function(t){return e.sendFeedback()})},{default:Object(c["withCtx"])((function(){return[Object(c["createElementVNode"])("div",i,[Object(c["createElementVNode"])("h2",null,Object(c["toDisplayString"])(e.translate("Feedback_RateFeatureThankYouTitle",e.title)),1),e.like?(Object(c["openBlock"])(),Object(c["createElementBlock"])("p",s,Object(c["toDisplayString"])(e.translate("Feedback_RateFeatureLeaveMessageLike")),1)):Object(c["createCommentVNode"])("",!0),e.like?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("p",u,Object(c["toDisplayString"])(e.translate("Feedback_RateFeatureLeaveMessageDislike")),1)),d,Object(c["createElementVNode"])("div",b,[Object(c["withDirectives"])(Object(c["createElementVNode"])("textarea",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.feedbackMessage=t})},null,512),[[c["vModelText"],e.feedbackMessage]])]),Object(c["createElementVNode"])("input",{type:"button",title:e.translate("Feedback_RateFeatureSendFeedbackInformation"),value:e.translate("Feedback_SendFeedback"),role:"yes"},null,8,m),Object(c["createElementVNode"])("input",{type:"button",role:"cancel",value:e.translate("General_Cancel")},null,8,f)])]})),_:1},8,["modelValue"]),Object(c["createVNode"])(O,{modelValue:e.ratingDone,"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.ratingDone=t})},{default:Object(c["withCtx"])((function(){return[Object(c["createElementVNode"])("div",k,[Object(c["createElementVNode"])("h2",null,Object(c["toDisplayString"])(e.translate("Feedback_ThankYou",e.title)),1),e.like?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",p)):Object(c["createCommentVNode"])("",!0),Object(c["createElementVNode"])("input",{type:"button",value:e.translate("General_Ok"),role:"yes"},null,8,j)])]})),_:1},8,["modelValue"])],8,l)}var h=Object(c["defineComponent"])({props:{title:String},components:{MatomoDialog:r["MatomoDialog"]},data:function(){return{like:!1,ratingDone:!1,expanded:!1,showFeedbackForm:!1,feedbackMessage:""}},methods:{dislikeFeature:function(){this.like=!1},likeFeature:function(){this.like=!0},sendFeedback:function(){r["AjaxHelper"].fetch({method:"Feedback.sendFeedbackForFeature",featureName:this.title,like:this.like?"1":"0",message:this.feedbackMessage}),this.ratingDone=!0}}});h.render=O;var F=h,g=(Object(r["createAngularJsAdapter"])({component:F,scope:{title:{angularJsBind:"@"}},directiveName:"piwikRateFeature"}),{key:0,class:"bannerHeader"}),v=Object(c["createElementVNode"])("i",{class:"icon-heart red-text"},null,-1),V=Object(c["createElementVNode"])("i",{class:"icon-close white-text"},null,-1),y=[V],N={class:"ratefeature"},w={class:"ui-confirm ratefeatureDialog"},M=["innerHTML"],E=Object(c["createElementVNode"])("br",null,null,-1),x={class:"messageContainer"},D={key:0,class:"error-text"},C=Object(c["createElementVNode"])("br",null,null,-1),_=["innerHTML"],S=["value"],B=["value"],T={class:"ui-confirm ratefeatureDialog"},q=["innerHTML"],H=["value"];
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */Object(i["createAngularJsAdapter"])({component:V,scope:{title:{angularJsBind:"@"}},directiveName:"piwikRateFeature"})}})}));
+ */function R(e,t,n,a,o,r){var l=Object(c["resolveComponent"])("MatomoDialog");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",null,[e.isHidden?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",g,[Object(c["createElementVNode"])("span",null,[Object(c["createTextVNode"])(Object(c["toDisplayString"])(e.translate("Feedback_FeedbackTitle"))+" ",1),v]),Object(c["createElementVNode"])("a",{onClick:t[0]||(t[0]=function(){return e.showQuestion&&e.showQuestion.apply(e,arguments)}),class:"btn"},Object(c["toDisplayString"])(e.translate("Feedback_Question".concat(e.question))),1),Object(c["createElementVNode"])("a",{class:"close-btn",onClick:t[1]||(t[1]=function(){return e.disableReminder&&e.disableReminder.apply(e,arguments)})},y)])),Object(c["createElementVNode"])("div",N,[Object(c["createVNode"])(l,{modelValue:e.showFeedbackForm,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.showFeedbackForm=t}),onValidation:t[4]||(t[4]=function(t){return e.sendFeedback()})},{default:Object(c["withCtx"])((function(){return[Object(c["createElementVNode"])("div",w,[Object(c["createElementVNode"])("h2",null,Object(c["toDisplayString"])(e.translate("Feedback_Question".concat(e.question))),1),Object(c["createElementVNode"])("p",{innerHTML:e.translate("Feedback_FeedbackSubtitle","<i class='icon-heart red-text'></i>")},null,8,M),E,Object(c["createElementVNode"])("div",x,[e.errorMessage?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",D,Object(c["toDisplayString"])(e.errorMessage),1)):Object(c["createCommentVNode"])("",!0),Object(c["withDirectives"])(Object(c["createElementVNode"])("textarea",{id:"message",class:Object(c["normalizeClass"])({"has-error":e.errorMessage}),"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.feedbackMessage=t})},null,2),[[c["vModelText"],e.feedbackMessage]])]),C,Object(c["createElementVNode"])("p",{innerHTML:e.translate("Feedback_Policy","<a rel='nofollow' href='https://matomo.org/privacy-policy/' target='_blank'>","</a>")},null,8,_),Object(c["createElementVNode"])("input",{type:"button",role:"validation",value:e.translate("Feedback_SendFeedback")},null,8,S),Object(c["createElementVNode"])("input",{type:"button",role:"cancel",value:e.translate("General_Cancel")},null,8,B)])]})),_:1},8,["modelValue"]),Object(c["createVNode"])(l,{modelValue:e.feedbackDone,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.feedbackDone=t})},{default:Object(c["withCtx"])((function(){return[Object(c["createElementVNode"])("div",T,[Object(c["createElementVNode"])("h2",null,Object(c["toDisplayString"])(e.translate("Feedback_ThankYou")),1),Object(c["createElementVNode"])("p",{innerHTML:e.translate("Feedback_ThankYourForFeedback","<i class='icon-heart red-text'></i>")},null,8,q),Object(c["createElementVNode"])("input",{type:"button",role:"cancel",value:e.translate("General_Close")},null,8,H)])]})),_:1},8,["modelValue"])])])}var Q=window,L=Q.$,A="feedback-question",P=Object(c["defineComponent"])({props:{showQuestionBanner:String},components:{MatomoDialog:r["MatomoDialog"]},computed:{isHidden:function(){return"0"===this.showQuestionBanner||!!this.hide}},data:function(){return{questionText:"",question:0,hide:null,feedbackDone:!1,expanded:!1,showFeedbackForm:!1,feedbackMessage:null,errorMessage:null}},watch:{showFeedbackForm:function(e){this.questionText=Object(r["translate"])("Feedback_Question".concat(this.question)),e&&setInterval((function(){L("#message").focus()}),500)}},created:function(){"0"!==this.showQuestionBanner&&this.initQuestion()},methods:{initQuestion:function(){Object(r["getCookie"])(A)?this.question=parseInt(Object(r["getCookie"])(A)):this.question=this.getRandomIntBetween(0,4);var e=(this.question+1)%4,t=6048e5;Object(r["setCookie"])(A,e,t)},getRandomIntBetween:function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1)+e)},showQuestion:function(){this.showFeedbackForm=!0,this.errorMessage=null},disableReminder:function(){r["AjaxHelper"].fetch({method:"Feedback.updateFeedbackReminderDate"}),this.hide=!0},sendFeedback:async function(){this.errorMessage=null;var e=await r["AjaxHelper"].fetch({method:"Feedback.sendFeedbackForSurvey",question:this.questionText,message:this.feedbackMessage});"success"===e.value?(L(".modal").modal("close"),this.feedbackDone=!0,this.hide=!0):this.errorMessage=e.value}}});P.render=R;var U=P;
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */Object(r["createAngularJsAdapter"])({component:U,scope:{showQuestionBanner:{angularJsBind:"@"}},directiveName:"piwikFeedbackQuestion"})}})}));
//# sourceMappingURL=Feedback.umd.min.js.map \ No newline at end of file
diff --git a/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.adapter.ts b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.adapter.ts
new file mode 100644
index 0000000000..8206972ef7
--- /dev/null
+++ b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.adapter.ts
@@ -0,0 +1,19 @@
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+import { createAngularJsAdapter } from 'CoreHome';
+import RateFeature from './FeedbackQuestion.vue';
+
+export default createAngularJsAdapter({
+ component: RateFeature,
+ scope: {
+ showQuestionBanner: {
+ angularJsBind: '@',
+ },
+ },
+ directiveName: 'piwikFeedbackQuestion',
+});
diff --git a/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.less b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.less
new file mode 100644
index 0000000000..1d65d14b05
--- /dev/null
+++ b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.less
@@ -0,0 +1,34 @@
+.bannerHeader {
+ min-height: 48px;
+ background-color: #263238;
+ text-align: center;
+ color: #fff;
+
+ span {
+ vertical-align: sub;
+ font-size: 14px;
+ }
+
+ a {
+ margin-left: 16px;
+ margin-top: 6px;
+ }
+
+ .close-btn {
+ float: right;
+ margin-right: 20px;
+ font-size: 1.2em;
+ margin-top: 12px;
+ }
+}
+
+.modal {
+ .has-error {
+ border: 1px red solid;
+ }
+
+ .error-text {
+ float: left;
+ color: red;
+ }
+} \ No newline at end of file
diff --git a/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue
new file mode 100644
index 0000000000..52fa9cd9fa
--- /dev/null
+++ b/plugins/Feedback/vue/src/FeedbackQuestion/FeedbackQuestion.vue
@@ -0,0 +1,169 @@
+<!--
+ Matomo - free/libre analytics platform
+ @link https://matomo.org
+ @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+-->
+
+<template>
+ <div>
+ <div v-if="!isHidden" class="bannerHeader">
+ <span>{{ translate(`Feedback_FeedbackTitle`) }} <i class="icon-heart red-text"></i></span>
+ <a @click="showQuestion" class="btn">
+ {{ translate(`Feedback_Question${question}`) }}
+ </a>
+ <a class="close-btn" @click="disableReminder">
+ <i class="icon-close white-text"></i></a>
+ </div>
+ <div class="ratefeature">
+ <MatomoDialog
+ v-model="showFeedbackForm"
+ @validation="sendFeedback()"
+ >
+ <div
+ class="ui-confirm ratefeatureDialog"
+ >
+ <h2>{{ translate(`Feedback_Question${question}`) }}</h2>
+ <p
+ v-html="translate('Feedback_FeedbackSubtitle',
+ `<i class='icon-heart red-text'></i>`)"></p>
+ <br/>
+ <div class="messageContainer">
+ <div class="error-text" v-if="errorMessage">{{ errorMessage }}</div>
+ <textarea id="message" :class="{'has-error':errorMessage}" v-model="feedbackMessage"/>
+ </div>
+ <br/>
+ <p
+ v-html="translate('Feedback_Policy',`<a rel='nofollow' href='https://matomo.org/privacy-policy/' target='_blank'>`,'</a>')"></p>
+ <input
+ type="button"
+ role="validation"
+ :value="translate('Feedback_SendFeedback')"
+ />
+ <input
+ type="button"
+ role="cancel"
+ :value="translate('General_Cancel')"
+ />
+ </div>
+ </MatomoDialog>
+ <MatomoDialog v-model="feedbackDone">
+ <div
+ class="ui-confirm ratefeatureDialog"
+ >
+ <h2>{{ translate(`Feedback_ThankYou`) }}</h2>
+ <p v-html="translate('Feedback_ThankYourForFeedback',
+ `<i class='icon-heart red-text'></i>`)">
+ </p>
+ <input
+ type="button"
+ role="cancel"
+ :value="translate('General_Close')"
+ />
+ </div>
+ </MatomoDialog>
+ </div>
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import {
+ MatomoDialog, AjaxHelper, setCookie, getCookie, translate,
+} from 'CoreHome';
+
+const { $ } = window;
+
+const cookieName = 'feedback-question';
+export default defineComponent({
+
+ props: {
+ showQuestionBanner: String,
+ },
+ components: {
+ MatomoDialog,
+ },
+ computed: {
+ isHidden() {
+ if (this.showQuestionBanner === '0') {
+ return true;
+ }
+ return !!this.hide;
+ },
+ },
+ data() {
+ return {
+ questionText: '',
+ question: 0,
+ hide: null,
+ feedbackDone: false,
+ expanded: false,
+ showFeedbackForm: false,
+ feedbackMessage: null,
+ errorMessage: null,
+ };
+ },
+ watch: {
+ showFeedbackForm(val) {
+ // eslint-disable-next-line no-underscore-dangle
+ this.questionText = translate(`Feedback_Question${this.question}`);
+ if (val) {
+ setInterval(() => {
+ $('#message').focus();
+ }, 500);
+ }
+ },
+ },
+ created() {
+ if (this.showQuestionBanner !== '0') {
+ this.initQuestion();
+ }
+ },
+ methods: {
+ initQuestion() {
+ if (!getCookie(cookieName)) {
+ this.question = this.getRandomIntBetween(0, 4);
+ } else {
+ // eslint-disable-next-line radix
+ this.question = parseInt(getCookie(cookieName));
+ }
+
+ const nextQuestion = (this.question + 1) % 4;
+ const sevenDays = 7 * 60 * 60 * 24 * 1000;
+ setCookie(cookieName, nextQuestion, sevenDays);
+ },
+ getRandomIntBetween(min, max) {
+ // eslint-disable-next-line no-param-reassign
+ min = Math.ceil(min);
+ // eslint-disable-next-line no-param-reassign
+ max = Math.floor(max);
+ return Math.floor(Math.random() * (max - min + 1) + min);
+ },
+ showQuestion() {
+ this.showFeedbackForm = true;
+ this.errorMessage = null;
+ },
+ disableReminder() {
+ AjaxHelper.fetch({
+ method: 'Feedback.updateFeedbackReminderDate',
+ });
+ this.hide = true;
+ },
+ async sendFeedback() {
+ this.errorMessage = null;
+ const res = await AjaxHelper.fetch({
+ method: 'Feedback.sendFeedbackForSurvey',
+ question: this.questionText,
+ message: this.feedbackMessage,
+ });
+
+ if (res.value === 'success') {
+ $('.modal').modal('close');
+ this.feedbackDone = true;
+ this.hide = true;
+ } else {
+ this.errorMessage = res.value;
+ }
+ },
+ },
+});
+</script>
diff --git a/plugins/Feedback/vue/src/RateFeature/RateFeature.vue b/plugins/Feedback/vue/src/RateFeature/RateFeature.vue
index 324142273f..ba90382e55 100644
--- a/plugins/Feedback/vue/src/RateFeature/RateFeature.vue
+++ b/plugins/Feedback/vue/src/RateFeature/RateFeature.vue
@@ -63,7 +63,6 @@
<div
v-if="like"
>
- <ReviewLinks />
</div>
<input
type="button"
@@ -78,7 +77,6 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { MatomoDialog, AjaxHelper } from 'CoreHome';
-import ReviewLinks from '../ReviewLinks/ReviewLinks.vue';
export default defineComponent({
props: {
@@ -86,7 +84,6 @@ export default defineComponent({
},
components: {
MatomoDialog,
- ReviewLinks,
},
data() {
return {
diff --git a/plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue b/plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue
deleted file mode 100644
index fa65f8569f..0000000000
--- a/plugins/Feedback/vue/src/ReviewLinks/ReviewLinks.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--
- Matomo - free/libre analytics platform
-
- @link https://matomo.org
- @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
--->
-
-<template>
- <div class="requestReview">
- <p>{{ translate('Feedback_PleaseLeaveExternalReviewForMatomo') }}</p><br><br>
- <div class="review-links">
- <div class="review-link">
- <a
- href="https://www.capterra.com/p/182627/Matomo-Analytics/"
- target="_blank"
- >
- <div class="image">
- <img
- loading="lazy"
- src="plugins/Feedback/images/capterra.svg"
- />
- </div>
- <div class="link">Capterra</div>
- </a>
- </div>
- <div class="review-link">
- <a
- href="https://www.g2crowd.com/products/matomo-formerly-piwik/details"
- target="_blank"
- >
- <div class="image">
- <img
- loading="lazy"
- src="plugins/Feedback/images/g2crowd.svg"
- />
- </div>
- <div class="link">G2 Crowd</div>
- </a>
- </div>
- <div class="review-link">
- <a
- href="https://www.producthunt.com/posts/matomo-2"
- target="_blank"
- >
- <div class="image">
- <img
- loading="lazy"
- src="plugins/Feedback/images/producthunt.svg"
- />
- </div>
- <div class="link">Product Hunt</div>
- </a>
- </div>
- <div class="review-link">
- <a
- href="https://www.saasworthy.com/product/matomo"
- target="_blank"
- >
- <div class="image">
- <img
- loading="lazy"
- src="plugins/Feedback/images/saasworthy.png"
- />
- </div>
- <div class="link">SaaSworthy</div>
- </a>
- </div>
- <div class="review-link">
- <a
- href="https://www.trustradius.com/products/matomo/reviews"
- target="_blank"
- >
- <div class="image">
- <img
- loading="lazy"
- src="plugins/Feedback/images/trustradius.svg"
- />
- </div>
- <div class="link">TrustRadius</div>
- </a>
- </div>
- </div>
- </div>
-</template>
-
-<script lang="ts">
-import { defineComponent } from 'vue';
-
-export default defineComponent({});
-</script>
diff --git a/plugins/Feedback/vue/src/index.ts b/plugins/Feedback/vue/src/index.ts
index 5f37c3b890..d4018200f8 100644
--- a/plugins/Feedback/vue/src/index.ts
+++ b/plugins/Feedback/vue/src/index.ts
@@ -6,6 +6,7 @@
*/
import './RateFeature/RateFeature.adapter';
+import './FeedbackQuestion/FeedbackQuestion.adapter';
-export { default as ReviewLinks } from './ReviewLinks/ReviewLinks.vue';
export { default as RateFeature } from './RateFeature/RateFeature.vue';
+export { default as FeedbackQuestion } from './FeedbackQuestion/FeedbackQuestion.vue';