{"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","actions","loadFeedbackUser","commit","data","itemId","variationId","itemString","undefined","$","ajax","type","url","success","error","jqXHR","textStatus","errorThrown","console","loadFeedbackCounts","state","countsLoaded","counts","loadPaginatedFeedbacks","feedbacksPerPage","request","pagination","currentPage","feedbacks","itemAttributes","deleteFeedback","feedbackId","parentFeedbackId","feedback","authenticatedUser","isLastPage","lastPage","mutations","setFeedbackAuthenticatedUser","setFeedbackCounts","setFeedbacks","concat","setFeedbackItemAttributes","attributes","setFeedbackPagination","incrementCurrentFeedbackPage","addFeedback","unshift","isVisible","ratingValue","parseInt","feedbackRating","rating","ratingsCountTotal","recalculateAverage","filterFeedbackList","filterReplyList","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","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 }, { data, 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            data: data,\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\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/workspace/localsystem/plugins/inbox/set_plugins/1/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":""}