{"version":3,"sources":["webpack://plentymarkets-feedback/./resources/js/src/app/store/FeedbackModule.js","webpack://plentymarkets-feedback/./resources/js/src/app/mixins/loadFeedbackModule.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.array.index-of.js","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/FeedbackAverage.vue?95f7","webpack://plentymarkets-feedback/resources/js/src/app/components/item/FeedbackAverage.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/FeedbackAverage.vue?be30","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/FeedbackAverage.vue"],"names":["loadPaginatedFeedbacksLock","loadFeedbackUserLock","mutations","setFeedbackAuthenticatedUser","state","authenticatedUser","setFeedbackCounts","counts","setFeedbacks","feedbacks","concat","setFeedbackItemAttributes","attributes","itemAttributes","setFeedbackPagination","pagination","lastPage","isLastPage","incrementCurrentFeedbackPage","currentPage","addFeedback","feedback","unshift","isVisible","ratingValue","parseInt","feedbackRating","rating","ratingsCountTotal","recalculateAverage","deleteFeedback","feedbackId","parentFeedbackId","filterFeedbackList","filterReplyList","actions","loadFeedbackUser","commit","itemId","variationId","itemString","undefined","$","ajax","type","url","success","data","error","jqXHR","textStatus","errorThrown","console","loadFeedbackCounts","countsLoaded","loadPaginatedFeedbacks","feedbacksPerPage","request","getters","feedbackList","filter","id","replyId","map","replies","reply","average","ratingsCountOf5","ratingsCountOf4","ratingsCountOf3","ratingsCountOf2","ratingsCountOf1","averageValue","created","this","$store","hasModule","App","isSSR","registerModule","FeedbackModule","preserveState","$indexOf","arrayMethodIsStrict","nativeIndexOf","indexOf","NEGATIVE_ZERO","STRICT_METHOD","target","proto","forced","searchElement","apply","arguments","length","render","_vm","_h","$createElement","_c","_self","showEmptyRatings","staticClass","class","size","_l","index","key","_v","style","width","fill","_e","showRatingsAmount","attrs","href","on","click","$event","preventDefault","scrollTo","_s","_withStripped","name","mixins","inject","default","props","Boolean","sizeOfStars","String","computed","fillValue","mounted","isShopBuilder","getAverage","methods","dispatch","targetElement","clientHeight","classList","contains","parentElement","window","component","options","__file"],"mappings":"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","file":"chunks/feedback-5.min.js","sourcesContent":["let loadPaginatedFeedbacksLock = false\nlet loadFeedbackUserLock = false\n\nconst state = () => ({\n  authenticatedUser: {},\n  counts: {},\n  feedbacks: [],\n  itemAttributes: [],\n  pagination: {\n    isLastPage: true,\n    lastPage: 1,\n    currentPage: 1\n  }\n})\n\nconst mutations =\n    {\n      setFeedbackAuthenticatedUser (state, authenticatedUser) {\n        state.authenticatedUser = authenticatedUser\n      },\n\n      setFeedbackCounts (state, counts) {\n        state.counts = counts\n      },\n\n      setFeedbacks (state, feedbacks) {\n        state.feedbacks = state.feedbacks.concat(feedbacks)\n      },\n\n      setFeedbackItemAttributes (state, attributes) {\n        state.itemAttributes = attributes\n      },\n\n      setFeedbackPagination (state, pagination) {\n        state.pagination.lastPage = pagination.lastPage\n        state.pagination.isLastPage = pagination.isLastPage\n      },\n\n      incrementCurrentFeedbackPage (state) {\n        state.pagination.currentPage++\n      },\n\n      addFeedback (state, feedback) {\n        // Add the feedback to the current users feedback list\n        state.authenticatedUser.feedbacks.unshift(feedback)\n\n        if (feedback.isVisible) {\n          const ratingValue = parseInt(feedback.feedbackRating.rating.ratingValue)\n          if (ratingValue > 0 && ratingValue <= 5) {\n            state.counts['ratingsCountOf' + ratingValue]++\n            state.counts.ratingsCountTotal++\n\n            recalculateAverage(state)\n          }\n        }\n      },\n\n      deleteFeedback (state, { feedbackId, parentFeedbackId, feedback }) {\n        // If visible, adjust counts\n        if (feedback.isVisible && parentFeedbackId === null) {\n          const ratingValue = parseInt(feedback.feedbackRating.rating.ratingValue)\n          if (ratingValue > 0 && ratingValue <= 5) {\n            state.counts['ratingsCountOf' + ratingValue]--\n            state.counts.ratingsCountTotal--\n\n            recalculateAverage(state)\n          }\n        }\n\n        if (parentFeedbackId === null) {\n          state.feedbacks = filterFeedbackList(state.feedbacks, feedbackId)\n          state.authenticatedUser.feedbacks = filterFeedbackList(state.authenticatedUser.feedbacks, feedbackId)\n        } else {\n          state.feedbacks = filterReplyList(state.feedbacks, parentFeedbackId, feedbackId)\n          state.authenticatedUser.feedbacks = filterReplyList(state.authenticatedUser.feedbacks, parentFeedbackId, feedbackId)\n        }\n      }\n    }\n\nconst actions =\n    {\n      loadFeedbackUser ({ commit }, { itemId, variationId }) {\n        if (!loadFeedbackUserLock) {\n          loadFeedbackUserLock = true\n          let itemString = ''\n\n          if (itemId !== undefined && variationId !== undefined) {\n            itemString = `/${itemId}/${variationId}`\n          }\n\n          return $.ajax({\n            type: 'GET',\n            url: '/rest/feedbacks/user' + itemString,\n            success: function (data) {\n              commit('setFeedbackAuthenticatedUser', data)\n              loadFeedbackUserLock = false\n            },\n            error: function (jqXHR, textStatus, errorThrown) {\n              loadFeedbackUserLock = false\n              console.error(errorThrown)\n            }\n          })\n        }\n      },\n\n      loadFeedbackCounts ({ commit, state }, itemId) {\n        if (!countsLoaded) {\n          countsLoaded = true\n\n          return $.ajax({\n            type: 'GET',\n            url: '/rest/feedbacks/feedback/helper/counts/' + itemId,\n            success: function (data) {\n              commit('setFeedbackCounts', data.counts)\n            },\n            error: function (jqXHR, textStatus, errorThrown) {\n              console.error(errorThrown)\n            }\n          })\n        }\n      },\n\n      loadPaginatedFeedbacks ({ commit, state }, { itemId, feedbacksPerPage }) {\n        if (!loadPaginatedFeedbacksLock) {\n          loadPaginatedFeedbacksLock = true\n          const request = $.ajax({\n            type: 'GET',\n            url: '/rest/feedbacks/feedback/helper/feedbacklist/' + itemId + '/' + state.pagination.currentPage,\n            data: {\n              feedbacksPerPage: feedbacksPerPage\n            },\n            success: function (data) {\n              commit('setFeedbacks', data.feedbacks)\n              commit('setFeedbackItemAttributes', data.itemAttributes)\n              commit('setFeedbackPagination', data.pagination)\n              loadPaginatedFeedbacksLock = false\n            },\n            error: function (jqXHR, textStatus, errorThrown) {\n              console.error(errorThrown)\n              loadPaginatedFeedbacksLock = false\n            }\n          })\n          commit('incrementCurrentFeedbackPage')\n          return request\n        }\n      },\n\n      deleteFeedback ({ commit, state }, { feedbackId, parentFeedbackId, feedback }) {\n        return $.ajax({\n          type: 'DELETE',\n          url: '/rest/feedbacks/feedback/delete/' + feedbackId,\n          success: (data) => {\n            commit('deleteFeedback', {\n              feedbackId: feedbackId,\n              parentFeedbackId: parentFeedbackId,\n              feedback: feedback\n            })\n          }\n        })\n      }\n    }\n\nconst getters =\n    {}\n\nlet countsLoaded = false\n\nexport default {\n  state,\n  mutations,\n  actions,\n  getters\n}\n\n// Utility functions\nfunction filterFeedbackList (feedbackList, feedbackId) {\n  return feedbackList.filter(function (feedback) {\n    return feedback.id !== feedbackId\n  })\n}\n\nfunction filterReplyList (feedbackList, feedbackId, replyId) {\n  return feedbackList.map(function (feedback) {\n    if (feedbackId === feedback.id) {\n      feedback.replies = feedback.replies.filter(function (reply) {\n        return reply.id !== replyId\n      })\n    }\n    return feedback\n  })\n}\n\nfunction recalculateAverage (state) {\n  // Calculate average anew\n  let average = 0\n  average += state.counts.ratingsCountOf5 * 5\n  average += state.counts.ratingsCountOf4 * 4\n  average += state.counts.ratingsCountOf3 * 3\n  average += state.counts.ratingsCountOf2 * 2\n  average += state.counts.ratingsCountOf1 * 1\n  average /= state.counts.ratingsCountTotal\n\n  state.counts.averageValue = average\n}\n","import FeedbackModule from '../store/FeedbackModule'\n\nexport default {\n  created () {\n    if (!this.$store.hasModule('feedback') && !App.isSSR) {\n      this.$store.registerModule('feedback', FeedbackModule, { preserveState: !!this.$store.state.feedback })\n    }\n  }\n}\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", [\n    _vm.showEmptyRatings || _vm.counts.averageValue > 0\n      ? _c(\"div\", { staticClass: \"feedback-stars-average\", class: _vm.size }, [\n          _c(\n            \"div\",\n            { staticClass: \"feedback-stars-background clearfix\" },\n            _vm._l(5, function(index) {\n              return _c(\n                \"div\",\n                {\n                  key: \"star_background_\" + index,\n                  staticClass: \"feedback-star\"\n                },\n                [_c(\"i\", { staticClass: \"fa fa-star\" })]\n              )\n            }),\n            0\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"div\",\n            {\n              staticClass: \"feedback-stars-overlay-wrap\",\n              style: { width: _vm.fill }\n            },\n            [\n              _c(\n                \"div\",\n                { staticClass: \"feedback-stars-overlay clearfix\" },\n                _vm._l(5, function(index) {\n                  return _c(\n                    \"div\",\n                    {\n                      key: \"star_overlay_\" + index,\n                      staticClass: \"feedback-star\"\n                    },\n                    [_c(\"i\", { staticClass: \"fa fa-star\" })]\n                  )\n                }),\n                0\n              )\n            ]\n          )\n        ])\n      : _vm._e(),\n    _vm._v(\" \"),\n    _vm.showRatingsAmount &&\n    (_vm.showEmptyRatings || _vm.counts.averageValue > 0)\n      ? _c(\"span\", { class: _vm.size }, [\n          _c(\n            \"a\",\n            {\n              attrs: { href: \"#\" },\n              on: {\n                click: function($event) {\n                  $event.preventDefault()\n                  return _vm.scrollTo($event)\n                }\n              }\n            },\n            [_vm._v(\"(\" + _vm._s(_vm.counts.ratingsCountTotal) + \")\")]\n          )\n        ])\n      : _vm._e()\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div\n      v-if=\"showEmptyRatings || counts.averageValue > 0\"\n      class=\"feedback-stars-average\"\n      :class=\"size\"\n    >\n      <div class=\"feedback-stars-background clearfix\">\n        <div\n          v-for=\"index in 5\"\n          :key=\"'star_background_' + index\"\n          class=\"feedback-star\"\n        >\n          <i class=\"fa fa-star\" />\n        </div>\n      </div>\n      <div\n        class=\"feedback-stars-overlay-wrap\"\n        :style=\"{width:fill}\"\n      >\n        <div class=\"feedback-stars-overlay clearfix\">\n          <div\n            v-for=\"index in 5\"\n            :key=\"'star_overlay_' + index\"\n            class=\"feedback-star\"\n          >\n            <i class=\"fa fa-star\" />\n          </div>\n        </div>\n      </div>\n    </div>\n    <span\n      v-if=\"showRatingsAmount && (showEmptyRatings || counts.averageValue > 0)\"\n      :class=\"size\"\n    ><a\n      href=\"#\"\n      @click.prevent=\"scrollTo\"\n    >({{ counts.ratingsCountTotal }})</a></span>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex'\nimport loadFeedbackModule from '../../mixins/loadFeedbackModule'\n\nexport default {\n  name: 'FeedbackAverage',\n  mixins: [loadFeedbackModule],\n  inject: {\n    itemId: {\n      default: null\n    }\n  },\n\n  props: {\n    showEmptyRatings: Boolean,\n    sizeOfStars: {\n      type: String,\n      default: 'small'\n    },\n    showRatingsAmount: Boolean\n  },\n\n  computed: {\n    fill () {\n      let fillValue = (this.counts.averageValue * 100) / 5\n      fillValue += '%'\n      return fillValue\n    },\n\n    size () {\n      return this.sizeOfStars.indexOf('-stars') !== -1 ? this.sizeOfStars : this.sizeOfStars + '-stars'\n    },\n\n    ...mapState({\n      counts: state => state.feedback.counts\n    })\n  },\n\n  mounted () {\n    if (!App.isShopBuilder) {\n      this.getAverage()\n    }\n  },\n\n  methods: {\n    getAverage () {\n      this.$store.dispatch('loadFeedbackCounts', this.itemId)\n    },\n\n    scrollTo () {\n      let targetElement = document.querySelector('[data-feedback]')\n      const headerMargin = document.querySelector('#vue-app').offsetTop\n\n      if (targetElement) {\n        while (!(targetElement.clientHeight && targetElement.classList.contains('widget')) && !!targetElement.parentElement) {\n          targetElement = targetElement.parentElement\n        }\n\n        if (targetElement) {\n          const elementTop = targetElement.getBoundingClientRect().top + window.scrollY - headerMargin\n\n          window.scrollTo(\n            {\n              top: elementTop,\n              behavior: 'smooth'\n            }\n          )\n        }\n      }\n    }\n  }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackAverage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackAverage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeedbackAverage.vue?vue&type=template&id=84655b24&\"\nimport script from \"./FeedbackAverage.vue?vue&type=script&lang=js&\"\nexport * from \"./FeedbackAverage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/stevetentrop/workspace2/developer-environment/plugins/Feedback/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('84655b24')) {\n      api.createRecord('84655b24', component.options)\n    } else {\n      api.reload('84655b24', component.options)\n    }\n    module.hot.accept(\"./FeedbackAverage.vue?vue&type=template&id=84655b24&\", function () {\n      api.rerender('84655b24', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/FeedbackAverage.vue\"\nexport default component.exports"],"sourceRoot":""}