[
  {
    "path": ".github/FUNDING.yml",
    "content": "patreon: igorkasyanchuk\n"
  },
  {
    "path": ".gitignore",
    "content": "/.bundle/\n/doc/\n/log/*.log\n/pkg/\n/tmp/\n/test/dummy/db/*.sqlite3\n/test/dummy/db/*.sqlite3-*\n/test/dummy/log/*.log\n/test/dummy/storage/\n/test/dummy/tmp/\n\n*.gem\n\ncoverage/*\n\n.DS_Store\n**/**/.DS_Store */\n"
  },
  {
    "path": ".rspec",
    "content": "--require spec_helper\n"
  },
  {
    "path": "CHANGES",
    "content": "- master\n\n- 0.0.9\n  - https://github.com/railsjazz/rails_charts/pull/30\n  - https://github.com/railsjazz/rails_charts/pull/37\n\n- 0.0.8\n  - JS event when chart was rendered https://github.com/railsjazz/rails_charts/pull/31\n\n- 0.0.7\n  - fix stacked charts https://github.com/railsjazz/rails_charts/pull/27\n  - eCharts 5.6\n\n- 0.0.6\n  - fix: make options for as_json optional https://github.com/railsjazz/rails_charts/pull/20/files\n  - feature: add support for render option\n\n- 0.0.5\n  - fix CHART_JS_PATTERN to allow having multiple functions for one chart https://github.com/railsjazz/rails_charts/pull/11\n\n- 0.0.4\n  - fix for radar chart https://github.com/railsjazz/rails_charts/pull/8\n\n- 0.0.3\n  - fixed function naming if it contains invalid JS symbols https://github.com/railsjazz/rails_charts/pull/5\n"
  },
  {
    "path": "Gemfile",
    "content": "source \"https://rubygems.org\"\ngit_source(:github) { |repo| \"https://github.com/#{repo}.git\" }\n\n# Specify your gem's dependencies in rails_charts.gemspec.\ngemspec\n\ngem \"sqlite3\", \"~> 2.6.0\"\n\n# Start debugger with binding.b [https://github.com/ruby/debug]\n# gem \"debug\", \">= 1.0.0\"\n\ngem 'pry'\ngem 'faker'\ngem 'groupdate'\ngem 'puma'\ngem \"sprockets-rails\"\ngem \"simplecov\", group: :test\ngem \"base64\"\ngem \"bigdecimal\"\ngem \"mutex_m\"\ngem \"rails\", \"~> 8.0.0\"\n"
  },
  {
    "path": "MIT-LICENSE",
    "content": "Copyright 2022 \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Rails Charts\n\n[![RailsJazz](https://github.com/igorkasyanchuk/rails_time_travel/blob/main/docs/my_other.svg?raw=true)](https://www.railsjazz.com)\n\n[![\"Buy Me A Coffee\"](https://github.com/igorkasyanchuk/get-smart/blob/main/docs/snapshot-bmc-button-small.png?raw=true)](https://buymeacoffee.com/igorkasyanchuk)\n\n![Charts](docs/all.jpg)\n\nOne more gem to build nice charts for your Ruby on Rails application.\n\nWith it you can build various types of charts [Apache eCharts](https://echarts.apache.org/) library (v. 6.0). This gem simplifies interface and adding few helpers to start adding charts in your app with just a few lines of code.\n\nWhat you can build with it:\n\n- [area chart](#area-chart)\n- [line chart](#line-chart)\n- [bar chart](#bar-chart)\n- [donut chart](#donut-chart)\n- [pie chart](#pie-chart)\n- [radar chart](#radar-chart)\n- [calendar chart](#calendar-chart)\n- [candlestick chart](#candlestick-chart)\n- [funnel chart](#funnel-chart)\n- [gauge chart](#gauge-chart)\n- [parallel chart](#parallel-chart)\n- [sankey chart](#sankey-chart)\n- [scatter chart](#scatter-chart)\n- [stacked bar chart](#stacked-bar-chart)\n- [custom chart](#custom-chart)\n\nIn most cases with one line of code you can have a nice chart. The idea of this gem was inspired by [Chartkick](https://github.com/ankane/chartkick) gem which is great and allows you to build charts very quickly. It works best in cooperation with [groupdate](https://github.com/ankane/groupdate) gem. Unfortunatelly it's missing many needed types of charts or other customization options.\n\nThis implementation have more options and similar \"interface\" for building charts.\n\n\n## Installation\n\nAdd gem to your application's Gemfile:\n\n```ruby\ngem \"rails_charts\"\n```\n\nThen execute:\n```bash\n$ ./bin/bundle install\n```\n\nYou can install ECharts with installation command\n\n```bash\n$ ./bin/rails rails_charts:install\n```\n\nor do it manualy\n\n### Sprockets\n\n1) add eCharts in main JS bundle, e.g. `app/assets/javascripts/application.js`\n\n```javascript\n//= require echarts.min.js\n//= require echarts/theme/dark.js\n```\n\n3) add your first chart e.g.\n```ruby\n<%= line_chart User.group(:age).count %>\n```\n\n4) customize charts if needed. See available options or [official documentation](https://echarts.apache.org/examples/en/index.html).\n\n\n### Webpack / esbuild\n\n1) Run:\n\n```bash\nyarn add echarts\n```\n\n#### For Rails 7\n2) In `app/javascript/application.js` add this:\n\n```javascript\nimport * as echarts from 'echarts';\nimport 'echarts/theme/dark';\n\nwindow.echarts = echarts;\n```\n\n#### For Rails 6\n2) In `app/javascript/packs/application.js` add this:\n\n```javascript\nimport * as echarts from 'echarts';\nimport 'echarts/theme/dark';\n\nwindow.echarts = echarts;\n```\n\n3) add your first chart e.g.\n```ruby\n<%= line_chart User.group(:age).count %>\n```\n\n4) customize charts if needed. See available options or [official documentation](https://echarts.apache.org/examples/en/index.html).\n\n### Importmaps\n\n1) change `config/importmap.rb`\n\n```ruby\npin \"echarts\", to: \"echarts.min.js\"\npin \"echarts/theme/dark\", to: \"echarts/theme/dark.js\"\n```\n\n2) add eCharts in main JS\n\n```javascript\nimport \"echarts\"\nimport \"echarts/theme/dark\"\n```\n\n3) add your first chart e.g.\n```ruby\n<%= line_chart User.group(:age).count %>\n```\n\n4) customize charts if needed. See available options or [official documentation](https://echarts.apache.org/examples/en/index.html).\n\n### Loading Themes\n\nThemes can be loaded as shown in examples above. However, in some cases where\nthemes are included in environment where `this` does not point to `window`, you\nmight get errors. In that case, you can use loadTheme helper to load themes by\nname. For example, instead of\n\n```javascript\nimport 'echarts/theme/dark'\n```\nyou can do\n\n```javascript\n// application.js\nimport \"echarts\"\nimport \"echarts.themeloader\"\n\n// Load the desired theme dynamically\nRailsCharts.loadTheme('dark');\n```\n\n## Options\n\n```ruby\n<%= line_chart data, {\n  width: '250px',\n  height: '250px',\n  theme: 'dark',\n  class: 'chart-container-class',\n  style: 'padding: 10px'\n} %>\n```\n\nAvailable options:\n\n```yaml\nwidth: specify width of the chart\nheight: specify height of the chart\ntheme: specify theme of the chart (available themes examples https://echarts.apache.org/en/download-theme.html)\nclass: specify container's CSS class\nid: specify container's ID\nstyle: add inline style\ndebug: for gem development useful if you want to pause somewhere in the code\nvertical: applicable for some types of charts\ncode: to see output code what is generated to see the chart, useful for debugging\noptions: {...}, nested hash, specify additional eCharts options\n```\n\nApache eCharts options - https://echarts.apache.org/en/option.html#title.\n\nIf you need to format tooltip (or other javascript function as an option) you can pass a JS function, but you need to wrap it like:\n\n```ruby\n  options: {\n    tooltip: {\n      valueFormatter: RailsCharts.js(\"(value) => '$' + Math.round(value)\")\n    }\n  }\n```\n\n## Charts\n\nAll examples available in https://github.com/railsjazz/rails_charts/tree/main/test/dummy/app/views/home. You can see more examples if you clone this repo and start a dummy app.\n\nEvery chart has a built in default configuration for tooltips, or other options (sample https://github.com/railsjazz/rails_charts/blob/main/lib/rails_charts/line_chart.rb#L64-L75). This is just to simplify usage of this gem. In the future the plan is to have it configured in initializer.\n\n### Area Chart\n\n![Area Chart](docs/area_chart.png)\n\n```ruby\n<%= area_chart User.distinct.pluck(:role).map{|e| {name: e, data: User.where(role: e).group_by_day(:created_at).count} } %>\n```\n\n### Line Chart\n\n![Line Chart](docs/line_chart.png)\n\n```ruby\n<%= line_chart User.group(:age).count, class: 'box',\n  options: {\n    title: {\n      text: \"People count by age\",\n      left: 'center'\n    },\n  }\n%>\n```\n\n### Bar Chart\n\n![Bar Chart](docs/bar_chart.png)\n\n```ruby\n<%= bar_chart User.group(:role).average(:age),\n  class: 'box',\n  theme: 'sakura',\n  options: {\n    series: {\n      barWidth: '50%'\n    },\n    tooltip: {\n      valueFormatter: RailsCharts.js(\"(value) => '$' + Math.round(value)\")\n    }\n  }\n%>\n```\n\n### Calendar Chart\n\n![Calendar Chart](docs/calendar_chart.png)\n\n```ruby\n<%= calendar_chart Commit.for_calendar_chart,\n  class: 'box',\n  options: {\n    visualMap: {\n      show: true,\n      min: 0,\n      max: 40,\n      orient: 'horizontal'\n    },\n    calendar: [{\n      range: '2021',\n    },]\n  }\n%>\n\n```\n\n### Candlestick Chart\n\n![Candlestick Chart](docs/candlestick_chart.png)\n\n```ruby\n<%= candlestick_chart({\n    '2017-10-24' => [20, 34, 10, 38],\n    '2017-10-25' => [40, 35, 30, 50],\n    '2017-10-26' => [31, 38, 33, 44],\n    '2017-10-27' => [38, 15, 5, 42]\n  },\n  class: 'box',\n  theme: 'roma',\n  options: {\n    xAxis: {\n      axisTick: {\n        alignWithLabel: true\n      }\n    }\n  })\n%>\n```\n\n### Funnel Chart\n\n![Funnel Chart](docs/funnel_chart.png)\n\n```ruby\n<%= funnel_chart User.get_funnel_sample_data,\n  class: 'box',\n  height: '400px',\n  options: {\n    title: {\n      text: 'Demo',\n      left: 'center'\n    }\n  }\n%>\n```\n\n### Gauge Chart\n\n![Gauge Chart](docs/gauge_chart.png)\n\n```ruby\n<%= gauge_chart User.get_gauge_sample_data,\n  class: 'box',\n  height: '400px',\n  options: {\n    title: {\n      text: 'Demo',\n      left: 'center'\n    }\n  }\n%>\n```\n\n### Parallel Chart\n\n![Parallel Chart](docs/parallel_chart.png)\n\n```ruby\n<div class=\"box\">\n  <%= parallel_chart [\n    [1, 2, 1, \"Ruby\"],\n    [2, 3, 2, \"JavaScript\"],\n    [3, 1, 3, \"C#\"]\n  ], {\n    options: {\n      parallelAxis: [\n        { dim: 0, name: '2019', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 1, name: '2020', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 2, name: '2021', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 3, type: \"category\", name: 'Language', data: [\"Ruby\", \"JavaScript\", \"C#\"], inverse: true, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 14 } },\n      ]\n    }\n  }\n  %>\n</div>\n```\n\n### Donut Chart\n\n![Donut Chart](docs/donut_chart.png)\n\n```ruby\n<%= donut_chart User.group(:role).count,\n  class: 'box',\n  options: {\n    legend: {\n      bottom: '0'\n    },\n    emphasis: {\n      itemStyle: {\n        shadowBlur: 10,\n        shadowOffsetX: 0,\n        shadowColor: 'rgba(0, 0, 0, 0.5)'\n      }\n    }\n  }\n%>\n```\n\n### Pie Chart\n\n![Pie Chart](docs/pie_chart.png)\n\n```ruby\n<%= pie_chart User.group(:role).count,\n  class: 'box',\n  options: {\n    legend: { orient: 'vertical', left: 'left' }\n  }\n%>\n```\n\n### Radar Chart\n\n![Radar Chart](docs/radar_chart.png)\n\n```ruby\n<%= radar_chart User.get_data_for_radar_chart,\n  class: 'box',\n  options: {\n    legend: {\n      data: ['Average Salaries', 'Maximum Salary'],\n      orient: 'vertical',\n      left: '20%'\n    }\n  }\n%>\n```\n\n### Sankey Chart\n\n![Sankey Chart](docs/sankey_chart.png)\n\n```ruby\n<%= sankey_chart({\n    data: [\n      {name: 'Ruby'}, {name: 'HTML'}, {name: 'JS'}, {name: 'Good'}, {name: 'Bad'}, {name: 'CSS'}, {name: 'PHP'}, {name: 'Frontend'}, {name: 'Backend'}\n    ],\n    links: [\n      {\n        source: 'Ruby',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'HTML',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'JS',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'CSS',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'PHP',\n        target: 'Bad',\n        value: 1\n      },\n      {\n        source: 'Good',\n        target: 'Backend',\n        value: 1\n      },\n      {\n        source: 'Good',\n        target: 'Frontend',\n        value: 3\n      },\n      {\n        source: 'Bad',\n        target: 'Backend',\n        value: 1\n      },\n    ]\n  }, {\n    options: {\n\n    }\n  })\n  %>\n```\n\n### Scatter Chart\n\n![Scatter Chart](docs/scatter_chart.png)\n\n```ruby\n<%= scatter_chart [\n    { name: 'John', data: User.random_scatter_chart(500, 200) },\n    { name: 'Bob', data: User.random_scatter_chart(500, 1000) },\n  ],\n  {\n    class: 'box',\n    options: {\n      xAxis: {\n        name: 'Distance'\n      },\n      yAxis: {\n        name: 'Sales'\n      },\n      legend: {\n        data: [\n          {name: 'John'},\n          {name: 'Bob'},\n        ]\n      },\n    },\n  }\n%>\n```\n\n### Stacked bar Chart\n\n![Stacked bar Chart](docs/stacked_bar_chart.png)\n\n```ruby\n<%= stacked_bar_chart [\n    { name: 'high priority', data: Account.group_by_month(:created_at, format: \"%b %Y\").count },\n    { name: 'low priority', data: Account.group_by_month(:created_at, format: \"%b %Y\").count }\n  ],\n  {\n    options: {\n      title: {\n        text: \"Popular vs Unpopular\"\n      },\n    },\n    class: 'box',\n    vertical: true\n  }\n%>\n```\n\n### Custom Chart\n\n![Custom Chart](docs/custom_chart.png)\n\n```ruby\n<%= custom_chart {...raw JS options ...} %>\n```\n\n## Contributing\n\nYou are welcome to contributes. Some open tasks:\n\n- support turbo streams?\n- add more specs\n- add more examples to the dummy app\n- customization, options overides, default values?\n- every \"5sec\" refresh\n- remote data\n- how to access chart from JS\n- better documentation how to specify theme, locale, etc\n- more examples with data structure\n- add github actions\n- add info about initializer and it's configuration\n- specify info about default configs per chart\n- add support for CSP similar to https://github.com/ankane/chartkick/blob/master/lib/chartkick/helper.rb#L55\n- example of how to build multiple-chart charts\n\n### How to upgrade eCharts\n\n- download ZIP file\n- unpack it\n- replace files in `app/assets/javascripts/echarts.min.js` and other related files inside echarts folder (from root folder of unpacked ZIP file).\n\n### Development and testing\n\n`test/dummy/bin/rails s` - to start dummy app.\n\n`rspec` - to run specs.\n\nPrepare test data:\n\n`rails c`\n\n```ruby\nData.populate\n```\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\nGem is using https://echarts.apache.org/ to build charts.\n\n[<img src=\"https://github.com/igorkasyanchuk/rails_time_travel/blob/main/docs/more_gems.png?raw=true\"\n/>](https://www.railsjazz.com/?utm_source=github&utm_medium=bottom&utm_campaign=rails_charts)\n\n[![\"Buy Me A Coffee\"](https://github.com/igorkasyanchuk/get-smart/blob/main/docs/snapshot-bmc-button.png?raw=true)](https://buymeacoffee.com/igorkasyanchuk)\n"
  },
  {
    "path": "Rakefile",
    "content": "require \"bundler/setup\"\n\nrequire \"bundler/gem_tasks\"\n"
  },
  {
    "path": "app/assets/javascripts/echarts/extension/bmap.js",
    "content": "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bmap = {}, global.echarts));\n}(this, (function (exports, echarts) { 'use strict';\n\n  function BMapCoordSys(bmap, api) {\n    this._bmap = bmap;\n    this.dimensions = ['lng', 'lat'];\n    this._mapOffset = [0, 0];\n    this._api = api;\n    this._projection = new BMap.MercatorProjection();\n  }\n  BMapCoordSys.prototype.type = 'bmap';\n  BMapCoordSys.prototype.dimensions = ['lng', 'lat'];\n  BMapCoordSys.prototype.setZoom = function (zoom) {\n    this._zoom = zoom;\n  };\n  BMapCoordSys.prototype.setCenter = function (center) {\n    this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));\n  };\n  BMapCoordSys.prototype.setMapOffset = function (mapOffset) {\n    this._mapOffset = mapOffset;\n  };\n  BMapCoordSys.prototype.getBMap = function () {\n    return this._bmap;\n  };\n  BMapCoordSys.prototype.dataToPoint = function (data) {\n    var point = new BMap.Point(data[0], data[1]);\n    // TODO mercator projection is toooooooo slow\n    // let mercatorPoint = this._projection.lngLatToPoint(point);\n    // let width = this._api.getZr().getWidth();\n    // let height = this._api.getZr().getHeight();\n    // let divider = Math.pow(2, 18 - 10);\n    // return [\n    //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),\n    //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)\n    // ];\n    var px = this._bmap.pointToOverlayPixel(point);\n    var mapOffset = this._mapOffset;\n    return [px.x - mapOffset[0], px.y - mapOffset[1]];\n  };\n  BMapCoordSys.prototype.pointToData = function (pt) {\n    var mapOffset = this._mapOffset;\n    pt = this._bmap.overlayPixelToPoint({\n      x: pt[0] + mapOffset[0],\n      y: pt[1] + mapOffset[1]\n    });\n    return [pt.lng, pt.lat];\n  };\n  BMapCoordSys.prototype.getViewRect = function () {\n    var api = this._api;\n    return new echarts.graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());\n  };\n  BMapCoordSys.prototype.getRoamTransform = function () {\n    return echarts.matrix.create();\n  };\n  BMapCoordSys.prototype.prepareCustoms = function () {\n    var rect = this.getViewRect();\n    return {\n      coordSys: {\n        // The name exposed to user is always 'cartesian2d' but not 'grid'.\n        type: 'bmap',\n        x: rect.x,\n        y: rect.y,\n        width: rect.width,\n        height: rect.height\n      },\n      api: {\n        coord: echarts.util.bind(this.dataToPoint, this),\n        size: echarts.util.bind(dataToCoordSize, this)\n      }\n    };\n  };\n  BMapCoordSys.prototype.convertToPixel = function (ecModel, finder, value) {\n    // here we ignore finder as only one bmap component is allowed\n    return this.dataToPoint(value);\n  };\n  BMapCoordSys.prototype.convertFromPixel = function (ecModel, finder, value) {\n    return this.pointToData(value);\n  };\n  function dataToCoordSize(dataSize, dataItem) {\n    dataItem = dataItem || [0, 0];\n    return echarts.util.map([0, 1], function (dimIdx) {\n      var val = dataItem[dimIdx];\n      var halfSize = dataSize[dimIdx] / 2;\n      var p1 = [];\n      var p2 = [];\n      p1[dimIdx] = val - halfSize;\n      p2[dimIdx] = val + halfSize;\n      p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n      return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n    }, this);\n  }\n  var Overlay;\n  // For deciding which dimensions to use when creating list data\n  BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;\n  function createOverlayCtor() {\n    function Overlay(root) {\n      this._root = root;\n    }\n    Overlay.prototype = new BMap.Overlay();\n    /**\n     * 初始化\n     *\n     * @param {BMap.Map} map\n     * @override\n     */\n    Overlay.prototype.initialize = function (map) {\n      map.getPanes().labelPane.appendChild(this._root);\n      return this._root;\n    };\n    /**\n     * @override\n     */\n    Overlay.prototype.draw = function () {};\n    return Overlay;\n  }\n  BMapCoordSys.create = function (ecModel, api) {\n    var bmapCoordSys;\n    var root = api.getDom();\n    // TODO Dispose\n    ecModel.eachComponent('bmap', function (bmapModel) {\n      var painter = api.getZr().painter;\n      var viewportRoot = painter.getViewportRoot();\n      if (typeof BMap === 'undefined') {\n        throw new Error('BMap api is not loaded');\n      }\n      Overlay = Overlay || createOverlayCtor();\n      if (bmapCoordSys) {\n        throw new Error('Only one bmap component can exist');\n      }\n      var bmap;\n      if (!bmapModel.__bmap) {\n        // Not support IE8\n        var bmapRoot = root.querySelector('.ec-extension-bmap');\n        if (bmapRoot) {\n          // Reset viewport left and top, which will be changed\n          // in moving handler in BMapView\n          viewportRoot.style.left = '0px';\n          viewportRoot.style.top = '0px';\n          root.removeChild(bmapRoot);\n        }\n        bmapRoot = document.createElement('div');\n        bmapRoot.className = 'ec-extension-bmap';\n        // fix #13424\n        bmapRoot.style.cssText = 'position:absolute;width:100%;height:100%';\n        root.appendChild(bmapRoot);\n        // initializes bmap\n        var mapOptions = bmapModel.get('mapOptions');\n        if (mapOptions) {\n          mapOptions = echarts.util.clone(mapOptions);\n          // Not support `mapType`, use `bmap.setMapType(MapType)` instead.\n          delete mapOptions.mapType;\n        }\n        bmap = bmapModel.__bmap = new BMap.Map(bmapRoot, mapOptions);\n        var overlay = new Overlay(viewportRoot);\n        bmap.addOverlay(overlay);\n        // Override\n        painter.getViewportRootOffset = function () {\n          return {\n            offsetLeft: 0,\n            offsetTop: 0\n          };\n        };\n      }\n      bmap = bmapModel.__bmap;\n      // Set bmap options\n      // centerAndZoom before layout and render\n      var center = bmapModel.get('center');\n      var zoom = bmapModel.get('zoom');\n      if (center && zoom) {\n        var bmapCenter = bmap.getCenter();\n        var bmapZoom = bmap.getZoom();\n        var centerOrZoomChanged = bmapModel.centerOrZoomChanged([bmapCenter.lng, bmapCenter.lat], bmapZoom);\n        if (centerOrZoomChanged) {\n          var pt = new BMap.Point(center[0], center[1]);\n          bmap.centerAndZoom(pt, zoom);\n        }\n      }\n      bmapCoordSys = new BMapCoordSys(bmap, api);\n      bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);\n      bmapCoordSys.setZoom(zoom);\n      bmapCoordSys.setCenter(center);\n      bmapModel.coordinateSystem = bmapCoordSys;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'bmap') {\n        seriesModel.coordinateSystem = bmapCoordSys;\n      }\n    });\n    // return created coordinate systems\n    return bmapCoordSys && [bmapCoordSys];\n  };\n\n  function v2Equal(a, b) {\n    return a && b && a[0] === b[0] && a[1] === b[1];\n  }\n  echarts.extendComponentModel({\n    type: 'bmap',\n    getBMap: function () {\n      // __bmap is injected when creating BMapCoordSys\n      return this.__bmap;\n    },\n    setCenterAndZoom: function (center, zoom) {\n      this.option.center = center;\n      this.option.zoom = zoom;\n    },\n    centerOrZoomChanged: function (center, zoom) {\n      var option = this.option;\n      return !(v2Equal(center, option.center) && zoom === option.zoom);\n    },\n    defaultOption: {\n      center: [104.114129, 37.550339],\n      zoom: 5,\n      // 2.0 https://lbsyun.baidu.com/custom/index.htm\n      mapStyle: {},\n      // 3.0 https://lbsyun.baidu.com/index.php?title=open/custom\n      mapStyleV2: {},\n      // See https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a0b1\n      mapOptions: {},\n      roam: false\n    }\n  });\n\n  function isEmptyObject(obj) {\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  echarts.extendComponentView({\n    type: 'bmap',\n    render: function (bMapModel, ecModel, api) {\n      var rendering = true;\n      var bmap = bMapModel.getBMap();\n      var viewportRoot = api.getZr().painter.getViewportRoot();\n      var coordSys = bMapModel.coordinateSystem;\n      var moveHandler = function (type, target) {\n        if (rendering) {\n          return;\n        }\n        var offsetEl = viewportRoot.parentNode.parentNode.parentNode;\n        var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0];\n        // only update style when map offset changed\n        var viewportRootStyle = viewportRoot.style;\n        var offsetLeft = mapOffset[0] + 'px';\n        var offsetTop = mapOffset[1] + 'px';\n        if (viewportRootStyle.left !== offsetLeft) {\n          viewportRootStyle.left = offsetLeft;\n        }\n        if (viewportRootStyle.top !== offsetTop) {\n          viewportRootStyle.top = offsetTop;\n        }\n        coordSys.setMapOffset(mapOffset);\n        bMapModel.__mapOffset = mapOffset;\n        api.dispatchAction({\n          type: 'bmapRoam',\n          animation: {\n            duration: 0\n          }\n        });\n      };\n      function zoomEndHandler() {\n        if (rendering) {\n          return;\n        }\n        api.dispatchAction({\n          type: 'bmapRoam',\n          animation: {\n            duration: 0\n          }\n        });\n      }\n      bmap.removeEventListener('moving', this._oldMoveHandler);\n      bmap.removeEventListener('moveend', this._oldMoveHandler);\n      bmap.removeEventListener('zoomend', this._oldZoomEndHandler);\n      bmap.addEventListener('moving', moveHandler);\n      bmap.addEventListener('moveend', moveHandler);\n      bmap.addEventListener('zoomend', zoomEndHandler);\n      this._oldMoveHandler = moveHandler;\n      this._oldZoomEndHandler = zoomEndHandler;\n      var roam = bMapModel.get('roam');\n      if (roam && roam !== 'scale') {\n        bmap.enableDragging();\n      } else {\n        bmap.disableDragging();\n      }\n      if (roam && roam !== 'move') {\n        bmap.enableScrollWheelZoom();\n        bmap.enableDoubleClickZoom();\n        bmap.enablePinchToZoom();\n      } else {\n        bmap.disableScrollWheelZoom();\n        bmap.disableDoubleClickZoom();\n        bmap.disablePinchToZoom();\n      }\n      /* map 2.0 */\n      var originalStyle = bMapModel.__mapStyle;\n      var newMapStyle = bMapModel.get('mapStyle') || {};\n      // FIXME, Not use JSON methods\n      var mapStyleStr = JSON.stringify(newMapStyle);\n      if (JSON.stringify(originalStyle) !== mapStyleStr) {\n        // FIXME May have blank tile when dragging if setMapStyle\n        if (!isEmptyObject(newMapStyle)) {\n          bmap.setMapStyle(echarts.util.clone(newMapStyle));\n        }\n        bMapModel.__mapStyle = JSON.parse(mapStyleStr);\n      }\n      /* map 3.0 */\n      var originalStyle2 = bMapModel.__mapStyle2;\n      var newMapStyle2 = bMapModel.get('mapStyleV2') || {};\n      // FIXME, Not use JSON methods\n      var mapStyleStr2 = JSON.stringify(newMapStyle2);\n      if (JSON.stringify(originalStyle2) !== mapStyleStr2) {\n        // FIXME May have blank tile when dragging if setMapStyle\n        if (!isEmptyObject(newMapStyle2)) {\n          bmap.setMapStyleV2(echarts.util.clone(newMapStyle2));\n        }\n        bMapModel.__mapStyle2 = JSON.parse(mapStyleStr2);\n      }\n      rendering = false;\n    }\n  });\n\n  echarts.registerCoordinateSystem('bmap', BMapCoordSys);\n  // Action\n  echarts.registerAction({\n    type: 'bmapRoam',\n    event: 'bmapRoam',\n    update: 'updateLayout'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent('bmap', function (bMapModel) {\n      var bmap = bMapModel.getBMap();\n      var center = bmap.getCenter();\n      bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());\n    });\n  });\n  var version = '1.0.0';\n\n  exports.version = version;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bmap.js.map\n"
  },
  {
    "path": "app/assets/javascripts/echarts/extension/dataTool.js",
    "content": "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :\n    typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.dataTool = {}, global.echarts));\n}(this, (function (exports, echarts) { 'use strict';\n\n    var BUILTIN_OBJECT = reduce([\n        'Function',\n        'RegExp',\n        'Date',\n        'Error',\n        'CanvasGradient',\n        'CanvasPattern',\n        'Image',\n        'Canvas'\n    ], function (obj, val) {\n        obj['[object ' + val + ']'] = true;\n        return obj;\n    }, {});\n    var TYPED_ARRAY = reduce([\n        'Int8',\n        'Uint8',\n        'Uint8Clamped',\n        'Int16',\n        'Uint16',\n        'Int32',\n        'Uint32',\n        'Float32',\n        'Float64'\n    ], function (obj, val) {\n        obj['[object ' + val + 'Array]'] = true;\n        return obj;\n    }, {});\n    var arrayProto = Array.prototype;\n    var nativeSlice = arrayProto.slice;\n    var nativeMap = arrayProto.map;\n    var ctorFunction = function () { }.constructor;\n    var protoFunction = ctorFunction ? ctorFunction.prototype : null;\n    function map(arr, cb, context) {\n        if (!arr) {\n            return [];\n        }\n        if (!cb) {\n            return slice(arr);\n        }\n        if (arr.map && arr.map === nativeMap) {\n            return arr.map(cb, context);\n        }\n        else {\n            var result = [];\n            for (var i = 0, len = arr.length; i < len; i++) {\n                result.push(cb.call(context, arr[i], i, arr));\n            }\n            return result;\n        }\n    }\n    function reduce(arr, cb, memo, context) {\n        if (!(arr && cb)) {\n            return;\n        }\n        for (var i = 0, len = arr.length; i < len; i++) {\n            memo = cb.call(context, memo, arr[i], i, arr);\n        }\n        return memo;\n    }\n    function bindPolyfill(func, context) {\n        var args = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            args[_i - 2] = arguments[_i];\n        }\n        return function () {\n            return func.apply(context, args.concat(nativeSlice.call(arguments)));\n        };\n    }\n    var bind = (protoFunction && isFunction(protoFunction.bind))\n        ? protoFunction.call.bind(protoFunction.bind)\n        : bindPolyfill;\n    function isFunction(value) {\n        return typeof value === 'function';\n    }\n    function slice(arr) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        return nativeSlice.apply(arr, args);\n    }\n\n    function parse(xml) {\n      var doc;\n      if (typeof xml === 'string') {\n        var parser = new DOMParser();\n        doc = parser.parseFromString(xml, 'text/xml');\n      } else {\n        doc = xml;\n      }\n      if (!doc || doc.getElementsByTagName('parsererror').length) {\n        return null;\n      }\n      var gexfRoot = getChildByTagName(doc, 'gexf');\n      if (!gexfRoot) {\n        return null;\n      }\n      var graphRoot = getChildByTagName(gexfRoot, 'graph');\n      var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));\n      var attributesMap = {};\n      for (var i = 0; i < attributes.length; i++) {\n        attributesMap[attributes[i].id] = attributes[i];\n      }\n      return {\n        nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),\n        links: parseEdges(getChildByTagName(graphRoot, 'edges'))\n      };\n    }\n    function parseAttributes(parent) {\n      return parent ? map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {\n        return {\n          id: getAttr(attribDom, 'id'),\n          title: getAttr(attribDom, 'title'),\n          type: getAttr(attribDom, 'type')\n        };\n      }) : [];\n    }\n    function parseNodes(parent, attributesMap) {\n      return parent ? map(getChildrenByTagName(parent, 'node'), function (nodeDom) {\n        var id = getAttr(nodeDom, 'id');\n        var label = getAttr(nodeDom, 'label');\n        var node = {\n          id: id,\n          name: label,\n          itemStyle: {\n            normal: {}\n          }\n        };\n        var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');\n        var vizPosDom = getChildByTagName(nodeDom, 'viz:position');\n        var vizColorDom = getChildByTagName(nodeDom, 'viz:color');\n        // let vizShapeDom = getChildByTagName(nodeDom, 'viz:shape');\n        var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');\n        if (vizSizeDom) {\n          node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));\n        }\n        if (vizPosDom) {\n          node.x = parseFloat(getAttr(vizPosDom, 'x'));\n          node.y = parseFloat(getAttr(vizPosDom, 'y'));\n          // z\n        }\n        if (vizColorDom) {\n          node.itemStyle.normal.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';\n        }\n        // if (vizShapeDom) {\n        // node.shape = getAttr(vizShapeDom, 'shape');\n        // }\n        if (attvaluesDom) {\n          var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');\n          node.attributes = {};\n          for (var j = 0; j < attvalueDomList.length; j++) {\n            var attvalueDom = attvalueDomList[j];\n            var attId = getAttr(attvalueDom, 'for');\n            var attValue = getAttr(attvalueDom, 'value');\n            var attribute = attributesMap[attId];\n            if (attribute) {\n              switch (attribute.type) {\n                case 'integer':\n                case 'long':\n                  attValue = parseInt(attValue, 10);\n                  break;\n                case 'float':\n                case 'double':\n                  attValue = parseFloat(attValue);\n                  break;\n                case 'boolean':\n                  attValue = attValue.toLowerCase() === 'true';\n                  break;\n              }\n              node.attributes[attId] = attValue;\n            }\n          }\n        }\n        return node;\n      }) : [];\n    }\n    function parseEdges(parent) {\n      return parent ? map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {\n        var id = getAttr(edgeDom, 'id');\n        var label = getAttr(edgeDom, 'label');\n        var sourceId = getAttr(edgeDom, 'source');\n        var targetId = getAttr(edgeDom, 'target');\n        var edge = {\n          id: id,\n          name: label,\n          source: sourceId,\n          target: targetId,\n          lineStyle: {\n            normal: {}\n          }\n        };\n        var lineStyle = edge.lineStyle.normal;\n        var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');\n        var vizColorDom = getChildByTagName(edgeDom, 'viz:color');\n        // let vizShapeDom = getChildByTagName(edgeDom, 'viz:shape');\n        if (vizThicknessDom) {\n          lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));\n        }\n        if (vizColorDom) {\n          lineStyle.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';\n        }\n        // if (vizShapeDom) {\n        //     edge.shape = vizShapeDom.getAttribute('shape');\n        // }\n        return edge;\n      }) : [];\n    }\n    function getAttr(el, attrName) {\n      return el.getAttribute(attrName);\n    }\n    function getChildByTagName(parent, tagName) {\n      var node = parent.firstChild;\n      while (node) {\n        if (node.nodeType !== 1 || node.nodeName.toLowerCase() !== tagName.toLowerCase()) {\n          node = node.nextSibling;\n        } else {\n          return node;\n        }\n      }\n      return null;\n    }\n    function getChildrenByTagName(parent, tagName) {\n      var node = parent.firstChild;\n      var children = [];\n      while (node) {\n        if (node.nodeName.toLowerCase() === tagName.toLowerCase()) {\n          children.push(node);\n        }\n        node = node.nextSibling;\n      }\n      return children;\n    }\n\n    var gexf = /*#__PURE__*/Object.freeze({\n        __proto__: null,\n        parse: parse\n    });\n\n    /*\n    * Licensed to the Apache Software Foundation (ASF) under one\n    * or more contributor license agreements.  See the NOTICE file\n    * distributed with this work for additional information\n    * regarding copyright ownership.  The ASF licenses this file\n    * to you under the Apache License, Version 2.0 (the\n    * \"License\"); you may not use this file except in compliance\n    * with the License.  You may obtain a copy of the License at\n    *\n    *   http://www.apache.org/licenses/LICENSE-2.0\n    *\n    * Unless required by applicable law or agreed to in writing,\n    * software distributed under the License is distributed on an\n    * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n    * KIND, either express or implied.  See the License for the\n    * specific language governing permissions and limitations\n    * under the License.\n    */\n\n\n    /**\n     * AUTO-GENERATED FILE. DO NOT MODIFY.\n     */\n\n    /*\n    * Licensed to the Apache Software Foundation (ASF) under one\n    * or more contributor license agreements.  See the NOTICE file\n    * distributed with this work for additional information\n    * regarding copyright ownership.  The ASF licenses this file\n    * to you under the Apache License, Version 2.0 (the\n    * \"License\"); you may not use this file except in compliance\n    * with the License.  You may obtain a copy of the License at\n    *\n    *   http://www.apache.org/licenses/LICENSE-2.0\n    *\n    * Unless required by applicable law or agreed to in writing,\n    * software distributed under the License is distributed on an\n    * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n    * KIND, either express or implied.  See the License for the\n    * specific language governing permissions and limitations\n    * under the License.\n    */\n    function asc(arr) {\n      arr.sort(function (a, b) {\n        return a - b;\n      });\n      return arr;\n    }\n    function quantile(ascArr, p) {\n      var H = (ascArr.length - 1) * p + 1;\n      var h = Math.floor(H);\n      var v = +ascArr[h - 1];\n      var e = H - h;\n      return e ? v + e * (ascArr[h] - v) : v;\n    }\n    /**\n     * See:\n     *  <https://en.wikipedia.org/wiki/Box_plot#cite_note-frigge_hoaglin_iglewicz-2>\n     *  <http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/boxplot.stats.html>\n     *\n     * Helper method for preparing data.\n     *\n     * @param {Array.<number>} rawData like\n     *        [\n     *            [12,232,443], (raw data set for the first box)\n     *            [3843,5545,1232], (raw data set for the second box)\n     *            ...\n     *        ]\n     * @param {Object} [opt]\n     *\n     * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier.\n     *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).\n     *      If 'none'/0 passed, min bound will not be used.\n     * @param {(number|string)} [opt.layout='horizontal']\n     *      Box plot layout, can be 'horizontal' or 'vertical'\n     * @return {Object} {\n     *      boxData: Array.<Array.<number>>\n     *      outliers: Array.<Array.<number>>\n     *      axisData: Array.<string>\n     * }\n     */\n    function prepareBoxplotData (rawData, opt) {\n      opt = opt || {};\n      var boxData = [];\n      var outliers = [];\n      var axisData = [];\n      var boundIQR = opt.boundIQR;\n      var useExtreme = boundIQR === 'none' || boundIQR === 0;\n      for (var i = 0; i < rawData.length; i++) {\n        axisData.push(i + '');\n        var ascList = asc(rawData[i].slice());\n        var Q1 = quantile(ascList, 0.25);\n        var Q2 = quantile(ascList, 0.5);\n        var Q3 = quantile(ascList, 0.75);\n        var min = ascList[0];\n        var max = ascList[ascList.length - 1];\n        var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n        var low = useExtreme ? min : Math.max(min, Q1 - bound);\n        var high = useExtreme ? max : Math.min(max, Q3 + bound);\n        boxData.push([low, Q1, Q2, Q3, high]);\n        for (var j = 0; j < ascList.length; j++) {\n          var dataItem = ascList[j];\n          if (dataItem < low || dataItem > high) {\n            var outlier = [i, dataItem];\n            opt.layout === 'vertical' && outlier.reverse();\n            outliers.push(outlier);\n          }\n        }\n      }\n      return {\n        boxData: boxData,\n        outliers: outliers,\n        axisData: axisData\n      };\n    }\n\n    // import { boxplotTransform } from './boxplotTransform.js';\n    var version = '1.0.0';\n    // export {boxplotTransform};\n    // For backward compatibility, where the namespace `dataTool` will\n    // be mounted on `echarts` is the extension `dataTool` is imported.\n    // But the old version of echarts do not have `dataTool` namespace,\n    // so check it before mounting.\n    if (echarts.dataTool) {\n      echarts.dataTool.version = version;\n      echarts.dataTool.gexf = gexf;\n      echarts.dataTool.prepareBoxplotData = prepareBoxplotData;\n      // echarts.dataTool.boxplotTransform = boxplotTransform;\n    }\n\n    exports.gexf = gexf;\n    exports.prepareBoxplotData = prepareBoxplotData;\n    exports.version = version;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=dataTool.js.map\n"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langAR-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Arabic.\n */\n\nvar localeObj = {\n\n    time: {\n        month: [\n            'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',\n            'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'\n        ],\n        monthAbbr: [\n            'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',\n            'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'\n        ],\n        dayOfWeek: [\n            'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'\n        ],\n        dayOfWeekAbbr: [\n            'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'تحديد الكل',\n            inverse: 'عكس التحديد'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'تحديد صندوقي',\n                polygon: 'تحديد حلقي',\n                lineX: 'تحديد أفقي',\n                lineY: 'تحديد عمودي',\n                keep: 'الاحتفاظ بالمحدد',\n                clear: 'إلغاء التحديد'\n            }\n        },\n        dataView: {\n            title: 'عرض البيانات',\n            lang: ['عرض البيانات', 'إغلاق', 'تحديث']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'تكبير',\n                back: 'استعادة التكبير'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'خطوط',\n                bar: 'أشرطة',\n                stack: 'تكديس',\n                tiled: 'مربعات'\n            }\n        },\n        restore: {\n            title: 'استعادة'\n        },\n        saveAsImage: {\n            title: 'حفظ كملف صورة',\n            lang: ['للحفظ كصورة انقر  بالزر الأيمن']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'رسم بياني دائري',\n            bar: 'رسم بياني شريطي',\n            line: 'رسم بياني خطي',\n            scatter: 'نقاط مبعثرة',\n            effectScatter: 'نقاط مبعثرة متموجة',\n            radar: 'رسم بياني راداري',\n            tree: 'شجرة',\n            treemap: 'مخطط شجري',\n            boxplot: 'مخطط صندوقي',\n            candlestick: 'مخطط شمعدان',\n            k: 'رسم بياني خطي من النوع K',\n            heatmap: 'خريطة حرارية',\n            map: 'خريطة',\n            parallel: 'خريطة الإحداثيات المتناظرة',\n            lines: 'خطوط',\n            graph: 'مخطط علائقي',\n            sankey: 'مخطط ثعباني',\n            funnel: 'مخطط هرمي',\n            gauge: 'مقياس',\n            pictorialBar: 'مخطط مصوّر',\n            themeRiver: 'نمط خريطة النهر',\n            sunburst: 'مخطط شمسي',\n            custom: 'مخطط مخصص',\n            chart: 'مخطط'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'هذا رسم بياني حول \"{title}\".',\n            withoutTitle: 'هذا رسم بياني.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' من النوع {seriesType} اسمه {seriesName}.',\n                withoutName: ' من النوع {seriesType}.'\n            },\n            multiple: {\n                prefix: '. يتكون من {seriesCount} سلسلة.',\n                withName: ' الـ  {seriesId} هي سلسلة من النوع {seriesType} تستعرض {seriesName}.',\n                withoutName: ' الـ {seriesId} هي سلسلة من النوع {seriesType}.',\n                separator: {\n                    middle: '، ',\n                    end: '. '\n                }\n            }\n        },\n        data: {\n            allData: 'البيانات هي كالتالي: ',\n            partialData: 'أول {displayCnt} عناصر هي: ',\n            withName: 'قيمة العنصر {name} هي {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '، ',\n                end: '. '\n            }\n        }\n    }\n\n\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langAR.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Arabic.\n */\n\nvar localeObj = {\n\n    time: {\n        month: [\n            'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',\n            'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'\n        ],\n        monthAbbr: [\n            'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',\n            'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'\n        ],\n        dayOfWeek: [\n            'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'\n        ],\n        dayOfWeekAbbr: [\n            'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'تحديد الكل',\n            inverse: 'عكس التحديد'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'تحديد صندوقي',\n                polygon: 'تحديد حلقي',\n                lineX: 'تحديد أفقي',\n                lineY: 'تحديد عمودي',\n                keep: 'الاحتفاظ بالمحدد',\n                clear: 'إلغاء التحديد'\n            }\n        },\n        dataView: {\n            title: 'عرض البيانات',\n            lang: ['عرض البيانات', 'إغلاق', 'تحديث']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'تكبير',\n                back: 'استعادة التكبير'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'خطوط',\n                bar: 'أشرطة',\n                stack: 'تكديس',\n                tiled: 'مربعات'\n            }\n        },\n        restore: {\n            title: 'استعادة'\n        },\n        saveAsImage: {\n            title: 'حفظ كملف صورة',\n            lang: ['للحفظ كصورة انقر  بالزر الأيمن']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'رسم بياني دائري',\n            bar: 'رسم بياني شريطي',\n            line: 'رسم بياني خطي',\n            scatter: 'نقاط مبعثرة',\n            effectScatter: 'نقاط مبعثرة متموجة',\n            radar: 'رسم بياني راداري',\n            tree: 'شجرة',\n            treemap: 'مخطط شجري',\n            boxplot: 'مخطط صندوقي',\n            candlestick: 'مخطط شمعدان',\n            k: 'رسم بياني خطي من النوع K',\n            heatmap: 'خريطة حرارية',\n            map: 'خريطة',\n            parallel: 'خريطة الإحداثيات المتناظرة',\n            lines: 'خطوط',\n            graph: 'مخطط علائقي',\n            sankey: 'مخطط ثعباني',\n            funnel: 'مخطط هرمي',\n            gauge: 'مقياس',\n            pictorialBar: 'مخطط مصوّر',\n            themeRiver: 'نمط خريطة النهر',\n            sunburst: 'مخطط شمسي',\n            custom: 'مخطط مخصص',\n            chart: 'مخطط'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'هذا رسم بياني حول \"{title}\".',\n            withoutTitle: 'هذا رسم بياني.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' من النوع {seriesType} اسمه {seriesName}.',\n                withoutName: ' من النوع {seriesType}.'\n            },\n            multiple: {\n                prefix: '. يتكون من {seriesCount} سلسلة.',\n                withName: ' الـ  {seriesId} هي سلسلة من النوع {seriesType} تستعرض {seriesName}.',\n                withoutName: ' الـ {seriesId} هي سلسلة من النوع {seriesType}.',\n                separator: {\n                    middle: '، ',\n                    end: '. '\n                }\n            }\n        },\n        data: {\n            allData: 'البيانات هي كالتالي: ',\n            partialData: 'أول {displayCnt} عناصر هي: ',\n            withName: 'قيمة العنصر {name} هي {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '، ',\n                end: '. '\n            }\n        }\n    }\n\n\n};\n\n    echarts.registerLocale('AR', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langCS-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Czech.\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen',\n            'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'\n        ],\n        monthAbbr: [\n            'Led', 'Úno', 'Bře', 'Dub', 'Kvě', 'Čvn',\n            'Čvc', 'Srp', 'Zář', 'Říj', 'Lis', 'Pro'\n        ],\n        dayOfWeek: [\n            'Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Vše',\n            inverse: 'Inv'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Obdélníkový výběr',\n                polygon: 'Lasso výběr',\n                lineX: 'Horizontální výběr',\n                lineY: 'Vertikální výběr',\n                keep: 'Ponechat výběr',\n                clear: 'Zrušit výběr'\n            }\n        },\n        dataView: {\n            title: 'Data',\n            lang: ['Data', 'Zavřít', 'Obnovit']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Přiblížit',\n                back: 'Oddálit'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Změnit na Spojnicový graf',\n                bar: 'Změnit na Sloupcový graf',\n                stack: 'Plošný',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Obnovit'\n        },\n        saveAsImage: {\n            title: 'Uložit jako obrázek',\n            lang: ['Obrázek uložte pravým kliknutím']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Výsečový graf',\n            bar: 'Sloupcový graf',\n            line: 'Spojnicový graf',\n            scatter: 'XY bodový graf',\n            effectScatter: 'Effect XY bodový graf',\n            radar: 'Paprskový graf',\n            tree: 'Strom',\n            treemap: 'Stromová mapa',\n            boxplot: 'Krabicový graf',\n            candlestick: 'Burzovní graf',\n            k: 'K spojnicový graf',\n            heatmap: 'Teplotní mapa',\n            map: 'Mapa',\n            parallel: 'Rovnoběžné souřadnice',\n            lines: 'Spojnicový graf',\n            graph: 'Graf vztahů',\n            sankey: 'Sankeyův diagram',\n            funnel: 'Trychtýř (Funnel)',\n            gauge: 'Indikátor',\n            pictorialBar: 'Obrázkový sloupcový graf',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Vícevrstvý prstencový graf',\n            custom: 'Graficu persunalizatu',\n            chart: 'Graf'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Toto je graf o \"{title}\"',\n            withoutTitle: 'Toto je graf'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: '{seriesName} s typem {seriesType}.',\n                withoutName: ' s typem {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Obsahuje {seriesCount} řad.',\n                withName: ' Řada {seriesId} je typu {seriesType} repreyentující {seriesName}.',\n                withoutName: ' Řada {seriesId} je typu {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Všechna data jsou: ',\n            partialData: 'První {displayCnt} položky jsou: ',\n            withName: 'data pro {name} jsou {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langCS.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Czech.\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen',\n            'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'\n        ],\n        monthAbbr: [\n            'Led', 'Úno', 'Bře', 'Dub', 'Kvě', 'Čvn',\n            'Čvc', 'Srp', 'Zář', 'Říj', 'Lis', 'Pro'\n        ],\n        dayOfWeek: [\n            'Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Vše',\n            inverse: 'Inv'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Obdélníkový výběr',\n                polygon: 'Lasso výběr',\n                lineX: 'Horizontální výběr',\n                lineY: 'Vertikální výběr',\n                keep: 'Ponechat výběr',\n                clear: 'Zrušit výběr'\n            }\n        },\n        dataView: {\n            title: 'Data',\n            lang: ['Data', 'Zavřít', 'Obnovit']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Přiblížit',\n                back: 'Oddálit'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Změnit na Spojnicový graf',\n                bar: 'Změnit na Sloupcový graf',\n                stack: 'Plošný',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Obnovit'\n        },\n        saveAsImage: {\n            title: 'Uložit jako obrázek',\n            lang: ['Obrázek uložte pravým kliknutím']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Výsečový graf',\n            bar: 'Sloupcový graf',\n            line: 'Spojnicový graf',\n            scatter: 'XY bodový graf',\n            effectScatter: 'Effect XY bodový graf',\n            radar: 'Paprskový graf',\n            tree: 'Strom',\n            treemap: 'Stromová mapa',\n            boxplot: 'Krabicový graf',\n            candlestick: 'Burzovní graf',\n            k: 'K spojnicový graf',\n            heatmap: 'Teplotní mapa',\n            map: 'Mapa',\n            parallel: 'Rovnoběžné souřadnice',\n            lines: 'Spojnicový graf',\n            graph: 'Graf vztahů',\n            sankey: 'Sankeyův diagram',\n            funnel: 'Trychtýř (Funnel)',\n            gauge: 'Indikátor',\n            pictorialBar: 'Obrázkový sloupcový graf',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Vícevrstvý prstencový graf',\n            custom: 'Graficu persunalizatu',\n            chart: 'Graf'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Toto je graf o \"{title}\"',\n            withoutTitle: 'Toto je graf'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: '{seriesName} s typem {seriesType}.',\n                withoutName: ' s typem {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Obsahuje {seriesCount} řad.',\n                withName: ' Řada {seriesId} je typu {seriesType} repreyentující {seriesName}.',\n                withoutName: ' Řada {seriesId} je typu {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Všechna data jsou: ',\n            partialData: 'První {displayCnt} položky jsou: ',\n            withName: 'data pro {name} jsou {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('CS', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langDE-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: German.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',\n            'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun',\n            'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'\n        ],\n        dayOfWeek: [\n            'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'\n        ],\n        dayOfWeekAbbr: [\n            'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Alle',\n            inverse: 'Invertiert'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Box Auswahl',\n                polygon: 'Lasso Auswahl',\n                lineX: 'Horizontale Auswahl',\n                lineY: 'Vertikale Auswahl',\n                keep: 'Bereich Auswahl',\n                clear: 'Auswahl zurücksetzen'\n            }\n        },\n        dataView: {\n            title: 'Daten Ansicht',\n            lang: ['Daten Ansicht', 'Schließen', 'Aktualisieren']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom zurücksetzen'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Zu Liniendiagramm wechseln',\n                bar: 'Zu Balkendiagramm wechseln',\n                stack: 'Stapel',\n                tiled: 'Kachel'\n            }\n        },\n        restore: {\n            title: 'Wiederherstellen'\n        },\n        saveAsImage: {\n            title: 'Als Bild speichern',\n            lang: ['Rechtsklick zum Speichern des Bildes']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Tortendiagramm',\n            bar: 'Balkendiagramm',\n            line: 'Liniendiagramm',\n            scatter: 'Streudiagramm',\n            effectScatter: 'Welligkeits-Streudiagramm',\n            radar: 'Radar-Karte',\n            tree: 'Baum',\n            treemap: 'Baumkarte',\n            boxplot: 'Boxplot',\n            candlestick: 'Kerzenständer',\n            k: 'K Liniendiagramm',\n            heatmap: 'Heatmap',\n            map: 'Karte',\n            parallel: 'Parallele Koordinatenkarte',\n            lines: 'Liniendiagramm',\n            graph: 'Beziehungsgrafik',\n            sankey: 'Sankey-Diagramm',\n            funnel: 'Trichterdiagramm',\n            gauge: 'Meßanzeige',\n            pictorialBar: 'Bildlicher Balken',\n            themeRiver: 'Thematische Flusskarte',\n            sunburst: 'Sonnenausbruch',\n            custom: 'Graficu persunalizatu',\n            chart: 'Diagramm'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Dies ist ein Diagramm über \"{title}\"',\n            withoutTitle: 'Dies ist ein Diagramm'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' mit Typ {seriesType} namens {seriesName}.',\n                withoutName: ' mit Typ {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Es besteht aus {seriesCount} Serienzählung.',\n                withName: ' Die Serie {seriesId} ist ein {seriesType} welcher {seriesName} darstellt.',\n                withoutName: ' Die {seriesId}-Reihe ist ein {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Die Daten sind wie folgt: ',\n            partialData: 'Die ersten {displayCnt} Elemente sind: ',\n            withName: 'die Daten für {name} sind {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ',',\n                end: '.'\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langDE.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: German.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',\n            'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun',\n            'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'\n        ],\n        dayOfWeek: [\n            'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'\n        ],\n        dayOfWeekAbbr: [\n            'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Alle',\n            inverse: 'Invertiert'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Box Auswahl',\n                polygon: 'Lasso Auswahl',\n                lineX: 'Horizontale Auswahl',\n                lineY: 'Vertikale Auswahl',\n                keep: 'Bereich Auswahl',\n                clear: 'Auswahl zurücksetzen'\n            }\n        },\n        dataView: {\n            title: 'Daten Ansicht',\n            lang: ['Daten Ansicht', 'Schließen', 'Aktualisieren']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom zurücksetzen'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Zu Liniendiagramm wechseln',\n                bar: 'Zu Balkendiagramm wechseln',\n                stack: 'Stapel',\n                tiled: 'Kachel'\n            }\n        },\n        restore: {\n            title: 'Wiederherstellen'\n        },\n        saveAsImage: {\n            title: 'Als Bild speichern',\n            lang: ['Rechtsklick zum Speichern des Bildes']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Tortendiagramm',\n            bar: 'Balkendiagramm',\n            line: 'Liniendiagramm',\n            scatter: 'Streudiagramm',\n            effectScatter: 'Welligkeits-Streudiagramm',\n            radar: 'Radar-Karte',\n            tree: 'Baum',\n            treemap: 'Baumkarte',\n            boxplot: 'Boxplot',\n            candlestick: 'Kerzenständer',\n            k: 'K Liniendiagramm',\n            heatmap: 'Heatmap',\n            map: 'Karte',\n            parallel: 'Parallele Koordinatenkarte',\n            lines: 'Liniendiagramm',\n            graph: 'Beziehungsgrafik',\n            sankey: 'Sankey-Diagramm',\n            funnel: 'Trichterdiagramm',\n            gauge: 'Meßanzeige',\n            pictorialBar: 'Bildlicher Balken',\n            themeRiver: 'Thematische Flusskarte',\n            sunburst: 'Sonnenausbruch',\n            custom: 'Graficu persunalizatu',\n            chart: 'Diagramm'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Dies ist ein Diagramm über \"{title}\"',\n            withoutTitle: 'Dies ist ein Diagramm'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' mit Typ {seriesType} namens {seriesName}.',\n                withoutName: ' mit Typ {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Es besteht aus {seriesCount} Serienzählung.',\n                withName: ' Die Serie {seriesId} ist ein {seriesType} welcher {seriesName} darstellt.',\n                withoutName: ' Die {seriesId}-Reihe ist ein {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Die Daten sind wie folgt: ',\n            partialData: 'Die ersten {displayCnt} Elemente sind: ',\n            withName: 'die Daten für {name} sind {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ',',\n                end: '.'\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('DE', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langEL-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Greek.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος',\n            'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'\n        ],\n        monthAbbr: [\n            'Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν',\n            'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'\n        ],\n        dayOfWeek: [\n            'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'\n        ],\n        dayOfWeekAbbr: [\n            'Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Όλα',\n            inverse: 'Αντιστροφή'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Επιλογή με πλαίσιο',\n                polygon: 'Επιλογή με λάσο',\n                lineX: 'Οριζόντια επιλογή',\n                lineY: 'Κατακόρυφη επιλογή',\n                keep: 'Διατήρηση επιλογών',\n                clear: 'Καθαρισμός επιλογών'\n            }\n        },\n        dataView: {\n            title: 'Προβολή δεδομένων',\n            lang: ['Προβολή δεδομένων', 'Κλείσιμο', 'Ανανένωση']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Μεγέθυνση',\n                back: 'Επαναφορά μεγέθυνσης'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Αλλαγή σε γραμμικό διάγραμμα',\n                bar: 'Αλλαγή σε ραβδογράφημα',\n                stack: 'Στοίβα',\n                tiled: 'Πλακίδια'\n            }\n        },\n        restore: {\n            title: 'Επαναφορά'\n        },\n        saveAsImage: {\n            title: 'Αποθήκευση ως εικόνα',\n            lang: ['Δεξί κλικ για αποθήκευση εικόνας']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Γράφημα πίτας',\n            bar: 'Ραβδογράφημα',\n            line: 'Γραμμικό διάγραμμα',\n            scatter: 'Διάγραμμα διασποράς',\n            effectScatter: 'Διάγραμμα διασποράς με κυματισμό',\n            radar: 'Διάγραμμα ραντάρ',\n            tree: 'Δενδρόγραμμα',\n            treemap: 'Διάγραμμα διαμερισματοποίησης',\n            boxplot: 'Γράφημα πλαισίου-απολήξεων',\n            candlestick: 'Διάγραμμα κηροπηγίων',\n            k: 'Διάγραμμα Κ',\n            heatmap: 'Θερμικός χάρτης',\n            map: 'Χάρτης',\n            parallel: 'Χάρτης παράλληλων συντεταγμένων',\n            lines: 'Γράφημα γραμμών',\n            graph: 'Γράφος σχέσεων',\n            sankey: 'Διάγραμμα Sankey',\n            funnel: 'Διάγραμμα χωνιού',\n            gauge: 'Διάγραμμα μετρητή',\n            pictorialBar: 'Εικονογραφικό ραβδογράφημα',\n            themeRiver: 'Γράφημα Ροής Κατηγοριών',\n            sunburst: 'Γράφημα Ιεραρχικών Δακτυλίων',\n            custom: 'Προσαρμοσμένο διάγραμμα',\n            chart: 'Διάγραμμα'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Αυτό είναι ένα διάγραμμα με τίτλο \"{title}\"',\n            withoutTitle: 'Αυτό είναι ένα διάγραμμα'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' με τύπο {seriesType} και όνομα {seriesName}.',\n                withoutName: ' με τύπο {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Αποτελείται από {seriesCount} σειρές δεδομένων.',\n                withName: ' Η σειρά {seriesId} είναι {seriesType} με όνομα {seriesName}.',\n                withoutName: ' Η σειρά {seriesId} είναι {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Τα δεδομένα είναι τα εξής:',\n            partialData: 'Τα πρώτα {displayCnt} στοιχεία είναι: ',\n            withName: 'τα δεδομένα για {name} είναι {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langEL.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Greek.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος',\n            'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'\n        ],\n        monthAbbr: [\n            'Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν',\n            'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'\n        ],\n        dayOfWeek: [\n            'Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'\n        ],\n        dayOfWeekAbbr: [\n            'Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Όλα',\n            inverse: 'Αντιστροφή'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Επιλογή με πλαίσιο',\n                polygon: 'Επιλογή με λάσο',\n                lineX: 'Οριζόντια επιλογή',\n                lineY: 'Κατακόρυφη επιλογή',\n                keep: 'Διατήρηση επιλογών',\n                clear: 'Καθαρισμός επιλογών'\n            }\n        },\n        dataView: {\n            title: 'Προβολή δεδομένων',\n            lang: ['Προβολή δεδομένων', 'Κλείσιμο', 'Ανανένωση']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Μεγέθυνση',\n                back: 'Επαναφορά μεγέθυνσης'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Αλλαγή σε γραμμικό διάγραμμα',\n                bar: 'Αλλαγή σε ραβδογράφημα',\n                stack: 'Στοίβα',\n                tiled: 'Πλακίδια'\n            }\n        },\n        restore: {\n            title: 'Επαναφορά'\n        },\n        saveAsImage: {\n            title: 'Αποθήκευση ως εικόνα',\n            lang: ['Δεξί κλικ για αποθήκευση εικόνας']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Γράφημα πίτας',\n            bar: 'Ραβδογράφημα',\n            line: 'Γραμμικό διάγραμμα',\n            scatter: 'Διάγραμμα διασποράς',\n            effectScatter: 'Διάγραμμα διασποράς με κυματισμό',\n            radar: 'Διάγραμμα ραντάρ',\n            tree: 'Δενδρόγραμμα',\n            treemap: 'Διάγραμμα διαμερισματοποίησης',\n            boxplot: 'Γράφημα πλαισίου-απολήξεων',\n            candlestick: 'Διάγραμμα κηροπηγίων',\n            k: 'Διάγραμμα Κ',\n            heatmap: 'Θερμικός χάρτης',\n            map: 'Χάρτης',\n            parallel: 'Χάρτης παράλληλων συντεταγμένων',\n            lines: 'Γράφημα γραμμών',\n            graph: 'Γράφος σχέσεων',\n            sankey: 'Διάγραμμα Sankey',\n            funnel: 'Διάγραμμα χωνιού',\n            gauge: 'Διάγραμμα μετρητή',\n            pictorialBar: 'Εικονογραφικό ραβδογράφημα',\n            themeRiver: 'Γράφημα Ροής Κατηγοριών',\n            sunburst: 'Γράφημα Ιεραρχικών Δακτυλίων',\n            custom: 'Προσαρμοσμένο διάγραμμα',\n            chart: 'Διάγραμμα'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Αυτό είναι ένα διάγραμμα με τίτλο \"{title}\"',\n            withoutTitle: 'Αυτό είναι ένα διάγραμμα'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' με τύπο {seriesType} και όνομα {seriesName}.',\n                withoutName: ' με τύπο {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Αποτελείται από {seriesCount} σειρές δεδομένων.',\n                withName: ' Η σειρά {seriesId} είναι {seriesType} με όνομα {seriesName}.',\n                withoutName: ' Η σειρά {seriesId} είναι {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Τα δεδομένα είναι τα εξής:',\n            partialData: 'Τα πρώτα {displayCnt} στοιχεία είναι: ',\n            withName: 'τα δεδομένα για {name} είναι {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('EL', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langEN-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: English.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'January', 'February', 'March', 'April', 'May', 'June',\n            'July', 'August', 'September', 'October', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\n        ],\n        dayOfWeekAbbr: [\n            'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'All',\n            inverse: 'Inv'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Box Select',\n                polygon: 'Lasso Select',\n                lineX: 'Horizontally Select',\n                lineY: 'Vertically Select',\n                keep: 'Keep Selections',\n                clear: 'Clear Selections'\n            }\n        },\n        dataView: {\n            title: 'Data View',\n            lang: ['Data View', 'Close', 'Refresh']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom Reset'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Switch to Line Chart',\n                bar: 'Switch to Bar Chart',\n                stack: 'Stack',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Restore'\n        },\n        saveAsImage: {\n            title: 'Save as Image',\n            lang: ['Right Click to Save Image']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Pie chart',\n            bar: 'Bar chart',\n            line: 'Line chart',\n            scatter: 'Scatter plot',\n            effectScatter: 'Ripple scatter plot',\n            radar: 'Radar chart',\n            tree: 'Tree',\n            treemap: 'Treemap',\n            boxplot: 'Boxplot',\n            candlestick: 'Candlestick',\n            k: 'K line chart',\n            heatmap: 'Heat map',\n            map: 'Map',\n            parallel: 'Parallel coordinate map',\n            lines: 'Line graph',\n            graph: 'Relationship graph',\n            sankey: 'Sankey diagram',\n            funnel: 'Funnel chart',\n            gauge: 'Gauge',\n            pictorialBar: 'Pictorial bar',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Sunburst',\n            custom: 'Custom chart',\n            chart: 'Chart'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'This is a chart about \"{title}\"',\n            withoutTitle: 'This is a chart'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' with type {seriesType} named {seriesName}.',\n                withoutName: ' with type {seriesType}.'\n            },\n            multiple: {\n                prefix: '. It consists of {seriesCount} series count.',\n                withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n                withoutName: ' The {seriesId} series is a {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'The data is as follows: ',\n            partialData: 'The first {displayCnt} items are: ',\n            withName: 'the data for {name} is {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langEN.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: English.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'January', 'February', 'March', 'April', 'May', 'June',\n            'July', 'August', 'September', 'October', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\n        ],\n        dayOfWeekAbbr: [\n            'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'All',\n            inverse: 'Inv'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Box Select',\n                polygon: 'Lasso Select',\n                lineX: 'Horizontally Select',\n                lineY: 'Vertically Select',\n                keep: 'Keep Selections',\n                clear: 'Clear Selections'\n            }\n        },\n        dataView: {\n            title: 'Data View',\n            lang: ['Data View', 'Close', 'Refresh']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom Reset'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Switch to Line Chart',\n                bar: 'Switch to Bar Chart',\n                stack: 'Stack',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Restore'\n        },\n        saveAsImage: {\n            title: 'Save as Image',\n            lang: ['Right Click to Save Image']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Pie chart',\n            bar: 'Bar chart',\n            line: 'Line chart',\n            scatter: 'Scatter plot',\n            effectScatter: 'Ripple scatter plot',\n            radar: 'Radar chart',\n            tree: 'Tree',\n            treemap: 'Treemap',\n            boxplot: 'Boxplot',\n            candlestick: 'Candlestick',\n            k: 'K line chart',\n            heatmap: 'Heat map',\n            map: 'Map',\n            parallel: 'Parallel coordinate map',\n            lines: 'Line graph',\n            graph: 'Relationship graph',\n            sankey: 'Sankey diagram',\n            funnel: 'Funnel chart',\n            gauge: 'Gauge',\n            pictorialBar: 'Pictorial bar',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Sunburst',\n            custom: 'Custom chart',\n            chart: 'Chart'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'This is a chart about \"{title}\"',\n            withoutTitle: 'This is a chart'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' with type {seriesType} named {seriesName}.',\n                withoutName: ' with type {seriesType}.'\n            },\n            multiple: {\n                prefix: '. It consists of {seriesCount} series count.',\n                withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n                withoutName: ' The {seriesId} series is a {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'The data is as follows: ',\n            partialData: 'The first {displayCnt} items are: ',\n            withName: 'the data for {name} is {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('EN', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langES-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio',\n            'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'\n        ],\n        monthAbbr: [\n            'ene', 'feb', 'mar', 'abr', 'may', 'jun',\n            'jul', 'ago', 'sep', 'oct', 'nov', 'dic'\n        ],\n        dayOfWeek: [\n            'domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'\n        ],\n        dayOfWeekAbbr: [\n            'dom', 'lun', 'mar', 'mie', 'jue', 'vie', 'sáb'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Todas',\n            inverse: 'Inversa'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selección de cuadro',\n                polygon: 'Selección de lazo',\n                lineX: 'Seleccionar horizontalmente',\n                lineY: 'Seleccionar verticalmente',\n                keep: 'Mantener selección',\n                clear: 'Despejar selecciones'\n            }\n        },\n        dataView: {\n            title: 'Ver datos',\n            lang: ['Ver datos', 'Cerrar', 'Actualizar']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Restablecer zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Cambiar a gráfico de líneas',\n                bar: 'Cambiar a gráfico de barras',\n                stack: 'Pila',\n                tiled: 'Teja'\n            }\n        },\n        restore: {\n            title: 'Restaurar'\n        },\n        saveAsImage: {\n            title: 'Guardar como imagen',\n            lang: ['Clic derecho para guardar imagen']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Gráfico circular',\n            bar: 'Gráfico de barras',\n            line: 'Gráfico de líneas',\n            scatter: 'Diagrama de dispersión',\n            effectScatter: 'Diagrama de dispersión de ondas',\n            radar: 'Gráfico de radar',\n            tree: 'Árbol',\n            treemap: 'Mapa de árbol',\n            boxplot: 'Diagrama de caja',\n            candlestick: 'Gráfico de velas',\n            k: 'Gráfico de líneas K',\n            heatmap: 'Mapa de calor',\n            map: 'Mapa',\n            parallel: 'Mapa de coordenadas paralelas',\n            lines: 'Gráfico de líneas',\n            graph: 'Gráfico de relaciones',\n            sankey: 'Diagrama de Sankey',\n            funnel: 'Gráfico de embudo',\n            gauge: 'Medidor',\n            pictorialBar: 'Gráfico de barras pictóricas',\n            themeRiver: 'Mapa de río temático',\n            sunburst: 'Sunburst',\n            custom: 'Gráfico personalizado',\n            chart: 'Gráfico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Este es un gráfico sobre “{title}”',\n            withoutTitle: 'Este es un gráfico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' con tipo {seriesType} llamado {seriesName}.',\n                withoutName: ' con tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Consta de {seriesCount} series.',\n                withName: ' La serie {seriesId} es un {seriesType} que representa {seriesName}.',\n                withoutName: ' La serie {seriesId} es un {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Los datos son los siguientes: ',\n            partialData: 'Los primeros {displayCnt} elementos son: ',\n            withName: 'los datos para {name} son {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langES.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio',\n            'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'\n        ],\n        monthAbbr: [\n            'ene', 'feb', 'mar', 'abr', 'may', 'jun',\n            'jul', 'ago', 'sep', 'oct', 'nov', 'dic'\n        ],\n        dayOfWeek: [\n            'domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'\n        ],\n        dayOfWeekAbbr: [\n            'dom', 'lun', 'mar', 'mie', 'jue', 'vie', 'sáb'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Todas',\n            inverse: 'Inversa'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selección de cuadro',\n                polygon: 'Selección de lazo',\n                lineX: 'Seleccionar horizontalmente',\n                lineY: 'Seleccionar verticalmente',\n                keep: 'Mantener selección',\n                clear: 'Despejar selecciones'\n            }\n        },\n        dataView: {\n            title: 'Ver datos',\n            lang: ['Ver datos', 'Cerrar', 'Actualizar']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Restablecer zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Cambiar a gráfico de líneas',\n                bar: 'Cambiar a gráfico de barras',\n                stack: 'Pila',\n                tiled: 'Teja'\n            }\n        },\n        restore: {\n            title: 'Restaurar'\n        },\n        saveAsImage: {\n            title: 'Guardar como imagen',\n            lang: ['Clic derecho para guardar imagen']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Gráfico circular',\n            bar: 'Gráfico de barras',\n            line: 'Gráfico de líneas',\n            scatter: 'Diagrama de dispersión',\n            effectScatter: 'Diagrama de dispersión de ondas',\n            radar: 'Gráfico de radar',\n            tree: 'Árbol',\n            treemap: 'Mapa de árbol',\n            boxplot: 'Diagrama de caja',\n            candlestick: 'Gráfico de velas',\n            k: 'Gráfico de líneas K',\n            heatmap: 'Mapa de calor',\n            map: 'Mapa',\n            parallel: 'Mapa de coordenadas paralelas',\n            lines: 'Gráfico de líneas',\n            graph: 'Gráfico de relaciones',\n            sankey: 'Diagrama de Sankey',\n            funnel: 'Gráfico de embudo',\n            gauge: 'Medidor',\n            pictorialBar: 'Gráfico de barras pictóricas',\n            themeRiver: 'Mapa de río temático',\n            sunburst: 'Sunburst',\n            custom: 'Gráfico personalizado',\n            chart: 'Gráfico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Este es un gráfico sobre “{title}”',\n            withoutTitle: 'Este es un gráfico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' con tipo {seriesType} llamado {seriesName}.',\n                withoutName: ' con tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Consta de {seriesCount} series.',\n                withName: ' La serie {seriesId} es un {seriesType} que representa {seriesName}.',\n                withoutName: ' La serie {seriesId} es un {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Los datos son los siguientes: ',\n            partialData: 'Los primeros {displayCnt} elementos son: ',\n            withName: 'los datos para {name} son {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('ES', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFA-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Persian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'بهمن', 'اسفند', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',\n            'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی'\n        ],\n        monthAbbr: [\n            'بهمن', 'اسفند', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',\n            'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی'\n        ],\n        dayOfWeek: [\n            'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'\n        ],\n        dayOfWeekAbbr: [\n            'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'همه',\n            inverse: 'معکوس'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'چهار ضلعی',\n                polygon: 'چند ضلعی',\n                lineX: 'افقی',\n                lineY: 'عمودی',\n                keep: 'قفل کردن',\n                clear: 'پاک کردن'\n            }\n        },\n        dataView: {\n            title: 'نمایش داده‌ها',\n            lang: ['نمایش داده‌ها', 'خروج', 'بارگذاری مجدد']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'بزرگنمایی',\n                back: 'خروج از بزرگنمایی'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'نمودار خطی',\n                bar: 'نمودار میله‌ای',\n                stack: 'پشته',\n                tiled: 'کاشی'\n            }\n        },\n        restore: {\n            title: 'بازگردانی'\n        },\n        saveAsImage: {\n            title: 'ذخیره تصویر',\n            lang: ['راست کلیک برای ذخیره تصویر']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'نمودار دایره‌ای',\n            bar: 'نمودار میله‌ای',\n            line: 'نمودار خطی',\n            scatter: 'طرح پراکنده',\n            effectScatter: 'طرح پراکنده موج دار',\n            radar: 'نمودار راداری',\n            tree: 'درخت',\n            treemap: 'نقشه درختی',\n            boxplot: 'طرح جعبه‌',\n            candlestick: 'شمعی',\n            k: 'نمودار خطی k',\n            heatmap: 'نقشه گرمایی',\n            map: 'نقشه',\n            parallel: 'نقشه مختصات موازی',\n            lines: 'گراف خطی',\n            graph: 'گراف ارتباط',\n            sankey: 'دیاگرام سنکی',\n            funnel: 'نمودار قیفی',\n            gauge: 'اندازه گیر',\n            pictorialBar: 'نوار تصویری',\n            themeRiver: 'نقشه رودخانه رنگی',\n            sunburst: 'آفتاب زدگی',\n            custom: 'نمودار سفارشی',\n            chart: 'نمودار'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'نمودار مربوط به \"{title}\"',\n            withoutTitle: 'این یک نمودار است'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: 'با نوع {seriesType} و نام {seriesName}.',\n                withoutName: 'با نوع {seriesType}.'\n            },\n            multiple: {\n                prefix: '. تشکیل شده از {seriesCount} سری.',\n                withName: '{seriesId} سری نوعی از {seriesType} به نام {seriesName} است.',\n                withoutName: 'سری {seriesId} نوعی از {seriesType} است.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'دیتای نمونه: ',\n            partialData: 'اولین عنصر از {displayCnt}:',\n            withName: 'مقدار {name}, {value} است',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFA.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Persian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'بهمن', 'اسفند', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',\n            'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی'\n        ],\n        monthAbbr: [\n            'بهمن', 'اسفند', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',\n            'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی'\n        ],\n        dayOfWeek: [\n            'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'\n        ],\n        dayOfWeekAbbr: [\n            'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'همه',\n            inverse: 'معکوس'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'چهار ضلعی',\n                polygon: 'چند ضلعی',\n                lineX: 'افقی',\n                lineY: 'عمودی',\n                keep: 'قفل کردن',\n                clear: 'پاک کردن'\n            }\n        },\n        dataView: {\n            title: 'نمایش داده‌ها',\n            lang: ['نمایش داده‌ها', 'خروج', 'بارگذاری مجدد']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'بزرگنمایی',\n                back: 'خروج از بزرگنمایی'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'نمودار خطی',\n                bar: 'نمودار میله‌ای',\n                stack: 'پشته',\n                tiled: 'کاشی'\n            }\n        },\n        restore: {\n            title: 'بازگردانی'\n        },\n        saveAsImage: {\n            title: 'ذخیره تصویر',\n            lang: ['راست کلیک برای ذخیره تصویر']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'نمودار دایره‌ای',\n            bar: 'نمودار میله‌ای',\n            line: 'نمودار خطی',\n            scatter: 'طرح پراکنده',\n            effectScatter: 'طرح پراکنده موج دار',\n            radar: 'نمودار راداری',\n            tree: 'درخت',\n            treemap: 'نقشه درختی',\n            boxplot: 'طرح جعبه‌',\n            candlestick: 'شمعی',\n            k: 'نمودار خطی k',\n            heatmap: 'نقشه گرمایی',\n            map: 'نقشه',\n            parallel: 'نقشه مختصات موازی',\n            lines: 'گراف خطی',\n            graph: 'گراف ارتباط',\n            sankey: 'دیاگرام سنکی',\n            funnel: 'نمودار قیفی',\n            gauge: 'اندازه گیر',\n            pictorialBar: 'نوار تصویری',\n            themeRiver: 'نقشه رودخانه رنگی',\n            sunburst: 'آفتاب زدگی',\n            custom: 'نمودار سفارشی',\n            chart: 'نمودار'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'نمودار مربوط به \"{title}\"',\n            withoutTitle: 'این یک نمودار است'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: 'با نوع {seriesType} و نام {seriesName}.',\n                withoutName: 'با نوع {seriesType}.'\n            },\n            multiple: {\n                prefix: '. تشکیل شده از {seriesCount} سری.',\n                withName: '{seriesId} سری نوعی از {seriesType} به نام {seriesName} است.',\n                withoutName: 'سری {seriesId} نوعی از {seriesType} است.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'دیتای نمونه: ',\n            partialData: 'اولین عنصر از {displayCnt}:',\n            withName: 'مقدار {name}, {value} است',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('FA', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFI-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', 'toukokuuta', 'kesäkuuta',\n            'heinäkuuta', 'elokuuta', 'syyskuuta', 'lokakuuta', 'marraskuuta', 'joulukuuta'\n        ],\n        monthAbbr: [\n            'tammik', 'helmik', 'maalisk', 'huhtik', 'toukok', 'kesäk',\n            'heinäk', 'elok', 'syysk', 'lokak', 'marrask', 'jouluk'\n        ],\n        dayOfWeek: [\n            'sunnuntaina', 'maanantaina', 'tiistaina', 'keskiviikkona', 'torstaina', 'perjantaina', 'lauantaina'\n        ],\n        dayOfWeekAbbr: [\n            'su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Kaikki',\n            inverse: 'Käänteinen'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Laatikko valinta',\n                polygon: 'Lasso valinta',\n                lineX: 'Vaakataso valinta',\n                lineY: 'Pysty valinta',\n                keep: 'Pidä valinta',\n                clear: 'Poista valinta'\n            }\n        },\n        dataView: {\n            title: 'Data näkymä',\n            lang: ['Data näkymä', 'Sulje', 'Päivitä']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoomaa',\n                back: 'Zoomin nollaus'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Vaihda Viivakaavioon',\n                bar: 'Vaihda palkkikaavioon',\n                stack: 'Pinoa',\n                tiled: 'Erottele'\n            }\n        },\n        restore: {\n            title: 'Palauta'\n        },\n        saveAsImage: {\n            title: 'Tallenna kuvana',\n            lang: ['Paina oikeaa hiirennappia tallentaaksesi kuva']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Ympyrädiagrammi',\n            bar: 'Pylväsdiagrammi',\n            line: 'Viivakaavio',\n            scatter: 'Pisteplot',\n            effectScatter: 'Ripple-pisteplot',\n            radar: 'Sädekaavio',\n            tree: 'Puu',\n            treemap: 'Tilastoaluekartta',\n            boxplot: 'Viivadiagrammi',\n            candlestick: 'Kynttiläkaavio',\n            k: 'K-linjakaavio',\n            heatmap: 'Lämpökartta',\n            map: 'Kartta',\n            parallel: 'Rinnakkaiskoordinaattikartta',\n            lines: 'Viivakuvaaja',\n            graph: 'Suhdekuvaaja',\n            sankey: 'Sankey-kaavio',\n            funnel: 'Suppilokaavio',\n            gauge: 'Mittari',\n            pictorialBar: 'Kuvallinen pylväs',\n            themeRiver: 'Teemajokikartta',\n            sunburst: 'Auringonkehä',\n            custom: 'Mukautettu kaavio',\n            chart: 'Kaavio'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Tämä on kaavio “{title}”',\n            withoutTitle: 'Tämä on kaavio'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' tyyppiä {seriesType} nimeltään {seriesName}.',\n                withoutName: ' tyyppiä {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Se koostuu {seriesCount} sarjasta.',\n                withName: ' Sarja {seriesId} on {seriesType}, joka edustaa {seriesName}.',\n                withoutName: ' Sarja {seriesId} on {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Tiedot ovat seuraavat: ',\n            partialData: 'Ensimmäiset {displayCnt} kohtaa ovat: ',\n            withName: 'tiedot nimelle {name} ovat {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFI.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', 'toukokuuta', 'kesäkuuta',\n            'heinäkuuta', 'elokuuta', 'syyskuuta', 'lokakuuta', 'marraskuuta', 'joulukuuta'\n        ],\n        monthAbbr: [\n            'tammik', 'helmik', 'maalisk', 'huhtik', 'toukok', 'kesäk',\n            'heinäk', 'elok', 'syysk', 'lokak', 'marrask', 'jouluk'\n        ],\n        dayOfWeek: [\n            'sunnuntaina', 'maanantaina', 'tiistaina', 'keskiviikkona', 'torstaina', 'perjantaina', 'lauantaina'\n        ],\n        dayOfWeekAbbr: [\n            'su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Kaikki',\n            inverse: 'Käänteinen'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Laatikko valinta',\n                polygon: 'Lasso valinta',\n                lineX: 'Vaakataso valinta',\n                lineY: 'Pysty valinta',\n                keep: 'Pidä valinta',\n                clear: 'Poista valinta'\n            }\n        },\n        dataView: {\n            title: 'Data näkymä',\n            lang: ['Data näkymä', 'Sulje', 'Päivitä']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoomaa',\n                back: 'Zoomin nollaus'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Vaihda Viivakaavioon',\n                bar: 'Vaihda palkkikaavioon',\n                stack: 'Pinoa',\n                tiled: 'Erottele'\n            }\n        },\n        restore: {\n            title: 'Palauta'\n        },\n        saveAsImage: {\n            title: 'Tallenna kuvana',\n            lang: ['Paina oikeaa hiirennappia tallentaaksesi kuva']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Ympyrädiagrammi',\n            bar: 'Pylväsdiagrammi',\n            line: 'Viivakaavio',\n            scatter: 'Pisteplot',\n            effectScatter: 'Ripple-pisteplot',\n            radar: 'Sädekaavio',\n            tree: 'Puu',\n            treemap: 'Tilastoaluekartta',\n            boxplot: 'Viivadiagrammi',\n            candlestick: 'Kynttiläkaavio',\n            k: 'K-linjakaavio',\n            heatmap: 'Lämpökartta',\n            map: 'Kartta',\n            parallel: 'Rinnakkaiskoordinaattikartta',\n            lines: 'Viivakuvaaja',\n            graph: 'Suhdekuvaaja',\n            sankey: 'Sankey-kaavio',\n            funnel: 'Suppilokaavio',\n            gauge: 'Mittari',\n            pictorialBar: 'Kuvallinen pylväs',\n            themeRiver: 'Teemajokikartta',\n            sunburst: 'Auringonkehä',\n            custom: 'Mukautettu kaavio',\n            chart: 'Kaavio'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Tämä on kaavio “{title}”',\n            withoutTitle: 'Tämä on kaavio'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' tyyppiä {seriesType} nimeltään {seriesName}.',\n                withoutName: ' tyyppiä {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Se koostuu {seriesCount} sarjasta.',\n                withName: ' Sarja {seriesId} on {seriesType}, joka edustaa {seriesName}.',\n                withoutName: ' Sarja {seriesId} on {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Tiedot ovat seuraavat: ',\n            partialData: 'Ensimmäiset {displayCnt} kohtaa ovat: ',\n            withName: 'tiedot nimelle {name} ovat {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('FI', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFR-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Français.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\n            'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'\n        ],\n        monthAbbr: [\n            'Jan', 'Fév', 'Mars', 'Avr', 'Mai', 'Juin',\n            'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Déc'\n        ],\n        dayOfWeek: [\n            'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'\n        ],\n        dayOfWeekAbbr: [\n            'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tout',\n            inverse: 'Inverse'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Sélection rectangulaire',\n                polygon: 'Sélection au lasso',\n                lineX: 'Sélectionner horizontalement',\n                lineY: 'Sélectionner verticalement',\n                keep: 'Garder la sélection',\n                clear: 'Effacer la sélection'\n            }\n        },\n        dataView: {\n            title: 'Visualisation des données',\n            lang: ['Visualisation des données', 'Fermer', 'Rafraîchir']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom Remise à zéro'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Changer pour Ligne',\n                bar: 'Changer pour Histogramme',\n                stack: 'Superposition',\n                tiled: 'Tuile'\n            }\n        },\n        restore: {\n            title: 'Restaurer'\n        },\n        saveAsImage: {\n            title: 'Sauvegarder l\\'image',\n            lang: ['Clic droit pour sauvegarder l\\'image']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Camembert',\n            bar: 'Histogramme',\n            line: 'Ligne',\n            scatter: 'Nuage de points',\n            effectScatter: 'Nuage de points stylisé',\n            radar: 'Radar',\n            tree: 'Arbre',\n            treemap: 'Treemap',\n            boxplot: 'Boîte à moustaches',\n            candlestick: 'Chandelier',\n            k: 'Linéaire K',\n            heatmap: 'Carte de fréquentation',\n            map: 'Carte',\n            parallel: 'Données parallèles',\n            lines: 'Lignes',\n            graph: 'Graphe',\n            sankey: 'Sankey',\n            funnel: 'Entonnoir',\n            gauge: 'Jauge',\n            pictorialBar: 'Barres à images',\n            themeRiver: 'Stream Graph',\n            sunburst: 'Sunburst',\n            custom: 'Graphique personnalisé',\n            chart: 'Graphique'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Cette carte est intitulée \"{title}\"',\n            withoutTitle: 'C\\'est une carte'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' Avec le type de {seriesType} qui s\\'appelle {seriesName}.',\n                withoutName: ' Avec le type de {seriesType}.'\n            },\n            multiple: {\n                prefix: ' Elle comprend {seriesCount} séries.',\n                withName: ' La série {seriesId} représente {seriesName} de {seriesType}.',\n                withoutName: ' La série {seriesId} est un/une {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Les données sont: ',\n            partialData: 'Les premiers {displayCnt} éléments sont : ',\n            withName: 'Les données pour {name} sont {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langFR.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Français.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\n            'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'\n        ],\n        monthAbbr: [\n            'Jan', 'Fév', 'Mars', 'Avr', 'Mai', 'Juin',\n            'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Déc'\n        ],\n        dayOfWeek: [\n            'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'\n        ],\n        dayOfWeekAbbr: [\n            'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tout',\n            inverse: 'Inverse'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Sélection rectangulaire',\n                polygon: 'Sélection au lasso',\n                lineX: 'Sélectionner horizontalement',\n                lineY: 'Sélectionner verticalement',\n                keep: 'Garder la sélection',\n                clear: 'Effacer la sélection'\n            }\n        },\n        dataView: {\n            title: 'Visualisation des données',\n            lang: ['Visualisation des données', 'Fermer', 'Rafraîchir']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom Remise à zéro'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Changer pour Ligne',\n                bar: 'Changer pour Histogramme',\n                stack: 'Superposition',\n                tiled: 'Tuile'\n            }\n        },\n        restore: {\n            title: 'Restaurer'\n        },\n        saveAsImage: {\n            title: 'Sauvegarder l\\'image',\n            lang: ['Clic droit pour sauvegarder l\\'image']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Camembert',\n            bar: 'Histogramme',\n            line: 'Ligne',\n            scatter: 'Nuage de points',\n            effectScatter: 'Nuage de points stylisé',\n            radar: 'Radar',\n            tree: 'Arbre',\n            treemap: 'Treemap',\n            boxplot: 'Boîte à moustaches',\n            candlestick: 'Chandelier',\n            k: 'Linéaire K',\n            heatmap: 'Carte de fréquentation',\n            map: 'Carte',\n            parallel: 'Données parallèles',\n            lines: 'Lignes',\n            graph: 'Graphe',\n            sankey: 'Sankey',\n            funnel: 'Entonnoir',\n            gauge: 'Jauge',\n            pictorialBar: 'Barres à images',\n            themeRiver: 'Stream Graph',\n            sunburst: 'Sunburst',\n            custom: 'Graphique personnalisé',\n            chart: 'Graphique'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Cette carte est intitulée \"{title}\"',\n            withoutTitle: 'C\\'est une carte'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' Avec le type de {seriesType} qui s\\'appelle {seriesName}.',\n                withoutName: ' Avec le type de {seriesType}.'\n            },\n            multiple: {\n                prefix: ' Elle comprend {seriesCount} séries.',\n                withName: ' La série {seriesId} représente {seriesName} de {seriesType}.',\n                withoutName: ' La série {seriesId} est un/une {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Les données sont: ',\n            partialData: 'Les premiers {displayCnt} éléments sont : ',\n            withName: 'Les données pour {name} sont {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('FR', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langHU-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Hungarian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Január', 'Február', 'Március', 'Április', 'Május', 'Június',\n            'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',\n            'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'\n        ],\n        dayOfWeekAbbr: [\n            'V', 'H', 'K', 'Sze', 'Csü', 'P', 'Szo'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Mind',\n            inverse: 'Inverz'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Négyzet kijelölés',\n                polygon: 'Lasszó kijelölés',\n                lineX: 'Vízszintes kijelölés',\n                lineY: 'Függőleges kijelölés',\n                keep: 'Kijelölések megtartása',\n                clear: 'Kijelölések törlése'\n            }\n        },\n        dataView: {\n            title: 'Adat nézet',\n            lang: ['Adat nézet', 'Bezárás', 'Frissítés']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Nagyítás',\n                back: 'Alapméret'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Váltás vonal diagramra',\n                bar: 'Váltás oszlop diagramra',\n                stack: 'Halmozás',\n                tiled: 'Csempe'\n            }\n        },\n        restore: {\n            title: 'Visszaállítás'\n        },\n        saveAsImage: {\n            title: 'Mentés képként',\n            lang: ['Kattints jobb egérgombbal a mentéshez képként']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Oszlopdiagram',\n            bar: 'Sávdiagram',\n            line: 'Vonaldiagram',\n            scatter: 'Pontdiagram',\n            effectScatter: 'Buborékdiagram',\n            radar: 'Sugárdiagram',\n            tree: 'Fa',\n            treemap: 'Fatérkép',\n            boxplot: 'Dobozdiagram',\n            candlestick: 'Árfolyamdiagram',\n            k: 'K vonaldiagram',\n            heatmap: 'Hőtérkép',\n            map: 'Térkép',\n            parallel: 'Párhuzamos koordináta térkép',\n            lines: 'Vonalgráf',\n            graph: 'Kapcsolatgráf',\n            sankey: 'Sankey-diagram',\n            funnel: 'Vízesésdiagram',\n            gauge: 'Mérőeszköz',\n            pictorialBar: 'Képes sávdiagram',\n            themeRiver: 'Folyó témájú térkép',\n            sunburst: 'Napégés',\n            custom: 'Egyedi diagram',\n            chart: 'Diagram'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Ez egy diagram, amely neve \"{title}\"',\n            withoutTitle: 'Ez egy diagram'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' típusa {seriesType} és elnevezése {seriesName}.',\n                withoutName: ' típusa {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Az adatsorok száma {seriesCount}.',\n                withName: ' A {seriesId} számú adatsor típusa {seriesType} és neve {seriesName}.',\n                withoutName: ' A {seriesId} számú adatsor típusa {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Az adatok a következők: ',\n            partialData: 'Az első {displayCnt} elemek: ',\n            withName: 'a {name} nevű adat értéke {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langHU.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Hungarian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Január', 'Február', 'Március', 'Április', 'Május', 'Június',\n            'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',\n            'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'\n        ],\n        dayOfWeekAbbr: [\n            'V', 'H', 'K', 'Sze', 'Csü', 'P', 'Szo'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Mind',\n            inverse: 'Inverz'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Négyzet kijelölés',\n                polygon: 'Lasszó kijelölés',\n                lineX: 'Vízszintes kijelölés',\n                lineY: 'Függőleges kijelölés',\n                keep: 'Kijelölések megtartása',\n                clear: 'Kijelölések törlése'\n            }\n        },\n        dataView: {\n            title: 'Adat nézet',\n            lang: ['Adat nézet', 'Bezárás', 'Frissítés']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Nagyítás',\n                back: 'Alapméret'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Váltás vonal diagramra',\n                bar: 'Váltás oszlop diagramra',\n                stack: 'Halmozás',\n                tiled: 'Csempe'\n            }\n        },\n        restore: {\n            title: 'Visszaállítás'\n        },\n        saveAsImage: {\n            title: 'Mentés képként',\n            lang: ['Kattints jobb egérgombbal a mentéshez képként']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Oszlopdiagram',\n            bar: 'Sávdiagram',\n            line: 'Vonaldiagram',\n            scatter: 'Pontdiagram',\n            effectScatter: 'Buborékdiagram',\n            radar: 'Sugárdiagram',\n            tree: 'Fa',\n            treemap: 'Fatérkép',\n            boxplot: 'Dobozdiagram',\n            candlestick: 'Árfolyamdiagram',\n            k: 'K vonaldiagram',\n            heatmap: 'Hőtérkép',\n            map: 'Térkép',\n            parallel: 'Párhuzamos koordináta térkép',\n            lines: 'Vonalgráf',\n            graph: 'Kapcsolatgráf',\n            sankey: 'Sankey-diagram',\n            funnel: 'Vízesésdiagram',\n            gauge: 'Mérőeszköz',\n            pictorialBar: 'Képes sávdiagram',\n            themeRiver: 'Folyó témájú térkép',\n            sunburst: 'Napégés',\n            custom: 'Egyedi diagram',\n            chart: 'Diagram'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Ez egy diagram, amely neve \"{title}\"',\n            withoutTitle: 'Ez egy diagram'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' típusa {seriesType} és elnevezése {seriesName}.',\n                withoutName: ' típusa {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Az adatsorok száma {seriesCount}.',\n                withName: ' A {seriesId} számú adatsor típusa {seriesType} és neve {seriesName}.',\n                withoutName: ' A {seriesId} számú adatsor típusa {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Az adatok a következők: ',\n            partialData: 'Az első {displayCnt} elemek: ',\n            withName: 'a {name} nevű adat értéke {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('HU', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langIT-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Italian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\n            'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'\n        ],\n        monthAbbr: [\n            'Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu',\n            'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'\n        ],\n        dayOfWeek: [\n            'Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'\n        ],\n        dayOfWeekAbbr: [\n            'Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tutti',\n            inverse: 'Inverso'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selezione rettangolare',\n                polygon: 'Selezione lazo',\n                lineX: 'Selezione orizzontale',\n                lineY: 'Selezione verticale',\n                keep: 'Mantieni selezione',\n                clear: 'Rimuovi selezione'\n            }\n        },\n        dataView: {\n            title: 'Visualizzazione dati',\n            lang: ['Visualizzazione dati', 'Chiudi', 'Aggiorna']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Resetta zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Passa al grafico a linee',\n                bar: 'Passa al grafico a barre',\n                stack: 'Pila',\n                tiled: 'Piastrella'\n            }\n        },\n        restore: {\n            title: 'Ripristina'\n        },\n        saveAsImage: {\n            title: 'Salva come immagine',\n            lang: ['Tasto destro per salvare l\\'immagine']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Grafico a torta',\n            bar: 'Grafico a barre',\n            line: 'Grafico a linee',\n            scatter: 'Grafico a dispersione',\n            effectScatter: 'Ripple scatter plot',\n            radar: 'Grafico radar',\n            tree: 'Albero',\n            treemap: 'Treemap',\n            boxplot: 'Diagramma a scatola e baffi',\n            candlestick: 'Candlestick',\n            k: 'K line chart',\n            heatmap: 'Mappa di calore',\n            map: 'Mappa',\n            parallel: 'Grafico a coordinate parallele',\n            lines: 'Grafico a linee',\n            graph: 'Diagramma delle relazioni',\n            sankey: 'Diagramma di Sankey',\n            funnel: 'Grafico a imbuto',\n            gauge: 'Gauge',\n            pictorialBar: 'Pictorial bar',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Radiale',\n            custom: 'Egyedi diagram',\n            chart: 'Grafico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Questo è un grafico su \"{title}\"',\n            withoutTitle: 'Questo è un grafico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' con il tipo {seriesType} denominato {seriesName}.',\n                withoutName: ' con il tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. È composto da {seriesCount} serie.',\n                withName: ' La {seriesId} serie è un {seriesType} denominata {seriesName}.',\n                withoutName: ' la {seriesId} serie è un {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'I dati sono come segue: ',\n            partialData: 'I primi {displayCnt} elementi sono: ',\n            withName: 'il dato per {name} è {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langIT.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Italian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\n            'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'\n        ],\n        monthAbbr: [\n            'Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu',\n            'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'\n        ],\n        dayOfWeek: [\n            'Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'\n        ],\n        dayOfWeekAbbr: [\n            'Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tutti',\n            inverse: 'Inverso'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selezione rettangolare',\n                polygon: 'Selezione lazo',\n                lineX: 'Selezione orizzontale',\n                lineY: 'Selezione verticale',\n                keep: 'Mantieni selezione',\n                clear: 'Rimuovi selezione'\n            }\n        },\n        dataView: {\n            title: 'Visualizzazione dati',\n            lang: ['Visualizzazione dati', 'Chiudi', 'Aggiorna']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Resetta zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Passa al grafico a linee',\n                bar: 'Passa al grafico a barre',\n                stack: 'Pila',\n                tiled: 'Piastrella'\n            }\n        },\n        restore: {\n            title: 'Ripristina'\n        },\n        saveAsImage: {\n            title: 'Salva come immagine',\n            lang: ['Tasto destro per salvare l\\'immagine']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Grafico a torta',\n            bar: 'Grafico a barre',\n            line: 'Grafico a linee',\n            scatter: 'Grafico a dispersione',\n            effectScatter: 'Ripple scatter plot',\n            radar: 'Grafico radar',\n            tree: 'Albero',\n            treemap: 'Treemap',\n            boxplot: 'Diagramma a scatola e baffi',\n            candlestick: 'Candlestick',\n            k: 'K line chart',\n            heatmap: 'Mappa di calore',\n            map: 'Mappa',\n            parallel: 'Grafico a coordinate parallele',\n            lines: 'Grafico a linee',\n            graph: 'Diagramma delle relazioni',\n            sankey: 'Diagramma di Sankey',\n            funnel: 'Grafico a imbuto',\n            gauge: 'Gauge',\n            pictorialBar: 'Pictorial bar',\n            themeRiver: 'Theme River Map',\n            sunburst: 'Radiale',\n            custom: 'Egyedi diagram',\n            chart: 'Grafico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Questo è un grafico su \"{title}\"',\n            withoutTitle: 'Questo è un grafico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' con il tipo {seriesType} denominato {seriesName}.',\n                withoutName: ' con il tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. È composto da {seriesCount} serie.',\n                withName: ' La {seriesId} serie è un {seriesType} denominata {seriesName}.',\n                withoutName: ' la {seriesId} serie è un {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'I dati sono come segue: ',\n            partialData: 'I primi {displayCnt} elementi sono: ',\n            withName: 'il dato per {name} è {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('IT', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langJA-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Japanese.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            '一月', '二月', '三月', '四月', '五月', '六月',\n            '七月', '八月', '九月', '十月', '十一月', '十二月'\n        ],\n        monthAbbr: [\n            '1月', '2月', '3月', '4月', '5月', '6月',\n            '7月', '8月', '9月', '10月', '11月', '12月'\n        ],\n        dayOfWeek: [\n            '日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'\n        ],\n        dayOfWeekAbbr: [\n            '日', '月', '火', '水', '木', '金', '土'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'すべてを選択',\n            inverse: '選択範囲を反転'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '矩形選択',\n                polygon: 'なげなわ選択',\n                lineX: '横方向に選択',\n                lineY: '縦方向に選択',\n                keep: '選択範囲を維持',\n                clear: '選択範囲をクリア'\n            }\n        },\n        dataView: {\n            title: 'データビュー',\n            lang: ['データビュー', '閉じる', 'リロード']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'ズーム',\n                back: 'リセット'\n            }\n        },\n        magicType: {\n            title: {\n                line: '折れ線に切り替え',\n                bar: '棒に切り替え',\n                stack: '積み上げに切り替え',\n                tiled: 'タイル状に切り替え'\n            }\n        },\n        restore: {\n            title: '復元'\n        },\n        saveAsImage: {\n            title: '図として保存',\n            lang: ['右クリックして図を保存']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '円グラフ',\n            bar: '棒グラフ',\n            line: '折れ線グラフ',\n            scatter: '散布図',\n            effectScatter: 'エフェクト散布図',\n            radar: 'レーダーチャート',\n            tree: '階層グラフ',\n            treemap: 'ツリーマップ',\n            boxplot: '箱ひげ図',\n            candlestick: 'Kチャート',\n            k: 'Kチャート',\n            heatmap: 'ヒートマップ',\n            map: '地図',\n            parallel: 'パラレルチャート',\n            lines: 'ラインチャート',\n            graph: '相関図',\n            sankey: 'サンキーダイアグラム',\n            funnel: 'ファネルグラフ',\n            gauge: 'ゲージ',\n            pictorialBar: '絵入り棒グラフ',\n            themeRiver: 'テーマリバー',\n            sunburst: 'サンバースト',\n            custom: 'カスタムチャート',\n            chart: 'チャート'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'これは「{title}」に関するチャートです。',\n            withoutTitle: 'これはチャートで、'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: 'チャートのタイプは{seriesType}で、{seriesName}を示しています。',\n                withoutName: 'チャートのタイプは{seriesType}です。'\n            },\n            multiple: {\n                prefix: '{seriesCount}つのチャートシリーズによって構成されています。',\n                withName: '{seriesId}番目のシリーズは{seriesName}を示した{seriesType}で、',\n                withoutName: '{seriesId}番目のシリーズは{seriesType}で、',\n                separator: {\n                    middle: '；',\n                    end: '。'\n                }\n            }\n        },\n        data: {\n            allData: 'データは：',\n            partialData: 'その内、{displayCnt}番目までは：',\n            withName: '{name}のデータは{value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '、',\n                end: ''\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langJA.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Japanese.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            '一月', '二月', '三月', '四月', '五月', '六月',\n            '七月', '八月', '九月', '十月', '十一月', '十二月'\n        ],\n        monthAbbr: [\n            '1月', '2月', '3月', '4月', '5月', '6月',\n            '7月', '8月', '9月', '10月', '11月', '12月'\n        ],\n        dayOfWeek: [\n            '日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'\n        ],\n        dayOfWeekAbbr: [\n            '日', '月', '火', '水', '木', '金', '土'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'すべてを選択',\n            inverse: '選択範囲を反転'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '矩形選択',\n                polygon: 'なげなわ選択',\n                lineX: '横方向に選択',\n                lineY: '縦方向に選択',\n                keep: '選択範囲を維持',\n                clear: '選択範囲をクリア'\n            }\n        },\n        dataView: {\n            title: 'データビュー',\n            lang: ['データビュー', '閉じる', 'リロード']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'ズーム',\n                back: 'リセット'\n            }\n        },\n        magicType: {\n            title: {\n                line: '折れ線に切り替え',\n                bar: '棒に切り替え',\n                stack: '積み上げに切り替え',\n                tiled: 'タイル状に切り替え'\n            }\n        },\n        restore: {\n            title: '復元'\n        },\n        saveAsImage: {\n            title: '図として保存',\n            lang: ['右クリックして図を保存']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '円グラフ',\n            bar: '棒グラフ',\n            line: '折れ線グラフ',\n            scatter: '散布図',\n            effectScatter: 'エフェクト散布図',\n            radar: 'レーダーチャート',\n            tree: '階層グラフ',\n            treemap: 'ツリーマップ',\n            boxplot: '箱ひげ図',\n            candlestick: 'Kチャート',\n            k: 'Kチャート',\n            heatmap: 'ヒートマップ',\n            map: '地図',\n            parallel: 'パラレルチャート',\n            lines: 'ラインチャート',\n            graph: '相関図',\n            sankey: 'サンキーダイアグラム',\n            funnel: 'ファネルグラフ',\n            gauge: 'ゲージ',\n            pictorialBar: '絵入り棒グラフ',\n            themeRiver: 'テーマリバー',\n            sunburst: 'サンバースト',\n            custom: 'カスタムチャート',\n            chart: 'チャート'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'これは「{title}」に関するチャートです。',\n            withoutTitle: 'これはチャートで、'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: 'チャートのタイプは{seriesType}で、{seriesName}を示しています。',\n                withoutName: 'チャートのタイプは{seriesType}です。'\n            },\n            multiple: {\n                prefix: '{seriesCount}つのチャートシリーズによって構成されています。',\n                withName: '{seriesId}番目のシリーズは{seriesName}を示した{seriesType}で、',\n                withoutName: '{seriesId}番目のシリーズは{seriesType}で、',\n                separator: {\n                    middle: '；',\n                    end: '。'\n                }\n            }\n        },\n        data: {\n            allData: 'データは：',\n            partialData: 'その内、{displayCnt}番目までは：',\n            withName: '{name}のデータは{value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '、',\n                end: ''\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('JA', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langKO-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Korean.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            '1월', '2월', '3월', '4월', '5월', '6월',\n            '7월', '8월', '9월', '10월', '11월', '12월'\n        ],\n        monthAbbr: [\n            '1월', '2월', '3월', '4월', '5월', '6월',\n            '7월', '8월', '9월', '10월', '11월', '12월'\n        ],\n        dayOfWeek: [\n            '일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'\n        ],\n        dayOfWeekAbbr: [\n            '일', '월', '화', '수', '목', '금', '토'\n        ]\n    },\n    legend: {\n        selector: {\n            all: '모두 선택',\n            inverse: '선택 범위 반전'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '사각형 선택',\n                polygon: '올가미 선택',\n                lineX: '수평 선택',\n                lineY: '수직 선택',\n                keep: '선택 유지',\n                clear: '선택 지우기'\n            }\n        },\n        dataView: {\n            title: '날짜 보기',\n            lang: ['날짜 보기', '닫기', '새로 고침']\n        },\n        dataZoom: {\n            title: {\n                zoom: '확대/축소',\n                back: '확대/축소 초기화'\n            }\n        },\n        magicType: {\n            title: {\n                line: '꺽은선 그래프로 변경',\n                bar: '막대 그래프로 변경',\n                stack: '스택',\n                tiled: '타일'\n            }\n        },\n        restore: {\n            title: '복구'\n        },\n        saveAsImage: {\n            title: '이미지로 저장',\n            lang: ['이미지를 저장하려면 마우스 오른쪽 버튼을 클릭하세요.']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '원 그래프',\n            bar: '막대 그래프',\n            line: '꺽은선 그래프',\n            scatter: '산점도',\n            effectScatter: '물결 효과 산점도',\n            radar: '방사형 그래프',\n            tree: '트리',\n            treemap: '트리맵',\n            boxplot: '상자 수염 그래프',\n            candlestick: '캔들스틱 차트',\n            k: 'K 라인 차트',\n            heatmap: '히트 맵',\n            map: '지도',\n            parallel: '평행 좌표 맵',\n            lines: '선',\n            graph: '관계 그래프',\n            sankey: '산키 다이어그램',\n            funnel: '깔때기형 그래프',\n            gauge: '계기',\n            pictorialBar: '픽토그램 차트',\n            themeRiver: '스트림 그래프',\n            sunburst: '선버스트 차트',\n            custom: '맞춤 차트',\n            chart: '차트'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: '\"{title}\"에 대한 차트입니다.',\n            withoutTitle: '차트입니다.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' 차트 유형은 {seriesType}이며 {seriesName}을 표시합니다.',\n                withoutName: ' 차트 유형은 {seriesType}입니다.'\n            },\n            multiple: {\n                prefix: '. {seriesCount} 하나의 차트 시리즈로 구성됩니다.',\n                withName: ' {seriesId}번째 시리즈는 {seriesName}을 나타내는 {seriesType} representing.',\n                withoutName: ' {seriesId}번째 시리즈는 {seriesType}입니다.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: '데이터: ',\n            partialData: '첫번째 {displayCnt} 아이템: ',\n            withName: '{name}의 데이터는 {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langKO.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Korean.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            '1월', '2월', '3월', '4월', '5월', '6월',\n            '7월', '8월', '9월', '10월', '11월', '12월'\n        ],\n        monthAbbr: [\n            '1월', '2월', '3월', '4월', '5월', '6월',\n            '7월', '8월', '9월', '10월', '11월', '12월'\n        ],\n        dayOfWeek: [\n            '일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'\n        ],\n        dayOfWeekAbbr: [\n            '일', '월', '화', '수', '목', '금', '토'\n        ]\n    },\n    legend: {\n        selector: {\n            all: '모두 선택',\n            inverse: '선택 범위 반전'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '사각형 선택',\n                polygon: '올가미 선택',\n                lineX: '수평 선택',\n                lineY: '수직 선택',\n                keep: '선택 유지',\n                clear: '선택 지우기'\n            }\n        },\n        dataView: {\n            title: '날짜 보기',\n            lang: ['날짜 보기', '닫기', '새로 고침']\n        },\n        dataZoom: {\n            title: {\n                zoom: '확대/축소',\n                back: '확대/축소 초기화'\n            }\n        },\n        magicType: {\n            title: {\n                line: '꺽은선 그래프로 변경',\n                bar: '막대 그래프로 변경',\n                stack: '스택',\n                tiled: '타일'\n            }\n        },\n        restore: {\n            title: '복구'\n        },\n        saveAsImage: {\n            title: '이미지로 저장',\n            lang: ['이미지를 저장하려면 마우스 오른쪽 버튼을 클릭하세요.']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '원 그래프',\n            bar: '막대 그래프',\n            line: '꺽은선 그래프',\n            scatter: '산점도',\n            effectScatter: '물결 효과 산점도',\n            radar: '방사형 그래프',\n            tree: '트리',\n            treemap: '트리맵',\n            boxplot: '상자 수염 그래프',\n            candlestick: '캔들스틱 차트',\n            k: 'K 라인 차트',\n            heatmap: '히트 맵',\n            map: '지도',\n            parallel: '평행 좌표 맵',\n            lines: '선',\n            graph: '관계 그래프',\n            sankey: '산키 다이어그램',\n            funnel: '깔때기형 그래프',\n            gauge: '계기',\n            pictorialBar: '픽토그램 차트',\n            themeRiver: '스트림 그래프',\n            sunburst: '선버스트 차트',\n            custom: '맞춤 차트',\n            chart: '차트'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: '\"{title}\"에 대한 차트입니다.',\n            withoutTitle: '차트입니다.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' 차트 유형은 {seriesType}이며 {seriesName}을 표시합니다.',\n                withoutName: ' 차트 유형은 {seriesType}입니다.'\n            },\n            multiple: {\n                prefix: '. {seriesCount} 하나의 차트 시리즈로 구성됩니다.',\n                withName: ' {seriesId}번째 시리즈는 {seriesName}을 나타내는 {seriesType} representing.',\n                withoutName: ' {seriesId}번째 시리즈는 {seriesType}입니다.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: '데이터: ',\n            partialData: '첫번째 {displayCnt} 아이템: ',\n            withName: '{name}의 데이터는 {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('KO', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langNL-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Dutch.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'januari', 'februari', 'maart', 'april', 'mei', 'juni',\n            'juli', 'augustus', 'september', 'oktober', 'november', 'december'\n        ],\n        monthAbbr: [\n            'jan', 'feb', 'mrt', 'apr', 'mei', 'jun',\n            'jul', 'aug', 'sep', 'okt', 'nov', 'dec'\n        ],\n        dayOfWeek: [\n            'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'\n        ],\n        dayOfWeekAbbr: [\n            'zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Alle',\n            inverse: 'Omgekeerd'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Vakselectie',\n                polygon: 'Lasso selectie',\n                lineX: 'Horizontale selectie',\n                lineY: 'Verticale selectie',\n                keep: 'Selecties behouden',\n                clear: 'Selecties wissen'\n            }\n        },\n        dataView: {\n            title: 'Gegevensweergave',\n            lang: ['Gegevensweergave', 'Sluiten', 'Vernieuwen']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom herstellen'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Omzetten naar lijndiagram',\n                bar: 'Omzetten naar staafdiagram',\n                stack: 'Omzetten naar stapeldiagram',\n                tiled: 'Omzetten naar tegeldiagram'\n            }\n        },\n        restore: {\n            title: 'Herstellen'\n        },\n        saveAsImage: {\n            title: 'Opslaan als afbeelding',\n            lang: ['Klik rechtermuisknop om de afbeelding op te slaan']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Cirkeldiagram',\n            bar: 'Staafdiagram',\n            line: 'Lijndiagram',\n            scatter: 'Spreidingsdiagram',\n            effectScatter: 'Spreidingsdiagram met rimpeleffect',\n            radar: 'Radardiagram',\n            tree: 'Boomdiagram',\n            treemap: 'Boomkaart',\n            boxplot: 'Boxplot',\n            candlestick: 'Kandelaardiagram',\n            k: 'K-lijndiagram',\n            heatmap: 'Hittekaart',\n            map: 'Kaart',\n            parallel: 'Parallele coördinatendiagram',\n            lines: 'Lijnendiagram',\n            graph: 'Relatiediagram',\n            sankey: 'Sankey-diagram',\n            funnel: 'Trechterdiagram',\n            gauge: 'Graadmeter',\n            pictorialBar: 'Staafdiagram met afbeeldingen',\n            themeRiver: 'Thematische rivierdiagram',\n            sunburst: 'Zonnestraaldiagram',\n            custom: 'Aangepast diagram',\n            chart: 'Diagram'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Dit is een diagram over \"{title}\"',\n            withoutTitle: 'Dit is een diagram'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' van het type {seriesType} genaamd {seriesName}.',\n                withoutName: ' van het type {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Het bestaat uit {seriesCount} series.',\n                withName: ' De serie {seriesId} is een {seriesType} met de naam {seriesName}.',\n                withoutName: ' De serie {seriesId} is een {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'De gegevens zijn als volgt: ',\n            partialData: 'De eerste {displayCnt} items zijn: ',\n            withName: 'de gegevens voor {name} zijn {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langNL.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Dutch.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'januari', 'februari', 'maart', 'april', 'mei', 'juni',\n            'juli', 'augustus', 'september', 'oktober', 'november', 'december'\n        ],\n        monthAbbr: [\n            'jan', 'feb', 'mrt', 'apr', 'mei', 'jun',\n            'jul', 'aug', 'sep', 'okt', 'nov', 'dec'\n        ],\n        dayOfWeek: [\n            'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'\n        ],\n        dayOfWeekAbbr: [\n            'zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Alle',\n            inverse: 'Omgekeerd'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Vakselectie',\n                polygon: 'Lasso selectie',\n                lineX: 'Horizontale selectie',\n                lineY: 'Verticale selectie',\n                keep: 'Selecties behouden',\n                clear: 'Selecties wissen'\n            }\n        },\n        dataView: {\n            title: 'Gegevensweergave',\n            lang: ['Gegevensweergave', 'Sluiten', 'Vernieuwen']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Zoom herstellen'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Omzetten naar lijndiagram',\n                bar: 'Omzetten naar staafdiagram',\n                stack: 'Omzetten naar stapeldiagram',\n                tiled: 'Omzetten naar tegeldiagram'\n            }\n        },\n        restore: {\n            title: 'Herstellen'\n        },\n        saveAsImage: {\n            title: 'Opslaan als afbeelding',\n            lang: ['Klik rechtermuisknop om de afbeelding op te slaan']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Cirkeldiagram',\n            bar: 'Staafdiagram',\n            line: 'Lijndiagram',\n            scatter: 'Spreidingsdiagram',\n            effectScatter: 'Spreidingsdiagram met rimpeleffect',\n            radar: 'Radardiagram',\n            tree: 'Boomdiagram',\n            treemap: 'Boomkaart',\n            boxplot: 'Boxplot',\n            candlestick: 'Kandelaardiagram',\n            k: 'K-lijndiagram',\n            heatmap: 'Hittekaart',\n            map: 'Kaart',\n            parallel: 'Parallele coördinatendiagram',\n            lines: 'Lijnendiagram',\n            graph: 'Relatiediagram',\n            sankey: 'Sankey-diagram',\n            funnel: 'Trechterdiagram',\n            gauge: 'Graadmeter',\n            pictorialBar: 'Staafdiagram met afbeeldingen',\n            themeRiver: 'Thematische rivierdiagram',\n            sunburst: 'Zonnestraaldiagram',\n            custom: 'Aangepast diagram',\n            chart: 'Diagram'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Dit is een diagram over \"{title}\"',\n            withoutTitle: 'Dit is een diagram'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' van het type {seriesType} genaamd {seriesName}.',\n                withoutName: ' van het type {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Het bestaat uit {seriesCount} series.',\n                withName: ' De serie {seriesId} is een {seriesType} met de naam {seriesName}.',\n                withoutName: ' De serie {seriesId} is een {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'De gegevens zijn als volgt: ',\n            partialData: 'De eerste {displayCnt} items zijn: ',\n            withName: 'de gegevens voor {name} zijn {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('NL', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langPL-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Polish\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',\n            'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'\n        ],\n        monthAbbr: [\n            'Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze',\n            'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'\n        ],\n        dayOfWeek: [\n            'Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Nie', 'Pon', 'Wto', 'Śro', 'Czw', 'Pią', 'Sob'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Wszystko',\n            inverse: 'Odwróć'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Zaznaczenie prostokątne',\n                polygon: 'Zaznaczanie lasso',\n                lineX: 'Zaznaczenie poziome',\n                lineY: 'Zaznaczenie pionowe',\n                keep: 'Zachowaj zaznaczenie',\n                clear: 'Wyczyść zaznaczenie'\n            }\n        },\n        dataView: {\n            title: 'Widok danych',\n            lang: ['Widok danych', 'Zamknij', 'Odśwież']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Przybliżenie',\n                back: 'Resetuj przybliżenie'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Przełącz na wykres liniowy',\n                bar: 'Przełącz na wykres słupkowy',\n                stack: 'Przełącz na wykres słupkowy skumulowany',\n                tiled: 'Przełącz na kafelki'\n            }\n        },\n        restore: {\n            title: 'Przywróć'\n        },\n        saveAsImage: {\n            title: 'Zapisz jako obrazek',\n            lang: ['Kliknij prawym klawiszem myszy aby zapisać']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Wykres kołowy',\n            bar: 'Wykres słupkowy',\n            line: 'Wykres liniowy',\n            scatter: 'Wykres punktowy',\n            effectScatter: 'Wykres punktowy z efektem falowania',\n            radar: 'Wykres radarowy',\n            tree: 'Drzewo',\n            treemap: 'Mapa drzewa',\n            boxplot: 'Wykres pudełkowy',\n            candlestick: 'Wykres świecowy',\n            k: 'Wykres linii K',\n            heatmap: 'Mapa ciepła',\n            map: 'Mapa',\n            parallel: 'Wykres współrzędnych równoległych',\n            lines: 'Diagram linii',\n            graph: 'Graf relacji',\n            sankey: 'Wykres Sankeya',\n            funnel: 'Wykres lejkowy',\n            gauge: 'Wykres zegarowy',\n            pictorialBar: 'Wykres słupkowy obrazkowy',\n            themeRiver: 'Wykres rzeki tematycznej',\n            sunburst: 'Wykres hierarchiczny słonecznikowy',\n            custom: 'Wykres niestandardowy',\n            chart: 'Wykres'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'To jest wykres dotyczący \"{title}\"',\n            withoutTitle: 'To jest wykres'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' typu {seriesType} nazwana {seriesName}.',\n                withoutName: ' typu {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Składający się z {seriesCount} serii danych.',\n                withName: ' Seria danych {seriesId} jest serią typu {seriesType} przedstawiającą {seriesName}.',\n                withoutName: ' Seria danych {seriesId} jest serią typu {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Dane są następujące: ',\n            partialData: 'Pierwszych {displayCnt} elementów to: ',\n            withName: 'dane dla {name} to {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langPL.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Polish\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',\n            'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'\n        ],\n        monthAbbr: [\n            'Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze',\n            'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'\n        ],\n        dayOfWeek: [\n            'Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Nie', 'Pon', 'Wto', 'Śro', 'Czw', 'Pią', 'Sob'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Wszystko',\n            inverse: 'Odwróć'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Zaznaczenie prostokątne',\n                polygon: 'Zaznaczanie lasso',\n                lineX: 'Zaznaczenie poziome',\n                lineY: 'Zaznaczenie pionowe',\n                keep: 'Zachowaj zaznaczenie',\n                clear: 'Wyczyść zaznaczenie'\n            }\n        },\n        dataView: {\n            title: 'Widok danych',\n            lang: ['Widok danych', 'Zamknij', 'Odśwież']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Przybliżenie',\n                back: 'Resetuj przybliżenie'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Przełącz na wykres liniowy',\n                bar: 'Przełącz na wykres słupkowy',\n                stack: 'Przełącz na wykres słupkowy skumulowany',\n                tiled: 'Przełącz na kafelki'\n            }\n        },\n        restore: {\n            title: 'Przywróć'\n        },\n        saveAsImage: {\n            title: 'Zapisz jako obrazek',\n            lang: ['Kliknij prawym klawiszem myszy aby zapisać']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Wykres kołowy',\n            bar: 'Wykres słupkowy',\n            line: 'Wykres liniowy',\n            scatter: 'Wykres punktowy',\n            effectScatter: 'Wykres punktowy z efektem falowania',\n            radar: 'Wykres radarowy',\n            tree: 'Drzewo',\n            treemap: 'Mapa drzewa',\n            boxplot: 'Wykres pudełkowy',\n            candlestick: 'Wykres świecowy',\n            k: 'Wykres linii K',\n            heatmap: 'Mapa ciepła',\n            map: 'Mapa',\n            parallel: 'Wykres współrzędnych równoległych',\n            lines: 'Diagram linii',\n            graph: 'Graf relacji',\n            sankey: 'Wykres Sankeya',\n            funnel: 'Wykres lejkowy',\n            gauge: 'Wykres zegarowy',\n            pictorialBar: 'Wykres słupkowy obrazkowy',\n            themeRiver: 'Wykres rzeki tematycznej',\n            sunburst: 'Wykres hierarchiczny słonecznikowy',\n            custom: 'Wykres niestandardowy',\n            chart: 'Wykres'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'To jest wykres dotyczący \"{title}\"',\n            withoutTitle: 'To jest wykres'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' typu {seriesType} nazwana {seriesName}.',\n                withoutName: ' typu {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Składający się z {seriesCount} serii danych.',\n                withName: ' Seria danych {seriesId} jest serią typu {seriesType} przedstawiającą {seriesName}.',\n                withoutName: ' Seria danych {seriesId} jest serią typu {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Dane są następujące: ',\n            partialData: 'Pierwszych {displayCnt} elementów to: ',\n            withName: 'dane dla {name} to {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('PL', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langPT-br-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Portuguese (Brazil).\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',\n            'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'\n        ],\n        monthAbbr: [\n            'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',\n            'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'\n        ],\n        dayOfWeek: [\n            'Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira',\n'Quinta-feira', 'Sexta-feira', 'Sábado'\n        ],\n        dayOfWeekAbbr: [\n            'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Todas',\n            inverse: 'Inverter'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Seleção retangular',\n                polygon: 'Seleção em laço',\n                lineX: 'Selecionar horizontalmente',\n                lineY: 'Selecionar verticalmente',\n                keep: 'Manter seleções',\n                clear: 'Limpar seleções'\n            }\n        },\n        dataView: {\n            title: 'Exibição de dados',\n            lang: ['Exibição de dados', 'Fechar', 'Atualizar']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Restaurar Zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Trocar para gráfico de linhas',\n                bar: 'Trocar para gráfico de barras',\n                stack: 'Empilhar',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Restaurar'\n        },\n        saveAsImage: {\n            title: 'Salvar como imagem',\n            lang: ['Clique com o botão direito para salvar imagem']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Gráfico de pizza',\n            bar: 'Gráfico de barras',\n            line: 'Gráfico de linhas',\n            scatter: 'Gráfico de dispersão',\n            effectScatter: 'Gráfico de dispersão ondulado',\n            radar: 'Gráfico radar',\n            tree: 'Gráfico de árvore',\n            treemap: 'Mapa de árvore',\n            boxplot: 'Gráfico de caixa',\n            candlestick: 'Gráfico de vela',\n            k: 'Gráfico de linha K',\n            heatmap: 'Mapa de calor',\n            map: 'Mapa',\n            parallel: 'Coordenadas paralelas',\n            lines: 'Gráfico de linhas',\n            graph: 'Grafo',\n            sankey: 'Gráfico Sankey',\n            funnel: 'Gráfico de funil',\n            gauge: 'Gráfico de medidor',\n            pictorialBar: 'Barra pictórica',\n            themeRiver: 'Gráfico de rio de tema',\n            sunburst: 'Gráfico de explosão solar',\n            custom: 'Gráfico personalizado',\n            chart: 'Gráfico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Este é um gráfico entitulado \"{title}\"',\n            withoutTitle: 'Este é um gráfico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' do tipo {seriesType} nomeada/nomeado como {seriesName}.',\n                withoutName: ' do tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Consiste de {seriesCount} séries.',\n                withName: ' A {seriesId} série é um/uma {seriesType} representando {seriesName}.',\n                withoutName: ' A {seriesId} series é um/uma {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Os dados são: ',\n            partialData: 'As primeiros {displayCnt} itens são: ',\n            withName: 'os dados para {name} são {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langPT-br.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Portuguese (Brazil).\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',\n            'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'\n        ],\n        monthAbbr: [\n            'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',\n            'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'\n        ],\n        dayOfWeek: [\n            'Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira',\n'Quinta-feira', 'Sexta-feira', 'Sábado'\n        ],\n        dayOfWeekAbbr: [\n            'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Todas',\n            inverse: 'Inverter'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Seleção retangular',\n                polygon: 'Seleção em laço',\n                lineX: 'Selecionar horizontalmente',\n                lineY: 'Selecionar verticalmente',\n                keep: 'Manter seleções',\n                clear: 'Limpar seleções'\n            }\n        },\n        dataView: {\n            title: 'Exibição de dados',\n            lang: ['Exibição de dados', 'Fechar', 'Atualizar']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Restaurar Zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Trocar para gráfico de linhas',\n                bar: 'Trocar para gráfico de barras',\n                stack: 'Empilhar',\n                tiled: 'Tile'\n            }\n        },\n        restore: {\n            title: 'Restaurar'\n        },\n        saveAsImage: {\n            title: 'Salvar como imagem',\n            lang: ['Clique com o botão direito para salvar imagem']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Gráfico de pizza',\n            bar: 'Gráfico de barras',\n            line: 'Gráfico de linhas',\n            scatter: 'Gráfico de dispersão',\n            effectScatter: 'Gráfico de dispersão ondulado',\n            radar: 'Gráfico radar',\n            tree: 'Gráfico de árvore',\n            treemap: 'Mapa de árvore',\n            boxplot: 'Gráfico de caixa',\n            candlestick: 'Gráfico de vela',\n            k: 'Gráfico de linha K',\n            heatmap: 'Mapa de calor',\n            map: 'Mapa',\n            parallel: 'Coordenadas paralelas',\n            lines: 'Gráfico de linhas',\n            graph: 'Grafo',\n            sankey: 'Gráfico Sankey',\n            funnel: 'Gráfico de funil',\n            gauge: 'Gráfico de medidor',\n            pictorialBar: 'Barra pictórica',\n            themeRiver: 'Gráfico de rio de tema',\n            sunburst: 'Gráfico de explosão solar',\n            custom: 'Gráfico personalizado',\n            chart: 'Gráfico'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Este é um gráfico entitulado \"{title}\"',\n            withoutTitle: 'Este é um gráfico'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' do tipo {seriesType} nomeada/nomeado como {seriesName}.',\n                withoutName: ' do tipo {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Consiste de {seriesCount} séries.',\n                withName: ' A {seriesId} série é um/uma {seriesType} representando {seriesName}.',\n                withoutName: ' A {seriesId} series é um/uma {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Os dados são: ',\n            partialData: 'As primeiros {displayCnt} itens são: ',\n            withName: 'os dados para {name} são {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('PT-br', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langRO-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Romanian.\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie',\n            'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'\n        ],\n        monthAbbr: [\n            'ian.', 'febr.', 'mart.', 'apr.', 'mai', 'iun.',\n            'iul.', 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'\n        ],\n        dayOfWeek: [\n            'Duminică', 'Luni', 'Marți', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'\n        ],\n        dayOfWeekAbbr: [\n            'du.', 'lu.', 'ma.', 'mi.', 'jo.', 'vi.', 'sâ.'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Toate',\n            inverse: 'Inversează'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selecție dreptunghiulară',\n                polygon: 'Selecție lasso',\n                lineX: 'Selecție orizontală',\n                lineY: 'Selecție verticală',\n                keep: 'Păstrează selecția',\n                clear: 'Șterge selecția'\n            }\n        },\n        dataView: {\n            title: 'Vizualizarea datelor',\n            lang: ['Vizualizarea datelor', 'Închide', 'Reîmprospătează']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Resetează zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Comută la diagramă cu linii',\n                bar: 'Comută la diagramă cu bare',\n                stack: 'Suprapune',\n                tiled: 'Alătură'\n            }\n        },\n        restore: {\n            title: 'Resetează'\n        },\n        saveAsImage: {\n            title: 'Salvează ca imagine',\n            lang: ['Clic dreapta pentru a salva ca imagine']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Diagramă radială',\n            bar: 'Diagramă cu bare',\n            line: 'Diagramă cu linii',\n            scatter: 'Diagramă de dispersie',\n            effectScatter: 'Diagramă de dispersie stilizată',\n            radar: 'Diagramă radar',\n            tree: 'Arbore',\n            treemap: 'Hartă de arbori',\n            boxplot: 'Diagramă boxbare',\n            candlestick: 'Diagramă bursieră',\n            k: 'Diagramă cu linii K',\n            heatmap: 'Hartă termografică',\n            map: 'Hartă',\n            parallel: 'Hartă de coordonate paralele',\n            lines: 'Linii',\n            graph: 'Graf',\n            sankey: 'Diagramă Sankey',\n            funnel: 'Diagramă pâlnie',\n            gauge: 'Calibru',\n            pictorialBar: 'Diagramă cu bare picturale',\n            themeRiver: 'Streamgraph',\n            sunburst: 'Diagramă rază de soare',\n            custom: 'Diagramă personalizată',\n            chart: 'Diagramă'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Aceasta este o diagrmă despre \"{title}\"',\n            withoutTitle: 'Aceasta este o diagramă'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' de tipul {seriesType} denumită {seriesName}.',\n                withoutName: ' de tipul {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Este alcătuită din {seriesCount} serii.',\n                withName: ' Seria {seriesId} este de tipul {seriesType} și reprezintă {seriesName}.',\n                withoutName: ' Seria {seriesId} este de tipul {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Datele sunt: ',\n            partialData: 'Primele {displayCnt} elemente sunt: ',\n            withName: 'datele pentru {name} sunt {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langRO.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Romanian.\n */\n\n var localeObj = {\n    time: {\n        month: [\n            'ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie',\n            'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'\n        ],\n        monthAbbr: [\n            'ian.', 'febr.', 'mart.', 'apr.', 'mai', 'iun.',\n            'iul.', 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'\n        ],\n        dayOfWeek: [\n            'Duminică', 'Luni', 'Marți', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'\n        ],\n        dayOfWeekAbbr: [\n            'du.', 'lu.', 'ma.', 'mi.', 'jo.', 'vi.', 'sâ.'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Toate',\n            inverse: 'Inversează'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Selecție dreptunghiulară',\n                polygon: 'Selecție lasso',\n                lineX: 'Selecție orizontală',\n                lineY: 'Selecție verticală',\n                keep: 'Păstrează selecția',\n                clear: 'Șterge selecția'\n            }\n        },\n        dataView: {\n            title: 'Vizualizarea datelor',\n            lang: ['Vizualizarea datelor', 'Închide', 'Reîmprospătează']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Zoom',\n                back: 'Resetează zoom'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Comută la diagramă cu linii',\n                bar: 'Comută la diagramă cu bare',\n                stack: 'Suprapune',\n                tiled: 'Alătură'\n            }\n        },\n        restore: {\n            title: 'Resetează'\n        },\n        saveAsImage: {\n            title: 'Salvează ca imagine',\n            lang: ['Clic dreapta pentru a salva ca imagine']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Diagramă radială',\n            bar: 'Diagramă cu bare',\n            line: 'Diagramă cu linii',\n            scatter: 'Diagramă de dispersie',\n            effectScatter: 'Diagramă de dispersie stilizată',\n            radar: 'Diagramă radar',\n            tree: 'Arbore',\n            treemap: 'Hartă de arbori',\n            boxplot: 'Diagramă boxbare',\n            candlestick: 'Diagramă bursieră',\n            k: 'Diagramă cu linii K',\n            heatmap: 'Hartă termografică',\n            map: 'Hartă',\n            parallel: 'Hartă de coordonate paralele',\n            lines: 'Linii',\n            graph: 'Graf',\n            sankey: 'Diagramă Sankey',\n            funnel: 'Diagramă pâlnie',\n            gauge: 'Calibru',\n            pictorialBar: 'Diagramă cu bare picturale',\n            themeRiver: 'Streamgraph',\n            sunburst: 'Diagramă rază de soare',\n            custom: 'Diagramă personalizată',\n            chart: 'Diagramă'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Aceasta este o diagrmă despre \"{title}\"',\n            withoutTitle: 'Aceasta este o diagramă'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' de tipul {seriesType} denumită {seriesName}.',\n                withoutName: ' de tipul {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Este alcătuită din {seriesCount} serii.',\n                withName: ' Seria {seriesId} este de tipul {seriesType} și reprezintă {seriesName}.',\n                withoutName: ' Seria {seriesId} este de tipul {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Datele sunt: ',\n            partialData: 'Primele {displayCnt} elemente sunt: ',\n            withName: 'datele pentru {name} sunt {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('RO', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langRU-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Russian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',\n            'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'\n        ],\n        monthAbbr: [\n            'Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',\n            'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'\n        ],\n        dayOfWeek: [\n            'Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'\n        ],\n        dayOfWeekAbbr: [\n            'вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Всё',\n            inverse: 'Обратить'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Выделить область',\n                polygon: 'Инструмент «Лассо»',\n                lineX: 'Горизонтальное выделение',\n                lineY: 'Вертикальное выделение',\n                keep: 'Оставить выбранное',\n                clear: 'Очистить выбранное'\n            }\n        },\n        dataView: {\n            title: 'Данные',\n            lang: ['Данные', 'Закрыть', 'Обновить']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Увеличить',\n                back: 'Сбросить увеличение'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Переключиться на линейный график',\n                bar: 'Переключиться на столбчатую диаграмму',\n                stack: 'Стопка',\n                tiled: 'Плитка'\n            }\n        },\n        restore: {\n            title: 'Восстановить'\n        },\n        saveAsImage: {\n            title: 'Сохранить картинку',\n            lang: ['Правый клик, чтобы сохранить картинку']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Круговая диаграмма',\n            bar: 'Столбчатая диаграмма',\n            line: 'Линейный график',\n            scatter: 'Точечная диаграмма',\n            effectScatter: 'Точечная диаграмма с волнами',\n            radar: 'Лепестковая диаграмма',\n            tree: 'Дерево',\n            treemap: 'Плоское дерево',\n            boxplot: 'Ящик с усами',\n            candlestick: 'Свечной график',\n            k: 'График К-линий',\n            heatmap: 'Тепловая карта',\n            map: 'Карта',\n            parallel: 'Диаграмма параллельных координат',\n            lines: 'Линейный граф',\n            graph: 'Граф отношений',\n            sankey: 'Диаграмма Санкей',\n            funnel: 'Воронкообразная диаграмма',\n            gauge: 'Шкала',\n            pictorialBar: 'Столбец-картинка',\n            themeRiver: 'Тематическая река',\n            sunburst: 'Солнечные лучи',\n            custom: 'Пользовательская диаграмма',\n            chart: 'диаграмма'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Это график, показывающий \"{title}\"',\n            withoutTitle: 'Это график'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' с типом {seriesType} и именем {seriesName}.',\n                withoutName: ' с типом {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Он состоит из {seriesCount} серий.',\n                withName:\n                    ' Серия {seriesId} имеет тип {seriesType} и показывает {seriesName}.',\n                withoutName: ' Серия {seriesId} имеет тип {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Данные таковы: ',\n            partialData: 'Первые {displayCnt} элементов: ',\n            withName: 'значение для {name} — {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langRU.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Russian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',\n            'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'\n        ],\n        monthAbbr: [\n            'Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',\n            'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'\n        ],\n        dayOfWeek: [\n            'Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'\n        ],\n        dayOfWeekAbbr: [\n            'вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Всё',\n            inverse: 'Обратить'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Выделить область',\n                polygon: 'Инструмент «Лассо»',\n                lineX: 'Горизонтальное выделение',\n                lineY: 'Вертикальное выделение',\n                keep: 'Оставить выбранное',\n                clear: 'Очистить выбранное'\n            }\n        },\n        dataView: {\n            title: 'Данные',\n            lang: ['Данные', 'Закрыть', 'Обновить']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Увеличить',\n                back: 'Сбросить увеличение'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Переключиться на линейный график',\n                bar: 'Переключиться на столбчатую диаграмму',\n                stack: 'Стопка',\n                tiled: 'Плитка'\n            }\n        },\n        restore: {\n            title: 'Восстановить'\n        },\n        saveAsImage: {\n            title: 'Сохранить картинку',\n            lang: ['Правый клик, чтобы сохранить картинку']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Круговая диаграмма',\n            bar: 'Столбчатая диаграмма',\n            line: 'Линейный график',\n            scatter: 'Точечная диаграмма',\n            effectScatter: 'Точечная диаграмма с волнами',\n            radar: 'Лепестковая диаграмма',\n            tree: 'Дерево',\n            treemap: 'Плоское дерево',\n            boxplot: 'Ящик с усами',\n            candlestick: 'Свечной график',\n            k: 'График К-линий',\n            heatmap: 'Тепловая карта',\n            map: 'Карта',\n            parallel: 'Диаграмма параллельных координат',\n            lines: 'Линейный граф',\n            graph: 'Граф отношений',\n            sankey: 'Диаграмма Санкей',\n            funnel: 'Воронкообразная диаграмма',\n            gauge: 'Шкала',\n            pictorialBar: 'Столбец-картинка',\n            themeRiver: 'Тематическая река',\n            sunburst: 'Солнечные лучи',\n            custom: 'Пользовательская диаграмма',\n            chart: 'диаграмма'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Это график, показывающий \"{title}\"',\n            withoutTitle: 'Это график'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' с типом {seriesType} и именем {seriesName}.',\n                withoutName: ' с типом {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Он состоит из {seriesCount} серий.',\n                withName:\n                    ' Серия {seriesId} имеет тип {seriesType} и показывает {seriesName}.',\n                withoutName: ' Серия {seriesId} имеет тип {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Данные таковы: ',\n            partialData: 'Первые {displayCnt} элементов: ',\n            withName: 'значение для {name} — {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('RU', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langSI-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Slovenian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij',\n            'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n            'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Vsi',\n            inverse: 'Obratno'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Izbor s pravokotnikom',\n                polygon: 'Izbor z lasom',\n                lineX: 'Vodoravni izbor',\n                lineY: 'Navpični izbor',\n                keep: 'Ohrani izbor',\n                clear: 'Počisti izbor'\n            }\n        },\n        dataView: {\n            title: 'Pogled podatkov',\n            lang: ['Pogled podatkov', 'Zapri', 'Osveži']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Približaj',\n                back: 'Povrni velikost'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Preklopi na črtni grafikon',\n                bar: 'Preklopi na stolpčni grafikon',\n                stack: 'Naloži',\n                tiled: 'Drug ob drugem'\n            }\n        },\n        restore: {\n            title: 'Povrni'\n        },\n        saveAsImage: {\n            title: 'Shrani kot sliko',\n            lang: ['Z desnim klikom shrani sliko']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Tortni grafikon',\n            bar: 'Stolpčni grafikon',\n            line: 'Črtni grafikon',\n            scatter: 'Raztreseni grafikon',\n            effectScatter: 'Raztreseni grafikon z efektom',\n            radar: 'Radarski grafikon',\n            tree: 'Drevo',\n            treemap: 'Drevesna struktura',\n            boxplot: 'Boxplot grafikon',\n            candlestick: 'Svečni grafikon',\n            k: 'K line grafikon',\n            heatmap: 'Toplotni zemljevid',\n            map: 'Zemljevid',\n            parallel: 'Zemljevid vzporednih koordinat',\n            lines: 'Črtni grafikon',\n            graph: 'Grafikon razmerij',\n            sankey: 'Sankey grafikon',\n            funnel: 'Lijakasti grafikon',\n            gauge: 'Števec',\n            pictorialBar: 'Stolpčni grafikon s podobo',\n            themeRiver: 'Tematski rečni grafikon',\n            sunburst: 'Večnivojski tortni grafikon',\n            custom: 'Grafikon po meri',\n            chart: 'Grafikon'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'To je grafikon z naslovom \"{title}\"',\n            withoutTitle: 'To je grafikon'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' tipa {seriesType} imenovan {seriesName}.',\n                withoutName: ' tipa {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Sestavljen iz {seriesCount} nizov.',\n                withName: ' Niz {seriesId} je tipa {seriesType} z nazivom {seriesName}.',\n                withoutName: ' Niz {seriesId} je tipa {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Podatki so naslednji: ',\n            partialData: 'Prvih {displayCnt} elementov je: ',\n            withName: 'podatek za {name} je {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langSI.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Slovenian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij',\n            'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'\n        ],\n        monthAbbr: [\n            'Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n            'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'\n        ],\n        dayOfWeek: [\n            'Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota'\n        ],\n        dayOfWeekAbbr: [\n            'Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Vsi',\n            inverse: 'Obratno'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Izbor s pravokotnikom',\n                polygon: 'Izbor z lasom',\n                lineX: 'Vodoravni izbor',\n                lineY: 'Navpični izbor',\n                keep: 'Ohrani izbor',\n                clear: 'Počisti izbor'\n            }\n        },\n        dataView: {\n            title: 'Pogled podatkov',\n            lang: ['Pogled podatkov', 'Zapri', 'Osveži']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Približaj',\n                back: 'Povrni velikost'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Preklopi na črtni grafikon',\n                bar: 'Preklopi na stolpčni grafikon',\n                stack: 'Naloži',\n                tiled: 'Drug ob drugem'\n            }\n        },\n        restore: {\n            title: 'Povrni'\n        },\n        saveAsImage: {\n            title: 'Shrani kot sliko',\n            lang: ['Z desnim klikom shrani sliko']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Tortni grafikon',\n            bar: 'Stolpčni grafikon',\n            line: 'Črtni grafikon',\n            scatter: 'Raztreseni grafikon',\n            effectScatter: 'Raztreseni grafikon z efektom',\n            radar: 'Radarski grafikon',\n            tree: 'Drevo',\n            treemap: 'Drevesna struktura',\n            boxplot: 'Boxplot grafikon',\n            candlestick: 'Svečni grafikon',\n            k: 'K line grafikon',\n            heatmap: 'Toplotni zemljevid',\n            map: 'Zemljevid',\n            parallel: 'Zemljevid vzporednih koordinat',\n            lines: 'Črtni grafikon',\n            graph: 'Grafikon razmerij',\n            sankey: 'Sankey grafikon',\n            funnel: 'Lijakasti grafikon',\n            gauge: 'Števec',\n            pictorialBar: 'Stolpčni grafikon s podobo',\n            themeRiver: 'Tematski rečni grafikon',\n            sunburst: 'Večnivojski tortni grafikon',\n            custom: 'Grafikon po meri',\n            chart: 'Grafikon'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'To je grafikon z naslovom \"{title}\"',\n            withoutTitle: 'To je grafikon'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' tipa {seriesType} imenovan {seriesName}.',\n                withoutName: ' tipa {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Sestavljen iz {seriesCount} nizov.',\n                withName: ' Niz {seriesId} je tipa {seriesType} z nazivom {seriesName}.',\n                withoutName: ' Niz {seriesId} je tipa {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Podatki so naslednji: ',\n            partialData: 'Prvih {displayCnt} elementov je: ',\n            withName: 'podatek za {name} je {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('SI', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langSV-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\r\n\r\n/**\r\n * Language: Swedish.\r\n */\r\n\r\nvar localeObj = {\r\n    time: {\r\n      month: [\r\n        'januari', 'februari', 'mars', 'april', 'maj', 'juni',\r\n        'juli', 'augusti', 'september', 'oktober', 'november', 'december',\r\n      ],\r\n      monthAbbr: [\r\n        'jan', 'feb', 'mar', 'apr', 'maj', 'jun',\r\n        'jul', 'aug', 'sep', 'okt', 'nov', 'dec',\r\n      ],\r\n      dayOfWeek: [\r\n        'söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag',\r\n      ],\r\n      dayOfWeekAbbr: [\r\n        'sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör',\r\n      ],\r\n    },\r\n    legend: {\r\n      selector: {\r\n        all: 'Alla',\r\n        inverse: 'Omvänd',\r\n      },\r\n    },\r\n    toolbox: {\r\n      brush: {\r\n        title: {\r\n          rect: 'Rektangelurval',\r\n          polygon: 'Lassomarkering',\r\n          lineX: 'Vågrätt urval',\r\n          lineY: 'Lodrätt urval',\r\n          keep: 'Behåll urval',\r\n          clear: 'Rensa urval',\r\n        },\r\n      },\r\n      dataView: {\r\n        title: 'Datavy',\r\n        lang: ['Datavy', 'Stäng', 'Uppdatera'],\r\n      },\r\n      dataZoom: {\r\n        title: {\r\n          zoom: 'Zooma',\r\n          back: 'Återställ zoom',\r\n        },\r\n      },\r\n      magicType: {\r\n        title: {\r\n          line: 'Byt till linjediagram',\r\n          bar: 'Byt till stapeldiagram',\r\n          stack: 'Stapla',\r\n          tiled: 'Sida vid sida',\r\n        },\r\n      },\r\n      restore: {\r\n        title: 'Återställ',\r\n      },\r\n      saveAsImage: {\r\n        title: 'Spara som bild',\r\n        lang: ['Högerklicka för att spara bild'],\r\n      },\r\n    },\r\n    series: {\r\n      typeNames: {\r\n        pie: 'Cirkeldiagram',\r\n        bar: 'Stapeldiagram',\r\n        line: 'Linjediagram',\r\n        scatter: 'Punktdiagram',\r\n        effectScatter: 'Punktdiagram med rippeleffekt',\r\n        radar: 'Radardiagram',\r\n        tree: 'Träd',\r\n        treemap: 'Trädkarta',\r\n        boxplot: 'Lådagram',\r\n        candlestick: 'Candlestick',\r\n        k: 'K-linjediagram',\r\n        heatmap: 'Värmekarta',\r\n        map: 'Karta',\r\n        parallel: 'Parallella koordinater',\r\n        lines: 'Linjediagram',\r\n        graph: 'Relationsgraf',\r\n        sankey: 'Sankeydiagram',\r\n        funnel: 'Trattdiagram',\r\n        gauge: 'Mätare',\r\n        pictorialBar: 'Bildstapel',\r\n        themeRiver: 'Tematisk flod',\r\n        sunburst: 'Solburstdiagram',\r\n        custom: 'Anpassat',\r\n        chart: 'Diagram',\r\n      },\r\n    },\r\n    aria: {\r\n      general: {\r\n        withTitle: 'Detta är ett diagram om \"{title}\"',\r\n        withoutTitle: 'Detta är ett diagram',\r\n      },\r\n      series: {\r\n        single: {\r\n          prefix: '',\r\n          withName: ' med typnamn {name}.',\r\n          withoutName: ' med typ {seriesType}.',\r\n        },\r\n        multiple: {\r\n          prefix: '. Det består av {seriesCount} serier.',\r\n          withName: ' Serien {seriesId} är en {seriesType} som representerar {seriesName}.',\r\n          withoutName: ' Serien {seriesId} är en {seriesType}.',\r\n          separator: {\r\n            middle: '',\r\n            end: '',\r\n          },\r\n        },\r\n      },\r\n      data: {\r\n        allData: 'Data är som följer: ',\r\n        partialData: 'De första {displayCnt} objekten är: ',\r\n        withName: 'datavärdet för {name} är {value}',\r\n        withoutName: '{value}',\r\n        separator: {\r\n          middle: ', ',\r\n          end: '. ',\r\n        },\r\n      },\r\n    },\r\n  };\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langSV.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\r\n\r\n/**\r\n * Language: Swedish.\r\n */\r\n\r\nvar localeObj = {\r\n    time: {\r\n      month: [\r\n        'januari', 'februari', 'mars', 'april', 'maj', 'juni',\r\n        'juli', 'augusti', 'september', 'oktober', 'november', 'december',\r\n      ],\r\n      monthAbbr: [\r\n        'jan', 'feb', 'mar', 'apr', 'maj', 'jun',\r\n        'jul', 'aug', 'sep', 'okt', 'nov', 'dec',\r\n      ],\r\n      dayOfWeek: [\r\n        'söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag',\r\n      ],\r\n      dayOfWeekAbbr: [\r\n        'sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör',\r\n      ],\r\n    },\r\n    legend: {\r\n      selector: {\r\n        all: 'Alla',\r\n        inverse: 'Omvänd',\r\n      },\r\n    },\r\n    toolbox: {\r\n      brush: {\r\n        title: {\r\n          rect: 'Rektangelurval',\r\n          polygon: 'Lassomarkering',\r\n          lineX: 'Vågrätt urval',\r\n          lineY: 'Lodrätt urval',\r\n          keep: 'Behåll urval',\r\n          clear: 'Rensa urval',\r\n        },\r\n      },\r\n      dataView: {\r\n        title: 'Datavy',\r\n        lang: ['Datavy', 'Stäng', 'Uppdatera'],\r\n      },\r\n      dataZoom: {\r\n        title: {\r\n          zoom: 'Zooma',\r\n          back: 'Återställ zoom',\r\n        },\r\n      },\r\n      magicType: {\r\n        title: {\r\n          line: 'Byt till linjediagram',\r\n          bar: 'Byt till stapeldiagram',\r\n          stack: 'Stapla',\r\n          tiled: 'Sida vid sida',\r\n        },\r\n      },\r\n      restore: {\r\n        title: 'Återställ',\r\n      },\r\n      saveAsImage: {\r\n        title: 'Spara som bild',\r\n        lang: ['Högerklicka för att spara bild'],\r\n      },\r\n    },\r\n    series: {\r\n      typeNames: {\r\n        pie: 'Cirkeldiagram',\r\n        bar: 'Stapeldiagram',\r\n        line: 'Linjediagram',\r\n        scatter: 'Punktdiagram',\r\n        effectScatter: 'Punktdiagram med rippeleffekt',\r\n        radar: 'Radardiagram',\r\n        tree: 'Träd',\r\n        treemap: 'Trädkarta',\r\n        boxplot: 'Lådagram',\r\n        candlestick: 'Candlestick',\r\n        k: 'K-linjediagram',\r\n        heatmap: 'Värmekarta',\r\n        map: 'Karta',\r\n        parallel: 'Parallella koordinater',\r\n        lines: 'Linjediagram',\r\n        graph: 'Relationsgraf',\r\n        sankey: 'Sankeydiagram',\r\n        funnel: 'Trattdiagram',\r\n        gauge: 'Mätare',\r\n        pictorialBar: 'Bildstapel',\r\n        themeRiver: 'Tematisk flod',\r\n        sunburst: 'Solburstdiagram',\r\n        custom: 'Anpassat',\r\n        chart: 'Diagram',\r\n      },\r\n    },\r\n    aria: {\r\n      general: {\r\n        withTitle: 'Detta är ett diagram om \"{title}\"',\r\n        withoutTitle: 'Detta är ett diagram',\r\n      },\r\n      series: {\r\n        single: {\r\n          prefix: '',\r\n          withName: ' med typnamn {name}.',\r\n          withoutName: ' med typ {seriesType}.',\r\n        },\r\n        multiple: {\r\n          prefix: '. Det består av {seriesCount} serier.',\r\n          withName: ' Serien {seriesId} är en {seriesType} som representerar {seriesName}.',\r\n          withoutName: ' Serien {seriesId} är en {seriesType}.',\r\n          separator: {\r\n            middle: '',\r\n            end: '',\r\n          },\r\n        },\r\n      },\r\n      data: {\r\n        allData: 'Data är som följer: ',\r\n        partialData: 'De första {displayCnt} objekten är: ',\r\n        withName: 'datavärdet för {name} är {value}',\r\n        withoutName: '{value}',\r\n        separator: {\r\n          middle: ', ',\r\n          end: '. ',\r\n        },\r\n      },\r\n    },\r\n  };\n    echarts.registerLocale('SV', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langTH-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน',\n            'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'\n        ],\n        monthAbbr: [\n            'ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.',\n            'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'\n        ],\n        dayOfWeek: [\n            'วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', 'วันพุธ', 'วันพฤหัสบดี', 'วันศุกร์', 'วันเสาร์'\n        ],\n        dayOfWeekAbbr: [\n            'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'ทั้งหมด',\n            inverse: 'ผกผัน'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'ตัวเลือกแบบกล่อง',\n                polygon: 'ตัวเลือกแบบบ่วงบาศ',\n                lineX: 'ตัวเลือกแบบแนวนอน',\n                lineY: 'ตัวเลือกแบบแนวตั้ง',\n                keep: 'บันทึกตัวเลือก',\n                clear: 'ล้างตัวเลือก'\n            }\n        },\n        dataView: {\n            title: 'มุมมองข้อมูล',\n            lang: ['มุมมองข้อมูล', 'ปิด', 'รีเฟรช']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'ซูม',\n                back: 'ตั้งซูมใหม่'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'สวิตซ์แบบแผนภาพเส้น',\n                bar: 'สวิตซ์แบบแผนภาพแท่ง',\n                stack: 'กองไว้',\n                tiled: 'แยกไว้'\n            }\n        },\n        restore: {\n            title: 'ตั้งค่าใหม่'\n        },\n        saveAsImage: {\n            title: 'บันทึกไปยังรูปภาพ',\n            lang: ['คลิกขวาเพื่อบันทึกรูปภาพ']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'แผนภูมิวงกลม',\n            bar: 'แผนภูมิแท่ง',\n            line: 'แผนภูมิเส้น',\n            scatter: 'แผนภูมิกระจาย',\n            effectScatter: 'แผนภูมิกระจายคลื่น',\n            radar: 'แผนภูมิเรดาร์',\n            tree: 'ต้นไม้',\n            treemap: 'แผนที่ต้นไม้',\n            boxplot: 'แผนภูมิกล่อง',\n            candlestick: 'แผนภูมิเทียน',\n            k: 'แผนภูมิเส้น K',\n            heatmap: 'แผนที่ความร้อน',\n            map: 'แผนที่',\n            parallel: 'แผนที่พิกัดขนาน',\n            lines: 'กราฟเส้น',\n            graph: 'กราฟความสัมพันธ์',\n            sankey: 'แผนภูมิซันกีย์',\n            funnel: 'แผนภูมิกรวย',\n            gauge: 'เกจ',\n            pictorialBar: 'แผนภูมิแท่งภาพ',\n            themeRiver: 'แผนที่แม่น้ำธีม',\n            sunburst: 'Sunburst',\n            custom: 'แผนภูมิที่กำหนดเอง',\n            chart: 'แผนภูมิ'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'นี่คือแผนภูมิเกี่ยวกับ “{title}”',\n            withoutTitle: 'นี่คือแผนภูมิ'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' ด้วยประเภท {seriesType} ชื่อ {seriesName} ',\n                withoutName: ' ด้วยประเภท {seriesType} '\n            },\n            multiple: {\n                prefix: ' มีทั้งหมด {seriesCount} ชุดข้อมูล ',\n                withName: ' ชุดข้อมูลที่ {seriesId} เป็นประเภท {seriesType} แทน {seriesName} ',\n                withoutName: ' ชุดข้อมูลที่ {seriesId} เป็นประเภท {seriesType} ',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'ข้อมูลดังต่อไปนี้: ',\n            partialData: 'ข้อมูล {displayCnt} รายการแรกคือ: ',\n            withName: 'ข้อมูลสำหรับ {name} คือ {value} ',\n            withoutName: '{value} ',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langTH.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน',\n            'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'\n        ],\n        monthAbbr: [\n            'ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.',\n            'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'\n        ],\n        dayOfWeek: [\n            'วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', 'วันพุธ', 'วันพฤหัสบดี', 'วันศุกร์', 'วันเสาร์'\n        ],\n        dayOfWeekAbbr: [\n            'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'ทั้งหมด',\n            inverse: 'ผกผัน'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'ตัวเลือกแบบกล่อง',\n                polygon: 'ตัวเลือกแบบบ่วงบาศ',\n                lineX: 'ตัวเลือกแบบแนวนอน',\n                lineY: 'ตัวเลือกแบบแนวตั้ง',\n                keep: 'บันทึกตัวเลือก',\n                clear: 'ล้างตัวเลือก'\n            }\n        },\n        dataView: {\n            title: 'มุมมองข้อมูล',\n            lang: ['มุมมองข้อมูล', 'ปิด', 'รีเฟรช']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'ซูม',\n                back: 'ตั้งซูมใหม่'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'สวิตซ์แบบแผนภาพเส้น',\n                bar: 'สวิตซ์แบบแผนภาพแท่ง',\n                stack: 'กองไว้',\n                tiled: 'แยกไว้'\n            }\n        },\n        restore: {\n            title: 'ตั้งค่าใหม่'\n        },\n        saveAsImage: {\n            title: 'บันทึกไปยังรูปภาพ',\n            lang: ['คลิกขวาเพื่อบันทึกรูปภาพ']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'แผนภูมิวงกลม',\n            bar: 'แผนภูมิแท่ง',\n            line: 'แผนภูมิเส้น',\n            scatter: 'แผนภูมิกระจาย',\n            effectScatter: 'แผนภูมิกระจายคลื่น',\n            radar: 'แผนภูมิเรดาร์',\n            tree: 'ต้นไม้',\n            treemap: 'แผนที่ต้นไม้',\n            boxplot: 'แผนภูมิกล่อง',\n            candlestick: 'แผนภูมิเทียน',\n            k: 'แผนภูมิเส้น K',\n            heatmap: 'แผนที่ความร้อน',\n            map: 'แผนที่',\n            parallel: 'แผนที่พิกัดขนาน',\n            lines: 'กราฟเส้น',\n            graph: 'กราฟความสัมพันธ์',\n            sankey: 'แผนภูมิซันกีย์',\n            funnel: 'แผนภูมิกรวย',\n            gauge: 'เกจ',\n            pictorialBar: 'แผนภูมิแท่งภาพ',\n            themeRiver: 'แผนที่แม่น้ำธีม',\n            sunburst: 'Sunburst',\n            custom: 'แผนภูมิที่กำหนดเอง',\n            chart: 'แผนภูมิ'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'นี่คือแผนภูมิเกี่ยวกับ “{title}”',\n            withoutTitle: 'นี่คือแผนภูมิ'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' ด้วยประเภท {seriesType} ชื่อ {seriesName} ',\n                withoutName: ' ด้วยประเภท {seriesType} '\n            },\n            multiple: {\n                prefix: ' มีทั้งหมด {seriesCount} ชุดข้อมูล ',\n                withName: ' ชุดข้อมูลที่ {seriesId} เป็นประเภท {seriesType} แทน {seriesName} ',\n                withoutName: ' ชุดข้อมูลที่ {seriesId} เป็นประเภท {seriesType} ',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'ข้อมูลดังต่อไปนี้: ',\n            partialData: 'ข้อมูล {displayCnt} รายการแรกคือ: ',\n            withName: 'ข้อมูลสำหรับ {name} คือ {value} ',\n            withoutName: '{value} ',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('TH', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langTR-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Türkçe.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran',\n            'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'\n        ],\n        monthAbbr: [\n            'Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz',\n            'Tem', 'Agu', 'Eyl', 'Eki', 'Kas', 'Ara'\n        ],\n        dayOfWeek: [\n            'Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'\n        ],\n        dayOfWeekAbbr: [\n            'Paz', 'Pzt', 'Sal', 'Çrş', 'Prş', 'Cum', 'Cts'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tümünü Seç',\n            inverse: 'Seçimi Ters Çevir'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Dikdörtgen Seçimi',\n                polygon: 'Kement Seçimi',\n                lineX: 'Yatay Seçim',\n                lineY: 'Dikey Seçim',\n                keep: 'Seçimi Koru',\n                clear: 'Seçimi Sil'\n            }\n        },\n        dataView: {\n            title: 'Veri Görünümü',\n            lang: ['Veri Görünümü', 'Kapat', 'Yenile']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Yakınlaştır/Uzaklaştır',\n                back: 'Yakınlaştırmayı Sıfırla'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Çizgisel Grafiğe Çevir',\n                bar: 'Çubuk Grafiğe Çevir',\n                stack: 'Yığın',\n                tiled: 'Blok'\n            }\n        },\n        restore: {\n            title: 'Eski Haline Getir'\n        },\n        saveAsImage: {\n            title: 'Resim Olarak Kaydet',\n            lang: ['Resim Olarak Kaydetmek için Sağ Tıklayın']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Pasta Grafiği',\n            bar: 'Çubuk Grafik',\n            line: 'Çizgi Grafiği',\n            scatter: 'Dağılım Grafiği',\n            effectScatter: 'Dalga Efekt Dağılım Grafiği',\n            radar: 'Radar Grafiği',\n            tree: 'Ağaç Grafiği',\n            treemap: 'Ağaç Haritası',\n            boxplot: 'Kutu Grafiği',\n            candlestick: 'Şamdan Grafik',\n            k: 'K Çizgi Grafiği',\n            heatmap: 'Sıcaklık Haritası',\n            map: 'Harita',\n            parallel: 'Paralel Koordinat Haritası',\n            lines: 'Çizgisel Grafik',\n            graph: 'İlişkisel Grafik',\n            sankey: 'Sankey Diagramı',\n            funnel: 'Huni Grafik',\n            gauge: 'Gösterge',\n            pictorialBar: 'Resimli Çubuk Grafiği',\n            themeRiver: 'Akış Haritası',\n            sunburst: 'Güeş Patlaması Tablosu',\n            custom: 'Özel grafik',\n            chart: 'Grafiği'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Bu grafik \"{title}\" içindir.',\n            withoutTitle: 'Bu Bir Grafiktir.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' Grafik Türü {seriesType} ve {seriesName} gösteriyor.',\n                withoutName: ' {seriesType} tipinde grafik.'\n            },\n            multiple: {\n                prefix: '. {seriesCount} kadar grafik sayısından oluşur.',\n                withName: ' {seriesId}.serisi {seriesName} adını temsil eden bir {seriesType} temsil eder.',\n                withoutName: ' {seriesId}. serisi bir {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Veriler Aşağıdaki Gibidir: ',\n            partialData: 'İlk {displayCnt} öğesi: ',\n            withName: ' {value} için {name}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langTR.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Türkçe.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran',\n            'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'\n        ],\n        monthAbbr: [\n            'Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz',\n            'Tem', 'Agu', 'Eyl', 'Eki', 'Kas', 'Ara'\n        ],\n        dayOfWeek: [\n            'Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'\n        ],\n        dayOfWeekAbbr: [\n            'Paz', 'Pzt', 'Sal', 'Çrş', 'Prş', 'Cum', 'Cts'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Tümünü Seç',\n            inverse: 'Seçimi Ters Çevir'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Dikdörtgen Seçimi',\n                polygon: 'Kement Seçimi',\n                lineX: 'Yatay Seçim',\n                lineY: 'Dikey Seçim',\n                keep: 'Seçimi Koru',\n                clear: 'Seçimi Sil'\n            }\n        },\n        dataView: {\n            title: 'Veri Görünümü',\n            lang: ['Veri Görünümü', 'Kapat', 'Yenile']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Yakınlaştır/Uzaklaştır',\n                back: 'Yakınlaştırmayı Sıfırla'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Çizgisel Grafiğe Çevir',\n                bar: 'Çubuk Grafiğe Çevir',\n                stack: 'Yığın',\n                tiled: 'Blok'\n            }\n        },\n        restore: {\n            title: 'Eski Haline Getir'\n        },\n        saveAsImage: {\n            title: 'Resim Olarak Kaydet',\n            lang: ['Resim Olarak Kaydetmek için Sağ Tıklayın']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Pasta Grafiği',\n            bar: 'Çubuk Grafik',\n            line: 'Çizgi Grafiği',\n            scatter: 'Dağılım Grafiği',\n            effectScatter: 'Dalga Efekt Dağılım Grafiği',\n            radar: 'Radar Grafiği',\n            tree: 'Ağaç Grafiği',\n            treemap: 'Ağaç Haritası',\n            boxplot: 'Kutu Grafiği',\n            candlestick: 'Şamdan Grafik',\n            k: 'K Çizgi Grafiği',\n            heatmap: 'Sıcaklık Haritası',\n            map: 'Harita',\n            parallel: 'Paralel Koordinat Haritası',\n            lines: 'Çizgisel Grafik',\n            graph: 'İlişkisel Grafik',\n            sankey: 'Sankey Diagramı',\n            funnel: 'Huni Grafik',\n            gauge: 'Gösterge',\n            pictorialBar: 'Resimli Çubuk Grafiği',\n            themeRiver: 'Akış Haritası',\n            sunburst: 'Güeş Patlaması Tablosu',\n            custom: 'Özel grafik',\n            chart: 'Grafiği'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Bu grafik \"{title}\" içindir.',\n            withoutTitle: 'Bu Bir Grafiktir.'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' Grafik Türü {seriesType} ve {seriesName} gösteriyor.',\n                withoutName: ' {seriesType} tipinde grafik.'\n            },\n            multiple: {\n                prefix: '. {seriesCount} kadar grafik sayısından oluşur.',\n                withName: ' {seriesId}.serisi {seriesName} adını temsil eden bir {seriesType} temsil eder.',\n                withoutName: ' {seriesId}. serisi bir {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Veriler Aşağıdaki Gibidir: ',\n            partialData: 'İlk {displayCnt} öğesi: ',\n            withName: ' {value} için {name}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('TR', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langUK-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Ukrainian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень',\n            'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'\n        ],\n        monthAbbr: [\n            'Січ', 'Лют', 'Бер', 'Кві', 'Тра', 'Чер',\n            'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'\n        ],\n        dayOfWeek: [\n            'Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\\'ятниця', 'Субота'\n        ],\n        dayOfWeekAbbr: [\n            'нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Все',\n            inverse: 'Обернути'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Выділити область',\n                polygon: 'Інструмент «Ласо»',\n                lineX: 'Горизонтальне виділення',\n                lineY: 'Вертикальне виділення',\n                keep: 'Залишити обране',\n                clear: 'Очистити обране'\n            }\n        },\n        dataView: {\n            title: 'Дані',\n            lang: ['Дані', 'Закрити', 'Оновити']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Збільшити',\n                back: 'Скасувати збільшення'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Переключитися на лінійний графік',\n                bar: 'Переключитися на стовпчикову діаграму',\n                stack: 'Стопка',\n                tiled: 'Плитка'\n            }\n        },\n        restore: {\n            title: 'Відновити'\n        },\n        saveAsImage: {\n            title: 'Зберегти зображення',\n            lang: ['Правий клік, щоб зберегти зображення']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Кругова діаграма',\n            bar: 'Стовпчикова діаграма',\n            line: 'Лінійний графік',\n            scatter: 'Точкова діаграма',\n            effectScatter: 'Точкова діаграма з хвилями',\n            radar: 'Пелюсткова діаграма',\n            tree: 'Дерево',\n            treemap: 'Пласке дерево',\n            boxplot: 'Ящик з вусами',\n            candlestick: 'Свічний графік',\n            k: 'Графік К-ліній',\n            heatmap: 'Теплова мапа',\n            map: 'Мапа',\n            parallel: 'Діаграма паралельних координат',\n            lines: 'Лінійний граф',\n            graph: 'Граф отношений',\n            sankey: 'Діаграма Санкей',\n            funnel: 'Воронкообразна діаграма',\n            gauge: 'Шкала',\n            pictorialBar: 'Стовпчик-картинка',\n            themeRiver: 'Тематична ріка',\n            sunburst: 'Сонячне проміння',\n            custom: 'Спеціальна діаграма',\n            chart: 'діаграма'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Це графік, що відрображує \"{title}\"',\n            withoutTitle: 'Це графік'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' з типом {seriesType} та іменем {seriesName}.',\n                withoutName: ' з типом {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Він складається з {seriesCount} серій.',\n                withName:\n                    ' Серія {seriesId} має тип {seriesType} та відображає {seriesName}.',\n                withoutName: ' Серія {seriesId} має тип {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Дані такі: ',\n            partialData: 'Перші {displayCnt} елементів: ',\n            withName: 'значення для {name} — {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langUK.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Ukrainian.\n */\n\nvar localeObj = {\n    time: {\n        month: [\n            'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень',\n            'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'\n        ],\n        monthAbbr: [\n            'Січ', 'Лют', 'Бер', 'Кві', 'Тра', 'Чер',\n            'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'\n        ],\n        dayOfWeek: [\n            'Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\\'ятниця', 'Субота'\n        ],\n        dayOfWeekAbbr: [\n            'нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'\n        ]\n    },\n    legend: {\n        selector: {\n            all: 'Все',\n            inverse: 'Обернути'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: 'Выділити область',\n                polygon: 'Інструмент «Ласо»',\n                lineX: 'Горизонтальне виділення',\n                lineY: 'Вертикальне виділення',\n                keep: 'Залишити обране',\n                clear: 'Очистити обране'\n            }\n        },\n        dataView: {\n            title: 'Дані',\n            lang: ['Дані', 'Закрити', 'Оновити']\n        },\n        dataZoom: {\n            title: {\n                zoom: 'Збільшити',\n                back: 'Скасувати збільшення'\n            }\n        },\n        magicType: {\n            title: {\n                line: 'Переключитися на лінійний графік',\n                bar: 'Переключитися на стовпчикову діаграму',\n                stack: 'Стопка',\n                tiled: 'Плитка'\n            }\n        },\n        restore: {\n            title: 'Відновити'\n        },\n        saveAsImage: {\n            title: 'Зберегти зображення',\n            lang: ['Правий клік, щоб зберегти зображення']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: 'Кругова діаграма',\n            bar: 'Стовпчикова діаграма',\n            line: 'Лінійний графік',\n            scatter: 'Точкова діаграма',\n            effectScatter: 'Точкова діаграма з хвилями',\n            radar: 'Пелюсткова діаграма',\n            tree: 'Дерево',\n            treemap: 'Пласке дерево',\n            boxplot: 'Ящик з вусами',\n            candlestick: 'Свічний графік',\n            k: 'Графік К-ліній',\n            heatmap: 'Теплова мапа',\n            map: 'Мапа',\n            parallel: 'Діаграма паралельних координат',\n            lines: 'Лінійний граф',\n            graph: 'Граф отношений',\n            sankey: 'Діаграма Санкей',\n            funnel: 'Воронкообразна діаграма',\n            gauge: 'Шкала',\n            pictorialBar: 'Стовпчик-картинка',\n            themeRiver: 'Тематична ріка',\n            sunburst: 'Сонячне проміння',\n            custom: 'Спеціальна діаграма',\n            chart: 'діаграма'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: 'Це графік, що відрображує \"{title}\"',\n            withoutTitle: 'Це графік'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: ' з типом {seriesType} та іменем {seriesName}.',\n                withoutName: ' з типом {seriesType}.'\n            },\n            multiple: {\n                prefix: '. Він складається з {seriesCount} серій.',\n                withName:\n                    ' Серія {seriesId} має тип {seriesType} та відображає {seriesName}.',\n                withoutName: ' Серія {seriesId} має тип {seriesType}.',\n                separator: {\n                    middle: '',\n                    end: ''\n                }\n            }\n        },\n        data: {\n            allData: 'Дані такі: ',\n            partialData: 'Перші {displayCnt} елементів: ',\n            withName: 'значення для {name} — {value}',\n            withoutName: '{value}',\n            separator: {\n                middle: ', ',\n                end: '. '\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('UK', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langVI-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Vietnamese.\n */\n\nvar localeObj = {\n  time: {\n    month: [\n      'Tháng 1',\n      'Tháng 2',\n      'Tháng 3',\n      'Tháng 4',\n      'Tháng 5',\n      'Tháng 6',\n      'Tháng 7',\n      'Tháng 8',\n      'Tháng 9',\n      'Tháng 10',\n      'Tháng 11',\n      'Tháng 12'\n    ],\n    monthAbbr: [\n      'Th01',\n      'Th02',\n      'Th03',\n      'Th04',\n      'Th05',\n      'Th06',\n      'Th07',\n      'Th08',\n      'Th09',\n      'Th10',\n      'Th11',\n      'Th12'\n    ],\n    dayOfWeek: [\n      'Chủ nhật',\n      'Thứ hai',\n      'Thứ ba',\n      'Thứ tư',\n      'Thứ năm',\n      'Thứ sáu',\n      'Thứ bảy'\n    ],\n    dayOfWeekAbbr: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7']\n  },\n  legend: {\n    selector: {\n      all: 'Tất cả',\n      inverse: 'Ngược lại'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Chọn theo ô',\n        polygon: 'Chọn theo đường bất kỳ',\n        lineX: 'Chọn theo chiều ngang',\n        lineY: 'Chọn theo chiều dọc',\n        keep: 'Giữ đã chọn',\n        clear: 'Bỏ đã chọn'\n      }\n    },\n    dataView: {\n      title: 'Xem dữ liệu',\n      lang: ['Xem dữ liệu', 'Đóng', 'Làm mới']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Phóng to',\n        back: 'Bỏ phóng to'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Chuyển sang biểu đồ đường',\n        bar: 'Chuyển sang biểu đồ cột',\n        stack: 'Xếp chồng',\n        tiled: 'Lát'\n      }\n    },\n    restore: {\n      title: 'Khôi phục'\n    },\n    saveAsImage: {\n      title: 'Lưu thành ảnh',\n      lang: ['Bấm phải chuột để lưu ảnh']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Biều đồ tròn',\n      bar: 'Biểu đồ cột',\n      line: 'Biểu đồ đường',\n      scatter: 'Biểu đồ phân tán',\n      effectScatter: 'Biểu đồ gợn sóng',\n      radar: 'Biểu đồ Radar',\n      tree: 'Biểu đồ cây',\n      treemap: 'Sơ đồ cây',\n      boxplot: 'Biểu đồ hộp',\n      candlestick: 'Biều đồ nến',\n      k: 'Biểu đồ đường K',\n      heatmap: 'Bản đồ nhiệt',\n      map: 'Bản đồ',\n      parallel: 'Bản đồ tọa độ song song',\n      lines: 'Biểu đồ đường',\n      graph: 'Đồ thị quan hệ',\n      sankey: 'Sơ đồ dòng',\n      funnel: 'Biểu đồ hình phễu',\n      gauge: 'Biểu đồ cung tròn',\n      pictorialBar: 'Biểu diễn hình ảnh',\n      themeRiver: 'Bản đồ sông',\n      sunburst: 'Biểu đồ bậc',\n      custom: 'Biểu đồ tùy chỉnh',\n      chart: 'Đồ thị'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'Đây là biểu đồ \"{title}\"',\n      withoutTitle: 'Đây là biểu đồ'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' với kiểu {seriesType} tên là {seriesName}.',\n        withoutName: ' với kiểu {seriesType}.'\n      },\n      multiple: {\n        prefix: '. Nó bao gồm {seriesCount} chuỗi.',\n        withName:\n          ' Chuỗi {seriesId} có kiểu {seriesType} đại diện cho {seriesName}.',\n        withoutName: ' Chuỗi {seriesId} có kiểu {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'Dữ liệu như sau: ',\n      partialData: 'Các mục {displayCnt} đầu tiên là: ',\n      withName: 'dữ liệu cho {name} là {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langVI.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Vietnamese.\n */\n\nvar localeObj = {\n  time: {\n    month: [\n      'Tháng 1',\n      'Tháng 2',\n      'Tháng 3',\n      'Tháng 4',\n      'Tháng 5',\n      'Tháng 6',\n      'Tháng 7',\n      'Tháng 8',\n      'Tháng 9',\n      'Tháng 10',\n      'Tháng 11',\n      'Tháng 12'\n    ],\n    monthAbbr: [\n      'Th01',\n      'Th02',\n      'Th03',\n      'Th04',\n      'Th05',\n      'Th06',\n      'Th07',\n      'Th08',\n      'Th09',\n      'Th10',\n      'Th11',\n      'Th12'\n    ],\n    dayOfWeek: [\n      'Chủ nhật',\n      'Thứ hai',\n      'Thứ ba',\n      'Thứ tư',\n      'Thứ năm',\n      'Thứ sáu',\n      'Thứ bảy'\n    ],\n    dayOfWeekAbbr: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7']\n  },\n  legend: {\n    selector: {\n      all: 'Tất cả',\n      inverse: 'Ngược lại'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Chọn theo ô',\n        polygon: 'Chọn theo đường bất kỳ',\n        lineX: 'Chọn theo chiều ngang',\n        lineY: 'Chọn theo chiều dọc',\n        keep: 'Giữ đã chọn',\n        clear: 'Bỏ đã chọn'\n      }\n    },\n    dataView: {\n      title: 'Xem dữ liệu',\n      lang: ['Xem dữ liệu', 'Đóng', 'Làm mới']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Phóng to',\n        back: 'Bỏ phóng to'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Chuyển sang biểu đồ đường',\n        bar: 'Chuyển sang biểu đồ cột',\n        stack: 'Xếp chồng',\n        tiled: 'Lát'\n      }\n    },\n    restore: {\n      title: 'Khôi phục'\n    },\n    saveAsImage: {\n      title: 'Lưu thành ảnh',\n      lang: ['Bấm phải chuột để lưu ảnh']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Biều đồ tròn',\n      bar: 'Biểu đồ cột',\n      line: 'Biểu đồ đường',\n      scatter: 'Biểu đồ phân tán',\n      effectScatter: 'Biểu đồ gợn sóng',\n      radar: 'Biểu đồ Radar',\n      tree: 'Biểu đồ cây',\n      treemap: 'Sơ đồ cây',\n      boxplot: 'Biểu đồ hộp',\n      candlestick: 'Biều đồ nến',\n      k: 'Biểu đồ đường K',\n      heatmap: 'Bản đồ nhiệt',\n      map: 'Bản đồ',\n      parallel: 'Bản đồ tọa độ song song',\n      lines: 'Biểu đồ đường',\n      graph: 'Đồ thị quan hệ',\n      sankey: 'Sơ đồ dòng',\n      funnel: 'Biểu đồ hình phễu',\n      gauge: 'Biểu đồ cung tròn',\n      pictorialBar: 'Biểu diễn hình ảnh',\n      themeRiver: 'Bản đồ sông',\n      sunburst: 'Biểu đồ bậc',\n      custom: 'Biểu đồ tùy chỉnh',\n      chart: 'Đồ thị'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'Đây là biểu đồ \"{title}\"',\n      withoutTitle: 'Đây là biểu đồ'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' với kiểu {seriesType} tên là {seriesName}.',\n        withoutName: ' với kiểu {seriesType}.'\n      },\n      multiple: {\n        prefix: '. Nó bao gồm {seriesCount} chuỗi.',\n        withName:\n          ' Chuỗi {seriesId} có kiểu {seriesType} đại diện cho {seriesName}.',\n        withoutName: ' Chuỗi {seriesId} có kiểu {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'Dữ liệu như sau: ',\n      partialData: 'Các mục {displayCnt} đầu tiên là: ',\n      withName: 'dữ liệu cho {name} là {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};\n\n    echarts.registerLocale('VI', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langZH-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            '一月', '二月', '三月', '四月', '五月', '六月',\n            '七月', '八月', '九月', '十月', '十一月', '十二月'\n        ],\n        monthAbbr: [\n            '1月', '2月', '3月', '4月', '5月', '6月',\n            '7月', '8月', '9月', '10月', '11月', '12月'\n        ],\n        dayOfWeek: [\n            '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\n        ],\n        dayOfWeekAbbr: [\n            '日', '一', '二', '三', '四', '五', '六'\n        ]\n    },\n    legend: {\n        selector: {\n            all: '全选',\n            inverse: '反选'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '矩形选择',\n                polygon: '圈选',\n                lineX: '横向选择',\n                lineY: '纵向选择',\n                keep: '保持选择',\n                clear: '清除选择'\n            }\n        },\n        dataView: {\n            title: '数据视图',\n            lang: ['数据视图', '关闭', '刷新']\n        },\n        dataZoom: {\n            title: {\n                zoom: '区域缩放',\n                back: '区域缩放还原'\n            }\n        },\n        magicType: {\n            title: {\n                line: '切换为折线图',\n                bar: '切换为柱状图',\n                stack: '切换为堆叠',\n                tiled: '切换为平铺'\n            }\n        },\n        restore: {\n            title: '还原'\n        },\n        saveAsImage: {\n            title: '保存为图片',\n            lang: ['右键另存为图片']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '饼图',\n            bar: '柱状图',\n            line: '折线图',\n            scatter: '散点图',\n            effectScatter: '涟漪散点图',\n            radar: '雷达图',\n            tree: '树图',\n            treemap: '矩形树图',\n            boxplot: '箱型图',\n            candlestick: 'K线图',\n            k: 'K线图',\n            heatmap: '热力图',\n            map: '地图',\n            parallel: '平行坐标图',\n            lines: '线图',\n            graph: '关系图',\n            sankey: '桑基图',\n            funnel: '漏斗图',\n            gauge: '仪表盘图',\n            pictorialBar: '象形柱图',\n            themeRiver: '主题河流图',\n            sunburst: '旭日图',\n            custom: '自定义图表',\n            chart: '图表'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: '这是一个关于“{title}”的图表。',\n            withoutTitle: '这是一个图表，'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: '图表类型是{seriesType}，表示{seriesName}。',\n                withoutName: '图表类型是{seriesType}。'\n            },\n            multiple: {\n                prefix: '它由{seriesCount}个图表系列组成。',\n                withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType}，',\n                withoutName: '第{seriesId}个系列是一个{seriesType}，',\n                separator: {\n                    middle: '；',\n                    end: '。'\n                }\n            }\n        },\n        data: {\n            allData: '其数据是——',\n            partialData: '其中，前{displayCnt}项是——',\n            withName: '{name}的数据是{value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '，',\n                end: ''\n            }\n        }\n    }\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langZH.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\nvar localeObj = {\n    time: {\n        month: [\n            '一月', '二月', '三月', '四月', '五月', '六月',\n            '七月', '八月', '九月', '十月', '十一月', '十二月'\n        ],\n        monthAbbr: [\n            '1月', '2月', '3月', '4月', '5月', '6月',\n            '7月', '8月', '9月', '10月', '11月', '12月'\n        ],\n        dayOfWeek: [\n            '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\n        ],\n        dayOfWeekAbbr: [\n            '日', '一', '二', '三', '四', '五', '六'\n        ]\n    },\n    legend: {\n        selector: {\n            all: '全选',\n            inverse: '反选'\n        }\n    },\n    toolbox: {\n        brush: {\n            title: {\n                rect: '矩形选择',\n                polygon: '圈选',\n                lineX: '横向选择',\n                lineY: '纵向选择',\n                keep: '保持选择',\n                clear: '清除选择'\n            }\n        },\n        dataView: {\n            title: '数据视图',\n            lang: ['数据视图', '关闭', '刷新']\n        },\n        dataZoom: {\n            title: {\n                zoom: '区域缩放',\n                back: '区域缩放还原'\n            }\n        },\n        magicType: {\n            title: {\n                line: '切换为折线图',\n                bar: '切换为柱状图',\n                stack: '切换为堆叠',\n                tiled: '切换为平铺'\n            }\n        },\n        restore: {\n            title: '还原'\n        },\n        saveAsImage: {\n            title: '保存为图片',\n            lang: ['右键另存为图片']\n        }\n    },\n    series: {\n        typeNames: {\n            pie: '饼图',\n            bar: '柱状图',\n            line: '折线图',\n            scatter: '散点图',\n            effectScatter: '涟漪散点图',\n            radar: '雷达图',\n            tree: '树图',\n            treemap: '矩形树图',\n            boxplot: '箱型图',\n            candlestick: 'K线图',\n            k: 'K线图',\n            heatmap: '热力图',\n            map: '地图',\n            parallel: '平行坐标图',\n            lines: '线图',\n            graph: '关系图',\n            sankey: '桑基图',\n            funnel: '漏斗图',\n            gauge: '仪表盘图',\n            pictorialBar: '象形柱图',\n            themeRiver: '主题河流图',\n            sunburst: '旭日图',\n            custom: '自定义图表',\n            chart: '图表'\n        }\n    },\n    aria: {\n        general: {\n            withTitle: '这是一个关于“{title}”的图表。',\n            withoutTitle: '这是一个图表，'\n        },\n        series: {\n            single: {\n                prefix: '',\n                withName: '图表类型是{seriesType}，表示{seriesName}。',\n                withoutName: '图表类型是{seriesType}。'\n            },\n            multiple: {\n                prefix: '它由{seriesCount}个图表系列组成。',\n                withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType}，',\n                withoutName: '第{seriesId}个系列是一个{seriesType}，',\n                separator: {\n                    middle: '；',\n                    end: '。'\n                }\n            }\n        },\n        data: {\n            allData: '其数据是——',\n            partialData: '其中，前{displayCnt}项是——',\n            withName: '{name}的数据是{value}',\n            withoutName: '{value}',\n            separator: {\n                middle: '，',\n                end: ''\n            }\n        }\n    }\n};\n\n    echarts.registerLocale('ZH', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langnb-NO-obj.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports);\n    } else {\n        // Browser globals\n        factory({});\n    }\n})(this, function(exports) {\n\n\n/**\n * Language: Norwegian Bokmål.\n */\n\nvar localeObj = {\n  time: {\n    month: [\n      'januar', 'februar', 'mars', 'april', 'mai', 'juni',\n      'juli', 'august', 'september', 'oktober', 'november', 'desember',\n    ],\n    monthAbbr: [\n      'jan', 'feb', 'mar', 'apr', 'mai', 'jun',\n      'jul', 'aug', 'sep', 'okt', 'nov', 'des',\n    ],\n    dayOfWeek: [\n      'søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag',\n    ],\n    dayOfWeekAbbr: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n  },\n  legend: {\n    selector: {\n      all: 'Alle',\n      inverse: 'Omvendt',\n    },\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Boksutvalg',\n        polygon: 'Lassomarkering',\n        lineX: 'Vannrett utvalg',\n        lineY: 'Loddrett utvalg',\n        keep: 'Behold utvalg',\n        clear: 'Fjern utvalg',\n      },\n    },\n    dataView: {\n      title: 'Datavisning',\n      lang: ['Datavisning', 'Lukk', 'Oppfrisk'],\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Tilbakestill zoom',\n      },\n    },\n    magicType: {\n      title: {\n        line: 'Bytt til linjediagram',\n        bar: 'Bytt til stolpediagram',\n        stack: 'Stable',\n        tiled: 'Side ved side',\n      },\n    },\n    restore: {\n      title: 'Tilbakestill',\n    },\n    saveAsImage: {\n      title: 'Lagre som bilde',\n      lang: ['Høyreklikk for å lagre som bilde'],\n    },\n  },\n  series: {\n    typeNames: {\n      pie: 'Sektordiagram',\n      bar: 'Stolpediagram',\n      line: 'Linjediagram',\n      scatter: 'Spredningsplott',\n      effectScatter: 'Krusningsspredningsplott',\n      radar: 'Radardiagram',\n      tree: 'Tre',\n      treemap: 'Trekart',\n      boxplot: 'Boksplot',\n      candlestick: 'Candlestick',\n      k: 'K-linjediagram',\n      heatmap: 'Varmekart',\n      map: 'Kart',\n      parallel: 'Parallelle koordinater',\n      lines: 'Linjediagram',\n      graph: 'Relasjonsgraf',\n      sankey: 'Sankey-diagram',\n      funnel: 'Traktdiagram',\n      gauge: 'Måler',\n      pictorialBar: 'Bildestolper',\n      themeRiver: 'Tematisk elvediagram',\n      sunburst: 'Solstrålediagram',\n      custom: 'Tilpasset',\n      chart: 'Diagram',\n    },\n  },\n  aria: {\n    general: {\n      withTitle: 'Dette er et diagram om \"{title}\"',\n      withoutTitle: 'Dette er et diagram',\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' med type {seriesType} ved navn {seriesName}.',\n        withoutName: ' med type {seriesType}.',\n      },\n      multiple: {\n        prefix: '. Det består av {seriesCount} serier.',\n        withName:\n          ' Serie {seriesId} er av typen {seriesType} som representerer {seriesName}.',\n        withoutName: ' Serie {seriesId} er av typen {seriesType}.',\n        separator: {\n          middle: '',\n          end: '',\n        },\n      },\n    },\n    data: {\n      allData: 'Dataene er som følger: ',\n      partialData: 'De første {displayCnt} elementene er: ',\n      withName: 'dataene for {name} er {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. ',\n      },\n    },\n  },\n};\n\n    for (var key in localeObj) {\n        if (localeObj.hasOwnProperty(key)) {\n            exports[key] = localeObj[key];\n        }\n    }\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/langnb-NO.js",
    "content": "\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n\n\n/**\n * Language: Norwegian Bokmål.\n */\n\nvar localeObj = {\n  time: {\n    month: [\n      'januar', 'februar', 'mars', 'april', 'mai', 'juni',\n      'juli', 'august', 'september', 'oktober', 'november', 'desember',\n    ],\n    monthAbbr: [\n      'jan', 'feb', 'mar', 'apr', 'mai', 'jun',\n      'jul', 'aug', 'sep', 'okt', 'nov', 'des',\n    ],\n    dayOfWeek: [\n      'søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag',\n    ],\n    dayOfWeekAbbr: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n  },\n  legend: {\n    selector: {\n      all: 'Alle',\n      inverse: 'Omvendt',\n    },\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Boksutvalg',\n        polygon: 'Lassomarkering',\n        lineX: 'Vannrett utvalg',\n        lineY: 'Loddrett utvalg',\n        keep: 'Behold utvalg',\n        clear: 'Fjern utvalg',\n      },\n    },\n    dataView: {\n      title: 'Datavisning',\n      lang: ['Datavisning', 'Lukk', 'Oppfrisk'],\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Tilbakestill zoom',\n      },\n    },\n    magicType: {\n      title: {\n        line: 'Bytt til linjediagram',\n        bar: 'Bytt til stolpediagram',\n        stack: 'Stable',\n        tiled: 'Side ved side',\n      },\n    },\n    restore: {\n      title: 'Tilbakestill',\n    },\n    saveAsImage: {\n      title: 'Lagre som bilde',\n      lang: ['Høyreklikk for å lagre som bilde'],\n    },\n  },\n  series: {\n    typeNames: {\n      pie: 'Sektordiagram',\n      bar: 'Stolpediagram',\n      line: 'Linjediagram',\n      scatter: 'Spredningsplott',\n      effectScatter: 'Krusningsspredningsplott',\n      radar: 'Radardiagram',\n      tree: 'Tre',\n      treemap: 'Trekart',\n      boxplot: 'Boksplot',\n      candlestick: 'Candlestick',\n      k: 'K-linjediagram',\n      heatmap: 'Varmekart',\n      map: 'Kart',\n      parallel: 'Parallelle koordinater',\n      lines: 'Linjediagram',\n      graph: 'Relasjonsgraf',\n      sankey: 'Sankey-diagram',\n      funnel: 'Traktdiagram',\n      gauge: 'Måler',\n      pictorialBar: 'Bildestolper',\n      themeRiver: 'Tematisk elvediagram',\n      sunburst: 'Solstrålediagram',\n      custom: 'Tilpasset',\n      chart: 'Diagram',\n    },\n  },\n  aria: {\n    general: {\n      withTitle: 'Dette er et diagram om \"{title}\"',\n      withoutTitle: 'Dette er et diagram',\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' med type {seriesType} ved navn {seriesName}.',\n        withoutName: ' med type {seriesType}.',\n      },\n      multiple: {\n        prefix: '. Det består av {seriesCount} serier.',\n        withName:\n          ' Serie {seriesId} er av typen {seriesType} som representerer {seriesName}.',\n        withoutName: ' Serie {seriesId} er av typen {seriesType}.',\n        separator: {\n          middle: '',\n          end: '',\n        },\n      },\n    },\n    data: {\n      allData: 'Dataene er som følger: ',\n      partialData: 'De første {displayCnt} elementene er: ',\n      withName: 'dataene for {name} er {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. ',\n      },\n    },\n  },\n};\n\n    echarts.registerLocale('nb-NO', localeObj);\n        \n});"
  },
  {
    "path": "app/assets/javascripts/echarts/i18n/package.json",
    "content": "{\n    \"type\": \"commonjs\"\n}"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/azul.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#f2385a',\n        '#f5a503',\n        '#4ad9d9',\n        '#f7879c',\n        '#c1d7a8',\n        '#4dffd2',\n        '#fccfd7',\n        '#d5f6f6'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#f2385a'\n            }\n        },\n\n        visualMap: {\n            color: ['#f2385a', '#f5a503']\n        },\n\n        toolbox: {\n            color: ['#f2385a', '#f2385a', '#f2385a', '#f2385a']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#f2385a',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#f2385a'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#f2385a' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#f2385a'\n            },\n            controlStyle: {\n                color: '#f2385a',\n                borderColor: '#f2385a'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#f2385a',\n                color0: '#f5a503'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#f2385a',\n                color0: '#f5a503'\n            },\n            areaStyle: {\n                color: '#c1d7a8',\n                color0: '#4ad9d9'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#f2385a'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#f2385a'\n            },\n            linkStyle: {\n                color: '#f2385a'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#f5a503'],\n                        [0.8, '#f2385a'],\n                        [1, '#c1d7a8']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('azul', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/bee-inspired.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#001727',\n        '#805500',\n        '#ffff00',\n        '#ffd11a',\n        '#f2d71f',\n        '#f2be19',\n        '#f3a81a',\n        '#fff5cc'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#001727'\n            }\n        },\n\n        visualMap: {\n            color: ['#001727', '#805500']\n        },\n\n        toolbox: {\n            color: ['#001727', '#001727', '#001727', '#001727']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#001727',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#001727'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#001727' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#001727'\n            },\n            controlStyle: {\n                color: '#001727',\n                borderColor: '#001727'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#f3a81a',\n                color0: '#ffff00'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#ffff00',\n                color0: '#f3a81a'\n            },\n            areaStyle: {\n                color: '#805500',\n                color0: '#ffff00'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#f3a81a',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#805500'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ffd11a'\n            },\n            areaStyle: {\n                color: '#f2be19'\n            },\n            label: {\n                color: '#ffd11a'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#001727'\n            },\n            linkStyle: {\n                color: '#001727'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#f2d71f'],\n                        [0.8, '#001727'],\n                        [1, '#ffff00']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('bee-inspired', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/blue.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#1790cf',\n        '#1bb2d8',\n        '#99d2dd',\n        '#88b0bb',\n        '#1c7099',\n        '#038cc4',\n        '#75abd0',\n        '#afd6dd'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#1790cf'\n            }\n        },\n\n        visualMap: {\n            color: ['#1790cf', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#1790cf', '#1790cf', '#1790cf', '#1790cf']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#1790cf',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#1790cf'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#1790cf' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#1790cfa'\n            },\n            controlStyle: {\n                color: '#1790cf',\n                borderColor: '#1790cf'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#1bb2d8',\n                color0: '#99d2dd'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#1c7099',\n                color0: '#88b0bb'\n            },\n            areaStyle: {\n                color: '#1790cf',\n                color0: '#1bb2d8'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#1bb2d8',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#1790cf'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#1bb2d8'\n            },\n            linkStyle: {\n                color: '#88b0bb'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '99d2dd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#1bb2d8'],\n                        [0.8, '#1790cf'],\n                        [1, '#1c7099']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('blue', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/caravan.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#fad089',\n        '#ff9c5b',\n        '#f5634a',\n        '#ed303c',\n        '#3b8183',\n        '#f7826e',\n        '#faac9e',\n        '#fcd5cf'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#fad089'\n            }\n        },\n\n        visualMap: {\n            color: ['#fad089', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#fad089', '#fad089', '#fad089', '#fad089']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#fad089',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#fad089'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#fad089' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#fad089'\n            },\n            controlStyle: {\n                color: '#fad089',\n                borderColor: '#fad089'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#ff9c5b',\n                color0: '#f5634a'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#3b8183',\n                color0: '#ed303c'\n            },\n            areaStyle: {\n                color: '#fad089',\n                color0: '#ed303c'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#fad089',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#ed303c'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#f5634a'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#f5634a'\n            },\n            linkStyle: {\n                color: '#fad089'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#ff9c5b'],\n                        [0.8, '#fad089'],\n                        [1, '#3b8183']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('caravan', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/carp.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#f0d8A8',\n        '#3d1c00',\n        '#86b8b1',\n        '#f2d694',\n        '#fa2a00',\n        '#ff8066',\n        '#ffd5cc',\n        '#f9edd2'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#f0d8A8'\n            }\n        },\n\n        visualMap: {\n            color: ['#f0d8A8', '#3d1c00']\n        },\n\n        toolbox: {\n            color: ['#f0d8A8', '#f0d8A8', '#f0d8A8', '#f0d8A8']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#f0d8A8',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#f0d8A8'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#f0d8A8' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#f0dba8'\n            },\n            controlStyle: {\n                color: '#f0dba8',\n                borderColor: '#f0dba8'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#3d1c00',\n                color0: '#86b8b1'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#fa2a00',\n                color0: '#f2d694'\n            },\n            areaStyle: {\n                color: '#f0d8A8',\n                color0: '#86b8b1'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#86b8b1'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#3d1c00'\n            },\n            linkStyle: {\n                color: '#f0d8A8'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#3d1c00'],\n                        [0.8, '#f0d8A8'],\n                        [1, '#fa2a00']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('carp', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/cool.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#b21ab4',\n        '#6f0099',\n        '#2a2073',\n        '#0b5ea8',\n        '#17aecc',\n        '#b3b3ff',\n        '#eb99ff',\n        '#fae6ff',\n        '#e6f2ff',\n        '#eeeeee'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#00aecd'\n            }\n        },\n\n        visualMap: {\n            color: ['#00aecd', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#00aecd', '#00aecd', '#00aecd', '#00aecd']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#00aecd',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#00aecd'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#00aecd' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#00aecd'\n            },\n            controlStyle: {\n                color: '#00aecd',\n                borderColor: '00aecd'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#00aecd',\n                color0: '#a2d4e6'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#00aecd',\n                color0: '#a2d4e6'\n            },\n            areaStyle: {\n                color: '#b21ab4',\n                color0: '#0b5ea8'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#b21ab4',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#0b5ea8'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#b21ab4'\n            },\n            linkStyle: {\n                color: '#2a2073'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#c12e34'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#dddddd'],\n                        [0.8, '#00aecd'],\n                        [1, '#f5ccff']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('cool', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark-blue.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#eee';\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisLabel: {\n                color: contrastColor\n            },\n            splitLine: {\n                lineStyle: {\n                    type: 'dashed',\n                    color: '#aaa'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: contrastColor\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#00305a',\n        '#004b8d',\n        '#0074d9',\n        '#4192d9',\n        '#7abaf2',\n        '#99cce6',\n        '#d6ebf5',\n        '#eeeeee'\n    ];\n    var theme = {\n        color: colorPalette,\n        backgroundColor: '#333',\n        tooltip: {\n            axisPointer: {\n                lineStyle: {\n                    color: contrastColor\n                },\n                crossStyle: {\n                    color: contrastColor\n                }\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        title: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#00305a' // Handle color\n        },\n\n        timeline: {\n            itemStyle: {\n                color: colorPalette[1]\n            },\n            lineStyle: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            },\n            label: {\n                color: contrastColor\n            }\n        },\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#004b8d'],\n                        [0.8, '#00305a'],\n                        [1, '#7abaf2']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark-blue', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark-bold.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#eee';\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisLabel: {\n                color: contrastColor\n            },\n            splitLine: {\n                lineStyle: {\n                    type: 'dashed',\n                    color: '#aaa'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: contrastColor\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#458c6b',\n        '#f2da87',\n        '#d9a86c',\n        '#d94436',\n        '#a62424',\n        '#76bc9b',\n        '#cce6da',\n        '#eeeeee'\n    ];\n    var theme = {\n        color: colorPalette,\n        backgroundColor: '#333',\n        tooltip: {\n            axisPointer: {\n                lineStyle: {\n                    color: contrastColor\n                },\n                crossStyle: {\n                    color: contrastColor\n                }\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        title: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#458c6b' // Handle color\n        },\n\n        timeline: {\n            itemStyle: {\n                color: colorPalette[1]\n            },\n            lineStyle: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            },\n            label: {\n                color: contrastColor\n            }\n        },\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#f2da87'],\n                        [0.8, '#458c6b'],\n                        [1, '#a62424']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark-bold', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark-digerati.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#eee';\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisLabel: {\n                color: contrastColor\n            },\n            splitLine: {\n                lineStyle: {\n                    type: 'dashed',\n                    color: '#aaa'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: contrastColor\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#52656b',\n        '#ff3b77',\n        '#a3cc00',\n        '#ffffff',\n        '#b8b89f',\n        '#ffccdb',\n        '#e5ff80',\n        '#f4f4f0'\n    ];\n    var theme = {\n        color: colorPalette,\n        backgroundColor: '#333',\n        tooltip: {\n            axisPointer: {\n                lineStyle: {\n                    color: contrastColor\n                },\n                crossStyle: {\n                    color: contrastColor\n                }\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        title: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#52656b' // Handle color\n        },\n\n        timeline: {\n            itemStyle: {\n                color: colorPalette[1]\n            },\n            lineStyle: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            },\n            label: {\n                color: contrastColor\n            }\n        },\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#ff3b77'],\n                        [0.8, '#52656b'],\n                        [1, '#b8b89f']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark-digerati', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark-fresh-cut.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#eee';\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisLabel: {\n                color: contrastColor\n            },\n            splitLine: {\n                lineStyle: {\n                    type: 'dashed',\n                    color: '#aaa'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: contrastColor\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#00a8c6',\n        '#40c0cb',\n        '#ebd3ad',\n        '#aee239',\n        '#8fbe00',\n        '#33e0ff',\n        '#b3f4ff',\n        '#e6ff99'\n    ];\n    var theme = {\n        color: colorPalette,\n        backgroundColor: '#333',\n        tooltip: {\n            axisPointer: {\n                lineStyle: {\n                    color: contrastColor\n                },\n                crossStyle: {\n                    color: contrastColor\n                }\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        title: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#00a8c6' // Handle color\n        },\n\n        timeline: {\n            itemStyle: {\n                color: colorPalette[1]\n            },\n            lineStyle: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            },\n            label: {\n                color: contrastColor\n            }\n        },\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#40c0cb'],\n                        [0.8, '#00a8c6'],\n                        [1, '#8fbe00']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark-fresh-cut', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark-mushroom.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#eee';\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            axisLabel: {\n                color: contrastColor\n            },\n            splitLine: {\n                lineStyle: {\n                    type: 'dashed',\n                    color: '#aaa'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: contrastColor\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#cc0e00',\n        '#ff1a0a',\n        '#ff8880',\n        '#ffc180',\n        '#ffc2b0',\n        '#ffffff',\n        '#ff8880',\n        '#ffe6e6'\n    ];\n    var theme = {\n        color: colorPalette,\n        backgroundColor: '#333',\n        tooltip: {\n            axisPointer: {\n                lineStyle: {\n                    color: contrastColor\n                },\n                crossStyle: {\n                    color: contrastColor\n                }\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        title: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#cc0e00' // Handle color\n        },\n\n        timeline: {\n            itemStyle: {\n                color: colorPalette[1]\n            },\n            lineStyle: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            },\n            label: {\n                color: contrastColor\n            }\n        },\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#ff1a0a'],\n                        [0.8, '#cc0e00'],\n                        [1, '#ffc2b0']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark-mushroom', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/dark.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var contrastColor = '#B9B8CE';\n    var backgroundColor = '#100C2A';\n    var axisCommon = function () {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: contrastColor\n                }\n            },\n            splitLine: {\n                lineStyle: {\n                    color: '#484753'\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n                }\n            },\n            minorSplitLine: {\n                lineStyle: {\n                    color: '#20203B'\n                }\n            }\n        };\n    };\n\n    var colorPalette = [\n        '#4992ff',\n        '#7cffb2',\n        '#fddd60',\n        '#ff6e76',\n        '#58d9f9',\n        '#05c091',\n        '#ff8a45',\n        '#8d48e3',\n        '#dd79ff'\n    ];\n    var theme = {\n        darkMode: true,\n\n        color: colorPalette,\n        backgroundColor: backgroundColor,\n        axisPointer: {\n            lineStyle: {\n                color: '#817f91'\n            },\n            crossStyle: {\n                color: '#817f91'\n            },\n            label: {\n                // TODO Contrast of label backgorundColor\n                color: '#fff'\n            }\n        },\n        legend: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        textStyle: {\n            color: contrastColor\n        },\n        title: {\n            textStyle: {\n                color: '#EEF1FA'\n            },\n            subtextStyle: {\n                color: '#B9B8CE'\n            }\n        },\n        toolbox: {\n            iconStyle: {\n                borderColor: contrastColor\n            }\n        },\n        dataZoom: {\n            borderColor: '#71708A',\n            textStyle: {\n                color: contrastColor\n            },\n            brushStyle: {\n                color: 'rgba(135,163,206,0.3)'\n            },\n            handleStyle: {\n                color: '#353450',\n                borderColor: '#C5CBE3'\n            },\n            moveHandleStyle: {\n                color: '#B0B6C3',\n                opacity: 0.3\n            },\n            fillerColor: 'rgba(135,163,206,0.2)',\n            emphasis: {\n                handleStyle: {\n                    borderColor: '#91B7F2',\n                    color: '#4D587D'\n                },\n                moveHandleStyle: {\n                    color: '#636D9A',\n                    opacity: 0.7\n                }\n            },\n            dataBackground: {\n                lineStyle: {\n                    color: '#71708A',\n                    width: 1\n                },\n                areaStyle: {\n                    color: '#71708A'\n                }\n            },\n            selectedDataBackground: {\n                lineStyle: {\n                    color: '#87A3CE'\n                },\n                areaStyle: {\n                    color: '#87A3CE'\n                }\n            }\n        },\n        visualMap: {\n            textStyle: {\n                color: contrastColor\n            }\n        },\n        timeline: {\n            lineStyle: {\n                color: contrastColor\n            },\n            label: {\n                color: contrastColor\n            },\n            controlStyle: {\n                color: contrastColor,\n                borderColor: contrastColor\n            }\n        },\n        calendar: {\n            itemStyle: {\n                color: backgroundColor\n            },\n            dayLabel: {\n                color: contrastColor\n            },\n            monthLabel: {\n                color: contrastColor\n            },\n            yearLabel: {\n                color: contrastColor\n            }\n        },\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: axisCommon(),\n\n        line: {\n            symbol: 'circle'\n        },\n        graph: {\n            color: colorPalette\n        },\n        gauge: {\n            title: {\n                color: contrastColor\n            }\n        },\n        candlestick: {\n            itemStyle: {\n                color: '#FD1050',\n                color0: '#0CF49B',\n                borderColor: '#FD1050',\n                borderColor0: '#0CF49B'\n            }\n        }\n    };\n\n    theme.categoryAxis.splitLine.show = false;\n    echarts.registerTheme('dark', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/eduardo.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#59535e',\n        '#e7dcef',\n        '#f1baf3',\n        '#5d4970',\n        '#372049',\n        '#c0b2cd',\n        '#ffccff',\n        '#f2f0f5'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#59535e'\n            }\n        },\n\n        visualMap: {\n            color: ['#59535e', '#e7dcef']\n        },\n\n        toolbox: {\n            color: ['#59535e', '#59535e', '#59535e', '#59535e']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#59535e',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#59535e'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#59535e' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#59535e'\n            },\n            controlStyle: {\n                color: '#59535e',\n                borderColor: '#59535e'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#e7dcef',\n                color0: '#f1baf3'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#372049',\n                color0: '#5d4970'\n            },\n            areaStyle: {\n                color: '#59535e',\n                color0: '#e7dcef'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#59535e',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#e7dcef'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#f1baf3'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#59535e'\n            },\n            linkStyle: {\n                color: '#59535e'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#e7dcef'],\n                        [0.8, '#59535e'],\n                        [1, '#372049']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('eduardo', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/forest.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#313b23',\n        '#494f2b',\n        '#606233',\n        '#d6b77b',\n        '#0e0e0e',\n        '#076278',\n        '#808080',\n        '#e7d5b1'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#313b23'\n            }\n        },\n\n        visualMap: {\n            color: ['#313b23', '#494f2b']\n        },\n\n        toolbox: {\n            color: ['#313b23', '#313b23', '#313b23', '#313b23']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#313b23',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#313b23'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#313b23' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#313b23'\n            },\n            controlStyle: {\n                color: '#313b23',\n                borderColor: '#313b23'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#494f2b',\n                color0: '#606233'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#0e0e0e',\n                color0: '#d6b77b'\n            },\n            areaStyle: {\n                color: '#494f2b',\n                color0: '#d6b77b'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#606233'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#494f2b'\n            },\n            linkStyle: {\n                color: '#313b23'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#494f2b'],\n                        [0.8, '#313b23'],\n                        [1, '0e0e0e']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('forest', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/fresh-cut.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#00a8c6',\n        '#40c0cb',\n        '#f0dec2',\n        '#aee239',\n        '#8fbe00',\n        '#33e0ff',\n        '#b3f4ff',\n        '#e6ff99'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#00a8c6'\n            }\n        },\n\n        visualMap: {\n            color: ['#00a8c6', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#00a8c6', '#00a8c6', '#00a8c6', '#00a8c6']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#00a8c6',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#00a8c6'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#00a8c6' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#00a8c6'\n            },\n            controlStyle: {\n                color: '#00a8c6',\n                borderColor: '#00a8c6'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#40c0cb',\n                color0: '#f0dec2'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#8fbe00',\n                color0: '#aee239'\n            },\n            areaStyle: {\n                color: '#00a8c6',\n                color0: '#aee239'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#f0dec2'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#f0dec2'\n            },\n            linkStyle: {\n                color: '#00a8c6'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#40c0cb'],\n                        [0.8, '#00a8c6'],\n                        [1, '#8fbe00']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('fresh-cut', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/fruit.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#ffcb6a',\n        '#ffa850',\n        '#ffe2c4',\n        '#e5834e',\n        '#ffb081',\n        '#f7826e',\n        '#faac9e',\n        '#fcd5cf'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#ffcb6a'\n            }\n        },\n\n        visualMap: {\n            color: ['#ffcb6a', '#ffa850']\n        },\n\n        toolbox: {\n            color: ['#ffcb6a', '#ffcb6a', '#ffcb6a', '#ffcb6a']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#ffcb6a',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#ffcb6a'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#ffcb6a' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#ffcb6a'\n            },\n            controlStyle: {\n                color: '#ffcb6a',\n                borderColor: '#ffcb6a'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#ffa850',\n                color0: '#ffe2c4'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#ffb081',\n                color0: '#e5834e'\n            },\n            areaStyle: {\n                color: '#e5834e',\n                color0: '#fcd5cf'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#fcd5cf',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#e5834e'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ffe2c4'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#f2385a'\n            },\n            linkStyle: {\n                color: '#ffcb6a'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#ffa850'],\n                        [0.8, '#ffcb6a'],\n                        [1, '#ffb081']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('fruit', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/gray.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#757575',\n        '#c7c7c7',\n        '#dadada',\n        '#8b8b8b',\n        '#b5b5b5',\n        '#e9e9e9'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#757575'\n            }\n        },\n\n        dataRange: {\n            color: ['#636363', '#dcdcdc']\n        },\n\n        toolbox: {\n            color: ['#757575', '#757575', '#757575', '#757575']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#757575',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#757575'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(117,117,117,0.2)', // Fill the color\n            handleColor: '#757575' // Handle color\n        },\n\n        grid: {\n            borderWidth: 0\n        },\n\n        categoryAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#757575'\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#757575'\n                }\n            },\n            splitArea: {\n                show: true,\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#757575'\n            },\n            controlStyle: {\n                color: '#757575',\n                borderColor: '#757575'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#8b8b8b',\n                color0: '#dadada'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#757575',\n                color0: '#c7c7c7'\n            },\n            areaStyle: {\n                color: '#757575',\n                color0: '#e9e9e9'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#c7c7c7'\n            },\n            areaStyle: {\n                color: 'ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#e9e9e9'\n            },\n            linkStyle: {\n                color: '#757575'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#e9e9e9',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#757575'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#b5b5b5'],\n                        [0.8, '#757575'],\n                        [1, '#5c5c5c']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('gray', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/green.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#408829',\n        '#68a54a',\n        '#a9cba2',\n        '#86b379',\n        '#397b29',\n        '#8abb6f',\n        '#759c6a',\n        '#bfd3b7'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#408829'\n            }\n        },\n\n        visualMap: {\n            color: ['408829', '#a9cba2']\n        },\n\n        toolbox: {\n            color: ['#408829', '#408829', '#408829', '#408829']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#408829',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#408829'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(64,136,41,0.2)', // Fill the color\n            handleColor: '#408829' // Handle color\n        },\n\n        grid: {\n            borderWidth: 0\n        },\n\n        categoryAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#408829'\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#408829'\n                }\n            },\n            splitArea: {\n                show: true,\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#408829'\n            },\n            controlStyle: {\n                color: '#408829',\n                borderColor: '#408829'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#68a54a',\n                color0: '#a9cba2'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#408829',\n                color0: '#86b379'\n            },\n            areaStyle: {\n                color: '#408829',\n                color0: '#bfd3b7'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#bfd3b7'\n            },\n            linkStyle: {\n                color: '#408829'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#bfd3b7',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#408829'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#408829'\n            },\n            label: {\n                color: '#000'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#86b379'],\n                        [0.8, '#68a54a'],\n                        [1, '#408829']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('green', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/helianthus.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#44B7D3',\n        '#E42B6D',\n        '#F4E24E',\n        '#FE9616',\n        '#8AED35',\n        '#ff69b4',\n        '#ba55d3',\n        '#cd5c5c',\n        '#ffa500',\n        '#40e0d0',\n        '#E95569',\n        '#ff6347',\n        '#7b68ee',\n        '#00fa9a',\n        '#ffd700',\n        '#6699FF',\n        '#ff6666',\n        '#3cb371',\n        '#b8860b',\n        '#30e0e0'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#8A826D'\n            }\n        },\n\n        dataRange: {\n            x: 'right',\n            y: 'center',\n            itemWidth: 5,\n            itemHeight: 25,\n            color: ['#E42B6D', '#F9AD96'],\n            text: ['High', 'Low'], // Text, default is numeric text\n            textStyle: {\n                color: '#8A826D' // Range text color\n            }\n        },\n\n        toolbox: {\n            color: ['#E95569', '#E95569', '#E95569', '#E95569'],\n            effectiveColor: '#ff4500',\n            itemGap: 8\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(138,130,109,0.7)', // Prompt background color, default is black with a transparency of 0.7\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#6B6455',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#A6A299'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: 'rgba(130,197,209,0.6)', // Data background color\n            fillerColor: 'rgba(233,84,105,0.1)', // Fill the color\n            handleColor: 'rgba(107,99,84,0.8)' // Handle color\n        },\n\n        grid: {\n            borderWidth: 0\n        },\n\n        categoryAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#6B6455'\n                }\n            },\n            splitLine: {\n                // separate line\n                show: false\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                // Coordinate axis\n                show: true\n            },\n            splitArea: {\n                show: false\n            },\n            splitLine: {\n                // separate line\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: ['#FFF'],\n                    type: 'dashed'\n                }\n            }\n        },\n\n        polar: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // // Property 'lineStyle' controls line styles\n                    color: '#ddd'\n                }\n            },\n            splitArea: {\n                show: true,\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.2)', 'rgba(200,200,200,0.2)']\n                }\n            },\n            splitLine: {\n                lineStyle: {\n                    color: '#ddd'\n                }\n            }\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#6B6455'\n            },\n            controlStyle: {\n                color: '#6B6455',\n                borderColor: '#6B6455'\n            }\n        },\n\n        line: {\n            smooth: true,\n            symbol: 'emptyCircle', // Inflection point graphic type\n            symbolSize: 3 // Inflection point graphic size\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#e42B6d',\n                color0: '#44B7d3'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#e42B6d',\n                color0: '#44B7d3'\n            },\n            areaStyle: {\n                color: '#fe994e',\n                color0: '#e42B6d'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#6b6455'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#e42B6d'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#e42B6d'\n            },\n            linkStyle: {\n                color: '#6b6455'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#e42B6d',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#6b6455'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#44B7D3'],\n                        [0.8, '#6B6455'],\n                        [1, '#E42B6D']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('helianthus', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/infographic.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#C1232B',\n        '#27727B',\n        '#FCCE10',\n        '#E87C25',\n        '#B5C334',\n        '#FE8463',\n        '#9BCA63',\n        '#FAD860',\n        '#F3A43B',\n        '#60C0DD',\n        '#D7504B',\n        '#C6E579',\n        '#F4E001',\n        '#F0805A',\n        '#26C0C0'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#27727B'\n            }\n        },\n\n        visualMap: {\n            color: ['#C1232B', '#FCCE10']\n        },\n\n        toolbox: {\n            iconStyle: {\n                borderColor: colorPalette[0]\n            }\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(50,50,50,0.5)',\n            axisPointer: {\n                type: 'line',\n                lineStyle: {\n                    color: '#27727B',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#27727B'\n                },\n                shadowStyle: {\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        dataZoom: {\n            dataBackgroundColor: 'rgba(181,195,52,0.3)',\n            fillerColor: 'rgba(181,195,52,0.2)',\n            handleColor: '#27727B'\n        },\n\n        categoryAxis: {\n            axisLine: {\n                lineStyle: {\n                    color: '#27727B'\n                }\n            },\n            splitLine: {\n                show: false\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                show: false\n            },\n            splitArea: {\n                show: false\n            },\n            splitLine: {\n                lineStyle: {\n                    color: ['#ccc'],\n                    type: 'dashed'\n                }\n            }\n        },\n\n        timeline: {\n            itemStyle: {\n                color: '#27727B'\n            },\n            lineStyle: {\n                color: '#27727B'\n            },\n            controlStyle: {\n                color: '#27727B',\n                borderColor: '#27727B'\n            },\n            symbol: 'emptyCircle',\n            symbolSize: 3\n        },\n\n        line: {\n            itemStyle: {\n                borderWidth: 2,\n                borderColor: '#fff',\n                lineStyle: {\n                    width: 3\n                }\n            },\n            emphasis: {\n                itemStyle: {\n                    borderWidth: 0\n                }\n            },\n            symbol: 'circle',\n            symbolSize: 3.5\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#c1232b',\n                color0: '#b5c334'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#c1232b',\n                color0: '#b5c334'\n            },\n            areaStyle: {\n                color: '#c1232b',\n                color0: '#27727b'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#c1232b'\n            },\n            linkStyle: {\n                color: '#b5c334'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#f2385a',\n                areaColor: '#ddd',\n                borderColor: '#eee'\n            },\n            areaStyle: {\n                color: '#fe994e'\n            },\n            label: {\n                color: '#c1232b'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#B5C334'],\n                        [0.8, '#27727B'],\n                        [1, '#C1232B']\n                    ]\n                }\n            },\n            axisTick: {\n                splitNumber: 2,\n                length: 5,\n                lineStyle: {\n                    color: '#fff'\n                }\n            },\n            axisLabel: {\n                color: '#fff'\n            },\n            splitLine: {\n                length: '5%',\n                lineStyle: {\n                    color: '#fff'\n                }\n            },\n            title: {\n                offsetCenter: [0, -20]\n            }\n        }\n    };\n\n    echarts.registerTheme('infographic', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/inspired.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#cc0000',\n        '#002266',\n        '#ff9900',\n        '#006600',\n        '#8a150f',\n        '#076278',\n        '#808080',\n        '#f07b75'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#cc0000'\n            }\n        },\n\n        visualMap: {\n            color: ['#cc0000', '#002266']\n        },\n\n        toolbox: {\n            color: ['#cc0000', '#cc0000', '#cc0000', '#cc0000']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#cc0000',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#cc0000'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#cc0000' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#cc0000'\n            },\n            controlStyle: {\n                color: '#cc0000',\n                borderColor: '#cc0000'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#002266',\n                color0: '#ff9900'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#8a150f',\n                color0: '#006600'\n            },\n            areaStyle: {\n                color: '#cc0000',\n                color0: '#ff9900'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ff9900'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#ff9900'\n            },\n            linkStyle: {\n                color: '#cc0000'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#002266'],\n                        [0.8, '#cc0000'],\n                        [1, '8a150f']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('inspired', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/jazz.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#e9e0d1',\n        '#91a398',\n        '#33605a',\n        '#070001',\n        '#68462b',\n        '#58a79c',\n        '#abd3ce',\n        '#eef6f5'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#e9e0d1'\n            }\n        },\n\n        visualMap: {\n            color: ['#e9e0d1', '#91a398']\n        },\n\n        toolbox: {\n            color: ['#e9e0d1', '#e9e0d1', '#e9e0d1', '#e9e0d1']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#e9e0d1',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#e9e0d1'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#e9e0d1' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#e9e0d1'\n            },\n            controlStyle: {\n                color: '#e9e0d1',\n                borderColor: '#e9e0d1'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#91a398',\n                color0: '#33605a'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#68462b',\n                color0: '#070001'\n            },\n            areaStyle: {\n                color: '#91a398',\n                color0: '#abd3ce'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#c12e34'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#33605a'\n            },\n            linkStyle: {\n                color: '#e9e0d1'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#91a398'],\n                        [0.8, '#e9e0d1'],\n                        [1, '#68462b']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('jazz', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/london.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#02151a',\n        '#043a47',\n        '#087891',\n        '#c8c8c8',\n        '#b31d14',\n        '#0b9cc1',\n        '#f2f2f2',\n        '#f07b75'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#02151a'\n            }\n        },\n\n        visualMap: {\n            color: ['#02151a', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#02151a', '#02151a', '#02151a', '#02151a']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#02151a',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#02151a'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#02151a' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#02151a'\n            },\n            controlStyle: {\n                color: '#02151a',\n                borderColor: '#02151a'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#043a47',\n                color0: '#087891'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#b31d14',\n                color0: '#c8c8c8'\n            },\n            areaStyle: {\n                color: '#087891',\n                color0: '#c8c8c8'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#087891'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#c12e34'\n            },\n            linkStyle: {\n                color: '#02151a'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#043a47'],\n                        [0.8, '#02151a'],\n                        [1, '#b31d14']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('london', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/macarons.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#2ec7c9',\n        '#b6a2de',\n        '#5ab1ef',\n        '#ffb980',\n        '#d87a80',\n        '#8d98b3',\n        '#e5cf0d',\n        '#97b552',\n        '#95706d',\n        '#dc69aa',\n        '#07a2a4',\n        '#9a7fd1',\n        '#588dd5',\n        '#f5994e',\n        '#c05050',\n        '#59678c',\n        '#c9ab00',\n        '#7eb00a',\n        '#6f5553',\n        '#c14089'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#008acd'\n            }\n        },\n\n        visualMap: {\n            itemWidth: 15,\n            color: ['#5ab1ef', '#e0ffff']\n        },\n\n        toolbox: {\n            iconStyle: {\n                borderColor: colorPalette[0]\n            }\n        },\n\n        tooltip: {\n            borderWidth: 0,\n            backgroundColor: 'rgba(50,50,50,0.5)',\n            textStyle: {\n                color: '#FFF'\n            },\n            axisPointer: {\n                type: 'line',\n                lineStyle: {\n                    color: '#008acd'\n                },\n                crossStyle: {\n                    color: '#008acd'\n                },\n                shadowStyle: {\n                    color: 'rgba(200,200,200,0.2)'\n                }\n            }\n        },\n\n        dataZoom: {\n            dataBackgroundColor: '#efefff',\n            fillerColor: 'rgba(182,162,222,0.2)',\n            handleColor: '#008acd'\n        },\n\n        grid: {\n            borderColor: '#eee'\n        },\n\n        categoryAxis: {\n            axisLine: {\n                lineStyle: {\n                    color: '#008acd'\n                }\n            },\n            splitLine: {\n                lineStyle: {\n                    color: ['#eee']\n                }\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                lineStyle: {\n                    color: '#008acd'\n                }\n            },\n            splitArea: {\n                show: true,\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']\n                }\n            },\n            splitLine: {\n                lineStyle: {\n                    color: ['#eee']\n                }\n            }\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#008acd'\n            },\n            controlStyle: {\n                color: '#008acd',\n                borderColor: '#008acd'\n            },\n            symbol: 'emptyCircle',\n            symbolSize: 3\n        },\n\n        line: {\n            smooth: true,\n            symbol: 'emptyCircle',\n            symbolSize: 3\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#d87a80',\n                color0: '#2ec7c9'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#d87a80',\n                color0: '#2ec7c9'\n            },\n            areaStyle: {\n                color: '#2ec7c9',\n                color0: '#b6a2de'\n            }\n        },\n\n        scatter: {\n            symbol: 'circle',\n            symbolSize: 4\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd'\n            },\n            areaStyle: {\n                color: '#fe994e'\n            },\n            label: {\n                color: '#d87a80'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#d87a80'\n            },\n            linkStyle: {\n                color: '#2ec7c9'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#2ec7c9'],\n                        [0.8, '#5ab1ef'],\n                        [1, '#d87a80']\n                    ],\n                    width: 10\n                }\n            },\n            axisTick: {\n                splitNumber: 10,\n                length: 15,\n                lineStyle: {\n                    color: 'auto'\n                }\n            },\n            splitLine: {\n                length: 22,\n                lineStyle: {\n                    color: 'auto'\n                }\n            },\n            pointer: {\n                width: 5\n            }\n        }\n    };\n\n    echarts.registerTheme('macarons', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/macarons2.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#ed9678',\n        '#e7dac9',\n        '#cb8e85',\n        '#f3f39d',\n        '#c8e49c',\n        '#f16d7a',\n        '#f3d999',\n        '#d3758f',\n        '#dcc392',\n        '#2e4783',\n        '#82b6e9',\n        '#ff6347',\n        '#a092f1',\n        '#0a915d',\n        '#eaf889',\n        '#6699FF',\n        '#ff6666',\n        '#3cb371',\n        '#d5b158',\n        '#38b6b6'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#cb8e85'\n            }\n        },\n\n        dataRange: {\n            color: ['#cb8e85', '#e7dac9'], //颜色\n            //text:['高','低'],         // 文本，默认为数值文本\n            textStyle: {\n                color: '#333' // 值域文字颜色\n            }\n        },\n\n        bar: {\n            barMinHeight: 0, // 最小高度改为0\n            // barWidth: null,        // 默认自适应\n            barGap: '30%', // 柱间距离，默认为柱形宽度的30%，可设固定值\n            barCategoryGap: '20%', // 类目间柱形距离，默认为类目间距的20%，可设固定值\n            label: {\n                show: false\n                // position: 默认自适应，水平布局为'top'，垂直布局为'right'，可选为\n                //           'inside'|'left'|'right'|'top'|'bottom'\n                // textStyle: null      // 默认使用全局文本样式，详见TEXTSTYLE\n            },\n            itemStyle: {\n                // color: '各异',\n                barBorderColor: '#fff', // 柱条边线\n                barBorderRadius: 0, // 柱条边线圆角，单位px，默认为0\n                barBorderWidth: 1 // 柱条边线线宽，单位px，默认为1\n            },\n            emphasis: {\n                itemStyle: {\n                    // color: '各异',\n                    barBorderColor: 'rgba(0,0,0,0)', // 柱条边线\n                    barBorderRadius: 0, // 柱条边线圆角，单位px，默认为0\n                    barBorderWidth: 1, // 柱条边线线宽，单位px，默认为1\n                },\n                label: {\n                    show: false\n                    // position: 默认自适应，水平布局为'top'，垂直布局为'right'，可选为\n                    //           'inside'|'left'|'right'|'top'|'bottom'\n                    // textStyle: null      // 默认使用全局文本样式，详见TEXTSTYLE\n                }\n            }\n        },\n\n        line: {\n            label: {\n                show: false\n                // position: 默认自适应，水平布局为'top'，垂直布局为'right'，可选为\n                //           'inside'|'left'|'right'|'top'|'bottom'\n                // textStyle: null      // 默认使用全局文本样式，详见TEXTSTYLE\n            },\n            itemStyle: {\n                // color: 各异,\n            },\n            emphasis: {\n                // color: 各异,\n                label: {\n                    show: false\n                    // position: 默认自适应，水平布局为'top'，垂直布局为'right'，可选为\n                    //           'inside'|'left'|'right'|'top'|'bottom'\n                    // textStyle: null      // 默认使用全局文本样式，详见TEXTSTYLE\n                }\n            },\n            lineStyle: {\n                width: 2,\n                type: 'solid',\n                shadowColor: 'rgba(0,0,0,0)', //默认透明\n                shadowBlur: 5,\n                shadowOffsetX: 3,\n                shadowOffsetY: 3\n            },\n            //smooth : false,\n            //symbol: null,         // 拐点图形类型\n            symbolSize: 2, // 拐点图形大小\n            //symbolRotate : null,  // 拐点图形旋转控制\n            showAllSymbol: false // 标志图形默认只有主轴显示（随主轴标签间隔隐藏策略）\n        },\n        candlestick: {\n            itemStyle: {\n                color: '#fe9778',\n                color0: '#e7dac9'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#f78766',\n                color0: '#f1ccb8'\n            },\n            areaStyle: {\n                color: '#e7dac9',\n                color0: '#c8e49c'\n            }\n        },\n\n        // 饼图默认参数\n        pie: {\n            center: ['50%', '50%'], // 默认全局居中\n            radius: [0, '75%'],\n            clockWise: false, // 默认逆时针\n            startAngle: 90,\n            minAngle: 0, // 最小角度改为0\n            selectedOffset: 10, // 选中是扇区偏移量\n            label: {\n                show: true,\n                position: 'outer',\n                color: '#1b1b1b',\n                lineStyle: { color: '#1b1b1b' }\n                // textStyle: null      // 默认使用全局文本样式，详见TEXTSTYLE\n            },\n            itemStyle: {\n                // color: 各异,\n                borderColor: '#fff',\n                borderWidth: 1\n            },\n            labelLine: {\n                show: true,\n                length: 20,\n                lineStyle: {\n                    // color: 各异,\n                    width: 1,\n                    type: 'solid'\n                }\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#ddd',\n                borderColor: '#fff',\n                borderWidth: 1\n            },\n            areaStyle: {\n                color: '#f3f39d'\n            },\n            label: {\n                show: false,\n                color: 'rgba(139,69,19,1)'\n            },\n            showLegendSymbol: true\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#d87a80'\n            },\n            linkStyle: {\n                strokeColor: '#a17e6e'\n            },\n            nodeStyle: {\n                brushType: 'both',\n                strokeColor: '#a17e6e'\n            },\n            label: {\n                show: false\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#ed9678'],\n                        [0.8, '#e7dac9'],\n                        [1, '#cb8e85']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('macarons2', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/mint.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#8aedd5',\n        '#93bc9e',\n        '#cef1db',\n        '#7fe579',\n        '#a6d7c2',\n        '#bef0bb',\n        '#99e2vb',\n        '#94f8a8',\n        '#7de5b8',\n        '#4dfb70'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#8aedd5'\n            }\n        },\n\n        toolbox: {\n            color: ['#8aedd5', '#8aedd5', '#8aedd5', '#8aedd5']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#8aedd5',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#8aedd5'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(64,136,41,0.2)', // Fill the color\n            handleColor: '#408829' // Handle color\n        },\n\n        dataRange: {\n            color: ['#93bc92', '#bef0bb']\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#8aedd5',\n                color0: '#7fe579'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#8aedd5',\n                color0: '#7fe579'\n            },\n            areaStyle: {\n                color: '#8aedd5',\n                color0: '#93bc9e'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#8aedd5'\n            },\n            linkStyle: {\n                color: '#93bc9e'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#8aedd5'\n            },\n            areaStyle: {\n                color: '#93bc9e'\n            },\n            label: {\n                color: '#cef1db'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#93bc9e'],\n                        [0.8, '#8aedd5'],\n                        [1, '#a6d7c2']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('mint', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/package.json",
    "content": "{\n    \"type\": \"commonjs\"\n}"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/rainbow.js",
    "content": "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorAll = [\n        '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\n        '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\n    ];\n\n    var theme = {\n        color: colorAll,\n\n        colorLayer: [\n            ['#37A2DA', '#ffd85c', '#fd7b5f'],\n            ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\n            ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\n            colorAll\n        ]\n    };\n\n    echarts.registerTheme('rainbow', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/red-velvet.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#8b1a2d',\n        '#a7314b',\n        '#e6004c',\n        '#ff8066',\n        '#8e5c4e',\n        '#ff1a66',\n        '#d6c582',\n        '#f0d4af'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#8b1a2d'\n            }\n        },\n\n        visualMap: {\n            color: ['#8b1a2d', '#a7314b']\n        },\n\n        toolbox: {\n            color: ['#8b1a2d', '#8b1a2d', '#8b1a2d', '#8b1a2d']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#8b1a2d',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#8b1a2d'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#8b1a2d' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#8b1a2d'\n            },\n            controlStyle: {\n                color: '#8b1a2d',\n                borderColor: '#8b1a2d'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#a7314b',\n                color0: '#d6c582'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#8e5c4e',\n                color0: '#f0d4af'\n            },\n            areaStyle: {\n                color: '#8b1a2d',\n                color0: '#ff8066'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#8b1a2d'\n            },\n            areaStyle: {\n                color: '#ff8066'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#ff8066'\n            },\n            linkStyle: {\n                color: '#8b1a2d'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#a7314b'],\n                        [0.8, '#8b1a2d'],\n                        [1, '#8e5c4e']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('red-velvet', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/red.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#d8361b',\n        '#f16b4c',\n        '#f7b4a9',\n        '#d26666',\n        '#99311c',\n        '#c42703',\n        '#d07e75'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#d8361b'\n            }\n        },\n\n        visualMap: {\n            color: ['#d8361b', '#ffd2d2']\n        },\n\n        dataRange: {\n            color: ['#bd0707', '#ffd2d2']\n        },\n\n        toolbox: {\n            color: ['#d8361b', '#d8361b', '#d8361b', '#d8361b']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#d8361b',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#d8361b'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(216,54,27,0.2)', // Fill the color\n            handleColor: '#d8361b' // Handle color\n        },\n\n        grid: {\n            borderWidth: 0\n        },\n\n        categoryAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#d8361b'\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        valueAxis: {\n            axisLine: {\n                // Coordinate axis\n                lineStyle: {\n                    // Property 'lineStyle' controls line styles\n                    color: '#d8361b'\n                }\n            },\n            splitArea: {\n                show: true,\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']\n                }\n            },\n            splitLine: {\n                // Separation line\n                lineStyle: {\n                    // Property 'lineStyle' (see lineStyle) controls line styles\n                    color: ['#eee']\n                }\n            }\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#d8361b'\n            },\n            controlStyle: {\n                color: '#d8361b',\n                borderColor: '#d8361b'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#f16b4c',\n                color0: '#f7b4a9'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#d8361b',\n                color0: '#d26666'\n            },\n            areaStyle: {\n                color: '#d8361b',\n                color0: '#d07e75'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#d07e75'\n            },\n            linkStyle: {\n                color: '#d8361b'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#d07e75',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#d8361b'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#d8361b'\n            },\n            areaStyle: {\n                color: '#d07e75'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#f16b4c'],\n                        [0.8, '#d8361b'],\n                        [1, '#99311c']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('red', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/roma.js",
    "content": "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#E01F54',\n        '#001852',\n        '#f5e8c8',\n        '#b8d2c7',\n        '#c6b38e',\n        '#a4d8c2',\n        '#f3d999',\n        '#d3758f',\n        '#dcc392',\n        '#2e4783',\n        '#82b6e9',\n        '#ff6347',\n        '#a092f1',\n        '#0a915d',\n        '#eaf889',\n        '#6699FF',\n        '#ff6666',\n        '#3cb371',\n        '#d5b158',\n        '#38b6b6'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        visualMap: {\n            color: ['#e01f54', '#e7dbc3'],\n            textStyle: {\n                color: '#333'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#e01f54',\n                color0: '#001852'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#f5e8c8',\n                color0: '#b8d2c7'\n            },\n            areaStyle: {\n                color: '#a4d8c2',\n                color0: '#f3d999'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#a4d8c2'\n            },\n            linkStyle: {\n                color: '#f3d999'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#E01F54'],\n                        [0.8, '#b8d2c7'],\n                        [1, '#001852']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('roma', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/royal.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#3f7ea6',\n        '#993366',\n        '#408000',\n        '#8c6f56',\n        '#a65149',\n        '#731f17',\n        '#adc2eb',\n        '#d9c3b0'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#3f7ea6'\n            }\n        },\n\n        visualMap: {\n            color: ['#3f7ea6', '#993366']\n        },\n\n        toolbox: {\n            color: ['#3f7ea6', '#3f7ea6', '#3f7ea6', '#3f7ea6']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#3f7ea6',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#3f7ea6'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(200,200,200,0.2)', // Fill the color\n            handleColor: '#3f7ea6' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#3f7ea6'\n            },\n            controlStyle: {\n                color: '#3f7ea6',\n                borderColor: '#3f7ea6'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#d9c3b0',\n                color0: '#8c6f56'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#731f17',\n                color0: '#a65149'\n            },\n            areaStyle: {\n                color: '#3f7ea6',\n                color0: '#993366'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#d9c3b0'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#993366'\n            },\n            linkStyle: {\n                color: '#3f7ea6'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#d9c3b0'],\n                        [0.8, '#3f7ea6'],\n                        [1, '#731f17']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('royal', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/sakura.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#e52c3c',\n        '#f7b1ab',\n        '#fa506c',\n        '#f59288',\n        '#f8c4d8',\n        '#e54f5c',\n        '#f06d5c',\n        '#e54f80',\n        '#f29c9f',\n        '#eeb5b7'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#e52c3c'\n            }\n        },\n\n        visualMap: {\n            color: ['#e52c3c', '#f7b1ab']\n        },\n\n        dataRange: {\n            color: ['#e52c3c', '#f7b1ab']\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#e52c3c',\n                color0: '#f59288'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#e52c3c',\n                color0: '#f59288'\n            },\n            areaStyle: {\n                color: '#fa506c',\n                color0: '#f8c4d8'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#e52c3c',\n                borderColor: '#fff',\n                borderWidth: 1\n            },\n            areaStyle: {\n                color: '#ccc'\n            },\n            label: {\n                color: 'rgba(139,69,19,1)',\n                show: false\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#f2385a'\n            },\n            nodeStyle: {\n                brushType: 'both',\n                strokeColor: '#e54f5c'\n            },\n            linkStyle: {\n                color: '#f2385a',\n                strokeColor: '#e54f5c'\n            },\n            label: {\n                color: '#f2385a',\n                show: false\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#e52c3c'],\n                        [0.8, '#f7b1ab'],\n                        [1, '#fa506c']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('sakura', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/shine.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#c12e34',\n        '#e6b600',\n        '#0098d9',\n        '#2b821d',\n        '#005eaa',\n        '#339ca8',\n        '#cda819',\n        '#32a487'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal'\n            }\n        },\n\n        visualMap: {\n            color: ['#1790cf', '#a2d4e6']\n        },\n\n        toolbox: {\n            iconStyle: {\n                borderColor: '#06467c'\n            }\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.6)'\n        },\n\n        dataZoom: {\n            dataBackgroundColor: '#dedede',\n            fillerColor: 'rgba(154,217,247,0.2)',\n            handleColor: '#005eaa'\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#005eaa'\n            },\n            controlStyle: {\n                color: '#005eaa',\n                borderColor: '#005eaa'\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#c12e34',\n                color0: '#2b821d'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#c12e34',\n                color0: '#2b821d'\n            },\n            areaStyle: {\n                color: '#e6b600',\n                color0: '#005eaa'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#e6b600'\n            },\n            linkStyle: {\n                color: '#005eaa'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#f2385a',\n                borderColor: '#eee',\n                areaColor: '#ddd'\n            },\n            areaStyle: {\n                color: '#ddd'\n            },\n            label: {\n                color: '#c12e34'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                show: true,\n                lineStyle: {\n                    color: [\n                        [0.2, '#2b821d'],\n                        [0.8, '#005eaa'],\n                        [1, '#c12e34']\n                    ],\n                    width: 5\n                }\n            },\n            axisTick: {\n                splitNumber: 10,\n                length: 8,\n                lineStyle: {\n                    color: 'auto'\n                }\n            },\n            axisLabel: {\n                color: 'auto'\n            },\n            splitLine: {\n                length: 12,\n                lineStyle: {\n                    color: 'auto'\n                }\n            },\n            pointer: {\n                length: '90%',\n                width: 3,\n                color: 'auto'\n            },\n            title: {\n                color: '#333'\n            },\n            detail: {\n                color: 'auto'\n            }\n        }\n    };\n    echarts.registerTheme('shine', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tech-blue.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n\n    var colorPalette = [\n        '#4d4d4d',\n        '#3a5897',\n        '#007bb6',\n        '#7094db',\n        '#0080ff',\n        '#b3b3ff',\n        '#00bdec',\n        '#33ccff',\n        '#ccddff',\n        '#eeeeee'\n    ];\n\n    var theme = {\n        color: colorPalette,\n\n        title: {\n            textStyle: {\n                fontWeight: 'normal',\n                color: '#00aecd'\n            }\n        },\n\n        visualMap: {\n            color: ['#00aecd', '#a2d4e6']\n        },\n\n        toolbox: {\n            color: ['#00aecd', '#00aecd', '#00aecd', '#00aecd']\n        },\n\n        tooltip: {\n            backgroundColor: 'rgba(0,0,0,0.5)',\n            axisPointer: {\n                // Axis indicator, coordinate trigger effective\n                type: 'line', // The default is a straight line： 'line' | 'shadow'\n                lineStyle: {\n                    // Straight line indicator style settings\n                    color: '#00aecd',\n                    type: 'dashed'\n                },\n                crossStyle: {\n                    color: '#00aecd'\n                },\n                shadowStyle: {\n                    // Shadow indicator style settings\n                    color: 'rgba(200,200,200,0.3)'\n                }\n            }\n        },\n\n        // Area scaling controller\n        dataZoom: {\n            dataBackgroundColor: '#eee', // Data background color\n            fillerColor: 'rgba(144,197,237,0.2)', // Fill the color\n            handleColor: '#00aecd' // Handle color\n        },\n\n        timeline: {\n            lineStyle: {\n                color: '#00aecd'\n            },\n            controlStyle: {\n                color: '#00aecd',\n            },\n            emphasis: {\n                controlStyle: {\n                  color: '#00aecd'\n                }\n            }\n        },\n\n        candlestick: {\n            itemStyle: {\n                color: '#ddd',\n                color0: '#eee'\n            },\n            lineStyle: {\n                width: 1,\n                color: '#33ccff',\n                color0: '#1bb4cf'\n            },\n            areaStyle: {\n                color: '#7094db',\n                color0: '#33ccff'\n            }\n        },\n\n        chord: {\n            padding: 4,\n            itemStyle: {\n                color: '#7094db',\n                borderWidth: 1,\n                borderColor: 'rgba(128, 128, 128, 0.5)'\n            },\n            lineStyle: {\n                color: 'rgba(128, 128, 128, 0.5)'\n            },\n            areaStyle: {\n                color: '#33ccff'\n            }\n        },\n\n        graph: {\n            itemStyle: {\n                color: '#7094db'\n            },\n            linkStyle: {\n                color: '#33ccff'\n            }\n        },\n\n        map: {\n            itemStyle: {\n                color: '#7094db'\n            },\n            areaStyle: {\n                color: '#33ccff'\n            },\n            label: {\n                color: '#ddd'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [\n                        [0.2, '#dddddd'],\n                        [0.8, '#00aecd'],\n                        [1, '#33ccff']\n                    ],\n                    width: 8\n                }\n            }\n        }\n    };\n\n    echarts.registerTheme('tech-blue', theme);\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/area.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n    title: {\n        text: 'Area Chart',\n        left: 'center',\n        top: '3%',\n        textStyle: {\n            fontWeight: 'normal'\n        }\n    },\n    grid: {\n        left: '3%',\n        right: '4%',\n        bottom: '12%',\n        containLabel: true\n    },\n    xAxis: {\n        type: 'category',\n        boundaryGap: false,\n        data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday','Sunday']\n    },\n    yAxis: {\n        type: 'value',\n        splitNumber: 3\n    },\n    dataZoom: {\n\n    },\n    series: [\n        {\n            name:'Email',\n            type:'line',\n            stack: '总量',\n            areaStyle: {},\n            data:[120, 132, 101, 134, 90, 230, 210]\n        },\n        {\n            name:'联盟广告',\n            type:'line',\n            stack: '总量',\n            areaStyle: {},\n            data:[220, 182, 191, 234, 290, 330, 310]\n        },\n        {\n            name:'视频广告',\n            type:'line',\n            stack: '总量',\n            areaStyle: {},\n            data:[150, 232, 201, 154, 190, 330, 410]\n        },\n        {\n            name:'直接访问',\n            type:'line',\n            stack: '总量',\n            areaStyle: {},\n            data:[320, 332, 301, 334, 390, 330, 320]\n        },\n        {\n            name:'搜索引擎',\n            type:'line',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'top'\n            },\n            areaStyle: {},\n            data:[820, 932, 901, 934, 1290, 1330, 1320]\n        }\n    ]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/bar.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n    title: {\n        text: 'Bar Chart',\n        left: 'center',\n        top: '3%',\n        textStyle: {\n            fontWeight: 'normal'\n        }\n    },\n    toolbox: {\n        top: '3%',\n        feature: {\n            magicType: {\n                type: ['line', 'bar', 'stack', 'tiled']\n            },\n            restore: {},\n            dataZoom: {},\n            saveAsImage: {}\n        }\n    },\n    grid: {\n        left: '13%',\n        right: '5%',\n        bottom: '5%',\n        textStyle: {\n            fontWeight: 'normal'\n        }\n    },\n    xAxis: {\n        type: 'value'\n    },\n    yAxis: {\n        type: 'category',\n        data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday','Sunday']\n    },\n    series: [\n        {\n            name:'直接访问',\n            type:'bar',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'insideRight'\n            },\n            data:[320, 302, 301, 334, 390, 330, 320]\n        },\n        {\n            name:'邮件营销',\n            type:'bar',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'insideRight'\n            },\n            data:[120, 132, 101, 134, 90, 230, 210]\n        },\n        {\n            name:'联盟广告',\n            type:'bar',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'insideRight'\n            },\n            data:[220, 182, 191, 234, 290, 330, 310]\n        },\n        {\n            name:'视频广告',\n            type:'bar',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'insideRight'\n            },\n            data:[150, 212, 201, 154, 190, 330, 410]\n        },\n        {\n            name:'搜索引擎',\n            type:'bar',\n            stack: '总量',\n            label: {\n                show: true,\n                position: 'insideRight'\n            },\n            data:[820, 832, 901, 934, 1290, 1330, 1320]\n        }\n    ]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/graph.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n  \"series\":[\n    {\n      \"name\":\"Les Miserables\",\n      \"type\":\"graph\",\n      \"layout\":\"none\",\n      \"data\":[\n        {\n          \"id\":\"0\",\n          \"name\":\"Myriel\",\n          \"label\":{\n            \"formatter\":\"Myriel\",\n            \"show\":false\n          },\n          \"symbolSize\":28.685715,\n          \"x\":-266.82776,\n          \"y\":299.6904,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":28.685715,\n          \"category\":0\n        },\n        {\n          \"id\":\"1\",\n          \"name\":\"Napoleon\",\n          \"label\":{\n            \"formatter\":\"Napoleon\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-418.08344,\n          \"y\":446.8853,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"2\",\n          \"name\":\"MlleBaptistine\",\n          \"label\":{\n            \"formatter\":\"MlleBaptistine\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":-212.76357,\n          \"y\":245.29176,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":9.485714,\n          \"category\":1\n        },\n        {\n          \"id\":\"3\",\n          \"name\":\"MmeMagloire\",\n          \"label\":{\n            \"formatter\":\"MmeMagloire\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":-242.82404,\n          \"y\":235.26283,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":9.485714,\n          \"category\":1\n        },\n        {\n          \"id\":\"4\",\n          \"name\":\"CountessDeLo\",\n          \"label\":{\n            \"formatter\":\"CountessDeLo\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-379.30386,\n          \"y\":429.06424,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"5\",\n          \"name\":\"Geborand\",\n          \"label\":{\n            \"formatter\":\"Geborand\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-417.26337,\n          \"y\":406.03506,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"6\",\n          \"name\":\"Champtercier\",\n          \"label\":{\n            \"formatter\":\"Champtercier\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-332.6012,\n          \"y\":485.16974,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"7\",\n          \"name\":\"Cravatte\",\n          \"label\":{\n            \"formatter\":\"Cravatte\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-382.69568,\n          \"y\":475.09113,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"8\",\n          \"name\":\"Count\",\n          \"label\":{\n            \"formatter\":\"Count\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-320.384,\n          \"y\":387.17325,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"9\",\n          \"name\":\"OldMan\",\n          \"label\":{\n            \"formatter\":\"OldMan\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-344.39832,\n          \"y\":451.16772,\n          \"attributes\":{\n            \"modularity_class\":0\n          },\n          \"value\":4,\n          \"category\":0\n        },\n        {\n          \"id\":\"10\",\n          \"name\":\"Labarre\",\n          \"label\":{\n            \"formatter\":\"Labarre\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-89.34107,\n          \"y\":234.56128,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":4,\n          \"category\":1\n        },\n        {\n          \"id\":\"11\",\n          \"name\":\"Valjean\",\n          \"label\":{\n            \"formatter\":\"Valjean\",\n            \"show\":  false\n          },\n          \"symbolSize\":100,\n          \"x\":-87.93029,\n          \"y\":-6.8120565,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":100,\n          \"category\":1\n        },\n        {\n          \"id\":\"12\",\n          \"name\":\"Marguerite\",\n          \"label\":{\n            \"formatter\":\"Marguerite\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":-339.77908,\n          \"y\":-184.69139,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":6.742859,\n          \"category\":1\n        },\n        {\n          \"id\":\"13\",\n          \"name\":\"MmeDeR\",\n          \"label\":{\n            \"formatter\":\"MmeDeR\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-194.31313,\n          \"y\":178.55301,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":4,\n          \"category\":1\n        },\n        {\n          \"id\":\"14\",\n          \"name\":\"Isabeau\",\n          \"label\":{\n            \"formatter\":\"Isabeau\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-158.05168,\n          \"y\":201.99768,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":4,\n          \"category\":1\n        },\n        {\n          \"id\":\"15\",\n          \"name\":\"Gervais\",\n          \"label\":{\n            \"formatter\":\"Gervais\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-127.701546,\n          \"y\":242.55057,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":4,\n          \"category\":1\n        },\n        {\n          \"id\":\"16\",\n          \"name\":\"Tholomyes\",\n          \"label\":{\n            \"formatter\":\"Tholomyes\",\n            \"show\":false\n          },\n          \"symbolSize\":25.942856,\n          \"x\":-385.2226,\n          \"y\":-393.5572,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":25.942856,\n          \"category\":2\n        },\n        {\n          \"id\":\"17\",\n          \"name\":\"Listolier\",\n          \"label\":{\n            \"formatter\":\"Listolier\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-516.55884,\n          \"y\":-393.98975,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"18\",\n          \"name\":\"Fameuil\",\n          \"label\":{\n            \"formatter\":\"Fameuil\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-464.79382,\n          \"y\":-493.57944,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"19\",\n          \"name\":\"Blacheville\",\n          \"label\":{\n            \"formatter\":\"Blacheville\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-515.1624,\n          \"y\":-456.9891,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"20\",\n          \"name\":\"Favourite\",\n          \"label\":{\n            \"formatter\":\"Favourite\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-408.12122,\n          \"y\":-464.5048,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"21\",\n          \"name\":\"Dahlia\",\n          \"label\":{\n            \"formatter\":\"Dahlia\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-456.44113,\n          \"y\":-425.13303,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"22\",\n          \"name\":\"Zephine\",\n          \"label\":{\n            \"formatter\":\"Zephine\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":-459.1107,\n          \"y\":-362.5133,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":20.457146,\n          \"category\":2\n        },\n        {\n          \"id\":\"23\",\n          \"name\":\"Fantine\",\n          \"label\":{\n            \"formatter\":\"Fantine\",\n            \"show\":  false\n          },\n          \"symbolSize\":42.4,\n          \"x\":-313.42786,\n          \"y\":-289.44803,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":42.4,\n          \"category\":2\n        },\n        {\n          \"id\":\"24\",\n          \"name\":\"MmeThenardier\",\n          \"label\":{\n            \"formatter\":\"MmeThenardier\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":4.6313396,\n          \"y\":-273.8517,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":31.428574,\n          \"category\":7\n        },\n        {\n          \"id\":\"25\",\n          \"name\":\"Thenardier\",\n          \"label\":{\n            \"formatter\":\"Thenardier\",\n            \"show\":  false\n          },\n          \"symbolSize\":45.142853,\n          \"x\":82.80825,\n          \"y\":-203.1144,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":45.142853,\n          \"category\":7\n        },\n        {\n          \"id\":\"26\",\n          \"name\":\"Cosette\",\n          \"label\":{\n            \"formatter\":\"Cosette\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":78.64646,\n          \"y\":-31.512747,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":31.428574,\n          \"category\":6\n        },\n        {\n          \"id\":\"27\",\n          \"name\":\"Javert\",\n          \"label\":{\n            \"formatter\":\"Javert\",\n            \"show\":  false\n          },\n          \"symbolSize\":47.88571,\n          \"x\":-81.46074,\n          \"y\":-204.20204,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":47.88571,\n          \"category\":7\n        },\n        {\n          \"id\":\"28\",\n          \"name\":\"Fauchelevent\",\n          \"label\":{\n            \"formatter\":\"Fauchelevent\",\n            \"show\":false\n          },\n          \"symbolSize\":12.228573,\n          \"x\":-225.73984,\n          \"y\":82.41631,\n          \"attributes\":{\n            \"modularity_class\":4\n          },\n          \"value\":12.228573,\n          \"category\":4\n        },\n        {\n          \"id\":\"29\",\n          \"name\":\"Bamatabois\",\n          \"label\":{\n            \"formatter\":\"Bamatabois\",\n            \"show\":false\n          },\n          \"symbolSize\":23.2,\n          \"x\":-385.6842,\n          \"y\":-20.206686,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":23.2,\n          \"category\":3\n        },\n        {\n          \"id\":\"30\",\n          \"name\":\"Perpetue\",\n          \"label\":{\n            \"formatter\":\"Perpetue\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":-403.92447,\n          \"y\":-197.69823,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":6.742859,\n          \"category\":2\n        },\n        {\n          \"id\":\"31\",\n          \"name\":\"Simplice\",\n          \"label\":{\n            \"formatter\":\"Simplice\",\n            \"show\":false\n          },\n          \"symbolSize\":12.228573,\n          \"x\":-281.4253,\n          \"y\":-158.45137,\n          \"attributes\":{\n            \"modularity_class\":2\n          },\n          \"value\":12.228573,\n          \"category\":2\n        },\n        {\n          \"id\":\"32\",\n          \"name\":\"Scaufflaire\",\n          \"label\":{\n            \"formatter\":\"Scaufflaire\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-122.41348,\n          \"y\":210.37503,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":4,\n          \"category\":1\n        },\n        {\n          \"id\":\"33\",\n          \"name\":\"Woman1\",\n          \"label\":{\n            \"formatter\":\"Woman1\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":-234.6001,\n          \"y\":-113.15067,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":6.742859,\n          \"category\":1\n        },\n        {\n          \"id\":\"34\",\n          \"name\":\"Judge\",\n          \"label\":{\n            \"formatter\":\"Judge\",\n            \"show\":false\n          },\n          \"symbolSize\":17.714287,\n          \"x\":-387.84915,\n          \"y\":58.7059,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":17.714287,\n          \"category\":3\n        },\n        {\n          \"id\":\"35\",\n          \"name\":\"Champmathieu\",\n          \"label\":{\n            \"formatter\":\"Champmathieu\",\n            \"show\":false\n          },\n          \"symbolSize\":17.714287,\n          \"x\":-338.2307,\n          \"y\":87.48405,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":17.714287,\n          \"category\":3\n        },\n        {\n          \"id\":\"36\",\n          \"name\":\"Brevet\",\n          \"label\":{\n            \"formatter\":\"Brevet\",\n            \"show\":false\n          },\n          \"symbolSize\":17.714287,\n          \"x\":-453.26874,\n          \"y\":58.94648,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":17.714287,\n          \"category\":3\n        },\n        {\n          \"id\":\"37\",\n          \"name\":\"Chenildieu\",\n          \"label\":{\n            \"formatter\":\"Chenildieu\",\n            \"show\":false\n          },\n          \"symbolSize\":17.714287,\n          \"x\":-386.44904,\n          \"y\":140.05937,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":17.714287,\n          \"category\":3\n        },\n        {\n          \"id\":\"38\",\n          \"name\":\"Cochepaille\",\n          \"label\":{\n            \"formatter\":\"Cochepaille\",\n            \"show\":false\n          },\n          \"symbolSize\":17.714287,\n          \"x\":-446.7876,\n          \"y\":123.38005,\n          \"attributes\":{\n            \"modularity_class\":3\n          },\n          \"value\":17.714287,\n          \"category\":3\n        },\n        {\n          \"id\":\"39\",\n          \"name\":\"Pontmercy\",\n          \"label\":{\n            \"formatter\":\"Pontmercy\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":336.49738,\n          \"y\":-269.55914,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":9.485714,\n          \"category\":6\n        },\n        {\n          \"id\":\"40\",\n          \"name\":\"Boulatruelle\",\n          \"label\":{\n            \"formatter\":\"Boulatruelle\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":29.187843,\n          \"y\":-460.13132,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":4,\n          \"category\":7\n        },\n        {\n          \"id\":\"41\",\n          \"name\":\"Eponine\",\n          \"label\":{\n            \"formatter\":\"Eponine\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":238.36697,\n          \"y\":-210.00926,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":31.428574,\n          \"category\":7\n        },\n        {\n          \"id\":\"42\",\n          \"name\":\"Anzelma\",\n          \"label\":{\n            \"formatter\":\"Anzelma\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":189.69513,\n          \"y\":-346.50662,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":9.485714,\n          \"category\":7\n        },\n        {\n          \"id\":\"43\",\n          \"name\":\"Woman2\",\n          \"label\":{\n            \"formatter\":\"Woman2\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":-187.00418,\n          \"y\":-145.02663,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":9.485714,\n          \"category\":6\n        },\n        {\n          \"id\":\"44\",\n          \"name\":\"MotherInnocent\",\n          \"label\":{\n            \"formatter\":\"MotherInnocent\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":-252.99521,\n          \"y\":129.87549,\n          \"attributes\":{\n            \"modularity_class\":4\n          },\n          \"value\":6.742859,\n          \"category\":4\n        },\n        {\n          \"id\":\"45\",\n          \"name\":\"Gribier\",\n          \"label\":{\n            \"formatter\":\"Gribier\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":-296.07935,\n          \"y\":163.11964,\n          \"attributes\":{\n            \"modularity_class\":4\n          },\n          \"value\":4,\n          \"category\":4\n        },\n        {\n          \"id\":\"46\",\n          \"name\":\"Jondrette\",\n          \"label\":{\n            \"formatter\":\"Jondrette\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":550.3201,\n          \"y\":522.4031,\n          \"attributes\":{\n            \"modularity_class\":5\n          },\n          \"value\":4,\n          \"category\":5\n        },\n        {\n          \"id\":\"47\",\n          \"name\":\"MmeBurgon\",\n          \"label\":{\n            \"formatter\":\"MmeBurgon\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":488.13535,\n          \"y\":356.8573,\n          \"attributes\":{\n            \"modularity_class\":5\n          },\n          \"value\":6.742859,\n          \"category\":5\n        },\n        {\n          \"id\":\"48\",\n          \"name\":\"Gavroche\",\n          \"label\":{\n            \"formatter\":\"Gavroche\",\n            \"show\":  false\n          },\n          \"symbolSize\":61.600006,\n          \"x\":387.89572,\n          \"y\":110.462326,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":61.600006,\n          \"category\":8\n        },\n        {\n          \"id\":\"49\",\n          \"name\":\"Gillenormand\",\n          \"label\":{\n            \"formatter\":\"Gillenormand\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":126.4831,\n          \"y\":68.10622,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":20.457146,\n          \"category\":6\n        },\n        {\n          \"id\":\"50\",\n          \"name\":\"Magnon\",\n          \"label\":{\n            \"formatter\":\"Magnon\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":127.07365,\n          \"y\":-113.05923,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":6.742859,\n          \"category\":6\n        },\n        {\n          \"id\":\"51\",\n          \"name\":\"MlleGillenormand\",\n          \"label\":{\n            \"formatter\":\"MlleGillenormand\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":162.63559,\n          \"y\":117.6565,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":20.457146,\n          \"category\":6\n        },\n        {\n          \"id\":\"52\",\n          \"name\":\"MmePontmercy\",\n          \"label\":{\n            \"formatter\":\"MmePontmercy\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":353.66415,\n          \"y\":-205.89165,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":6.742859,\n          \"category\":6\n        },\n        {\n          \"id\":\"53\",\n          \"name\":\"MlleVaubois\",\n          \"label\":{\n            \"formatter\":\"MlleVaubois\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":165.43939,\n          \"y\":339.7736,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":4,\n          \"category\":6\n        },\n        {\n          \"id\":\"54\",\n          \"name\":\"LtGillenormand\",\n          \"label\":{\n            \"formatter\":\"LtGillenormand\",\n            \"show\":false\n          },\n          \"symbolSize\":12.228573,\n          \"x\":137.69348,\n          \"y\":196.1069,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":12.228573,\n          \"category\":6\n        },\n        {\n          \"id\":\"55\",\n          \"name\":\"Marius\",\n          \"label\":{\n            \"formatter\":\"Marius\",\n            \"show\":  false\n          },\n          \"symbolSize\":53.37143,\n          \"x\":206.44687,\n          \"y\":-13.805411,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":53.37143,\n          \"category\":6\n        },\n        {\n          \"id\":\"56\",\n          \"name\":\"BaronessT\",\n          \"label\":{\n            \"formatter\":\"BaronessT\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":194.82993,\n          \"y\":224.78036,\n          \"attributes\":{\n            \"modularity_class\":6\n          },\n          \"value\":6.742859,\n          \"category\":6\n        },\n        {\n          \"id\":\"57\",\n          \"name\":\"Mabeuf\",\n          \"label\":{\n            \"formatter\":\"Mabeuf\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":597.6618,\n          \"y\":135.18481,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":31.428574,\n          \"category\":8\n        },\n        {\n          \"id\":\"58\",\n          \"name\":\"Enjolras\",\n          \"label\":{\n            \"formatter\":\"Enjolras\",\n            \"show\":  false\n          },\n          \"symbolSize\":42.4,\n          \"x\":355.78366,\n          \"y\":-74.882454,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":42.4,\n          \"category\":8\n        },\n        {\n          \"id\":\"59\",\n          \"name\":\"Combeferre\",\n          \"label\":{\n            \"formatter\":\"Combeferre\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":515.2961,\n          \"y\":-46.167564,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":31.428574,\n          \"category\":8\n        },\n        {\n          \"id\":\"60\",\n          \"name\":\"Prouvaire\",\n          \"label\":{\n            \"formatter\":\"Prouvaire\",\n            \"show\":false\n          },\n          \"symbolSize\":25.942856,\n          \"x\":614.29285,\n          \"y\":-69.3104,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":25.942856,\n          \"category\":8\n        },\n        {\n          \"id\":\"61\",\n          \"name\":\"Feuilly\",\n          \"label\":{\n            \"formatter\":\"Feuilly\",\n            \"show\":  false\n          },\n          \"symbolSize\":31.428574,\n          \"x\":550.1917,\n          \"y\":-128.17537,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":31.428574,\n          \"category\":8\n        },\n        {\n          \"id\":\"62\",\n          \"name\":\"Courfeyrac\",\n          \"label\":{\n            \"formatter\":\"Courfeyrac\",\n            \"show\":  false\n          },\n          \"symbolSize\":36.91429,\n          \"x\":436.17184,\n          \"y\":-12.7286825,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":36.91429,\n          \"category\":8\n        },\n        {\n          \"id\":\"63\",\n          \"name\":\"Bahorel\",\n          \"label\":{\n            \"formatter\":\"Bahorel\",\n            \"show\":  false\n          },\n          \"symbolSize\":34.17143,\n          \"x\":602.55225,\n          \"y\":16.421427,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":34.17143,\n          \"category\":8\n        },\n        {\n          \"id\":\"64\",\n          \"name\":\"Bossuet\",\n          \"label\":{\n            \"formatter\":\"Bossuet\",\n            \"show\":  false\n          },\n          \"symbolSize\":36.91429,\n          \"x\":455.81955,\n          \"y\":-115.45826,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":36.91429,\n          \"category\":8\n        },\n        {\n          \"id\":\"65\",\n          \"name\":\"Joly\",\n          \"label\":{\n            \"formatter\":\"Joly\",\n            \"show\":  false\n          },\n          \"symbolSize\":34.17143,\n          \"x\":516.40784,\n          \"y\":47.242233,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":34.17143,\n          \"category\":8\n        },\n        {\n          \"id\":\"66\",\n          \"name\":\"Grantaire\",\n          \"label\":{\n            \"formatter\":\"Grantaire\",\n            \"show\":false\n          },\n          \"symbolSize\":28.685715,\n          \"x\":646.4313,\n          \"y\":-151.06331,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":28.685715,\n          \"category\":8\n        },\n        {\n          \"id\":\"67\",\n          \"name\":\"MotherPlutarch\",\n          \"label\":{\n            \"formatter\":\"MotherPlutarch\",\n            \"show\":false\n          },\n          \"symbolSize\":4,\n          \"x\":668.9568,\n          \"y\":204.65488,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":4,\n          \"category\":8\n        },\n        {\n          \"id\":\"68\",\n          \"name\":\"Gueulemer\",\n          \"label\":{\n            \"formatter\":\"Gueulemer\",\n            \"show\":false\n          },\n          \"symbolSize\":28.685715,\n          \"x\":78.4799,\n          \"y\":-347.15146,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":28.685715,\n          \"category\":7\n        },\n        {\n          \"id\":\"69\",\n          \"name\":\"Babet\",\n          \"label\":{\n            \"formatter\":\"Babet\",\n            \"show\":false\n          },\n          \"symbolSize\":28.685715,\n          \"x\":150.35959,\n          \"y\":-298.50797,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":28.685715,\n          \"category\":7\n        },\n        {\n          \"id\":\"70\",\n          \"name\":\"Claquesous\",\n          \"label\":{\n            \"formatter\":\"Claquesous\",\n            \"show\":false\n          },\n          \"symbolSize\":28.685715,\n          \"x\":137.3717,\n          \"y\":-410.2809,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":28.685715,\n          \"category\":7\n        },\n        {\n          \"id\":\"71\",\n          \"name\":\"Montparnasse\",\n          \"label\":{\n            \"formatter\":\"Montparnasse\",\n            \"show\":false\n          },\n          \"symbolSize\":25.942856,\n          \"x\":234.87747,\n          \"y\":-400.85983,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":25.942856,\n          \"category\":7\n        },\n        {\n          \"id\":\"72\",\n          \"name\":\"Toussaint\",\n          \"label\":{\n            \"formatter\":\"Toussaint\",\n            \"show\":false\n          },\n          \"symbolSize\":9.485714,\n          \"x\":40.942253,\n          \"y\":113.78272,\n          \"attributes\":{\n            \"modularity_class\":1\n          },\n          \"value\":9.485714,\n          \"category\":1\n        },\n        {\n          \"id\":\"73\",\n          \"name\":\"Child1\",\n          \"label\":{\n            \"formatter\":\"Child1\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":437.939,\n          \"y\":291.58234,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":6.742859,\n          \"category\":8\n        },\n        {\n          \"id\":\"74\",\n          \"name\":\"Child2\",\n          \"label\":{\n            \"formatter\":\"Child2\",\n            \"show\":false\n          },\n          \"symbolSize\":6.742859,\n          \"x\":466.04922,\n          \"y\":283.3606,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":6.742859,\n          \"category\":8\n        },\n        {\n          \"id\":\"75\",\n          \"name\":\"Brujon\",\n          \"label\":{\n            \"formatter\":\"Brujon\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":238.79364,\n          \"y\":-314.06345,\n          \"attributes\":{\n            \"modularity_class\":7\n          },\n          \"value\":20.457146,\n          \"category\":7\n        },\n        {\n          \"id\":\"76\",\n          \"name\":\"MmeHucheloup\",\n          \"label\":{\n            \"formatter\":\"MmeHucheloup\",\n            \"show\":false\n          },\n          \"symbolSize\":20.457146,\n          \"x\":712.18353,\n          \"y\":4.8131495,\n          \"attributes\":{\n            \"modularity_class\":8\n          },\n          \"value\":20.457146,\n          \"category\":8\n        }\n      ],\n      \"links\":[\n        {\n          \"id\":\"0\",\n          \"name\":null,\n          \"source\":\"1\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"1\",\n          \"name\":null,\n          \"source\":\"2\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"2\",\n          \"name\":null,\n          \"source\":\"3\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"3\",\n          \"name\":null,\n          \"source\":\"3\",\n          \"target\":\"2\"\n        },\n        {\n          \"id\":\"4\",\n          \"name\":null,\n          \"source\":\"4\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"5\",\n          \"name\":null,\n          \"source\":\"5\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"6\",\n          \"name\":null,\n          \"source\":\"6\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"7\",\n          \"name\":null,\n          \"source\":\"7\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"8\",\n          \"name\":null,\n          \"source\":\"8\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"9\",\n          \"name\":null,\n          \"source\":\"9\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":\"13\",\n          \"name\":null,\n          \"source\":\"11\",\n          \"target\":\"0\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"11\",\n          \"target\":\"2\"\n        },\n        {\n          \"id\":\"11\",\n          \"name\":null,\n          \"source\":\"11\",\n          \"target\":\"3\"\n        },\n        {\n          \"id\":\"10\",\n          \"name\":null,\n          \"source\":\"11\",\n          \"target\":\"10\"\n        },\n        {\n          \"id\":\"14\",\n          \"name\":null,\n          \"source\":\"12\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"15\",\n          \"name\":null,\n          \"source\":\"13\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"16\",\n          \"name\":null,\n          \"source\":\"14\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"17\",\n          \"name\":null,\n          \"source\":\"15\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"18\",\n          \"name\":null,\n          \"source\":\"17\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"19\",\n          \"name\":null,\n          \"source\":\"18\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"20\",\n          \"name\":null,\n          \"source\":\"18\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"21\",\n          \"name\":null,\n          \"source\":\"19\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"22\",\n          \"name\":null,\n          \"source\":\"19\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"23\",\n          \"name\":null,\n          \"source\":\"19\",\n          \"target\":\"18\"\n        },\n        {\n          \"id\":\"24\",\n          \"name\":null,\n          \"source\":\"20\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"25\",\n          \"name\":null,\n          \"source\":\"20\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"26\",\n          \"name\":null,\n          \"source\":\"20\",\n          \"target\":\"18\"\n        },\n        {\n          \"id\":\"27\",\n          \"name\":null,\n          \"source\":\"20\",\n          \"target\":\"19\"\n        },\n        {\n          \"id\":\"28\",\n          \"name\":null,\n          \"source\":\"21\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"29\",\n          \"name\":null,\n          \"source\":\"21\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"30\",\n          \"name\":null,\n          \"source\":\"21\",\n          \"target\":\"18\"\n        },\n        {\n          \"id\":\"31\",\n          \"name\":null,\n          \"source\":\"21\",\n          \"target\":\"19\"\n        },\n        {\n          \"id\":\"32\",\n          \"name\":null,\n          \"source\":\"21\",\n          \"target\":\"20\"\n        },\n        {\n          \"id\":\"33\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"34\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"35\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"18\"\n        },\n        {\n          \"id\":\"36\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"19\"\n        },\n        {\n          \"id\":\"37\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"20\"\n        },\n        {\n          \"id\":\"38\",\n          \"name\":null,\n          \"source\":\"22\",\n          \"target\":\"21\"\n        },\n        {\n          \"id\":\"47\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"46\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"12\"\n        },\n        {\n          \"id\":\"39\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"40\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"17\"\n        },\n        {\n          \"id\":\"41\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"18\"\n        },\n        {\n          \"id\":\"42\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"19\"\n        },\n        {\n          \"id\":\"43\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"20\"\n        },\n        {\n          \"id\":\"44\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"21\"\n        },\n        {\n          \"id\":\"45\",\n          \"name\":null,\n          \"source\":\"23\",\n          \"target\":\"22\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"24\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"48\",\n          \"name\":null,\n          \"source\":\"24\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":\"52\",\n          \"name\":null,\n          \"source\":\"25\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"51\",\n          \"name\":null,\n          \"source\":\"25\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":\"50\",\n          \"name\":null,\n          \"source\":\"25\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"26\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"26\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"53\",\n          \"name\":null,\n          \"source\":\"26\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"56\",\n          \"name\":null,\n          \"source\":\"26\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"57\",\n          \"name\":null,\n          \"source\":\"27\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"58\",\n          \"name\":null,\n          \"source\":\"27\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"27\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"59\",\n          \"name\":null,\n          \"source\":\"27\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"61\",\n          \"name\":null,\n          \"source\":\"27\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"62\",\n          \"name\":null,\n          \"source\":\"28\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"63\",\n          \"name\":null,\n          \"source\":\"28\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"66\",\n          \"name\":null,\n          \"source\":\"29\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"64\",\n          \"name\":null,\n          \"source\":\"29\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":\"65\",\n          \"name\":null,\n          \"source\":\"29\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"67\",\n          \"name\":null,\n          \"source\":\"30\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"31\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"31\",\n          \"target\":\"23\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"31\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"68\",\n          \"name\":null,\n          \"source\":\"31\",\n          \"target\":\"30\"\n        },\n        {\n          \"id\":\"72\",\n          \"name\":null,\n          \"source\":\"32\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"73\",\n          \"name\":null,\n          \"source\":\"33\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"74\",\n          \"name\":null,\n          \"source\":\"33\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"75\",\n          \"name\":null,\n          \"source\":\"34\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"76\",\n          \"name\":null,\n          \"source\":\"34\",\n          \"target\":\"29\"\n        },\n        {\n          \"id\":\"77\",\n          \"name\":null,\n          \"source\":\"35\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"35\",\n          \"target\":\"29\"\n        },\n        {\n          \"id\":\"78\",\n          \"name\":null,\n          \"source\":\"35\",\n          \"target\":\"34\"\n        },\n        {\n          \"id\":\"82\",\n          \"name\":null,\n          \"source\":\"36\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"83\",\n          \"name\":null,\n          \"source\":\"36\",\n          \"target\":\"29\"\n        },\n        {\n          \"id\":\"80\",\n          \"name\":null,\n          \"source\":\"36\",\n          \"target\":\"34\"\n        },\n        {\n          \"id\":\"81\",\n          \"name\":null,\n          \"source\":\"36\",\n          \"target\":\"35\"\n        },\n        {\n          \"id\":\"87\",\n          \"name\":null,\n          \"source\":\"37\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"88\",\n          \"name\":null,\n          \"source\":\"37\",\n          \"target\":\"29\"\n        },\n        {\n          \"id\":\"84\",\n          \"name\":null,\n          \"source\":\"37\",\n          \"target\":\"34\"\n        },\n        {\n          \"id\":\"85\",\n          \"name\":null,\n          \"source\":\"37\",\n          \"target\":\"35\"\n        },\n        {\n          \"id\":\"86\",\n          \"name\":null,\n          \"source\":\"37\",\n          \"target\":\"36\"\n        },\n        {\n          \"id\":\"93\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"94\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"29\"\n        },\n        {\n          \"id\":\"89\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"34\"\n        },\n        {\n          \"id\":\"90\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"35\"\n        },\n        {\n          \"id\":\"91\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"36\"\n        },\n        {\n          \"id\":\"92\",\n          \"name\":null,\n          \"source\":\"38\",\n          \"target\":\"37\"\n        },\n        {\n          \"id\":\"95\",\n          \"name\":null,\n          \"source\":\"39\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"96\",\n          \"name\":null,\n          \"source\":\"40\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"97\",\n          \"name\":null,\n          \"source\":\"41\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"98\",\n          \"name\":null,\n          \"source\":\"41\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"101\",\n          \"name\":null,\n          \"source\":\"42\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"100\",\n          \"name\":null,\n          \"source\":\"42\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"99\",\n          \"name\":null,\n          \"source\":\"42\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"102\",\n          \"name\":null,\n          \"source\":\"43\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"103\",\n          \"name\":null,\n          \"source\":\"43\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"104\",\n          \"name\":null,\n          \"source\":\"43\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"44\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"105\",\n          \"name\":null,\n          \"source\":\"44\",\n          \"target\":\"28\"\n        },\n        {\n          \"id\":\"107\",\n          \"name\":null,\n          \"source\":\"45\",\n          \"target\":\"28\"\n        },\n        {\n          \"id\":\"108\",\n          \"name\":null,\n          \"source\":\"47\",\n          \"target\":\"46\"\n        },\n        {\n          \"id\":\"112\",\n          \"name\":null,\n          \"source\":\"48\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"110\",\n          \"name\":null,\n          \"source\":\"48\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"111\",\n          \"name\":null,\n          \"source\":\"48\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"109\",\n          \"name\":null,\n          \"source\":\"48\",\n          \"target\":\"47\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"49\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"113\",\n          \"name\":null,\n          \"source\":\"49\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"50\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"115\",\n          \"name\":null,\n          \"source\":\"50\",\n          \"target\":\"49\"\n        },\n        {\n          \"id\":\"119\",\n          \"name\":null,\n          \"source\":\"51\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"118\",\n          \"name\":null,\n          \"source\":\"51\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"117\",\n          \"name\":null,\n          \"source\":\"51\",\n          \"target\":\"49\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"52\",\n          \"target\":\"39\"\n        },\n        {\n          \"id\":\"120\",\n          \"name\":null,\n          \"source\":\"52\",\n          \"target\":\"51\"\n        },\n        {\n          \"id\":\"122\",\n          \"name\":null,\n          \"source\":\"53\",\n          \"target\":\"51\"\n        },\n        {\n          \"id\":\"125\",\n          \"name\":null,\n          \"source\":\"54\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"124\",\n          \"name\":null,\n          \"source\":\"54\",\n          \"target\":\"49\"\n        },\n        {\n          \"id\":\"123\",\n          \"name\":null,\n          \"source\":\"54\",\n          \"target\":\"51\"\n        },\n        {\n          \"id\":\"131\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"132\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"16\"\n        },\n        {\n          \"id\":\"133\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"128\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"39\"\n        },\n        {\n          \"id\":\"134\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"135\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"127\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"49\"\n        },\n        {\n          \"id\":\"126\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"51\"\n        },\n        {\n          \"id\":\"129\",\n          \"name\":null,\n          \"source\":\"55\",\n          \"target\":\"54\"\n        },\n        {\n          \"id\":\"136\",\n          \"name\":null,\n          \"source\":\"56\",\n          \"target\":\"49\"\n        },\n        {\n          \"id\":\"137\",\n          \"name\":null,\n          \"source\":\"56\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"57\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"57\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"138\",\n          \"name\":null,\n          \"source\":\"57\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":\"145\",\n          \"name\":null,\n          \"source\":\"58\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"58\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"142\",\n          \"name\":null,\n          \"source\":\"58\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"141\",\n          \"name\":null,\n          \"source\":\"58\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":\"144\",\n          \"name\":null,\n          \"source\":\"58\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":\"148\",\n          \"name\":null,\n          \"source\":\"59\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"147\",\n          \"name\":null,\n          \"source\":\"59\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"59\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":\"146\",\n          \"name\":null,\n          \"source\":\"59\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"150\",\n          \"name\":null,\n          \"source\":\"60\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"151\",\n          \"name\":null,\n          \"source\":\"60\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"152\",\n          \"name\":null,\n          \"source\":\"60\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":\"153\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"158\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":\"157\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":\"154\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"156\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":\"155\",\n          \"name\":null,\n          \"source\":\"61\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"164\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"162\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"159\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":\"160\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"161\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"165\",\n          \"name\":null,\n          \"source\":\"62\",\n          \"target\":\"61\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"174\",\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"167\",\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"172\",\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"61\"\n        },\n        {\n          \"id\":\"169\",\n          \"name\":null,\n          \"source\":\"63\",\n          \"target\":\"62\"\n        },\n        {\n          \"id\":\"184\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"175\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":\"183\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":\"179\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"182\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":\"181\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"180\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"61\"\n        },\n        {\n          \"id\":\"176\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"62\"\n        },\n        {\n          \"id\":\"178\",\n          \"name\":null,\n          \"source\":\"64\",\n          \"target\":\"63\"\n        },\n        {\n          \"id\":\"187\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"194\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"55\"\n        },\n        {\n          \"id\":\"193\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"192\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"190\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"61\"\n        },\n        {\n          \"id\":\"188\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"62\"\n        },\n        {\n          \"id\":\"185\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"63\"\n        },\n        {\n          \"id\":\"186\",\n          \"name\":null,\n          \"source\":\"65\",\n          \"target\":\"64\"\n        },\n        {\n          \"id\":\"200\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"196\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"197\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"59\"\n        },\n        {\n          \"id\":\"203\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"60\"\n        },\n        {\n          \"id\":\"202\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"61\"\n        },\n        {\n          \"id\":\"198\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"62\"\n        },\n        {\n          \"id\":\"201\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"63\"\n        },\n        {\n          \"id\":\"195\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"64\"\n        },\n        {\n          \"id\":\"199\",\n          \"name\":null,\n          \"source\":\"66\",\n          \"target\":\"65\"\n        },\n        {\n          \"id\":\"204\",\n          \"name\":null,\n          \"source\":\"67\",\n          \"target\":\"57\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"205\",\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"208\",\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"209\",\n          \"name\":null,\n          \"source\":\"68\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"213\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"214\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"211\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"217\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"216\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"212\",\n          \"name\":null,\n          \"source\":\"69\",\n          \"target\":\"68\"\n        },\n        {\n          \"id\":\"221\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"222\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"24\"\n        },\n        {\n          \"id\":\"218\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"223\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"224\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":\"225\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"220\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"68\"\n        },\n        {\n          \"id\":\"219\",\n          \"name\":null,\n          \"source\":\"70\",\n          \"target\":\"69\"\n        },\n        {\n          \"id\":\"230\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"233\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"226\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"232\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"228\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"68\"\n        },\n        {\n          \"id\":\"227\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"69\"\n        },\n        {\n          \"id\":\"229\",\n          \"name\":null,\n          \"source\":\"71\",\n          \"target\":\"70\"\n        },\n        {\n          \"id\":\"236\",\n          \"name\":null,\n          \"source\":\"72\",\n          \"target\":\"11\"\n        },\n        {\n          \"id\":\"234\",\n          \"name\":null,\n          \"source\":\"72\",\n          \"target\":\"26\"\n        },\n        {\n          \"id\":\"235\",\n          \"name\":null,\n          \"source\":\"72\",\n          \"target\":\"27\"\n        },\n        {\n          \"id\":\"237\",\n          \"name\":null,\n          \"source\":\"73\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"238\",\n          \"name\":null,\n          \"source\":\"74\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"239\",\n          \"name\":null,\n          \"source\":\"74\",\n          \"target\":\"73\"\n        },\n        {\n          \"id\":\"242\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"25\"\n        },\n        {\n          \"id\":\"244\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"41\"\n        },\n        {\n          \"id\":null,\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"241\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"68\"\n        },\n        {\n          \"id\":\"240\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"69\"\n        },\n        {\n          \"id\":\"245\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"70\"\n        },\n        {\n          \"id\":\"246\",\n          \"name\":null,\n          \"source\":\"75\",\n          \"target\":\"71\"\n        },\n        {\n          \"id\":\"252\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"48\"\n        },\n        {\n          \"id\":\"253\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"58\"\n        },\n        {\n          \"id\":\"251\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"62\"\n        },\n        {\n          \"id\":\"250\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"63\"\n        },\n        {\n          \"id\":\"247\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"64\"\n        },\n        {\n          \"id\":\"248\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"65\"\n        },\n        {\n          \"id\":\"249\",\n          \"name\":null,\n          \"source\":\"76\",\n          \"target\":\"66\"\n        }\n      ],\n      \"categories\":[\n        {\n          \"name\":\"类目0\"\n        },\n        {\n          \"name\":\"类目1\"\n        },\n        {\n          \"name\":\"类目2\"\n        },\n        {\n          \"name\":\"类目3\"\n        },\n        {\n          \"name\":\"类目4\"\n        },\n        {\n          \"name\":\"类目5\"\n        },\n        {\n          \"name\":\"类目6\"\n        },\n        {\n          \"name\":\"类目7\"\n        },\n        {\n          \"name\":\"类目8\"\n        }\n      ],\n      \"roam\":true,\n      \"label\":{\n        \"position\":\"right\"\n      },\n      \"lineStyle\":{\n        \"curveness\":0.3\n      }\n    }\n  ]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/map.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n    visualMap: {\n        show: true,\n        min: 0,\n        max: 1500,\n        right: 50,\n        top: 'middle',\n        text:['高','低']\n        // orient: 'horizontal'\n    },\n    selectedMode: 'single',\n    series : [\n        {\n            name: 'iphone3',\n            type: 'map',\n            map: 'china',\n            showLegendSymbol: true,\n            label: {\n                show: false,\n            },\n            emphasis: {\n                label: {\n                    show: false,\n                }\n            },\n            data:[\n                {name: '北京',value: 500},\n                {name: '天津',value: 500},\n                {name: '上海',value: 500},\n                {name: '重庆',value: 500},\n                {name: '河北',value: 500},\n                {name: '河南',value: 500},\n                {name: '云南',value: 500},\n                {name: '辽宁',value: 500},\n                {name: '黑龙江',value: 500},\n                {name: '湖南',value: 500},\n                {name: '安徽',value: 500},\n                {name: '山东',value: 500},\n                {name: '新疆',value: 500},\n                {name: '江苏',value: 500},\n                {name: '浙江',value: 500},\n                {name: '江西',value: 500},\n                {name: '湖北',value: 500},\n                {name: '广西',value: 500},\n                {name: '甘肃',value: 500},\n                {name: '山西',value: 500},\n                {name: '内蒙古',value: 500},\n                {name: '陕西',value: 500},\n                {name: '吉林',value: 500},\n                {name: '福建',value: 500},\n                {name: '贵州',value: 500},\n                {name: '广东',value: 500},\n                {name: '青海',value: 500},\n                {name: '西藏',value: 500},\n                {name: '四川',value: 500},\n                {name: '宁夏',value: 500},\n                {name: '海南',value: 500},\n                {name: '台湾',value: 500},\n                {name: '香港',value: 500},\n                {name: '澳门',value: 500}\n            ]\n        },\n        {\n            name: 'iphone4',\n            type: 'map',\n            mapType: 'china',\n            showLegendSymbol: true,\n            label: {\n                show: false,\n            },\n            emphasis: {\n                label: {\n                    show: false\n                }\n            },\n            data:[\n                {name: '北京',value: 500},\n                {name: '天津',value: 500},\n                {name: '上海',value: 500},\n                {name: '重庆',value: 500},\n                {name: '河北',value: 500},\n                {name: '安徽',value: 500},\n                {name: '新疆',value: 500},\n                {name: '浙江',value: 500},\n                {name: '江西',value: 500},\n                {name: '山西',value: 500},\n                {name: '内蒙古',value: 500},\n                {name: '吉林',value: 500},\n                {name: '福建',value: 500},\n                {name: '广东',value: 500},\n                {name: '西藏',value: 500},\n                {name: '四川',value: 500},\n                {name: '宁夏',value: 500},\n                {name: '香港',value: 500},\n                {name: '澳门',value: 500}\n            ]\n        },\n        {\n            name: 'iphone5',\n            type: 'map',\n            mapType: 'china',\n            showLegendSymbol: true,\n            label: {\n                show: false,\n            },\n            emphasis: {\n                label: {\n                    show: false\n                }\n            },\n            data:[\n                {name: '北京',value: 500},\n                {name: '天津',value: 500},\n                {name: '上海',value: 500},\n                {name: '广东',value: 500},\n                {name: '台湾',value: 500},\n                {name: '香港',value: 500},\n                {name: '澳门',value: 500}\n            ]\n        }\n    ]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/pie.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n    legend: {\n        bottom: '5%',\n        data: ['rose1', 'rose2', 'rose3', 'rose4']\n    },\n    series : [\n        {\n            name:'半径模式',\n            type:'pie',\n            radius : [20, 80],\n            center : ['25%', 110],\n            label: {\n                show: false,\n            },\n            lableLine: {\n                show: false,\n            },\n            emphasis: {\n                label: {\n                    show: true\n                },\n                lableLine: {\n                    show: true\n                }\n            },\n            data:[\n                {value:10, name:'rose1'},\n                {value:5, name:'rose2'},\n                {value:15, name:'rose3'},\n                {value:25, name:'rose4'},\n                {value:20, name:'rose5'},\n                {value:35, name:'rose6'},\n                {value:30, name:'rose7'},\n                {value:40, name:'rose8'}\n            ]\n        },\n        {\n            name:'面积模式',\n            type:'pie',\n            radius : [30, 80],\n            center : ['75%', 110],\n            roseType : 'area',\n            labelLine: {\n                length: 5\n            },\n            data:[\n                {value:10, name:'rose1'},\n                {value:5, name:'rose2'},\n                {value:15, name:'rose3'},\n                {value:25, name:'rose4'},\n                {value:20, name:'rose5'},\n                {value:35, name:'rose6'},\n                {value:30, name:'rose7'},\n                {value:40, name:'rose8'}\n            ]\n        },\n        {\n            name:'仪表盘',\n            type:'gauge',\n            radius : 100,\n            center : ['50%', 280],\n            detail : {formatter:'{value}%'},\n            data:[\n                {value:50, name:'Gauge'}\n            ]\n        }\n    ]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/option/scatter.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport default {\n    timeline: {\n        left: '2%',\n        right: '2%',\n        data: [\n            '2002-01-01','2003-01-01','2004-01-01',\n            {\n                value: '2005-01-01',\n                symbol: 'diamond',\n                symbolSize: 16\n            },\n            '2006-01-01', '2007-01-01','2008-01-01','2009-01-01','2010-01-01',\n            {\n                value: '2011-01-01',\n                symbol: 'diamond',\n                symbolSize: 18\n            }\n        ],\n        label: {\n            formatter : function(s) {\n                return (new Date(s)).getFullYear();\n            }\n        }\n    },\n    options: [{\n        grid: {\n            left: '13%',\n            right: '5%',\n            bottom: '20%'\n        },\n        xAxis: {\n            type : 'value',\n            scale:true,\n            axisLabel : {\n                formatter: '{value} cm'\n            }\n        },\n        yAxis: {\n            type : 'value',\n            scale:true,\n            axisLabel : {\n                formatter: '{value} kg'\n            }\n        },\n        series : [\n            {\n                name:'女性',\n                type:'scatter',\n                data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],\n                    [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],\n                    [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],\n                    [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],\n                    [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],\n                    [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],\n                    [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],\n                    [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],\n                    [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],\n                    [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],\n                    [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],\n                    [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],\n                    [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],\n                    [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],\n                    [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],\n                    [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],\n                    [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],\n                    [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],\n                    [161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],\n                    [159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],\n                    [161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],\n                    [171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],\n                    [166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],\n                    [159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],\n                    [162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],\n                    [172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],\n                    [162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],\n                    [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],\n                    [167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],\n                    [170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],\n                    [160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],\n                    [166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],\n                    [170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],\n                    [167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],\n                    [160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],\n                    [177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],\n                    [172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],\n                    [175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],\n                    [165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],\n                    [168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],\n                    [162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],\n                    [157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],\n                    [172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],\n                    [161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],\n                    [152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],\n                    [160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],\n                    [167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],\n                    [175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],\n                    [174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],\n                    [156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],\n                    [169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],\n                    [176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]\n                ],\n                markPoint : {\n                    data : [\n                        {type : 'max', name: '最大值'},\n                        {type : 'min', name: '最小值'}\n                    ]\n                },\n                markLine : {\n                    data : [\n                        {type : 'average', name: '平均值'}\n                    ]\n                }\n            },\n            {\n                name:'男性',\n                type:'scatter',\n                data: [[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8],\n                    [181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0], [184.0, 81.6],\n                    [180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6], [174.0, 71.0],\n                    [184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4], [176.0, 85.9],\n                    [176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4], [173.5, 81.8],\n                    [178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2], [173.0, 60.9],\n                    [183.5, 74.8], [175.5, 70.0], [188.0, 72.4], [189.2, 84.1], [172.8, 69.1],\n                    [170.0, 59.5], [182.0, 67.2], [170.0, 61.3], [177.8, 68.6], [184.2, 80.1],\n                    [186.7, 87.8], [171.4, 84.7], [172.7, 73.4], [175.3, 72.1], [180.3, 82.6],\n                    [182.9, 88.7], [188.0, 84.1], [177.2, 94.1], [172.1, 74.9], [167.0, 59.1],\n                    [169.5, 75.6], [174.0, 86.2], [172.7, 75.3], [182.2, 87.1], [164.1, 55.2],\n                    [163.0, 57.0], [171.5, 61.4], [184.2, 76.8], [174.0, 86.8], [174.0, 72.2],\n                    [177.0, 71.6], [186.0, 84.8], [167.0, 68.2], [171.8, 66.1], [182.0, 72.0],\n                    [167.0, 64.6], [177.8, 74.8], [164.5, 70.0], [192.0, 101.6], [175.5, 63.2],\n                    [171.2, 79.1], [181.6, 78.9], [167.4, 67.7], [181.1, 66.0], [177.0, 68.2],\n                    [174.5, 63.9], [177.5, 72.0], [170.5, 56.8], [182.4, 74.5], [197.1, 90.9],\n                    [180.1, 93.0], [175.5, 80.9], [180.6, 72.7], [184.4, 68.0], [175.5, 70.9],\n                    [180.6, 72.5], [177.0, 72.5], [177.1, 83.4], [181.6, 75.5], [176.5, 73.0],\n                    [175.0, 70.2], [174.0, 73.4], [165.1, 70.5], [177.0, 68.9], [192.0, 102.3],\n                    [176.5, 68.4], [169.4, 65.9], [182.1, 75.7], [179.8, 84.5], [175.3, 87.7],\n                    [184.9, 86.4], [177.3, 73.2], [167.4, 53.9], [178.1, 72.0], [168.9, 55.5],\n                    [157.2, 58.4], [180.3, 83.2], [170.2, 72.7], [177.8, 64.1], [172.7, 72.3],\n                    [165.1, 65.0], [186.7, 86.4], [165.1, 65.0], [174.0, 88.6], [175.3, 84.1],\n                    [185.4, 66.8], [177.8, 75.5], [180.3, 93.2], [180.3, 82.7], [177.8, 58.0],\n                    [177.8, 79.5], [177.8, 78.6], [177.8, 71.8], [177.8, 116.4], [163.8, 72.2],\n                    [188.0, 83.6], [198.1, 85.5], [175.3, 90.9], [166.4, 85.9], [190.5, 89.1],\n                    [166.4, 75.0], [177.8, 77.7], [179.7, 86.4], [172.7, 90.9], [190.5, 73.6],\n                    [185.4, 76.4], [168.9, 69.1], [167.6, 84.5], [175.3, 64.5], [170.2, 69.1],\n                    [190.5, 108.6], [177.8, 86.4], [190.5, 80.9], [177.8, 87.7], [184.2, 94.5],\n                    [176.5, 80.2], [177.8, 72.0], [180.3, 71.4], [171.4, 72.7], [172.7, 84.1],\n                    [172.7, 76.8], [177.8, 63.6], [177.8, 80.9], [182.9, 80.9], [170.2, 85.5],\n                    [167.6, 68.6], [175.3, 67.7], [165.1, 66.4], [185.4, 102.3], [181.6, 70.5],\n                    [172.7, 95.9], [190.5, 84.1], [179.1, 87.3], [175.3, 71.8], [170.2, 65.9],\n                    [193.0, 95.9], [171.4, 91.4], [177.8, 81.8], [177.8, 96.8], [167.6, 69.1],\n                    [167.6, 82.7], [180.3, 75.5], [182.9, 79.5], [176.5, 73.6], [186.7, 91.8],\n                    [188.0, 84.1], [188.0, 85.9], [177.8, 81.8], [174.0, 82.5], [177.8, 80.5],\n                    [171.4, 70.0], [185.4, 81.8], [185.4, 84.1], [188.0, 90.5], [188.0, 91.4],\n                    [182.9, 89.1], [176.5, 85.0], [175.3, 69.1], [175.3, 73.6], [188.0, 80.5],\n                    [188.0, 82.7], [175.3, 86.4], [170.5, 67.7], [179.1, 92.7], [177.8, 93.6],\n                    [175.3, 70.9], [182.9, 75.0], [170.8, 93.2], [188.0, 93.2], [180.3, 77.7],\n                    [177.8, 61.4], [185.4, 94.1], [168.9, 75.0], [185.4, 83.6], [180.3, 85.5],\n                    [174.0, 73.9], [167.6, 66.8], [182.9, 87.3], [160.0, 72.3], [180.3, 88.6],\n                    [167.6, 75.5], [186.7, 101.4], [175.3, 91.1], [175.3, 67.3], [175.9, 77.7],\n                    [175.3, 81.8], [179.1, 75.5], [181.6, 84.5], [177.8, 76.6], [182.9, 85.0],\n                    [177.8, 102.5], [184.2, 77.3], [179.1, 71.8], [176.5, 87.9], [188.0, 94.3],\n                    [174.0, 70.9], [167.6, 64.5], [170.2, 77.3], [167.6, 72.3], [188.0, 87.3],\n                    [174.0, 80.0], [176.5, 82.3], [180.3, 73.6], [167.6, 74.1], [188.0, 85.9],\n                    [180.3, 73.2], [167.6, 76.3], [183.0, 65.9], [183.0, 90.9], [179.1, 89.1],\n                    [170.2, 62.3], [177.8, 82.7], [179.1, 79.1], [190.5, 98.2], [177.8, 84.1],\n                    [180.3, 83.2], [180.3, 83.2]\n                ],\n                markPoint : {\n                    data : [\n                        {type : 'max', name: '最大值'},\n                        {type : 'min', name: '最小值'}\n                    ]\n                },\n                markLine : {\n                    data : [\n                        {type : 'average', name: '平均值'}\n                    ]\n                }\n            }\n        ]\n    }]\n};\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/thumb.html",
    "content": "<!DOCTYPE html>\n<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership.  The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License.  You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied.  See the License for the\nspecific language governing permissions and limitations\nunder the License.\n-->\n\n\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\n    <script src=\"../../dist/echarts.js\"></script>\n    <script src=\"../../map/js/china.js\"></script>\n</head>\n<body>\n    <style>\n        body {\n            margin: 0;\n        }\n    </style>\n    <div id=\"main\"></div>\n    <script type=\"module\">\n        import bar from './option/bar';\n        import area from './option/area';\n        import scatter from './option/scatter';\n        import pie from './option/pie';\n        import graph from './option/graph';\n        import map from './option/map';\n\n        let options = [bar, area, scatter, pie, graph, map];\n        let mainDiv = document.querySelector('#main');\n\n        let theme = window.location.hash.slice(1);\n\n        let scriptTag = document.createElement('script');\n        scriptTag.src = '../' + theme + '.js';\n        scriptTag.onload = function () {\n            options.forEach(option => {\n                let div = document.createElement('div');\n                mainDiv.appendChild(div);\n                div.style.cssText = 'float:left;width:50%;height:400px';\n                let chart = echarts.init(div, theme);\n                option.animation = false;\n                chart.setOption(option);\n            });\n        }\n        document.body.appendChild(scriptTag);\n    </script>\n</body>\n</html>"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/tool/thumb.js",
    "content": "/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nconst glob = require('glob');\nconst puppeteer = require('puppeteer');\nconst fs = require('fs');\nconst path = require('path');\n\nasync function wait(time) {\n    return new Promise(resolve => {\n        setTimeout(resolve, time);\n    });\n}\n\nasync function snapshot(browser, themePath) {\n    let themeName = path.basename(themePath, '.js');\n    let code = fs.readFileSync(themePath, 'utf-8');\n\n    let page = await browser.newPage();\n    await page.evaluateOnNewDocument(code);\n    await page.setViewport({ width: 1200, height: 1200 });\n    try {\n        await page.goto('http://localhost/echarts/theme/tool/thumb.html#' + themeName);\n        await wait(200);\n        await page.screenshot({ path: __dirname + '/../thumb/' + themeName + '.png' });\n    }\n    catch (e) {\n        console.log(e);\n    }\n    await page.close();\n\n    console.log('Updated ' + themeName);\n}\n\nglob('../*.js', async function (err, themePathList) {\n\n    let browser = await puppeteer.launch();\n    for (let themePath of themePathList) {\n        try {\n            await snapshot(browser, themePath);\n        }\n        catch(e) {\n            console.log(e);\n        }\n    }\n    await browser.close();\n});"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/v5.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var colorPalette = [\n        '#5470c6',\n        '#91cc75',\n        '#fac858',\n        '#ee6666',\n        '#73c0de',\n        '#3ba272',\n        '#fc8452',\n        '#9a60b4',\n        '#ea7ccc'\n    ];\n\n    var axisCommon = function() {\n        return {\n            axisLine: {\n                lineStyle: {\n                    color: '#6E7079'\n                }\n            },\n            axisLabel: {\n                color: null\n            },\n            splitLine: {\n                lineStyle: {\n                    color: ['#E0E6F1']\n                }\n            },\n            splitArea: {\n                areaStyle: {\n                    color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n                }\n            },\n            minorSplitLine: {\n                color: '#F4F7FD'\n            }\n        };\n    };\n\n    var gradientColor = ['#f6efa6', '#d88273', '#bf444c'];\n\n    echarts.registerTheme('v5', {\n        color: colorPalette,\n        gradientColor: gradientColor,\n\n        loading: {\n            textColor: 'red'\n        },\n\n        // Series\n\n        bar: {\n            defaultBarGap: '20%',\n            select: {\n                itemStyle: {\n                    borderColor: '#212121',\n                    borderWidth: 1\n                }\n            }\n        },\n\n        boxplot: {\n            emphasis: {\n                itemStyle: {\n                    shadowColor: 'rgba(0,0,0,0.2)'\n                }\n            }\n        },\n\n        funnel: {\n            bottom: 60,\n            select: {\n                itemStyle: {\n                    borderColor: '#212121',\n                    borderWidth: 1\n                }\n            },\n            label: {\n                color: 'inherit'\n            }\n        },\n\n        gauge: {\n            axisLine: {\n                lineStyle: {\n                    color: [[1, '#E6EBF8']]\n                }\n            },\n            splitLine: {\n                lineStyle: {\n                    color: '#63677A'\n                }\n            },\n            axisTick: {\n                lineStyle: {\n                    color: '#63677A'\n                }\n            },\n            axisLabel: {\n                color: '#464646'\n            },\n            anchor: {\n                itemStyle: {\n                    color: '#fff',\n                    borderColor: '#5470c6'\n                }\n            },\n            title: {\n                color: '#464646',\n            },\n            detail: {\n                backgroundColor: 'rgba(0,0,0,0)',\n                borderColor: '#ccc',\n                color: '#464646'\n            }\n        },\n\n        graph: {\n            lineStyle: {\n                color: '#aaa'\n            },\n            select: {\n                itemStyle: {\n                    borderColor: '#212121'\n                }\n            }\n        },\n\n        heatmap: {\n            select: {\n                itemStyle: {\n                    borderColor: '#212121'\n                }\n            }\n        },\n\n        line: {\n            symbolSize: 4\n        },\n\n        pictorialBar: {\n            select: {\n                itemStyle: {\n                    borderColor: '#212121',\n                    borderWidth: 1\n                }\n            }\n        },\n\n        pie: {\n            radius: [0, '75%'],\n            labelLine: {\n                length2: 15\n            }\n        },\n\n        map: {\n            defaultItemStyleColor: '#eee',\n            label: {\n                color: '#000'\n            },\n            itemStyle: {\n                borderColor: '#444',\n                areaColor: '#eee'\n            },\n            emphasis: {\n                label: {\n                    color: 'rgb(100,0,0)'\n                },\n                itemStyle: {\n                    areaColor: 'rgba(255,215,0,0.8)'\n                }\n            },\n            select: {\n                label: {\n                    color: 'rgb(100,0,0)'\n                },\n                itemStyle: {\n                    color: 'rgba(255,215,0,0.8)'\n                }\n            },\n        },\n\n        sankey: {\n            lineStyle: {\n                color: '#314656'\n            },\n            select: {\n                itemStyle: {\n                    borderColor: '#212121'\n                }\n            },\n        },\n\n        scatter: {\n            select: {\n                itemStyle: {\n                    borderColor: '#212121'\n                }\n            }\n        },\n\n        tree: {\n            lineStyle: {\n                color: '#ccc'\n            }\n        },\n\n        treemap: {\n            left: 'center',\n            top: 'middle',\n            width: '80%',\n            height: '80%',\n            scaleLimit: {\n                max: null,\n                min: null\n            },\n            breadcrumb: {\n                top: 'bottom',\n                bottom: null,\n                itemStyle: {\n                    color: 'rgba(0,0,0,0.7)', // '#5793f3',\n                    textStyle: {\n                        color: '#fff'\n                    }\n                },\n                emphasis: {\n                    itemStyle: {\n                        color: 'rgba(0,0,0,0.9)' // '#5793f3',\n                    }\n                }\n            }\n        },\n\n        // Components\n\n        timeAxis: axisCommon(),\n        logAxis: axisCommon(),\n        valueAxis: axisCommon(),\n        categoryAxis: (() => {\n            const axis = axisCommon();\n            axis.axisTick = {\n                show: true\n            };\n            return axis;\n        })(),\n\n        axisPointer: {\n            lineStyle: {\n                color: '#B9BEC9'\n            },\n            shadowStyle: {\n                color: 'rgba(210,219,238,0.2)'\n            },\n            label: {\n                backgroundColor: 'auto',\n                color: '#fff'\n            },\n            handle: {\n                color: '#333',\n                shadowBlur: 3,\n                shadowColor: '#aaa',\n                shadowOffsetX: 0,\n                shadowOffsetY: 2,\n            }\n        },\n\n        brush: {\n            brushStyle: {\n                color: 'rgba(210,219,238,0.3)',\n                borderColor: '#D2DBEE'\n            },\n            defaultOutOfBrushColor: '#ddd'\n        },\n\n        calendar: {\n            splitLine: {\n                lineStyle: {\n                    color: '#000'\n                }\n            },\n            itemStyle: {\n                borderColor: '#ccc'\n            },\n            dayLabel: {\n                margin: '50%',\n                color: '#000'\n            },\n            monthLabel: {\n                margin: 5,\n                color: '#000'\n            },\n            yearLabel: {\n                margin: 30,\n                color: '#ccc'\n            }\n        },\n\n        dataZoom: {\n            borderColor: '#d2dbee',\n            borderRadius: 3,\n            backgroundColor: 'rgba(47,69,84,0)',\n            dataBackground: {\n                lineStyle: {\n                    color: '#d2dbee',\n                    width: 0.5\n                },\n                areaStyle: {\n                    color: '#d2dbee',\n                    opacity: 0.2\n                }\n            },\n            selectedDataBackground: {\n                lineStyle: {\n                    color: '#8fb0f7',\n                    width: 0.5\n                },\n                areaStyle: {\n                    color: '#8fb0f7',\n                    opacity: 0.2\n                }\n            },\n            handleStyle: {\n                color: '#fff',\n                borderColor: '#ACB8D1'\n            },\n            moveHandleStyle: {\n                color: '#D2DBEE',\n                opacity: 0.7\n            },\n            textStyle: {\n                color: '#6E7079'\n            },\n            brushStyle: {\n                color: 'rgba(135,175,274,0.15)'\n            },\n            emphasis: {\n                handleStyle: {\n                    borderColor: '#8FB0F7'\n                },\n                moveHandleStyle: {\n                    color: '#8FB0F7',\n                    opacity: 0.7\n                }\n            },\n            defaultLocationEdgeGap: 7\n        },\n\n        geo: {\n            defaultItemStyleColor: '#eee',\n            label: {\n                color: '#000'\n            },\n            itemStyle: {\n                borderColor: '#444'\n            },\n            emphasis: {\n                label: {\n                    color: 'rgb(100,0,0)'\n                },\n                itemStyle: {\n                    color: 'rgba(255,215,0,0.8)'\n                }\n            },\n            select: {\n                label: {\n                    color: 'rgb(100,0,0)'\n                },\n                itemStyle: {\n                    color: 'rgba(255,215,0,0.8)'\n                }\n            }\n        },\n\n        grid: {\n            left: '10%',\n            top: 60,\n            bottom: 70,\n            borderColor: '#ccc'\n        },\n\n        legend: {\n            top: 0,\n            bottom: null,\n            backgroundColor: 'rgba(0,0,0,0)',\n            borderColor: '#ccc',\n            itemGap: 10,\n            inactiveColor: '#ccc',\n            inactiveBorderColor: '#ccc',\n            lineStyle: {\n                inactiveColor: '#ccc',\n            },\n            textStyle: {\n                color: '#333'\n            },\n            selectorLabel: {\n                color: '#666',\n                borderColor: '#666'\n            },\n            emphasis: {\n                selectorLabel: {\n                    color: '#eee',\n                    backgroundColor: '#666'\n                }\n            },\n            pageIconColor: '#2f4554',\n            pageIconInactiveColor: '#aaa',\n            pageTextStyle: {\n                color: '#333'\n            }\n        },\n\n        radar: (() => {\n            const radar = axisCommon();\n            radar.radius = '75%';\n            radar.axisName = {\n                color: '#bbb'\n            };\n            radar.axisLine.lineStyle.color = '#bbb';\n            return radar;\n        })(),\n\n        timeline: {\n            padding: 5,\n            borderColor: '#ccc',\n            lineStyle: {\n                color: '#DAE1F5'\n            },\n            label: {\n                color: '#A4B1D7'\n            },\n            itemStyle: {\n                color: '#A4B1D7',\n                borderWidth: 1\n            },\n            checkpointStyle: {\n                color: '#316bf3',\n                borderColor: '#fff',\n                borderWidth: 2,\n                shadowBlur: 2,\n                shadowOffsetX: 1,\n                shadowOffsetY: 1,\n                shadowColor: 'rgba(0, 0, 0, 0.3)',\n            },\n            controlStyle: {\n                playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z', // jshint ignore:line\n                stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z', // jshint ignore:line\n                // eslint-disable-next-line max-len\n                nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z', // jshint ignore:line\n                // eslint-disable-next-line max-len\n                prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z', // jshint ignore:line\n                color: '#A4B1D7',\n                borderColor: '#A4B1D7',\n                borderWidth: 1\n            },\n            emphasis: {\n                label: {\n                    color: '#6f778d'\n                },\n                itemStyle: {\n                    color: '#316BF3'\n                },\n                controlStyle: {\n                    color: '#316BF3',\n                    borderColor: '#316BF3',\n                    borderWidth: 2\n                }\n            },\n            progress: {\n                lineStyle: {\n                    color: '#316BF3'\n                },\n                itemStyle: {\n                    color: '#316BF3'\n                },\n                label: {\n                    color: '#6f778d'\n                }\n            },\n        },\n\n        title: {\n            left: 0,\n            top: 0,\n            backgroundColor: 'rgba(0,0,0,0)',\n            borderColor: '#ccc',\n            textStyle: {\n                color: '#464646'\n            },\n            subtextStyle: {\n                color: '#6E7079'\n            }\n        },\n\n        toolbox: {\n            borderColor: '#ccc',\n            padding: 5,\n            itemGap: 8,\n            iconStyle: {\n                borderColor: '#666',\n            },\n            emphasis: {\n                iconStyle: {\n                    borderColor: '#3E98C5'\n                }\n            }\n        },\n\n        tooltip: {\n            axisPointer: {\n                crossStyle: {\n                    color: '#999'\n                }\n            },\n            textStyle: {\n                color: '#666'\n            },\n            backgroundColor: '#fff',\n            borderWidth: 1,\n            defaultBorderColor: '#fff'\n        },\n\n        visualMap: {\n            color: [gradientColor[2], gradientColor[1], gradientColor[0]],\n            inactive: ['rgba(0,0,0,0)'],\n            indicatorStyle: {\n                shadowColor: 'rgba(0,0,0,0.2)'\n            },\n            backgroundColor: 'rgba(0,0,0,0)',\n            borderColor: '#ccc',\n            contentColor: '#5793f3',\n            inactiveColor: '#aaa',\n            padding: 5,\n            textStyle: {\n                color: '#333'\n            }\n        }\n    });\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts/theme/vintage.js",
    "content": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n(function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['exports', 'echarts'], factory);\n    } else if (\n        typeof exports === 'object' &&\n        typeof exports.nodeName !== 'string'\n    ) {\n        // CommonJS\n        factory(exports, require('echarts/lib/echarts'));\n    } else {\n        // Browser globals\n        factory({}, root.echarts);\n    }\n})(this, function(exports, echarts) {\n    var log = function(msg) {\n        if (typeof console !== 'undefined') {\n            console && console.error && console.error(msg);\n        }\n    };\n    if (!echarts) {\n        log('ECharts is not Loaded');\n        return;\n    }\n    var colorPalette = [\n        '#d87c7c',\n        '#919e8b',\n        '#d7ab82',\n        '#6e7074',\n        '#61a0a8',\n        '#efa18d',\n        '#787464',\n        '#cc7e63',\n        '#724e58',\n        '#4b565b'\n    ];\n    echarts.registerTheme('vintage', {\n        color: colorPalette,\n        backgroundColor: '#fef8ef',\n        graph: {\n            color: colorPalette\n        }\n    });\n});\n"
  },
  {
    "path": "app/assets/javascripts/echarts.themeloader.js",
    "content": "(function() {\n  window.RailsCharts = window.RailsCharts || {};\n  window.RailsCharts.loadedThemes = window.RailsCharts.loadedThemes || [];\n\n  window.RailsCharts.loadTheme = function(themeName) {\n    document.addEventListener('DOMContentLoaded', () => {\n      if (typeof echarts === 'undefined') {\n        console.error('ECharts is not loaded. Please ensure echarts.js is included.');\n        return;\n      }\n\n      if (window.RailsCharts.loadedThemes.includes(themeName)) {\n        console.warn(`Theme '${themeName}' is already loaded.`);\n        return;\n      }\n\n      const script = document.createElement('script');\n      script.type = 'text/javascript';\n      script.src = `/assets/echarts/theme/${themeName}.js`;\n      script.onload = () => {\n        console.log(`Theme '${themeName}' loaded successfully.`);\n      };\n      script.onerror = () => {\n        console.error(`Failed to load theme: /assets/echarts/theme/${themeName}.js`);\n      };\n      document.head.appendChild(script);\n    });\n  };\n})();\n"
  },
  {
    "path": "bin/test",
    "content": "#!/usr/bin/env ruby\n$: << File.expand_path(\"../test\", __dir__)\n\nrequire \"bundler/setup\"\nrequire \"rails/plugin/test\"\n"
  },
  {
    "path": "lib/install/with_importmap.rb",
    "content": "say \"Import ECharts\"\nappend_to_file \"app/javascript/application.js\", <<~JS\n  import \"echarts\"\n  import \"echarts/theme/dark\"\nJS\n\nsay \"Pin ECharts\"\nappend_to_file \"config/importmap.rb\", <<~RUBY\n  pin \"echarts\", to: \"echarts.min.js\"\n  pin \"echarts/theme/dark\", to: \"echarts/theme/dark.js\"\nRUBY\n"
  },
  {
    "path": "lib/install/with_node.rb",
    "content": "js_code = <<~JS\n  import * as echarts from \"echarts\";\n  import \"echarts/theme/dark\";\n\n  window.echarts = echarts;\nJS\n\nif Rails.root.join(\"app/javascript/application.js\").exist?\n  say \"Import ECharts\"\n  append_to_file \"app/javascript/application.js\", js_code\nelsif Rails.root.join(\"app/javascript/packs/application.js\").exist?\n  say \"Import ECharts\"\n  append_to_file \"app/javascript/packs/application.js\", js_code\nelse\n  say \"You must import add these lines in your JavaScript entrypoint file\", :red\n  say js_code\nend\n\nsay \"Install ECharts\"\nrun \"yarn add echarts\"\n"
  },
  {
    "path": "lib/install/with_sprockets.rb",
    "content": "js_code = <<~JS\n  //= require echarts.min.js\n  //= require echarts/theme/vintage.js\nJS\n\nif Rails.root.join(\"app/assets/javascripts/application.js\").exist?\n  say \"Import ECharts\"\n  append_to_file \"app/assets/javascripts/application.js\", js_code\nelse\n  say \"You must import add these lines in your JavaScript entrypoint file\", :red\n  say js_code\nend\n"
  },
  {
    "path": "lib/rails_charts/area_chart.rb",
    "content": "module RailsCharts\n  class AreaChart < LineChart\n\n    def defaults\n      {\n        tooltip: {\n          trigger: 'axis'\n        },      \n        xAxis: {\n          boundaryGap: false\n        },\n        series: {\n          areaStyle: {},\n          stack: 'Total'\n        },\n        toolbox: {\n          feature: {\n            saveAsImage: {}\n          },\n        }\n      }\n    end\n\n    def x_axis\n      {\n        type: 'category'\n      }\n    end    \n\n  end\nend"
  },
  {
    "path": "lib/rails_charts/bar_chart.rb",
    "content": "module RailsCharts\n  class BarChart < LineChart\n    \n    def type\n      'bar'\n    end\n\n    def defaults\n      {\n        tooltip: {\n          trigger: 'axis',\n          axisPointer: {\n            type: 'shadow'\n          }        \n        },\n        toolbox: {\n          feature: {\n            saveAsImage: {}\n          },\n        }     \n      }\n    end\n  \n  end\nend"
  },
  {
    "path": "lib/rails_charts/base_chart.rb",
    "content": "module RailsCharts\n  class BaseChart\n    CHART_JS_PATTERN = /\"RAILS_CHART_JS:((?!RAILS_CHART_JS:).*?):RAILS_CHART_JS_END\"/\n\n    using RubyExt\n\n    attr_reader :data, :options, :chart_id, :container_id, :defaults\n    attr_reader :width, :height, :style, :klass, :theme, :locale, :renderer\n    attr_reader :other_options, :debug\n    attr_reader :vertical\n\n    def initialize(data, options = {})\n      @data          = data\n      @options       = options\n      @other_options = options.delete(:options).presence || {}\n      @defaults      = RailsCharts.defaults[self.class].presence || {}\n\n      @chart_id      = \"rails_charts_#{Digest::SHA1.hexdigest([Time.now, rand].join)}\"\n      @container_id  = options.delete(:id).presence || @chart_id\n\n      @width         = options.delete(:width).presence || RailsCharts.options[:width]\n      @height        = options.delete(:height).presence || RailsCharts.options[:height]\n      @theme         = options.delete(:theme).presence || RailsCharts.options[:theme]\n      @locale        = options.delete(:locale).presence || RailsCharts.options[:locale]\n      @renderer      = options.delete(:renderer).presence || RailsCharts.options[:renderer] || \"canvas\"\n      @klass         = options.delete(:class).presence || RailsCharts.options[:class]\n      @style         = options.delete(:style).presence || RailsCharts.options[:style]\n\n      @debug         = options.delete(:debug)\n\n      @vertical      = options.delete(:vertical).presence\n    end\n\n    def js_code\n      style_css = []\n      style_css << \"width: #{width}\" if width\n      style_css << \"height: #{height}\" if height\n      style_css << style\n\n      %Q{\n        <div id=\"#{container_id}\" class=\"#{klass}\" style=\"#{style_css.compact.join('; ')}\">\n          <script>\n            if (!window.RailsCharts) {\n              window.RailsCharts = {}\n              window.RailsCharts.charts = {}\n            }\n\n            function init_#{chart_id}(e) {\n              if (document.documentElement.hasAttribute(\"data-turbolinks-preview\")) return;\n              if (document.documentElement.hasAttribute(\"data-turbo-preview\")) return;\n\n              <!-- #{self.class} -->\n              var chartDom = document.getElementById('#{container_id}');\n\n              if (!chartDom) { return }\n\n              var lib = (\"echarts\" in window) ? window.echarts : echarts;\n              var chart = lib.init(chartDom, #{theme.to_json}, { \"locale\": #{locale.to_json}, \"renderer\": #{renderer.to_json} });\n              var option = #{option};\n              option && chart.setOption(option);\n\n              window.RailsCharts.charts[\"#{container_id}\"] = chart;\n\n              chart.on('rendered', function() {\n                document.dispatchEvent(new CustomEvent('chart:rendered', {\n                  detail: { containerId: '#{container_id}' }\n                }));\n              });\n            }\n\n            function destroy_#{chart_id}(e) {\n              var chart = window.RailsCharts.charts[\"#{container_id}\"];\n              if (chart) {\n                chart.dispose()\n              }\n              delete window.RailsCharts.charts[\"#{container_id}\"];\n            }\n\n            window.addEventListener('load', init_#{chart_id});\n            window.addEventListener('turbo:load', init_#{chart_id});\n            window.addEventListener('turbolinks:load', init_#{chart_id});\n\n            window.addEventListener('turbo:frame-render', init_#{chart_id});\n            window.addEventListener('turbo:frame-load', ()=> {\n                window.removeEventListener('turbo:frame-render', init_#{chart_id});\n            });\n\n            document.addEventListener(\"turbolinks:before-render\", destroy_#{chart_id});\n            document.addEventListener(\"turbo:before-render\", destroy_#{chart_id});\n          </script>\n        </div>\n      }\n    end\n\n    def option\n      str = build_options.to_json\n      str.gsub!(CHART_JS_PATTERN) { Base64.decode64($1).force_encoding(Encoding::UTF_8) }\n      str\n    end\n\n    def build_options\n      hash = {}\n\n      hash[:series] = Array.wrap(generate_series_options)\n\n      hash = hash.complex_merge(axises)\n      hash = hash.complex_merge(defaults)\n      hash = hash.complex_merge(other_options)\n\n      hash\n    end\n\n    def axises\n      if self.vertical\n        {\n          xAxis: y_axis,\n          yAxis: x_axis,\n        }\n      else\n        {\n          xAxis: x_axis,\n          yAxis: y_axis,\n        }\n      end\n    end\n\n    def x_axis\n      []\n    end\n\n    def y_axis\n      []\n    end\n\n  end\nend\n"
  },
  {
    "path": "lib/rails_charts/calendar_chart.rb",
    "content": "module RailsCharts\n  class CalendarChart < BaseChart\n    attr_reader :visual_map_options\n    \n    def initialize(data, options = {})\n      super(data, options)\n    end\n\n    def type\n      'heatmap'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end\n\n    def generate_series_options\n      {\n        type: type,\n        coordinateSystem: 'calendar',\n        data: data[:data]\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },\n        },\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/candlestick_chart.rb",
    "content": "module RailsCharts\n  class CandlestickChart < LineChart\n    \n    def type\n      'candlestick'\n    end\n\n    def defaults\n      {\n        tooltip: {\n          trigger: 'axis',\n          axisPointer: {\n            type: 'cross'\n          }        \n        },\n        toolbox: {\n          feature: {\n            saveAsImage: {}\n          },\n        }     \n      }\n    end\n  \n  end\nend"
  },
  {
    "path": "lib/rails_charts/custom_chart.rb",
    "content": "module RailsCharts\n  class CustomChart < BaseChart\n\n    def initialize(data, options = {})\n      super([], options)\n      @options = options\n    end\n\n    def build_options\n      options\n    end\n\n  end\nend"
  },
  {
    "path": "lib/rails_charts/donut_chart.rb",
    "content": "module RailsCharts\n  class DonutChart < PieChart\n\n    def initialize(data, options = {})\n      super(data, options)\n    end\n\n    def generate_series_options\n      {\n        data: data.map{|k, v| {name: k, value: v} },\n        type: type\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },\n        }, \n        series: {\n          radius: ['40%', '70%']\n        },\n        emphasis: {\n          itemStyle: {\n            shadowBlur: 10,\n            shadowOffsetX: 0,\n            shadowColor: 'rgba(0, 0, 0, 0.5)'\n          }\n        } \n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/engine.rb",
    "content": "module RailsCharts\n  class Engine < ::Rails::Engine\n\n    initializer \"rails_charts.importmap\", before: \"importmap\" do |app|\n      if defined?(Importmap)\n        app.config.importmap.cache_sweepers << root.join(\"app/assets/javascripts\")\n      end\n    end\n\n    # If you don't want to precompile Echarts's assets (eg. because you're using webpack),\n    # you can do this in an intiailzer:\n    #\n    # config.after_initialize do\n    #   config.assets.precompile -= RailsCharts::Engine::PRECOMPILE_ASSETS\n    # end\n\n    PRECOMPILE_ASSETS = Dir[root.join(\"app/assets/javascripts/**/*\")]\n    initializer 'rails_charts.assets' do |app|\n      if app.config.respond_to?(:assets)\n        app.config.assets.precompile += PRECOMPILE_ASSETS\n      end\n    end\n\n    initializer 'rails_charts.helpers', before: :load_config_initializers do\n      ActiveSupport.on_load :action_view do\n        include RailsCharts::Helpers\n      end\n    end\n\n  end\nend\n"
  },
  {
    "path": "lib/rails_charts/funnel_chart.rb",
    "content": "module RailsCharts\n  class FunnelChart < BaseChart\n\n    def type\n      'funnel'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end    \n\n    def generate_series_options\n      {\n        data: data[:data],\n        type: type,\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },\n        },\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/gauge_chart.rb",
    "content": "module RailsCharts\n  class GaugeChart < BaseChart\n\n    def type\n      'gauge'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end    \n\n    def generate_series_options\n      {\n        data: Array.wrap(data[:data]),\n        type: type,\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },\n        },\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/helpers.rb",
    "content": "require \"json\"\nrequire \"erb\"\n\nmodule RailsCharts\n  module Helpers\n\n    def line_chart(data, options = {})\n      generate_rails_chart LineChart, data, options\n    end\n\n    def bar_chart(data, options = {})\n      generate_rails_chart BarChart, data, options\n    end\n\n    def stacked_bar_chart(data, options = {})\n      generate_rails_chart StackedBarChart, data, options\n    end    \n\n    def pie_chart(data, options = {})\n      generate_rails_chart PieChart, data, options\n    end\n\n    def scatter_chart(data, options = {})\n      generate_rails_chart ScatterChart, data, options\n    end\n\n    def parallel_chart(data, options = {})\n      generate_rails_chart ParallelChart, data, options\n    end    \n\n    def donut_chart(data, options = {})\n      generate_rails_chart DonutChart, data, options\n    end\n\n    def sankey_chart(data, options = {})\n      generate_rails_chart SankeyChart, data, options\n    end\n\n    def area_chart(data, options = {})\n      generate_rails_chart AreaChart, data, options\n    end\n\n    def radar_chart(data, options = {})\n      generate_rails_chart RadarChart, data, options\n    end  \n    \n    def calendar_chart(data, options = {})\n      generate_rails_chart CalendarChart, data, options\n    end\n\n    def funnel_chart(data, options = {})\n      generate_rails_chart FunnelChart, data, options\n    end\n\n    def gauge_chart(data, options = {})\n      generate_rails_chart GaugeChart, data, options\n    end\n\n    def candlestick_chart(data, options = {})\n      generate_rails_chart CandlestickChart, data, options\n    end    \n\n    def custom_chart(options = {})\n      generate_rails_chart CustomChart, [], options\n    end\n\n    def generate_rails_chart(klass, data, options = {})\n      klass = klass.new(data, options)\n      if options[:code]\n        tag.textarea(row: 20, cols: 80, style: 'width: 100%; height: 300px') do\n          klass.js_code\n        end\n      else\n        # tag.pre(debug(data.inspect)) +\n        # tag.textarea(row: 20, cols: 80, style: 'width: 100%; height: 300px') do\n        #   klass.js_code\n        # end +\n        raw(klass.js_code)\n      end\n    end\n\n  end\nend\n"
  },
  {
    "path": "lib/rails_charts/javascript.rb",
    "content": "module RailsCharts\n  class Javascript\n    attr_reader :code\n\n    def initialize(code)\n      @code = code\n    end\n\n    def as_json(options = nil)\n      \"RAILS_CHART_JS:#{Base64.strict_encode64(code)}:RAILS_CHART_JS_END\"\n    end\n  end\nend\n"
  },
  {
    "path": "lib/rails_charts/line_chart.rb",
    "content": "module RailsCharts\n  class LineChart < BaseChart\n\n    def initialize(data, options = {})\n      super(Array.wrap(data.to_a), options)\n    end\n\n    def type\n      'line'\n    end\n\n    def x\n      case data[0]\n      when Array\n        data.map{|e| e[0]}\n      when Hash\n        data.map{|e| e[:data].keys}.flatten\n      else\n        nil\n      end&.uniq\n    end\n\n    def y\n      case data[0]\n      when Array\n        data.map{|e| e[1]}\n      when Hash\n        data.map{|e| e[:name]}\n      end\n    end\n\n    def generate_series_options\n      # binding.pry if debug\n      case data[0]\n      when Array\n        {\n          data: is_a?(AreaChart) || is_a?(ScatterChart) ? data : data.map(&:last),\n          type: type,\n        }\n      when Hash\n        data.map do |e| \n          {\n            data: e[:data].is_a?(Hash) ? e[:data].values : e[:data],\n            type: type,\n            name: e[:name]\n          }\n        end\n      end\n    end\n\n    def x_axis\n      {\n        type: 'category',\n        data: x\n      }\n    end\n\n    def y_axis\n      {\n        type: 'value',\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          trigger: 'axis'\n        },\n        toolbox: {\n          feature: {\n            saveAsImage: {}\n          },\n        }\n      }\n    end\n\n  end\nend"
  },
  {
    "path": "lib/rails_charts/parallel_chart.rb",
    "content": "module RailsCharts\n  class ParallelChart < BaseChart\n\n    def type\n      'parallel'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end    \n\n    def generate_series_options\n      {\n        data: data,\n        type: type\n      }\n    end\n\n    def defaults\n      {\n        series: {\n          lineStyle: {\n            width: 2\n          }\n        }\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/pie_chart.rb",
    "content": "module RailsCharts\n  class PieChart < LineChart\n\n    def type\n      'pie'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end\n\n    def generate_series_options\n      if data[0].is_a?(Hash)\n        {\n          data: data,\n          type: type\n        }\n      else\n        {\n          data: data.map{|k, v| {name: k, value: v} },\n          type: type\n        }\n      end\n    end\n\n    def x_axis\n      []\n    end\n\n    def y_axis\n      []\n    end    \n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },      \n        },\n        series: {\n          radius: '70%',\n        },\n        emphasis: {\n          itemStyle: {\n            shadowBlur: 10,\n            shadowOffsetX: 0,\n            shadowColor: 'rgba(0, 0, 0, 0.5)'\n          }\n        }\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/radar_chart.rb",
    "content": "module RailsCharts\n  class RadarChart < BaseChart\n\n    def type\n      'radar'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis).merge(radar)\n    end\n\n    def radar\n      {\n        radar: {\n          indicator: data[:indicators].map { |(k, v)| { name: k, max: v } }\n        }\n      }\n    end\n\n    def generate_series_options\n      {\n        type: type,\n        data: data[:data]\n      }\n    end\n\n    def defaults\n      {\n        tooltip: {\n          item: {\n            trigger: 'item',\n          },\n        },\n      }\n    end\n\n  end\nend\n"
  },
  {
    "path": "lib/rails_charts/ruby_ext.rb",
    "content": "module RailsCharts\n\n  module RubyExt\n\n    refine ::Array do\n      def deep_merge(other)\n        map{|e| e.merge!(other) } \n      end\n    end\n\n    refine ::Hash do\n      def complex_merge(other)\n        self.each do |k, v|\n          next unless default = other[k]\n          if v.is_a?(Array) || v.is_a?(Hash)\n            self[k] = v.deep_merge(default)\n          else\n            self[k] = default\n          end\n        end\n        self.deep_merge!(other.except(*self.keys))\n        self\n      end\n    end    \n\n  end\n\nend"
  },
  {
    "path": "lib/rails_charts/sankey_chart.rb",
    "content": "module RailsCharts\n  class SankeyChart < BaseChart\n\n    def type\n      'sankey'\n    end\n\n    def build_options\n      super.except(:xAxis, :yAxis)\n    end    \n\n    def generate_series_options\n      {\n        data: data[:data],\n        links: data[:links],\n        type: type\n      }\n    end\n\n    def defaults\n      {\n        series: {\n          emphasis: {\n            focus: 'adjacency'\n          }\n        }\n      }\n    end\n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/scatter_chart.rb",
    "content": "module RailsCharts\n  class ScatterChart < LineChart\n\n    def type\n      'scatter'\n    end\n\n    # def generate_series_options\n    #   {\n    #     data: data,\n    #     type: type,\n    #   }\n    # end\n\n    def defaults\n      {\n        xAxis: {},\n        yAxis: {},\n        tooltip: {\n          formatter: '{c}'\n        },\n      }\n    end\n\n    def x_axis\n      {}\n    end\n\n    def y_axis\n      {}\n    end    \n  \n  end  \nend"
  },
  {
    "path": "lib/rails_charts/stacked_bar_chart.rb",
    "content": "module RailsCharts\n  class StackedBarChart < BarChart\n\n    def defaults\n      super.deep_merge({\n        series: {\n          stack: 'stack',\n        },\n      })\n    end\n  \n  end\nend"
  },
  {
    "path": "lib/rails_charts/version.rb",
    "content": "module RailsCharts\n  VERSION = \"1.0.0\"\nend\n"
  },
  {
    "path": "lib/rails_charts.rb",
    "content": "require \"rails_charts/version\"\nrequire \"rails_charts/ruby_ext\"\nrequire \"rails_charts/javascript\"\nrequire \"rails_charts/engine\"\nrequire \"rails_charts/base_chart\"\nrequire \"rails_charts/line_chart\"\nrequire \"rails_charts/bar_chart\"\nrequire \"rails_charts/stacked_bar_chart\"\nrequire \"rails_charts/pie_chart\"\nrequire \"rails_charts/donut_chart\"\nrequire \"rails_charts/area_chart\"\nrequire \"rails_charts/radar_chart\"\nrequire \"rails_charts/calendar_chart\"\nrequire \"rails_charts/funnel_chart\"\nrequire \"rails_charts/gauge_chart\"\nrequire \"rails_charts/scatter_chart\"\nrequire \"rails_charts/parallel_chart\"\nrequire \"rails_charts/sankey_chart\"\nrequire \"rails_charts/candlestick_chart\"\nrequire \"rails_charts/custom_chart\"\nrequire \"rails_charts/helpers\"\n\nmodule RailsCharts\n  using RubyExt\n\n  class << self\n    attr_accessor :options, :defaults\n\n    def js(code)\n      RailsCharts::Javascript.new code\n    end\n  end\n\n  self.options = {\n    theme: nil,\n    width: \"100%\",\n    height: \"450px\",\n    css_klass: \"rails_charts\",\n    style: nil\n  }\n\n  self.defaults = {\n    # RailsCharts::DonutChart => {\n    #   ...\n    # }\n  }\nend\n"
  },
  {
    "path": "lib/tasks/rails_charts_tasks.rake",
    "content": "def run_rails_charts_install_template(path)\n  system \"#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path(\"../install/#{path}.rb\", __dir__)}\"\nend\n\nnamespace :rails_charts do\n  desc \"Install Rails Charts into the app\"\n  task :install do\n    if Rails.root.join(\"config/importmap.rb\").exist?\n      Rake::Task[\"rails_charts:install:importmap\"].invoke\n    elsif Rails.root.join(\"package.json\").exist?\n      Rake::Task[\"rails_charts:install:node\"].invoke\n    elsif defined?(Sprockets)\n      Rake::Task[\"rails_charts:install:sprockets\"].invoke\n    else\n      puts \"Unable to install ECharts with current configuration\"\n    end\n  end\n\n  namespace :install do\n    desc \"Install Rails Charts into the app with asset pipeline\"\n    task :importmap do\n      run_rails_charts_install_template \"with_importmap\"\n    end\n\n    desc \"Install Rails Charts into the app with webpacker/esbuild\"\n    task :node do\n      run_rails_charts_install_template \"with_node\"\n    end\n\n    desc \"Install Rails Charts into the app with sprockets\"\n    task :sprockets do\n      run_rails_charts_install_template \"with_sprockets\"\n    end\n  end\nend\n"
  },
  {
    "path": "rails_charts.gemspec",
    "content": "require_relative \"lib/rails_charts/version\"\n\nGem::Specification.new do |spec|\n  spec.name        = \"rails_charts\"\n  spec.version     = RailsCharts::VERSION\n  spec.authors     = [\"Igor Kasyanchuk\", \"Liubomyr Manastyretskyi\"]\n  spec.email       = [\"igorkasyanchuk@gmail.com\", \"manastyretskyi@gmail.com\"]\n  spec.homepage    = \"https://github.com/railsjazz/rails_charts\"\n  spec.summary     = \"One more solution to create charts in Ruby on Rails application\"\n  spec.description = \"One more solution to create charts in Ruby on Rails application\"\n  spec.license     = \"MIT\"\n\n  spec.metadata[\"homepage_uri\"] = spec.homepage\n\n  spec.files = Dir.chdir(File.expand_path(__dir__)) do\n    Dir[\"{app,config,db,lib,vendor}/**/*\", \"MIT-LICENSE\", \"Rakefile\", \"README.md\"]\n  end\n\n  spec.add_dependency \"rails\"\n\n  spec.add_development_dependency \"faker\"\n  spec.add_development_dependency \"pry\"\n  spec.add_development_dependency \"groupdate\"\n  spec.add_development_dependency \"puma\"\n  spec.add_development_dependency \"sprockets-rails\"\n  spec.add_development_dependency \"rspec-rails\"\n  spec.add_development_dependency \"simplecov\"\nend\n"
  },
  {
    "path": "spec/charts/area_chart_spec.rb",
    "content": "require_relative \"../rails_helper\"\n\ndescribe RailsCharts::AreaChart do\n  before do\n    User.create(age: 10, role: 'admin', salary: 100)\n    User.create(age: 20, role: 'moderator', salary: 20)\n  end\n\n  describe \"#area_chart 1\" do\n    it \"build_options\" do\n      chart = RailsCharts::AreaChart.new({10 => 42, 20 => 4242})\n      expect(chart.build_options).to eq({\n        :series=>[\n          {:areaStyle=>{}, :data=>[[10,42], [20,4242]], :stack=>\"Total\", :type=>\"line\"}\n        ], \n        :tooltip=>{:trigger=>\"axis\"},\n        :toolbox => {:feature=>{:saveAsImage=>{}}},\n        :xAxis=>{:type=>\"category\", :boundaryGap=>false},\n        :yAxis=>{:type=>\"value\"}\n      })\n    end\n  end\n\n  describe \"#area_chart 2\" do\n    it \"for time\" do\n      DataPoint.create(event_date: Date.yesterday, value: 1)\n      DataPoint.create(event_date: Date.current, value: 2)\n      DataPoint.create(event_date: Date.tomorrow, value: 3)\n\n      chart = RailsCharts::AreaChart.new(DataPoint.pluck(:event_date, :value), {\n        options: {\n          xAxis: {\n            type: 'time'\n          },\n          series: {\n            type: 'time'\n          }\n        }\n      })\n      expect(chart.build_options).to eq({\n        :series=>[\n          {:areaStyle=>{}, :data=>[[Date.yesterday, 1], [Date.current, 2], [Date.tomorrow, 3]], :stack=>\"Total\", :type=>\"time\"}\n        ], \n        :tooltip=>{:trigger=>\"axis\"},\n        :toolbox => {:feature=>{:saveAsImage=>{}}},\n        :xAxis=>{:type=>\"time\", :boundaryGap=>false},\n        :yAxis=>{:type=>\"value\"}\n      })\n    end\n  end\n \n\nend"
  },
  {
    "path": "spec/charts/line_chart_spec.rb",
    "content": "require_relative \"../rails_helper\"\n\ndescribe RailsCharts::LineChart do\n  before do\n    User.create(age: 10, role: 'admin', salary: 100, created_at: Date.yesterday)\n    User.create(age: 11, role: 'admin', salary: 101, created_at: Date.current)\n    User.create(age: 20, role: 'moderator', salary: 20, created_at: Date.yesterday)\n    User.create(age: 21, role: 'moderator', salary: 21, created_at: Date.current)\n    User.create(age: 22, role: 'moderator', salary: 22, created_at: Date.current)\n  end\n\n  describe \"#line_chart 1 hash\" do\n    it \"build_options\" do\n      data = {10 => 42, 20 => 4242}\n      chart = RailsCharts::LineChart.new(data, {debug: false, options: { title: { text: \"Hello\" } }})\n      expect(chart.build_options).to eq({\n        :series=>[\n          {:data=>[42, 4242], :type=>\"line\"}\n        ],\n        title: { text: \"Hello\" },\n        :toolbox => {:feature=>{:saveAsImage=>{}}},\n        :tooltip=>{:trigger=>\"axis\"},\n        :xAxis=>{data: [10, 20], :type=>\"category\"},\n        :yAxis=>{:type=>\"value\"}\n      })\n    end\n  end\n\n  describe '#line_chart 2 multi' do\n    it 'works' do\n      # [{:name=>\"admin\", :data=>{Thu, 21 Apr 2022=>1, Fri, 22 Apr 2022=>1}}, {:name=>\"moderator\", :data=>{Thu, 21 Apr 2022=>1, Fri, 22 Apr 2022=>2}}]\n      expect(User.count).to eq(5)\n      data = User.distinct.pluck(:role).map{|e| {name: e, data: User.where(role: e).group_by_day(:created_at).count}}\n      chart = RailsCharts::LineChart.new(data, { debug: false })\n      expect(chart.build_options).to eq({\n        :series=>[\n          {:data=>[1, 1], :type=>\"line\", name: 'admin'},\n          {:data=>[1, 2], :type=>\"line\", name: 'moderator'}\n        ],\n        :toolbox=>{:feature=>{:saveAsImage=>{}}},\n        :tooltip=>{:trigger=>\"axis\"},\n        :xAxis=>{\n          data: [Date.yesterday, Date.current],\n          type: \"category\"\n        },\n        :yAxis=>{:type=>\"value\"}\n      })\n    end\n  end\n\n  describe \"#line_chart with JS formatter\" do\n    it \"build_options\" do\n      data = {10 => 42, 20 => 4242}\n      chart = RailsCharts::LineChart.new(data, {\n        options: {\n          tooltip: {\n            valueFormatter: RailsCharts::Javascript.new(\"(value) => '$' + value.toFixed(2)\")\n          }\n        }\n      })\n      expect(chart.option).to include(\":(value) => '$' + value.toFixed(2)\")\n    end\n  end  \n\nend"
  },
  {
    "path": "spec/controllers/home_controller_spec.rb",
    "content": "require_relative \"../rails_helper\"\n\ndescribe HomeController do\n  render_views\n\n  before do\n    User.create(age: 10, role: 'admin', salary: 100)\n    User.create(age: 20, role: 'moderator', salary: 20)\n    User.create(age: 30, role: 'user', salary: 50)\n    DataPoint.create(value: 50, event_date: Date.yesterday)\n    DataPoint.create(value: 100, event_date: Date.current)\n    Account.create(name: 'One', priority: 100)\n    Account.create(name: 'Two', priority: 200)\n  end\n\n  describe \"#index\" do\n    it \"works\" do\n      get :index\n      expect(response).to be_successful\n    end\n  end\n\nend"
  },
  {
    "path": "spec/helpers/helpers_spec.rb",
    "content": "require_relative \"../rails_helper\"\n\ndescribe RailsCharts::Helpers do\n  before do\n    User.create(age: 10, role: 'admin', salary: 100)\n    User.create(age: 20, role: 'moderator', salary: 20)\n    User.create(age: 30, role: 'user', salary: 50)\n  end\n\n  describe \"#line_chart\" do\n    it \"works\" do\n      expect { helper.line_chart(User.group(:age).count, width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n\n    it \"works multiline\" do\n      data = User.distinct.pluck(:role).map{|e| {name: e, data: User.where(role: e).group_by_day(:created_at).count} }\n      expect { helper.line_chart(data, width: '1000px', theme: 'infographic') }.not_to raise_error\n    end\n  end\n\n  describe \"#area_chart\" do\n    it \"works\" do\n      expect { helper.area_chart(User.group(:age).count, width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n  end\n\n  describe \"#bar_chart\" do\n    it \"works\" do\n      expect { helper.bar_chart(User.group(:age).count, width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n\n    it \"works (vertical)\" do\n      expect { helper.bar_chart(User.group(:age).count, vertical: true, style: \"margin: 0 auto\", width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end    \n  end\n\n  describe \"#pie_chart\" do\n    it \"works\" do\n      expect { helper.pie_chart(User.group(:age).count, class: 'some_ui_class', width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n  end\n\n  describe \"donut_chart\" do\n    it \"works\" do\n      expect { helper.donut_chart(User.group(:age).count, radius: ['50%', '70%'], width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n  end\n\n  describe \"radar_chart\" do\n    it \"works\" do\n      expect { helper.radar_chart(User.get_data_for_radar_chart, width: '1000px', height: '300px', theme: 'vintage') }.not_to raise_error\n    end\n  end\n\n  describe \"calendar_chart\" do\n    it \"works\" do\n      expect { helper.calendar_chart(User.get_data_for_radar_chart) }.not_to raise_error\n    end\n  end  \n\n  describe \"funnel_chart\" do\n    it \"works\" do\n      expect { helper.funnel_chart(User.get_funnel_sample_data) }.not_to raise_error\n    end\n  end \n\n  describe \"gauge_chart\" do\n    it \"works\" do\n      expect { helper.funnel_chart(User.get_gauge_sample_data) }.not_to raise_error\n    end\n  end\n\n  describe \"custom_chart\" do\n    it \"works\" do\n      options = {\n        series: [\n          {\n            type: 'gauge',\n            center: ['50%', '60%'],\n            startAngle: 200,\n            endAngle: -20,\n            min: 0,\n            max: 60,\n            splitNumber: 12,\n            itemStyle: {\n              color: '#FFAB91'\n            },\n            progress: {\n              show: true,\n              width: 30\n            },\n            pointer: {\n              show: false\n            },\n            axisLine: {\n              lineStyle: {\n                width: 30\n              }\n            },\n            axisTick: {\n              distance: -45,\n              splitNumber: 5,\n              lineStyle: {\n                width: 2,\n                color: '#999'\n              }\n            },\n            splitLine: {\n              distance: -52,\n              length: 14,\n              lineStyle: {\n                width: 3,\n                color: '#999'\n              }\n            },\n            axisLabel: {\n              distance: -20,\n              color: '#999',\n              fontSize: 20\n            },\n            anchor: {\n              show: false\n            },\n            title: {\n              show: false\n            },\n            detail: {\n              valueAnimation: true,\n              width: '60%',\n              lineHeight: 40,\n              borderRadius: 8,\n              offsetCenter: [0, '-15%'],\n              fontSize: 60,\n              fontWeight: 'bolder',\n              formatter: '{value} °C',\n              color: 'auto'\n            },\n            data: [\n              {\n                value: 20\n              }\n            ]\n          },\n          {\n            type: 'gauge',\n            center: ['50%', '60%'],\n            startAngle: 200,\n            endAngle: -20,\n            min: 0,\n            max: 60,\n            itemStyle: {\n              color: '#FD7347'\n            },\n            progress: {\n              show: true,\n              width: 8\n            },\n            pointer: {\n              show: false\n            },\n            axisLine: {\n              show: false\n            },\n            axisTick: {\n              show: false\n            },\n            splitLine: {\n              show: false\n            },\n            axisLabel: {\n              show: false\n            },\n            detail: {\n              show: false\n            },\n            data: [\n              {\n                value: 20\n              }\n            ]\n          }\n        ]\n      }\n\n      expect { helper.custom_chart(options)}.not_to raise_error\n    end\n  end   \n\nend"
  },
  {
    "path": "spec/models/simple_spec.rb",
    "content": "require_relative \"../rails_helper\"\n\ndescribe \"Charts\" do\n  using RailsCharts::RubyExt\n\n  it 'works' do\n    c = RailsCharts::LineChart.new({Date.yesterday => 100, Date.current => 200, Date.tomorrow => 300})\n    expect { c.js_code }.not_to raise_error\n  end\n\n  it 'can do nested merge' do\n    expect([{}, {a: 1}].deep_merge({b: 1})).to eq([{:b=>1}, {:a=>1, :b=>1}])\n  end\n\n  describe \"deep merge\" do\n    it 'works' do\n      conf = {\n        tooltip: {\n          show: true\n        },\n        series: {\n          data: {\n            color: 'red'\n          }\n        }\n      }\n\n      options = {\n        tooltip: {\n          text: \"hello\"\n        },\n        series: {\n          name: 'xxxx',\n          data: {\n            value: 1\n          }\n        }\n      }\n\n      expect(conf.deep_merge(options)).to eq({\n        tooltip: {\n          show: true,\n          text: \"hello\"\n        },\n        series: {\n          name: 'xxxx',\n          data: {\n            color: 'red',\n            value: 1\n          }\n        }\n      })\n    end\n  end\nend"
  },
  {
    "path": "spec/rails_helper.rb",
    "content": "# This file is copied to spec/ when you run 'rails generate rspec:install'\nrequire 'spec_helper'\nENV['RAILS_ENV'] ||= 'test'\n\nrequire 'simplecov'\nSimpleCov.start 'rails'\n\nrequire_relative '../test/dummy/config/environment'\n# Prevent database truncation if the environment is production\nabort(\"The Rails environment is running in production mode!\") if Rails.env.production?\nrequire 'rspec/rails'\n\n# Add additional requires below this line. Rails is not loaded until this point!\n\n# Requires supporting ruby files with custom matchers and macros, etc, in\n# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are\n# run as spec files by default. This means that files in spec/support that end\n# in _spec.rb will both be required and run as specs, causing the specs to be\n# run twice. It is recommended that you do not name files matching this glob to\n# end with _spec.rb. You can configure this pattern with the --pattern\n# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.\n#\n# The following line is provided for convenience purposes. It has the downside\n# of increasing the boot-up time by auto-requiring all files in the support\n# directory. Alternatively, in the individual `*_spec.rb` files, manually\n# require only the support files necessary.\n#\n# Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }\n\n# Checks for pending migrations and applies them before tests are run.\n# If you are not using ActiveRecord, you can remove these lines.\nbegin\n  ActiveRecord::Migration.maintain_test_schema!\nrescue ActiveRecord::PendingMigrationError => e\n  puts e.to_s.strip\n  exit 1\nend\nRSpec.configure do |config|\n  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures\n  config.fixture_path = \"#{::Rails.root}/spec/fixtures\"\n\n  # If you're not using ActiveRecord, or you'd prefer not to run each of your\n  # examples within a transaction, remove the following line or assign false\n  # instead of true.\n  config.use_transactional_fixtures = true\n\n  # You can uncomment this line to turn off ActiveRecord support entirely.\n  # config.use_active_record = false\n\n  # RSpec Rails can automatically mix in different behaviours to your tests\n  # based on their file location, for example enabling you to call `get` and\n  # `post` in specs under `spec/controllers`.\n  #\n  # You can disable this behaviour by removing the line below, and instead\n  # explicitly tag your specs with their type, e.g.:\n  #\n  #     RSpec.describe UsersController, type: :controller do\n  #       # ...\n  #     end\n  #\n  # The different available types are documented in the features, such as in\n  # https://relishapp.com/rspec/rspec-rails/docs\n  config.infer_spec_type_from_file_location!\n\n  # Filter lines from Rails gems in backtraces.\n  config.filter_rails_from_backtrace!\n  # arbitrary gems may also be filtered via:\n  # config.filter_gems_from_backtrace(\"gem name\")\nend\n"
  },
  {
    "path": "spec/spec_helper.rb",
    "content": "# This file was generated by the `rails generate rspec:install` command. Conventionally, all\n# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.\n# The generated `.rspec` file contains `--require spec_helper` which will cause\n# this file to always be loaded, without a need to explicitly require it in any\n# files.\n#\n# Given that it is always loaded, you are encouraged to keep this file as\n# light-weight as possible. Requiring heavyweight dependencies from this file\n# will add to the boot time of your test suite on EVERY test run, even for an\n# individual file that may not need all of that loaded. Instead, consider making\n# a separate helper file that requires the additional dependencies and performs\n# the additional setup, and require it from the spec files that actually need\n# it.\n#\n# See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration\nRSpec.configure do |config|\n  # rspec-expectations config goes here. You can use an alternate\n  # assertion/expectation library such as wrong or the stdlib/minitest\n  # assertions if you prefer.\n  config.expect_with :rspec do |expectations|\n    # This option will default to `true` in RSpec 4. It makes the `description`\n    # and `failure_message` of custom matchers include text for helper methods\n    # defined using `chain`, e.g.:\n    #     be_bigger_than(2).and_smaller_than(4).description\n    #     # => \"be bigger than 2 and smaller than 4\"\n    # ...rather than:\n    #     # => \"be bigger than 2\"\n    expectations.include_chain_clauses_in_custom_matcher_descriptions = true\n  end\n\n  # rspec-mocks config goes here. You can use an alternate test double\n  # library (such as bogus or mocha) by changing the `mock_with` option here.\n  config.mock_with :rspec do |mocks|\n    # Prevents you from mocking or stubbing a method that does not exist on\n    # a real object. This is generally recommended, and will default to\n    # `true` in RSpec 4.\n    mocks.verify_partial_doubles = true\n  end\n\n  # This option will default to `:apply_to_host_groups` in RSpec 4 (and will\n  # have no way to turn it off -- the option exists only for backwards\n  # compatibility in RSpec 3). It causes shared context metadata to be\n  # inherited by the metadata hash of host groups and examples, rather than\n  # triggering implicit auto-inclusion in groups with matching metadata.\n  config.shared_context_metadata_behavior = :apply_to_host_groups\n\n# The settings below are suggested to provide a good initial experience\n# with RSpec, but feel free to customize to your heart's content.\n=begin\n  # This allows you to limit a spec run to individual examples or groups\n  # you care about by tagging them with `:focus` metadata. When nothing\n  # is tagged with `:focus`, all examples get run. RSpec also provides\n  # aliases for `it`, `describe`, and `context` that include `:focus`\n  # metadata: `fit`, `fdescribe` and `fcontext`, respectively.\n  config.filter_run_when_matching :focus\n\n  # Allows RSpec to persist some state between runs in order to support\n  # the `--only-failures` and `--next-failure` CLI options. We recommend\n  # you configure your source control system to ignore this file.\n  config.example_status_persistence_file_path = \"spec/examples.txt\"\n\n  # Limits the available syntax to the non-monkey patched syntax that is\n  # recommended. For more details, see:\n  # https://relishapp.com/rspec/rspec-core/docs/configuration/zero-monkey-patching-mode\n  config.disable_monkey_patching!\n\n  # Many RSpec users commonly either run the entire suite or an individual\n  # file, and it's useful to allow more verbose output when running an\n  # individual spec file.\n  if config.files_to_run.one?\n    # Use the documentation formatter for detailed output,\n    # unless a formatter has already been configured\n    # (e.g. via a command-line flag).\n    config.default_formatter = \"doc\"\n  end\n\n  # Print the 10 slowest examples and example groups at the\n  # end of the spec run, to help surface which specs are running\n  # particularly slow.\n  config.profile_examples = 10\n\n  # Run specs in random order to surface order dependencies. If you find an\n  # order dependency and want to debug it, you can fix the order by providing\n  # the seed, which is printed after each run.\n  #     --seed 1234\n  config.order = :random\n\n  # Seed global randomization in this process using the `--seed` CLI option.\n  # Setting this allows you to use `--seed` to deterministically reproduce\n  # test failures related to randomization by passing the same `--seed` value\n  # as the one that triggered the failure.\n  Kernel.srand config.seed\n=end\nend\n"
  },
  {
    "path": "test/dummy/Rakefile",
    "content": "# Add your own tasks in files placed in lib/tasks ending in .rake,\n# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.\n\nrequire_relative \"config/application\"\n\nRails.application.load_tasks\n"
  },
  {
    "path": "test/dummy/app/assets/config/manifest.js",
    "content": "  //= link_tree ../images\n  //= link_directory ../javascripts .js\n  //= link_directory ../stylesheets .css"
  },
  {
    "path": "test/dummy/app/assets/images/.keep",
    "content": ""
  },
  {
    "path": "test/dummy/app/assets/javascripts/application.js",
    "content": "//= require echarts.min.js\n//= require echarts/theme/vintage.js\n//= require echarts/theme/dark.js\n//= require echarts/theme/roma.js\n//= require echarts/theme/red.js\n//= require echarts/theme/jazz.js\n//= require echarts/theme/royal.js\n//= require echarts/theme/sakura.js\n//= require echarts/theme/shine.js\n//= require echarts/theme/london.js\n//= require echarts/theme/infographic.js\n//= require echarts/theme/fruit.js\n//= require echarts/theme/macarons.js\n//= require echarts/i18n/langES.js\n//= require echarts/i18n/langES-obj.js\n//= require echarts/i18n/langUK.js\n//= require echarts/i18n/langUK-obj.js\n"
  },
  {
    "path": "test/dummy/app/assets/stylesheets/application.css",
    "content": "/* Application styles */\n\nbody {\n  /* padding-bottom: 200px !important;\n  background-color: #cc5577;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 100 60'%3E%3Cg %3E%3Crect fill='%23cc5577' width='11' height='11'/%3E%3Crect fill='%23ce5776' x='10' width='11' height='11'/%3E%3Crect fill='%23d05a76' y='10' width='11' height='11'/%3E%3Crect fill='%23d15c75' x='20' width='11' height='11'/%3E%3Crect fill='%23d35f74' x='10' y='10' width='11' height='11'/%3E%3Crect fill='%23d46174' y='20' width='11' height='11'/%3E%3Crect fill='%23d66473' x='30' width='11' height='11'/%3E%3Crect fill='%23d76673' x='20' y='10' width='11' height='11'/%3E%3Crect fill='%23d96972' x='10' y='20' width='11' height='11'/%3E%3Crect fill='%23da6c72' y='30' width='11' height='11'/%3E%3Crect fill='%23db6e71' x='40' width='11' height='11'/%3E%3Crect fill='%23dc7171' x='30' y='10' width='11' height='11'/%3E%3Crect fill='%23dd7471' x='20' y='20' width='11' height='11'/%3E%3Crect fill='%23de7671' x='10' y='30' width='11' height='11'/%3E%3Crect fill='%23df7971' y='40' width='11' height='11'/%3E%3Crect fill='%23e07c71' x='50' width='11' height='11'/%3E%3Crect fill='%23e17e71' x='40' y='10' width='11' height='11'/%3E%3Crect fill='%23e28171' x='30' y='20' width='11' height='11'/%3E%3Crect fill='%23e38471' x='20' y='30' width='11' height='11'/%3E%3Crect fill='%23e38771' x='10' y='40' width='11' height='11'/%3E%3Crect fill='%23e48972' y='50' width='11' height='11'/%3E%3Crect fill='%23e58c72' x='60' width='11' height='11'/%3E%3Crect fill='%23e58f73' x='50' y='10' width='11' height='11'/%3E%3Crect fill='%23e69173' x='40' y='20' width='11' height='11'/%3E%3Crect fill='%23e69474' x='30' y='30' width='11' height='11'/%3E%3Crect fill='%23e79775' x='20' y='40' width='11' height='11'/%3E%3Crect fill='%23e79a75' x='10' y='50' width='11' height='11'/%3E%3Crect fill='%23e89c76' x='70' width='11' height='11'/%3E%3Crect fill='%23e89f77' x='60' y='10' width='11' height='11'/%3E%3Crect fill='%23e8a278' x='50' y='20' width='11' height='11'/%3E%3Crect fill='%23e9a47a' x='40' y='30' width='11' height='11'/%3E%3Crect fill='%23e9a77b' x='30' y='40' width='11' height='11'/%3E%3Crect fill='%23e9aa7c' x='20' y='50' width='11' height='11'/%3E%3Crect fill='%23e9ac7e' x='80' width='11' height='11'/%3E%3Crect fill='%23eaaf7f' x='70' y='10' width='11' height='11'/%3E%3Crect fill='%23eab281' x='60' y='20' width='11' height='11'/%3E%3Crect fill='%23eab482' x='50' y='30' width='11' height='11'/%3E%3Crect fill='%23eab784' x='40' y='40' width='11' height='11'/%3E%3Crect fill='%23eaba86' x='30' y='50' width='11' height='11'/%3E%3Crect fill='%23ebbc88' x='90' width='11' height='11'/%3E%3Crect fill='%23ebbf8a' x='80' y='10' width='11' height='11'/%3E%3Crect fill='%23ebc18c' x='70' y='20' width='11' height='11'/%3E%3Crect fill='%23ebc48e' x='60' y='30' width='11' height='11'/%3E%3Crect fill='%23ebc790' x='50' y='40' width='11' height='11'/%3E%3Crect fill='%23ebc992' x='40' y='50' width='11' height='11'/%3E%3Crect fill='%23ebcc94' x='90' y='10' width='11' height='11'/%3E%3Crect fill='%23ebce97' x='80' y='20' width='11' height='11'/%3E%3Crect fill='%23ebd199' x='70' y='30' width='11' height='11'/%3E%3Crect fill='%23ecd39c' x='60' y='40' width='11' height='11'/%3E%3Crect fill='%23ecd69e' x='50' y='50' width='11' height='11'/%3E%3Crect fill='%23ecd8a1' x='90' y='20' width='11' height='11'/%3E%3Crect fill='%23ecdba4' x='80' y='30' width='11' height='11'/%3E%3Crect fill='%23ecdda6' x='70' y='40' width='11' height='11'/%3E%3Crect fill='%23ece0a9' x='60' y='50' width='11' height='11'/%3E%3Crect fill='%23ede2ac' x='90' y='30' width='11' height='11'/%3E%3Crect fill='%23ede4af' x='80' y='40' width='11' height='11'/%3E%3Crect fill='%23ede7b2' x='70' y='50' width='11' height='11'/%3E%3Crect fill='%23ede9b5' x='90' y='40' width='11' height='11'/%3E%3Crect fill='%23eeecb8' x='80' y='50' width='11' height='11'/%3E%3Crect fill='%23EEB' x='90' y='50' width='11' height='11'/%3E%3C/g%3E%3C/svg%3E\");\n  background-attachment: fixed;\n  background-size: cover; */\n\n  background: gray;\n\n  color: white;\n  font-size: 30px;\n}\n\n.title, .subtitle {\n  color: white !important;\n  font-weight: bold;\n  font-size: 2rem !important;\n}\n\n.subtitle {\n  font-size: 1.5rem !important;\n}\n\nhtml .box {\n  background-color: #fff;\n  border-radius: 0px;\n  box-shadow: none;\n  display: block;\n}"
  },
  {
    "path": "test/dummy/app/channels/application_cable/channel.rb",
    "content": "module ApplicationCable\n  class Channel < ActionCable::Channel::Base\n  end\nend\n"
  },
  {
    "path": "test/dummy/app/channels/application_cable/connection.rb",
    "content": "module ApplicationCable\n  class Connection < ActionCable::Connection::Base\n  end\nend\n"
  },
  {
    "path": "test/dummy/app/controllers/application_controller.rb",
    "content": "class ApplicationController < ActionController::Base\nend\n"
  },
  {
    "path": "test/dummy/app/controllers/concerns/.keep",
    "content": ""
  },
  {
    "path": "test/dummy/app/controllers/home_controller.rb",
    "content": "class HomeController < ApplicationController\n  def index\n  end\nend\n"
  },
  {
    "path": "test/dummy/app/helpers/application_helper.rb",
    "content": "module ApplicationHelper\nend\n"
  },
  {
    "path": "test/dummy/app/helpers/home_helper.rb",
    "content": "module HomeHelper\nend\n"
  },
  {
    "path": "test/dummy/app/jobs/application_job.rb",
    "content": "class ApplicationJob < ActiveJob::Base\n  # Automatically retry jobs that encountered a deadlock\n  # retry_on ActiveRecord::Deadlocked\n\n  # Most jobs are safe to ignore if the underlying records are no longer available\n  # discard_on ActiveJob::DeserializationError\nend\n"
  },
  {
    "path": "test/dummy/app/mailers/application_mailer.rb",
    "content": "class ApplicationMailer < ActionMailer::Base\n  default from: \"from@example.com\"\n  layout \"mailer\"\nend\n"
  },
  {
    "path": "test/dummy/app/models/account.rb",
    "content": "# == Schema Information\n#\n# Table name: accounts\n#\n#  id         :integer          not null, primary key\n#  name       :string\n#  priority   :integer\n#  created_at :datetime         not null\n#  updated_at :datetime         not null\n#\nclass Account < ApplicationRecord\n\n  scope :high_priority, -> { where(\"priority >= 60\") }\n  scope :low_priority, -> { where(\"priority < 60\") }\n\n  def Account.populate\n    Account.delete_all\n    2000.times do\n      dob = Date.current - rand(100).years - rand(400).days\n      user = Account.create(\n        name: Faker::Name.name,\n        priority: rand(100),\n        created_at: Time.now - rand(100000).minutes\n      )\n    end\n  end\nend\n"
  },
  {
    "path": "test/dummy/app/models/application_record.rb",
    "content": "class ApplicationRecord < ActiveRecord::Base\n  primary_abstract_class\nend\n"
  },
  {
    "path": "test/dummy/app/models/commit.rb",
    "content": "class Commit < ApplicationRecord\n\n  def Commit.generate_random_data\n    Commit.delete_all\n\n    5000.times do |e|\n      Commit.create(created_at: rand(700).days.ago)\n    end    \n\n    2000.times do |e|\n      Commit.create(created_at: rand(100..300).days.ago)\n    end\n\n    100.times do |e|\n      Commit.create(created_at: rand(200..300).days.ago)\n    end\n\n    100.times do |e|\n      Commit.create(created_at: rand(40..100).days.ago)\n    end\n\n    50.times do |e|\n      Commit.create(created_at: rand(50..80).days.ago)\n    end    \n  end\n\n  def Commit.for_calendar_chart\n    {\n      data: Commit.group_by_day(:created_at).count.to_a\n    }\n  end\n\nend\n"
  },
  {
    "path": "test/dummy/app/models/concerns/.keep",
    "content": ""
  },
  {
    "path": "test/dummy/app/models/data.rb",
    "content": "class Data\n  def Data.populate\n    2000.times do\n      dob = Date.current - rand(100).years - rand(400).days\n      user = User.create(\n        name: Faker::Name.name,\n        country: Faker::Address.country,\n        age: Date.current.year - dob.year,\n        role: ['admin', 'user', 'moderator', 'user', 'moderator', 'user', 'moderator', 'sales', 'manager', 'security'].sample,\n        salary: 200 + rand(1_000),\n        dob: dob,\n        created_at: Time.now - rand(10000).minutes\n      )\n    end\n\n    User.where(role: 'user').find_each do |user|\n      user.salary = user.salary * 0.5\n      user.age = rand(30)\n      user.save\n    end\n\n    User.where(role: 'admin').find_each do |user|\n      user.salary = user.salary * 1.4\n      user.age += rand(30)\n      user.save\n    end\n\n    DataPoint.generate(1_000)\n    Account.populate\n    Stat.populate\n    Commit.generate_random_data\n  end\nend\n"
  },
  {
    "path": "test/dummy/app/models/data_point.rb",
    "content": "# == Schema Information\n#\n# Table name: data_points\n#\n#  id         :integer          not null, primary key\n#  value      :integer\n#  event_date :date\n#\nclass DataPoint < ApplicationRecord\n\n  def DataPoint.generate(n = 1000)\n    DataPoint.delete_all\n\n    start = 30.years.ago\n    DataPoint.data_set(n).each_with_index do |value, i|\n      DataPoint.create(\n        value: value,\n        event_date: start + i.days\n      )\n    end\n  end\n\n  def DataPoint.data_set(n = 1000)\n    result = []\n    n.times do |e|\n      value = Math.sin(0.005 * Math::PI * (e % n) / Math::PI) * 100000000\n      result << (value / 100000).to_i + rand(n/10)\n    end\n    result\n  end\n\n  def DataPoint.data_for_candlestick\n    [\n      ['2013/1/24', 2320.26, 2320.26, 2287.3, 2362.94],\n      ['2013/1/25', 2300, 2291.3, 2288.26, 2308.38],\n      ['2013/1/28', 2295.35, 2346.5, 2295.35, 2346.92],\n      ['2013/1/29', 2347.22, 2358.98, 2337.35, 2363.8],\n      ['2013/1/30', 2360.75, 2382.48, 2347.89, 2383.76],\n      ['2013/1/31', 2383.43, 2385.42, 2371.23, 2391.82],\n      ['2013/2/1', 2377.41, 2419.02, 2369.57, 2421.15],\n      ['2013/2/4', 2425.92, 2428.15, 2417.58, 2440.38],\n      ['2013/2/5', 2411, 2433.13, 2403.3, 2437.42],\n      ['2013/2/6', 2432.68, 2434.48, 2427.7, 2441.73],\n      ['2013/2/7', 2430.69, 2418.53, 2394.22, 2433.89],\n      ['2013/2/8', 2416.62, 2432.4, 2414.4, 2443.03],\n      ['2013/2/18', 2441.91, 2421.56, 2415.43, 2444.8],\n      ['2013/2/19', 2420.26, 2382.91, 2373.53, 2427.07],\n      ['2013/2/20', 2383.49, 2397.18, 2370.61, 2397.94],\n      ['2013/2/21', 2378.82, 2325.95, 2309.17, 2378.82],\n      ['2013/2/22', 2322.94, 2314.16, 2308.76, 2330.88],\n      ['2013/2/25', 2320.62, 2325.82, 2315.01, 2338.78],\n      ['2013/2/26', 2313.74, 2293.34, 2289.89, 2340.71],\n      ['2013/2/27', 2297.77, 2313.22, 2292.03, 2324.63],\n      ['2013/2/28', 2322.32, 2365.59, 2308.92, 2366.16],\n      ['2013/3/1', 2364.54, 2359.51, 2330.86, 2369.65],\n      ['2013/3/4', 2332.08, 2273.4, 2259.25, 2333.54],\n      ['2013/3/5', 2274.81, 2326.31, 2270.1, 2328.14],\n      ['2013/3/6', 2333.61, 2347.18, 2321.6, 2351.44],\n      ['2013/3/7', 2340.44, 2324.29, 2304.27, 2352.02],\n      ['2013/3/8', 2326.42, 2318.61, 2314.59, 2333.67],\n      ['2013/3/11', 2314.68, 2310.59, 2296.58, 2320.96],\n      ['2013/3/12', 2309.16, 2286.6, 2264.83, 2333.29],\n      ['2013/3/13', 2282.17, 2263.97, 2253.25, 2286.33],\n      ['2013/3/14', 2255.77, 2270.28, 2253.31, 2276.22],\n      ['2013/3/15', 2269.31, 2278.4, 2250, 2312.08],\n      ['2013/3/18', 2267.29, 2240.02, 2239.21, 2276.05],\n      ['2013/3/19', 2244.26, 2257.43, 2232.02, 2261.31],\n      ['2013/3/20', 2257.74, 2317.37, 2257.42, 2317.86],\n      ['2013/3/21', 2318.21, 2324.24, 2311.6, 2330.81],\n      ['2013/3/22', 2321.4, 2328.28, 2314.97, 2332],\n      ['2013/3/25', 2334.74, 2326.72, 2319.91, 2344.89],\n      ['2013/3/26', 2318.58, 2297.67, 2281.12, 2319.99],\n      ['2013/3/27', 2299.38, 2301.26, 2289, 2323.48],\n      ['2013/3/28', 2273.55, 2236.3, 2232.91, 2273.55],\n      ['2013/3/29', 2238.49, 2236.62, 2228.81, 2246.87],\n      ['2013/4/1', 2229.46, 2234.4, 2227.31, 2243.95],\n      ['2013/4/2', 2234.9, 2227.74, 2220.44, 2253.42],\n      ['2013/4/3', 2232.69, 2225.29, 2217.25, 2241.34],\n      ['2013/4/8', 2196.24, 2211.59, 2180.67, 2212.59],\n      ['2013/4/9', 2215.47, 2225.77, 2215.47, 2234.73],\n      ['2013/4/10', 2224.93, 2226.13, 2212.56, 2233.04],\n      ['2013/4/11', 2236.98, 2219.55, 2217.26, 2242.48],\n      ['2013/4/12', 2218.09, 2206.78, 2204.44, 2226.26],\n      ['2013/4/15', 2199.91, 2181.94, 2177.39, 2204.99],\n      ['2013/4/16', 2169.63, 2194.85, 2165.78, 2196.43],\n      ['2013/4/17', 2195.03, 2193.8, 2178.47, 2197.51],\n      ['2013/4/18', 2181.82, 2197.6, 2175.44, 2206.03],\n      ['2013/4/19', 2201.12, 2244.64, 2200.58, 2250.11],\n      ['2013/4/22', 2236.4, 2242.17, 2232.26, 2245.12],\n      ['2013/4/23', 2242.62, 2184.54, 2182.81, 2242.62],\n      ['2013/4/24', 2187.35, 2218.32, 2184.11, 2226.12],\n      ['2013/4/25', 2213.19, 2199.31, 2191.85, 2224.63],\n      ['2013/4/26', 2203.89, 2177.91, 2173.86, 2210.58],\n      ['2013/5/2', 2170.78, 2174.12, 2161.14, 2179.65],\n      ['2013/5/3', 2179.05, 2205.5, 2179.05, 2222.81],\n      ['2013/5/6', 2212.5, 2231.17, 2212.5, 2236.07],\n      ['2013/5/7', 2227.86, 2235.57, 2219.44, 2240.26],\n      ['2013/5/8', 2242.39, 2246.3, 2235.42, 2255.21],\n      ['2013/5/9', 2246.96, 2232.97, 2221.38, 2247.86],\n      ['2013/5/10', 2228.82, 2246.83, 2225.81, 2247.67],\n      ['2013/5/13', 2247.68, 2241.92, 2231.36, 2250.85],\n      ['2013/5/14', 2238.9, 2217.01, 2205.87, 2239.93],\n      ['2013/5/15', 2217.09, 2224.8, 2213.58, 2225.19],\n      ['2013/5/16', 2221.34, 2251.81, 2210.77, 2252.87],\n      ['2013/5/17', 2249.81, 2282.87, 2248.41, 2288.09],\n      ['2013/5/20', 2286.33, 2299.99, 2281.9, 2309.39],\n      ['2013/5/21', 2297.11, 2305.11, 2290.12, 2305.3],\n      ['2013/5/22', 2303.75, 2302.4, 2292.43, 2314.18],\n      ['2013/5/23', 2293.81, 2275.67, 2274.1, 2304.95],\n      ['2013/5/24', 2281.45, 2288.53, 2270.25, 2292.59],\n      ['2013/5/27', 2286.66, 2293.08, 2283.94, 2301.7],\n      ['2013/5/28', 2293.4, 2321.32, 2281.47, 2322.1],\n      ['2013/5/29', 2323.54, 2324.02, 2321.17, 2334.33],\n      ['2013/5/30', 2316.25, 2317.75, 2310.49, 2325.72],\n      ['2013/5/31', 2320.74, 2300.59, 2299.37, 2325.53],\n      ['2013/6/3', 2300.21, 2299.25, 2294.11, 2313.43],\n      ['2013/6/4', 2297.1, 2272.42, 2264.76, 2297.1],\n      ['2013/6/5', 2270.71, 2270.93, 2260.87, 2276.86],\n      ['2013/6/6', 2264.43, 2242.11, 2240.07, 2266.69],\n      ['2013/6/7', 2242.26, 2210.9, 2205.07, 2250.63],\n      ['2013/6/13', 2190.1, 2148.35, 2126.22, 2190.1]\n    ].inject({}) do |res, k|\n      res[k[0]] = k[1..-1]\n      res\n    end\n  end\n\nend\n"
  },
  {
    "path": "test/dummy/app/models/stat.rb",
    "content": "# == Schema Information\n#\n# Table name: stats\n#\n#  id         :integer          not null, primary key\n#  country    :string\n#  year       :integer\n#  amount     :integer\n#  created_at :datetime         not null\n#  updated_at :datetime         not null\n#\nclass Stat < ApplicationRecord\n\n  def Stat.populate\n    Stat.delete_all\n    ['Brazil', 'Indonesia', 'USA', 'India', 'China', 'Europe'].each do |country|\n      [2022, 2021].each do |year|\n        Stat.create(\n          country: country,\n          year: year,\n          amount: 100 * rand(1000),\n          created_at: rand(60).days.ago\n        )\n      end\n    end\n  end    \n\nend\n"
  },
  {
    "path": "test/dummy/app/models/user.rb",
    "content": "# == Schema Information\n#\n# Table name: users\n#\n#  id         :integer          not null, primary key\n#  name       :string\n#  country    :string\n#  age        :integer\n#  role       :string\n#  salary     :integer\n#  dob        :date\n#  created_at :datetime         not null\n#  updated_at :datetime         not null\n#\nclass User < ApplicationRecord\n\n  def User.get_data_for_radar_chart\n    @get_data_for_radar_chart ||= begin\n      roles = User.distinct.pluck(:role)\n      {\n        indicators: roles.inject({}) {|res, e| res[e] = User.maximum(:salary); res},\n        data: [\n          {\n            name: 'Average Salaries',\n            value: roles.map{|e| User.where(role: e).average(:salary).round(2)}\n          },\n          {\n            name: 'Maximum Salary',\n            value: roles.map{|e| User.where(role: e).maximum(:salary).round(2)}\n          }\n        ],\n      }\n    end\n  end\n\n  def User.get_funnel_sample_data\n    {\n      data: [\n        { value: 60, name: 'Visit' },\n        { value: 40, name: 'Inquiry' },\n        { value: 20, name: 'Order' },\n        { value: 80, name: 'Click' },\n        { value: 100, name: 'Show' }\n      ]\n    }\n  end\n\n  def User.get_gauge_sample_data\n    {\n      data: [\n        {name: 'Active Users', value: 42}\n      ]\n    }\n  end\n\n  def User.custom_gause_data\n    {\n      series: [\n        {\n          type: 'gauge',\n          center: ['50%', '60%'],\n          startAngle: 200,\n          endAngle: -20,\n          min: 0,\n          max: 60,\n          splitNumber: 12,\n          itemStyle: {\n            color: '#FFAB91'\n          },\n          progress: {\n            show: true,\n            width: 30\n          },\n          pointer: {\n            show: false\n          },\n          axisLine: {\n            lineStyle: {\n              width: 30\n            }\n          },\n          axisTick: {\n            distance: -45,\n            splitNumber: 5,\n            lineStyle: {\n              width: 2,\n              color: '#999'\n            }\n          },\n          splitLine: {\n            distance: -52,\n            length: 14,\n            lineStyle: {\n              width: 3,\n              color: '#999'\n            }\n          },\n          axisLabel: {\n            distance: -20,\n            color: '#999',\n            fontSize: 20\n          },\n          anchor: {\n            show: false\n          },\n          title: {\n            show: false\n          },\n          detail: {\n            valueAnimation: true,\n            width: '60%',\n            lineHeight: 40,\n            borderRadius: 8,\n            offsetCenter: [0, '-15%'],\n            fontSize: 60,\n            fontWeight: 'bolder',\n            formatter: '{value} °C',\n            color: 'auto'\n          },\n          data: [\n            {\n              value: 20\n            }\n          ]\n        },\n        {\n          type: 'gauge',\n          center: ['50%', '60%'],\n          startAngle: 200,\n          endAngle: -20,\n          min: 0,\n          max: 60,\n          itemStyle: {\n            color: '#FD7347'\n          },\n          progress: {\n            show: true,\n            width: 8\n          },\n          pointer: {\n            show: false\n          },\n          axisLine: {\n            show: false\n          },\n          axisTick: {\n            show: false\n          },\n          splitLine: {\n            show: false\n          },\n          axisLabel: {\n            show: false\n          },\n          detail: {\n            show: false\n          },\n          data: [\n            {\n              value: 20\n            }\n          ]\n        }\n      ]\n    }\n  end\n\n\n  def User.random_scatter_chart(initial = 100, shift = 0)\n    r = []\n    100.times do |i|\n      r << [\n        (1+rand(initial).to_f).round(2), rand(shift.to_f).round(2)\n      ]\n    end\n    r\n\n    # [\n    #   [10.0, 8.04],\n    #   [8.07, 6.95],\n    #   [13.0, 7.58],\n    #   [9.05, 8.81],\n    #   [11.0, 8.33],\n    #   [14.0, 7.66],\n    #   [13.4, 6.81],\n    #   [10.0, 6.33],\n    #   [14.0, 8.96],\n    #   [12.5, 6.82],\n    #   [9.15, 7.2],\n    #   [11.5, 7.2],\n    #   [1.43, 4.23],\n    #   [12.2, 7.83],\n    #   [1.02, 4.47],\n    #   [1.05, 3.33],\n    #   [4.05, 4.96],\n    #   [6.03, 7.24],\n    #   [12.0, 6.26],\n    #   [12.0, 8.84],\n    #   [7.08, 5.82],\n    #   [11.3, 7.16],\n    #   [11.0, 10.4],\n    #   [13.0, 6.26],\n    #   [12.7, 10.84],\n    #   [7.08, 5.80],\n    #   [12.3, 7.26],\n    #   [11.0, 10.4],\n    #   [7.08, 5.82],\n    #   [5.02, 5.68]\n    # ]\n  end    \n\nend\n"
  },
  {
    "path": "test/dummy/app/views/home/_area_chart.html.erb",
    "content": "<h2 class=\"subtitle\">area_chart #1</h2>\n<%= area_chart User.group(:age).count,\n  height: '250px',\n  class: 'box',\n  theme: 'vintage',\n  options: {\n    xAxis: {\n      name: \"Age\"\n    },\n    yAxis: {\n      name: \"Count\"\n    },\n    series: {\n      name: \"People Count\"\n    }\n  }\n%>\n\n<h2 class=\"subtitle\">area_chart #2</h2>\n<%= area_chart User.distinct.pluck(:role).map{|e| {name: e, data: User.where(role: e).group_by_day(:created_at).count} },\n  class: 'box',\n  debug: false,\n  theme: 'macarons'\n%>\n\n<h2 class=\"subtitle\">area_chart #3</h2>\n<%= area_chart({10 => 24, 20 => 44, 30 => 57}, {class: 'box'}) %>\n\n<h2 class=\"subtitle\">area_chart #4 + zoom</h2>\n<%= area_chart DataPoint.pluck(:event_date, :value),\n  class: 'box',\n  code: false,\n  debug: false,\n  options: {\n    xAxis: {\n      type: 'time'\n    },\n    series: {\n      type: 'line'\n    },\n    dataZoom: [\n      {\n        start: 30,\n        end: 80\n      },\n    ],\n    toolbox: {\n      show: true,\n      feature: {\n        dataZoom: {\n          yAxisIndex: 'none'\n        },\n        restore: {},\n        saveAsImage: {}\n      }\n    }\n  }\n    %>\n\n<h2 class=\"subtitle\">area_chart #5 (with locale=UK)</h2>\n<%= area_chart DataPoint.pluck(:event_date, :value),\n  class: 'box',\n  code: false,\n  debug: false,\n  locale: 'UK',\n  options: {\n    xAxis: {\n      type: 'time'\n    },\n    series: {\n      type: 'line'\n    },\n  }\n%>\n"
  },
  {
    "path": "test/dummy/app/views/home/_bar_chart.html.erb",
    "content": "<h2 class=\"subtitle\">bar_chart #1</h2>\n<%= bar_chart User.group(:role).sum(:salary),\n  class: 'box',\n  theme: 'roma',\n  options: {\n    xAxis: {\n      axisTick: {\n        alignWithLabel: true\n      }\n    },\n    tooltip: {\n      valueFormatter: RailsCharts.js(\"(value) => value + 'долларів'\")\n    }\n  }\n%>\n\n<h2 class=\"subtitle\">bar_chart #2</h2>\n<%= bar_chart User.group(:role).average(:age),\n  class: 'box',\n  theme: 'sakura',\n  options: {\n    series: {\n      barWidth: '50%'\n    },\n    tooltip: {\n      valueFormatter: RailsCharts.js(\"(value) => '$' + Math.round(value)\")\n    }\n  }\n%>\n\n<h2 class=\"subtitle\">bar_chart #3</h2>\n<%= bar_chart Stat.distinct.pluck(:year).map{|e| {name: e, data: Stat.where(year: e).group(:country).sum(:amount)} },\n  class: 'box',\n  theme: 'dark',\n  vertical: true,\n  options: {\n    grid: {\n      top: '15%',\n      left: '15%',\n      right: '15%'\n    },\n    title: {\n      text: 'World Population',\n      left: 'center',\n      top: '5%'\n    },\n    legend: {\n      bottom: '2%'\n    },\n    toolbox: {\n      feature: {\n        saveAsImage: {},\n        magicType: { type: ['stack', 'bar'] },\n      },\n    }\n  }\n%>\n\n\n<h2 class=\"subtitle\">bar_chart #4</h2>\n<%= bar_chart({\n  'Mon' => 120,\n  'Tue' => 130,\n  'Wed' => {\n    value: 200,\n    itemStyle: {\n      color: '#a90000'\n    }\n  },\n  'Thu' => 70,\n  'Fri' => 150,\n  'Sat' => 190,\n  'Sun' => 140\n}, {\n   class: 'box',\n   options: {}\n}) %>\n"
  },
  {
    "path": "test/dummy/app/views/home/_calendar_chart.html.erb",
    "content": "<h2 class=\"subtitle\">calendar_chart #1</h2>\n<%= calendar_chart Commit.for_calendar_chart,\n  class: 'box',\n  code: false,\n  options: {\n    visualMap: {\n      show: true,\n      min: 0,\n      max: 40,\n      orient: 'horizontal'\n    },\n    calendar: [{\n      range: '2021',\n    },]\n  }\n%>\n"
  },
  {
    "path": "test/dummy/app/views/home/_candlestick_chart.html.erb",
    "content": "<h2 class=\"subtitle\">candlestick_chart #1</h2>\n<%= candlestick_chart({\n    '2017-10-24' => [20, 34, 10, 38],\n    '2017-10-25' => [40, 35, 30, 50],\n    '2017-10-26' => [31, 38, 33, 44],\n    '2017-10-27' => [38, 15, 5, 42]\n  },\n  class: 'box',\n  theme: 'roma',\n  options: {\n    xAxis: {\n      axisTick: {\n        alignWithLabel: true\n      }\n    }\n  })\n%>\n\n<h2 class=\"subtitle\">candlestick_chart #2</h2>\n<%= candlestick_chart DataPoint.data_for_candlestick,\n  class: 'box',\n  theme: 'sakura',\n  options: {\n    series: {\n      itemStyle: {\n        color: '#ec0000',\n        color0: '#008F28',\n        borderColor: '#8A0000',\n        borderColor0: '#008F28'\n      }\n    },\n    title: {\n      text: \"Sample Report\"\n    },\n    xAxis: {\n      boundaryGap: false,\n      axisLine: { onZero: false },\n      splitLine: { show: false },\n      min: 'dataMin',\n      max: 'dataMax'\n    },\n    yAxis: {\n      scale: true,\n      splitArea: {\n        show: true\n      }\n    },\n    dataZoom: [\n      {\n        type: 'inside',\n        start: 50,\n        end: 100\n      },\n      {\n        show: true,\n        type: 'slider',\n        top: '90%',\n        start: 50,\n        end: 100\n      }\n    ],\n  }\n%>\n"
  },
  {
    "path": "test/dummy/app/views/home/_custom_chart.html.erb",
    "content": "<h2 class=\"subtitle\">custom_chart #1</h2>\n<div class=\"box\">\n  <%= custom_chart User.custom_gause_data %>\n</div>"
  },
  {
    "path": "test/dummy/app/views/home/_funnel_chart.html.erb",
    "content": "<div class=\"columns\">\n  <div class=\"column is-half\">\n    <h2 class=\"subtitle\">funnel_chart #1</h2>\n    <%= funnel_chart User.get_funnel_sample_data,\n      class: 'box',\n      height: '400px',\n      options: {\n        title: {\n          text: 'Demo',\n          left: 'center'\n        }\n      }\n    %>\n  </div>\n  <div class=\"column is-half\">\n    <h2 class=\"subtitle\">funnel_chart #2</h2>\n    <%= funnel_chart User.get_funnel_sample_data,\n      class: 'box',\n      height: '400px',\n      options: {\n        title: {\n          text: 'Funnel'\n        },\n        toolbox: {\n          feature: {\n            dataView: { readOnly: false },\n            restore: {},\n            saveAsImage: {}\n          }\n        },\n        legend: {\n          data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order'],\n          bottom: 5,\n          textStyle: {\n            fontSize: '10'\n          }\n        }\n      }\n    %>      \n  </div>\n</div>\n"
  },
  {
    "path": "test/dummy/app/views/home/_gauge_chart.html.erb",
    "content": "<h2 class=\"subtitle\">gauge_chart #1</h2>\n<%= gauge_chart User.get_gauge_sample_data,\n  class: 'box',\n  height: '400px',\n  options: {\n    title: {\n      text: 'Demo',\n      left: 'center'\n    }\n  }\n%>"
  },
  {
    "path": "test/dummy/app/views/home/_line_chart.html.erb",
    "content": "<h2 class=\"subtitle\">line_chart #1</h2>\n<%= line_chart User.group(:age).count, class: 'box',\n  code: false,\n  options: {\n    title: {\n      text: \"People count by age\",\n      left: 'center'\n    },\n  }\n%>\n\n<h2 class=\"subtitle\">line_chart #2</h2>\n<%= line_chart User.distinct.pluck(:role).map{|e| {name: e, data: User.where(role: e).group_by_day(:created_at).count} },\n  class: 'box',\n  debug: false,\n  code: false,\n  theme: 'macarons',\n  options: {\n    title: {\n      text: \"Signups by role\"\n    },\n    toolbox: {\n      show: true,\n      feature: {\n        saveAsImage: {}\n      }\n    },\n    label: {\n      show: true,\n      position: 'top'\n    },\n  }\n%>\n\n\n<h2 class=\"subtitle\">line_chart #3</h2>\n<%= line_chart User.group(:age).count, class: 'box',\n  code: false,\n  options: {\n    title: {\n      text: \"People count by age v2\",\n      left: 'center'\n    },\n    xAxis: {\n      boundaryGap: false,\n    },\n    yAxis: {\n      type: 'value',\n      boundaryGap: [0, '100%']\n    },\n    tooltip: {\n      trigger: 'axis',\n      axisPointer: {\n        type: 'cross',\n        label: {\n          precision: 0\n        }\n      },\n    },\n    series: {\n      symbol: 'none',\n      sampling: 'lttb',\n      itemStyle: {\n        color: '#d65bca'\n      },\n      areaStyle: {\n        color: RailsCharts.js(%Q{new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n          {\n            offset: 0,\n            color: '#d65bca'\n          },\n          {\n            offset: 1,\n            color: '#00b712'\n          }\n        ])}\n        )\n      }\n    }\n  }\n%>\n\n<h2 class=\"subtitle\">line_chart #4</h2>\n<%= line_chart User.group(:age).count, class: 'box',\n  code: false,\n  renderer: 'svg',\n  options: {\n    title: {\n      text: \"People count by age v2 (renderer svg)\",\n      left: 'center'\n    },\n    xAxis: {\n      boundaryGap: false,\n    },\n    yAxis: {\n      type: 'value',\n      boundaryGap: [0, '100%']\n    },\n    tooltip: {\n      trigger: 'axis',\n      axisPointer: {\n        type: 'cross',\n        label: {\n          precision: 0\n        }\n      },\n    },\n    series: {\n      symbol: 'none',\n      sampling: 'lttb',\n      itemStyle: {\n        color: '#d65bca'\n      },\n      areaStyle: {\n        color: RailsCharts.js(%Q{new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n          {\n            offset: 0,\n            color: '#d65bca'\n          },\n          {\n            offset: 1,\n            color: '#00b712'\n          }\n        ])}\n        )\n      }\n    }\n  }\n%>\n"
  },
  {
    "path": "test/dummy/app/views/home/_parallel_chart.html.erb",
    "content": "<h2 class=\"subtitle\">parallel_chart #1</h2>\n<div class=\"box\">\n  <%= parallel_chart [\n    [1, 2, 1, \"Ruby\"],\n    [2, 3, 2, \"JavaScript\"],\n    [3, 1, 3, \"C#\"]\n  ], {\n    options: {\n      parallelAxis: [\n        { dim: 0, name: '2019', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 1, name: '2020', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 2, name: '2021', inverse: true, minInterval: 1, min: 1, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 16 } },\n        { dim: 3, type: \"category\", name: 'Language', data: [\"Ruby\", \"JavaScript\", \"C#\"], inverse: true, nameTextStyle: { fontSize: 16 }, axisLabel: { fontSize: 14 } },\n      ]\n    }\n  }\n  %>\n</div>"
  },
  {
    "path": "test/dummy/app/views/home/_pie_donut_chart.html.erb",
    "content": "<div class=\"columns\">\n  <div class=\"column is-half\">\n    <h2 class=\"subtitle\">pie_chart #1</h2>\n    <%= pie_chart User.group(:role).count, \n      class: 'box',\n      options: {\n        legend: { orient: 'vertical', left: 'left' }\n      }\n    %>\n  </div>\n  <div class=\"column is-half\">\n    <h2 class=\"subtitle\">donut_chart #1</h2>\n    <%= donut_chart User.group(:role).count, \n      class: 'box',\n      options: {\n        legend: {\n          bottom: '0'\n        },\n        emphasis: { \n          itemStyle: {\n            shadowBlur: 10,\n            shadowOffsetX: 0,\n            shadowColor: 'rgba(0, 0, 0, 0.5)'\n          } \n        }\n      }\n    %>\n  </div>\n </div> \n<div class=\"columns\">\n  <div class=\"column is-half\">\n    <h2 class=\"subtitle\">donut_chart #1</h2>\n    <%= pie_chart [\n      { value: 335, name: 'Direct' },\n      { value: 310, name: 'Email' },\n      { value: 274, name: 'Union Ads' },\n      { value: 235, name: 'Video Ads' },\n      { value: 400, name: 'Search Engine' }\n    ], {\n      options: {\n        backgroundColor: '#2c343c',\n        title: {\n          text: 'Customized Pie',\n          left: 'center',\n          top: 20,\n          textStyle: {\n            color: '#ccc'\n          }\n        },\n        tooltip: {\n          trigger: 'item'\n        },\n        visualMap: {\n          show: false,\n          min: 80,\n          max: 600,\n          inRange: {\n            colorLightness: [0, 1]\n          }\n        },\n        series: {\n          name: 'Access From',\n          type: 'pie',\n          radius: '55%',\n          center: ['50%', '50%'],\n          roseType: 'radius',\n          label: {\n            color: 'rgba(255, 255, 255, 0.3)'\n          },\n          labelLine: {\n            lineStyle: {\n              color: 'rgba(255, 255, 255, 0.3)'\n            },\n            smooth: 0.2,\n            length: 10,\n            length2: 20\n          },\n          itemStyle: {\n            color: '#c23531',\n            shadowBlur: 200,\n            shadowColor: 'rgba(0, 0, 0, 0.5)'\n          },\n          animationType: 'scale',\n          animationEasing: 'elasticOut',\n          animationDelay: RailsCharts.js(%Q{\n            function (idx) {\n              return Math.random() * 200;\n            }\n          })\n        }\n      }\n    }\n    %>\n  </div>\n</div>\n"
  },
  {
    "path": "test/dummy/app/views/home/_radar_chart.html.erb",
    "content": "<h2 class=\"subtitle\">radar_chart #1</h2>\n<%= radar_chart User.get_data_for_radar_chart,\n  class: 'box',\n  options: {\n    legend: {\n      data: ['Average Salaries', 'Maximum Salary'],\n      orient: 'vertical',\n      left: '20%'\n    }\n  }\n%>\n\n<h2 class=\"subtitle\">radar_chart + code: true</h2>\n<%= radar_chart User.get_data_for_radar_chart,\n  class: 'box',\n  theme: 'dark',\n  code: true\n%>"
  },
  {
    "path": "test/dummy/app/views/home/_sankey_chart.html.erb",
    "content": "<h2 class=\"subtitle\">sankey_chart #1</h2>\n<div class=\"box\">\n  <%= sankey_chart({\n    data: [\n      {name: 'Ruby'}, {name: 'HTML'}, {name: 'JS'}, {name: 'Good'}, {name: 'Bad'}, {name: 'CSS'}, {name: 'PHP'}, {name: 'Frontend'}, {name: 'Backend'}\n    ],\n    links: [\n      {\n        source: 'Ruby',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'HTML',\n        target: 'Good',\n        value: 1\n      },  \n      {\n        source: 'JS',\n        target: 'Good',\n        value: 1\n      },  \n      {\n        source: 'CSS',\n        target: 'Good',\n        value: 1\n      },\n      {\n        source: 'PHP',\n        target: 'Bad',\n        value: 1\n      },\n      {\n        source: 'Good',\n        target: 'Backend',\n        value: 1\n      },         \n      {\n        source: 'Good',\n        target: 'Frontend',\n        value: 3\n      },\n      {\n        source: 'Bad',\n        target: 'Backend',\n        value: 1\n      },             \n    ]\n  }, {\n    options: {\n      # tooltip: {\n      #   trigger: 'item'\n      # },\n      # series: {\n      #   orient: 'vertical',\n      # }\n    }\n  })\n  %>\n</div>"
  },
  {
    "path": "test/dummy/app/views/home/_scatter_chart.html.erb",
    "content": "<h2 class=\"subtitle\">scatter_charts #1 simple</h2>\n<%= scatter_chart User.random_scatter_chart(500, 200),\n  {\n    code: false,\n    debug: false,\n    options: {\n      series: {\n        name: 'Random Data',\n      },\n      legend: {\n        data: [\n          {name: 'Random Data'}\n        ]\n      },\n    },\n    class: 'box',\n  }\n%>\n\n<h2 class=\"subtitle\">scatter_charts #2 multiple</h2>\n<%= scatter_chart [\n    { name: 'John', data: User.random_scatter_chart(500, 200) },\n    { name: 'Bob', data: User.random_scatter_chart(500, 1000) },\n  ],\n  {\n    code: false,\n    debug: false,\n    class: 'box',\n    options: {\n      xAxis: {\n        name: 'Distance'\n      },\n      yAxis: {\n        name: 'Sales'\n      },          \n      legend: {\n        data: [\n          {name: 'John'},\n          {name: 'Bob'},\n        ]\n      },\n    },\n  }\n%>  "
  },
  {
    "path": "test/dummy/app/views/home/_stacked_bar_chart.html.erb",
    "content": "<h2 class=\"subtitle\">stacked_bar_chart #1</h2>\n<%= stacked_bar_chart [\n    { name: 'high priority', data: Account.high_priority.group_by_month(:created_at, format: \"%b %Y\").count },\n    { name: 'low priority', data: Account.low_priority.group_by_month(:created_at, format: \"%b %Y\").count }\n  ],\n  {\n    options: {\n      title: {\n        text: \"Popular vs Unpopular\"\n      },\n    },\n    code: false,\n    class: 'box',\n    vertical: true\n  }\n%>"
  },
  {
    "path": "test/dummy/app/views/home/index.html.erb",
    "content": "<section class=\"section\">\n  <div class=\"container\">\n    <h1 class=\"title\">\n      Charts\n    </h1>\n    <p class=\"subtitle\">\n      Ruby Charts + Apache eCharts\n    </p>\n  </div>\n</section>\n\n<div class=\"columns\">\n  <div class=\"column\">\n\n    <%= render 'line_chart' %>\n    <%= render 'area_chart' %>\n    <%= render 'bar_chart' %>\n    <%= render 'stacked_bar_chart' %>\n    <%= render 'scatter_chart' %>\n\n    <br>\n    <%= render 'pie_donut_chart' %>\n    <%= render 'radar_chart' %>\n\n    <%= render 'calendar_chart' %>\n    <%= render 'funnel_chart' %>\n\n    <div class=\"columns\">\n      <div class=\"column is-one-third\">\n       <%= render 'gauge_chart' %>\n      </div>\n      <div class=\"column is-two-third\">\n       <%= render 'custom_chart' %>\n       </div>  \n    </div>\n\n    <%= render 'parallel_chart' %>\n    <%= render 'sankey_chart' %>\n    <%= render 'candlestick_chart' %>\n\n\n\n  </div>\n</div>\n\n"
  },
  {
    "path": "test/dummy/app/views/layouts/application.html.erb",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <title>Dummy</title>\n    <%= csrf_meta_tags %>\n    <%= csp_meta_tag %>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n    <%= stylesheet_link_tag \"application\" %>\n    <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css\">\n    <%= javascript_include_tag \"application\" %>\n  </head>\n\n  <body>\n    <div class=\"container is-max-widescreen\">\n      <%= yield %>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "test/dummy/app/views/layouts/mailer.html.erb",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n    <style>\n      /* Email styles need to be inline */\n    </style>\n  </head>\n\n  <body>\n    <%= yield %>\n  </body>\n</html>\n"
  },
  {
    "path": "test/dummy/app/views/layouts/mailer.text.erb",
    "content": "<%= yield %>\n"
  },
  {
    "path": "test/dummy/bin/rails",
    "content": "#!/usr/bin/env ruby\nAPP_PATH = File.expand_path(\"../config/application\", __dir__)\nrequire_relative \"../config/boot\"\nrequire \"rails/commands\"\n"
  },
  {
    "path": "test/dummy/bin/rake",
    "content": "#!/usr/bin/env ruby\nrequire_relative \"../config/boot\"\nrequire \"rake\"\nRake.application.run\n"
  },
  {
    "path": "test/dummy/bin/setup",
    "content": "#!/usr/bin/env ruby\nrequire \"fileutils\"\n\n# path to your application root.\nAPP_ROOT = File.expand_path(\"..\", __dir__)\n\ndef system!(*args)\n  system(*args) || abort(\"\\n== Command #{args} failed ==\")\nend\n\nFileUtils.chdir APP_ROOT do\n  # This script is a way to set up or update your development environment automatically.\n  # This script is idempotent, so that you can run it at any time and get an expectable outcome.\n  # Add necessary setup steps to this file.\n\n  puts \"== Installing dependencies ==\"\n  system! \"gem install bundler --conservative\"\n  system(\"bundle check\") || system!(\"bundle install\")\n\n  # puts \"\\n== Copying sample files ==\"\n  # unless File.exist?(\"config/database.yml\")\n  #   FileUtils.cp \"config/database.yml.sample\", \"config/database.yml\"\n  # end\n\n  puts \"\\n== Preparing database ==\"\n  system! \"bin/rails db:prepare\"\n\n  puts \"\\n== Removing old logs and tempfiles ==\"\n  system! \"bin/rails log:clear tmp:clear\"\n\n  puts \"\\n== Restarting application server ==\"\n  system! \"bin/rails restart\"\nend\n"
  },
  {
    "path": "test/dummy/config/application.rb",
    "content": "require_relative \"boot\"\n\nrequire \"rails/all\"\n\n# Require the gems listed in Gemfile, including any gems\n# you've limited to :test, :development, or :production.\nBundler.require(*Rails.groups)\nrequire \"rails_charts\"\n\nmodule Dummy\n  class Application < Rails::Application\n    config.load_defaults Rails::VERSION::STRING.to_f\n\n    # Configuration for the application, engines, and railties goes here.\n    #\n    # These settings can be overridden in specific environments using the files\n    # in config/environments, which are processed later.\n    #\n    # config.time_zone = \"Central Time (US & Canada)\"\n    # config.eager_load_paths << Rails.root.join(\"extras\")\n  end\nend\n\nrequire_relative \"../app/models/data.rb\"\n"
  },
  {
    "path": "test/dummy/config/boot.rb",
    "content": "# Set up gems listed in the Gemfile.\nENV[\"BUNDLE_GEMFILE\"] ||= File.expand_path(\"../../../Gemfile\", __dir__)\n\nrequire \"bundler/setup\" if File.exist?(ENV[\"BUNDLE_GEMFILE\"])\n$LOAD_PATH.unshift File.expand_path(\"../../../lib\", __dir__)\n"
  },
  {
    "path": "test/dummy/config/cable.yml",
    "content": "development:\n  adapter: async\n\ntest:\n  adapter: test\n\nproduction:\n  adapter: redis\n  url: <%= ENV.fetch(\"REDIS_URL\") { \"redis://localhost:6379/1\" } %>\n  channel_prefix: dummy_production\n"
  },
  {
    "path": "test/dummy/config/database.yml",
    "content": "# SQLite. Versions 3.8.0 and up are supported.\n#   gem install sqlite3\n#\n#   Ensure the SQLite 3 gem is defined in your Gemfile\n#   gem \"sqlite3\"\n#\ndefault: &default\n  adapter: sqlite3\n  pool: <%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %>\n  timeout: 5000\n\ndevelopment:\n  <<: *default\n  database: db/development.sqlite3\n\n# Warning: The database defined as \"test\" will be erased and\n# re-generated from your development database when you run \"rake\".\n# Do not set this db to the same as development or production.\ntest:\n  <<: *default\n  database: db/test.sqlite3\n\nproduction:\n  <<: *default\n  database: db/production.sqlite3\n"
  },
  {
    "path": "test/dummy/config/environment.rb",
    "content": "# Load the Rails application.\nrequire_relative \"application\"\n\n# Initialize the Rails application.\nRails.application.initialize!\n"
  },
  {
    "path": "test/dummy/config/environments/development.rb",
    "content": "require \"active_support/core_ext/integer/time\"\n\nRails.application.configure do\n  # Settings specified here will take precedence over those in config/application.rb.\n\n  # In the development environment your application's code is reloaded any time\n  # it changes. This slows down response time but is perfect for development\n  # since you don't have to restart the web server when you make code changes.\n  config.cache_classes = false\n\n  # Do not eager load code on boot.\n  config.eager_load = false\n\n  # Show full error reports.\n  config.consider_all_requests_local = true\n\n  # Enable server timing\n  config.server_timing = true\n\n  # Enable/disable caching. By default caching is disabled.\n  # Run rails dev:cache to toggle caching.\n  if Rails.root.join(\"tmp/caching-dev.txt\").exist?\n    config.action_controller.perform_caching = true\n    config.action_controller.enable_fragment_cache_logging = true\n\n    config.cache_store = :memory_store\n    config.public_file_server.headers = {\n      \"Cache-Control\" => \"public, max-age=#{2.days.to_i}\"\n    }\n  else\n    config.action_controller.perform_caching = false\n\n    config.cache_store = :null_store\n  end\n\n  # Store uploaded files on the local file system (see config/storage.yml for options).\n  config.active_storage.service = :local\n\n  # Don't care if the mailer can't send.\n  config.action_mailer.raise_delivery_errors = false\n\n  config.action_mailer.perform_caching = false\n\n  # Print deprecation notices to the Rails logger.\n  config.active_support.deprecation = :log\n\n  # Raise exceptions for disallowed deprecations.\n  config.active_support.disallowed_deprecation = :raise\n\n  # Tell Active Support which deprecation messages to disallow.\n  config.active_support.disallowed_deprecation_warnings = []\n\n  # Raise an error on page load if there are pending migrations.\n  config.active_record.migration_error = :page_load\n\n  # Highlight code that triggered database queries in logs.\n  config.active_record.verbose_query_logs = true\n\n\n  # Raises error for missing translations.\n  # config.i18n.raise_on_missing_translations = true\n\n  # Annotate rendered view with file names.\n  # config.action_view.annotate_rendered_view_with_filenames = true\n\n  # Uncomment if you wish to allow Action Cable access from any origin.\n  # config.action_cable.disable_request_forgery_protection = true\nend\n"
  },
  {
    "path": "test/dummy/config/environments/production.rb",
    "content": "require \"active_support/core_ext/integer/time\"\n\nRails.application.configure do\n  # Settings specified here will take precedence over those in config/application.rb.\n\n  # Code is not reloaded between requests.\n  config.cache_classes = true\n\n  # Eager load code on boot. This eager loads most of Rails and\n  # your application in memory, allowing both threaded web servers\n  # and those relying on copy on write to perform better.\n  # Rake tasks automatically ignore this option for performance.\n  config.eager_load = true\n\n  # Full error reports are disabled and caching is turned on.\n  config.consider_all_requests_local       = false\n  config.action_controller.perform_caching = true\n\n  # Ensures that a master key has been made available in either ENV[\"RAILS_MASTER_KEY\"]\n  # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).\n  # config.require_master_key = true\n\n  # Disable serving static files from the `/public` folder by default since\n  # Apache or NGINX already handles this.\n  config.public_file_server.enabled = ENV[\"RAILS_SERVE_STATIC_FILES\"].present?\n\n  # Enable serving of images, stylesheets, and JavaScripts from an asset server.\n  # config.asset_host = \"http://assets.example.com\"\n\n  # Specifies the header that your server uses for sending files.\n  # config.action_dispatch.x_sendfile_header = \"X-Sendfile\" # for Apache\n  # config.action_dispatch.x_sendfile_header = \"X-Accel-Redirect\" # for NGINX\n\n  # Store uploaded files on the local file system (see config/storage.yml for options).\n  config.active_storage.service = :local\n\n  # Mount Action Cable outside main process or domain.\n  # config.action_cable.mount_path = nil\n  # config.action_cable.url = \"wss://example.com/cable\"\n  # config.action_cable.allowed_request_origins = [ \"http://example.com\", /http:\\/\\/example.*/ ]\n\n  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.\n  # config.force_ssl = true\n\n  # Include generic and useful information about system operation, but avoid logging too much\n  # information to avoid inadvertent exposure of personally identifiable information (PII).\n  config.log_level = :info\n\n  # Prepend all log lines with the following tags.\n  config.log_tags = [ :request_id ]\n\n  # Use a different cache store in production.\n  # config.cache_store = :mem_cache_store\n\n  # Use a real queuing backend for Active Job (and separate queues per environment).\n  # config.active_job.queue_adapter     = :resque\n  # config.active_job.queue_name_prefix = \"dummy_production\"\n\n  config.action_mailer.perform_caching = false\n\n  # Ignore bad email addresses and do not raise email delivery errors.\n  # Set this to true and configure the email server for immediate delivery to raise delivery errors.\n  # config.action_mailer.raise_delivery_errors = false\n\n  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to\n  # the I18n.default_locale when a translation cannot be found).\n  config.i18n.fallbacks = true\n\n  # Don't log any deprecations.\n  config.active_support.report_deprecations = false\n\n  # Use default logging formatter so that PID and timestamp are not suppressed.\n  config.log_formatter = ::Logger::Formatter.new\n\n  # Use a different logger for distributed setups.\n  # require \"syslog/logger\"\n  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new \"app-name\")\n\n  if ENV[\"RAILS_LOG_TO_STDOUT\"].present?\n    logger           = ActiveSupport::Logger.new(STDOUT)\n    logger.formatter = config.log_formatter\n    config.logger    = ActiveSupport::TaggedLogging.new(logger)\n  end\n\n  # Do not dump schema after migrations.\n  config.active_record.dump_schema_after_migration = false\nend\n"
  },
  {
    "path": "test/dummy/config/environments/test.rb",
    "content": "require \"active_support/core_ext/integer/time\"\n\n# The test environment is used exclusively to run your application's\n# test suite. You never need to work with it otherwise. Remember that\n# your test database is \"scratch space\" for the test suite and is wiped\n# and recreated between test runs. Don't rely on the data there!\n\nRails.application.configure do\n  # Settings specified here will take precedence over those in config/application.rb.\n\n  # Turn false under Spring and add config.action_view.cache_template_loading = true.\n  config.cache_classes = true\n\n  # Eager loading loads your whole application. When running a single test locally,\n  # this probably isn't necessary. It's a good idea to do in a continuous integration\n  # system, or in some way before deploying your code.\n  config.eager_load = ENV[\"CI\"].present?\n\n  # Configure public file server for tests with Cache-Control for performance.\n  config.public_file_server.enabled = true\n  config.public_file_server.headers = {\n    \"Cache-Control\" => \"public, max-age=#{1.hour.to_i}\"\n  }\n\n  # Show full error reports and disable caching.\n  config.consider_all_requests_local       = true\n  config.action_controller.perform_caching = false\n  config.cache_store = :null_store\n\n  # Raise exceptions instead of rendering exception templates.\n  config.action_dispatch.show_exceptions = false\n\n  # Disable request forgery protection in test environment.\n  config.action_controller.allow_forgery_protection = false\n\n  # Store uploaded files on the local file system in a temporary directory.\n  config.active_storage.service = :test\n\n  config.action_mailer.perform_caching = false\n\n  # Tell Action Mailer not to deliver emails to the real world.\n  # The :test delivery method accumulates sent emails in the\n  # ActionMailer::Base.deliveries array.\n  config.action_mailer.delivery_method = :test\n\n  # Print deprecation notices to the stderr.\n  config.active_support.deprecation = :stderr\n\n  # Raise exceptions for disallowed deprecations.\n  config.active_support.disallowed_deprecation = :raise\n\n  # Tell Active Support which deprecation messages to disallow.\n  config.active_support.disallowed_deprecation_warnings = []\n\n  # Raises error for missing translations.\n  # config.i18n.raise_on_missing_translations = true\n\n  # Annotate rendered view with file names.\n  # config.action_view.annotate_rendered_view_with_filenames = true\nend\n"
  },
  {
    "path": "test/dummy/config/initializers/content_security_policy.rb",
    "content": "# Be sure to restart your server when you modify this file.\n\n# Define an application-wide content security policy\n# For further information see the following documentation\n# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy\n\n# Rails.application.configure do\n#   config.content_security_policy do |policy|\n#     policy.default_src :self, :https\n#     policy.font_src    :self, :https, :data\n#     policy.img_src     :self, :https, :data\n#     policy.object_src  :none\n#     policy.script_src  :self, :https\n#     policy.style_src   :self, :https\n#     # Specify URI for violation reports\n#     # policy.report_uri \"/csp-violation-report-endpoint\"\n#   end\n#\n#   # Generate session nonces for permitted importmap and inline scripts\n#   config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s }\n#   config.content_security_policy_nonce_directives = %w(script-src)\n#\n#   # Report CSP violations to a specified URI. See:\n#   # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only\n#   # config.content_security_policy_report_only = true\n# end\n"
  },
  {
    "path": "test/dummy/config/initializers/filter_parameter_logging.rb",
    "content": "# Be sure to restart your server when you modify this file.\n\n# Configure parameters to be filtered from the log file. Use this to limit dissemination of\n# sensitive information. See the ActiveSupport::ParameterFilter documentation for supported\n# notations and behaviors.\nRails.application.config.filter_parameters += [\n  :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn\n]\n"
  },
  {
    "path": "test/dummy/config/initializers/inflections.rb",
    "content": "# Be sure to restart your server when you modify this file.\n\n# Add new inflection rules using the following format. Inflections\n# are locale specific, and you may define rules for as many different\n# locales as you wish. All of these examples are active by default:\n# ActiveSupport::Inflector.inflections(:en) do |inflect|\n#   inflect.plural /^(ox)$/i, \"\\\\1en\"\n#   inflect.singular /^(ox)en/i, \"\\\\1\"\n#   inflect.irregular \"person\", \"people\"\n#   inflect.uncountable %w( fish sheep )\n# end\n\n# These inflection rules are supported but not enabled by default:\n# ActiveSupport::Inflector.inflections(:en) do |inflect|\n#   inflect.acronym \"RESTful\"\n# end\n"
  },
  {
    "path": "test/dummy/config/initializers/permissions_policy.rb",
    "content": "# Define an application-wide HTTP permissions policy. For further\n# information see https://developers.google.com/web/updates/2018/06/feature-policy\n#\n# Rails.application.config.permissions_policy do |f|\n#   f.camera      :none\n#   f.gyroscope   :none\n#   f.microphone  :none\n#   f.usb         :none\n#   f.fullscreen  :self\n#   f.payment     :self, \"https://secure.example.com\"\n# end\n"
  },
  {
    "path": "test/dummy/config/initializers/rails_charts.rb",
    "content": "# RailsCharts.options = {\n#   theme: nil\n# }"
  },
  {
    "path": "test/dummy/config/locales/en.yml",
    "content": "# Files in the config/locales directory are used for internationalization\n# and are automatically loaded by Rails. If you want to use locales other\n# than English, add the necessary files in this directory.\n#\n# To use the locales, use `I18n.t`:\n#\n#     I18n.t \"hello\"\n#\n# In views, this is aliased to just `t`:\n#\n#     <%= t(\"hello\") %>\n#\n# To use a different locale, set it with `I18n.locale`:\n#\n#     I18n.locale = :es\n#\n# This would use the information in config/locales/es.yml.\n#\n# The following keys must be escaped otherwise they will not be retrieved by\n# the default I18n backend:\n#\n# true, false, on, off, yes, no\n#\n# Instead, surround them with single quotes.\n#\n# en:\n#   \"true\": \"foo\"\n#\n# To learn more, please read the Rails Internationalization guide\n# available at https://guides.rubyonrails.org/i18n.html.\n\nen:\n  hello: \"Hello world\"\n"
  },
  {
    "path": "test/dummy/config/puma.rb",
    "content": "# Puma can serve each request in a thread from an internal thread pool.\n# The `threads` method setting takes two numbers: a minimum and maximum.\n# Any libraries that use thread pools should be configured to match\n# the maximum value specified for Puma. Default is set to 5 threads for minimum\n# and maximum; this matches the default thread size of Active Record.\n#\nmax_threads_count = ENV.fetch(\"RAILS_MAX_THREADS\") { 5 }\nmin_threads_count = ENV.fetch(\"RAILS_MIN_THREADS\") { max_threads_count }\nthreads min_threads_count, max_threads_count\n\n# Specifies the `worker_timeout` threshold that Puma will use to wait before\n# terminating a worker in development environments.\n#\nworker_timeout 3600 if ENV.fetch(\"RAILS_ENV\", \"development\") == \"development\"\n\n# Specifies the `port` that Puma will listen on to receive requests; default is 3000.\n#\nport ENV.fetch(\"PORT\") { 3000 }\n\n# Specifies the `environment` that Puma will run in.\n#\nenvironment ENV.fetch(\"RAILS_ENV\") { \"development\" }\n\n# Specifies the `pidfile` that Puma will use.\npidfile ENV.fetch(\"PIDFILE\") { \"tmp/pids/server.pid\" }\n\n# Specifies the number of `workers` to boot in clustered mode.\n# Workers are forked web server processes. If using threads and workers together\n# the concurrency of the application would be max `threads` * `workers`.\n# Workers do not work on JRuby or Windows (both of which do not support\n# processes).\n#\n# workers ENV.fetch(\"WEB_CONCURRENCY\") { 2 }\n\n# Use the `preload_app!` method when specifying a `workers` number.\n# This directive tells Puma to first boot the application and load code\n# before forking the application. This takes advantage of Copy On Write\n# process behavior so workers use less memory.\n#\n# preload_app!\n\n# Allow puma to be restarted by `bin/rails restart` command.\nplugin :tmp_restart\n"
  },
  {
    "path": "test/dummy/config/routes.rb",
    "content": "Rails.application.routes.draw do\n  root to: 'home#index'\nend\n"
  },
  {
    "path": "test/dummy/config/storage.yml",
    "content": "test:\n  service: Disk\n  root: <%= Rails.root.join(\"tmp/storage\") %>\n\nlocal:\n  service: Disk\n  root: <%= Rails.root.join(\"storage\") %>\n\n# Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)\n# amazon:\n#   service: S3\n#   access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>\n#   secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>\n#   region: us-east-1\n#   bucket: your_own_bucket-<%= Rails.env %>\n\n# Remember not to checkin your GCS keyfile to a repository\n# google:\n#   service: GCS\n#   project: your_project\n#   credentials: <%= Rails.root.join(\"path/to/gcs.keyfile\") %>\n#   bucket: your_own_bucket-<%= Rails.env %>\n\n# Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)\n# microsoft:\n#   service: AzureStorage\n#   storage_account_name: your_account_name\n#   storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>\n#   container: your_container_name-<%= Rails.env %>\n\n# mirror:\n#   service: Mirror\n#   primary: local\n#   mirrors: [ amazon, google, microsoft ]\n"
  },
  {
    "path": "test/dummy/config.ru",
    "content": "# This file is used by Rack-based servers to start the application.\n\nrequire_relative \"config/environment\"\n\nrun Rails.application\nRails.application.load_server\n"
  },
  {
    "path": "test/dummy/db/migrate/20220419161820_create_users.rb",
    "content": "require 'faker'\n\nclass CreateUsers < ActiveRecord::Migration[7.0]\n  def up\n    create_table :users do |t|\n      t.string :name\n      t.string :country\n      t.integer :age\n      t.string :role\n      t.integer :salary\n      t.date :dob\n\n      t.timestamps\n    end\n\n    create_table :accounts do |t|\n      t.string :name\n      t.integer :priority\n\n      t.timestamps\n    end\n  end\n\n  def down\n    drop_table :users\n    drop_table :accounts\n  end\nend\n"
  },
  {
    "path": "test/dummy/db/migrate/20220420081306_create_stats.rb",
    "content": "require 'faker'\n\nclass CreateStats < ActiveRecord::Migration[7.0]\n  def change\n    create_table :stats do |t|\n      t.string :country\n      t.integer :year\n      t.integer :amount\n\n      t.timestamps\n    end\n  end\nend\n"
  },
  {
    "path": "test/dummy/db/migrate/20220420125847_create_data_points.rb",
    "content": "class CreateDataPoints < ActiveRecord::Migration[7.0]\n  def change\n    create_table :data_points do |t|\n      t.integer :value\n      t.date :event_date\n    end\n  end\nend\n"
  },
  {
    "path": "test/dummy/db/migrate/20220420191641_create_commits.rb",
    "content": "class CreateCommits < ActiveRecord::Migration[7.0]\n  def change\n    create_table :commits do |t|\n      t.datetime :created_at\n    end\n  end\nend\n"
  },
  {
    "path": "test/dummy/db/schema.rb",
    "content": "# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# This file is the source Rails uses to define your schema when running `bin/rails\n# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to\n# be faster and is potentially less error prone than running all of your\n# migrations from scratch. Old migrations may fail to apply correctly if those\n# migrations use external dependencies or application code.\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema[8.0].define(version: 2022_04_20_191641) do\n  create_table \"accounts\", force: :cascade do |t|\n    t.string \"name\"\n    t.integer \"priority\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\n\n  create_table \"commits\", force: :cascade do |t|\n    t.datetime \"created_at\"\n  end\n\n  create_table \"data_points\", force: :cascade do |t|\n    t.integer \"value\"\n    t.date \"event_date\"\n  end\n\n  create_table \"stats\", force: :cascade do |t|\n    t.string \"country\"\n    t.integer \"year\"\n    t.integer \"amount\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\n\n  create_table \"users\", force: :cascade do |t|\n    t.string \"name\"\n    t.string \"country\"\n    t.integer \"age\"\n    t.string \"role\"\n    t.integer \"salary\"\n    t.date \"dob\"\n    t.datetime \"created_at\", null: false\n    t.datetime \"updated_at\", null: false\n  end\nend\n"
  },
  {
    "path": "test/dummy/lib/assets/.keep",
    "content": ""
  },
  {
    "path": "test/dummy/log/.keep",
    "content": ""
  },
  {
    "path": "test/dummy/public/404.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <title>The page you were looking for doesn't exist (404)</title>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <style>\n  .rails-default-error-page {\n    background-color: #EFEFEF;\n    color: #2E2F30;\n    text-align: center;\n    font-family: arial, sans-serif;\n    margin: 0;\n  }\n\n  .rails-default-error-page div.dialog {\n    width: 95%;\n    max-width: 33em;\n    margin: 4em auto 0;\n  }\n\n  .rails-default-error-page div.dialog > div {\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #BBB;\n    border-top: #B00100 solid 4px;\n    border-top-left-radius: 9px;\n    border-top-right-radius: 9px;\n    background-color: white;\n    padding: 7px 12% 0;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n\n  .rails-default-error-page h1 {\n    font-size: 100%;\n    color: #730E15;\n    line-height: 1.5em;\n  }\n\n  .rails-default-error-page div.dialog > p {\n    margin: 0 0 1em;\n    padding: 1em;\n    background-color: #F7F7F7;\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #999;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    border-top-color: #DADADA;\n    color: #666;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n  </style>\n</head>\n\n<body class=\"rails-default-error-page\">\n  <!-- This file lives in public/404.html -->\n  <div class=\"dialog\">\n    <div>\n      <h1>The page you were looking for doesn't exist.</h1>\n      <p>You may have mistyped the address or the page may have moved.</p>\n    </div>\n    <p>If you are the application owner check the logs for more information.</p>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "test/dummy/public/422.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <title>The change you wanted was rejected (422)</title>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <style>\n  .rails-default-error-page {\n    background-color: #EFEFEF;\n    color: #2E2F30;\n    text-align: center;\n    font-family: arial, sans-serif;\n    margin: 0;\n  }\n\n  .rails-default-error-page div.dialog {\n    width: 95%;\n    max-width: 33em;\n    margin: 4em auto 0;\n  }\n\n  .rails-default-error-page div.dialog > div {\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #BBB;\n    border-top: #B00100 solid 4px;\n    border-top-left-radius: 9px;\n    border-top-right-radius: 9px;\n    background-color: white;\n    padding: 7px 12% 0;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n\n  .rails-default-error-page h1 {\n    font-size: 100%;\n    color: #730E15;\n    line-height: 1.5em;\n  }\n\n  .rails-default-error-page div.dialog > p {\n    margin: 0 0 1em;\n    padding: 1em;\n    background-color: #F7F7F7;\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #999;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    border-top-color: #DADADA;\n    color: #666;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n  </style>\n</head>\n\n<body class=\"rails-default-error-page\">\n  <!-- This file lives in public/422.html -->\n  <div class=\"dialog\">\n    <div>\n      <h1>The change you wanted was rejected.</h1>\n      <p>Maybe you tried to change something you didn't have access to.</p>\n    </div>\n    <p>If you are the application owner check the logs for more information.</p>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "test/dummy/public/500.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <title>We're sorry, but something went wrong (500)</title>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <style>\n  .rails-default-error-page {\n    background-color: #EFEFEF;\n    color: #2E2F30;\n    text-align: center;\n    font-family: arial, sans-serif;\n    margin: 0;\n  }\n\n  .rails-default-error-page div.dialog {\n    width: 95%;\n    max-width: 33em;\n    margin: 4em auto 0;\n  }\n\n  .rails-default-error-page div.dialog > div {\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #BBB;\n    border-top: #B00100 solid 4px;\n    border-top-left-radius: 9px;\n    border-top-right-radius: 9px;\n    background-color: white;\n    padding: 7px 12% 0;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n\n  .rails-default-error-page h1 {\n    font-size: 100%;\n    color: #730E15;\n    line-height: 1.5em;\n  }\n\n  .rails-default-error-page div.dialog > p {\n    margin: 0 0 1em;\n    padding: 1em;\n    background-color: #F7F7F7;\n    border: 1px solid #CCC;\n    border-right-color: #999;\n    border-left-color: #999;\n    border-bottom-color: #999;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    border-top-color: #DADADA;\n    color: #666;\n    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);\n  }\n  </style>\n</head>\n\n<body class=\"rails-default-error-page\">\n  <!-- This file lives in public/500.html -->\n  <div class=\"dialog\">\n    <div>\n      <h1>We're sorry, but something went wrong.</h1>\n    </div>\n    <p>If you are the application owner check the logs for more information.</p>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "test/test_helper.rb",
    "content": "# Configure Rails Environment\nENV[\"RAILS_ENV\"] = \"test\"\n\nrequire_relative \"../test/dummy/config/environment\"\nActiveRecord::Migrator.migrations_paths = [File.expand_path(\"../test/dummy/db/migrate\", __dir__)]\nrequire \"rails/test_help\"\n\n# Load fixtures from the engine\nif ActiveSupport::TestCase.respond_to?(:fixture_path=)\n  ActiveSupport::TestCase.fixture_path = File.expand_path(\"fixtures\", __dir__)\n  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path\n  ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + \"/files\"\n  ActiveSupport::TestCase.fixtures :all\nend\n"
  }
]