{"version":3,"sources":["webpack:///./src/mixins/imageRenderer.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/components/FeatureBlocks.vue?f0e9","webpack:///src/components/FeatureBlocks.vue","webpack:///./src/components/FeatureBlocks.vue?01f5","webpack:///./src/components/FeatureBlocks.vue","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./src/components/FeatureBlocks.vue?e48d","webpack:///./src/components/FeatureBlocks.vue?ec54","webpack:///./src/components/FeatureBlocks.vue?4b53"],"names":["data","imageWidth","computed","isRetina","window","devicePixelRatio","methods","throttle","fn","wait","time","Date","now","setImageWidth","elWidth","this","$el","offsetWidth","maxWidth","handleResize","addEventListener","handleImages","mounted","$export","fails","defined","quot","createHTML","string","tag","attribute","value","S","String","p1","replace","module","exports","NAME","exec","O","P","F","test","toLowerCase","split","length","render","_vm","_h","$createElement","_c","_self","staticClass","domProps","_s","heading","_e","_l","item","index","key","attrs","fields","content","path","link","_v","options","link_text","image","file","url","staticRenderFns","injectStyles","context","style0","__inject__","component","push","i","__esModule","default","locals","add"],"mappings":"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","file":"js/chunks/chunk-3aa12975.js?id=c9cf26baf3b22dacea47","sourcesContent":["export default {\n  data() {\n    return {\n      imageWidth: ''\n    }\n  },\n\n  computed: {\n    isRetina() {\n      return window.devicePixelRatio > 1\n    }\n  },\n\n  methods: {\n    throttle(fn, wait) {\n      let time = Date.now()\n\n      return () => {\n        if((time + wait - Date.now()) < 0 ) {\n          fn()\n          time = Date.now()\n        }\n      }\n    },\n\n    setImageWidth() {\n      let elWidth = this.$el.offsetWidth\n      let imageWidth = this.isRetina ? elWidth*2 : elWidth\n      const maxWidth = 2400\n\n      this.imageWidth = (imageWidth < maxWidth) ? imageWidth : maxWidth\n    },\n\n    handleResize() {\n      window.addEventListener('resize', this.throttle(this.handleImages, 150))\n    },\n\n    handleImages() {\n      this.setImageWidth()\n    }\n  },\n\n  mounted() {\n    this.handleImages()\n    this.handleResize()\n  }\n}\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n  var S = String(defined(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n  var O = {};\n  O[NAME] = exec(createHTML);\n  $export($export.P + $export.F * fails(function () {\n    var test = ''[NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  }), 'String', O);\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"widget-feature-blocks\"},[(_vm.heading)?_c('h2',{staticClass:\"centered\",domProps:{\"innerHTML\":_vm._s(_vm.heading)}}):_vm._e(),_c('div',{staticClass:\"feature-blocks\"},_vm._l((_vm.content),function(item,index){return _c('div',{key:(\"block-\" + index),staticClass:\"feature-block\"},[_c('div',{staticClass:\"col feature-block-inner\"},[_c('RichText',{attrs:{\"content\":item.fields.content}}),(item.fields.options)?_c('router-link',{staticClass:\"btn secondary\",attrs:{\"to\":{path: _vm.link(item)}}},[_vm._v(\"\\n          \"+_vm._s(item.fields.options.link_text)+\"\\n        \")]):_vm._e()],1),(item.fields.image)?_c('div',{staticClass:\"col featured-image\"},[_c('LazyImage',{attrs:{\"responsive\":\"\",\"url\":item.fields.image.fields.file.url}})],1):_vm._e()])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"widget-feature-blocks\">\n    <h2 class=\"centered\" v-if=\"heading\" v-html=\"heading\"></h2>\n\n    <div class=\"feature-blocks\">\n      <div class=\"feature-block\" v-for=\"(item, index) in content\" :key=\"`block-${index}`\">\n        <div class=\"col feature-block-inner\">\n          <RichText :content=\"item.fields.content\"/>\n\n          <router-link\n            class=\"btn secondary\"\n            v-if=\"item.fields.options\"\n            :to=\"{path: link(item)}\">\n            {{item.fields.options.link_text}}\n          </router-link>\n        </div>\n\n        <div class=\"col featured-image\" v-if=\"item.fields.image\">\n          <LazyImage responsive :url=\"item.fields.image.fields.file.url\"/>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\n  import imageRenderer from '@/mixins/imageRenderer'\n\n  const RichText = () => import('@/components/RichText')\n  const LazyImage = () => import('@/components/LazyImage')\n\n  export default {\n    name: 'FeatureBlocks',\n\n    mixins: [imageRenderer],\n\n    props: {\n      content: Array,\n      heading: String\n    },\n\n    computed: {\n      link() {\n        return (item) => {\n          return item.fields.options.link.replace('param', this.replacement)\n        }\n      },\n\n      isLanding() {\n        return !!this.$route.params.service\n      },\n\n      replacement() {\n        return this.isLanding ? this.$route.params.slug : false\n      }\n    },\n\n    components: {\n      RichText,\n      LazyImage\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  .widget-feature-blocks\n    position: relative\n\n  .feature-blocks\n    background: $triangle-light\n    display: flex\n    flex-direction: column\n\n    @include media($media-large)\n      flex-direction: row\n      flex-wrap: wrap\n\n    .btn\n      margin: $gap-small 0\n      z-index: 1\n\n    .rich-text\n      @include media($media-large)\n        max-width: calc(100% - #{$gap-x-large})\n\n      h2, h3\n        margin-top: $gap-small\n\n      p\n        font-size: 14px\n\n    .feature-block\n      @extend %two-columns\n      width: 100%\n      align-items: center\n      position: relative\n\n      @include media($media-large)\n        min-height: 55vh\n\n        &:nth-child(odd)\n          flex-direction: row-reverse\n\n        &:nth-child(even)\n          .rich-text\n            margin-left: auto\n\n          .btn\n            margin-left: $gap-x-large\n\n      img\n        display: block\n        height: 100%\n        object-fit: cover\n\n      .col\n        padding: $gap-medium\n\n        @include media($media-large)\n          padding: $gap-large\n\n        &.featured-image\n          padding: 0\n\n    .lazy-image, .featured-image\n      height: 100%\n</style>","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!./FeatureBlocks.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!./FeatureBlocks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FeatureBlocks.vue?vue&type=template&id=169d8df5&\"\nimport script from \"./FeatureBlocks.vue?vue&type=script&lang=js&\"\nexport * from \"./FeatureBlocks.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./FeatureBlocks.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  \"f2a9d146\"\n  \n)\n\nexport default component.exports","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n  return function link(url) {\n    return createHTML(this, 'a', 'href', url);\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, \"@media screen and (min-width:1200px){.feature-blocks .feature-block{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.feature-blocks .feature-block .col{-ms-flex-preferred-size:50%;flex-basis:50%;padding:0 15px;margin:0}}.widget-feature-blocks{position:relative}.feature-blocks{background:#f2f2f2;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:1200px){.feature-blocks{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}}.feature-blocks .btn{margin:15px 0;z-index:1}@media screen and (min-width:1200px){.feature-blocks .rich-text{max-width:calc(100% - 100px)}}.feature-blocks .rich-text h2,.feature-blocks .rich-text h3{margin-top:15px}.feature-blocks .rich-text p{font-size:14px}.feature-blocks .feature-block{width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}@media screen and (min-width:1200px){.feature-blocks .feature-block{min-height:55vh}.feature-blocks .feature-block:nth-child(odd){-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.feature-blocks .feature-block:nth-child(2n) .rich-text{margin-left:auto}.feature-blocks .feature-block:nth-child(2n) .btn{margin-left:100px}}.feature-blocks .feature-block img{display:block;height:100%;-o-object-fit:cover;object-fit:cover}.feature-blocks .feature-block .col{padding:30px}@media screen and (min-width:1200px){.feature-blocks .feature-block .col{padding:50px}}.feature-blocks .feature-block .col.featured-image{padding:0}.feature-blocks .featured-image,.feature-blocks .lazy-image{height:100%}\", \"\"]);\n\n// exports\n","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!./FeatureBlocks.vue?vue&type=style&index=0&lang=sass&\"","// 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!./FeatureBlocks.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(\"6e1d5701\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"sourceRoot":""}