{"version":3,"sources":["webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./src/components/UI/Charts/DonutChart.vue","webpack:///src/components/UI/Charts/DonutChart.vue","webpack:///./src/components/UI/Charts/DonutChart.vue?8693","webpack:///./src/components/UI/Charts/DonutChart.vue?9c02","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./src/components/UI/Charts/DonutChart.vue?54ec"],"names":["uncurryThis","requireObjectCoercible","toString","quot","replace","module","exports","string","tag","attribute","value","S","p1","$","createHTML","forcedStringHTMLMethod","target","proto","forced","link","url","this","render","_vm","_c","_self","setupData","staticClass","showChart","attrs","dataLoaded","values","length","_e","cx","cy","radius","strokeWidth","circumference","calculateStrokeDashOffset","returnCircleTransformValue","percentage","degrees","showCenterData","_v","_s","labelEmpty","_l","index","key","colour","data","label","on","$event","goTo","showTable","tabelLabelLabel","tabelDataLabel","style","background","viewType","switchView","staticRenderFns","props","default","type","Boolean","initialValues","Array","String","showData","showLabel","angleOffset","colours","computed","Math","PI","dataTotal","self","total","i","created","optimizeValuesData","methods","_self$calculateTextCo","calculateTextCoords","x","y","dataPercentage","textX","textY","dataVal","angle","radians","degreesToRadians","textCoords","cos","sin","strokeDiff","concat","getData","round","getLabel","segmentBigEnough","routeName","$router","push","name","component","fails","METHOD_NAME","test","toLowerCase","split"],"mappings":"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","file":"js/chunk-21115a08.js?id=103d8a06fce4ab32c673","sourcesContent":["'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = toString(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.setupData)?_c('div',[_c('div',{staticClass:\"has-text-centered\"},[(_vm.showChart)?_c('svg',{attrs:{\"height\":\"160\",\"width\":\"160\",\"viewBox\":\"0 0 160 160\"}},[_c('g',[(!_vm.dataLoaded || _vm.values.length === 0)?_c('circle',{attrs:{\"cx\":_vm.cx,\"cy\":_vm.cy,\"r\":_vm.radius,\"stroke\":'lightgray',\"stroke-width\":_vm.strokeWidth,\"stroke-dasharray\":_vm.circumference,\"stroke-dashoffset\":_vm.calculateStrokeDashOffset(0, _vm.circumference),\"transform\":_vm.returnCircleTransformValue({ percentage: 100, degrees: -90 }),\"fill\":\"transparent\"}}):_vm._e(),_c('circle',{attrs:{\"cx\":_vm.cx,\"cy\":_vm.cy,\"r\":_vm.radius - 5,\"fill\":\"#fff\"}}),(_vm.showCenterData && _vm.dataLoaded && _vm.values.length === 0)?_c('g',{staticClass:\"donut-text\"},[_c('text',{attrs:{\"y\":\"50%\",\"X\":\"50%\",\"text-anchor\":\"middle\"}},[_c('tspan',{attrs:{\"x\":\"50%\",\"y\":\"84\",\"text-anchor\":\"left\",\"font-weight\":\"bold\",\"fill\":\"lightgray\"}},[_vm._v(\" \"+_vm._s(_vm.labelEmpty)+\" \")])])]):_vm._e()]),_vm._l((_vm.values),function(value,index){return _c('g',{key:index},[_c('circle',{staticClass:\"has-tooltip-arrow\",attrs:{\"cx\":_vm.cx,\"cy\":_vm.cy,\"r\":_vm.radius,\"stroke\":value.colour,\"stroke-width\":_vm.strokeWidth,\"stroke-dasharray\":_vm.circumference,\"stroke-dashoffset\":_vm.calculateStrokeDashOffset(value.data, _vm.circumference),\"transform\":_vm.returnCircleTransformValue(value),\"fill\":\"transparent\",\"data-tooltip\":value.label}}),_c('circle',{attrs:{\"cx\":_vm.cx,\"cy\":_vm.cy,\"r\":_vm.radius - 5,\"fill\":\"#fff\"}}),(_vm.showCenterData)?_c('g',{staticClass:\"donut-text\"},_vm._l((_vm.values),function(value,index){return _c('text',{key:index,attrs:{\"y\":\"50%\",\"X\":\"50%\",\"text-anchor\":\"middle\"}},[_c('tspan',{attrs:{\"x\":\"50%\",\"y\":90 + index * 15 - _vm.values.length * 6,\"text-anchor\":\"left\",\"font-weight\":\"bold\",\"fill\":value.colour},on:{\"click\":function($event){return _vm.goTo(value.link)}}},[_vm._v(\" \"+_vm._s(value.data)+\" \"+_vm._s(value.label)+\" \")])])}),0):_vm._e()])})],2):_vm._e(),(_vm.showTable && _vm.dataLoaded && _vm.values.length > 0)?_c('table',{staticClass:\"table is-fullwidth is-striped is-hoverable\"},[_c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(_vm._s(_vm.tabelLabelLabel))]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(_vm._s(_vm.tabelDataLabel))])])]),_c('tbody',_vm._l((_vm.values),function(value,index){return _c('tr',{key:index},[_c('td',[_c('span',{staticClass:\"bd-color\",style:({ background: value.colour })})]),_c('td',[_vm._v(_vm._s(value.label))]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(_vm._s(value.data))])])}),0)]):_vm._e(),(_vm.viewType === 'normal' && _vm.dataLoaded)?_c('div',{staticClass:\"has-text-right\"},[_c('a',{on:{\"click\":_vm.switchView}},[(_vm.showChart)?_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'table']}})],1):_vm._e(),(_vm.showTable)?_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'chart-pie']}})],1):_vm._e()])]):_vm._e()])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div v-if=\"setupData\">\n    <div class=\"has-text-centered\">\n      <svg v-if=\"showChart\" height=\"160\" width=\"160\" viewBox=\"0 0 160 160\">\n        <g>\n          <circle\n            v-if=\"!dataLoaded || values.length === 0\"\n            :cx=\"cx\"\n            :cy=\"cy\"\n            :r=\"radius\"\n            :stroke=\"'lightgray'\"\n            :stroke-width=\"strokeWidth\"\n            :stroke-dasharray=\"circumference\"\n            :stroke-dashoffset=\"calculateStrokeDashOffset(0, circumference)\"\n            :transform=\"\n              returnCircleTransformValue({ percentage: 100, degrees: -90 })\n            \"\n            fill=\"transparent\"\n          />\n          <circle :cx=\"cx\" :cy=\"cy\" :r=\"radius - 5\" fill=\"#fff\" />\n          <g\n            class=\"donut-text\"\n            v-if=\"showCenterData && dataLoaded && values.length === 0\"\n          >\n            <text y=\"50%\" X=\"50%\" text-anchor=\"middle\">\n              <tspan\n                x=\"50%\"\n                y=\"84\"\n                text-anchor=\"left\"\n                font-weight=\"bold\"\n                fill=\"lightgray\"\n              >\n                {{ labelEmpty }}\n              </tspan>\n            </text>\n          </g>\n        </g>\n\n        <g v-for=\"(value, index) in values\" :key=\"index\">\n          <!-- <circle\n              :cx=\"cx\"\n              :cy=\"cy\"\n              :r=\"radius\"\n              :transform=\"`rotate(-90, ${cx}, ${cy})`\"\n              stroke-dasharray=\"0, 1000\"\n              stroke=\"#7cb342\"\n              :stroke-width=\"strokeWidth\"\n              data-fallback=\"edge\"\n            >\n              <animate\n                attributeName=\"stroke-dasharray\"\n                dur=\"1s\"\n                :to=\"`${dataPercentage(value.data)*100}, 1000`\"\n                fill=\"freeze\"\n              />\n            </circle> -->\n          <circle\n            :cx=\"cx\"\n            :cy=\"cy\"\n            :r=\"radius\"\n            :stroke=\"value.colour\"\n            :stroke-width=\"strokeWidth\"\n            :stroke-dasharray=\"circumference\"\n            :stroke-dashoffset=\"\n              calculateStrokeDashOffset(value.data, circumference)\n            \"\n            :transform=\"returnCircleTransformValue(value)\"\n            fill=\"transparent\"\n            :data-tooltip=\"value.label\"\n            class=\"has-tooltip-arrow\"\n          />\n          <circle :cx=\"cx\" :cy=\"cy\" :r=\"radius - 5\" fill=\"#fff\" />\n          <g v-if=\"showCenterData\" class=\"donut-text\">\n            <text\n              v-for=\"(value, index) in values\"\n              :key=\"index\"\n              y=\"50%\"\n              X=\"50%\"\n              text-anchor=\"middle\"\n            >\n              <tspan\n                x=\"50%\"\n                :y=\"90 + index * 15 - values.length * 6\"\n                text-anchor=\"left\"\n                font-weight=\"bold\"\n                :fill=\"value.colour\"\n                @click=\"goTo(value.link)\"\n              >\n                {{ value.data }} {{ value.label }}\n              </tspan>\n            </text>\n          </g>\n\n          <!-- <text\n              text-anchor=\"middle\"\n              v-if=\"segmentBigEnough(value.percentage)\"\n              :x=\"value.textX\"\n              :y=\"value.textY\"\n            >{{ getData(value) }}</text> -->\n        </g>\n      </svg>\n\n      <table\n        v-if=\"showTable && dataLoaded && values.length > 0\"\n        class=\"table is-fullwidth is-striped is-hoverable\"\n      >\n        <thead>\n          <tr>\n            <th></th>\n            <th>{{ tabelLabelLabel }}</th>\n            <th class=\"has-text-right\">{{ tabelDataLabel }}</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr v-for=\"(value, index) in values\" :key=\"index\">\n            <td>\n              <span\n                class=\"bd-color\"\n                :style=\"{ background: value.colour }\"\n              ></span>\n            </td>\n            <td>{{ value.label }}</td>\n            <td class=\"has-text-right\">{{ value.data }}</td>\n          </tr>\n        </tbody>\n      </table>\n\n      <div v-if=\"viewType === 'normal' && dataLoaded\" class=\"has-text-right\">\n        <a @click=\"switchView\">\n          <span class=\"icon\" v-if=\"showChart\">\n            <font-awesome-icon :icon=\"['fas', 'table']\" />\n          </span>\n          <span class=\"icon\" v-if=\"showTable\">\n            <font-awesome-icon :icon=\"['fas', 'chart-pie']\" />\n          </span>\n        </a>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    dataLoaded: {\n      default: false,\n      type: Boolean\n    },\n\n    initialValues: {\n      default: function() {\n        return []\n      },\n      type: Array\n    },\n\n    labelEmpty: {\n      default: '',\n      type: String\n    },\n\n    showData: {\n      default: 'percentage',\n      type: String\n    },\n\n    showLabel: {\n      default: 'label',\n      type: String\n    },\n\n    showCenterData: {\n      type: Boolean,\n      default: true\n    },\n\n    tabelLabelLabel: {\n      type: String,\n      default: 'Label'\n    },\n\n    tabelDataLabel: {\n      type: String,\n      default: 'Data'\n    },\n\n    viewType: {\n      type: String,\n      default: 'normal'\n    }\n  },\n\n  data() {\n    return {\n      angleOffset: -90,\n      colours: ['#00baff', '#fec632', '#fc3c63', 'thistle', 'lightgray'],\n      cx: 80,\n      cy: 80,\n      radius: 60,\n      strokeWidth: 20,\n      values: this.initialValues,\n      setupData: this.dataLoaded,\n      showChart: this.viewType === 'full' ? true : true,\n      showTable: this.viewType === 'full' ? true : false\n    }\n  },\n\n  computed: {\n    circumference() {\n      return 2 * Math.PI * this.radius\n    },\n\n    dataTotal() {\n      let self = this\n      let total = 0\n\n      for (let i = 0; i < self.values.length; i++) {\n        total = total + self.values[i].data\n      }\n\n      return total\n    }\n  },\n\n  created() {\n    this.optimizeValuesData()\n  },\n\n  methods: {\n    optimizeValuesData() {\n      let self = this\n\n      for (let i = 0; i < self.values.length; i++) {\n        let { x, y } = self.calculateTextCoords(\n          self.values[i].data,\n          self.angleOffset\n        )\n        let percentage = self.dataPercentage(self.values[i].data) * 100\n        self.values[i].degrees = self.angleOffset\n        //self.values[i].colour = self.colours[i]\n        self.values[i].percentage = percentage\n        self.values[i].textX = x\n        self.values[i].textY = y\n\n        self.angleOffset =\n          self.dataPercentage(self.values[i].data) * 360 + self.angleOffset\n      }\n\n      self.setupData = true\n    },\n\n    calculateTextCoords(dataVal, angleOffset) {\n      const angle = (this.dataPercentage(dataVal) * 360) / 2 + this.angleOffset\n      const radians = this.degreesToRadians(angle)\n\n      const textCoords = {\n        x: this.radius * Math.cos(radians) + this.cx,\n        y: this.radius * Math.sin(radians) + this.cy\n      }\n      return textCoords\n    },\n\n    calculateStrokeDashOffset(dataVal, circumference) {\n      let self = this\n      const strokeDiff = self.dataPercentage(dataVal) * circumference\n      return circumference - strokeDiff\n    },\n\n    dataPercentage(dataVal) {\n      let self = this\n      return dataVal / self.dataTotal\n    },\n\n    degreesToRadians(angle) {\n      return angle * (Math.PI / 180)\n    },\n\n    returnCircleTransformValue(value) {\n      let self = this\n      return `rotate(${value.degrees}, ${self.cx}, ${self.cy})`\n    },\n\n    getData(value) {\n      let self = this\n      let label = ''\n\n      if (self.showData === 'percentage') {\n        label = `${Math.round(self.dataPercentage(value.data) * 100)}%`\n      } else if (self.showData === 'label') {\n        label = `${value.label}`\n      } else if (self.showData === 'data') {\n        label = `${value.data}`\n      }\n\n      return label\n    },\n\n    getLabel(value) {\n      let self = this\n      let label = ''\n\n      if (self.showLabel === 'percentage') {\n        label = `${Math.round(self.dataPercentage(value.data) * 100)}%`\n      } else if (self.showLabel === 'label') {\n        label = `${value.label}`\n      } else if (self.showLabel === 'data') {\n        label = `${value.data}`\n      }\n\n      return label\n    },\n\n    segmentBigEnough(percentage) {\n      return Math.round(percentage) > 5\n    },\n\n    goTo(routeName) {\n      this.$router.push({ name: routeName })\n    },\n\n    switchView() {\n      let self = this\n      self.showChart = !self.showChart\n      self.showTable = !self.showTable\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\nbody {\n  font-size: 16px;\n}\nsvg {\n  height: 200px;\n  width: 200px;\n}\ntext {\n  fill: #333;\n  font-family: 'Roboto', sans-serif;\n  font-size: 0.75rem;\n}\n\n.bd-color {\n  border-radius: 2px;\n  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n  display: inline-block;\n  height: 24px;\n  margin-right: 8px;\n  width: 24px;\n}\n</style>\n","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!./DonutChart.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!./DonutChart.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DonutChart.vue?vue&type=template&id=93b9c620&scoped=true\"\nimport script from \"./DonutChart.vue?vue&type=script&lang=js\"\nexport * from \"./DonutChart.vue?vue&type=script&lang=js\"\nimport style0 from \"./DonutChart.vue?vue&type=style&index=0&id=93b9c620&prod&lang=scss&scoped=true\"\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  \"93b9c620\",\n  null\n  \n)\n\nexport default component.exports","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.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/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutChart.vue?vue&type=style&index=0&id=93b9c620&prod&lang=scss&scoped=true\""],"sourceRoot":""}