{"version":3,"sources":["webpack:///./src/mixins/staggeredAnimation.js","webpack:///./src/components/Dashboards/SearchFunnel.vue","webpack:///src/components/Dashboards/SearchFunnel.vue","webpack:///./src/components/Dashboards/SearchFunnel.vue?73c3","webpack:///./src/components/Dashboards/SearchFunnel.vue?baf5"],"names":["methods","beforeEnter","el","style","opacity","enter","done","delay","dataset","index","setTimeout","transition","leave","afterLeave","parentNode","removeChild","render","_vm","this","_c","_self","attrs","on","_l","funnels","funnel","key","staticClass","staticStyle","_v","_s","Step","getLabel","concat","getBackground","Entered","Percentage","staticRenderFns","components","props","type","Array","default","mixins","staggeredAnimation","data","isLoading","colours","labels","computed","totalSearch","total","length","created","getSearchFunnel","_this","statsProvider","getLocationSearchFunnel","locationId","month","year","channelId","widgetId","meetingtypeId","showBackend","then","response","status","Object","freeze","catch","err","finally","calculateStepPercentage","entered","percentage","roundToOne","num","self","Math","round","roundToTwo","component"],"mappings":"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","file":"js/chunk-4d4cc468.js?id=855d3daf336ccd19182d","sourcesContent":["export default {\n  methods: {\n    beforeEnter: function(el) {\n      el.style.opacity = 0\n    },\n\n    enter: function(el, done) {\n      var delay = el.dataset.index * 50\n      setTimeout(function() {\n        el.style.transition = 'opacity 0.3s'\n        el.style.opacity = '1'\n\n        done()\n      }, delay)\n    },\n\n    leave: function(el, done) {\n      //var delay = el.dataset.index * 50\n      //setTimeout(function() {\n      el.style.transition = 'opacity 0.1s'\n      el.style.opacity = '0'\n\n      done()\n      //}, delay)\n    },\n\n    afterLeave: function(el) {\n      if (el) {\n        el.parentNode.removeChild(el)\n      }\n    },\n  }\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('transition-group',{attrs:{\"name\":\"staggered-fade\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter}},_vm._l((_vm.funnels),function(funnel,index){return _c('div',{key:'row' + index,staticClass:\"columns\",attrs:{\"data-index\":index}},[_c('div',{staticClass:\"column px-2 py-2 is-one-fifth\"},[_c('div',{staticClass:\"mb-2 is-size-7\",staticStyle:{\"height\":\"40px\",\"background\":\"#cccccc\"}},[_c('div',[_vm._v(\"Step: \"+_vm._s(funnel.Step))]),_c('div',[_vm._v(_vm._s(_vm.getLabel(index)))])])]),_c('div',{staticClass:\"column px-2 py-2\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"background\":\"#ffffff\"}},[_c('div',{staticClass:\"mb-2 is-size-7\",style:(`display:block; text-align: center; width:${100 - ((10 + (index + 1)) * index)}%; height: 40px; background:${_vm.getBackground(index)};`)},[_c('div',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(funnel.Entered))]),_c('div',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(funnel.Percentage)+\"%\")])])])])}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n\n    <transition-group\n      name=\"staggered-fade\"\n      v-bind:css=\"false\"\n      v-on:before-enter=\"beforeEnter\"\n      v-on:enter=\"enter\"\n    >\n      <div v-for=\"(funnel, index) in funnels\" :key=\"'row' + index\" :data-index=\"index\" class=\"columns\">\n        <div class=\"column px-2 py-2 is-one-fifth\">\n          <div style=\"height: 40px; background: #cccccc;\" class=\"mb-2 is-size-7\">\n            <div>Step: {{ funnel.Step }}</div>\n            <div>{{ getLabel(index) }}</div>\n          </div>\n        </div>\n        <div class=\"column px-2 py-2\" style=\"display:flex; justify-content: center; width=100%; background:#ffffff\">\n          <div :style=\"`display:block; text-align: center; width:${100 - ((10 + (index + 1)) * index)}%; height: 40px; background:${getBackground(index)};`\" class=\"mb-2 is-size-7\">\n            <div style=\"text-align: center;\">{{ funnel.Entered }}</div>\n            <div style=\"text-align: center;\">{{ funnel.Percentage }}%</div>\n          </div>\n        </div>\n      </div>\n    </transition-group>\n  </div>\n\n</template>\n\n<script>\nimport statsProvider from '@/providers/stats'\nimport staggeredAnimation from '@/mixins/staggeredAnimation'\n\nexport default {\n  components: {},\n\n  props: {\n    funnels: {\n      type: Array,\n      default: () => {\n        return []\n      }\n    }\n  },\n\n  mixins: [staggeredAnimation],\n\n  data() {\n    return {\n      isLoading: false,\n      colours: ['#ffff4d', '#ffc14d', '#ea9a62', '#ff4d4d', '#ff6680', '#ff4dff'],\n      labels: ['Start', 'Spaces', 'Options', 'Info', 'Billing', 'Booked'],\n    }\n  },\n\n  computed: {\n    totalSearch() {\n      let total = 0\n\n      if (this.funnels.length > 0) {\n        total = this.funnels[0].Entered\n      }\n\n      return total\n    }\n  },\n\n  created() {\n    //this.getSearchFunnel()\n  },\n\n  methods: {\n    getSearchFunnel() {\n      statsProvider.methods\n        .getLocationSearchFunnel(\n          this.locationId,\n          this.month,\n          this.year,\n          this.channelId,\n          this.widgetId,\n          this.meetingtypeId,\n          this.showBackend\n        )\n        .then((response) => {\n          if (response.status === 200) {\n            this.funnels = Object.freeze(response.data)\n          }\n        })\n        .catch(err => {})\n        .finally(() => {\n          this.isLoading = false\n        })\n    },\n\n    getBackground(index) {\n      return this.colours[index]\n    },\n\n    getLabel(index) {\n      return this.labels[index]\n    },\n\n    calculateStepPercentage(entered) {\n      let percentage = 0\n      if (entered > 0 && this.totalSearch > 0) {\n        percentage = (entered / this.totalSearch) * 100\n      }\n\n      return this.roundToOne(percentage)\n    },\n\n    roundToOne(num) {\n      let self = this\n      return +(Math.round(self.roundToTwo(num) + 'e+1') + 'e-1')\n    },\n\n    roundToTwo(num) {\n      return +(Math.round(num + 'e+2') + 'e-2')\n    },\n  }\n}\n</script>\n\n<style></style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFunnel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFunnel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchFunnel.vue?vue&type=template&id=8dbf732a\"\nimport script from \"./SearchFunnel.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFunnel.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\nexport default component.exports"],"sourceRoot":""}