{"version":3,"sources":["webpack:///./src/apps/DRFCharts/DRFCharts.vue?7be7","webpack:///./src/apps/DRFCharts/Dashboard/ChartRenderer.vue?a345","webpack:///src/apps/DRFCharts/Dashboard/ChartRenderer.vue","webpack:///./src/apps/DRFCharts/Dashboard/ChartRenderer.vue?f559","webpack:///./src/apps/DRFCharts/Dashboard/ChartRenderer.vue","webpack:///./src/apps/DRFCharts/Dashboard/FilterCard.vue?3847","webpack:///./src/apps/DRFCharts/Dashboard/FilterCell.vue?30bb","webpack:///./src/apps/DRFCharts/Dashboard/utils.js","webpack:///src/apps/DRFCharts/Dashboard/FilterCell.vue","webpack:///./src/apps/DRFCharts/Dashboard/FilterCell.vue?40b5","webpack:///./src/apps/DRFCharts/Dashboard/FilterCell.vue","webpack:///src/apps/DRFCharts/Dashboard/FilterCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/FilterCard.vue?b081","webpack:///./src/apps/DRFCharts/Dashboard/FilterCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/FieldCard.vue?8565","webpack:///./src/apps/DRFCharts/Dashboard/FieldCell.vue?9e42","webpack:///./src/apps/DRFCharts/Dashboard/FilterCreateForm.vue?c01a","webpack:///src/apps/DRFCharts/Dashboard/FilterCreateForm.vue","webpack:///./src/apps/DRFCharts/Dashboard/FilterCreateForm.vue?9ef5","webpack:///./src/apps/DRFCharts/Dashboard/FilterCreateForm.vue","webpack:///./src/apps/DRFCharts/Dashboard/AggregationCreateForm.vue?ec6a","webpack:///src/apps/DRFCharts/Dashboard/AggregationCreateForm.vue","webpack:///./src/apps/DRFCharts/Dashboard/AggregationCreateForm.vue?9539","webpack:///./src/apps/DRFCharts/Dashboard/AggregationCreateForm.vue","webpack:///src/apps/DRFCharts/Dashboard/FieldCell.vue","webpack:///./src/apps/DRFCharts/Dashboard/FieldCell.vue?192e","webpack:///./src/apps/DRFCharts/Dashboard/FieldCell.vue","webpack:///src/apps/DRFCharts/Dashboard/FieldCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/FieldCard.vue?536f","webpack:///./src/apps/DRFCharts/Dashboard/FieldCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/AggregateCard.vue?9c12","webpack:///src/apps/DRFCharts/Dashboard/AggregateCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/AggregateCard.vue?8563","webpack:///./src/apps/DRFCharts/Dashboard/AggregateCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/ActiveFieldsCard.vue?1803","webpack:///src/apps/DRFCharts/Dashboard/ActiveFieldsCard.vue","webpack:///./src/apps/DRFCharts/Dashboard/ActiveFieldsCard.vue?3986","webpack:///./src/apps/DRFCharts/Dashboard/ActiveFieldsCard.vue","webpack:///src/apps/DRFCharts/DRFCharts.vue","webpack:///./src/apps/DRFCharts/DRFCharts.vue?cae1","webpack:///./src/apps/DRFCharts/DRFCharts.vue","webpack:///./node_modules/chartkick/dist/chartkick.js","webpack:///./node_modules/json-to-csv-export/dist/index.js","webpack:///./src/apps/DRFCharts/Dashboard/FieldCell.vue?75ae","webpack:///./src/apps/DRFCharts/DRFCharts.vue?b85d","webpack:///./src/apps/DRFCharts/Dashboard/ActiveFieldsCard.vue?b399"],"names":["render","_vm","this","_c","_self","staticClass","attrs","_v","activeModel","label","_l","model","index","key","on","$event","selectModel","_s","activeQuery","name","loadQuery","query","value","callback","$$v","queryName","expression","saveQuery","_m","ref","modelFields","resetState","id","activateQuery","refInFor","combineQueries","_e","queryData","staticRenderFns","val","changeChart","axisOptions","settings","$set","item","xaxisArray","splice","addNewXAxis","cutoffOptions","data","csvDownload","sortBy","sortDesc","staticStyle","Chartkick","props","Array","chartType","chartOptions","xaxis","yaxis","processedData","ignoreDataChange","watch","oldVal","renderChart","deep","computed","length","Object","keys","text","methods","setSettings","newXAxisArray","push","unsortedData","sort","a","b","sign","order","map","xValue","filter","join","sortData","processData","cutoff","slice","$nextTick","component","removeFilter","newVal","modifyFilter","field","getFilterFunctions","type","directives","rawName","domProps","target","composing","$emit","getAggregateFunctions","components","FilterCell","activeFilters","getFields","hasLookups","lookupIsString","class","showFields","getLabel","isInQuery","modifiers","stopPropagation","addField","showFilterCreate","apply","arguments","scopedSlots","_u","fn","proxy","args","handleNewFilter","showAggregationCreate","handleNewAggregate","v","filterFunction","filterValue","createFilter","indexOf","availableAggregations","aggregateFunction","AggregationCreateForm","FilterCreateForm","String","lookupFields","loading","getActiveFields","i","fields","getTransforms","addFilter","addAggregate","active","f1","f2","transforms","isArray","getParam","get","then","response","newField","fieldSplit","split","FieldCell","availableFields","change","remove","aggregates","fieldObject","removeField","activeFields","ActiveFieldsCard","AggregationCard","FieldCard","ChartRenderer","FilterCard","availableModels","availableQueries","loadedQueries","retrieveQueries","loadModelFields","removeFieldFromStore","loadQueryInternal","setModel","selected","global","factory","module","exports","variable","prototype","toString","call","isFunction","Function","isPlainObject","extend","source","undefined","merge","obj1","obj2","DATE_PATTERN","ISO8601_PATTERN","DECIMAL_SEPARATOR","charAt","parseISO8601","input","day","hour","matches","milliseconds","minutes","month","offset","result","seconds","year","match","parseInt","parseFloat","Date","UTC","negativeValues","series","j","toStr","n","toFloat","toDate","str","replace","toArr","arr","hasOwnProperty","jsOptionsFunc","defaultOptions","hideLegend","setTitle","setMin","setMax","setStacked","setXtitle","setYtitle","chart","opts","options","legend","title","min","max","stacked","colors","xtitle","ytitle","library","sortByTime","getTime","sortByNumberSeries","sortByNumber","isMinute","d","getMilliseconds","getSeconds","isHour","getMinutes","isDay","getHours","isWeek","dayOfWeek","getDay","isMonth","getDate","isYear","getMonth","isDate","obj","isNaN","isNumber","byteSuffixes","formatValue","pre","axis","prefix","suffix","precision","round","byteScale","suffixIdx","baseValue","Error","toPrecision","zeros","num","Math","pow","toFixed","thousands","decimal","parts","seriesOption","option","allZeros","baseOptions","maintainAspectRatio","animation","tooltips","displayColors","callbacks","fontSize","fontColor","scales","yAxes","ticks","maxTicksLimit","scaleLabel","xAxes","gridLines","drawOnChartArea","time","defaultColors","display","position","setBarMin","setBarMax","labelString","addOpacity","hex","opacity","exec","notnull","x","setLabelSize","maxLabelSize","ceil","element","offsetWidth","labels","substring","setFormatOptions","formatOptions","bytes","s","scale","myAxes","stepSize","datasets","datasetIndex","xLabel","yLabel","dataPoint","tooltipItem","dataLabel","valueLabel","jsOptions","createDataTable","week","minute","i$1","s$1","j$1","rows","rows2","xtype","k","sortedLabels","i$2","s$2","d$1","j$2","point","y","r","color","backgroundColor","dataset","fill","borderColor","pointBackgroundColor","borderWidth","pointHoverBackgroundColor","stack","curve","lineTension","points","pointRadius","pointHitRadius","xmin","xmax","gte29","helpers","ticksKey","minTime","maxTime","value$1","step","timeDiff","unit","displayFormats","unitStepSize","tooltipFormat","defaultExport","renderLineChart","drawChart","renderPieChart","donut","cutoutPercentage","values","renderColumnChart","barOptions","renderAreaChart","renderBarChart","renderScatterChart","showLines","renderBubbleChart","destroy","code","window","console","log","JSON","stringify","innerHTML","ctx","getElementsByTagName","defaultOptions$1","xAxis","style","yAxis","credits","enabled","tooltip","plotOptions","areaspline","area","marker","hideLegend$1","verticalAlign","layout","align","setTitle$1","setMin$1","setMax$1","setStacked$1","stackedValue","stacking","setXtitle$1","setYtitle$1","jsOptions$1","setFormatOptions$1","formatter","pointFormatter","defaultExport$1","symbol","pie","innerSize","categories","d2","newSeries","renderTo","Chart","loaded","defaultOptions$2","chartArea","fontName","pointSize","textStyle","alignment","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","hideLegend$2","setTitle$2","setMin$2","setMax$2","setBarMin$1","setBarMax$1","setStacked$2","isStacked","setXtitle$2","italic","setYtitle$2","jsOptions$2","resize","attachEvent","addEventListener","defaultExport$2","this$1","waitForLoaded","top","height","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","row","renderTimeline","lineHeight","clearChart","toJSON","draw","pack","runCallbacks","loadOptions","packages","config","__config","language","mapsApiKey","charts","load","cb","LineChart","Timeline","GeoChart","columnType","concat","pendingRequests","runningRequests","maxRequests","pushRequest","url","success","error","runNext","request","shift","getJSON","requestComplete","ajaxCall","jqXHR","textStatus","errorThrown","message","$","jQuery","Zepto","ajax","dataType","complete","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","parse","responseText","statusText","send","adapters","setText","document","body","innerText","textContent","chartError","noPrefix","errorCatcher","__render","err","fetchDataSource","dataSource","rawData","addDownloadButton","link","createElement","download","filename","right","zIndex","image","alt","border","src","appendChild","__downloadAttached","__enterEvent","addEvent","e","related","relatedTarget","childOf","href","toImage","__leaveEvent","parentNode","removeChild","elem","event","fn2","removeEvent","removeEventListener","detachEvent","p","c","getAdapterType","product","addAdapter","adapterType","adapter","loadAdapters","Highcharts","google","dataEmpty","messages","empty","callAdapter","fnName","adapterName","__adapterObject","toFormattedKey","keyType","formatSeriesData","detectXType","noDatetime","detectXTypeWithFunction","func","copySeries","copy","processSeries","discrete","processSimple","perfectData","elementId","getElementById","refresh","startRefresh","getElement","getDataSource","getData","getOptions","getChartObject","getAdapter","updateData","__updateOptions","setOptions","redraw","refreshData","sep","intervalId","setInterval","stopRefresh","clearInterval","background","canvas","tmpCanvas","tmpCtx","getContext","width","fillStyle","fillRect","drawImage","toDataURL","toBase64Image","updateRefresh","__processData","__chartName","__proto__","create","constructor","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","configure","setDefaultOptions","eachChart","chartId","use","default","_toConsumableArray","arr2","from","defineProperty","delimiter","items","header","Set","reduce","csv","fieldName","unshift","blob","Blob","navigator","msSaveBlob","URL","createObjectURL","click"],"mappings":"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","file":"js/DRFCharts.7397214a.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"scrollview\",attrs:{\"id\":\"wrapper\"}},[_c('div',{staticClass:\"d-flex flex-column\",attrs:{\"id\":\"content-wrapper\"}},[_c('div',{attrs:{\"id\":\"content\"}},[_c('nav',{staticClass:\"navbar navbar-expand navbar-light bg-white topbar mb-3 static-top shadow\"},[_c('div',{staticClass:\"d-sm-flex align-items-center justify-content-between w-100\"},[_c('div',{staticClass:\"d-sm-flex align-items-center\"},[_c('h1',{staticClass:\"h3 mb-0 text-gray-800 mr-3\"},[_vm._v(\"Dashboard - \")]),_c('div',{staticClass:\"btn-group\"},[_c('b-dropdown',{staticClass:\"m-2 disabled\",attrs:{\"split\":\"\",\"text\":_vm.activeModel ? _vm.activeModel.label : 'None',\"variant\":\"primary\"}},_vm._l((_vm.availableModels),function(model,index){return _c('b-dropdown-item',{key:index,attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectModel(model)}}},[_vm._v(\" \"+_vm._s(model.label)+\" \")])}),1)],1),_c('div',{staticClass:\"btn-group\"},[_c('b-dropdown',{staticClass:\"m-2 disabled\",attrs:{\"split\":\"\",\"text\":!!_vm.activeQuery ? _vm.activeQuery.name : 'Load query',\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.loadQuery(_vm.activeQuery)}}},_vm._l((_vm.availableQueries),function(query,index){return _c('b-dropdown-item',{key:index,attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.loadQuery(query)}}},[_vm._v(\" \"+_vm._s(query.name)+\" \")])}),1)],1),_c('div',{staticClass:\"ml-2 d-flex\"},[_c('b-input',{staticClass:\"my-auto\",attrs:{\"type\":\"text\",\"placeholder\":\"Query Name\"},model:{value:(_vm.queryName),callback:function ($$v) {_vm.queryName=$$v},expression:\"queryName\"}}),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.saveQuery({name: _vm.queryName, model: _vm.activeModel})}}},[_vm._v(\" Save Query \")])],1)]),_vm._m(0)])]),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-3 col-md-4 mb-3\"},[_c('FieldCard',{ref:\"fieldcard\",attrs:{\"availableFields\":_vm.modelFields}})],1),_c('div',{staticClass:\"col-xl-9 col-md-8\"},[_c('div',[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"}},[_c('b-tab',{attrs:{\"title\":\"New Query\",\"active\":\"\"},on:{\"click\":_vm.resetState}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('ActiveFieldsCard',{ref:\"activefieldscard\"})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('FilterCard',{ref:\"filtercard\"})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('AggregationCard',{ref:\"aggregationcard\"})],1)])]),_vm._l((_vm.loadedQueries),function(query){return _c('b-tab',{key:query.id,attrs:{\"title\":query.name,\"active\":query === _vm.activeQuery},on:{\"click\":function($event){return _vm.activateQuery(query)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('ActiveFieldsCard',{ref:\"activefieldscard\",refInFor:true})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('FilterCard',{ref:\"filtercard\",refInFor:true})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('AggregationCard',{ref:\"aggregationcard\",refInFor:true})],1)])])}),_c('b-tab',{attrs:{\"title\":\"Combinator\"},on:{\"click\":_vm.combineQueries}})],2)],1),(false)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('ActiveFieldsCard',{ref:\"activefieldscard\"})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('FilterCard',{ref:\"filtercard\"})],1),_c('div',{staticClass:\"col-xl-4 col-md-6 mb-3\"},[_c('AggregationCard',{ref:\"aggregationcard\"})],1)]):_vm._e(),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-12 col-lg-12\"},[_c('ChartRenderer',{attrs:{\"data\":_vm.queryData}})],1)])])])])]),_vm._m(1)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm\",attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"fas fa-download fa-sm text-white-50\"}),_vm._v(\" Download\")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('footer',{staticClass:\"sticky-footer bg-white\"},[_c('div',{staticClass:\"container my-auto\"},[_c('div',{staticClass:\"copyright text-center my-auto\"},[_c('span',[_vm._v(\"Copyright © Benedikt Reschberger - reschberger@gmail.com - 2020\")])])])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card shadow mb-4\"},[_c('div',{staticClass:\"card-header py-3 d-flex flex-row align-items-center justify-content-between\"},[_c('h6',{staticClass:\"m-0 font-weight-bold text-primary\"},[_vm._v(\"Chart\")]),_c('div',{staticClass:\"dropdown no-arrow\"},[_vm._m(0),_c('div',{staticClass:\"dropdown-menu dropdown-menu-right shadow animated--fade-in\",attrs:{\"aria-labelledby\":\"dropdownMenuLink\"}},[_c('div',{staticClass:\"dropdown-header\"},[_vm._v(\"Dropdown Header:\")]),_vm._l((_vm.chartOptions),function(val,index){return _c('button',{key:index,staticClass:\"dropdown-item\",on:{\"click\":function($event){return _vm.changeChart(val)}}},[_vm._v(_vm._s(val)+\" \")])}),_c('div',{staticClass:\"dropdown-divider\"}),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"}},[_vm._v(\"Something else here\")])],2)])]),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_vm._m(1),_c('div',{staticClass:\"col-3 p-1\"},[_c('b-form-group',{attrs:{\"id\":\"yaxis-fieldset\",\"label\":\"Y-Axis\",\"label-for\":\"yaxisselect\"}},[_c('b-form-select',{attrs:{\"id\":\"yaxisselect\",\"options\":_vm.axisOptions},model:{value:(_vm.settings.yaxis),callback:function ($$v) {_vm.$set(_vm.settings, \"yaxis\", $$v)},expression:\"settings.yaxis\"}})],1),_c('b-form-group',{attrs:{\"id\":\"xaxis-fieldset\",\"label\":\"X-Axis\",\"label-for\":\"xaxisselect\"}},[_vm._l((_vm.settings.xaxisArray),function(item,index){return _c('div',{staticClass:\"d-flex my-1\"},[_c('b-form-select',{key:index,attrs:{\"id\":'xaxisselect2' + index,\"options\":_vm.axisOptions},model:{value:(item.xaxis),callback:function ($$v) {_vm.$set(item, \"xaxis\", $$v)},expression:\"item.xaxis\"}}),_c('b-btn',{staticClass:\"btn-circle my-auto ml-1\",attrs:{\"variant\":\"outline-danger\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.settings.xaxisArray.splice(index, 1)}}},[_c('i',{staticClass:\"fas fa-times\"})])],1)}),_c('b-btn',{attrs:{\"variant\":\"light\"},on:{\"click\":function($event){return _vm.addNewXAxis({})}}},[_vm._v(\" + Add Axis Field \")])],2),_c('b-form-group',{attrs:{\"id\":\"sort-fieldset\",\"label\":\"Sort By\",\"label-for\":\"sortselect\"}},[_c('b-form-select',{attrs:{\"id\":\"sortselect\",\"options\":_vm.axisOptions},model:{value:(_vm.settings.sortBy),callback:function ($$v) {_vm.$set(_vm.settings, \"sortBy\", $$v)},expression:\"settings.sortBy\"}})],1),_c('b-form-group',{attrs:{\"id\":\"sortdesc-fieldset\",\"label\":\"Sort Desc\",\"label-for\":\"sortdesccheckbox\"}},[_c('div',{staticClass:\"d-flex\"},[_c('b-form-checkbox',{attrs:{\"id\":\"sortdesccheckbox\"},model:{value:(_vm.settings.sortDesc),callback:function ($$v) {_vm.$set(_vm.settings, \"sortDesc\", $$v)},expression:\"settings.sortDesc\"}}),_c('b-form-select',{attrs:{\"id\":\"sortdescselect\",\"options\":_vm.cutoffOptions},model:{value:(_vm.settings.cutoff),callback:function ($$v) {_vm.$set(_vm.settings, \"cutoff\", $$v)},expression:\"settings.cutoff\"}})],1)])],1)])]),_c('div',{attrs:{\"id\":\"chart-2\"}}),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"}},[_c('b-tab',{attrs:{\"title\":\"Raw (JSON)\",\"active\":\"\"}},[_c('div',{staticClass:\"mb-2\"},[_c('b-btn',{staticClass:\"shadow-sm d-none d-sm-inline-block\",attrs:{\"variant\":\"primary\"}},[_c('i',{staticClass:\"fas fa-download fa-sm\"}),_vm._v(\" Download \")])],1),_c('pre',[_vm._v(_vm._s(_vm.data))])]),_c('b-tab',{attrs:{\"title\":\"Table (CSV)\"}},[_c('div',{staticClass:\"mb-2\"},[_c('b-btn',{staticClass:\"shadow-sm d-none d-sm-inline-block\",attrs:{\"variant\":\"primary\"},on:{\"click\":() => _vm.csvDownload(_vm.data)}},[_c('i',{staticClass:\"fas fa-download fa-sm\"}),_vm._v(\" Download \")])],1),_c('b-table',{attrs:{\"items\":_vm.data,\"hover\":\"\",\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc}})],1),_c('b-tab',{attrs:{\"title\":\"Disabled\",\"disabled\":\"\"}},[_c('p',[_vm._v(\"I'm a disabled tab!\")])])],1)],1)])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"dropdown-toggle\",attrs:{\"href\":\"#\",\"role\":\"button\",\"id\":\"dropdownMenuLink\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_c('i',{staticClass:\"fas fa-ellipsis-v fa-sm fa-fw text-gray-400\"})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"col-9\"},[_c('div',{staticStyle:{\"height\":\"300px\"},attrs:{\"id\":\"chart-1\"}})])\n}]\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./ChartRenderer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./ChartRenderer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartRenderer.vue?vue&type=template&id=aa8881fa&\"\nimport script from \"./ChartRenderer.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartRenderer.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('div',{staticClass:\"card border-left-primary shadow h-100\"},[_vm._m(0),_c('div',{staticClass:\"card-body\"},_vm._l((_vm.activeFilters),function(val){return _c('div',{key:val.key},[_c('FilterCell',{attrs:{\"filter\":val},on:{\"delete\":function($event){return _vm.removeFilter(val)},\"change\":newVal => _vm.modifyFilter(val, newVal)}})],1)}),0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"d-sm-flex align-items-center justify-content-between w-100\"},[_c('div',{staticClass:\"font-weight-bold text-secondary text-uppercase\"},[_vm._v(\" Filter \")])])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"input-group mb-3\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-input-group-prepend',[_c('b-btn',{attrs:{\"variant\":\"outline-secondary\",\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.filter.field.field))])],1),_c('b-form-select',{staticClass:\"h-100\",attrs:{\"options\":_vm.getFilterFunctions(_vm.filter.field)},model:{value:(_vm.filter.filterFunction),callback:function ($$v) {_vm.$set(_vm.filter, \"filterFunction\", $$v)},expression:\"filter.filterFunction\"}}),(_vm.filter.type === 'date')?_c('b-form-datepicker',{staticStyle:{\"flex-wrap\":\"nowrap\",\"white-space\":\"nowrap\"},attrs:{\"id\":\"example-datepicker\"},model:{value:(_vm.filter.filterValue),callback:function ($$v) {_vm.$set(_vm.filter, \"filterValue\", $$v)},expression:\"filter.filterValue\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.filterValue),expression:\"filter.filterValue\"}],staticClass:\"form-control btn-sm\",attrs:{\"type\":\"text\",\"aria-label\":\"\",\"aria-describedby\":\"basic-addon1\"},domProps:{\"value\":(_vm.filter.filterValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.filter, \"filterValue\", $event.target.value)}}}),_c('b-input-group-append',[_c('b-form-checkbox',{staticClass:\"my-auto m-1\",attrs:{\"switch\":\"\"},model:{value:(_vm.filter.active),callback:function ($$v) {_vm.$set(_vm.filter, \"active\", $$v)},expression:\"filter.active\"}}),_c('button',{staticClass:\"btn btn-outline-danger btn-sm\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('delete')}}},[_vm._v(\"x\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const getFilterFunctions = field => {\n return field.lookups\n}\n\nexport const getAggregateFunctions = field => {\n return [\n { text: \"Sum\", value: \"Sum\" },\n { text: \"Count\", value: \"Count\" },\n { text: \"Count Distinct\", value: \"CountDistinct\" },\n { text: \"Average\", value: \"Avg\" }\n ]\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCell.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCell.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterCell.vue?vue&type=template&id=360df9a4&scoped=true&\"\nimport script from \"./FilterCell.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterCell.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 \"360df9a4\",\n null\n \n)\n\nexport default component.exports","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterCard.vue?vue&type=template&id=10f8d7d0&\"\nimport script from \"./FilterCard.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterCard.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('div',{staticClass:\"card border-left-secondary shadow h-100\"},[_vm._m(0),_c('div',{staticClass:\"card-body container\"},_vm._l((_vm.availableFields),function(val,index){return _c('FieldCell',{key:index,attrs:{\"field\":val,\"index\":val.field + index}})}),1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"font-weight-bold text-secondary text-uppercase\"},[_vm._v(\" Model Fields \")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100 btn btn-light my-1\",staticStyle:{\"padding-right\":\"4px\"}},[_c('div',{staticClass:\"row\",on:{\"click\":_vm.getFields}},[_c('div',{staticClass:\"col-1\"},[(_vm.hasLookups || _vm.lookupIsString)?_c('i',{staticClass:\"fas\",class:_vm.showFields ? 'fa-minus' : 'fa-plus'}):_vm._e()]),_c('div',{staticClass:\"col d-flex justify-content-between\"},[_c('div',{staticClass:\"my-auto\"},[_vm._v(\" \"+_vm._s(_vm.getLabel(_vm.field))+\" \")]),(_vm.field.type !== 'relation')?_c('div',[(!_vm.isInQuery)?_c('button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.left\",value:('Add to active fields'),expression:\"'Add to active fields'\",modifiers:{\"hover\":true,\"left\":true}}],staticClass:\"btn btn-outline-success btn-circle mr-1\",attrs:{\"id\":'add-active-' + _vm.index,\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addField(_vm.field)}}},[_c('i',{staticClass:\"fas fa-plus\"})]):_vm._e(),_c('button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Add a new filter'),expression:\"'Add a new filter'\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"btn btn-primary btn-circle mr-1\",attrs:{\"id\":'add-filter-' + _vm.index,\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return (() => {_vm.field.showFilterCreate = true}).apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-filter\"})]),_c('b-popover',{attrs:{\"target\":'add-filter-' + _vm.index,\"variant\":\"default\",\"triggers\":\"focus\",\"boundary\":\"viewport\",\"custom-class\":\"wide-popover\",\"show\":_vm.field.showFilterCreate},on:{\"update:show\":function($event){return _vm.$set(_vm.field, \"showFilterCreate\", $event)}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"Add Filter\")]},proxy:true}],null,false,475937532)},[_c('FilterCreateForm',{attrs:{\"field\":_vm.field},on:{\"input\":args => _vm.handleNewFilter(args, _vm.field)}})],1),_c('button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.top\",value:('Add a new aggregation'),expression:\"'Add a new aggregation'\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"btn btn-outline-info btn-circle\",attrs:{\"type\":\"button\",\"id\":'add-aggregation-' + _vm.index},on:{\"click\":function($event){$event.stopPropagation();_vm.field.showAggregationCreate = true}}},[_c('i',{staticClass:\"fas fa-chart-pie\"})]),_c('b-popover',{attrs:{\"target\":'add-aggregation-' + _vm.index,\"variant\":\"default\",\"triggers\":\"focus\",\"boundary\":\"viewport\",\"custom-class\":\"wide-popover\",\"show\":_vm.field.showAggregationCreate},on:{\"update:show\":function($event){return _vm.$set(_vm.field, \"showAggregationCreate\", $event)}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"Add Aggregation\")]},proxy:true}],null,false,2977810608)},[_c('AggregationCreateForm',{attrs:{\"field\":_vm.field},on:{\"input\":args => _vm.handleNewAggregate(args, _vm.field)}})],1)],1):_vm._e()])]),_c('b-collapse',{staticClass:\"mt-1 w-100\",staticStyle:{\"margin-left\":\"5px\"},attrs:{\"id\":'child-field-collapse-' + _vm.field.field},model:{value:(_vm.showFields),callback:function ($$v) {_vm.showFields=$$v},expression:\"showFields\"}},[(_vm.loading)?_c('div',{staticClass:\"my-2\"},[_vm._v(\"Loading...\")]):_vm._e(),_vm._l((_vm.field.lookupFields),function(v,index){return _c('FieldCell',{key:index,attrs:{\"field\":v,\"index\":'' + v.field + index}})})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex justify-content-between\"},[_c('div',{staticClass:\"m-1\"},[_c('b-form-select',{staticClass:\"h-100\",attrs:{\"options\":_vm.getFilterFunctions(_vm.field)},model:{value:(_vm.filterFunction),callback:function ($$v) {_vm.filterFunction=$$v},expression:\"filterFunction\"}})],1),_c('div',{staticClass:\"m-1\"},[(_vm.isDatetime)?_c('b-form-datepicker',{staticStyle:{\"flex-wrap\":\"nowrap\",\"white-space\":\"nowrap\"},attrs:{\"id\":\"example-datepicker\"},model:{value:(_vm.filterValue),callback:function ($$v) {_vm.filterValue=$$v},expression:\"filterValue\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filterValue),expression:\"filterValue\"}],staticClass:\"form-control btn-sm\",attrs:{\"type\":\"text\",\"aria-label\":\"\",\"aria-describedby\":\"basic-addon1\"},domProps:{\"value\":(_vm.filterValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.filterValue=$event.target.value}}})],1),_c('div',{staticClass:\"m-1 my-auto\"},[_c('b-btn',{staticClass:\"btn-circle my-auto\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.createFilter}},[_c('i',{staticClass:\"fas fa-check\"})])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCreateForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FilterCreateForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterCreateForm.vue?vue&type=template&id=a609d9bc&scoped=true&\"\nimport script from \"./FilterCreateForm.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterCreateForm.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 \"a609d9bc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex justify-content-between\"},[_c('div',{staticClass:\"m-1\"},[_c('b-form-select',{staticClass:\"h-100\",attrs:{\"options\":_vm.availableAggregations},model:{value:(_vm.aggregateFunction),callback:function ($$v) {_vm.aggregateFunction=$$v},expression:\"aggregateFunction\"}})],1),_c('div',{staticClass:\"m-1 my-auto\"},[_c('b-btn',{staticClass:\"btn-circle my-auto\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$emit('input', {aggregateFunction: _vm.aggregateFunction})}}},[_c('i',{staticClass:\"fas fa-check\"})])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./AggregationCreateForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./AggregationCreateForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AggregationCreateForm.vue?vue&type=template&id=2295146a&scoped=true&\"\nimport script from \"./AggregationCreateForm.vue?vue&type=script&lang=js&\"\nexport * from \"./AggregationCreateForm.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 \"2295146a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FieldCell.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FieldCell.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FieldCell.vue?vue&type=template&id=65973c8c&scoped=true&\"\nimport script from \"./FieldCell.vue?vue&type=script&lang=js&\"\nexport * from \"./FieldCell.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FieldCell.vue?vue&type=style&index=0&id=65973c8c&prod&scoped=true&lang=scss&\"\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 \"65973c8c\",\n null\n \n)\n\nexport default component.exports","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FieldCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FieldCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FieldCard.vue?vue&type=template&id=07829de2&\"\nimport script from \"./FieldCard.vue?vue&type=script&lang=js&\"\nexport * from \"./FieldCard.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('div',{staticClass:\"card border-left-info shadow h-100\"},[_vm._m(0),_c('div',{staticClass:\"card-body d-flex\"},_vm._l((_vm.aggregates),function(val,index){return _c('div',{key:index,staticClass:\"m-1\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-input-group-prepend',[_c('b-btn',{attrs:{\"variant\":\"outline-secondary\",\"disabled\":\"\"}},[_vm._v(_vm._s(val.field.field))])],1),_c('b-form-select',{staticClass:\"h-100\",attrs:{\"options\":_vm.getAggregateFunctions(val.field)},on:{\"change\":function($event){return _vm.change(val)}},model:{value:(val.aggregateFunction),callback:function ($$v) {_vm.$set(val, \"aggregateFunction\", $$v)},expression:\"val.aggregateFunction\"}}),_c('b-input-group-append',[_c('button',{staticClass:\"btn btn-outline-danger btn-sm\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.remove(val)}}},[_vm._v(\"x\")])])],1)],1)}),0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"d-sm-flex align-items-center justify-content-between w-100\"},[_c('div',{staticClass:\"font-weight-bold text-secondary text-uppercase\"},[_vm._v(\" Aggregate \")])])])\n}]\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./AggregateCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./AggregateCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AggregateCard.vue?vue&type=template&id=d7e5aa12&\"\nimport script from \"./AggregateCard.vue?vue&type=script&lang=js&\"\nexport * from \"./AggregateCard.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('div',{staticClass:\"card border-left-success shadow h-100\"},[_vm._m(0),_c('div',{staticClass:\"card-body container\"},_vm._l((_vm.activeFields),function(fieldObject,index){return _c('div',{key:fieldObject.field,staticClass:\"my-1\"},[_c('b-btn',{attrs:{\"variant\":\"light\",\"disabled\":\"\"}},[_vm._v(_vm._s(fieldObject.field))]),_c('b-btn',{staticClass:\"btn-circle\",attrs:{\"variant\":\"outline-danger\"},on:{\"click\":function($event){return _vm.removeField(fieldObject)}}},[_c('i',{staticClass:\"fas fa-times\"})])],1)}),0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"font-weight-bold text-secondary text-uppercase\"},[_vm._v(\" Active Fields \")])])\n}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./ActiveFieldsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./ActiveFieldsCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ActiveFieldsCard.vue?vue&type=template&id=2e9aed2e&scoped=true&\"\nimport script from \"./ActiveFieldsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ActiveFieldsCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ActiveFieldsCard.vue?vue&type=style&index=0&id=2e9aed2e&prod&scoped=true&lang=scss&\"\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 \"2e9aed2e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/src/index.js!./DRFCharts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/src/index.js!./DRFCharts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DRFCharts.vue?vue&type=template&id=2b503971&scoped=true&\"\nimport script from \"./DRFCharts.vue?vue&type=script&lang=js&\"\nexport * from \"./DRFCharts.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DRFCharts.vue?vue&type=style&index=0&id=2b503971&prod&scoped=true&lang=scss&\"\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 \"2b503971\",\n null\n \n)\n\nexport default component.exports","/*\n * Chartkick.js\n * Create beautiful charts with one line of JavaScript\n * https://github.com/ankane/chartkick.js\n * v3.2.1\n * MIT License\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Chartkick = factory());\n}(this, (function () { 'use strict';\n\n function isArray(variable) {\n return Object.prototype.toString.call(variable) === \"[object Array]\";\n }\n\n function isFunction(variable) {\n return variable instanceof Function;\n }\n\n function isPlainObject(variable) {\n // protect against prototype pollution, defense 2\n return Object.prototype.toString.call(variable) === \"[object Object]\" && !isFunction(variable) && variable instanceof Object;\n }\n\n // https://github.com/madrobby/zepto/blob/master/src/zepto.js\n function extend(target, source) {\n var key;\n for (key in source) {\n // protect against prototype pollution, defense 1\n if (key === \"__proto__\") { continue; }\n\n if (isPlainObject(source[key]) || isArray(source[key])) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n extend(target[key], source[key]);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n }\n\n function merge(obj1, obj2) {\n var target = {};\n extend(target, obj1);\n extend(target, obj2);\n return target;\n }\n\n var DATE_PATTERN = /^(\\d\\d\\d\\d)(-)?(\\d\\d)(-)?(\\d\\d)$/i;\n\n // https://github.com/Do/iso8601.js\n var ISO8601_PATTERN = /(\\d\\d\\d\\d)(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)?(:)?(\\d\\d)?([.,]\\d+)?($|Z|([+-])(\\d\\d)(:)?(\\d\\d)?)/i;\n var DECIMAL_SEPARATOR = String(1.5).charAt(1);\n\n function parseISO8601(input) {\n var day, hour, matches, milliseconds, minutes, month, offset, result, seconds, type, year;\n type = Object.prototype.toString.call(input);\n if (type === \"[object Date]\") {\n return input;\n }\n if (type !== \"[object String]\") {\n return;\n }\n matches = input.match(ISO8601_PATTERN);\n if (matches) {\n year = parseInt(matches[1], 10);\n month = parseInt(matches[3], 10) - 1;\n day = parseInt(matches[5], 10);\n hour = parseInt(matches[7], 10);\n minutes = matches[9] ? parseInt(matches[9], 10) : 0;\n seconds = matches[11] ? parseInt(matches[11], 10) : 0;\n milliseconds = matches[12] ? parseFloat(DECIMAL_SEPARATOR + matches[12].slice(1)) * 1000 : 0;\n result = Date.UTC(year, month, day, hour, minutes, seconds, milliseconds);\n if (matches[13] && matches[14]) {\n offset = matches[15] * 60;\n if (matches[17]) {\n offset += parseInt(matches[17], 10);\n }\n offset *= matches[14] === \"-\" ? -1 : 1;\n result -= offset * 60 * 1000;\n }\n return new Date(result);\n }\n }\n // end iso8601.js\n\n function negativeValues(series) {\n var i, j, data;\n for (i = 0; i < series.length; i++) {\n data = series[i].data;\n for (j = 0; j < data.length; j++) {\n if (data[j][1] < 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n function toStr(n) {\n return \"\" + n;\n }\n\n function toFloat(n) {\n return parseFloat(n);\n }\n\n function toDate(n) {\n var matches, year, month, day;\n if (typeof n !== \"object\") {\n if (typeof n === \"number\") {\n n = new Date(n * 1000); // ms\n } else {\n n = toStr(n);\n if ((matches = n.match(DATE_PATTERN))) {\n year = parseInt(matches[1], 10);\n month = parseInt(matches[3], 10) - 1;\n day = parseInt(matches[5], 10);\n return new Date(year, month, day);\n } else { // str\n // try our best to get the str into iso8601\n // TODO be smarter about this\n var str = n.replace(/ /, \"T\").replace(\" \", \"\").replace(\"UTC\", \"Z\");\n n = parseISO8601(str) || new Date(n);\n }\n }\n }\n return n;\n }\n\n function toArr(n) {\n if (!isArray(n)) {\n var arr = [], i;\n for (i in n) {\n if (n.hasOwnProperty(i)) {\n arr.push([i, n[i]]);\n }\n }\n n = arr;\n }\n return n;\n }\n\n function jsOptionsFunc(defaultOptions, hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle) {\n return function (chart, opts, chartOptions) {\n var series = chart.data;\n var options = merge({}, defaultOptions);\n options = merge(options, chartOptions || {});\n\n if (chart.hideLegend || \"legend\" in opts) {\n hideLegend(options, opts.legend, chart.hideLegend);\n }\n\n if (opts.title) {\n setTitle(options, opts.title);\n }\n\n // min\n if (\"min\" in opts) {\n setMin(options, opts.min);\n } else if (!negativeValues(series)) {\n setMin(options, 0);\n }\n\n // max\n if (opts.max) {\n setMax(options, opts.max);\n }\n\n if (\"stacked\" in opts) {\n setStacked(options, opts.stacked);\n }\n\n if (opts.colors) {\n options.colors = opts.colors;\n }\n\n if (opts.xtitle) {\n setXtitle(options, opts.xtitle);\n }\n\n if (opts.ytitle) {\n setYtitle(options, opts.ytitle);\n }\n\n // merge library last\n options = merge(options, opts.library || {});\n\n return options;\n };\n }\n\n function sortByTime(a, b) {\n return a[0].getTime() - b[0].getTime();\n }\n\n function sortByNumberSeries(a, b) {\n return a[0] - b[0];\n }\n\n function sortByNumber(a, b) {\n return a - b;\n }\n\n function isMinute(d) {\n return d.getMilliseconds() === 0 && d.getSeconds() === 0;\n }\n\n function isHour(d) {\n return isMinute(d) && d.getMinutes() === 0;\n }\n\n function isDay(d) {\n return isHour(d) && d.getHours() === 0;\n }\n\n function isWeek(d, dayOfWeek) {\n return isDay(d) && d.getDay() === dayOfWeek;\n }\n\n function isMonth(d) {\n return isDay(d) && d.getDate() === 1;\n }\n\n function isYear(d) {\n return isMonth(d) && d.getMonth() === 0;\n }\n\n function isDate(obj) {\n return !isNaN(toDate(obj)) && toStr(obj).length >= 6;\n }\n\n function isNumber(obj) {\n return typeof obj === \"number\";\n }\n\n var byteSuffixes = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"];\n\n function formatValue(pre, value, options, axis) {\n pre = pre || \"\";\n if (options.prefix) {\n if (value < 0) {\n value = value * -1;\n pre += \"-\";\n }\n pre += options.prefix;\n }\n\n var suffix = options.suffix || \"\";\n var precision = options.precision;\n var round = options.round;\n\n if (options.byteScale) {\n var suffixIdx;\n var baseValue = axis ? options.byteScale : value;\n\n if (baseValue >= 1152921504606846976) {\n value /= 1152921504606846976;\n suffixIdx = 6;\n } else if (baseValue >= 1125899906842624) {\n value /= 1125899906842624;\n suffixIdx = 5;\n } else if (baseValue >= 1099511627776) {\n value /= 1099511627776;\n suffixIdx = 4;\n } else if (baseValue >= 1073741824) {\n value /= 1073741824;\n suffixIdx = 3;\n } else if (baseValue >= 1048576) {\n value /= 1048576;\n suffixIdx = 2;\n } else if (baseValue >= 1024) {\n value /= 1024;\n suffixIdx = 1;\n } else {\n suffixIdx = 0;\n }\n\n // TODO handle manual precision case\n if (precision === undefined && round === undefined) {\n if (value >= 1023.5) {\n if (suffixIdx < byteSuffixes.length - 1) {\n value = 1.0;\n suffixIdx += 1;\n }\n }\n precision = value >= 1000 ? 4 : 3;\n }\n suffix = \" \" + byteSuffixes[suffixIdx];\n }\n\n if (precision !== undefined && round !== undefined) {\n throw Error(\"Use either round or precision, not both\");\n }\n\n if (!axis) {\n if (precision !== undefined) {\n value = value.toPrecision(precision);\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n\n if (round !== undefined) {\n if (round < 0) {\n var num = Math.pow(10, -1 * round);\n value = parseInt((1.0 * value / num).toFixed(0)) * num;\n } else {\n value = value.toFixed(round);\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n }\n }\n\n if (options.thousands || options.decimal) {\n value = toStr(value);\n var parts = value.split(\".\");\n value = parts[0];\n if (options.thousands) {\n value = value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, options.thousands);\n }\n if (parts.length > 1) {\n value += (options.decimal || \".\") + parts[1];\n }\n }\n\n return pre + value + suffix;\n }\n\n function seriesOption(chart, series, option) {\n if (option in series) {\n return series[option];\n } else if (option in chart.options) {\n return chart.options[option];\n }\n return null;\n }\n\n function allZeros(data) {\n var i, j, d;\n for (i = 0; i < data.length; i++) {\n d = data[i].data;\n for (j = 0; j < d.length; j++) {\n if (d[j][1] != 0) {\n return false;\n }\n }\n }\n return true;\n }\n\n var baseOptions = {\n maintainAspectRatio: false,\n animation: false,\n tooltips: {\n displayColors: false,\n callbacks: {}\n },\n legend: {},\n title: {fontSize: 20, fontColor: \"#333\"}\n };\n\n var defaultOptions = {\n scales: {\n yAxes: [\n {\n ticks: {\n maxTicksLimit: 4\n },\n scaleLabel: {\n fontSize: 16,\n // fontStyle: \"bold\",\n fontColor: \"#333\"\n }\n }\n ],\n xAxes: [\n {\n gridLines: {\n drawOnChartArea: false\n },\n scaleLabel: {\n fontSize: 16,\n // fontStyle: \"bold\",\n fontColor: \"#333\"\n },\n time: {},\n ticks: {}\n }\n ]\n }\n };\n\n // http://there4.io/2012/05/02/google-chart-color-list/\n var defaultColors = [\n \"#3366CC\", \"#DC3912\", \"#FF9900\", \"#109618\", \"#990099\", \"#3B3EAC\", \"#0099C6\",\n \"#DD4477\", \"#66AA00\", \"#B82E2E\", \"#316395\", \"#994499\", \"#22AA99\", \"#AAAA11\",\n \"#6633CC\", \"#E67300\", \"#8B0707\", \"#329262\", \"#5574A6\", \"#651067\"\n ];\n\n var hideLegend = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n options.legend.display = !!legend;\n if (legend && legend !== true) {\n options.legend.position = legend;\n }\n } else if (hideLegend) {\n options.legend.display = false;\n }\n };\n\n var setTitle = function (options, title) {\n options.title.display = true;\n options.title.text = title;\n };\n\n var setMin = function (options, min) {\n if (min !== null) {\n options.scales.yAxes[0].ticks.min = toFloat(min);\n }\n };\n\n var setMax = function (options, max) {\n options.scales.yAxes[0].ticks.max = toFloat(max);\n };\n\n var setBarMin = function (options, min) {\n if (min !== null) {\n options.scales.xAxes[0].ticks.min = toFloat(min);\n }\n };\n\n var setBarMax = function (options, max) {\n options.scales.xAxes[0].ticks.max = toFloat(max);\n };\n\n var setStacked = function (options, stacked) {\n options.scales.xAxes[0].stacked = !!stacked;\n options.scales.yAxes[0].stacked = !!stacked;\n };\n\n var setXtitle = function (options, title) {\n options.scales.xAxes[0].scaleLabel.display = true;\n options.scales.xAxes[0].scaleLabel.labelString = title;\n };\n\n var setYtitle = function (options, title) {\n options.scales.yAxes[0].scaleLabel.display = true;\n options.scales.yAxes[0].scaleLabel.labelString = title;\n };\n\n // https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\n var addOpacity = function(hex, opacity) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? \"rgba(\" + parseInt(result[1], 16) + \", \" + parseInt(result[2], 16) + \", \" + parseInt(result[3], 16) + \", \" + opacity + \")\" : hex;\n };\n\n // check if not null or undefined\n // https://stackoverflow.com/a/27757708/1177228\n var notnull = function(x) {\n return x != null;\n };\n\n var setLabelSize = function (chart, data, options) {\n var maxLabelSize = Math.ceil(chart.element.offsetWidth / 4.0 / data.labels.length);\n if (maxLabelSize > 25) {\n maxLabelSize = 25;\n } else if (maxLabelSize < 10) {\n maxLabelSize = 10;\n }\n if (!options.scales.xAxes[0].ticks.callback) {\n options.scales.xAxes[0].ticks.callback = function (value) {\n value = toStr(value);\n if (value.length > maxLabelSize) {\n return value.substring(0, maxLabelSize - 2) + \"...\";\n } else {\n return value;\n }\n };\n }\n };\n\n var setFormatOptions = function(chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n if (chart.options.bytes) {\n var series = chart.data;\n if (chartType === \"pie\") {\n series = [{data: series}];\n }\n\n // calculate max\n var max = 0;\n for (var i = 0; i < series.length; i++) {\n var s = series[i];\n for (var j = 0; j < s.data.length; j++) {\n if (s.data[j][1] > max) {\n max = s.data[j][1];\n }\n }\n }\n\n // calculate scale\n var scale = 1;\n while (max >= 1024) {\n scale *= 1024;\n max /= 1024;\n }\n\n // set step size\n formatOptions.byteScale = scale;\n }\n\n if (chartType !== \"pie\") {\n var myAxes = options.scales.yAxes;\n if (chartType === \"bar\") {\n myAxes = options.scales.xAxes;\n }\n\n if (formatOptions.byteScale) {\n if (!myAxes[0].ticks.stepSize) {\n myAxes[0].ticks.stepSize = formatOptions.byteScale / 2;\n }\n if (!myAxes[0].ticks.maxTicksLimit) {\n myAxes[0].ticks.maxTicksLimit = 4;\n }\n }\n\n if (!myAxes[0].ticks.callback) {\n myAxes[0].ticks.callback = function (value) {\n return formatValue(\"\", value, formatOptions, true);\n };\n }\n }\n\n if (!options.tooltips.callbacks.label) {\n if (chartType === \"scatter\") {\n options.tooltips.callbacks.label = function (item, data) {\n var label = data.datasets[item.datasetIndex].label || '';\n if (label) {\n label += ': ';\n }\n return label + '(' + item.xLabel + ', ' + item.yLabel + ')';\n };\n } else if (chartType === \"bubble\") {\n options.tooltips.callbacks.label = function (item, data) {\n var label = data.datasets[item.datasetIndex].label || '';\n if (label) {\n label += ': ';\n }\n var dataPoint = data.datasets[item.datasetIndex].data[item.index];\n return label + '(' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.v + ')';\n };\n } else if (chartType === \"pie\") {\n // need to use separate label for pie charts\n options.tooltips.callbacks.label = function (tooltipItem, data) {\n var dataLabel = data.labels[tooltipItem.index];\n var value = ': ';\n\n if (isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return formatValue(dataLabel, data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index], formatOptions);\n };\n } else {\n var valueLabel = chartType === \"bar\" ? \"xLabel\" : \"yLabel\";\n options.tooltips.callbacks.label = function (tooltipItem, data) {\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n if (label) {\n label += ': ';\n }\n return formatValue(label, tooltipItem[valueLabel], formatOptions);\n };\n }\n }\n };\n\n var jsOptions = jsOptionsFunc(merge(baseOptions, defaultOptions), hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle);\n\n var createDataTable = function (chart, options, chartType, library) {\n var datasets = [];\n var labels = [];\n\n var colors = chart.options.colors || defaultColors;\n\n var day = true;\n var week = true;\n var dayOfWeek;\n var month = true;\n var year = true;\n var hour = true;\n var minute = true;\n\n var series = chart.data;\n\n var max = 0;\n if (chartType === \"bubble\") {\n for (var i$1 = 0; i$1 < series.length; i$1++) {\n var s$1 = series[i$1];\n for (var j$1 = 0; j$1 < s$1.data.length; j$1++) {\n if (s$1.data[j$1][2] > max) {\n max = s$1.data[j$1][2];\n }\n }\n }\n }\n\n var i, j, s, d, key, rows = [], rows2 = [];\n\n if (chartType === \"bar\" || chartType === \"column\" || (chart.xtype !== \"number\" && chart.xtype !== \"bubble\")) {\n var sortedLabels = [];\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = chart.xtype == \"datetime\" ? d[0].getTime() : d[0];\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n }\n rows[key][i] = toFloat(d[1]);\n if (sortedLabels.indexOf(key) === -1) {\n sortedLabels.push(key);\n }\n }\n }\n\n if (chart.xtype === \"datetime\" || chart.xtype === \"number\") {\n sortedLabels.sort(sortByNumber);\n }\n\n for (j = 0; j < series.length; j++) {\n rows2.push([]);\n }\n\n var value;\n var k;\n for (k = 0; k < sortedLabels.length; k++) {\n i = sortedLabels[k];\n if (chart.xtype === \"datetime\") {\n value = new Date(toFloat(i));\n // TODO make this efficient\n day = day && isDay(value);\n if (!dayOfWeek) {\n dayOfWeek = value.getDay();\n }\n week = week && isWeek(value, dayOfWeek);\n month = month && isMonth(value);\n year = year && isYear(value);\n hour = hour && isHour(value);\n minute = minute && isMinute(value);\n } else {\n value = i;\n }\n labels.push(value);\n for (j = 0; j < series.length; j++) {\n // Chart.js doesn't like undefined\n rows2[j].push(rows[i][j] === undefined ? null : rows[i][j]);\n }\n }\n } else {\n for (var i$2 = 0; i$2 < series.length; i$2++) {\n var s$2 = series[i$2];\n var d$1 = [];\n for (var j$2 = 0; j$2 < s$2.data.length; j$2++) {\n var point = {\n x: toFloat(s$2.data[j$2][0]),\n y: toFloat(s$2.data[j$2][1])\n };\n if (chartType === \"bubble\") {\n point.r = toFloat(s$2.data[j$2][2]) * 20 / max;\n // custom attribute, for tooltip\n point.v = s$2.data[j$2][2];\n }\n d$1.push(point);\n }\n rows2.push(d$1);\n }\n }\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n var color = s.color || colors[i];\n var backgroundColor = chartType !== \"line\" ? addOpacity(color, 0.5) : color;\n\n var dataset = {\n label: s.name || \"\",\n data: rows2[i],\n fill: chartType === \"area\",\n borderColor: color,\n backgroundColor: backgroundColor,\n pointBackgroundColor: color,\n borderWidth: 2,\n pointHoverBackgroundColor: color\n };\n\n if (s.stack) {\n dataset.stack = s.stack;\n }\n\n var curve = seriesOption(chart, s, \"curve\");\n if (curve === false) {\n dataset.lineTension = 0;\n }\n\n var points = seriesOption(chart, s, \"points\");\n if (points === false) {\n dataset.pointRadius = 0;\n dataset.pointHitRadius = 5;\n }\n\n dataset = merge(dataset, chart.options.dataset || {});\n dataset = merge(dataset, s.library || {});\n dataset = merge(dataset, s.dataset || {});\n\n datasets.push(dataset);\n }\n\n var xmin = chart.options.xmin;\n var xmax = chart.options.xmax;\n\n if (chart.xtype === \"datetime\") {\n // hacky check for Chart.js >= 2.9.0\n // https://github.com/chartjs/Chart.js/compare/v2.8.0...v2.9.0\n var gte29 = \"math\" in library.helpers;\n var ticksKey = gte29 ? \"ticks\" : \"time\";\n if (notnull(xmin)) {\n options.scales.xAxes[0][ticksKey].min = toDate(xmin).getTime();\n }\n if (notnull(xmax)) {\n options.scales.xAxes[0][ticksKey].max = toDate(xmax).getTime();\n }\n } else if (chart.xtype === \"number\") {\n if (notnull(xmin)) {\n options.scales.xAxes[0].ticks.min = xmin;\n }\n if (notnull(xmax)) {\n options.scales.xAxes[0].ticks.max = xmax;\n }\n }\n\n // for empty datetime chart\n if (chart.xtype === \"datetime\" && labels.length === 0) {\n if (notnull(xmin)) {\n labels.push(toDate(xmin));\n }\n if (notnull(xmax)) {\n labels.push(toDate(xmax));\n }\n day = false;\n week = false;\n month = false;\n year = false;\n hour = false;\n minute = false;\n }\n\n if (chart.xtype === \"datetime\" && labels.length > 0) {\n var minTime = (notnull(xmin) ? toDate(xmin) : labels[0]).getTime();\n var maxTime = (notnull(xmax) ? toDate(xmax) : labels[0]).getTime();\n\n for (i = 1; i < labels.length; i++) {\n var value$1 = labels[i].getTime();\n if (value$1 < minTime) {\n minTime = value$1;\n }\n if (value$1 > maxTime) {\n maxTime = value$1;\n }\n }\n\n var timeDiff = (maxTime - minTime) / (86400 * 1000.0);\n\n if (!options.scales.xAxes[0].time.unit) {\n var step;\n if (year || timeDiff > 365 * 10) {\n options.scales.xAxes[0].time.unit = \"year\";\n step = 365;\n } else if (month || timeDiff > 30 * 10) {\n options.scales.xAxes[0].time.unit = \"month\";\n step = 30;\n } else if (day || timeDiff > 10) {\n options.scales.xAxes[0].time.unit = \"day\";\n step = 1;\n } else if (hour || timeDiff > 0.5) {\n options.scales.xAxes[0].time.displayFormats = {hour: \"MMM D, h a\"};\n options.scales.xAxes[0].time.unit = \"hour\";\n step = 1 / 24.0;\n } else if (minute) {\n options.scales.xAxes[0].time.displayFormats = {minute: \"h:mm a\"};\n options.scales.xAxes[0].time.unit = \"minute\";\n step = 1 / 24.0 / 60.0;\n }\n\n if (step && timeDiff > 0) {\n var unitStepSize = Math.ceil(timeDiff / step / (chart.element.offsetWidth / 100.0));\n if (week && step === 1) {\n unitStepSize = Math.ceil(unitStepSize / 7.0) * 7;\n }\n options.scales.xAxes[0].time.unitStepSize = unitStepSize;\n }\n }\n\n if (!options.scales.xAxes[0].time.tooltipFormat) {\n if (day) {\n options.scales.xAxes[0].time.tooltipFormat = \"ll\";\n } else if (hour) {\n options.scales.xAxes[0].time.tooltipFormat = \"MMM D, h a\";\n } else if (minute) {\n options.scales.xAxes[0].time.tooltipFormat = \"h:mm a\";\n }\n }\n }\n\n var data = {\n labels: labels,\n datasets: datasets\n };\n\n return data;\n };\n\n var defaultExport = function defaultExport(library) {\n this.name = \"chartjs\";\n this.library = library;\n };\n\n defaultExport.prototype.renderLineChart = function renderLineChart (chart, chartType) {\n var chartOptions = {};\n // fix for https://github.com/chartjs/Chart.js/issues/2441\n if (!chart.options.max && allZeros(chart.data)) {\n chartOptions.max = 1;\n }\n\n var options = jsOptions(chart, merge(chartOptions, chart.options));\n setFormatOptions(chart, options, chartType);\n\n var data = createDataTable(chart, options, chartType || \"line\", this.library);\n\n if (chart.xtype === \"number\") {\n options.scales.xAxes[0].type = \"linear\";\n options.scales.xAxes[0].position = \"bottom\";\n } else {\n options.scales.xAxes[0].type = chart.xtype === \"string\" ? \"category\" : \"time\";\n }\n\n this.drawChart(chart, \"line\", data, options);\n };\n\n defaultExport.prototype.renderPieChart = function renderPieChart (chart) {\n var options = merge({}, baseOptions);\n if (chart.options.donut) {\n options.cutoutPercentage = 50;\n }\n\n if (\"legend\" in chart.options) {\n hideLegend(options, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle(options, chart.options.title);\n }\n\n options = merge(options, chart.options.library || {});\n setFormatOptions(chart, options, \"pie\");\n\n var labels = [];\n var values = [];\n for (var i = 0; i < chart.data.length; i++) {\n var point = chart.data[i];\n labels.push(point[0]);\n values.push(point[1]);\n }\n\n var dataset = {\n data: values,\n backgroundColor: chart.options.colors || defaultColors\n };\n dataset = merge(dataset, chart.options.dataset || {});\n\n var data = {\n labels: labels,\n datasets: [dataset]\n };\n\n this.drawChart(chart, \"pie\", data, options);\n };\n\n defaultExport.prototype.renderColumnChart = function renderColumnChart (chart, chartType) {\n var options;\n if (chartType === \"bar\") {\n var barOptions = merge(baseOptions, defaultOptions);\n delete barOptions.scales.yAxes[0].ticks.maxTicksLimit;\n options = jsOptionsFunc(barOptions, hideLegend, setTitle, setBarMin, setBarMax, setStacked, setXtitle, setYtitle)(chart, chart.options);\n } else {\n options = jsOptions(chart, chart.options);\n }\n setFormatOptions(chart, options, chartType);\n var data = createDataTable(chart, options, \"column\", this.library);\n if (chartType !== \"bar\") {\n setLabelSize(chart, data, options);\n }\n this.drawChart(chart, (chartType === \"bar\" ? \"horizontalBar\" : \"bar\"), data, options);\n };\n\n defaultExport.prototype.renderAreaChart = function renderAreaChart (chart) {\n this.renderLineChart(chart, \"area\");\n };\n\n defaultExport.prototype.renderBarChart = function renderBarChart (chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport.prototype.renderScatterChart = function renderScatterChart (chart, chartType) {\n chartType = chartType || \"scatter\";\n\n var options = jsOptions(chart, chart.options);\n setFormatOptions(chart, options, chartType);\n\n if (!(\"showLines\" in options)) {\n options.showLines = false;\n }\n\n var data = createDataTable(chart, options, chartType, this.library);\n\n options.scales.xAxes[0].type = \"linear\";\n options.scales.xAxes[0].position = \"bottom\";\n\n this.drawChart(chart, chartType, data, options);\n };\n\n defaultExport.prototype.renderBubbleChart = function renderBubbleChart (chart) {\n this.renderScatterChart(chart, \"bubble\");\n };\n\n defaultExport.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport.prototype.drawChart = function drawChart (chart, type, data, options) {\n this.destroy(chart);\n\n var chartOptions = {\n type: type,\n data: data,\n options: options\n };\n\n if (chart.options.code) {\n window.console.log(\"new Chart(ctx, \" + JSON.stringify(chartOptions) + \");\");\n }\n\n chart.element.innerHTML = \"\";\n var ctx = chart.element.getElementsByTagName(\"CANVAS\")[0];\n chart.chart = new this.library(ctx, chartOptions);\n };\n\n var defaultOptions$1 = {\n chart: {},\n xAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n yAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n title: {\n text: null\n },\n credits: {\n enabled: false\n },\n legend: {\n borderWidth: 0\n },\n tooltip: {\n style: {\n fontSize: \"12px\"\n }\n },\n plotOptions: {\n areaspline: {},\n area: {},\n series: {\n marker: {}\n }\n }\n };\n\n var hideLegend$1 = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n options.legend.enabled = !!legend;\n if (legend && legend !== true) {\n if (legend === \"top\" || legend === \"bottom\") {\n options.legend.verticalAlign = legend;\n } else {\n options.legend.layout = \"vertical\";\n options.legend.verticalAlign = \"middle\";\n options.legend.align = legend;\n }\n }\n } else if (hideLegend) {\n options.legend.enabled = false;\n }\n };\n\n var setTitle$1 = function (options, title) {\n options.title.text = title;\n };\n\n var setMin$1 = function (options, min) {\n options.yAxis.min = min;\n };\n\n var setMax$1 = function (options, max) {\n options.yAxis.max = max;\n };\n\n var setStacked$1 = function (options, stacked) {\n var stackedValue = stacked ? (stacked === true ? \"normal\" : stacked) : null;\n options.plotOptions.series.stacking = stackedValue;\n options.plotOptions.area.stacking = stackedValue;\n options.plotOptions.areaspline.stacking = stackedValue;\n };\n\n var setXtitle$1 = function (options, title) {\n options.xAxis.title.text = title;\n };\n\n var setYtitle$1 = function (options, title) {\n options.yAxis.title.text = title;\n };\n\n var jsOptions$1 = jsOptionsFunc(defaultOptions$1, hideLegend$1, setTitle$1, setMin$1, setMax$1, setStacked$1, setXtitle$1, setYtitle$1);\n\n var setFormatOptions$1 = function(chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n if (chartType !== \"pie\" && !options.yAxis.labels.formatter) {\n options.yAxis.labels.formatter = function () {\n return formatValue(\"\", this.value, formatOptions);\n };\n }\n\n if (!options.tooltip.pointFormatter) {\n options.tooltip.pointFormatter = function () {\n return '\\u25CF ' + formatValue(this.series.name + ': ', this.y, formatOptions) + '
';\n };\n }\n };\n\n var defaultExport$1 = function defaultExport(library) {\n this.name = \"highcharts\";\n this.library = library;\n };\n\n defaultExport$1.prototype.renderLineChart = function renderLineChart (chart, chartType) {\n chartType = chartType || \"spline\";\n var chartOptions = {};\n if (chartType === \"areaspline\") {\n chartOptions = {\n plotOptions: {\n areaspline: {\n stacking: \"normal\"\n },\n area: {\n stacking: \"normal\"\n },\n series: {\n marker: {\n enabled: false\n }\n }\n }\n };\n }\n\n if (chart.options.curve === false) {\n if (chartType === \"areaspline\") {\n chartType = \"area\";\n } else if (chartType === \"spline\") {\n chartType = \"line\";\n }\n }\n\n var options = jsOptions$1(chart, chart.options, chartOptions), data, i, j;\n options.xAxis.type = chart.xtype === \"string\" ? \"category\" : (chart.xtype === \"number\" ? \"linear\" : \"datetime\");\n if (!options.chart.type) {\n options.chart.type = chartType;\n }\n setFormatOptions$1(chart, options, chartType);\n\n var series = chart.data;\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n data = series[i].data;\n if (chart.xtype === \"datetime\") {\n for (j = 0; j < data.length; j++) {\n data[j][0] = data[j][0].getTime();\n }\n }\n series[i].marker = {symbol: \"circle\"};\n if (chart.options.points === false) {\n series[i].marker.enabled = false;\n }\n }\n\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderScatterChart = function renderScatterChart (chart) {\n var options = jsOptions$1(chart, chart.options, {});\n options.chart.type = \"scatter\";\n this.drawChart(chart, chart.data, options);\n };\n\n defaultExport$1.prototype.renderPieChart = function renderPieChart (chart) {\n var chartOptions = merge(defaultOptions$1, {});\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n if (chart.options.donut) {\n chartOptions.plotOptions = {pie: {innerSize: \"50%\"}};\n }\n\n if (\"legend\" in chart.options) {\n hideLegend$1(chartOptions, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle$1(chartOptions, chart.options.title);\n }\n\n var options = merge(chartOptions, chart.options.library || {});\n setFormatOptions$1(chart, options, \"pie\");\n var series = [{\n type: \"pie\",\n name: chart.options.label || \"Value\",\n data: chart.data\n }];\n\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderColumnChart = function renderColumnChart (chart, chartType) {\n chartType = chartType || \"column\";\n var series = chart.data;\n var options = jsOptions$1(chart, chart.options), i, j, s, d, rows = [], categories = [];\n options.chart.type = chartType;\n setFormatOptions$1(chart, options, chartType);\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n if (!rows[d[0]]) {\n rows[d[0]] = new Array(series.length);\n categories.push(d[0]);\n }\n rows[d[0]][i] = d[1];\n }\n }\n\n if (chart.xtype === \"number\") {\n categories.sort(sortByNumber);\n }\n\n options.xAxis.categories = categories;\n\n var newSeries = [], d2;\n for (i = 0; i < series.length; i++) {\n d = [];\n for (j = 0; j < categories.length; j++) {\n d.push(rows[categories[j]][i] || 0);\n }\n\n d2 = {\n name: series[i].name || \"Value\",\n data: d\n };\n if (series[i].stack) {\n d2.stack = series[i].stack;\n }\n\n newSeries.push(d2);\n }\n\n this.drawChart(chart, newSeries, options);\n };\n\n defaultExport$1.prototype.renderBarChart = function renderBarChart (chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport$1.prototype.renderAreaChart = function renderAreaChart (chart) {\n this.renderLineChart(chart, \"areaspline\");\n };\n\n defaultExport$1.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport$1.prototype.drawChart = function drawChart (chart, data, options) {\n this.destroy(chart);\n\n options.chart.renderTo = chart.element.id;\n options.series = data;\n\n if (chart.options.code) {\n window.console.log(\"new Highcharts.Chart(\" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.Chart(options);\n };\n\n var loaded = {};\n var callbacks = [];\n\n // Set chart options\n var defaultOptions$2 = {\n chartArea: {},\n fontName: \"'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif\",\n pointSize: 6,\n legend: {\n textStyle: {\n fontSize: 12,\n color: \"#444\"\n },\n alignment: \"center\",\n position: \"right\"\n },\n curveType: \"function\",\n hAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n gridlines: {\n color: \"transparent\"\n },\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n vAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n tooltip: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n }\n }\n };\n\n var hideLegend$2 = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n var position;\n if (!legend) {\n position = \"none\";\n } else if (legend === true) {\n position = \"right\";\n } else {\n position = legend;\n }\n options.legend.position = position;\n } else if (hideLegend) {\n options.legend.position = \"none\";\n }\n };\n\n var setTitle$2 = function (options, title) {\n options.title = title;\n options.titleTextStyle = {color: \"#333\", fontSize: \"20px\"};\n };\n\n var setMin$2 = function (options, min) {\n options.vAxis.viewWindow.min = min;\n };\n\n var setMax$2 = function (options, max) {\n options.vAxis.viewWindow.max = max;\n };\n\n var setBarMin$1 = function (options, min) {\n options.hAxis.viewWindow.min = min;\n };\n\n var setBarMax$1 = function (options, max) {\n options.hAxis.viewWindow.max = max;\n };\n\n var setStacked$2 = function (options, stacked) {\n options.isStacked = stacked ? stacked : false;\n };\n\n var setXtitle$2 = function (options, title) {\n options.hAxis.title = title;\n options.hAxis.titleTextStyle.italic = false;\n };\n\n var setYtitle$2 = function (options, title) {\n options.vAxis.title = title;\n options.vAxis.titleTextStyle.italic = false;\n };\n\n var jsOptions$2 = jsOptionsFunc(defaultOptions$2, hideLegend$2, setTitle$2, setMin$2, setMax$2, setStacked$2, setXtitle$2, setYtitle$2);\n\n var resize = function (callback) {\n if (window.attachEvent) {\n window.attachEvent(\"onresize\", callback);\n } else if (window.addEventListener) {\n window.addEventListener(\"resize\", callback, true);\n }\n callback();\n };\n\n var defaultExport$2 = function defaultExport(library) {\n this.name = \"google\";\n this.library = library;\n };\n\n defaultExport$2.prototype.renderLineChart = function renderLineChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n\n if (chart.options.curve === false) {\n chartOptions.curveType = \"none\";\n }\n\n if (chart.options.points === false) {\n chartOptions.pointSize = 0;\n }\n\n var options = jsOptions$2(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n\n this$1.drawChart(chart, \"LineChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderPieChart = function renderPieChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n chartArea: {\n top: \"10%\",\n height: \"80%\"\n },\n legend: {}\n };\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n if (chart.options.donut) {\n chartOptions.pieHole = 0.5;\n }\n if (\"legend\" in chart.options) {\n hideLegend$2(chartOptions, chart.options.legend);\n }\n if (chart.options.title) {\n setTitle$2(chartOptions, chart.options.title);\n }\n var options = merge(merge(defaultOptions$2, chartOptions), chart.options.library || {});\n\n var data = new this$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", \"Value\");\n data.addRows(chart.data);\n\n this$1.drawChart(chart, \"PieChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderColumnChart = function renderColumnChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var options = jsOptions$2(chart, chart.options);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n\n this$1.drawChart(chart, \"ColumnChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderBarChart = function renderBarChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n hAxis: {\n gridlines: {\n color: \"#ccc\"\n }\n }\n };\n var options = jsOptionsFunc(defaultOptions$2, hideLegend$2, setTitle$2, setBarMin$1, setBarMax$1, setStacked$2, setXtitle$2, setYtitle$2)(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n\n this$1.drawChart(chart, \"BarChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderAreaChart = function renderAreaChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n isStacked: true,\n pointSize: 0,\n areaOpacity: 0.5\n };\n\n var options = jsOptions$2(chart, chart.options, chartOptions);\n var data = this$1.createDataTable(chart.data, chart.xtype);\n\n this$1.drawChart(chart, \"AreaChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderGeoChart = function renderGeoChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, \"geochart\", function () {\n var chartOptions = {\n legend: \"none\",\n colorAxis: {\n colors: chart.options.colors || [\"#f6c7b6\", \"#ce502d\"]\n }\n };\n var options = merge(merge(defaultOptions$2, chartOptions), chart.options.library || {});\n\n var data = new this$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", chart.options.label || \"Value\");\n data.addRows(chart.data);\n\n this$1.drawChart(chart, \"GeoChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderScatterChart = function renderScatterChart (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n var options = jsOptions$2(chart, chart.options, chartOptions);\n\n var series = chart.data, rows2 = [], i, j, data, d;\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n d = series[i].data;\n for (j = 0; j < d.length; j++) {\n var row = new Array(series.length + 1);\n row[0] = d[j][0];\n row[i + 1] = d[j][1];\n rows2.push(row);\n }\n }\n\n data = new this$1.library.visualization.DataTable();\n data.addColumn(\"number\", \"\");\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n data.addRows(rows2);\n\n this$1.drawChart(chart, \"ScatterChart\", data, options);\n });\n };\n\n defaultExport$2.prototype.renderTimeline = function renderTimeline (chart) {\n var this$1 = this;\n\n this.waitForLoaded(chart, \"timeline\", function () {\n var chartOptions = {\n legend: \"none\"\n };\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n var options = merge(merge(defaultOptions$2, chartOptions), chart.options.library || {});\n\n var data = new this$1.library.visualization.DataTable();\n data.addColumn({type: \"string\", id: \"Name\"});\n data.addColumn({type: \"date\", id: \"Start\"});\n data.addColumn({type: \"date\", id: \"End\"});\n data.addRows(chart.data);\n\n chart.element.style.lineHeight = \"normal\";\n\n this$1.drawChart(chart, \"Timeline\", data, options);\n });\n };\n\n defaultExport$2.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.clearChart();\n }\n };\n\n defaultExport$2.prototype.drawChart = function drawChart (chart, type, data, options) {\n this.destroy(chart);\n\n if (chart.options.code) {\n window.console.log(\"var data = new google.visualization.DataTable(\" + data.toJSON() + \");\\nvar chart = new google.visualization.\" + type + \"(element);\\nchart.draw(data, \" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.visualization[type](chart.element);\n resize(function () {\n chart.chart.draw(data, options);\n });\n };\n\n defaultExport$2.prototype.waitForLoaded = function waitForLoaded (chart, pack, callback) {\n var this$1 = this;\n\n if (!callback) {\n callback = pack;\n pack = \"corechart\";\n }\n\n callbacks.push({pack: pack, callback: callback});\n\n if (loaded[pack]) {\n this.runCallbacks();\n } else {\n loaded[pack] = true;\n\n // https://groups.google.com/forum/#!topic/google-visualization-api/fMKJcyA2yyI\n var loadOptions = {\n packages: [pack],\n callback: function () { this$1.runCallbacks(); }\n };\n var config = chart.__config();\n if (config.language) {\n loadOptions.language = config.language;\n }\n if (pack === \"geochart\" && config.mapsApiKey) {\n loadOptions.mapsApiKey = config.mapsApiKey;\n }\n\n this.library.charts.load(\"current\", loadOptions);\n }\n };\n\n defaultExport$2.prototype.runCallbacks = function runCallbacks () {\n var cb, call;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n call = this.library.visualization && ((cb.pack === \"corechart\" && this.library.visualization.LineChart) || (cb.pack === \"timeline\" && this.library.visualization.Timeline) || (cb.pack === \"geochart\" && this.library.visualization.GeoChart));\n if (call) {\n cb.callback();\n callbacks.splice(i, 1);\n i--;\n }\n }\n };\n\n // cant use object as key\n defaultExport$2.prototype.createDataTable = function createDataTable (series, columnType) {\n var i, j, s, d, key, rows = [], sortedLabels = [];\n for (i = 0; i < series.length; i++) {\n s = series[i];\n series[i].name = series[i].name || \"Value\";\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = (columnType === \"datetime\") ? d[0].getTime() : d[0];\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n sortedLabels.push(key);\n }\n rows[key][i] = toFloat(d[1]);\n }\n }\n\n var rows2 = [];\n var day = true;\n var value;\n for (j = 0; j < sortedLabels.length; j++) {\n i = sortedLabels[j];\n if (columnType === \"datetime\") {\n value = new Date(toFloat(i));\n day = day && isDay(value);\n } else if (columnType === \"number\") {\n value = toFloat(i);\n } else {\n value = i;\n }\n rows2.push([value].concat(rows[i]));\n }\n if (columnType === \"datetime\") {\n rows2.sort(sortByTime);\n } else if (columnType === \"number\") {\n rows2.sort(sortByNumberSeries);\n\n for (i = 0; i < rows2.length; i++) {\n rows2[i][0] = toStr(rows2[i][0]);\n }\n\n columnType = \"string\";\n }\n\n // create datatable\n var data = new this.library.visualization.DataTable();\n columnType = columnType === \"datetime\" && day ? \"date\" : columnType;\n data.addColumn(columnType, \"\");\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n data.addRows(rows2);\n\n return data;\n };\n\n var pendingRequests = [], runningRequests = 0, maxRequests = 4;\n\n function pushRequest(url, success, error) {\n pendingRequests.push([url, success, error]);\n runNext();\n }\n\n function runNext() {\n if (runningRequests < maxRequests) {\n var request = pendingRequests.shift();\n if (request) {\n runningRequests++;\n getJSON(request[0], request[1], request[2]);\n runNext();\n }\n }\n }\n\n function requestComplete() {\n runningRequests--;\n runNext();\n }\n\n function getJSON(url, success, error) {\n ajaxCall(url, success, function (jqXHR, textStatus, errorThrown) {\n var message = (typeof errorThrown === \"string\") ? errorThrown : errorThrown.message;\n error(message);\n });\n }\n\n function ajaxCall(url, success, error) {\n var $ = window.jQuery || window.Zepto || window.$;\n\n if ($ && $.ajax) {\n $.ajax({\n dataType: \"json\",\n url: url,\n success: success,\n error: error,\n complete: requestComplete\n });\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.onload = function () {\n requestComplete();\n if (xhr.status === 200) {\n success(JSON.parse(xhr.responseText), xhr.statusText, xhr);\n } else {\n error(xhr, \"error\", xhr.statusText);\n }\n };\n xhr.send();\n }\n }\n\n var config = {};\n var adapters = [];\n\n // helpers\n\n function setText(element, text) {\n if (document.body.innerText) {\n element.innerText = text;\n } else {\n element.textContent = text;\n }\n }\n\n // TODO remove prefix for all messages\n function chartError(element, message, noPrefix) {\n if (!noPrefix) {\n message = \"Error Loading Chart: \" + message;\n }\n setText(element, message);\n element.style.color = \"#ff0000\";\n }\n\n function errorCatcher(chart) {\n try {\n chart.__render();\n } catch (err) {\n chartError(chart.element, err.message);\n throw err;\n }\n }\n\n function fetchDataSource(chart, dataSource) {\n if (typeof dataSource === \"string\") {\n pushRequest(dataSource, function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message);\n });\n } else if (typeof dataSource === \"function\") {\n try {\n dataSource(function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message, true);\n });\n } catch (err) {\n chartError(chart.element, err, true);\n }\n } else {\n chart.rawData = dataSource;\n errorCatcher(chart);\n }\n }\n\n function addDownloadButton(chart) {\n var element = chart.element;\n var link = document.createElement(\"a\");\n\n var download = chart.options.download;\n if (download === true) {\n download = {};\n } else if (typeof download === \"string\") {\n download = {filename: download};\n }\n link.download = download.filename || \"chart.png\"; // https://caniuse.com/download\n\n link.style.position = \"absolute\";\n link.style.top = \"20px\";\n link.style.right = \"20px\";\n link.style.zIndex = 1000;\n link.style.lineHeight = \"20px\";\n link.target = \"_blank\"; // for safari\n var image = document.createElement(\"img\");\n image.alt = \"Download\";\n image.style.border = \"none\";\n // icon from font-awesome\n // http://fa2png.io/\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAABCFBMVEUAAADMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMywEsqxAAAAV3RSTlMAAQIDBggJCgsMDQ4PERQaHB0eISIjJCouLzE0OTo/QUJHSUpLTU5PUllhYmltcHh5foWLjI+SlaCio6atr7S1t7m6vsHHyM7R2tze5Obo7fHz9ff5+/1hlxK2AAAA30lEQVQYGUXBhVYCQQBA0TdYWAt2d3d3YWAHyur7/z9xgD16Lw0DW+XKx+1GgX+FRzM3HWQWrHl5N/oapW5RPe0PkBu+UYeICvozTWZVK23Ao04B79oJrOsJDOoxkZoQPWgX29pHpCZEk7rEvQYiNSFq1UMqvlCjJkRBS1R8hb00Vb/TajtBL7nTHE1X1vyMQF732dQhyF2o6SAwrzP06iUQzvwsArlnzcOdrgBhJyHa1QOgO9U1GsKuvjUTjavliZYQ8nNPapG6sap/3nrIdJ6bOWzmX/fy0XVpfzZP3S8OJT3g9EEiJwAAAABJRU5ErkJggg==\";\n link.appendChild(image);\n element.style.position = \"relative\";\n\n chart.__downloadAttached = true;\n\n // mouseenter\n chart.__enterEvent = addEvent(element, \"mouseover\", function(e) {\n var related = e.relatedTarget;\n // check download option again to ensure it wasn't changed\n if ((!related || (related !== this && !childOf(this, related))) && chart.options.download) {\n link.href = chart.toImage(download);\n element.appendChild(link);\n }\n });\n\n // mouseleave\n chart.__leaveEvent = addEvent(element, \"mouseout\", function(e) {\n var related = e.relatedTarget;\n if (!related || (related !== this && !childOf(this, related))) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n }\n });\n }\n\n // https://stackoverflow.com/questions/10149963/adding-event-listener-cross-browser\n function addEvent(elem, event, fn) {\n if (elem.addEventListener) {\n elem.addEventListener(event, fn, false);\n return fn;\n } else {\n var fn2 = function() {\n // set the this pointer same as addEventListener when fn is called\n return(fn.call(elem, window.event));\n };\n elem.attachEvent(\"on\" + event, fn2);\n return fn2;\n }\n }\n\n function removeEvent(elem, event, fn) {\n if (elem.removeEventListener) {\n elem.removeEventListener(event, fn, false);\n } else {\n elem.detachEvent(\"on\" + event, fn);\n }\n }\n\n // https://gist.github.com/shawnbot/4166283\n function childOf(p, c) {\n if (p === c) { return false; }\n while (c && c !== p) { c = c.parentNode; }\n return c === p;\n }\n\n function getAdapterType(library) {\n if (library) {\n if (library.product === \"Highcharts\") {\n return defaultExport$1;\n } else if (library.charts) {\n return defaultExport$2;\n } else if (isFunction(library)) {\n return defaultExport;\n }\n }\n throw new Error(\"Unknown adapter\");\n }\n\n function addAdapter(library) {\n var adapterType = getAdapterType(library);\n var adapter = new adapterType(library);\n\n if (adapters.indexOf(adapter) === -1) {\n adapters.push(adapter);\n }\n }\n\n function loadAdapters() {\n if (\"Chart\" in window) {\n addAdapter(window.Chart);\n }\n\n if (\"Highcharts\" in window) {\n addAdapter(window.Highcharts);\n }\n\n if (window.google && window.google.charts) {\n addAdapter(window.google);\n }\n }\n\n function dataEmpty(data, chartType) {\n if (chartType === \"PieChart\" || chartType === \"GeoChart\" || chartType === \"Timeline\") {\n return data.length === 0;\n } else {\n for (var i = 0; i < data.length; i++) {\n if (data[i].data.length > 0) {\n return false;\n }\n }\n return true;\n }\n }\n\n function renderChart(chartType, chart) {\n if (chart.options.messages && chart.options.messages.empty && dataEmpty(chart.data, chartType)) {\n setText(chart.element, chart.options.messages.empty);\n } else {\n callAdapter(chartType, chart);\n if (chart.options.download && !chart.__downloadAttached && chart.adapter === \"chartjs\") {\n addDownloadButton(chart);\n }\n }\n }\n\n // TODO remove chartType if cross-browser way\n // to get the name of the chart class\n function callAdapter(chartType, chart) {\n var i, adapter, fnName, adapterName;\n fnName = \"render\" + chartType;\n adapterName = chart.options.adapter;\n\n loadAdapters();\n\n for (i = 0; i < adapters.length; i++) {\n adapter = adapters[i];\n if ((!adapterName || adapterName === adapter.name) && isFunction(adapter[fnName])) {\n chart.adapter = adapter.name;\n chart.__adapterObject = adapter;\n return adapter[fnName](chart);\n }\n }\n\n if (adapters.length > 0) {\n throw new Error(\"No charting library found for \" + chartType);\n } else {\n throw new Error(\"No charting libraries found - be sure to include one before your charts\");\n }\n }\n\n // process data\n\n var toFormattedKey = function (key, keyType) {\n if (keyType === \"number\") {\n key = toFloat(key);\n } else if (keyType === \"datetime\") {\n key = toDate(key);\n } else {\n key = toStr(key);\n }\n return key;\n };\n\n var formatSeriesData = function (data, keyType) {\n var r = [], key, j;\n for (j = 0; j < data.length; j++) {\n if (keyType === \"bubble\") {\n r.push([toFloat(data[j][0]), toFloat(data[j][1]), toFloat(data[j][2])]);\n } else {\n key = toFormattedKey(data[j][0], keyType);\n r.push([key, toFloat(data[j][1])]);\n }\n }\n if (keyType === \"datetime\") {\n r.sort(sortByTime);\n } else if (keyType === \"number\") {\n r.sort(sortByNumberSeries);\n }\n return r;\n };\n\n function detectXType(series, noDatetime, options) {\n if (dataEmpty(series)) {\n if ((options.xmin || options.xmax) && (!options.xmin || isDate(options.xmin)) && (!options.xmax || isDate(options.xmax))) {\n return \"datetime\";\n } else {\n return \"number\";\n }\n } else if (detectXTypeWithFunction(series, isNumber)) {\n return \"number\";\n } else if (!noDatetime && detectXTypeWithFunction(series, isDate)) {\n return \"datetime\";\n } else {\n return \"string\";\n }\n }\n\n function detectXTypeWithFunction(series, func) {\n var i, j, data;\n for (i = 0; i < series.length; i++) {\n data = toArr(series[i].data);\n for (j = 0; j < data.length; j++) {\n if (!func(data[j][0])) {\n return false;\n }\n }\n }\n return true;\n }\n\n // creates a shallow copy of each element of the array\n // elements are expected to be objects\n function copySeries(series) {\n var newSeries = [], i, j;\n for (i = 0; i < series.length; i++) {\n var copy = {};\n for (j in series[i]) {\n if (series[i].hasOwnProperty(j)) {\n copy[j] = series[i][j];\n }\n }\n newSeries.push(copy);\n }\n return newSeries;\n }\n\n function processSeries(chart, keyType, noDatetime) {\n var i;\n\n var opts = chart.options;\n var series = chart.rawData;\n\n // see if one series or multiple\n if (!isArray(series) || typeof series[0] !== \"object\" || isArray(series[0])) {\n series = [{name: opts.label, data: series}];\n chart.hideLegend = true;\n } else {\n chart.hideLegend = false;\n }\n\n // convert to array\n // must come before dataEmpty check\n series = copySeries(series);\n for (i = 0; i < series.length; i++) {\n series[i].data = toArr(series[i].data);\n }\n\n chart.xtype = keyType ? keyType : (opts.discrete ? \"string\" : detectXType(series, noDatetime, opts));\n\n // right format\n for (i = 0; i < series.length; i++) {\n series[i].data = formatSeriesData(series[i].data, chart.xtype);\n }\n\n return series;\n }\n\n function processSimple(chart) {\n var perfectData = toArr(chart.rawData), i;\n for (i = 0; i < perfectData.length; i++) {\n perfectData[i] = [toStr(perfectData[i][0]), toFloat(perfectData[i][1])];\n }\n return perfectData;\n }\n\n // define classes\n\n var Chart = function Chart(element, dataSource, options) {\n var elementId;\n if (typeof element === \"string\") {\n elementId = element;\n element = document.getElementById(element);\n if (!element) {\n throw new Error(\"No element with id \" + elementId);\n }\n }\n this.element = element;\n this.options = merge(Chartkick.options, options || {});\n this.dataSource = dataSource;\n\n Chartkick.charts[element.id] = this;\n\n fetchDataSource(this, dataSource);\n\n if (this.options.refresh) {\n this.startRefresh();\n }\n };\n\n Chart.prototype.getElement = function getElement () {\n return this.element;\n };\n\n Chart.prototype.getDataSource = function getDataSource () {\n return this.dataSource;\n };\n\n Chart.prototype.getData = function getData () {\n return this.data;\n };\n\n Chart.prototype.getOptions = function getOptions () {\n return this.options;\n };\n\n Chart.prototype.getChartObject = function getChartObject () {\n return this.chart;\n };\n\n Chart.prototype.getAdapter = function getAdapter () {\n return this.adapter;\n };\n\n Chart.prototype.updateData = function updateData (dataSource, options) {\n this.dataSource = dataSource;\n if (options) {\n this.__updateOptions(options);\n }\n fetchDataSource(this, dataSource);\n };\n\n Chart.prototype.setOptions = function setOptions (options) {\n this.__updateOptions(options);\n this.redraw();\n };\n\n Chart.prototype.redraw = function redraw () {\n fetchDataSource(this, this.rawData);\n };\n\n Chart.prototype.refreshData = function refreshData () {\n if (typeof this.dataSource === \"string\") {\n // prevent browser from caching\n var sep = this.dataSource.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n var url = this.dataSource + sep + \"_=\" + (new Date()).getTime();\n fetchDataSource(this, url);\n } else if (typeof this.dataSource === \"function\") {\n fetchDataSource(this, this.dataSource);\n }\n };\n\n Chart.prototype.startRefresh = function startRefresh () {\n var this$1 = this;\n\n var refresh = this.options.refresh;\n\n if (refresh && typeof this.dataSource !== \"string\" && typeof this.dataSource !== \"function\") {\n throw new Error(\"Data source must be a URL or callback for refresh\");\n }\n\n if (!this.intervalId) {\n if (refresh) {\n this.intervalId = setInterval( function () {\n this$1.refreshData();\n }, refresh * 1000);\n } else {\n throw new Error(\"No refresh interval\");\n }\n }\n };\n\n Chart.prototype.stopRefresh = function stopRefresh () {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n };\n\n Chart.prototype.toImage = function toImage (download) {\n if (this.adapter === \"chartjs\") {\n if (download && download.background && download.background !== \"transparent\") {\n // https://stackoverflow.com/questions/30464750/chartjs-line-chart-set-background-color\n var canvas = this.chart.chart.canvas;\n var ctx = this.chart.chart.ctx;\n var tmpCanvas = document.createElement(\"canvas\");\n var tmpCtx = tmpCanvas.getContext(\"2d\");\n tmpCanvas.width = ctx.canvas.width;\n tmpCanvas.height = ctx.canvas.height;\n tmpCtx.fillStyle = download.background;\n tmpCtx.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);\n tmpCtx.drawImage(canvas, 0, 0);\n return tmpCanvas.toDataURL(\"image/png\");\n } else {\n return this.chart.toBase64Image();\n }\n } else {\n // TODO throw error in next major version\n // throw new Error(\"Feature only available for Chart.js\");\n return null;\n }\n };\n\n Chart.prototype.destroy = function destroy () {\n if (this.__adapterObject) {\n this.__adapterObject.destroy(this);\n }\n\n if (this.__enterEvent) {\n removeEvent(this.element, \"mouseover\", this.__enterEvent);\n }\n\n if (this.__leaveEvent) {\n removeEvent(this.element, \"mouseout\", this.__leaveEvent);\n }\n };\n\n Chart.prototype.__updateOptions = function __updateOptions (options) {\n var updateRefresh = options.refresh && options.refresh !== this.options.refresh;\n this.options = merge(Chartkick.options, options);\n if (updateRefresh) {\n this.stopRefresh();\n this.startRefresh();\n }\n };\n\n Chart.prototype.__render = function __render () {\n this.data = this.__processData();\n renderChart(this.__chartName(), this);\n };\n\n Chart.prototype.__config = function __config () {\n return config;\n };\n\n var LineChart = /*@__PURE__*/(function (Chart) {\n function LineChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) LineChart.__proto__ = Chart;\n LineChart.prototype = Object.create( Chart && Chart.prototype );\n LineChart.prototype.constructor = LineChart;\n\n LineChart.prototype.__processData = function __processData () {\n return processSeries(this);\n };\n\n LineChart.prototype.__chartName = function __chartName () {\n return \"LineChart\";\n };\n\n return LineChart;\n }(Chart));\n\n var PieChart = /*@__PURE__*/(function (Chart) {\n function PieChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) PieChart.__proto__ = Chart;\n PieChart.prototype = Object.create( Chart && Chart.prototype );\n PieChart.prototype.constructor = PieChart;\n\n PieChart.prototype.__processData = function __processData () {\n return processSimple(this);\n };\n\n PieChart.prototype.__chartName = function __chartName () {\n return \"PieChart\";\n };\n\n return PieChart;\n }(Chart));\n\n var ColumnChart = /*@__PURE__*/(function (Chart) {\n function ColumnChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) ColumnChart.__proto__ = Chart;\n ColumnChart.prototype = Object.create( Chart && Chart.prototype );\n ColumnChart.prototype.constructor = ColumnChart;\n\n ColumnChart.prototype.__processData = function __processData () {\n return processSeries(this, null, true);\n };\n\n ColumnChart.prototype.__chartName = function __chartName () {\n return \"ColumnChart\";\n };\n\n return ColumnChart;\n }(Chart));\n\n var BarChart = /*@__PURE__*/(function (Chart) {\n function BarChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) BarChart.__proto__ = Chart;\n BarChart.prototype = Object.create( Chart && Chart.prototype );\n BarChart.prototype.constructor = BarChart;\n\n BarChart.prototype.__processData = function __processData () {\n return processSeries(this, null, true);\n };\n\n BarChart.prototype.__chartName = function __chartName () {\n return \"BarChart\";\n };\n\n return BarChart;\n }(Chart));\n\n var AreaChart = /*@__PURE__*/(function (Chart) {\n function AreaChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) AreaChart.__proto__ = Chart;\n AreaChart.prototype = Object.create( Chart && Chart.prototype );\n AreaChart.prototype.constructor = AreaChart;\n\n AreaChart.prototype.__processData = function __processData () {\n return processSeries(this);\n };\n\n AreaChart.prototype.__chartName = function __chartName () {\n return \"AreaChart\";\n };\n\n return AreaChart;\n }(Chart));\n\n var GeoChart = /*@__PURE__*/(function (Chart) {\n function GeoChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) GeoChart.__proto__ = Chart;\n GeoChart.prototype = Object.create( Chart && Chart.prototype );\n GeoChart.prototype.constructor = GeoChart;\n\n GeoChart.prototype.__processData = function __processData () {\n return processSimple(this);\n };\n\n GeoChart.prototype.__chartName = function __chartName () {\n return \"GeoChart\";\n };\n\n return GeoChart;\n }(Chart));\n\n var ScatterChart = /*@__PURE__*/(function (Chart) {\n function ScatterChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) ScatterChart.__proto__ = Chart;\n ScatterChart.prototype = Object.create( Chart && Chart.prototype );\n ScatterChart.prototype.constructor = ScatterChart;\n\n ScatterChart.prototype.__processData = function __processData () {\n return processSeries(this, \"number\");\n };\n\n ScatterChart.prototype.__chartName = function __chartName () {\n return \"ScatterChart\";\n };\n\n return ScatterChart;\n }(Chart));\n\n var BubbleChart = /*@__PURE__*/(function (Chart) {\n function BubbleChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) BubbleChart.__proto__ = Chart;\n BubbleChart.prototype = Object.create( Chart && Chart.prototype );\n BubbleChart.prototype.constructor = BubbleChart;\n\n BubbleChart.prototype.__processData = function __processData () {\n return processSeries(this, \"bubble\");\n };\n\n BubbleChart.prototype.__chartName = function __chartName () {\n return \"BubbleChart\";\n };\n\n return BubbleChart;\n }(Chart));\n\n var Timeline = /*@__PURE__*/(function (Chart) {\n function Timeline () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) Timeline.__proto__ = Chart;\n Timeline.prototype = Object.create( Chart && Chart.prototype );\n Timeline.prototype.constructor = Timeline;\n\n Timeline.prototype.__processData = function __processData () {\n var i, data = this.rawData;\n for (i = 0; i < data.length; i++) {\n data[i][1] = toDate(data[i][1]);\n data[i][2] = toDate(data[i][2]);\n }\n return data;\n };\n\n Timeline.prototype.__chartName = function __chartName () {\n return \"Timeline\";\n };\n\n return Timeline;\n }(Chart));\n\n var Chartkick = {\n LineChart: LineChart,\n PieChart: PieChart,\n ColumnChart: ColumnChart,\n BarChart: BarChart,\n AreaChart: AreaChart,\n GeoChart: GeoChart,\n ScatterChart: ScatterChart,\n BubbleChart: BubbleChart,\n Timeline: Timeline,\n charts: {},\n configure: function (options) {\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n config[key] = options[key];\n }\n }\n },\n setDefaultOptions: function (opts) {\n Chartkick.options = opts;\n },\n eachChart: function (callback) {\n for (var chartId in Chartkick.charts) {\n if (Chartkick.charts.hasOwnProperty(chartId)) {\n callback(Chartkick.charts[chartId]);\n }\n }\n },\n config: config,\n options: {},\n adapters: adapters,\n addAdapter: addAdapter,\n use: function(adapter) {\n addAdapter(adapter);\n return Chartkick;\n }\n };\n\n // not ideal, but allows for simpler integration\n if (typeof window !== \"undefined\" && !window.Chartkick) {\n window.Chartkick = Chartkick;\n }\n\n // backwards compatibility for esm require\n Chartkick.default = Chartkick;\n\n return Chartkick;\n\n})));\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar csvDownload = function csvDownload(data, name, delimiter) {\n var items = data;\n var filename = name || 'export.csv';\n var d = delimiter || ',';\n\n var header = Array.from(new Set(items.reduce(function (r, e) {\n return [].concat(_toConsumableArray(r), _toConsumableArray(Object.keys(e)));\n }, [])));\n var csv = items.map(function (row) {\n return header.map(function (fieldName) {\n return JSON.stringify(row[fieldName] === 0 ? 0 : row[fieldName] || '');\n }).join(d);\n });\n csv.unshift(header.join(d));\n csv = csv.join('\\r\\n');\n\n var blob = new Blob([csv], {\n type: 'text/plain;charset=utf-8'\n });\n\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n return;\n }\n var link = document.createElement('a');\n var url = URL.createObjectURL(blob);\n link.href = url;\n link.download = filename;\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\nexports.default = csvDownload;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./FieldCell.vue?vue&type=style&index=0&id=65973c8c&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/src/index.js!./DRFCharts.vue?vue&type=style&index=0&id=2b503971&prod&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../../node_modules/vue-svg-inline-loader/src/index.js!./ActiveFieldsCard.vue?vue&type=style&index=0&id=2e9aed2e&prod&scoped=true&lang=scss&\""],"sourceRoot":""}