{"version":3,"file":"chunks/feedback-3.min.js","mappings":"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","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/internals/a-possible-prototype.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/add-to-unscopables.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/array-for-each.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/dom-iterables.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/inherit-if-required.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/object-create.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/object-define-properties.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/object-keys.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/regexp-flags.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/string-trim-forced.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/string-trim.js","webpack://plentymarkets-feedback/./node_modules/core-js/internals/whitespaces.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.array.for-each.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.array.includes.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.number.constructor.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/es.string.trim.js","webpack://plentymarkets-feedback/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackContainer.vue?f8f4","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackForm.vue?2dd7","webpack://plentymarkets-feedback/resources/js/src/app/components/item/singleitem/FeedbackForm.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackForm.vue?3b84","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackForm.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackList.vue?369c","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackList.vue?4766","webpack://plentymarkets-feedback/resources/js/src/app/components/item/singleitem/FeedbackList.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackList.vue","webpack://plentymarkets-feedback/resources/js/src/app/components/item/singleitem/FeedbackContainer.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackContainer.vue?6a57","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackContainer.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackListEntry.vue?a6d3","webpack://plentymarkets-feedback/resources/js/src/app/components/item/singleitem/FeedbackListEntry.vue","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackListEntry.vue?f5d7","webpack://plentymarkets-feedback/./resources/js/src/app/components/item/singleitem/FeedbackListEntry.vue"],"sourcesContent":["let loadPaginatedFeedbacksLock = false\nlet loadFeedbackUserLock = false\n\nconst state = () => ({\n  authenticatedUser: {},\n  invisibleFeedbacks: [],\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        state.invisibleFeedbacks = state.authenticatedUser.feedbacks.filter((item) => !item.isVisible)\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        state.invisibleFeedbacks.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          state.invisibleFeedbacks = filterFeedbackList(state.invisibleFeedbacks, feedbackId)\n        } else {\n          state.feedbacks = filterReplyList(state.feedbacks, parentFeedbackId, feedbackId)\n          state.authenticatedUser.feedbacks = filterReplyList(state.authenticatedUser.feedbacks, parentFeedbackId, feedbackId)\n          state.invisibleFeedbacks = filterReplyList(state.invisibleFeedbacks, 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      loadPaginatedFeedbacks ({ commit, state }, { itemId, feedbacksPerPage, language }) {\n        if (!loadPaginatedFeedbacksLock) {\n          loadPaginatedFeedbacksLock = true\n          const request = $.ajax({\n            type: 'GET',\n            url: '/rest/storefront/feedbacks/feedback/helper/feedbacklist/' + itemId + '/' + state.pagination.currentPage,\n            beforeSend: function (xhr) {\n              xhr.setRequestHeader('lang', language)\n            },\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              commit('setFeedbackCounts', data.counts)\n              loadPaginatedFeedbacksLock = false\n            },\n            error: function (jqXHR, textStatus, errorThrown) {\n              console.error(errorThrown)\n              loadPaginatedFeedbacksLock = false\n            }\n          })\n          if (language) {\n            commit('incrementCurrentFeedbackPage')\n          }\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\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","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject -- old IE */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\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(\n    \"section\",\n    { staticClass: \"feedback-container\" },\n    [\n      _c(\"div\", { staticClass: \"title\" }, [\n        _vm._v(\n          \"\\n    \" +\n            _vm._s(_vm.$translate(\"Feedback::Feedback.customerReviews\")) +\n            \"\\n    \"\n        ),\n        _c(\"small\", { staticClass: \"feedback-average-count\" }, [\n          _vm._v(\" (\" + _vm._s(_vm.counts.ratingsCountTotal) + \")\")\n        ])\n      ]),\n      _vm._v(\" \"),\n      _c(\"div\", { staticClass: \"feedback-stars-average\" }, [\n        _c(\n          \"div\",\n          { staticClass: \"feedback-stars-background clearfix\" },\n          _vm._l(5, function(index) {\n            return _c(\n              \"div\",\n              {\n                key: \"feedback_stars_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.counts.averageValue * 100) / 5 + \"%\" }\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: \"feedback_stars_overlay_\" + index,\n                    staticClass: \"feedback-star\"\n                  },\n                  [_c(\"i\", { staticClass: \"fa fa-star\" })]\n                )\n              }),\n              0\n            )\n          ]\n        )\n      ]),\n      _vm._v(\" \"),\n      _c(\"hr\"),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"row my-2\", class: _vm.classes, style: _vm.styles },\n        [\n          _c(\"div\", { staticClass: \"col-sm-6\" }, [\n            _c(\"div\", { staticClass: \"feedback-bars\" }, [\n              _c(\"div\", { staticClass: \"feedback-bar-wrap\" }, [\n                _vm._m(0),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"feedback-bar\" }, [\n                  _c(\"div\", {\n                    staticClass: \"feedback-bar-fill bg-primary bg-appearance\",\n                    style: {\n                      width:\n                        (_vm.counts.ratingsCountOf5 / _vm.counts.highestCount) *\n                          100 +\n                        \"%\"\n                    }\n                  })\n                ]),\n                _vm._v(\" \"),\n                _c(\"p\", { staticClass: \"feedback-bar-text-after\" }, [\n                  _vm._v(\n                    \"\\n            \" +\n                      _vm._s(_vm.counts.ratingsCountOf5) +\n                      \"\\n          \"\n                  )\n                ])\n              ]),\n              _vm._v(\" \"),\n              _c(\"div\", { staticClass: \"feedback-bar-wrap\" }, [\n                _vm._m(1),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"feedback-bar\" }, [\n                  _c(\"div\", {\n                    staticClass: \"feedback-bar-fill bg-primary bg-appearance\",\n                    style: {\n                      width:\n                        (_vm.counts.ratingsCountOf4 / _vm.counts.highestCount) *\n                          100 +\n                        \"%\"\n                    }\n                  })\n                ]),\n                _vm._v(\" \"),\n                _c(\"p\", { staticClass: \"feedback-bar-text-after\" }, [\n                  _vm._v(\n                    \"\\n            \" +\n                      _vm._s(_vm.counts.ratingsCountOf4) +\n                      \"\\n          \"\n                  )\n                ])\n              ]),\n              _vm._v(\" \"),\n              _c(\"div\", { staticClass: \"feedback-bar-wrap\" }, [\n                _vm._m(2),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"feedback-bar\" }, [\n                  _c(\"div\", {\n                    staticClass: \"feedback-bar-fill bg-primary bg-appearance\",\n                    style: {\n                      width:\n                        (_vm.counts.ratingsCountOf3 / _vm.counts.highestCount) *\n                          100 +\n                        \"%\"\n                    }\n                  })\n                ]),\n                _vm._v(\" \"),\n                _c(\"p\", { staticClass: \"feedback-bar-text-after\" }, [\n                  _vm._v(\n                    \"\\n            \" +\n                      _vm._s(_vm.counts.ratingsCountOf3) +\n                      \"\\n          \"\n                  )\n                ])\n              ]),\n              _vm._v(\" \"),\n              _c(\"div\", { staticClass: \"feedback-bar-wrap\" }, [\n                _vm._m(3),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"feedback-bar\" }, [\n                  _c(\"div\", {\n                    staticClass: \"feedback-bar-fill bg-primary bg-appearance\",\n                    style: {\n                      width:\n                        (_vm.counts.ratingsCountOf2 / _vm.counts.highestCount) *\n                          100 +\n                        \"%\"\n                    }\n                  })\n                ]),\n                _vm._v(\" \"),\n                _c(\"p\", { staticClass: \"feedback-bar-text-after\" }, [\n                  _vm._v(\n                    \"\\n            \" +\n                      _vm._s(_vm.counts.ratingsCountOf2) +\n                      \"\\n          \"\n                  )\n                ])\n              ]),\n              _vm._v(\" \"),\n              _c(\"div\", { staticClass: \"feedback-bar-wrap\" }, [\n                _vm._m(4),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"feedback-bar\" }, [\n                  _c(\"div\", {\n                    staticClass: \"feedback-bar-fill bg-primary bg-appearance\",\n                    style: {\n                      width:\n                        (_vm.counts.ratingsCountOf1 / _vm.counts.highestCount) *\n                          100 +\n                        \"%\"\n                    }\n                  })\n                ]),\n                _vm._v(\" \"),\n                _c(\"p\", { staticClass: \"feedback-bar-text-after\" }, [\n                  _vm._v(\n                    \"\\n            \" +\n                      _vm._s(_vm.counts.ratingsCountOf1) +\n                      \"\\n          \"\n                  )\n                ])\n              ])\n            ])\n          ]),\n          _vm._v(\" \"),\n          _c(\n            \"div\",\n            { staticClass: \"col-sm-6\" },\n            [\n              !_vm.isLoading\n                ? _c(\"feedback-form\", {\n                    attrs: {\n                      \"variation-id\": _vm.variationId,\n                      options: _vm.optionsForm\n                    }\n                  })\n                : _vm._e()\n            ],\n            1\n          )\n        ]\n      ),\n      _vm._v(\" \"),\n      _c(\"hr\"),\n      _vm._v(\" \"),\n      _c(\"feedback-list\", {\n        attrs: {\n          feedbacks: _vm.invisibleFeedbacks,\n          \"is-last-page\": true,\n          \"show-controls\": true,\n          classes: _vm.classes,\n          styles: _vm.styles,\n          options: _vm.optionsList\n        },\n        on: {\n          delete: function($event) {\n            return _vm.showDeleteConfirmation($event)\n          }\n        }\n      }),\n      _vm._v(\" \"),\n      _c(\"feedback-list\", {\n        attrs: {\n          feedbacks: _vm.feedbacks,\n          \"is-last-page\": _vm.pagination.isLastPage,\n          \"show-controls\": false,\n          classes: _vm.classes,\n          styles: _vm.styles,\n          options: _vm.optionsList\n        },\n        on: {\n          \"load-more\": function($event) {\n            return _vm.loadFeedbacks()\n          },\n          delete: function($event) {\n            return _vm.showDeleteConfirmation($event)\n          }\n        }\n      }),\n      _vm._v(\" \"),\n      _vm.isLoading\n        ? _c(\"p\", { staticClass: \"loading-hint\" }, [\n            _vm._v(\n              \"\\n    \" +\n                _vm._s(_vm.$translate(\"Feedback::Feedback.loadingFeedbacks\")) +\n                \"\\n  \"\n            )\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        {\n          ref: \"confirmDeleteModal\",\n          staticClass: \"modal fade\",\n          attrs: {\n            tabindex: \"-1\",\n            role: \"dialog\",\n            \"aria-labelledby\": \"feedbackConfirmDeleteLabel-\" + _vm._uid,\n            \"aria-hidden\": \"true\"\n          }\n        },\n        [\n          _c(\n            \"div\",\n            { staticClass: \"modal-dialog\", attrs: { role: \"document\" } },\n            [\n              _c(\"div\", { staticClass: \"modal-content\" }, [\n                _c(\"div\", { staticClass: \"modal-header\" }, [\n                  _c(\n                    \"span\",\n                    {\n                      staticClass: \"modal-title h5\",\n                      attrs: { id: \"feedbackConfirmDeleteLabel-\" + _vm._uid }\n                    },\n                    [\n                      _vm._v(\n                        _vm._s(\n                          _vm.$translate(\"Feedback::Feedback.deleteConfirm\")\n                        )\n                      )\n                    ]\n                  ),\n                  _vm._v(\" \"),\n                  _vm._m(5)\n                ]),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"modal-body\" }, [\n                  !!_vm.feedbackToDelete && _vm.feedbackToDelete.isReply\n                    ? _c(\"p\", { staticClass: \"feedback-delete-confirmation\" }, [\n                        _vm._v(\n                          \"\\n            \" +\n                            _vm._s(\n                              _vm.$translate(\"Feedback::Feedback.deleteReply\")\n                            ) +\n                            \"\\n          \"\n                        )\n                      ])\n                    : _c(\"p\", { staticClass: \"feedback-delete-confirmation\" }, [\n                        _vm._v(\n                          \"\\n            \" +\n                            _vm._s(\n                              _vm.$translate(\"Feedback::Feedback.deleteReview\")\n                            ) +\n                            \"\\n          \"\n                        )\n                      ])\n                ]),\n                _vm._v(\" \"),\n                _c(\"div\", { staticClass: \"modal-footer\" }, [\n                  _c(\n                    \"button\",\n                    {\n                      staticClass: \"btn btn-secondary\",\n                      attrs: { type: \"button\", \"data-dismiss\": \"modal\" }\n                    },\n                    [\n                      _vm._v(\n                        \"\\n            \" +\n                          _vm._s(_vm.$translate(\"Feedback::Feedback.cancel\")) +\n                          \"\\n          \"\n                      )\n                    ]\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"button\",\n                    {\n                      staticClass: \"btn btn-primary btn-appearance\",\n                      attrs: { type: \"button\" },\n                      on: {\n                        click: function($event) {\n                          return _vm.deleteFeedback()\n                        }\n                      }\n                    },\n                    [\n                      _vm._v(\n                        \"\\n            \" +\n                          _vm._s(\n                            _vm.$translate(\"Feedback::Feedback.yesDeleteIt\")\n                          ) +\n                          \"\\n          \"\n                      )\n                    ]\n                  )\n                ])\n              ])\n            ]\n          )\n        ]\n      )\n    ],\n    1\n  )\n}\nvar staticRenderFns = [\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"p\", { staticClass: \"feedback-bar-text-before\" }, [\n      _vm._v(\"\\n            5 \"),\n      _c(\"i\", { staticClass: \"fa fa-star\" })\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"p\", { staticClass: \"feedback-bar-text-before\" }, [\n      _vm._v(\"\\n            4 \"),\n      _c(\"i\", { staticClass: \"fa fa-star\" })\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"p\", { staticClass: \"feedback-bar-text-before\" }, [\n      _vm._v(\"\\n            3 \"),\n      _c(\"i\", { staticClass: \"fa fa-star\" })\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"p\", { staticClass: \"feedback-bar-text-before\" }, [\n      _vm._v(\"\\n            2 \"),\n      _c(\"i\", { staticClass: \"fa fa-star\" })\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"p\", { staticClass: \"feedback-bar-text-before\" }, [\n      _vm._v(\"\\n            1 \"),\n      _c(\"i\", { staticClass: \"fa fa-star\" })\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\n      \"button\",\n      {\n        staticClass: \"close\",\n        attrs: {\n          type: \"button\",\n          \"data-dismiss\": \"modal\",\n          \"aria-label\": \"Close\"\n        }\n      },\n      [_c(\"span\", { attrs: { \"aria-hidden\": \"true\" } }, [_vm._v(\"×\")])]\n    )\n  }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","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.authenticatedUser.isLoggedIn || _vm.options.allowGuestFeedbacks\n      ? _c(\"div\", { staticClass: \"createFeedback\" }, [\n          _c(\"div\", { staticClass: \"stars\" }, [\n            _c(\n              \"fieldset\",\n              [\n                _c(\"legend\", [\n                  _c(\"span\", { staticClass: \"d-none\" }, [\n                    _vm._v(\n                      _vm._s(\n                        _vm.$translate(\"Feedback::Feedback.feedbackTextLegend\")\n                      )\n                    )\n                  ])\n                ]),\n                _vm._v(\" \"),\n                _vm._l([5, 4, 3, 2, 1], function(i) {\n                  return [\n                    _c(\"input\", {\n                      directives: [\n                        {\n                          name: \"model\",\n                          rawName: \"v-model\",\n                          value: _vm.feedback.ratingValue,\n                          expression: \"feedback.ratingValue\"\n                        }\n                      ],\n                      key: \"star_input_\" + i,\n                      class: \"star star-\" + i,\n                      attrs: {\n                        id: \"star-\" + i + _vm._uid,\n                        type: \"radio\",\n                        name: \"ratingValue\" + _vm._uid\n                      },\n                      domProps: {\n                        value: i,\n                        checked: _vm._q(_vm.feedback.ratingValue, i)\n                      },\n                      on: {\n                        change: function($event) {\n                          return _vm.$set(_vm.feedback, \"ratingValue\", i)\n                        }\n                      }\n                    }),\n                    _vm._v(\" \"),\n                    _c(\n                      \"label\",\n                      {\n                        key: \"star_label_\" + i,\n                        class: \"star star-\" + i,\n                        attrs: { for: \"star-\" + i + _vm._uid }\n                      },\n                      [\n                        _c(\"span\", { staticClass: \"d-none\" }, [\n                          _vm._v(\n                            _vm._s(\n                              _vm.$translate(\n                                \"Feedback::Feedback.feedbackAverageLabel\"\n                              )\n                            )\n                          )\n                        ])\n                      ]\n                    )\n                  ]\n                })\n              ],\n              2\n            )\n          ]),\n          _vm._v(\" \"),\n          _vm.ratingMissing\n            ? _c(\"p\", { staticClass: \"feedback-error alert alert-danger\" }, [\n                _vm._v(\n                  \"\\n      \" +\n                    _vm._s(\n                      _vm.$translate(\"Feedback::Feedback.ratingRequired\")\n                    ) +\n                    \"\\n    \"\n                )\n              ])\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.authenticatedUser.isLoggedIn && _vm.options.allowGuestFeedbacks\n            ? _c(\"div\", { staticClass: \"form-group\" }, [\n                _c(\"input\", {\n                  directives: [\n                    {\n                      name: \"model\",\n                      rawName: \"v-model\",\n                      value: _vm.feedback.authorName,\n                      expression: \"feedback.authorName\"\n                    }\n                  ],\n                  staticClass: \"form-control\",\n                  attrs: {\n                    id: \"author\",\n                    type: \"text\",\n                    name: \"author\",\n                    placeholder: _vm.$translate(\n                      \"Feedback::Feedback.authorName\"\n                    ),\n                    disabled:\n                      _vm.authenticatedUser.limitReached ||\n                      !_vm.authenticatedUser.hasPurchased\n                  },\n                  domProps: { value: _vm.feedback.authorName },\n                  on: {\n                    input: function($event) {\n                      if ($event.target.composing) {\n                        return\n                      }\n                      _vm.$set(_vm.feedback, \"authorName\", $event.target.value)\n                    }\n                  }\n                }),\n                _vm._v(\" \"),\n                _c(\n                  \"label\",\n                  {\n                    staticClass: \"position-absolute\",\n                    attrs: { for: \"author\" }\n                  },\n                  [\n                    _c(\"span\", { staticClass: \"d-none\" }, [\n                      _vm._v(\n                        _vm._s(_vm.$translate(\"Feedback::Feedback.authorName\"))\n                      )\n                    ])\n                  ]\n                ),\n                _vm._v(\" \"),\n                _c(\"input\", {\n                  directives: [\n                    {\n                      name: \"model\",\n                      rawName: \"v-model\",\n                      value: _vm.feedback.honeypot,\n                      expression: \"feedback.honeypot\"\n                    }\n                  ],\n                  staticClass: \"form-control\",\n                  attrs: {\n                    id: \"feedback-textfield\",\n                    type: \"text\",\n                    name: \"feedback-textfield\"\n                  },\n                  domProps: { value: _vm.feedback.honeypot },\n                  on: {\n                    input: function($event) {\n                      if ($event.target.composing) {\n                        return\n                      }\n                      _vm.$set(_vm.feedback, \"honeypot\", $event.target.value)\n                    }\n                  }\n                }),\n                _vm._v(\" \"),\n                _c(\n                  \"label\",\n                  {\n                    staticClass: \"position-absolute\",\n                    attrs: { for: \"feedback-textfield\" }\n                  },\n                  [\n                    _c(\"span\", { staticClass: \"d-none\" }, [\n                      _vm._v(\n                        _vm._s(\n                          _vm.$translate(\"Feedback::Feedback.feedbackTextLabel\")\n                        )\n                      )\n                    ])\n                  ]\n                )\n              ])\n            : _vm._e(),\n          _vm._v(\" \"),\n          _c(\"div\", { staticClass: \"form-group\" }, [\n            _c(\"input\", {\n              directives: [\n                {\n                  name: \"model\",\n                  rawName: \"v-model\",\n                  value: _vm.feedback.title,\n                  expression: \"feedback.title\"\n                }\n              ],\n              staticClass: \"form-control\",\n              class: { \"is-invalid\": _vm.titleMissing },\n              attrs: {\n                id: \"title\",\n                type: \"text\",\n                name: \"title\",\n                placeholder: _vm.$translate(\"Feedback::Feedback.title\"),\n                disabled:\n                  _vm.authenticatedUser.limitReached ||\n                  !_vm.authenticatedUser.hasPurchased\n              },\n              domProps: { value: _vm.feedback.title },\n              on: {\n                input: function($event) {\n                  if ($event.target.composing) {\n                    return\n                  }\n                  _vm.$set(_vm.feedback, \"title\", $event.target.value)\n                }\n              }\n            }),\n            _vm._v(\" \"),\n            _c(\n              \"label\",\n              { staticClass: \"position-absolute\", attrs: { for: \"title\" } },\n              [\n                _c(\"span\", { staticClass: \"d-none\" }, [\n                  _vm._v(_vm._s(_vm.$translate(\"Feedback::Feedback.title\")))\n                ])\n              ]\n            ),\n            _vm._v(\" \"),\n            _c(\"div\", { staticClass: \"invalid-feedback\" }, [\n              _vm._v(\n                \"\\n        \" +\n                  _vm._s(_vm.$translate(\"Feedback::Feedback.titleRequired\")) +\n                  \"\\n      \"\n              )\n            ])\n          ]),\n          _vm._v(\" \"),\n          _c(\"div\", { staticClass: \"form-group\" }, [\n            _c(\"textarea\", {\n              directives: [\n                {\n                  name: \"model\",\n                  rawName: \"v-model\",\n                  value: _vm.feedback.message,\n                  expression: \"feedback.message\"\n                }\n              ],\n              staticClass: \"form-control\",\n              attrs: {\n                id: \"message\",\n                name: \"message\",\n                rows: \"3\",\n                placeholder: _vm.$translate(\"Feedback::Feedback.reviewMessage\"),\n                disabled:\n                  _vm.authenticatedUser.limitReached ||\n                  !_vm.authenticatedUser.hasPurchased\n              },\n              domProps: { value: _vm.feedback.message },\n              on: {\n                input: function($event) {\n                  if ($event.target.composing) {\n                    return\n                  }\n                  _vm.$set(_vm.feedback, \"message\", $event.target.value)\n                }\n              }\n            }),\n            _vm._v(\" \"),\n            _c(\n              \"label\",\n              { staticClass: \"position-absolute\", attrs: { for: \"message\" } },\n              [\n                _c(\"span\", { staticClass: \"d-none\" }, [\n                  _vm._v(\n                    _vm._s(_vm.$translate(\"Feedback::Feedback.reviewMessage\"))\n                  )\n                ])\n              ]\n            )\n          ]),\n          _vm._v(\" \"),\n          _vm.authenticatedUser.limitReached\n            ? _c(\n                \"div\",\n                {\n                  directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n                  staticClass: \"feedback-tooltip-wrapper\",\n                  attrs: {\n                    \"data-toggle\": \"tooltip\",\n                    \"data-placement\": \"top\",\n                    \"data-original-title\": _vm.$translate(\n                      \"Feedback::Feedback.maximumNumberOfFeedbacksReached\"\n                    )\n                  }\n                },\n                [\n                  _c(\n                    \"button\",\n                    {\n                      staticClass: \"btn btn-primary btn-appearance\",\n                      attrs: { disabled: \"\" }\n                    },\n                    [\n                      _vm._v(\n                        \"\\n        \" +\n                          _vm._s(\n                            _vm.$translate(\"Feedback::Feedback.submitReview\")\n                          ) +\n                          \"\\n      \"\n                      )\n                    ]\n                  )\n                ]\n              )\n            : !_vm.authenticatedUser.hasPurchased\n            ? _c(\n                \"div\",\n                {\n                  directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n                  staticClass: \"feedback-tooltip-wrapper\",\n                  attrs: {\n                    \"data-toggle\": \"tooltip\",\n                    \"data-placement\": \"top\",\n                    \"data-original-title\": _vm.$translate(\n                      \"Feedback::Feedback.errorDoesntOwnProduct\"\n                    )\n                  }\n                },\n                [\n                  _c(\n                    \"button\",\n                    {\n                      staticClass: \"btn btn-primary btn-appearance\",\n                      attrs: { disabled: \"\" }\n                    },\n                    [\n                      _vm._v(\n                        \"\\n        \" +\n                          _vm._s(\n                            _vm.$translate(\"Feedback::Feedback.submitReview\")\n                          ) +\n                          \"\\n      \"\n                      )\n                    ]\n                  )\n                ]\n              )\n            : _c(\n                \"button\",\n                {\n                  staticClass: \"btn btn-primary btn-appearance\",\n                  attrs: { disabled: _vm.isLoading },\n                  on: {\n                    click: function($event) {\n                      return _vm.createFeedback()\n                    }\n                  }\n                },\n                [\n                  _vm._v(\n                    \"\\n      \" +\n                      _vm._s(\n                        _vm.$translate(\"Feedback::Feedback.submitReview\")\n                      ) +\n                      \"\\n    \"\n                  )\n                ]\n              )\n        ])\n      : _c(\"div\", [\n          _c(\"div\", { staticClass: \"alert alert-info\" }, [\n            _vm._v(\n              \"\\n      \" +\n                _vm._s(\n                  _vm.$translate(\"Feedback::Feedback.logInCustomerReviews\")\n                ) +\n                \"\\n    \"\n            )\n          ]),\n          _vm._v(\" \"),\n          _c(\n            \"a\",\n            {\n              staticClass: \"btn btn-primary btn-appearance\",\n              attrs: { \"data-toggle\": \"modal\", href: \"#login\" },\n              on: {\n                click: function($event) {\n                  return _vm.createLoginModal()\n                }\n              }\n            },\n            [\n              _c(\"span\", [\n                _vm._v(_vm._s(_vm.$translate(\"Feedback::Feedback.login\")))\n              ]),\n              _vm._v(\" \"),\n              _c(\"i\", {\n                staticClass: \"fa fa-user\",\n                attrs: { \"aria-hidden\": \"true\" }\n              })\n            ]\n          )\n        ])\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div\n      v-if=\"authenticatedUser.isLoggedIn || options.allowGuestFeedbacks\"\n      class=\"createFeedback\"\n    >\n      <div class=\"stars\">\n        <fieldset>\n          <legend><span class=\"d-none\">{{ $translate(\"Feedback::Feedback.feedbackTextLegend\") }}</span></legend>\n          <template v-for=\"i in [5,4,3,2,1]\">\n            <input\n              :id=\"'star-' + i + _uid\"\n              :key=\"'star_input_' + i\"\n              v-model=\"feedback.ratingValue\"\n              :class=\"'star star-' + i\"\n              type=\"radio\"\n              :value=\"i \"\n              :name=\"'ratingValue' + _uid\"\n            >\n            <label\n              :key=\"'star_label_' + i\"\n              :class=\"'star star-' + i\"\n              :for=\"'star-' + i + _uid\"\n            ><span class=\"d-none\">{{ $translate(\"Feedback::Feedback.feedbackAverageLabel\") }}</span></label>\n          </template>\n        </fieldset>\n      </div>\n\n      <p\n        v-if=\"ratingMissing\"\n        class=\"feedback-error alert alert-danger\"\n      >\n        {{ $translate(\"Feedback::Feedback.ratingRequired\") }}\n      </p>\n\n      <div\n        v-if=\"!authenticatedUser.isLoggedIn && options.allowGuestFeedbacks\"\n        class=\"form-group\"\n      >\n        <input\n          id=\"author\"\n          v-model=\"feedback.authorName\"\n          type=\"text\"\n          class=\"form-control\"\n          name=\"author\"\n          :placeholder=\"$translate('Feedback::Feedback.authorName')\"\n          :disabled=\"authenticatedUser.limitReached || !authenticatedUser.hasPurchased\"\n        >\n        <label\n          class=\"position-absolute\"\n          for=\"author\"\n        ><span class=\"d-none\">{{ $translate(\"Feedback::Feedback.authorName\") }}</span></label>\n\n        <input\n          id=\"feedback-textfield\"\n          v-model=\"feedback.honeypot\"\n          type=\"text\"\n          class=\"form-control\"\n          name=\"feedback-textfield\"\n        >\n        <label\n          class=\"position-absolute\"\n          for=\"feedback-textfield\"\n        ><span class=\"d-none\">{{ $translate(\"Feedback::Feedback.feedbackTextLabel\") }}</span></label>\n      </div>\n\n      <div class=\"form-group\">\n        <input\n          id=\"title\"\n          v-model=\"feedback.title\"\n          type=\"text\"\n          class=\"form-control\"\n          :class=\"{'is-invalid': titleMissing}\"\n          name=\"title\"\n          :placeholder=\"$translate('Feedback::Feedback.title')\"\n          :disabled=\"authenticatedUser.limitReached || !authenticatedUser.hasPurchased\"\n        >\n        <label\n          class=\"position-absolute\"\n          for=\"title\"\n        ><span class=\"d-none\">{{ $translate(\"Feedback::Feedback.title\") }}</span></label>\n        <div class=\"invalid-feedback\">\n          {{ $translate(\"Feedback::Feedback.titleRequired\") }}\n        </div>\n      </div>\n\n      <div class=\"form-group\">\n        <textarea\n          id=\"message\"\n          v-model=\"feedback.message\"\n          class=\"form-control\"\n          name=\"message\"\n          rows=\"3\"\n          :placeholder=\"$translate('Feedback::Feedback.reviewMessage')\"\n          :disabled=\"authenticatedUser.limitReached || !authenticatedUser.hasPurchased\"\n        />\n        <label\n          class=\"position-absolute\"\n          for=\"message\"\n        >\n          <span class=\"d-none\">{{ $translate(\"Feedback::Feedback.reviewMessage\") }}</span>\n        </label>\n      </div>\n\n      <div\n        v-if=\"authenticatedUser.limitReached\"\n        v-tooltip\n        class=\"feedback-tooltip-wrapper\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        :data-original-title=\"$translate('Feedback::Feedback.maximumNumberOfFeedbacksReached')\"\n      >\n        <button\n          class=\"btn btn-primary btn-appearance\"\n          disabled\n        >\n          {{ $translate(\"Feedback::Feedback.submitReview\") }}\n        </button>\n      </div>\n\n      <div\n        v-else-if=\"!authenticatedUser.hasPurchased\"\n        v-tooltip\n        class=\"feedback-tooltip-wrapper\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        :data-original-title=\"$translate('Feedback::Feedback.errorDoesntOwnProduct')\"\n      >\n        <button\n          class=\"btn btn-primary btn-appearance\"\n          disabled\n        >\n          {{ $translate(\"Feedback::Feedback.submitReview\") }}\n        </button>\n      </div>\n      <button\n        v-else\n        class=\"btn btn-primary btn-appearance\"\n        :disabled=\"isLoading\"\n        @click=\"createFeedback()\"\n      >\n        {{ $translate(\"Feedback::Feedback.submitReview\") }}\n      </button>\n    </div>\n    <div v-else>\n      <div class=\"alert alert-info\">\n        {{ $translate(\"Feedback::Feedback.logInCustomerReviews\") }}\n      </div>\n\n      <a\n        class=\"btn btn-primary btn-appearance\"\n        data-toggle=\"modal\"\n        href=\"#login\"\n        @click=\"createLoginModal()\"\n      >\n        <span>{{ $translate(\"Feedback::Feedback.login\") }}</span>\n        <i\n          class=\"fa fa-user\"\n          aria-hidden=\"true\"\n        />\n      </a>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex'\n\nexport default {\n  name: 'FeedbackForm',\n  props: {\n    variationId: Number,\n    options: Object\n  },\n\n  data () {\n    return {\n      feedback: {\n        ratingValue: 0,\n        authorName: '',\n        title: '',\n        message: '',\n        type: 'review',\n        targetId: this.variationId,\n        honeypot: ''\n      },\n      isLoading: false,\n      titleMissing: false,\n      ratingMissing: false\n    }\n  },\n\n  computed: {\n    ...mapState({\n      authenticatedUser: state => state.feedback.authenticatedUser\n    })\n  },\n\n  methods: {\n    createFeedback () {\n      if (this.isLoading) {\n        return\n      }\n\n      if (this.feedback.honeypot.length > 0) {\n        return\n      }\n\n      if (this.feedback.ratingValue <= 0) {\n        this.ratingMissing = true\n        return\n      }\n\n      if (!this.feedback.title) {\n        this.titleMissing = true\n        return\n      }\n\n      this.isLoading = true\n\n      $.ajax({\n        type: 'POST',\n        url: '/rest/feedbacks/feedback/create',\n        data: this.feedback,\n        contentType: 'application/x-www-form-urlencoded; charset=UTF-8',\n        dataType: 'json',\n        xhrFields: {\n          withCredentials: true\n        },\n        success: (data) => {\n          this.$store.commit('addFeedback', data)\n          this.isLoading = false\n          this.feedback.authorName = ''\n          this.feedback.message = ''\n          this.feedback.title = ''\n          this.feedback.ratingValue = 0\n          this.titleMissing = false\n          this.ratingMissing = false\n        },\n        error: (jqXHR, textStatus, errorThrown) => {\n          console.error(errorThrown)\n          this.isLoading = false\n        }\n      })\n    },\n\n    createLoginModal () {\n      this.$store.dispatch('loadComponent', 'login-modal')\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!./FeedbackForm.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!./FeedbackForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeedbackForm.vue?vue&type=template&id=1b526f73&\"\nimport script from \"./FeedbackForm.vue?vue&type=script&lang=js&\"\nexport * from \"./FeedbackForm.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/plentydev/workspace/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('1b526f73')) {\n      api.createRecord('1b526f73', component.options)\n    } else {\n      api.reload('1b526f73', component.options)\n    }\n    module.hot.accept(\"./FeedbackForm.vue?vue&type=template&id=1b526f73&\", function () {\n      api.rerender('1b526f73', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/singleitem/FeedbackForm.vue\"\nexport default component.exports","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { staticClass: \"feedback-list\" },\n    [\n      _vm._l(_vm.feedbacks, function(feedback) {\n        return _c(\"feedback-list-entry\", {\n          key: feedback.id,\n          attrs: {\n            feedback: feedback,\n            \"is-reply\": false,\n            \"show-controls\": _vm.showControls,\n            classes: _vm.classes,\n            styles: _vm.styles,\n            options: _vm.options\n          },\n          on: {\n            delete: function($event) {\n              return _vm.$emit(\"delete\", $event)\n            }\n          }\n        })\n      }),\n      _vm._v(\" \"),\n      !_vm.isLastPage\n        ? _c(\n            \"a\",\n            {\n              staticClass: \"btn btn-default btn-block feedback-loadmore\",\n              on: {\n                click: function($event) {\n                  return _vm.onLoadMoreClicked()\n                }\n              }\n            },\n            [\n              _vm._v(\n                \"\\n    \" +\n                  _vm._s(_vm.$translate(\"Feedback::Feedback.loadMore\")) +\n                  \"\\n  \"\n              )\n            ]\n          )\n        : _vm._e()\n    ],\n    2\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackList.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!./FeedbackList.vue?vue&type=script&lang=js&\"","<template>\n  <div class=\"feedback-list\">\n    <feedback-list-entry\n      v-for=\"feedback in feedbacks\"\n      :key=\"feedback.id\"\n      :feedback=\"feedback\"\n      :is-reply=\"false\"\n      :show-controls=\"showControls\"\n      :classes=\"classes\"\n      :styles=\"styles\"\n      :options=\"options\"\n      @delete=\"$emit('delete', $event)\"\n    />\n\n    <a\n      v-if=\"!isLastPage\"\n      class=\"btn btn-default btn-block feedback-loadmore\"\n      @click=\"onLoadMoreClicked()\"\n    >\n      {{ $translate(\"Feedback::Feedback.loadMore\") }}\n    </a>\n  </div>\n</template>\n\n<script>\nimport FeedbackListEntry from './FeedbackListEntry.vue'\n\nexport default {\n  name: 'FeedbackList',\n  components: {\n    'feedback-list-entry': FeedbackListEntry\n  },\n  props: {\n    feedbacks: Array,\n    isLastPage: Boolean,\n    showControls: Boolean,\n    classes: String,\n    styles: String,\n    options: Object\n  },\n\n  methods: {\n    onLoadMoreClicked () {\n      this.$emit('load-more')\n    }\n  }\n}\n</script>\n","import { render, staticRenderFns } from \"./FeedbackList.vue?vue&type=template&id=4f4b964d&\"\nimport script from \"./FeedbackList.vue?vue&type=script&lang=js&\"\nexport * from \"./FeedbackList.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/plentydev/workspace/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('4f4b964d')) {\n      api.createRecord('4f4b964d', component.options)\n    } else {\n      api.reload('4f4b964d', component.options)\n    }\n    module.hot.accept(\"./FeedbackList.vue?vue&type=template&id=4f4b964d&\", function () {\n      api.rerender('4f4b964d', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/singleitem/FeedbackList.vue\"\nexport default component.exports","<template>\n  <section class=\"feedback-container\">\n    <div class=\"title\">\n      {{ $translate(\"Feedback::Feedback.customerReviews\") }}\n      <small class=\"feedback-average-count\"> ({{ counts.ratingsCountTotal }})</small>\n    </div>\n    <div class=\"feedback-stars-average\">\n      <div class=\"feedback-stars-background clearfix\">\n        <div\n          v-for=\"index in 5\"\n          :key=\"'feedback_stars_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: ((counts.averageValue * 100) / 5) + '%' }\"\n      >\n        <div class=\"feedback-stars-overlay clearfix\">\n          <div\n            v-for=\"index in 5\"\n            :key=\"'feedback_stars_overlay_' + index\"\n            class=\"feedback-star\"\n          >\n            <i class=\"fa fa-star\" />\n          </div>\n        </div>\n      </div>\n    </div>\n    <hr>\n    <div\n      class=\"row my-2\"\n      :class=\"classes\"\n      :style=\"styles\"\n    >\n      <div class=\"col-sm-6\">\n        <div class=\"feedback-bars\">\n          <div class=\"feedback-bar-wrap\">\n            <p class=\"feedback-bar-text-before\">\n              5 <i class=\"fa fa-star\" />\n            </p>\n            <div class=\"feedback-bar\">\n              <div\n                class=\"feedback-bar-fill bg-primary bg-appearance\"\n                :style=\"{ width: (counts.ratingsCountOf5 / counts.highestCount * 100) + '%' }\"\n              />\n            </div>\n            <p class=\"feedback-bar-text-after\">\n              {{ counts.ratingsCountOf5 }}\n            </p>\n          </div>\n\n          <div class=\"feedback-bar-wrap\">\n            <p class=\"feedback-bar-text-before\">\n              4 <i class=\"fa fa-star\" />\n            </p>\n            <div class=\"feedback-bar\">\n              <div\n                class=\"feedback-bar-fill bg-primary bg-appearance\"\n                :style=\"{ width: (counts.ratingsCountOf4 / counts.highestCount * 100) + '%' }\"\n              />\n            </div>\n            <p class=\"feedback-bar-text-after\">\n              {{ counts.ratingsCountOf4 }}\n            </p>\n          </div>\n\n          <div class=\"feedback-bar-wrap\">\n            <p class=\"feedback-bar-text-before\">\n              3 <i class=\"fa fa-star\" />\n            </p>\n            <div class=\"feedback-bar\">\n              <div\n                class=\"feedback-bar-fill bg-primary bg-appearance\"\n                :style=\"{ width: (counts.ratingsCountOf3 / counts.highestCount * 100) + '%' }\"\n              />\n            </div>\n            <p class=\"feedback-bar-text-after\">\n              {{ counts.ratingsCountOf3 }}\n            </p>\n          </div>\n\n          <div class=\"feedback-bar-wrap\">\n            <p class=\"feedback-bar-text-before\">\n              2 <i class=\"fa fa-star\" />\n            </p>\n            <div class=\"feedback-bar\">\n              <div\n                class=\"feedback-bar-fill bg-primary bg-appearance\"\n                :style=\"{ width: (counts.ratingsCountOf2 / counts.highestCount * 100) + '%' }\"\n              />\n            </div>\n            <p class=\"feedback-bar-text-after\">\n              {{ counts.ratingsCountOf2 }}\n            </p>\n          </div>\n\n          <div class=\"feedback-bar-wrap\">\n            <p class=\"feedback-bar-text-before\">\n              1 <i class=\"fa fa-star\" />\n            </p>\n            <div class=\"feedback-bar\">\n              <div\n                class=\"feedback-bar-fill bg-primary bg-appearance\"\n                :style=\"{ width: (counts.ratingsCountOf1 / counts.highestCount * 100) + '%' }\"\n              />\n            </div>\n            <p class=\"feedback-bar-text-after\">\n              {{ counts.ratingsCountOf1 }}\n            </p>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"col-sm-6\">\n        <feedback-form\n          v-if=\"!isLoading\"\n          :variation-id=\"variationId\"\n          :options=\"optionsForm\"\n        />\n      </div>\n    </div>\n\n    <hr>\n\n    <feedback-list\n      :feedbacks=\"invisibleFeedbacks\"\n      :is-last-page=\"true\"\n      :show-controls=\"true\"\n      :classes=\"classes\"\n      :styles=\"styles\"\n      :options=\"optionsList\"\n      @delete=\"showDeleteConfirmation($event)\"\n    />\n\n    <feedback-list\n      :feedbacks=\"feedbacks\"\n      :is-last-page=\"pagination.isLastPage\"\n      :show-controls=\"false\"\n      :classes=\"classes\"\n      :styles=\"styles\"\n      :options=\"optionsList\"\n      @load-more=\"loadFeedbacks()\"\n      @delete=\"showDeleteConfirmation($event)\"\n    />\n\n    <p\n      v-if=\"isLoading\"\n      class=\"loading-hint\"\n    >\n      {{ $translate(\"Feedback::Feedback.loadingFeedbacks\") }}\n    </p>\n\n    <!-- Modal -->\n    <div\n      ref=\"confirmDeleteModal\"\n      class=\"modal fade\"\n      tabindex=\"-1\"\n      role=\"dialog\"\n      :aria-labelledby=\"'feedbackConfirmDeleteLabel-' + _uid\"\n      aria-hidden=\"true\"\n    >\n      <div\n        class=\"modal-dialog\"\n        role=\"document\"\n      >\n        <div class=\"modal-content\">\n          <div class=\"modal-header\">\n            <span\n              :id=\"'feedbackConfirmDeleteLabel-' + _uid\"\n              class=\"modal-title h5\"\n            >{{ $translate(\"Feedback::Feedback.deleteConfirm\") }}</span>\n            <button\n              type=\"button\"\n              class=\"close\"\n              data-dismiss=\"modal\"\n              aria-label=\"Close\"\n            >\n              <span aria-hidden=\"true\">&times;</span>\n            </button>\n          </div>\n          <div class=\"modal-body\">\n            <p\n              v-if=\"!!feedbackToDelete && feedbackToDelete.isReply\"\n              class=\"feedback-delete-confirmation\"\n            >\n              {{ $translate(\"Feedback::Feedback.deleteReply\") }}\n            </p>\n            <p\n              v-else\n              class=\"feedback-delete-confirmation\"\n            >\n              {{ $translate(\"Feedback::Feedback.deleteReview\") }}\n            </p>\n          </div>\n          <div class=\"modal-footer\">\n            <button\n              type=\"button\"\n              class=\"btn btn-secondary\"\n              data-dismiss=\"modal\"\n            >\n              {{ $translate(\"Feedback::Feedback.cancel\") }}\n            </button>\n            <button\n              type=\"button\"\n              class=\"btn btn-primary btn-appearance\"\n              @click=\"deleteFeedback()\"\n            >\n              {{ $translate(\"Feedback::Feedback.yesDeleteIt\") }}\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script>\nimport FeedbackForm from './FeedbackForm.vue'\nimport FeedbackList from './FeedbackList.vue'\nimport { mapState } from 'vuex'\nimport loadFeedbackModule from '../../../mixins/loadFeedbackModule'\n\nexport default {\n\n  name: 'FeedbackContainer',\n  components: {\n    'feedback-form': FeedbackForm,\n    'feedback-list': FeedbackList\n  },\n\n  mixins: [loadFeedbackModule],\n\n  inject: {\n    itemId: {\n      default: null\n    }\n  },\n\n  props: {\n    options: Object,\n    classes: String,\n    styles: String\n  },\n\n  data () {\n    return {\n      isLoading: true,\n      feedbackToDelete: null,\n      optionsList: {\n        timestampVisibility: this.options.timestampVisibility,\n        allowGuestFeedbacks: this.options.allowGuestFeedbacks\n      },\n      language: this.options.language,\n      optionsForm: {\n        allowFeedbacksOnlyIfPurchased: this.options.allowFeedbacksOnlyIfPurchased,\n\n        numberOfFeedbacks: this.options.numberOfFeedbacks,\n        allowGuestFeedbacks: this.options.allowGuestFeedbacks\n      }\n    }\n  },\n\n  computed:\n    {\n      currentVariation: function () {\n        return this.$store.getters[this.itemId + '/currentItemVariation']\n      },\n\n      variationId: function () {\n        return this.currentVariation && this.currentVariation.variation.id\n      },\n\n      ...mapState({\n        authenticatedUser: state => state.feedback.authenticatedUser,\n        counts: state => state.feedback.counts,\n        feedbacks: state => state.feedback.feedbacks,\n        invisibleFeedbacks: state => state.feedback.invisibleFeedbacks,\n        pagination: state => state.feedback.pagination\n      })\n    },\n\n  mounted () {\n    if (!App.isShopBuilder) {\n      const _self = this\n      $.when(\n        this.getUser(),\n        this.loadFeedbacks()\n      ).done(function () {\n        _self.isLoading = false\n        _self.generateJsonLD()\n        Vue.nextTick(function () {\n          // DOM updated\n          window.dispatchEvent(new Event('resize'))\n        })\n      })\n    } else {\n      this.isLoading = false\n    }\n  },\n\n  methods:\n    {\n      getUser () {\n        return this.$store.dispatch('loadFeedbackUser', {\n          data: {\n            allowFeedbacksOnlyIfPurchased: this.options.allowFeedbacksOnlyIfPurchased,\n            numberOfFeedbacks: this.options.numberOfFeedbacks\n          },\n          itemId: this.itemId,\n          variationId: this.variationId\n        })\n      },\n\n      loadFeedbacks () {\n        return this.$store.dispatch('loadPaginatedFeedbacks', {\n          itemId: this.itemId,\n          feedbacksPerPage: this.options.feedbacksPerPage,\n          language: this.options.language\n        })\n      },\n\n      showDeleteConfirmation (feedbackToDelete) {\n        this.feedbackToDelete = feedbackToDelete\n        $(this.$refs.confirmDeleteModal).modal('show')\n      },\n\n      deleteFeedback () {\n        if (this.feedbackToDelete !== null) {\n          const feedbackId = this.feedbackToDelete.feedbackId\n          const parentFeedbackId = this.feedbackToDelete.parentFeedbackId\n\n          this.$store.dispatch('deleteFeedback', {\n            feedbackId: feedbackId,\n            parentFeedbackId: parentFeedbackId,\n            feedback: this.feedbackToDelete.feedbackObject\n          })\n        }\n\n        $(this.$refs.confirmDeleteModal).modal('hide')\n      },\n\n      generateJsonLD () {\n        if (this.counts.ratingsCountTotal > 0) {\n          const jsonld = {\n            '@context': 'http://schema.org/',\n            '@type': 'Product',\n            '@id': this.variationId.toString(),\n            aggregateRating: {\n              '@type': 'AggregateRating',\n              ratingValue: this.counts.averageValue,\n              reviewCount: this.counts.ratingsCountTotal\n            },\n            review: []\n          }\n\n          const anonymous = this.$translate('Feedback::Feedback.anonymous') || 'Anonymous'\n          this.feedbacks.forEach(function (feedback) {\n            let author\n\n            if ((feedback.sourceRelation[0].feedbackRelationType === 'user' ||\n                        feedback.sourceRelation[0].feedbackRelationType === 'contact') && feedback.sourceRelation[0].feedbackRelationSourceId > 0) {\n              author = feedback.sourceRelation[0].sourceRelationLabel\n            } else if (feedback.sourceRelation[0].feedbackRelationSourceId === '0' && feedback.authorName.trim().length > 0) {\n              author = feedback.authorName\n            } else {\n              author = anonymous\n            }\n\n            const review = {\n              '@type': 'Review',\n              author: {\n                name: author,\n                '@type': 'Person'\n              },\n              datePublished: feedback.createdAt,\n              reviewBody: feedback.feedbackComment.comment.message,\n              name: feedback.title,\n              reviewRating: {\n                '@type': 'Rating',\n                ratingValue: feedback.feedbackRating.rating.ratingValue\n              }\n            }\n\n            jsonld.review.push(review)\n          })\n\n          const script = document.createElement('script')\n          script.setAttribute('type', 'application/ld+json')\n          script.textContent = JSON.stringify(jsonld)\n          document.head.appendChild(script)\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!./FeedbackContainer.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!./FeedbackContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeedbackContainer.vue?vue&type=template&id=877a4a3c&\"\nimport script from \"./FeedbackContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./FeedbackContainer.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/plentydev/workspace/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('877a4a3c')) {\n      api.createRecord('877a4a3c', component.options)\n    } else {\n      api.reload('877a4a3c', component.options)\n    }\n    module.hot.accept(\"./FeedbackContainer.vue?vue&type=template&id=877a4a3c&\", function () {\n      api.rerender('877a4a3c', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/singleitem/FeedbackContainer.vue\"\nexport default component.exports","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { staticClass: \"feedback clearfix\", class: { loading: _vm.isLoading } },\n    [\n      (!_vm.editableFeedback && _vm.showControls) ||\n      _vm.isFeedbackEditable(_vm.feedbackData.id) || _vm.canUserEdit()\n        ? _c(\"div\", { staticClass: \"feedback-options\" }, [\n            !_vm.feedbackData.isVisible\n              ? _c(\n                  \"span\",\n                  {\n                    directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n                    staticClass: \"btn-sm btn-danger\",\n                    attrs: {\n                      \"data-toggle\": \"tooltip\",\n                      \"data-placement\": \"top\",\n                      \"data-original-title\": _vm.$translate(\n                        \"Feedback::Feedback.moderationMessage\"\n                      )\n                    }\n                  },\n                  [_c(\"i\", { staticClass: \"fa fa-eye-slash\" })]\n                )\n              : _vm._e(),\n            _vm._v(\" \"),\n            _vm.authenticatedUser.isLoggedIn\n              ? _c(\n                  \"span\",\n                  {\n                    directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n                    ref: \"editButton\",\n                    staticClass: \"btn btn-sm btn-danger\",\n                    attrs: {\n                      \"data-toggle\": \"tooltip\",\n                      \"data-placement\": \"top\",\n                      \"data-original-title\": _vm.isReply\n                        ? _vm.$translate(\"Feedback::Feedback.editReply\")\n                        : _vm.$translate(\"Feedback::Feedback.editReview\")\n                    },\n                    on: {\n                      click: function($event) {\n                        return _vm.editFeedback()\n                      }\n                    }\n                  },\n                  [_c(\"i\", { staticClass: \"fa fa-pencil\" })]\n                )\n              : _vm._e(),\n            _vm._v(\" \"),\n            _vm.authenticatedUser.isLoggedIn\n              ? _c(\n                  \"span\",\n                  {\n                    directives: [{ name: \"tooltip\", rawName: \"v-tooltip\" }],\n                    staticClass: \"btn btn-sm btn-danger\",\n                    attrs: {\n                      \"data-toggle\": \"tooltip\",\n                      \"data-placement\": \"top\",\n                      \"data-original-title\": _vm.isReply\n                        ? _vm.$translate(\"Feedback::Feedback.deleteReply\")\n                        : _vm.$translate(\"Feedback::Feedback.deleteReview\")\n                    },\n                    on: {\n                      click: function($event) {\n                        return _vm.showDeleteConfirmation()\n                      }\n                    }\n                  },\n                  [_c(\"i\", { staticClass: \"fa fa-trash-o\" })]\n                )\n              : _vm._e()\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      !_vm.editableFeedback\n        ? _c(\"feedback-comment\", {\n            attrs: {\n              feedback: _vm.feedbackData,\n              \"is-reply\": _vm.isReply,\n              \"show-controls\": _vm.showControls,\n              classes: _vm.classes,\n              styles: _vm.styles,\n              options: _vm.options\n            },\n            on: {\n              delete: function($event) {\n                return _vm.$emit(\"delete\", $event)\n              }\n            }\n          })\n        : _vm._e(),\n      _vm._v(\" \"),\n      !!_vm.editableFeedback && _vm.isReply\n        ? _c(\"div\", [\n            _c(\"div\", { staticClass: \"form-group\" }, [\n              _c(\"textarea\", {\n                directives: [\n                  {\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: _vm.editableFeedback.message,\n                    expression: \"editableFeedback.message\"\n                  }\n                ],\n                staticClass: \"form-control\",\n                attrs: {\n                  rows: \"3\",\n                  placeholder: _vm.$translate(\"Feedback::Feedback.replyMessage\")\n                },\n                domProps: { value: _vm.editableFeedback.message },\n                on: {\n                  input: function($event) {\n                    if ($event.target.composing) {\n                      return\n                    }\n                    _vm.$set(\n                      _vm.editableFeedback,\n                      \"message\",\n                      $event.target.value\n                    )\n                  }\n                }\n              })\n            ]),\n            _vm._v(\" \"),\n            _c(\n              \"button\",\n              {\n                staticClass: \"btn btn-primary btn-appearance\",\n                on: {\n                  click: function($event) {\n                    return _vm.saveEditableFeedback()\n                  }\n                }\n              },\n              [\n                _vm._v(\n                  \"\\n      \" +\n                    _vm._s(_vm.$translate(\"Feedback::Feedback.editReply\")) +\n                    \"\\n    \"\n                )\n              ]\n            ),\n            _vm._v(\" \"),\n            _c(\n              \"button\",\n              {\n                staticClass: \"btn btn-secondary feedback-edit-cancel\",\n                on: {\n                  click: function($event) {\n                    _vm.editableFeedback = null\n                  }\n                }\n              },\n              [\n                _vm._v(\n                  \"\\n      \" +\n                    _vm._s(_vm.$translate(\"Feedback::Feedback.cancel\")) +\n                    \"\\n    \"\n                )\n              ]\n            )\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      !!_vm.editableFeedback && !_vm.isReply\n        ? _c(\"div\", [\n            _c(\n              \"div\",\n              { staticClass: \"stars\" },\n              [\n                _vm._l([5, 4, 3, 2, 1], function(i) {\n                  return [\n                    _c(\"input\", {\n                      directives: [\n                        {\n                          name: \"model\",\n                          rawName: \"v-model\",\n                          value: _vm.editableFeedback.ratingValue,\n                          expression: \"editableFeedback.ratingValue\"\n                        }\n                      ],\n                      key: \"stars_input_\" + i,\n                      class: \"star star-\" + i,\n                      attrs: {\n                        id: \"star-\" + _vm._uid + \"-\" + i,\n                        type: \"radio\",\n                        name: \"ratingValue\"\n                      },\n                      domProps: {\n                        value: i,\n                        checked: _vm._q(_vm.editableFeedback.ratingValue, i)\n                      },\n                      on: {\n                        change: function($event) {\n                          return _vm.$set(\n                            _vm.editableFeedback,\n                            \"ratingValue\",\n                            i\n                          )\n                        }\n                      }\n                    }),\n                    _vm._v(\" \"),\n                    _c(\"label\", {\n                      key: \"stars_label_\" + i,\n                      class: \"star star-\" + i,\n                      attrs: { for: \"star-\" + _vm._uid + \"-\" + i }\n                    })\n                  ]\n                })\n              ],\n              2\n            ),\n            _vm._v(\" \"),\n            _c(\"div\", { staticClass: \"form-group\" }, [\n              _c(\"input\", {\n                directives: [\n                  {\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: _vm.editableFeedback.title,\n                    expression: \"editableFeedback.title\"\n                  }\n                ],\n                staticClass: \"form-control\",\n                attrs: {\n                  type: \"text\",\n                  name: \"title\",\n                  placeholder: _vm.$translate(\"Feedback::Feedback.title\"),\n                  required: \"\"\n                },\n                domProps: { value: _vm.editableFeedback.title },\n                on: {\n                  input: function($event) {\n                    if ($event.target.composing) {\n                      return\n                    }\n                    _vm.$set(_vm.editableFeedback, \"title\", $event.target.value)\n                  }\n                }\n              })\n            ]),\n            _vm._v(\" \"),\n            _c(\"div\", { staticClass: \"form-group\" }, [\n              _c(\"textarea\", {\n                directives: [\n                  {\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: _vm.editableFeedback.message,\n                    expression: \"editableFeedback.message\"\n                  }\n                ],\n                staticClass: \"form-control\",\n                attrs: {\n                  name: \"message\",\n                  rows: \"3\",\n                  placeholder: _vm.$translate(\"Feedback::Feedback.title\")\n                },\n                domProps: { value: _vm.editableFeedback.message },\n                on: {\n                  input: function($event) {\n                    if ($event.target.composing) {\n                      return\n                    }\n                    _vm.$set(\n                      _vm.editableFeedback,\n                      \"message\",\n                      $event.target.value\n                    )\n                  }\n                }\n              })\n            ]),\n            _vm._v(\" \"),\n            _c(\n              \"button\",\n              {\n                staticClass: \"btn btn-primary btn-appearance\",\n                on: {\n                  click: function($event) {\n                    return _vm.saveEditableFeedback()\n                  }\n                }\n              },\n              [\n                _vm._v(\n                  \"\\n      \" +\n                    _vm._s(_vm.$translate(\"Feedback::Feedback.editReview\")) +\n                    \"\\n    \"\n                )\n              ]\n            ),\n            _vm._v(\" \"),\n            _c(\n              \"button\",\n              {\n                staticClass: \"btn btn-secondary feedback-edit-cancel\",\n                on: {\n                  click: function($event) {\n                    _vm.editableFeedback = null\n                  }\n                }\n              },\n              [\n                _vm._v(\n                  \"\\n      \" +\n                    _vm._s(_vm.$translate(\"Feedback::Feedback.cancel\")) +\n                    \"\\n    \"\n                )\n              ]\n            )\n          ])\n        : _vm._e()\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"feedback clearfix\"\n    :class=\"{'loading':isLoading}\"\n  >\n    <div\n      v-if=\"(!editableFeedback && showControls) || (isFeedbackEditable(feedbackData.id) || canUserEdit())\"\n      class=\"feedback-options\"\n    >\n      <span\n        v-if=\"!feedbackData.isVisible\"\n        v-tooltip\n        class=\"btn-sm btn-danger\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        :data-original-title=\"$translate('Feedback::Feedback.moderationMessage')\"\n      >\n        <i class=\"fa fa-eye-slash\" />\n      </span>\n\n      <span\n        v-if=\"authenticatedUser.isLoggedIn\"\n        ref=\"editButton\"\n        v-tooltip\n        class=\"btn btn-sm btn-danger\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        :data-original-title=\"isReply ? $translate('Feedback::Feedback.editReply') : $translate('Feedback::Feedback.editReview')\"\n        @click=\"editFeedback()\"\n      >\n        <i class=\"fa fa-pencil\" />\n      </span>\n\n      <span\n        v-if=\"authenticatedUser.isLoggedIn\"\n        v-tooltip\n        class=\"btn btn-sm btn-danger\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        :data-original-title=\"isReply ? $translate('Feedback::Feedback.deleteReply') : $translate('Feedback::Feedback.deleteReview')\"\n        @click=\"showDeleteConfirmation()\"\n      >\n        <i class=\"fa fa-trash-o\" />\n      </span>\n    </div>\n\n    <feedback-comment\n      v-if=\"!editableFeedback\"\n      :feedback=\"feedbackData\"\n      :is-reply=\"isReply\"\n      :show-controls=\"showControls\"\n      :classes=\"classes\"\n      :styles=\"styles\"\n      :options=\"options\"\n      @delete=\"$emit('delete', $event)\"\n    />\n\n    <div v-if=\"!!editableFeedback && isReply\">\n      <div class=\"form-group\">\n        <textarea\n          v-model=\"editableFeedback.message\"\n          class=\"form-control\"\n          rows=\"3\"\n          :placeholder=\"$translate('Feedback::Feedback.replyMessage')\"\n        />\n      </div>\n      <button\n        class=\"btn btn-primary btn-appearance\"\n        @click=\"saveEditableFeedback()\"\n      >\n        {{ $translate(\"Feedback::Feedback.editReply\") }}\n      </button>\n      <button\n        class=\"btn btn-secondary feedback-edit-cancel\"\n        @click=\"editableFeedback = null\"\n      >\n        {{ $translate(\"Feedback::Feedback.cancel\") }}\n      </button>\n    </div>\n\n    <div v-if=\"!!editableFeedback && !isReply\">\n      <div class=\"stars\">\n        <template v-for=\"i in [5,4,3,2,1]\">\n          <input\n            :id=\"'star-' + _uid + '-' + i\"\n            :key=\"'stars_input_' + i\"\n            v-model=\"editableFeedback.ratingValue\"\n            :class=\"'star star-' + i\"\n            type=\"radio\"\n            :value=\"i\"\n            name=\"ratingValue\"\n          >\n          <label\n            :key=\"'stars_label_' + i\"\n            :class=\"'star star-' + i\"\n            :for=\"'star-' + _uid + '-' + i\"\n          />\n        </template>\n      </div>\n      <div class=\"form-group\">\n        <input\n          v-model=\"editableFeedback.title\"\n          type=\"text\"\n          class=\"form-control\"\n          name=\"title\"\n          :placeholder=\"$translate('Feedback::Feedback.title')\"\n          required\n        >\n      </div>\n      <div class=\"form-group\">\n        <textarea\n          v-model=\"editableFeedback.message\"\n          class=\"form-control\"\n          name=\"message\"\n          rows=\"3\"\n          :placeholder=\"$translate('Feedback::Feedback.title')\"\n        />\n      </div>\n\n      <button\n        class=\"btn btn-primary btn-appearance\"\n        @click=\"saveEditableFeedback()\"\n      >\n        {{ $translate(\"Feedback::Feedback.editReview\") }}\n      </button>\n      <button\n        class=\"btn btn-secondary feedback-edit-cancel\"\n        @click=\"editableFeedback = null\"\n      >\n        {{ $translate(\"Feedback::Feedback.cancel\") }}\n      </button>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex'\n\nexport default {\n  name: 'FeedbackListEntry',\n\n  components: {\n    'feedback-comment': () => import('./FeedbackComment.vue')\n  },\n\n  props: {\n    feedback: Object,\n    isReply: Boolean,\n    showControls: Boolean,\n    classes: String,\n    styles: String,\n    options: Object\n  },\n\n  data () {\n    return {\n      editableFeedback: null,\n      isLoading: false,\n      feedbackData: {}\n    }\n  },\n\n  created () {\n    this.feedbackData = this.feedback\n  },\n\n  computed: {\n    ...mapState({\n      authenticatedUser: state => state.feedback.authenticatedUser\n    })\n  },\n\n  methods: {\n    showDeleteConfirmation () {\n      let parentFeedbackId = null\n      if (this.isReply) {\n        parentFeedbackId = parseInt(this.feedbackData.targetRelation.feedbackRelationTargetId)\n      }\n      this.$emit('delete', {\n        feedbackId: this.feedbackData.id,\n        isReply: this.isReply,\n        parentFeedbackId: parentFeedbackId,\n        feedbackObject: this.feedbackData\n      })\n    },\n\n    editFeedback () {\n      if (this.editableFeedback === null) {\n        $(this.$refs.editButton).tooltip('dispose')\n        this.editableFeedback = {\n          title: '',\n          message: this.feedbackData.feedbackComment.comment.message,\n          ratingValue: -1,\n          isReply: this.isReply\n        }\n\n        if (!this.isReply) {\n          this.editableFeedback.title = this.feedbackData.title\n          this.editableFeedback.ratingValue = this.feedbackData.feedbackRating.rating.ratingValue\n        }\n      }\n    },\n\n    saveEditableFeedback () {\n      const _self = this\n      if (this.editableFeedback !== null) {\n        const editableFeedback = this.editableFeedback\n        const requestBody = {\n          message: editableFeedback.message\n        }\n\n        if (!editableFeedback.isReply) {\n          requestBody.title = editableFeedback.title\n          requestBody.ratingValue = editableFeedback.ratingValue\n        }\n\n        this.isLoading = true\n        $.ajax({\n          type: 'PUT',\n          url: '/rest/feedbacks/feedback/update/' + this.feedback.id,\n          data: requestBody,\n          success: function (data) {\n            _self.feedbackData.feedbackComment.comment.message = editableFeedback.message\n            _self.feedbackData.isVisible = data.isVisible\n\n            if (!editableFeedback.isReply) {\n              _self.feedbackData.title = editableFeedback.title\n              _self.feedbackData.feedbackRating.rating.ratingValue = editableFeedback.ratingValue\n            }\n            _self.isLoading = false\n          },\n          error: function (jqXHR, textStatus, errorThrown) {\n            console.error(errorThrown)\n            _self.isLoading = false\n          }\n        })\n      }\n      this.editableFeedback = null\n    },\n\n    isFeedbackEditable (id) {\n      // we are on the list from the microservice\n      const ids = []\n      if (this.showControls === false && this.authenticatedUser.feedbacks) {\n        this.authenticatedUser.feedbacks.forEach((feedbackItem) => {\n          if (feedbackItem.isVisible) {\n            ids.push(feedbackItem.id)\n          }\n        })\n      }\n\n      return ids.includes(id)\n    },\n\n    canUserEdit () {\n      if (!this.feedbackData.sourceRelation[0].feedbackRelationSourceId) {\n        return false\n      }\n      return this.feedbackData.sourceRelation[0].feedbackRelationType === 'contact' &&\n          parseInt(this.feedbackData.sourceRelation[0].feedbackRelationSourceId) === this.authenticatedUser.id\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!./FeedbackListEntry.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!./FeedbackListEntry.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeedbackListEntry.vue?vue&type=template&id=05e71156&\"\nimport script from \"./FeedbackListEntry.vue?vue&type=script&lang=js&\"\nexport * from \"./FeedbackListEntry.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/plentydev/workspace/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('05e71156')) {\n      api.createRecord('05e71156', component.options)\n    } else {\n      api.reload('05e71156', component.options)\n    }\n    module.hot.accept(\"./FeedbackListEntry.vue?vue&type=template&id=05e71156&\", function () {\n      api.rerender('05e71156', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/singleitem/FeedbackListEntry.vue\"\nexport default component.exports"],"names":["loadPaginatedFeedbacksLock","loadFeedbackUserLock","mutations","setFeedbackAuthenticatedUser","state","authenticatedUser","invisibleFeedbacks","feedbacks","filter","item","isVisible","setFeedbackCounts","counts","setFeedbacks","concat","setFeedbackItemAttributes","attributes","itemAttributes","setFeedbackPagination","pagination","lastPage","isLastPage","incrementCurrentFeedbackPage","currentPage","addFeedback","feedback","unshift","ratingValue","parseInt","feedbackRating","rating","ratingsCountTotal","recalculateAverage","deleteFeedback","_ref","feedbackId","parentFeedbackId","filterFeedbackList","filterReplyList","actions","loadFeedbackUser","_ref2","_ref3","commit","itemId","variationId","itemString","undefined","$","ajax","type","url","success","data","error","jqXHR","textStatus","errorThrown","console","loadPaginatedFeedbacks","_ref4","_ref5","feedbacksPerPage","language","request","beforeSend","xhr","setRequestHeader","_ref6","_ref7","getters","feedbackList","id","replyId","map","replies","reply","average","ratingsCountOf5","ratingsCountOf4","ratingsCountOf3","ratingsCountOf2","ratingsCountOf1","averageValue","created","this","$store","hasModule","App","isSSR","registerModule","FeedbackModule","preserveState","isObject","module","exports","it","TypeError","String","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","f","configurable","value","key","$forEach","STRICT_METHOD","arrayMethodIsStrict","forEach","callbackfn","arguments","length","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","setPrototypeOf","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","constructor","activeXDocument","anObject","defineProperties","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","document","domain","ActiveXObject","iframeDocument","iframe","JS","write","close","temp","parentWindow","Object","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","O","Properties","result","DESCRIPTORS","objectKeys","keys","index","internalObjectKeys","aPossiblePrototype","setter","CORRECT_SETTER","test","getOwnPropertyDescriptor","set","call","proto","__proto__","that","global","ignoreCase","multiline","dotAll","unicode","sticky","fails","whitespaces","METHOD_NAME","name","requireObjectCoercible","whitespace","ltrim","RegExp","rtrim","createMethod","TYPE","string","replace","start","end","trim","target","forced","$includes","addToUnscopables","includes","el","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","getOwnPropertyNames","defineProperty","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","code","charCodeAt","NaN","slice","NumberWrapper","valueOf","split","j","flags","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","source","INCORRECT_NAME","R","p","rf","unsafe","$trim","forcedStringTrimMethod","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","render","_vm","_h","$createElement","_c","_self","staticClass","_v","_s","$translate","_l","width","class","classes","styles","_m","highestCount","isLoading","_e","attrs","options","optionsForm","optionsList","on","delete","$event","showDeleteConfirmation","loadFeedbacks","ref","tabindex","role","_uid","feedbackToDelete","isReply","click","_withStripped","isLoggedIn","allowGuestFeedbacks","i","directives","rawName","expression","domProps","checked","_q","change","$set","for","ratingMissing","authorName","placeholder","disabled","limitReached","hasPurchased","input","composing","honeypot","title","titleMissing","message","rows","createFeedback","href","createLoginModal","component","__file","showControls","$emit","onLoadMoreClicked","loading","editableFeedback","isFeedbackEditable","feedbackData","canUserEdit","editFeedback","saveEditableFeedback","required"],"sourceRoot":""}