{"version":3,"sources":["webpack:///./src/components/Reviews.vue?93cd","webpack:///src/components/Reviews.vue","webpack:///./src/components/Reviews.vue?c1d7","webpack:///./src/components/Reviews.vue","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./src/assets/review-avatar.jpg","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./src/components/Reviews.vue?1072","webpack:///./src/components/Reviews.vue?d8aa","webpack:///./src/components/Reviews.vue?4b41"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","domProps","_s","heading","_e","_l","review","index","key","class","loaded","attrs","_v","author","content","on","loadMore","staticRenderFns","injectStyles","context","style0","__inject__","component","fails","module","exports","method","arg","call","$export","aFunction","toObject","$sort","sort","test","P","F","undefined","comparefn","push","i","__esModule","default","locals","add"],"mappings":"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","file":"js/chunks/chunk-a25edab4.js?id=e300ef872d970b33eb55","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reviews-list container\"},[(_vm.heading)?_c('h2',{staticClass:\"centered\",domProps:{\"innerHTML\":_vm._s(_vm.heading)}}):_vm._e(),_c('div',{staticClass:\"reviews\"},_vm._l((_vm.reviews),function(review,index){return _c('div',{key:(\"review-\" + index),staticClass:\"col\",class:{'is-active': index < _vm.loaded}},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{staticClass:\"trustpilot\"},[_c('div',{staticClass:\"review-detail\"},[_c('div',{staticClass:\"author-profile\"},[_c('LazyImage',{staticClass:\"trustpilot-avatar\",attrs:{\"width\":\"30\",\"height\":\"30\",\"url\":require('../assets/review-avatar.jpg')}}),_c('h3',[_vm._v(_vm._s(review.author))])],1),_c('LazyImage',{staticClass:\"trustpilot-stars\",attrs:{\"width\":\"100\",\"height\":\"20\",\"url\":\"https://cdn.trustpilot.net/brand-assets/4.1.0/stars/stars-5.svg\"}})],1),_c('p',{domProps:{\"innerHTML\":_vm._s(review.content)}})])])],1)}),0),(_vm.showLoadMore)?_c('div',{staticClass:\"centered reviews-action-btn\"},[_c('button',{staticClass:\"btn secondary\",on:{\"click\":_vm.loadMore}},[_vm._v(\"↓ Load More ↓\")])]):_vm._e(),(_vm.isLanding)?_c('div',{staticClass:\"centered reviews-action-btn\"},[_c('router-link',{staticClass:\"btn secondary\",attrs:{\"to\":\"/reviews\"}},[_vm._v(\"View All Reviews  →\")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"reviews-list container\">\n    <h2 class=\"centered\" v-if=\"heading\" v-html=\"heading\"></h2>\n    <div class=\"reviews\">\n      <div\n        class=\"col\"\n        v-for=\"(review, index) in reviews\"\n        :key=\"`review-${index}`\"\n        :class=\"{'is-active': index < loaded}\">\n\n        <transition name=\"fade\">\n          <div\n            class=\"trustpilot\">\n\n            <div class=\"review-detail\">\n              <div class=\"author-profile\">\n              <LazyImage\n                class=\"trustpilot-avatar\"\n                width=\"30\"\n                height=\"30\"\n                :url=\"require('../assets/review-avatar.jpg')\"/>\n              <h3>{{review.author}}</h3>\n            </div>\n            <LazyImage\n              class=\"trustpilot-stars\"\n              width=\"100\"\n              height=\"20\"\n              url=\"https://cdn.trustpilot.net/brand-assets/4.1.0/stars/stars-5.svg\"/>\n            </div>\n\n            <p v-html=\"review.content\"></p>\n          </div>\n        </transition>\n      </div>\n    </div>\n\n    <div v-if=\"showLoadMore\" class=\"centered reviews-action-btn\">\n      <button @click=\"loadMore\" class=\"btn secondary\">&darr; Load More &darr;</button>\n    </div>\n\n    <div v-if=\"isLanding\" class=\"centered reviews-action-btn\">\n      <router-link to=\"/reviews\" class=\"btn secondary\">View All Reviews  &rarr;</router-link>\n    </div>\n  </div>\n</template>\n\n<script>\n  const LazyImage = () => import('@/components/LazyImage')\n\n  export default {\n    name: 'reviews',\n\n    data() {\n      return {\n        loaded: 6\n      }\n    },\n\n    props: {\n      options: Array,\n      heading: String\n    },\n\n    components: {\n      LazyImage\n    },\n\n    methods: {\n      loadMore() {\n        this.loaded = this.loaded + 6\n      }\n    },\n\n    computed: {\n      showLoadMore() {\n        return this.loaded < this.reviews.length\n      },\n\n      isLanding() {\n        return !!this.$route.params.service\n      },\n\n      randomReviews() {\n        let reviews = this.options.sort(() => Math.random() - 0.5)\n        reviews.length = 6\n\n        return reviews\n      },\n\n      reviews() {\n        return this.isLanding ? this.randomReviews : this.options\n      }\n    }\n  }\n</script>\n\n<style lang=\"sass\">\n  @import '../stylesheets/base/variables'\n  @import '../stylesheets/base/theme'\n  @import '../stylesheets/helpers/mixins'\n  @import '../stylesheets/helpers/extends'\n\n  .reviews-list\n    margin: $gap-medium auto\n\n    .reviews\n      display: flex\n      flex-wrap: wrap\n      position: relative\n\n      .col\n        max-height: 0\n        opacity: 0\n        transition: max-height .75s ease-in-out, opacity .75s ease-in-out\n\n        &.is-active\n          max-height: 1000px\n          opacity: 1\n          margin-bottom: $gap-medium\n\n        @include media($media-medium)\n          padding: 0 $gap-small\n          flex-basis: percentage(1/2)\n\n        @include media($media-x-large)\n          flex-basis: percentage(1/3)\n\n    .author-profile\n      display: flex\n      align-items: center\n\n    .review-detail\n      display: flex\n      align-items: center\n      justify-content: space-between\n      flex-direction: column\n      border-bottom: 1px solid $color-border\n      padding-bottom: $gap-x-small\n      margin-bottom: $gap-small\n\n      @include media($media-medium)\n        flex-direction: row\n\n    .trustpilot-avatar\n      width: 30px\n      margin-right: $gap-x-small\n\n    .trustpilot\n      width: 100%\n      height: 100%\n      max-width: none\n      padding: $gap-small\n      box-shadow: $box-shadow\n      margin-bottom: $gap-medium\n\n      h3\n        font-size: 14px\n\n    .trustpilot-stars\n      max-width: 100px\n      margin: $gap-small 0\n\n      @include media($media-medium)\n        margin: 0\n\n  .reviews-action-btn\n    margin: $gap-large 0 $gap-medium\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Reviews.vue?vue&type=template&id=fc93f284&\"\nimport script from \"./Reviews.vue?vue&type=script&lang=js&\"\nexport * from \"./Reviews.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./Reviews.vue?vue&type=style&index=0&lang=sass&\")\nif (style0.__inject__) style0.__inject__(context)\n\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  injectStyles,\n  null,\n  \"5071c29c\"\n  \n)\n\nexport default component.exports","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call\n    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n  });\n};\n","module.exports = __webpack_public_path__ + \"img/review-avatar.36d69a66.jpg\";","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n  // IE8-\n  test.sort(undefined);\n}) || !fails(function () {\n  // V8 bug\n  test.sort(null);\n  // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n  // 22.1.3.25 Array.prototype.sort(comparefn)\n  sort: function sort(comparefn) {\n    return comparefn === undefined\n      ? $sort.call(toObject(this))\n      : $sort.call(toObject(this), aFunction(comparefn));\n  }\n});\n","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".reviews-list{margin:30px auto}.reviews-list .reviews{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.reviews-list .reviews .col{max-height:0;opacity:0;-webkit-transition:max-height .75s ease-in-out,opacity .75s ease-in-out;transition:max-height .75s ease-in-out,opacity .75s ease-in-out}.reviews-list .reviews .col.is-active{max-height:1000px;opacity:1;margin-bottom:30px}@media screen and (min-width:1100px){.reviews-list .reviews .col{padding:0 15px;-ms-flex-preferred-size:50%;flex-basis:50%}}@media screen and (min-width:1300px){.reviews-list .reviews .col{-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}}.reviews-list .author-profile,.reviews-list .review-detail{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.reviews-list .review-detail{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-bottom:1px solid rgba(0,0,0,.1);padding-bottom:10px;margin-bottom:15px}@media screen and (min-width:1100px){.reviews-list .review-detail{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.reviews-list .trustpilot-avatar{width:30px;margin-right:10px}.reviews-list .trustpilot{width:100%;height:100%;max-width:none;padding:15px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.04),0 4px 8px rgba(0,0,0,.04),0 8px 16px rgba(0,0,0,.04),0 16px 32px rgba(0,0,0,.04),0 32px 64px rgba(0,0,0,.04);box-shadow:0 1px 2px rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.04),0 4px 8px rgba(0,0,0,.04),0 8px 16px rgba(0,0,0,.04),0 16px 32px rgba(0,0,0,.04),0 32px 64px rgba(0,0,0,.04);margin-bottom:30px}.reviews-list .trustpilot h3{font-size:14px}.reviews-list .trustpilot-stars{max-width:100px;margin:15px 0}@media screen and (min-width:1100px){.reviews-list .trustpilot-stars{margin:0}}.reviews-action-btn{margin:50px 0 30px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-3!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-4!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&lang=sass&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"11f54c61\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","export * from \"-!../../node_modules/vue-style-loader/index.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-3!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-4!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&lang=sass&\""],"sourceRoot":""}