{"version":3,"sources":["webpack:///./src/components/reports-kpis/component/graphicCampaignReportV2.vue?da06","webpack:///./node_modules/vue-funnel-graph-js/dist/vue-funnel-graph.esm.js","webpack:///./node_modules/funnel-graph-js/src/js/graph.js","webpack:///./node_modules/funnel-graph-js/src/js/path.js","webpack:///./node_modules/funnel-graph-js/src/js/random.js","webpack:///./node_modules/funnel-graph-js/src/js/main.js","webpack:///./node_modules/@tweenjs/tween.js/src/Tween.js","webpack:///./node_modules/polymorph-js/lib.es2015/constants.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/inspect.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/renderPath.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/math.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/errors.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/objects.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/browser.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/createNumberArray.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/fillSegments.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/rotatePoints.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/distance.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/normalizePoints.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/fillPoints.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/normalizePaths.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/interpolatePath.js","webpack:///./node_modules/polymorph-js/lib.es2015/utilities/coalesce.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/arcToCurve.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/parsePoints.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/perimeterPoints.js","webpack:///./node_modules/polymorph-js/lib.es2015/operators/parsePath.js","webpack:///./node_modules/polymorph-js/lib.es2015/getPath.js","webpack:///./node_modules/polymorph-js/lib.es2015/parse.js","webpack:///./node_modules/polymorph-js/lib.es2015/interpolate.js","webpack:///./node_modules/funnel-graph-js/src/js/number.js","webpack:///./src/components/reports-kpis/component/FilterAutocomplete.vue","webpack:///src/components/reports-kpis/component/FilterAutocomplete.vue","webpack:///./src/components/reports-kpis/component/FilterAutocomplete.vue?3a4c","webpack:///./src/components/reports-kpis/component/FilterAutocomplete.vue?7947","webpack:///./src/components/reports-kpis/PlatformCampaignReportV2.vue?f26b","webpack:///./node_modules/funnel-graph-js/index.js","webpack:///./src/components/reports-kpis/component/ListLeadsByReportDetail.vue","webpack:///src/components/reports-kpis/component/ListLeadsByReportDetail.vue","webpack:///./src/components/reports-kpis/component/ListLeadsByReportDetail.vue?0f76","webpack:///./src/components/reports-kpis/component/ListLeadsByReportDetail.vue?5891","webpack:///./src/components/reports-kpis/component/ListLeadsByReportDetail.vue?1340","webpack:///./src/components/reports-kpis/PlatformCampaignReportV2.vue","webpack:///./src/pdf/campaign-report-PDF.js","webpack:///./src/components/reports-kpis/component/graphicCampaignReportV2.vue","webpack:///src/components/reports-kpis/component/graphicCampaignReportV2.vue","webpack:///./src/components/reports-kpis/component/graphicCampaignReportV2.vue?4cfd","webpack:///./src/components/reports-kpis/component/graphicCampaignReportV2.vue?1011","webpack:///./src/components/reports-kpis/component/AvatarSource.vue","webpack:///./src/components/common/AvatarTraffic.vue","webpack:///src/components/common/AvatarTraffic.vue","webpack:///./src/components/common/AvatarTraffic.vue?80de","webpack:///./src/components/common/AvatarTraffic.vue?37df","webpack:///src/components/reports-kpis/component/AvatarSource.vue","webpack:///./src/components/reports-kpis/component/AvatarSource.vue?9a94","webpack:///./src/components/reports-kpis/component/AvatarSource.vue?7ded","webpack:///./src/components/reports-kpis/component/AvatarMedium.vue","webpack:///src/components/reports-kpis/component/AvatarMedium.vue","webpack:///./src/components/reports-kpis/component/AvatarMedium.vue?5e19","webpack:///./src/components/reports-kpis/component/AvatarMedium.vue?06b6","webpack:///src/components/reports-kpis/PlatformCampaignReportV2.vue","webpack:///./src/components/reports-kpis/PlatformCampaignReportV2.vue?4d8f","webpack:///./src/components/reports-kpis/PlatformCampaignReportV2.vue?adbd"],"names":["script","name","props","animated","type","Boolean","default","width","String","Number","height","values","Array","labels","colors","subLabels","subLabelValue","direction","gradientDirection","displayPercentage","data","paths","prevPaths","graph","tween","defaultColors","computed","valuesFormatted","this","is2d","getValues2d","map","value","colorSet","gradientCount","i","length","getColors","fillMode","push","fill","gradientSet","forEach","concat","splice","gradientAngle","methods","enterTransition","el","done","setTimeout","leaveTransition","percentages","createPercentages","twoDimPercentages","getPercentages2d","subLabelBackgrounds","index","offsetColor","Math","round","makeAnimations","this$1","stop","interpolators","dimensionChanged","origin","x","y","animate","update","requestAnimationFrame","isVertical","path","oldPath","getPathMedian","interpolator","addPoints","optimize","precision","position","Tween","to","easing","Easing","Cubic","InOut","onUpdate","$set","start","drawPaths","definitions","getPathDefinitions","d","created","watch","setValues","setDirection","setWidth","setHeight","filters","format","normalizeComponent","template","style","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","normalizeComponent_1","isOldIE","navigator","test","userAgent","toLowerCase","id","addStyle","HEAD","document","head","getElementsByTagName","styles","css","group","media","ids","Set","has","code","source","sources","btoa","unescape","encodeURIComponent","JSON","stringify","element","createElement","setAttribute","appendChild","styleSheet","cssText","filter","join","size","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","browser","__vue_script__","__vue_render__","_vm","_h","$createElement","_c","_self","staticClass","class","attrs","_l","key","color","_v","on","split","_s","_e","subLabel","j","_f","__vue_staticRenderFns__","__vue_inject_styles__","inject","undefined","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","vueFunnelGraph","components","Object","freeze","__proto__","VueFunnelGraph","install","Vue","installed","keys","componentName","component","plugin","GlobalVue","window","global","use","setAttrs","attributes","removeAttrs","attribute","removeAttribute","createSVGElement","container","createElementNS","generateLegendBackground","getDefaultColors","number","abs","random","createCurves","x1","y1","x2","y2","createVerticalCurves","createPath","X","Y","YNext","str","pop","createVerticalPath","XNext","generateRandomIdString","prefix","toString","replace","containerSelector","getLabels","getSubLabels","getValues","getSubDataSize","displayPercent","getDataSize","points","fullDimension","getHeight","getWidth","getFullDimension","dimension","totalValues","max","percentagesFull","pointsOfFirstPath","p","newPoints","point","getGraphType","Error","holder","percentage","labelElement","title","textContent","valueNumber","percentageValue","segmentPercentages","percentageList","subLabelDisplayValue","innerHTML","subLabelsHolder","subLabelsHTML","querySelector","HTMLElement","classList","graphContainer","v","w","valueSet","reduce","sum","total","svg","defs","gradientName","gradient","numberOfColors","offset","stroke","valuesNum","getCrossAxisPoints","applyGradient","clientWidth","clientHeight","getMainAxisPoints","cross","next","m","getSVG","querySelectorAll","definition","createContainer","makeSVG","addLabels","addSubLabels","remove","makeVertical","makeHorizontal","gradients","gradientMakeVertical","gradientMakeHorizontal","prototype","o","label","updateHeight","updateWidth","updateData","_Group","_tweens","_tweensAddedDuringUpdate","getAll","tweenId","bind","removeAll","getId","time","preserve","tweenIds","TWEEN","now","_isPlaying","Group","_nextId","nextId","process","hrtime","self","performance","Date","getTime","object","_object","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_repeatDelayTime","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Linear","None","_interpolationFunction","Interpolation","_chainedTweens","_onStartCallback","_onStartCallbackFired","_onUpdateCallback","_onRepeatCallback","_onCompleteCallback","_onStopCallback","_group","_id","isPlaying","properties","duration","property","parseFloat","stopChainedTweens","end","Infinity","numChainedTweens","delay","amount","repeat","times","repeatDelay","yoyo","easingFunction","interpolation","interpolationFunction","chain","arguments","onStart","callback","onRepeat","onComplete","onStop","elapsed","charAt","isFinite","tmp","k","Quadratic","In","Out","Quartic","Quintic","Sinusoidal","cos","PI","sin","Exponential","pow","Circular","sqrt","Elastic","Back","s","Bounce","f","floor","fn","Utils","Bezier","b","n","pw","bn","Bernstein","CatmullRom","p0","p1","t","fc","Factorial","a","p2","p3","v0","v1","t2","t3","root","_","V","H","L","Z","M","C","S","Q","T","A","EMPTY","FILL","NONE","isString","obj","renderPath","ns","formatter","result","lastResult","dx","dy","isPoint","math","min","asin","tan","quadraticRatio","EPSILON","raiseError","fillObject","dest","src","hasOwnProperty","isEdge","arrayConstructor","Float32Array","createNumberArray","fillSegments","larger","smaller","largeLen","smallLen","l","absolute","rotatePoints","count","len","rightLen","buffer","distance","normalizePoints","slice","minAmount","fillPoints","matrix","ilen","left","right","totalLength","fillSubpath","totalNeeded","ratio","ceil","sizeDesc","normalizePaths","leftPath","getSortedSegments","rightPath","ox","oy","toPoints","ls","rs","sort","defaultOptions","interpolatePath","hlen","items","getPathInterpolator","toFixed","flr","results","mixPoints","alen","coalesce","current","fallback","_120","PI2","arcToCurve","rx","ry","angle","large","sweep","f1","f2","cx","cy","rad","cosrad","sinrad","recursive","x1old","dxold","res","f2old","x2old","y2old","xt","yt","argLengths","addCurve","ctx","lc","c","convertToAbsolute","parseSegments","trim","parseSegment","s2","parseCommand","parsePoints","segments","terms","commandLetter","command","toUpperCase","isRelative","maxLength","isInitialCurve","cx1","cy1","beziers","perimeterPoints","pts","createPathSegmentArray","xmin","ymin","ymax","xmax","parsePath","selectorRegex","getPath","selector","getAttribute","parse","interpolate","roundPoint","formatNumber","itemValue","scopedSlots","_ref","item","proxy","expression","HelperMessage","limit","itemText","selected","newValue","$emit","message","_this","mapItems","acc","formatText","module","exports","dialog","$event","setDialog","_item$postponed","click","leadDetailModal","leadPostponeAction","required","leads","loading","showDetail","money","Intl","NumberFormat","currency","maximumFractionDigits","_objectSpread","mapState","lead","state","actualItem","mapActions","fetchLead","mapMutations","setLoadingActualLead","setActualLead","leadId","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","$store","commit","budgetFormat","budget","formatDate","date","toLocaleDateString","year","month","day","staticStyle","ref","model","rotate","showTable","_header$subHeaders","header","text","rowspan","orderByField","getSortOrder","hasSubHeaders","subHeader","row","rowIndex","rows","lastRow","getClass","getCellValue","createPdf","headers","doc","jsPDF","columns","getHeaders","columnStyles","getColumnStyles","addPage","body","getBody","addTitle","addFilters","addBannerType","autoTable","startY","theme","fontSize","font","overflow","headStyles","textColor","fillColor","halign","save","active","others","_objectWithoutProperties","_excluded","tof","mof","bof","dataKey","setFont","setTextColor","setFontSize","mapWidth","8","7","6","campaign","medium","cellWidth","lineColor","ventas","descartados","zones","content","valuesGraphics","screen","availWidth","mounted","mapData","TOTAL","TOF","MOF","BOF","rotateGraphic","AvatarTraffic","mapGetters","sourceByName","mediumByName","dateRange","graphicCampaignReportV2","ListLeadsByReportDetail","AvatarSource","AvatarMedium","FilterAutocomplete","ViewLoading","ViewError","Options","loadingLeadList","by","order","show","adset","ad","form","campaigns","sortable","groupable","align","subHeaders","itemClasses","finished","discarded","fetch","fetchDataByReport","getCampaigns","handler","val","deep","campaignReport","reports","leadsList","leadListByComertialReport","mediums","some","headerWithSubs","find","getCells","cells","apply","_toConsumableArray","getReport","fetchfilters","getListLeads","handlerFilters","newFilter","existInHeader","levesl","capitalizeFirstLetter","getPercent","isNaN","percent","_this2","_this$show","typeLvl","sourceLvl","campaignLvl","adsetLvl","adLvl","formLvl","mediumLvl","typeValue","includes","sourceValue","campaignValue","adsetValue","adValue","formValue","mediumValue","keyGroup","findIndex","keyType","typeIndex","indexOf","mapType","manual","automatic","Indefinido","keyTypeReverse","Offline","Online","lvls","_ref2","field","_this3","sortOrder","valueA","valueB","iconBySort","string","cleanFilters","$refs","resetDateRange","makePdf","_this4","filterSources","e","$snotify","error","timeout","graphic","getLeads","_this5","_callee2","mapFilter","_context2","registration","typeReport"],"mappings":"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","file":"js/chunk-99cd51e6.afc6ffb4.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./graphicCampaignReportV2.vue?vue&type=style&index=0&id=5209c895&prod&lang=css&\"","import { interpolate } from 'polymorph-js';\nimport TWEEN from '@tweenjs/tween.js';\nimport FunnelGraph from 'funnel-graph-js';\nimport { formatNumber } from 'funnel-graph-js/src/js/number';\nimport { getDefaultColors, generateLegendBackground } from 'funnel-graph-js/src/js/graph';\nimport 'funnel-graph-js/src/scss/main.scss';\nimport 'funnel-graph-js/src/scss/theme.scss';\n\n//\n\nvar script = {\n name: 'VueFunnelGraph',\n props: {\n animated: {\n type: Boolean,\n default: false\n },\n width: [String, Number],\n height: [String, Number],\n values: Array,\n labels: Array,\n colors: {\n type: Array,\n default: function default$1() { return []; }\n },\n subLabels: Array,\n subLabelValue: {\n type: String,\n default: 'percent'\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n gradientDirection: {\n type: String,\n default: 'horizontal'\n },\n displayPercentage: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n paths: [],\n prevPaths: [], // paths before update, used for animations\n graph: null,\n tween: null,\n defaultColors: getDefaultColors(10)\n };\n },\n computed: {\n valuesFormatted: function valuesFormatted() {\n if (this.graph.is2d()) {\n return this.graph.getValues2d().map(function (value) { return formatNumber(value); });\n }\n return this.values.map(function (value) { return formatNumber(value); });\n },\n colorSet: function colorSet() {\n var colorSet = [];\n var gradientCount = 0;\n\n for (var i = 0; i < this.paths.length; i++) {\n var values = this.graph.is2d() ? this.getColors[i] : this.getColors;\n var fillMode = (typeof values === 'string' || values.length === 1) ? 'solid' : 'gradient';\n if (fillMode === 'gradient') { gradientCount += 1; }\n colorSet.push({\n values: values,\n fillMode: fillMode,\n fill: fillMode === 'solid' ? values : (\"url('#funnelGradient-\" + gradientCount + \"')\")\n });\n }\n return colorSet;\n },\n gradientSet: function gradientSet() {\n var gradientSet = [];\n this.colorSet.forEach(function (colors) {\n if (colors.fillMode === 'gradient') {\n gradientSet.push(colors);\n }\n });\n return gradientSet;\n },\n getColors: function getColors() {\n if (this.colors instanceof Array && this.colors.length === 0) {\n return getDefaultColors(this.is2d() ? this.values[0].length : 2);\n }\n if (this.colors.length < this.paths.length) {\n return [].concat( this.colors ).concat(\n [].concat( this.defaultColors ).splice(this.paths.length, this.paths.length - this.colors.length)\n );\n }\n return this.colors;\n },\n gradientAngle: function gradientAngle() {\n return (\"rotate(\" + (this.gradientDirection === 'vertical' ? 90 : 0) + \")\");\n }\n },\n methods: {\n enterTransition: function enterTransition(el, done) {\n if (!this.animated) { done(); }\n setTimeout(function () { return done(); }, 700);\n },\n leaveTransition: function leaveTransition(el, done) {\n if (!this.animated) { done(); }\n setTimeout(function () { return done(); }, 700);\n },\n is2d: function is2d() {\n return this.graph.is2d();\n },\n percentages: function percentages() {\n return this.graph.createPercentages();\n },\n twoDimPercentages: function twoDimPercentages() {\n if (!this.is2d()) {\n return [];\n }\n return this.graph.getPercentages2d();\n },\n subLabelBackgrounds: function subLabelBackgrounds(index) {\n if (!this.is2d()) {\n return [];\n }\n return generateLegendBackground(this.getColors[index], this.gradientDirection);\n },\n offsetColor: function offsetColor(index, length) {\n return ((Math.round(100 * index / (length - 1))) + \"%\");\n },\n makeAnimations: function makeAnimations() {\n var this$1 = this;\n\n if (this.tween !== null) { this.tween.stop(); }\n var interpolators = [];\n var dimensionChanged = this.prevPaths.length !== this.paths.length;\n\n var origin = { x: 0.5, y: 0.5 };\n if (dimensionChanged) {\n origin = { x: 0, y: 0.5 };\n if (this.graph.isVertical()) {\n origin = { x: 1, y: 1 };\n }\n if (!this.graph.is2d()) {\n origin = { x: 0, y: 1 };\n }\n }\n\n this.paths.forEach(function (path, index) {\n var oldPath = this$1.prevPaths[index] || this$1.graph.getPathMedian(index);\n if (dimensionChanged) { oldPath = this$1.graph.getPathMedian(index); }\n var interpolator = interpolate([oldPath, path], {\n addPoints: 1,\n origin: origin,\n optimize: 'fill',\n precision: 1\n });\n\n interpolators.push(interpolator);\n });\n\n function animate() {\n if (TWEEN.update()) {\n requestAnimationFrame(animate);\n }\n }\n\n var position = { value: 0 };\n this.tween = new TWEEN.Tween(position)\n .to({ value: 1 }, 700)\n .easing(TWEEN.Easing.Cubic.InOut)\n .onUpdate(function () {\n for (var index = 0; index < this$1.paths.length; index++) {\n this$1.$set(this$1.paths, index, interpolators[index](position.value));\n }\n });\n\n this.tween.start();\n animate();\n },\n drawPaths: function drawPaths() {\n var this$1 = this;\n\n this.prevPaths = this.paths;\n this.paths = [];\n var definitions = this.graph.getPathDefinitions();\n\n definitions.forEach(function (d) {\n this$1.paths.push(d);\n });\n }\n },\n created: function created() {\n this.graph = new FunnelGraph({\n height: this.height,\n width: this.width,\n direction: this.direction,\n data: {\n labels: this.labels,\n values: this.values\n }\n });\n this.drawPaths();\n if (this.animated) { this.makeAnimations(); }\n },\n watch: {\n values: function values() {\n this.graph.setValues(this.values);\n this.drawPaths();\n if (this.animated) { this.makeAnimations(); }\n },\n direction: function direction() {\n this.graph.setDirection(this.direction)\n .setWidth(this.width)\n .setHeight(this.height);\n this.drawPaths();\n }\n },\n filters: {\n format: function (value) {\n return formatNumber(value)\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) { style.element.setAttribute('media', css.media); }\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) { style.element.removeChild(nodes[index]); }\n if (nodes.length) { style.element.insertBefore(textNode, nodes[index]); }else { style.element.appendChild(textNode); }\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nvar __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"funnel svg-funnel-js\",class:{'svg-funnel-js--vertical': _vm.direction === 'vertical'}},[_c('div',{staticClass:\"svg-funnel-js__container\"},[_c('svg',{attrs:{\"width\":_vm.width,\"height\":_vm.height}},[_c('defs',_vm._l((_vm.gradientSet),function(colors,index){return _c('linearGradient',{key:index,attrs:{\"id\":(\"funnelGradient-\" + ((index+1))),\"gradientTransform\":_vm.gradientAngle}},_vm._l((colors.values),function(color,index){return _c('stop',{key:index,attrs:{\"stop-color\":color,\"offset\":_vm.offsetColor(index, colors.values.length)}})}),1)}),1),_vm._v(\" \"),_vm._l((_vm.paths),function(path,index){return _c('path',{key:index,attrs:{\"fill\":_vm.colorSet[index].fill,\"stroke\":_vm.colorSet[index].fill,\"d\":path}})})],2)]),_vm._v(\" \"),_c('transition-group',{staticClass:\"svg-funnel-js__labels\",attrs:{\"name\":\"appear\",\"tag\":\"div\"},on:{\"enter\":_vm.enterTransition,\"leave\":_vm.leaveTransition}},_vm._l((_vm.valuesFormatted),function(value,index){return _c('div',{key:_vm.labels[index].toLowerCase().split(' ').join('-'),staticClass:\"svg-funnel-js__label\",class:(\"label-\" + ((index+1)))},[_c('div',{staticClass:\"label__value\"},[_vm._v(_vm._s(value))]),_vm._v(\" \"),(_vm.labels)?_c('div',{staticClass:\"label__title\"},[_vm._v(_vm._s(_vm.labels[index]))]):_vm._e(),_vm._v(\" \"),(_vm.displayPercentage && _vm.percentages()[index] !== 100)?_c('div',{staticClass:\"label__percentage\"},[_vm._v(\"\\n \"+_vm._s(_vm.percentages()[index])+\"%\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.is2d())?_c('div',{staticClass:\"label__segment-percentages\"},[_c('ul',{staticClass:\"segment-percentage__list\"},_vm._l((_vm.subLabels),function(subLabel,j){return _c('li',{key:j},[_vm._v(\"\\n \"+_vm._s(subLabel)+\":\\n \"),(_vm.subLabelValue === 'percent')?_c('span',{staticClass:\"percentage__list-label\"},[_vm._v(_vm._s(_vm.twoDimPercentages()[index][j])+\"%\")]):_c('span',{staticClass:\"percentage__list-label\"},[_vm._v(_vm._s(_vm._f(\"format\")(_vm.values[index][j])))])])}),0)]):_vm._e()])}),0),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"},on:{\"enter\":_vm.enterTransition,\"leave\":_vm.leaveTransition}},[(_vm.is2d())?_c('div',{staticClass:\"svg-funnel-js__subLabels\"},_vm._l((_vm.subLabels),function(subLabel,index){return _c('div',{key:index,class:(\"svg-funnel-js__subLabel svg-funnel-js__subLabel-\" + ((index + 1)))},[_c('div',{staticClass:\"svg-funnel-js__subLabel--color\",style:(_vm.subLabelBackgrounds(index))}),_vm._v(\" \"),_c('div',{staticClass:\"svg-funnel-js__subLabel--title\"},[_vm._v(_vm._s(subLabel))])])}),0):_vm._e()])],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n var __vue_inject_styles__ = function (inject) {\n if (!inject) { return }\n inject(\"data-v-52d787cd_0\", { source: \".appear-enter-active[data-v-52d787cd],.appear-leave-active[data-v-52d787cd]{transition:all .7s ease-in-out}.appear-enter-to[data-v-52d787cd],.appear-leave[data-v-52d787cd]{max-width:100%;max-height:100%;opacity:1}.appear-enter[data-v-52d787cd],.appear-leave-to[data-v-52d787cd]{max-width:0;max-height:0;opacity:0}.fade-enter-active[data-v-52d787cd],.fade-leave-active[data-v-52d787cd]{transition:all .3s ease}.fade-enter-to[data-v-52d787cd],.fade-leave[data-v-52d787cd]{opacity:1}.fade-enter[data-v-52d787cd],.fade-leave-to[data-v-52d787cd]{opacity:0}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n var __vue_scope_id__ = \"data-v-52d787cd\";\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n\n \n var vueFunnelGraph = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n browser,\n undefined\n );\n\n/* eslint-disable import/prefer-default-export */\n\nvar components = /*#__PURE__*/Object.freeze({\n __proto__: null,\n VueFunnelGraph: vueFunnelGraph\n});\n\n// Import vue components\n\n// install function executed by Vue.use()\nfunction install(Vue) {\n if (install.installed) { return; }\n install.installed = true;\n Object.keys(components).forEach(function (componentName) {\n Vue.component(componentName, components[componentName]);\n });\n}\n\n// Create module definition for Vue.use()\nvar plugin = {\n install: install\n};\n\n// To auto-install when vue is found\n/* global window global */\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { vueFunnelGraph as VueFunnelGraph };\n","const setAttrs = (element, attributes) => {\n if (typeof attributes === 'object') {\n Object.keys(attributes).forEach((key) => {\n element.setAttribute(key, attributes[key]);\n });\n }\n};\n\nconst removeAttrs = (element, ...attributes) => {\n attributes.forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n};\n\nconst createSVGElement = (element, container, attributes) => {\n const el = document.createElementNS('http://www.w3.org/2000/svg', element);\n\n if (typeof attributes === 'object') {\n setAttrs(el, attributes);\n }\n\n if (typeof container !== 'undefined') {\n container.appendChild(el);\n }\n\n return el;\n};\n\nconst generateLegendBackground = (color, direction = 'horizontal') => {\n if (typeof color === 'string') {\n return `background-color: ${color}`;\n }\n\n if (color.length === 1) {\n return `background-color: ${color[0]}`;\n }\n\n return `background-image: linear-gradient(${direction === 'horizontal'\n ? 'to right, '\n : ''}${color.join(', ')})`;\n};\n\nconst defaultColors = ['#FF4589', '#FF5050',\n '#05DF9D', '#4FF2FD',\n '#2D9CDB', '#A0BBFF',\n '#FFD76F', '#F2C94C',\n '#FF9A9A', '#FFB178'];\n\nconst getDefaultColors = (number) => {\n const colors = [...defaultColors];\n const colorSet = [];\n\n for (let i = 0; i < number; i++) {\n // get a random color\n const index = Math.abs(Math.round(Math.random() * (colors.length - 1)));\n // push it to the list\n colorSet.push(colors[index]);\n // and remove it, so that it is not chosen again\n colors.splice(index, 1);\n }\n return colorSet;\n};\n\n/*\n Used in comparing existing values to value provided on update\n It is limited to comparing arrays on purpose\n Name is slightly unusual, in order not to be confused with Lodash method\n */\nconst areEqual = (value, newValue) => {\n // If values are not of the same type\n const type = Object.prototype.toString.call(value);\n if (type !== Object.prototype.toString.call(newValue)) return false;\n if (type !== '[object Array]') return false;\n\n if (value.length !== newValue.length) return false;\n\n for (let i = 0; i < value.length; i++) {\n // if the it's a two dimensional array\n const currentType = Object.prototype.toString.call(value[i]);\n if (currentType !== Object.prototype.toString.call(newValue[i])) return false;\n if (currentType === '[object Array]') {\n // if row lengths are not equal then arrays are not equal\n if (value[i].length !== newValue[i].length) return false;\n // compare each element in the row\n for (let j = 0; j < value[i].length; j++) {\n if (value[i][j] !== newValue[i][j]) {\n return false;\n }\n }\n } else if (value[i] !== newValue[i]) {\n // if it's a one dimensional array element\n return false;\n }\n }\n\n return true;\n};\n\nexport {\n generateLegendBackground, getDefaultColors, areEqual, createSVGElement, setAttrs, removeAttrs, defaultColors\n};\n","import { roundPoint } from './number';\n\nconst createCurves = (x1, y1, x2, y2) => ` C${roundPoint((x2 + x1) / 2)},${y1} `\n + `${roundPoint((x2 + x1) / 2)},${y2} ${x2},${y2}`;\n\nconst createVerticalCurves = (x1, y1, x2, y2) => ` C${x1},${roundPoint((y2 + y1) / 2)} `\n + `${x2},${roundPoint((y2 + y1) / 2)} ${x2},${y2}`;\n\n/*\n A funnel segment is draw in a clockwise direction.\n Path 1-2 is drawn,\n then connected with a straight vertical line 2-3,\n then a line 3-4 is draw (using YNext points going in backwards direction)\n then path is closed (connected with the starting point 1).\n\n 1---------->2\n ^ |\n | v\n 4<----------3\n\n On the graph on line 20 it works like this:\n A#0, A#1, A#2, A#3, B#3, B#2, B#1, B#0, close the path.\n\n Points for path \"B\" are passed as the YNext param.\n */\n\nconst createPath = (index, X, Y, YNext) => {\n let str = `M${X[0]},${Y[0]}`;\n\n for (let i = 0; i < X.length - 1; i++) {\n str += createCurves(X[i], Y[i], X[i + 1], Y[i + 1]);\n }\n\n str += ` L${[...X].pop()},${[...YNext].pop()}`;\n\n for (let i = X.length - 1; i > 0; i--) {\n str += createCurves(X[i], YNext[i], X[i - 1], YNext[i - 1]);\n }\n\n str += ' Z';\n\n return str;\n};\n\n/*\n In a vertical path we go counter-clockwise\n\n 1<----------4\n | ^\n v |\n 2---------->3\n */\n\nconst createVerticalPath = (index, X, XNext, Y) => {\n let str = `M${X[0]},${Y[0]}`;\n\n for (let i = 0; i < X.length - 1; i++) {\n str += createVerticalCurves(X[i], Y[i], X[i + 1], Y[i + 1]);\n }\n\n str += ` L${[...XNext].pop()},${[...Y].pop()}`;\n\n for (let i = X.length - 1; i > 0; i--) {\n str += createVerticalCurves(XNext[i], Y[i], XNext[i - 1], Y[i - 1]);\n }\n\n str += ' Z';\n\n return str;\n};\n\nexport {\n createCurves, createVerticalCurves, createPath, createVerticalPath\n};\n","const generateRandomIdString = prefix => Math.random().toString(36).replace('0.', prefix || '');\n\nexport default generateRandomIdString;\n","/* eslint-disable no-trailing-spaces */\n/* global HTMLElement */\nimport { roundPoint, formatNumber } from './number';\nimport { createPath, createVerticalPath } from './path';\nimport {\n generateLegendBackground, getDefaultColors, createSVGElement, setAttrs, removeAttrs\n} from './graph';\nimport generateRandomIdString from './random';\n\nclass FunnelGraph {\n constructor(options) {\n this.containerSelector = options.container;\n this.gradientDirection = (options.gradientDirection && options.gradientDirection === 'vertical')\n ? 'vertical'\n : 'horizontal';\n this.direction = (options.direction && options.direction === 'vertical') ? 'vertical' : 'horizontal';\n this.labels = FunnelGraph.getLabels(options);\n this.subLabels = FunnelGraph.getSubLabels(options);\n this.values = FunnelGraph.getValues(options);\n this.percentages = this.createPercentages();\n this.colors = options.data.colors || getDefaultColors(this.is2d() ? this.getSubDataSize() : 2);\n this.displayPercent = options.displayPercent || false;\n this.data = options.data;\n this.height = options.height;\n this.width = options.width;\n this.subLabelValue = options.subLabelValue || 'percent';\n }\n\n /**\n An example of a two-dimensional funnel graph\n #0..................\n ...#1................\n ......\n #0********************#1** #2.........................#3 (A)\n *******************\n #2*************************#3 (B)\n #2+++++++++++++++++++++++++#3 (C)\n +++++++++++++++++++\n #0++++++++++++++++++++#1++ #2-------------------------#3 (D)\n ------\n ---#1----------------\n #0-----------------\n Main axis is the primary axis of the graph.\n In a horizontal graph it's the X axis, and Y is the cross axis.\n However we use the names \"main\" and \"cross\" axis,\n because in a vertical graph the primary axis is the Y axis\n and the cross axis is the X axis.\n First step of drawing the funnel graph is getting the coordinates of points,\n that are used when drawing the paths.\n There are 4 paths in the example above: A, B, C and D.\n Such funnel has 3 labels and 3 subLabels.\n This means that the main axis has 4 points (number of labels + 1)\n One the ASCII illustrated graph above, those points are illustrated with a # symbol.\n */\n getMainAxisPoints() {\n const size = this.getDataSize();\n const points = [];\n const fullDimension = this.isVertical() ? this.getHeight() : this.getWidth();\n for (let i = 0; i <= size; i++) {\n points.push(roundPoint(fullDimension * i / size));\n }\n return points;\n }\n\n getCrossAxisPoints() {\n const points = [];\n const fullDimension = this.getFullDimension();\n // get half of the graph container height or width, since funnel shape is symmetric\n // we use this when calculating the \"A\" shape\n const dimension = fullDimension / 2;\n if (this.is2d()) {\n const totalValues = this.getValues2d();\n const max = Math.max(...totalValues);\n\n // duplicate last value\n totalValues.push([...totalValues].pop());\n // get points for path \"A\"\n points.push(totalValues.map(value => roundPoint((max - value) / max * dimension)));\n // percentages with duplicated last value\n const percentagesFull = this.getPercentages2d();\n const pointsOfFirstPath = points[0];\n\n for (let i = 1; i < this.getSubDataSize(); i++) {\n const p = points[i - 1];\n const newPoints = [];\n\n for (let j = 0; j < this.getDataSize(); j++) {\n newPoints.push(roundPoint(\n // eslint-disable-next-line comma-dangle\n p[j] + (fullDimension - pointsOfFirstPath[j] * 2) * (percentagesFull[j][i - 1] / 100)\n ));\n }\n\n // duplicate the last value as points #2 and #3 have the same value on the cross axis\n newPoints.push([...newPoints].pop());\n points.push(newPoints);\n }\n\n // add points for path \"D\", that is simply the \"inverted\" path \"A\"\n points.push(pointsOfFirstPath.map(point => fullDimension - point));\n } else {\n // As you can see on the visualization above points #2 and #3 have the same cross axis coordinate\n // so we duplicate the last value\n const max = Math.max(...this.values);\n const values = [...this.values].concat([...this.values].pop());\n // if the graph is simple (not two-dimensional) then we have only paths \"A\" and \"D\"\n // which are symmetric. So we get the points for \"A\" and then get points for \"D\" by subtracting \"A\"\n // points from graph cross dimension length\n points.push(values.map(value => roundPoint((max - value) / max * dimension)));\n points.push(points[0].map(point => fullDimension - point));\n }\n\n return points;\n }\n\n getGraphType() {\n return this.values && this.values[0] instanceof Array ? '2d' : 'normal';\n }\n\n is2d() {\n return this.getGraphType() === '2d';\n }\n\n isVertical() {\n return this.direction === 'vertical';\n }\n\n getDataSize() {\n return this.values.length;\n }\n\n getSubDataSize() {\n return this.values[0].length;\n }\n\n getFullDimension() {\n return this.isVertical() ? this.getWidth() : this.getHeight();\n }\n\n static getSubLabels(options) {\n if (!options.data) {\n throw new Error('Data is missing');\n }\n\n const { data } = options;\n\n if (typeof data.subLabels === 'undefined') return [];\n\n return data.subLabels;\n }\n\n static getLabels(options) {\n if (!options.data) {\n throw new Error('Data is missing');\n }\n\n const { data } = options;\n\n if (typeof data.labels === 'undefined') return [];\n\n return data.labels;\n }\n\n addLabels() {\n const holder = document.createElement('div');\n holder.setAttribute('class', 'svg-funnel-js__labels');\n\n this.percentages.forEach((percentage, index) => {\n const labelElement = document.createElement('div');\n labelElement.setAttribute('class', `svg-funnel-js__label label-${index + 1}`);\n\n const title = document.createElement('div');\n title.setAttribute('class', 'label__title');\n title.textContent = this.labels[index] || '';\n\n const value = document.createElement('div');\n value.setAttribute('class', 'label__value');\n\n const valueNumber = this.is2d() ? this.getValues2d()[index] : this.values[index];\n value.textContent = formatNumber(valueNumber);\n\n const percentageValue = document.createElement('div');\n percentageValue.setAttribute('class', 'label__percentage');\n percentageValue.textContent = `${percentage.toString()}%`;\n\n labelElement.appendChild(value);\n labelElement.appendChild(title);\n if (this.displayPercent) {\n labelElement.appendChild(percentageValue);\n }\n\n if (this.is2d()) {\n const segmentPercentages = document.createElement('div');\n segmentPercentages.setAttribute('class', 'label__segment-percentages');\n let percentageList = '';\n segmentPercentages.innerHTML = percentageList;\n labelElement.appendChild(segmentPercentages);\n }\n\n holder.appendChild(labelElement);\n });\n\n this.container.appendChild(holder);\n }\n\n addSubLabels() {\n if (this.subLabels) {\n const subLabelsHolder = document.createElement('div');\n subLabelsHolder.setAttribute('class', 'svg-funnel-js__subLabels');\n\n let subLabelsHTML = '';\n\n this.subLabels.forEach((subLabel, index) => {\n subLabelsHTML += `
\n
\n
${subLabel}
\n
`;\n });\n\n subLabelsHolder.innerHTML = subLabelsHTML;\n this.container.appendChild(subLabelsHolder);\n }\n }\n\n createContainer() {\n if (!this.containerSelector) {\n throw new Error('Container is missing');\n }\n\n if (typeof this.containerSelector === 'string') {\n this.container = document.querySelector(this.containerSelector);\n if (!this.container) {\n throw new Error(`Container cannot be found (selector: ${this.containerSelector}).`);\n }\n } else if (this.container instanceof HTMLElement) {\n this.container = this.containerSelector;\n } else {\n throw new Error('Container must either be a selector string or an HTMLElement.');\n }\n\n this.container.classList.add('svg-funnel-js');\n\n this.graphContainer = document.createElement('div');\n this.graphContainer.classList.add('svg-funnel-js__container');\n this.container.appendChild(this.graphContainer);\n\n if (this.direction === 'vertical') {\n this.container.classList.add('svg-funnel-js--vertical');\n }\n }\n\n setValues(v) {\n this.values = v;\n return this;\n }\n\n setDirection(d) {\n this.direction = d;\n return this;\n }\n\n setHeight(h) {\n this.height = h;\n return this;\n }\n\n setWidth(w) {\n this.width = w;\n return this;\n }\n\n static getValues(options) {\n if (!options.data) {\n return [];\n }\n\n const { data } = options;\n\n if (typeof data === 'object') {\n return data.values;\n }\n\n return [];\n }\n\n getValues2d() {\n const values = [];\n\n this.values.forEach((valueSet) => {\n values.push(valueSet.reduce((sum, value) => sum + value, 0));\n });\n\n return values;\n }\n\n getPercentages2d() {\n const percentages = [];\n\n this.values.forEach((valueSet) => {\n const total = valueSet.reduce((sum, value) => sum + value, 0);\n percentages.push(valueSet.map(value => (total === 0 ? 0 : roundPoint(value * 100 / total))));\n });\n\n return percentages;\n }\n\n createPercentages() {\n let values = [];\n\n if (this.is2d()) {\n values = this.getValues2d();\n } else {\n values = [...this.values];\n }\n\n const max = Math.max(...values);\n return values.map(value => (value === 0 ? 0 : roundPoint(value * 100 / max)));\n }\n\n applyGradient(svg, path, colors, index) {\n const defs = (svg.querySelector('defs') === null)\n ? createSVGElement('defs', svg)\n : svg.querySelector('defs');\n\n const gradientName = generateRandomIdString(`funnelGradient-${index}-`);\n\n const gradient = createSVGElement('linearGradient', defs, {\n id: gradientName\n });\n\n if (this.gradientDirection === 'vertical') {\n setAttrs(gradient, {\n x1: '0',\n x2: '0',\n y1: '0',\n y2: '1'\n });\n }\n\n const numberOfColors = colors.length;\n\n for (let i = 0; i < numberOfColors; i++) {\n createSVGElement('stop', gradient, {\n 'stop-color': colors[i],\n offset: `${Math.round(100 * i / (numberOfColors - 1))}%`\n });\n }\n\n setAttrs(path, {\n fill: `url(\"#${gradientName}\")`,\n stroke: `url(\"#${gradientName}\")`\n });\n }\n\n makeSVG() {\n const svg = createSVGElement('svg', this.graphContainer, {\n width: this.getWidth(),\n height: this.getHeight()\n });\n\n const valuesNum = this.getCrossAxisPoints().length - 1;\n for (let i = 0; i < valuesNum; i++) {\n const path = createSVGElement('path', svg);\n\n const color = (this.is2d()) ? this.colors[i] : this.colors;\n const fillMode = (typeof color === 'string' || color.length === 1) ? 'solid' : 'gradient';\n\n if (fillMode === 'solid') {\n setAttrs(path, {\n fill: color,\n stroke: color\n });\n } else if (fillMode === 'gradient') {\n this.applyGradient(svg, path, color, i + 1);\n }\n\n svg.appendChild(path);\n }\n\n this.graphContainer.appendChild(svg);\n }\n\n getSVG() {\n const svg = this.container.querySelector('svg');\n\n if (!svg) {\n throw new Error('No SVG found inside of the container');\n }\n\n return svg;\n }\n\n getWidth() {\n return this.width || this.graphContainer.clientWidth;\n }\n\n getHeight() {\n return this.height || this.graphContainer.clientHeight;\n }\n\n getPathDefinitions() {\n const valuesNum = this.getCrossAxisPoints().length - 1;\n const paths = [];\n for (let i = 0; i < valuesNum; i++) {\n if (this.isVertical()) {\n const X = this.getCrossAxisPoints()[i];\n const XNext = this.getCrossAxisPoints()[i + 1];\n const Y = this.getMainAxisPoints();\n\n const d = createVerticalPath(i, X, XNext, Y);\n paths.push(d);\n } else {\n const X = this.getMainAxisPoints();\n const Y = this.getCrossAxisPoints()[i];\n const YNext = this.getCrossAxisPoints()[i + 1];\n\n const d = createPath(i, X, Y, YNext);\n paths.push(d);\n }\n }\n\n return paths;\n }\n\n getPathMedian(i) {\n if (this.isVertical()) {\n const cross = this.getCrossAxisPoints()[i];\n const next = this.getCrossAxisPoints()[i + 1];\n const Y = this.getMainAxisPoints();\n const X = [];\n const XNext = [];\n\n cross.forEach((point, index) => {\n const m = (point + next[index]) / 2;\n X.push(m - 1);\n XNext.push(m + 1);\n });\n\n return createVerticalPath(i, X, XNext, Y);\n }\n\n const X = this.getMainAxisPoints();\n const cross = this.getCrossAxisPoints()[i];\n const next = this.getCrossAxisPoints()[i + 1];\n const Y = [];\n const YNext = [];\n\n cross.forEach((point, index) => {\n const m = (point + next[index]) / 2;\n Y.push(m - 1);\n YNext.push(m + 1);\n });\n\n return createPath(i, X, Y, YNext);\n }\n\n drawPaths() {\n const svg = this.getSVG();\n const paths = svg.querySelectorAll('path');\n const definitions = this.getPathDefinitions();\n\n definitions.forEach((definition, index) => {\n paths[index].setAttribute('d', definition);\n });\n }\n\n draw() {\n this.createContainer();\n this.makeSVG();\n\n this.addLabels();\n\n if (this.is2d()) {\n this.addSubLabels();\n }\n\n this.drawPaths();\n }\n\n /*\n Methods\n */\n\n makeVertical() {\n if (this.direction === 'vertical') return true;\n\n this.direction = 'vertical';\n this.container.classList.add('svg-funnel-js--vertical');\n\n const svg = this.getSVG();\n const height = this.getHeight();\n const width = this.getWidth();\n setAttrs(svg, { height, width });\n\n this.drawPaths();\n\n return true;\n }\n\n makeHorizontal() {\n if (this.direction === 'horizontal') return true;\n\n this.direction = 'horizontal';\n this.container.classList.remove('svg-funnel-js--vertical');\n\n const svg = this.getSVG();\n const height = this.getHeight();\n const width = this.getWidth();\n setAttrs(svg, { height, width });\n\n this.drawPaths();\n\n return true;\n }\n\n toggleDirection() {\n if (this.direction === 'horizontal') {\n this.makeVertical();\n } else {\n this.makeHorizontal();\n }\n }\n\n gradientMakeVertical() {\n if (this.gradientDirection === 'vertical') return true;\n\n this.gradientDirection = 'vertical';\n const gradients = this.graphContainer.querySelectorAll('linearGradient');\n\n for (let i = 0; i < gradients.length; i++) {\n setAttrs(gradients[i], {\n x1: '0',\n x2: '0',\n y1: '0',\n y2: '1'\n });\n }\n\n return true;\n }\n\n gradientMakeHorizontal() {\n if (this.gradientDirection === 'horizontal') return true;\n\n this.gradientDirection = 'horizontal';\n const gradients = this.graphContainer.querySelectorAll('linearGradient');\n\n for (let i = 0; i < gradients.length; i++) {\n removeAttrs(gradients[i], 'x1', 'x2', 'y1', 'y2');\n }\n\n return true;\n }\n\n gradientToggleDirection() {\n if (this.gradientDirection === 'horizontal') {\n this.gradientMakeVertical();\n } else {\n this.gradientMakeHorizontal();\n }\n }\n\n updateWidth(w) {\n this.width = w;\n const svg = this.getSVG();\n const width = this.getWidth();\n setAttrs(svg, { width });\n\n this.drawPaths();\n\n return true;\n }\n\n updateHeight(h) {\n this.height = h;\n const svg = this.getSVG();\n const height = this.getHeight();\n setAttrs(svg, { height });\n\n this.drawPaths();\n\n return true;\n }\n\n // @TODO: refactor data update\n updateData(d) {\n const labels = this.container.querySelector('.svg-funnel-js__labels');\n const subLabels = this.container.querySelector('.svg-funnel-js__subLabels');\n\n if (labels) labels.remove();\n if (subLabels) subLabels.remove();\n\n this.labels = [];\n this.colors = getDefaultColors(this.is2d() ? this.getSubDataSize() : 2);\n this.values = [];\n this.percentages = [];\n\n if (typeof d.labels !== 'undefined') {\n this.labels = FunnelGraph.getLabels({ data: d });\n }\n if (typeof d.colors !== 'undefined') {\n this.colors = d.colors || getDefaultColors(this.is2d() ? this.getSubDataSize() : 2);\n }\n if (typeof d.values !== 'undefined') {\n if (Object.prototype.toString.call(d.values[0]) !== Object.prototype.toString.call(this.values[0])) {\n this.container.querySelector('svg').remove();\n this.values = FunnelGraph.getValues({ data: d });\n this.makeSVG();\n } else {\n this.values = FunnelGraph.getValues({ data: d });\n }\n this.drawPaths();\n }\n this.percentages = this.createPercentages();\n\n this.addLabels();\n\n if (typeof d.subLabels !== 'undefined') {\n this.subLabels = FunnelGraph.getSubLabels({ data: d });\n this.addSubLabels();\n }\n }\n\n update(o) {\n if (typeof o.displayPercent !== 'undefined') {\n if (this.displayPercent !== o.displayPercent) {\n if (this.displayPercent === true) {\n this.container.querySelectorAll('.label__percentage').forEach((label) => {\n label.remove();\n });\n } else {\n this.container.querySelectorAll('.svg-funnel-js__label').forEach((label, index) => {\n const percentage = this.percentages[index];\n const percentageValue = document.createElement('div');\n percentageValue.setAttribute('class', 'label__percentage');\n\n if (percentage !== 100) {\n percentageValue.textContent = `${percentage.toString()}%`;\n label.appendChild(percentageValue);\n }\n });\n }\n }\n }\n if (typeof o.height !== 'undefined') {\n this.updateHeight(o.height);\n }\n if (typeof o.width !== 'undefined') {\n this.updateWidth(o.width);\n }\n if (typeof o.gradientDirection !== 'undefined') {\n if (o.gradientDirection === 'vertical') {\n this.gradientMakeVertical();\n } else if (o.gradientDirection === 'horizontal') {\n this.gradientMakeHorizontal();\n }\n }\n if (typeof o.direction !== 'undefined') {\n if (o.direction === 'vertical') {\n this.makeVertical();\n } else if (o.direction === 'horizontal') {\n this.makeHorizontal();\n }\n }\n if (typeof o.data !== 'undefined') {\n this.updateData(o.data);\n }\n }\n}\n\nexport default FunnelGraph;\n","/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\n\n\nvar _Group = function () {\n\tthis._tweens = {};\n\tthis._tweensAddedDuringUpdate = {};\n};\n\n_Group.prototype = {\n\tgetAll: function () {\n\n\t\treturn Object.keys(this._tweens).map(function (tweenId) {\n\t\t\treturn this._tweens[tweenId];\n\t\t}.bind(this));\n\n\t},\n\n\tremoveAll: function () {\n\n\t\tthis._tweens = {};\n\n\t},\n\n\tadd: function (tween) {\n\n\t\tthis._tweens[tween.getId()] = tween;\n\t\tthis._tweensAddedDuringUpdate[tween.getId()] = tween;\n\n\t},\n\n\tremove: function (tween) {\n\n\t\tdelete this._tweens[tween.getId()];\n\t\tdelete this._tweensAddedDuringUpdate[tween.getId()];\n\n\t},\n\n\tupdate: function (time, preserve) {\n\n\t\tvar tweenIds = Object.keys(this._tweens);\n\n\t\tif (tweenIds.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttime = time !== undefined ? time : TWEEN.now();\n\n\t\t// Tweens are updated in \"batches\". If you add a new tween during an update, then the\n\t\t// new tween will be updated in the next batch.\n\t\t// If you remove a tween during an update, it may or may not be updated. However,\n\t\t// if the removed tween was added during the current batch, then it will not be updated.\n\t\twhile (tweenIds.length > 0) {\n\t\t\tthis._tweensAddedDuringUpdate = {};\n\n\t\t\tfor (var i = 0; i < tweenIds.length; i++) {\n\n\t\t\t\tvar tween = this._tweens[tweenIds[i]];\n\n\t\t\t\tif (tween && tween.update(time) === false) {\n\t\t\t\t\ttween._isPlaying = false;\n\n\t\t\t\t\tif (!preserve) {\n\t\t\t\t\t\tdelete this._tweens[tweenIds[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttweenIds = Object.keys(this._tweensAddedDuringUpdate);\n\t\t}\n\n\t\treturn true;\n\n\t}\n};\n\nvar TWEEN = new _Group();\n\nTWEEN.Group = _Group;\nTWEEN._nextId = 0;\nTWEEN.nextId = function () {\n\treturn TWEEN._nextId++;\n};\n\n\n// Include a performance.now polyfill.\n// In node.js, use process.hrtime.\nif (typeof (self) === 'undefined' && typeof (process) !== 'undefined' && process.hrtime) {\n\tTWEEN.now = function () {\n\t\tvar time = process.hrtime();\n\n\t\t// Convert [seconds, nanoseconds] to milliseconds.\n\t\treturn time[0] * 1000 + time[1] / 1000000;\n\t};\n}\n// In a browser, use self.performance.now if it is available.\nelse if (typeof (self) !== 'undefined' &&\n self.performance !== undefined &&\n\t\t self.performance.now !== undefined) {\n\t// This must be bound, because directly assigning this function\n\t// leads to an invocation exception in Chrome.\n\tTWEEN.now = self.performance.now.bind(self.performance);\n}\n// Use Date.now if it is available.\nelse if (Date.now !== undefined) {\n\tTWEEN.now = Date.now;\n}\n// Otherwise, use 'new Date().getTime()'.\nelse {\n\tTWEEN.now = function () {\n\t\treturn new Date().getTime();\n\t};\n}\n\n\nTWEEN.Tween = function (object, group) {\n\tthis._object = object;\n\tthis._valuesStart = {};\n\tthis._valuesEnd = {};\n\tthis._valuesStartRepeat = {};\n\tthis._duration = 1000;\n\tthis._repeat = 0;\n\tthis._repeatDelayTime = undefined;\n\tthis._yoyo = false;\n\tthis._isPlaying = false;\n\tthis._reversed = false;\n\tthis._delayTime = 0;\n\tthis._startTime = null;\n\tthis._easingFunction = TWEEN.Easing.Linear.None;\n\tthis._interpolationFunction = TWEEN.Interpolation.Linear;\n\tthis._chainedTweens = [];\n\tthis._onStartCallback = null;\n\tthis._onStartCallbackFired = false;\n\tthis._onUpdateCallback = null;\n\tthis._onRepeatCallback = null;\n\tthis._onCompleteCallback = null;\n\tthis._onStopCallback = null;\n\tthis._group = group || TWEEN;\n\tthis._id = TWEEN.nextId();\n\n};\n\nTWEEN.Tween.prototype = {\n\tgetId: function () {\n\t\treturn this._id;\n\t},\n\n\tisPlaying: function () {\n\t\treturn this._isPlaying;\n\t},\n\n\tto: function (properties, duration) {\n\n\t\tthis._valuesEnd = properties;\n\n\t\tif (duration !== undefined) {\n\t\t\tthis._duration = duration;\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tduration: function duration(d) {\n\t\tthis._duration = d;\n\t\treturn this;\n\t},\n\n\tstart: function (time) {\n\n\t\tthis._group.add(this);\n\n\t\tthis._isPlaying = true;\n\n\t\tthis._onStartCallbackFired = false;\n\n\t\tthis._startTime = time !== undefined ? typeof time === 'string' ? TWEEN.now() + parseFloat(time) : time : TWEEN.now();\n\t\tthis._startTime += this._delayTime;\n\n\t\tfor (var property in this._valuesEnd) {\n\n\t\t\t// Check if an Array was provided as property value\n\t\t\tif (this._valuesEnd[property] instanceof Array) {\n\n\t\t\t\tif (this._valuesEnd[property].length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Create a local copy of the Array with the start value at the front\n\t\t\t\tthis._valuesEnd[property] = [this._object[property]].concat(this._valuesEnd[property]);\n\n\t\t\t}\n\n\t\t\t// If `to()` specifies a property that doesn't exist in the source object,\n\t\t\t// we should not set that property in the object\n\t\t\tif (this._object[property] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Save the starting value.\n\t\t\tthis._valuesStart[property] = this._object[property];\n\n\t\t\tif ((this._valuesStart[property] instanceof Array) === false) {\n\t\t\t\tthis._valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n\t\t\t}\n\n\t\t\tthis._valuesStartRepeat[property] = this._valuesStart[property] || 0;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tstop: function () {\n\n\t\tif (!this._isPlaying) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis._group.remove(this);\n\t\tthis._isPlaying = false;\n\n\t\tif (this._onStopCallback !== null) {\n\t\t\tthis._onStopCallback(this._object);\n\t\t}\n\n\t\tthis.stopChainedTweens();\n\t\treturn this;\n\n\t},\n\n\tend: function () {\n\n\t\tthis.update(Infinity);\n\t\treturn this;\n\n\t},\n\n\tstopChainedTweens: function () {\n\n\t\tfor (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n\t\t\tthis._chainedTweens[i].stop();\n\t\t}\n\n\t},\n\n\tgroup: function (group) {\n\t\tthis._group = group;\n\t\treturn this;\n\t},\n\n\tdelay: function (amount) {\n\n\t\tthis._delayTime = amount;\n\t\treturn this;\n\n\t},\n\n\trepeat: function (times) {\n\n\t\tthis._repeat = times;\n\t\treturn this;\n\n\t},\n\n\trepeatDelay: function (amount) {\n\n\t\tthis._repeatDelayTime = amount;\n\t\treturn this;\n\n\t},\n\n\tyoyo: function (yoyo) {\n\n\t\tthis._yoyo = yoyo;\n\t\treturn this;\n\n\t},\n\n\teasing: function (easingFunction) {\n\n\t\tthis._easingFunction = easingFunction;\n\t\treturn this;\n\n\t},\n\n\tinterpolation: function (interpolationFunction) {\n\n\t\tthis._interpolationFunction = interpolationFunction;\n\t\treturn this;\n\n\t},\n\n\tchain: function () {\n\n\t\tthis._chainedTweens = arguments;\n\t\treturn this;\n\n\t},\n\n\tonStart: function (callback) {\n\n\t\tthis._onStartCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonUpdate: function (callback) {\n\n\t\tthis._onUpdateCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonRepeat: function onRepeat(callback) {\n\n\t\tthis._onRepeatCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonComplete: function (callback) {\n\n\t\tthis._onCompleteCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonStop: function (callback) {\n\n\t\tthis._onStopCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tupdate: function (time) {\n\n\t\tvar property;\n\t\tvar elapsed;\n\t\tvar value;\n\n\t\tif (time < this._startTime) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._onStartCallbackFired === false) {\n\n\t\t\tif (this._onStartCallback !== null) {\n\t\t\t\tthis._onStartCallback(this._object);\n\t\t\t}\n\n\t\t\tthis._onStartCallbackFired = true;\n\t\t}\n\n\t\telapsed = (time - this._startTime) / this._duration;\n\t\telapsed = (this._duration === 0 || elapsed > 1) ? 1 : elapsed;\n\n\t\tvalue = this._easingFunction(elapsed);\n\n\t\tfor (property in this._valuesEnd) {\n\n\t\t\t// Don't update properties that do not exist in the source object\n\t\t\tif (this._valuesStart[property] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar start = this._valuesStart[property] || 0;\n\t\t\tvar end = this._valuesEnd[property];\n\n\t\t\tif (end instanceof Array) {\n\n\t\t\t\tthis._object[property] = this._interpolationFunction(end, value);\n\n\t\t\t} else {\n\n\t\t\t\t// Parses relative end values with start as base (e.g.: +10, -3)\n\t\t\t\tif (typeof (end) === 'string') {\n\n\t\t\t\t\tif (end.charAt(0) === '+' || end.charAt(0) === '-') {\n\t\t\t\t\t\tend = start + parseFloat(end);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tend = parseFloat(end);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Protect against non numeric properties.\n\t\t\t\tif (typeof (end) === 'number') {\n\t\t\t\t\tthis._object[property] = start + (end - start) * value;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif (this._onUpdateCallback !== null) {\n\t\t\tthis._onUpdateCallback(this._object, elapsed);\n\t\t}\n\n\t\tif (elapsed === 1) {\n\n\t\t\tif (this._repeat > 0) {\n\n\t\t\t\tif (isFinite(this._repeat)) {\n\t\t\t\t\tthis._repeat--;\n\t\t\t\t}\n\n\t\t\t\t// Reassign starting values, restart by making startTime = now\n\t\t\t\tfor (property in this._valuesStartRepeat) {\n\n\t\t\t\t\tif (typeof (this._valuesEnd[property]) === 'string') {\n\t\t\t\t\t\tthis._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._yoyo) {\n\t\t\t\t\t\tvar tmp = this._valuesStartRepeat[property];\n\n\t\t\t\t\t\tthis._valuesStartRepeat[property] = this._valuesEnd[property];\n\t\t\t\t\t\tthis._valuesEnd[property] = tmp;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._valuesStart[property] = this._valuesStartRepeat[property];\n\n\t\t\t\t}\n\n\t\t\t\tif (this._yoyo) {\n\t\t\t\t\tthis._reversed = !this._reversed;\n\t\t\t\t}\n\n\t\t\t\tif (this._repeatDelayTime !== undefined) {\n\t\t\t\t\tthis._startTime = time + this._repeatDelayTime;\n\t\t\t\t} else {\n\t\t\t\t\tthis._startTime = time + this._delayTime;\n\t\t\t\t}\n\n\t\t\t\tif (this._onRepeatCallback !== null) {\n\t\t\t\t\tthis._onRepeatCallback(this._object);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\n\t\t\t} else {\n\n\t\t\t\tif (this._onCompleteCallback !== null) {\n\n\t\t\t\t\tthis._onCompleteCallback(this._object);\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n\t\t\t\t\t// Make the chained tweens start exactly at the time they should,\n\t\t\t\t\t// even if the `update()` method was called way past the duration of the tween\n\t\t\t\t\tthis._chainedTweens[i].start(this._startTime + this._duration);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n};\n\n\nTWEEN.Easing = {\n\n\tLinear: {\n\n\t\tNone: function (k) {\n\n\t\t\treturn k;\n\n\t\t}\n\n\t},\n\n\tQuadratic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn k * (2 - k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k;\n\t\t\t}\n\n\t\t\treturn - 0.5 * (--k * (k - 2) - 1);\n\n\t\t}\n\n\t},\n\n\tCubic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn --k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k;\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * k + 2);\n\n\t\t}\n\n\t},\n\n\tQuartic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn 1 - (--k * k * k * k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k * k;\n\t\t\t}\n\n\t\t\treturn - 0.5 * ((k -= 2) * k * k * k - 2);\n\n\t\t}\n\n\t},\n\n\tQuintic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn --k * k * k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k * k * k;\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * k * k * k + 2);\n\n\t\t}\n\n\t},\n\n\tSinusoidal: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - Math.cos(k * Math.PI / 2);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn Math.sin(k * Math.PI / 2);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\treturn 0.5 * (1 - Math.cos(Math.PI * k));\n\n\t\t}\n\n\t},\n\n\tExponential: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k === 0 ? 0 : Math.pow(1024, k - 1);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn k === 1 ? 1 : 1 - Math.pow(2, - 10 * k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * Math.pow(1024, k - 1);\n\t\t\t}\n\n\t\t\treturn 0.5 * (- Math.pow(2, - 10 * (k - 1)) + 2);\n\n\t\t}\n\n\t},\n\n\tCircular: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - Math.sqrt(1 - k * k);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn Math.sqrt(1 - (--k * k));\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn - 0.5 * (Math.sqrt(1 - k * k) - 1);\n\t\t\t}\n\n\t\t\treturn 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n\n\t\t}\n\n\t},\n\n\tElastic: {\n\n\t\tIn: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn Math.pow(2, -10 * k) * Math.sin((k - 0.1) * 5 * Math.PI) + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tk *= 2;\n\n\t\t\tif (k < 1) {\n\t\t\t\treturn -0.5 * Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n\t\t\t}\n\n\t\t\treturn 0.5 * Math.pow(2, -10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI) + 1;\n\n\t\t}\n\n\t},\n\n\tBack: {\n\n\t\tIn: function (k) {\n\n\t\t\tvar s = 1.70158;\n\n\t\t\treturn k * k * ((s + 1) * k - s);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tvar s = 1.70158;\n\n\t\t\treturn --k * k * ((s + 1) * k + s) + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tvar s = 1.70158 * 1.525;\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * (k * k * ((s + 1) * k - s));\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n\n\t\t}\n\n\t},\n\n\tBounce: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - TWEEN.Easing.Bounce.Out(1 - k);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tif (k < (1 / 2.75)) {\n\t\t\t\treturn 7.5625 * k * k;\n\t\t\t} else if (k < (2 / 2.75)) {\n\t\t\t\treturn 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n\t\t\t} else if (k < (2.5 / 2.75)) {\n\t\t\t\treturn 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n\t\t\t} else {\n\t\t\t\treturn 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n\t\t\t}\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k < 0.5) {\n\t\t\t\treturn TWEEN.Easing.Bounce.In(k * 2) * 0.5;\n\t\t\t}\n\n\t\t\treturn TWEEN.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5;\n\n\t\t}\n\n\t}\n\n};\n\nTWEEN.Interpolation = {\n\n\tLinear: function (v, k) {\n\n\t\tvar m = v.length - 1;\n\t\tvar f = m * k;\n\t\tvar i = Math.floor(f);\n\t\tvar fn = TWEEN.Interpolation.Utils.Linear;\n\n\t\tif (k < 0) {\n\t\t\treturn fn(v[0], v[1], f);\n\t\t}\n\n\t\tif (k > 1) {\n\t\t\treturn fn(v[m], v[m - 1], m - f);\n\t\t}\n\n\t\treturn fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n\n\t},\n\n\tBezier: function (v, k) {\n\n\t\tvar b = 0;\n\t\tvar n = v.length - 1;\n\t\tvar pw = Math.pow;\n\t\tvar bn = TWEEN.Interpolation.Utils.Bernstein;\n\n\t\tfor (var i = 0; i <= n; i++) {\n\t\t\tb += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n\t\t}\n\n\t\treturn b;\n\n\t},\n\n\tCatmullRom: function (v, k) {\n\n\t\tvar m = v.length - 1;\n\t\tvar f = m * k;\n\t\tvar i = Math.floor(f);\n\t\tvar fn = TWEEN.Interpolation.Utils.CatmullRom;\n\n\t\tif (v[0] === v[m]) {\n\n\t\t\tif (k < 0) {\n\t\t\t\ti = Math.floor(f = m * (1 + k));\n\t\t\t}\n\n\t\t\treturn fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n\n\t\t} else {\n\n\t\t\tif (k < 0) {\n\t\t\t\treturn v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n\t\t\t}\n\n\t\t\tif (k > 1) {\n\t\t\t\treturn v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n\t\t\t}\n\n\t\t\treturn fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n\n\t\t}\n\n\t},\n\n\tUtils: {\n\n\t\tLinear: function (p0, p1, t) {\n\n\t\t\treturn (p1 - p0) * t + p0;\n\n\t\t},\n\n\t\tBernstein: function (n, i) {\n\n\t\t\tvar fc = TWEEN.Interpolation.Utils.Factorial;\n\n\t\t\treturn fc(n) / fc(i) / fc(n - i);\n\n\t\t},\n\n\t\tFactorial: (function () {\n\n\t\t\tvar a = [1];\n\n\t\t\treturn function (n) {\n\n\t\t\t\tvar s = 1;\n\n\t\t\t\tif (a[n]) {\n\t\t\t\t\treturn a[n];\n\t\t\t\t}\n\n\t\t\t\tfor (var i = n; i > 1; i--) {\n\t\t\t\t\ts *= i;\n\t\t\t\t}\n\n\t\t\t\ta[n] = s;\n\t\t\t\treturn s;\n\n\t\t\t};\n\n\t\t})(),\n\n\t\tCatmullRom: function (p0, p1, p2, p3, t) {\n\n\t\t\tvar v0 = (p2 - p0) * 0.5;\n\t\t\tvar v1 = (p3 - p1) * 0.5;\n\t\t\tvar t2 = t * t;\n\t\t\tvar t3 = t * t2;\n\n\t\t\treturn (2 * p1 - 2 * p2 + v0 + v1) * t3 + (- 3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n\n\t\t}\n\n\t}\n\n};\n\n// UMD (Universal Module Definition)\n(function (root) {\n\n\tif (typeof define === 'function' && define.amd) {\n\n\t\t// AMD\n\t\tdefine([], function () {\n\t\t\treturn TWEEN;\n\t\t});\n\n\t} else if (typeof module !== 'undefined' && typeof exports === 'object') {\n\n\t\t// Node.js\n\t\tmodule.exports = TWEEN;\n\n\t} else if (root !== undefined) {\n\n\t\t// Global variable\n\t\troot.TWEEN = TWEEN;\n\n\t}\n\n})(this);\n","export const _ = undefined;\nexport const V = 'V', H = 'H', L = 'L', Z = 'Z', M = 'M', C = 'C', S = 'S', Q = 'Q', T = 'T', A = 'A';\nexport const EMPTY = ' ';\nexport const FILL = 'fill';\nexport const NONE = 'none';\n","export function isString(obj) {\n return typeof obj === 'string';\n}\n","import { M, C, EMPTY } from '../constants';\nimport { isString } from '../utilities/inspect';\nexport function renderPath(ns, formatter) {\n if (isString(ns)) {\n return ns;\n }\n let result = [];\n for (let i = 0; i < ns.length; i++) {\n const n = ns[i];\n result.push(M, formatter(n[0]), formatter(n[1]), C);\n let lastResult;\n for (let f = 2; f < n.length; f += 6) {\n const p0 = formatter(n[f]);\n const p1 = formatter(n[f + 1]);\n const p2 = formatter(n[f + 2]);\n const p3 = formatter(n[f + 3]);\n const dx = formatter(n[f + 4]);\n const dy = formatter(n[f + 5]);\n const isPoint = p0 == dx && p2 == dx && p1 == dy && p3 == dy;\n if (!isPoint || lastResult != (lastResult = ('' + p0 + p1 + p2 + p3 + dx + dy))) {\n result.push(p0, p1, p2, p3, dx, dy);\n }\n }\n }\n return result.join(EMPTY);\n}\n","const math = Math;\nexport const abs = math.abs;\nexport const min = math.min;\nexport const max = math.max;\nexport const floor = math.floor;\nexport const round = math.round;\nexport const sqrt = math.sqrt;\nexport const pow = math.pow;\nexport const cos = math.cos;\nexport const asin = math.asin;\nexport const sin = math.sin;\nexport const tan = math.tan;\nexport const PI = math.PI;\nexport const quadraticRatio = 2.0 / 3;\nexport const EPSILON = pow(2, -52);\n","import { EMPTY } from '../constants';\nexport function raiseError() {\n throw new Error(Array.prototype.join.call(arguments, EMPTY));\n}\n","export function fillObject(dest, src) {\n for (let key in src) {\n if (!dest.hasOwnProperty(key)) {\n dest[key] = src[key];\n }\n }\n return dest;\n}\n","var userAgent = typeof window !== 'undefined' && window.navigator.userAgent;\nexport const isEdge = /(MSIE |Trident\\/|Edge\\/)/i.test(userAgent);\n","import { isEdge } from './browser';\nconst arrayConstructor = isEdge ? Array : Float32Array;\nexport function createNumberArray(n) {\n return new arrayConstructor(n);\n}\n","import { fillObject } from '../utilities/objects';\nimport { createNumberArray } from '../utilities/createNumberArray';\nexport function fillSegments(larger, smaller, origin) {\n const largeLen = larger.length;\n const smallLen = smaller.length;\n if (largeLen < smallLen) {\n return fillSegments(smaller, larger, origin);\n }\n smaller.length = largeLen;\n for (let i = smallLen; i < largeLen; i++) {\n const l = larger[i];\n const d = createNumberArray(l.d.length);\n for (let k = 0; k < l.d.length; k += 2) {\n d[k] = origin.absolute ? origin.x : l.x + (l.w * origin.x);\n d[k + 1] = origin.absolute ? origin.y : l.y + (l.y * origin.y);\n }\n smaller[i] = fillObject({ d }, l);\n }\n}\n","import { createNumberArray } from '../utilities/createNumberArray';\nexport function rotatePoints(ns, count) {\n const len = ns.length;\n const rightLen = len - count;\n const buffer = createNumberArray(count);\n let i;\n for (i = 0; i < count; i++) {\n buffer[i] = ns[i];\n }\n for (i = count; i < len; i++) {\n ns[i - count] = ns[i];\n }\n for (i = 0; i < count; i++) {\n ns[rightLen + i] = buffer[i];\n }\n}\n","import { sqrt } from './math';\nexport function distance(x1, y1, x2, y2) {\n return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n}\n","import { rotatePoints } from './rotatePoints';\nimport { _ } from '../constants';\nimport { distance } from '../utilities/distance';\nexport function normalizePoints(x, y, ns) {\n let len = ns.length;\n if (ns[len - 2] !== ns[0] || ns[len - 1] !== ns[1]) {\n return;\n }\n const buffer = ns.slice(2);\n len = buffer.length;\n let index, minAmount;\n for (let i = 0; i < len; i += 6) {\n const next = distance(x, y, buffer[i], buffer[i + 1]);\n if (minAmount === _ || next < minAmount) {\n minAmount = next;\n index = i;\n }\n }\n rotatePoints(buffer, index);\n ns[0] = buffer[len - 2];\n ns[1] = buffer[len - 1];\n for (let i = 0; i < buffer.length; i++) {\n ns[i + 2] = buffer[i];\n }\n}\n","import { max } from '../utilities/math';\nimport { createNumberArray } from '../utilities/createNumberArray';\nexport function fillPoints(matrix, addPoints) {\n const ilen = matrix[0].length;\n for (let i = 0; i < ilen; i++) {\n const left = matrix[0][i];\n const right = matrix[1][i];\n const totalLength = max(left.length + addPoints, right.length + addPoints);\n matrix[0][i] = fillSubpath(left, totalLength);\n matrix[1][i] = fillSubpath(right, totalLength);\n }\n}\nexport function fillSubpath(ns, totalLength) {\n let totalNeeded = totalLength - ns.length;\n const ratio = Math.ceil(totalNeeded / ns.length);\n const result = createNumberArray(totalLength);\n result[0] = ns[0];\n result[1] = ns[1];\n let k = 1, j = 1;\n while (j < totalLength - 1) {\n result[++j] = ns[++k];\n result[++j] = ns[++k];\n result[++j] = ns[++k];\n result[++j] = ns[++k];\n const dx = result[++j] = ns[++k];\n const dy = result[++j] = ns[++k];\n if (totalNeeded) {\n for (let f = 0; f < ratio && totalNeeded; f++) {\n result[j + 5] = result[j + 3] = result[j + 1] = dx;\n result[j + 6] = result[j + 4] = result[j + 2] = dy;\n j += 6;\n totalNeeded -= 6;\n }\n }\n }\n return result;\n}\n","import { fillSegments } from './fillSegments';\nimport { normalizePoints } from './normalizePoints';\nimport { fillPoints } from './fillPoints';\nimport { FILL, NONE } from '../constants';\nimport { raiseError } from '../utilities/errors';\nfunction sizeDesc(a, b) {\n return b.p - a.p;\n}\nexport function normalizePaths(left, right, options) {\n const leftPath = getSortedSegments(left);\n const rightPath = getSortedSegments(right);\n const origin = options.origin;\n const ox = origin.x;\n const oy = origin.y;\n const absolute = origin.absolute;\n if (leftPath.length !== rightPath.length) {\n if (options.optimize === FILL) {\n fillSegments(leftPath, rightPath, options.origin);\n }\n else {\n raiseError('optimize:none requires equal lengths');\n }\n }\n const matrix = Array(2);\n matrix[0] = leftPath.map(toPoints);\n matrix[1] = rightPath.map(toPoints);\n if (options.optimize !== NONE) {\n for (let i = 0; i < leftPath.length; i++) {\n const ls = leftPath[i];\n const rs = rightPath[i];\n normalizePoints(absolute ? ox : ls.x + ls.w * ox, absolute ? oy : ls.y + ls.h * oy, matrix[0][i]);\n normalizePoints(absolute ? ox : rs.x + rs.w * ox, absolute ? oy : rs.y + rs.h * oy, matrix[1][i]);\n }\n }\n if (options.optimize === FILL) {\n fillPoints(matrix, options.addPoints * 6);\n }\n return matrix;\n}\nfunction getSortedSegments(path) {\n return path.data.slice().sort(sizeDesc);\n}\nfunction toPoints(p) {\n return p.d;\n}\n","import { renderPath } from './renderPath';\nimport { EPSILON, abs, floor, min, round } from '../utilities/math';\nimport { raiseError } from '../utilities/errors';\nimport { normalizePaths } from './normalizePaths';\nimport { fillObject } from '../utilities/objects';\nimport { createNumberArray } from '../utilities/createNumberArray';\nimport { FILL } from '../constants';\nconst defaultOptions = {\n addPoints: 0,\n optimize: FILL,\n origin: { x: 0, y: 0 },\n precision: 0\n};\nexport function interpolatePath(paths, options) {\n options = fillObject(options, defaultOptions);\n if (!paths || paths.length < 2) {\n raiseError('invalid arguments');\n }\n const hlen = paths.length - 1;\n const items = Array(hlen);\n for (let h = 0; h < hlen; h++) {\n items[h] = getPathInterpolator(paths[h], paths[h + 1], options);\n }\n const formatter = !options.precision ? round : (n) => n.toFixed(options.precision);\n return (offset) => {\n const d = hlen * offset;\n const flr = min(floor(d), hlen - 1);\n return renderPath(items[flr]((d - flr) / (flr + 1)), formatter);\n };\n}\nfunction getPathInterpolator(left, right, options) {\n const matrix = normalizePaths(left, right, options);\n const n = matrix[0].length;\n return (offset) => {\n if (abs(offset - 0) < EPSILON) {\n return left.path;\n }\n if (abs(offset - 1) < EPSILON) {\n return right.path;\n }\n const results = Array(n);\n for (let h = 0; h < n; h++) {\n results[h] = mixPoints(matrix[0][h], matrix[1][h], offset);\n }\n return results;\n };\n}\nexport function mixPoints(a, b, o) {\n const alen = a.length;\n const results = createNumberArray(alen);\n for (let i = 0; i < alen; i++) {\n results[i] = a[i] + (b[i] - a[i]) * o;\n }\n return results;\n}\n","import { _ } from '../constants';\nexport function coalesce(current, fallback) {\n return current === _ ? fallback : current;\n}\n","import { PI, abs, cos, sin, tan, sqrt, asin } from '../utilities/math';\nconst _120 = PI * 120 / 180;\nconst PI2 = PI * 2;\nexport function arcToCurve(x1, y1, rx, ry, angle, large, sweep, dx, dy, f1, f2, cx, cy) {\n if (rx <= 0 || ry <= 0) {\n return [x1, y1, dx, dy, dx, dy];\n }\n const rad = PI / 180 * (+angle || 0);\n const cosrad = cos(rad);\n const sinrad = sin(rad);\n const recursive = !!f1;\n if (!recursive) {\n const x1old = x1;\n const dxold = dx;\n x1 = x1old * cosrad - y1 * -sinrad;\n y1 = x1old * -sinrad + y1 * cosrad;\n dx = dxold * cosrad - dy * -sinrad;\n dy = dxold * -sinrad + dy * cosrad;\n const x = (x1 - dx) / 2;\n const y = (y1 - dy) / 2;\n let h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n const k = (large === sweep ? -1 : 1) *\n sqrt(abs((rx * rx * ry * ry - rx * rx * y * y - ry * ry * x * x) / (rx * rx * y * y + ry * ry * x * x)));\n cx = k * rx * y / ry + (x1 + dx) / 2;\n cy = k * -ry * x / rx + (y1 + dy) / 2;\n f1 = asin((y1 - cy) / ry);\n f2 = asin((dy - cy) / ry);\n if (x1 < cx) {\n f1 = PI - f1;\n }\n if (dx < cx) {\n f2 = PI - f2;\n }\n if (f1 < 0) {\n f1 += PI2;\n }\n if (f2 < 0) {\n f2 += PI2;\n }\n if (sweep && f1 > f2) {\n f1 -= PI2;\n }\n if (!sweep && f2 > f1) {\n f2 -= PI2;\n }\n }\n let res;\n if (abs(f2 - f1) > _120) {\n const f2old = f2;\n const x2old = dx;\n const y2old = dy;\n f2 = f1 + _120 * (sweep && f2 > f1 ? 1 : -1);\n dx = cx + rx * cos(f2);\n dy = cy + ry * sin(f2);\n res = arcToCurve(dx, dy, rx, ry, angle, 0, sweep, x2old, y2old, f2, f2old, cx, cy);\n }\n else {\n res = [];\n }\n const t = 4 / 3 * tan((f2 - f1) / 4);\n res.splice(0, 0, 2 * x1 - (x1 + t * rx * sin(f1)), 2 * y1 - (y1 - t * ry * cos(f1)), dx + t * rx * sin(f2), dy - t * ry * cos(f2), dx, dy);\n if (!recursive) {\n for (let i = 0, ilen = res.length; i < ilen; i += 2) {\n const xt = res[i], yt = res[i + 1];\n res[i] = xt * cosrad - yt * sinrad;\n res[i + 1] = xt * sinrad + yt * cosrad;\n }\n }\n return res;\n}\n","import { _, Z, T, Q, S, C, V, H, EMPTY, A, M, L } from '../constants';\nimport { coalesce } from '../utilities/coalesce';\nimport { raiseError } from '../utilities/errors';\nimport { quadraticRatio } from '../utilities/math';\nimport { arcToCurve } from './arcToCurve';\nconst argLengths = { M: 2, H: 1, V: 1, L: 2, Z: 0, C: 6, S: 4, Q: 4, T: 2, A: 7 };\nfunction addCurve(ctx, x1, y1, x2, y2, dx, dy) {\n const x = ctx.x;\n const y = ctx.y;\n ctx.x = coalesce(dx, x);\n ctx.y = coalesce(dy, y);\n ctx.p.push(coalesce(x1, x), (y1 = coalesce(y1, y)), (x2 = coalesce(x2, x)), (y2 = coalesce(y2, y)), ctx.x, ctx.y);\n ctx.lc = ctx.c;\n}\nfunction convertToAbsolute(ctx) {\n const c = ctx.c;\n const t = ctx.t;\n const x = ctx.x;\n const y = ctx.y;\n if (c === V) {\n t[0] += y;\n }\n else if (c === H) {\n t[0] += x;\n }\n else if (c === A) {\n t[5] += x;\n t[6] += y;\n }\n else {\n for (let j = 0; j < t.length; j += 2) {\n t[j] += x;\n t[j + 1] += y;\n }\n }\n}\nfunction parseSegments(d) {\n return d\n .replace(/[\\^\\s]*([mhvlzcsqta]|\\-?\\d*\\.?\\d+)[,\\$\\s]*/gi, ' $1')\n .replace(/([mhvlzcsqta])/gi, ' $1')\n .trim()\n .split(' ')\n .map(parseSegment);\n}\nfunction parseSegment(s2) {\n return s2.split(EMPTY).map(parseCommand);\n}\nfunction parseCommand(str, i) {\n return i === 0 ? str : +str;\n}\nexport function parsePoints(d) {\n const ctx = {\n x: 0,\n y: 0,\n s: []\n };\n const segments = parseSegments(d);\n for (let i = 0; i < segments.length; i++) {\n const terms = segments[i];\n const commandLetter = terms[0];\n const command = commandLetter.toUpperCase();\n const isRelative = command !== Z && command !== commandLetter;\n ctx.c = command;\n const maxLength = argLengths[command];\n const t2 = terms;\n let k = 1;\n do {\n ctx.t = t2.length === 1 ? t2 : t2.slice(k, k + maxLength);\n if (isRelative) {\n convertToAbsolute(ctx);\n }\n const n = ctx.t;\n const x = ctx.x;\n const y = ctx.y;\n let x1, y1, dx, dy, x2, y2;\n if (command === M) {\n ctx.s.push((ctx.p = [(ctx.x = n[0]), (ctx.y = n[1])]));\n }\n else if (command === H) {\n addCurve(ctx, _, _, _, _, n[0], _);\n }\n else if (command === V) {\n addCurve(ctx, _, _, _, _, _, n[0]);\n }\n else if (command === L) {\n addCurve(ctx, _, _, _, _, n[0], n[1]);\n }\n else if (command === Z) {\n addCurve(ctx, _, _, _, _, ctx.p[0], ctx.p[1]);\n }\n else if (command === C) {\n addCurve(ctx, n[0], n[1], n[2], n[3], n[4], n[5]);\n ctx.cx = n[2];\n ctx.cy = n[3];\n }\n else if (command === S) {\n const isInitialCurve = ctx.lc !== S && ctx.lc !== C;\n x1 = isInitialCurve ? _ : x * 2 - ctx.cx;\n y1 = isInitialCurve ? _ : y * 2 - ctx.cy;\n addCurve(ctx, x1, y1, n[0], n[1], n[2], n[3]);\n ctx.cx = n[0];\n ctx.cy = n[1];\n }\n else if (command === Q) {\n const cx1 = n[0];\n const cy1 = n[1];\n dx = n[2];\n dy = n[3];\n addCurve(ctx, x + (cx1 - x) * quadraticRatio, y + (cy1 - y) * quadraticRatio, dx + (cx1 - dx) * quadraticRatio, dy + (cy1 - dy) * quadraticRatio, dx, dy);\n ctx.cx = cx1;\n ctx.cy = cy1;\n }\n else if (command === T) {\n dx = n[0];\n dy = n[1];\n if (ctx.lc === Q || ctx.lc === T) {\n x1 = x + (x * 2 - ctx.cx - x) * quadraticRatio;\n y1 = y + (y * 2 - ctx.cy - y) * quadraticRatio;\n x2 = dx + (x * 2 - ctx.cx - dx) * quadraticRatio;\n y2 = dy + (y * 2 - ctx.cy - dy) * quadraticRatio;\n }\n else {\n x1 = x2 = x;\n y1 = y2 = y;\n }\n addCurve(ctx, x1, y1, x2, y2, dx, dy);\n ctx.cx = x2;\n ctx.cy = y2;\n }\n else if (command === A) {\n const beziers = arcToCurve(x, y, n[0], n[1], n[2], n[3], n[4], n[5], n[6]);\n for (let j = 0; j < beziers.length; j += 6) {\n addCurve(ctx, beziers[j], beziers[j + 1], beziers[j + 2], beziers[j + 3], beziers[j + 4], beziers[j + 5]);\n }\n }\n else {\n raiseError(ctx.c, ' is not supported');\n }\n k += maxLength;\n } while (k < t2.length);\n }\n return ctx.s;\n}\n","import { floor } from '../utilities/math';\nimport { distance } from '../utilities/distance';\nexport function perimeterPoints(pts) {\n const n = pts.length;\n let x2 = pts[n - 2];\n let y2 = pts[n - 1];\n let p = 0;\n for (let i = 0; i < n; i += 6) {\n p += distance(pts[i], pts[i + 1], x2, y2);\n x2 = pts[i];\n y2 = pts[i + 1];\n }\n return floor(p);\n}\n","import { parsePoints } from './parsePoints';\nimport { min, max } from '../utilities/math';\nimport { perimeterPoints } from './perimeterPoints';\nfunction createPathSegmentArray(points) {\n let xmin = points[0];\n let ymin = points[1];\n let ymax = ymin;\n let xmax = xmin;\n for (let i = 2; i < points.length; i += 6) {\n let x = points[i + 4];\n let y = points[i + 5];\n xmin = min(xmin, x);\n xmax = max(xmax, x);\n ymin = min(ymin, y);\n ymax = max(ymax, y);\n }\n return {\n d: points,\n x: xmin,\n y: ymin,\n w: xmax - xmin,\n h: ymax - ymin,\n p: perimeterPoints(points)\n };\n}\nexport function parsePath(d) {\n return {\n path: d,\n data: parsePoints(d).map(createPathSegmentArray)\n };\n}\n","import { isString } from './utilities/inspect';\nconst selectorRegex = /^([#|\\.]|path)/i;\nexport function getPath(selector) {\n if (isString(selector)) {\n if (!selectorRegex.test(selector)) {\n return selector;\n }\n selector = document.querySelector(selector);\n }\n return selector.getAttribute('d');\n}\n","import { parsePath } from './operators/parsePath';\nimport { getPath } from './getPath';\nexport function parse(d) {\n return parsePath(getPath(d));\n}\n","import { interpolatePath } from './operators/interpolatePath';\nimport { parse } from './parse';\nexport function interpolate(paths, options) {\n return interpolatePath(paths.map(parse), options || {});\n}\n","const roundPoint = number => Math.round(number * 10) / 10;\nconst formatNumber = number => Number(number).toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n\nexport { roundPoint, formatNumber };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-autocomplete',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"prepend-inner-icon\":\"mdi-filter-menu-outline\",\"items\":_vm.items,\"label\":_vm.label,\"multiple\":\"\",\"deletable-chips\":\"\",\"clearable\":\"\",\"item-text\":_vm.itemText,\"item-value\":_vm.itemValue},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item, index }){return [(index < _vm.limit)?_c('v-chip',{attrs:{\"small\":\"\"}},[_c('span',{staticClass:\"text-truncate\"},[_vm._v(_vm._s(_vm.formatText(item)))])]):_vm._e(),_c('HelperMessage',{scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_c('span',{staticClass:\"text-caption\"},[_vm._v(_vm._s(_vm.message))])]},proxy:true}],null,true)},[(index === _vm.limit)?_c('span',{staticClass:\"grey--text text-caption\"},[_vm._v(\" (+\"+_vm._s(_vm.value.length - _vm.limit)+\" más) \")]):_vm._e()])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./FilterAutocomplete.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!./FilterAutocomplete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterAutocomplete.vue?vue&type=template&id=56dd51bc&\"\nimport script from \"./FilterAutocomplete.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterAutocomplete.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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlatformCampaignReportV2.vue?vue&type=style&index=0&id=1e364fa0&prod&lang=css&\"","module.exports = require('./src/js/main').default;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"650\"},on:{\"click:outside\":function($event){return _vm.setDialog()},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.setDialog()}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-toolbar',{staticClass:\"white--text\",attrs:{\"dark\":\"\",\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',{staticClass:\"font-weight-regular my-4\"},[_vm._v(\"Leads seleccionados\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.setDialog()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.loading)?_c('div',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"size\":50,\"color\":\"primary\",\"indeterminate\":\"\"}})],1):(!_vm.leads.length)?_c('div',[_c('div',{staticClass:\"text-center\"},[_c('p',{staticClass:\"text-h4 text--primary\"},[_vm._v(\" UPS!!! \")]),_c('p',{staticClass:\"gray-text\"},[_vm._v(\" Hubo un error al buscar los leads, Intentelo de nuevo mas tarde \")])]),_c('v-img',{staticClass:\"mx-auto\",attrs:{\"lazy-src\":\"https://res.cloudinary.com/capital28-investments/image/upload/v1640032741/Capital%2028/Common/no_result_lead.png\",\"max-height\":\"210\",\"max-width\":\"260\",\"src\":\"https://res.cloudinary.com/capital28-investments/image/upload/v1640032741/Capital%2028/Common/no_result_lead.png\"}})],1):_c('v-card-text',[_c('v-list',{attrs:{\"subheader\":\"\"}},_vm._l((_vm.leads),function(item){return _c('v-list-item',{key:item._id,staticClass:\"itemStyle\",on:{\"click\":function($event){return _vm.setActualLead(item._id)}}},[_c('v-list-item-avatar',{attrs:{\"size\":\"25\"}},[_c('v-img',{attrs:{\"src\":item.source}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.contact_lead_name))]),(item.budget > 0)?_c('v-list-item-subtitle',[_vm._v(\"Presupuesto: \"),_c('span',{staticClass:\"green--text text--darken-4\"},[_vm._v(\" \"+_vm._s(_vm.budgetFormat(item))+\" \")])]):_vm._e(),_c('v-list-item-subtitle',[_vm._v(\" Creado: \"+_vm._s(_vm.formatDate(item.created_at))+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" Actualizado: \"+_vm._s(_vm.formatDate(item.updated_at))+\" \")]),(item.discard_observations)?_c('span',{staticClass:\"pt-1 font-weight-medium\"},[_vm._v(\" Motivo de descarte: \"+_vm._s(item.discard_observations)+\" \")]):_vm._e()],1),_c('v-list-item-icon',{staticClass:\"mx-2\",attrs:{\"justify\":\"space-between\"}},[_c('lead-postpone-action',{attrs:{\"postponed\":item.postponed?.date_at,\"leadId\":item._id,\"lead\":item}})],1)],1)}),1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.setDialog()}}},[_vm._v(\" Cerrar \")])],1)],1)],1),_c('lead-detail-modal',{ref:\"leadDetailModal\",attrs:{\"page\":\"table\",\"dialog\":_vm.showDetail},on:{\"setDialog\":value => {\n _vm.showDetail = value;\n }}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ListLeadsByReportDetail.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!./ListLeadsByReportDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListLeadsByReportDetail.vue?vue&type=template&id=31ae431e&scoped=true&\"\nimport script from \"./ListLeadsByReportDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./ListLeadsByReportDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ListLeadsByReportDetail.vue?vue&type=style&index=0&id=31ae431e&prod&scoped=true&lang=css&\"\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 \"31ae431e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListLeadsByReportDetail.vue?vue&type=style&index=0&id=31ae431e&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{attrs:{\"fluid\":\"\",\"pa-8\":\"\"}},[_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"1fr 0.5fr\",\"gap\":\"1rem\"}},[_c('dateRange',{ref:\"dateRange\",attrs:{\"default\":\"Últimos 30 días\",\"dense\":\"\"},model:{value:(_vm.filter.date),callback:function ($$v) {_vm.$set(_vm.filter, \"date\", $$v)},expression:\"filter.date\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"gap\":\"0.5rem\"}},[_c('v-btn',{attrs:{\"color\":\"grey lighten-2 grey--text text--darken-4\"},on:{\"click\":function($event){return _vm.cleanFilters()}}},[_vm._v(\" Limpiar Filtros \")]),_c('v-btn',{attrs:{\"color\":\"primary white--text\"},on:{\"click\":function($event){return _vm.fetchDataByReport()}}},[_vm._v(\" Filtrar \")]),_c('HelperMessage',{scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_c('span',{staticClass:\"text-caption\"},[_vm._v(\" Mostrar \"+_vm._s(_vm.showTable ? \"Gráfica\" : \"Tabla\")+\" \")])]},proxy:true}])},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"color\":\"#393862\"},on:{\"click\":function($event){_vm.showTable = !_vm.showTable}}},[_c('v-icon',{attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.showTable ? \"mdi-chart-areaspline\" : \"mdi-table\")+\" \")])],1)],1),(_vm.showTable)?_c('HelperMessage',{scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Exportar a PDF\")])]},proxy:true}],null,false,2944798673)},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"color\":\"#393862\"},on:{\"click\":function($event){return _vm.makePdf()}}},[_c('v-icon',{attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\" mdi-file-export-outline \")])],1)],1):_c('HelperMessage',{scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Rotar gráfica\")])]},proxy:true}])},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"color\":\"#393862\"},on:{\"click\":function($event){return _vm.rotateGraphic()}}},[_c('v-icon',{class:_vm.rotate ? 'flip-icon' : 'normal--icon',attrs:{\"dark\":\"\",\"large\":\"\"}},[_vm._v(\" mdi-rotate-right-variant \")])],1)],1)],1)],1),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"1fr 1fr 1fr\",\"gap\":\"1rem\"}},[_c('FilterAutocomplete',{attrs:{\"items\":_vm.sources,\"label\":\"Filtrar por Fuente\",\"itemText\":\"name\",\"itemValue\":\"_id\"},model:{value:(_vm.filter.sources),callback:function ($$v) {_vm.$set(_vm.filter, \"sources\", $$v)},expression:\"filter.sources\"}}),_c('FilterAutocomplete',{attrs:{\"items\":_vm.zones,\"label\":\"Filtrar por Desarrollos\"},model:{value:(_vm.filter.zones),callback:function ($$v) {_vm.$set(_vm.filter, \"zones\", $$v)},expression:\"filter.zones\"}}),_c('FilterAutocomplete',{attrs:{\"items\":_vm.campaignList,\"label\":\"Filtrar por Campañas\"},model:{value:(_vm.filter.campaigns),callback:function ($$v) {_vm.$set(_vm.filter, \"campaigns\", $$v)},expression:\"filter.campaigns\"}})],1),(_vm.showTable && _vm.data.length > 0)?_c('Options',{model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}}):_vm._e(),(_vm.loading)?_c('ViewLoading'):(_vm.data.length > 0)?_c('section',[(_vm.showTable)?_c('table',{staticClass:\"py-4 grey lighten-5 custom-table\"},[_c('thead',[_c('tr',[_vm._l((_vm.headers),function(header){return [(header.show)?_c('th',{key:header.text,staticClass:\"font-weight-regular\",class:header.class,attrs:{\"rowspan\":header.rowspan,\"colspan\":header.subHeaders?.length}},[_vm._v(\" \"+_vm._s(header.text)+\" \"),(header.sortable)?_c('v-icon',{on:{\"click\":function($event){_vm.orderByField(header.value, _vm.getSortOrder(header.value))}}},[_vm._v(_vm._s(_vm.iconBySort(header.value)))]):_vm._e()],1):_vm._e()]})],2),(_vm.hasSubHeaders)?_c('tr',_vm._l((_vm.subHeaders.subHeaders),function(subHeader){return _c('th',{key:subHeader.value,staticClass:\"caption\",class:subHeader.class},[_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":function($event){_vm.orderByField(\n `${_vm.subHeaders.value}.${subHeader.value}`,\n _vm.getSortOrder(`${_vm.subHeaders.value}.${subHeader.value}`)\n )}}},[_vm._v(_vm._s(_vm.iconBySort(`${_vm.subHeaders.value}.${subHeader.value}`)))]),_vm._v(\" \"+_vm._s(subHeader.text)+\" \")],1)}),0):_vm._e()]),_c('tbody',[_vm._l((_vm.data),function(type,typeIndex){return _vm._l((type.rows),function(row,rowIndex){return _c('tr',{key:`type-${typeIndex}-row-${rowIndex}`,staticClass:\"tr_custom\"},[(rowIndex === 0)?_c('td',{staticClass:\"td-custom lastRow\",attrs:{\"rowspan\":type.rows.length}},[_c('div',{staticClass:\"mx-auto\",class:_vm.getClass({ key: 'type' })},[_vm._v(\" \"+_vm._s(_vm.capitalizeFirstLetter(type.type))+\" \"),_c('p',[_c('v-chip',{attrs:{\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(type.total)+\" \")])],1)])]):_vm._e(),_vm._l((_vm.getCells.slice(1)),function(header,headerIndex){return _c('td',{key:`type-${typeIndex}-row-${rowIndex}-header-${headerIndex}`,staticClass:\"td-custom\",class:[\n { lastRow: rowIndex === type.rows.length - 1 },\n _vm.getClass({ parent: header.parent, key: header.value }),\n {\n 'total-info':\n !isNaN(_vm.getCellValue(row, header.value)) &&\n _vm.getCellValue(row, header.value) !== 0\n }\n ]},[_c('div',{staticClass:\"d-flex align-center\",on:{\"click\":function($event){!isNaN(_vm.getCellValue(row, header.value)) &&\n _vm.getCellValue(row, header.value) !== 0\n ? _vm.getLeads(row, header.value)\n : null}}},[_c('div',{},[(header.value === 'source')?_c('AvatarSource',{attrs:{\"name\":_vm.getCellValue(row, header.value)}}):(header.value === 'medium')?_c('AvatarMedium',{attrs:{\"name\":_vm.getCellValue(row, header.value)}}):_vm._e()],1),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.getCellValue(row, header.value) || \"-\"))]),_c('span',{staticClass:\"percentStyle grey--text text--darken-1\"},[_vm._v(_vm._s(_vm.getPercent( _vm.getCellValue(row, header.value), header.value === \"total\" ? type.total : row.total )))])])])})],2)})})],2)]):_c('graphicCampaignReportV2',{ref:\"graphic\",staticClass:\"graphic mb-15 pb-10 py-5 mx-10\",attrs:{\"valuesGraphics\":_vm.data}})],1):_c('ViewError'),_c('ListLeadsByReportDetail',{attrs:{\"leads\":_vm.leads,\"dialog\":_vm.dialog,\"loading\":_vm.loadingLeadList},on:{\"setDialog\":value => (_vm.dialog = value)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import jsPDF from \"jspdf\";\nimport autoTable from \"jspdf-autotable\";\n\nfunction createPdf(headers, data, filters) {\n const doc = new jsPDF(\"l\", \"mm\", [677.3, 381]);\n const columns = getHeaders(headers);\n const columnStyles = getColumnStyles(columns);\n\n data.forEach((element, index) => {\n if (index > 0) {\n doc.addPage();\n }\n const body = getBody(element.rows);\n addTitle(doc, \"REPORTE CAMPAÑAS / PLATAFORMAS\");\n addFilters(doc, filters);\n addBannerType(doc, element.type);\n autoTable(doc, {\n columns,\n body,\n startY: 70,\n theme: \"grid\",\n styles: {\n fontSize: 18,\n font: \"Lato-Bold\",\n overflow: \"linebreak\"\n },\n columnStyles,\n headStyles: { textColor: \"FFFFFF\", fillColor: \"262D3C\", halign: \"center\" }\n });\n });\n\n doc.save(\"campaignReport.pdf\");\n}\n\nfunction getBody(data) {\n const body = data.map(item => {\n const { active, ...others } = item;\n const { tof, mof, bof } = active;\n return {\n tof,\n mof,\n bof,\n ...others\n };\n });\n return body;\n}\n\nfunction getHeaders(data) {\n let slice = 0;\n if (data[0].value === \"type\") {\n slice = 1;\n }\n const headers = data.slice(slice).map(head => {\n const { value, text, parent } = head;\n\n return {\n dataKey: parent ? value.split(\".\")[1] : value,\n header: text\n };\n });\n return headers;\n}\nfunction addTitle(doc, text) {\n doc.setFont(\"Lato-Bold\", \"normal\");\n doc.setTextColor(\"262D3C\");\n doc.setFontSize(30);\n doc.text(text, 20, 20);\n}\nconst mapWidth = {\n source: {\n 8: 70,\n 7: 150,\n 6: 260\n },\n campaign: {\n 8: 150,\n 7: 140\n },\n medium: {\n 8: 70,\n 7: 140\n },\n total: {\n 8: 50,\n 7: 50,\n 6: 80\n }\n};\nfunction getColumnStyles(headers) {\n const styles = {\n source: {\n cellWidth: mapWidth.source[headers.length - 1],\n textColor: \"262D3C\",\n lineColor: [231, 231, 231]\n },\n campaign: {\n cellWidth: mapWidth.campaign[headers.length - 1],\n textColor: \"262D3C\",\n lineColor: [231, 231, 231]\n },\n medium: {\n cellWidth: mapWidth.medium[headers.length - 1],\n textColor: \"262D3C\",\n lineColor: [231, 231, 231]\n },\n total: {\n cellWidth: mapWidth.total[headers.length - 1],\n textColor: \"262D3C\",\n lineColor: [231, 231, 231]\n },\n tof: {\n cellWidth: 50,\n halign: \"center\",\n textColor: [49, 27, 146],\n fillColor: [252, 244, 252],\n lineColor: [231, 231, 231]\n },\n mof: {\n cellWidth: 50,\n halign: \"center\",\n textColor: [49, 27, 146],\n fillColor: [252, 244, 252],\n lineColor: [231, 231, 231]\n },\n bof: {\n cellWidth: 50,\n halign: \"center\",\n textColor: [49, 27, 146],\n fillColor: [252, 244, 252],\n lineColor: [231, 231, 231]\n },\n ventas: {\n cellWidth: 80,\n halign: \"center\",\n textColor: [62, 39, 35],\n fillColor: [255, 253, 231],\n lineColor: [231, 231, 231]\n },\n descartados: {\n cellWidth: 80,\n halign: \"center\",\n textColor: [0, 0, 0],\n fillColor: [224, 224, 224],\n lineColor: [231, 231, 231]\n }\n };\n return styles;\n}\nfunction addFilters(doc, { date, zones, sources }) {\n doc.setFontSize(20);\n\n if (!date.start || !date.end) {\n doc.text(\"Fechas: Todas\", 20, 55);\n } else {\n doc.text(\n \"Fechas: \" +\n new Date(date.start).toLocaleDateString() +\n \" ~ \" +\n new Date(date.end).toLocaleDateString(),\n 20,\n 55\n );\n }\n\n if (zones.length > 0) {\n doc.text(\"Desarrollo: \" + zones.join(\",\"), 20, 45);\n } else {\n doc.text(\"Desarrollo: Todos\", 20, 45);\n }\n\n if (sources.length > 0) {\n doc.text(\"Fuente: \" + sources.join(\", \"), 20, 35);\n } else {\n doc.text(\"Fuente: Todos\", 20, 35);\n }\n}\n\nfunction addBannerType(doc, type) {\n doc.autoTable({\n startY: 60,\n body: [\n [\n {\n content: type,\n styles: {\n halign: \"center\",\n fontSize: 18,\n font: \"Lato-Bold\",\n fillColor: \"7D8491\",\n textColor: [255, 255, 255],\n cellWidth: 260\n }\n }\n ]\n ]\n });\n}\nexport default createPdf;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('vue-funnel-graph',{attrs:{\"width\":_vm.width,\"height\":_vm.height,\"labels\":_vm.labels,\"values\":_vm.values,\"colors\":_vm.colors,\"sub-labels\":_vm.subLabels,\"direction\":_vm.direction,\"gradient-direction\":_vm.gradientDirection,\"animated\":true,\"display-percentage\":true,\"sub-label-value\":_vm.subLabelValue}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./graphicCampaignReportV2.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!./graphicCampaignReportV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./graphicCampaignReportV2.vue?vue&type=template&id=5209c895&\"\nimport script from \"./graphicCampaignReportV2.vue?vue&type=script&lang=js&\"\nexport * from \"./graphicCampaignReportV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./graphicCampaignReportV2.vue?vue&type=style&index=0&id=5209c895&prod&lang=css&\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AvatarTraffic',{attrs:{\"message\":_vm.source.name,\"src\":_vm.source.src,\"size\":\"20\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('HelperMessage',{scopedSlots:_vm._u([{key:\"message\",fn:function(){return [_c('div',{staticClass:\"flex items-center justify-center w-full h-full rounded-full bg-gray-200\"},[_c('span',{staticClass:\"text-gray-500\"},[_vm._v(_vm._s(_vm.message))])])]},proxy:true}])},[_c('v-avatar',{attrs:{\"size\":_vm.size}},[_c('img',{attrs:{\"src\":_vm.src,\"alt\":_vm.message}})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./AvatarTraffic.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!./AvatarTraffic.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AvatarTraffic.vue?vue&type=template&id=19c0fc46&\"\nimport script from \"./AvatarTraffic.vue?vue&type=script&lang=js&\"\nexport * from \"./AvatarTraffic.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","\n\n\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!./AvatarSource.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!./AvatarSource.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AvatarSource.vue?vue&type=template&id=00727c5e&\"\nimport script from \"./AvatarSource.vue?vue&type=script&lang=js&\"\nexport * from \"./AvatarSource.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AvatarTraffic',{attrs:{\"message\":_vm.medium.name,\"src\":_vm.medium.src,\"size\":\"20\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./AvatarMedium.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!./AvatarMedium.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AvatarMedium.vue?vue&type=template&id=39b862c4&\"\nimport script from \"./AvatarMedium.vue?vue&type=script&lang=js&\"\nexport * from \"./AvatarMedium.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","\n\n\n\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!./PlatformCampaignReportV2.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!./PlatformCampaignReportV2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PlatformCampaignReportV2.vue?vue&type=template&id=1e364fa0&\"\nimport script from \"./PlatformCampaignReportV2.vue?vue&type=script&lang=js&\"\nexport * from \"./PlatformCampaignReportV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PlatformCampaignReportV2.vue?vue&type=style&index=0&id=1e364fa0&prod&lang=css&\"\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":""}