supercharts-bullet_train 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +29 -0
- data/Rakefile +8 -0
- data/app/assets/config/bullet_train_supercharts_manifest.js +0 -0
- data/app/assets/javascripts/supercharts-bullet-train.esm.js +2 -0
- data/app/assets/javascripts/supercharts-bullet-train.esm.js.map +1 -0
- data/app/assets/javascripts/supercharts-bullet-train.js +2 -0
- data/app/assets/javascripts/supercharts-bullet-train.js.map +1 -0
- data/app/assets/javascripts/supercharts-bullet-train.modern.mjs +2 -0
- data/app/assets/javascripts/supercharts-bullet-train.modern.mjs.map +1 -0
- data/app/assets/javascripts/supercharts-bullet-train.umd.js +2 -0
- data/app/assets/javascripts/supercharts-bullet-train.umd.js.map +1 -0
- data/app/javascript/controllers/index.js +24 -0
- data/app/javascript/controllers/superchart_controller.js +152 -0
- data/app/javascript/controllers/supercharts/filterable_controller.js +17 -0
- data/app/javascript/controllers/supercharts/filters_controller.js +21 -0
- data/app/javascript/index.js +1 -0
- data/config/routes.rb +2 -0
- data/lib/bullet_train/supercharts/engine.rb +13 -0
- data/lib/bullet_train/supercharts/scaffolders/chart_scaffolder.rb +34 -0
- data/lib/bullet_train/supercharts/version.rb +5 -0
- data/lib/bullet_train/supercharts.rb +12 -0
- data/lib/scaffolding/supercharts_chart_transformer.rb +26 -0
- data/lib/scaffolding/supercharts_transformer.rb +8 -0
- data/lib/tasks/bullet_train/supercharts_tasks.rake +4 -0
- metadata +84 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 68933db17c98bed124b85188b4e6f68584a40e3547c65f3262927ecee36c6669
|
4
|
+
data.tar.gz: cf24222cadf2665edbe445d4990fff94524dac9bedaefbf9e8bd9f51efa2a0d8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f19daabb2b111355227c13b07d36a96f522d8ee049002cc93825076fe90afc11a20f5722bbe1d5ceb8d2f6f74ed025238412e5478caebd80902488ad5edc1c21
|
7
|
+
data.tar.gz: 59acbb4d8fa0f20093ac3e8c533a9870b7a6cd21d59bea087b97fee8169ec38cdfb6a218147840b74d6db9cd3eca87aacef3ddb83dc9f2b32090239744376e69
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2022 Pascal Laliberté
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Supercharts for Bullet Train
|
2
|
+
|
3
|
+
Add charts to a [Bullet Train Rails app](https://bullettrain.co) the same way you super-scaffold a resource.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
How to use my plugin.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "supercharts-bullet_train"
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
```bash
|
17
|
+
$ bundle
|
18
|
+
```
|
19
|
+
|
20
|
+
Or install it yourself as:
|
21
|
+
```bash
|
22
|
+
$ gem install supercharts-bullet_train
|
23
|
+
```
|
24
|
+
|
25
|
+
## Contributing
|
26
|
+
Contribution directions go here.
|
27
|
+
|
28
|
+
## License
|
29
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
File without changes
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class s extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:n,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function n(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}s.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],s.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},s.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class o extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}o.targets=["chartSourceData","chart"],o.values={eventName:{type:String,default:"update-chart"}};class i extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}i.targets=["data"],i.values={eventName:{type:String,default:"superchart:update-chart"}};const l=[[s,"superchart_controller.js"],[o,"supercharts/filterable_controller.js"],[i,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{o as FilterableController,i as FiltersController,s as SuperchartController,l as controllerDefinitions};
|
2
|
+
//# sourceMappingURL=supercharts-bullet-train.esm.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.esm.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
var t=require("@supercharts/stimulus-base"),e=require("d3"),r=require("@hotwired/stimulus");function a(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var n=/*#__PURE__*/a(e);function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class o extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=n.csvParse(this.csvDataTarget.innerHTML.trim(),n.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:i,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function i(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}o.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],o.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},o.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class l extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}l.targets=["chartSourceData","chart"],l.values={eventName:{type:String,default:"update-chart"}};class c extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[o,"superchart_controller.js"],[l,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});exports.FilterableController=l,exports.FiltersController=c,exports.SuperchartController=o,exports.controllerDefinitions=u;
|
2
|
+
//# sourceMappingURL=supercharts-bullet-train.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function s(){return s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(t[r]=a[r])}return t},s.apply(this,arguments)}class n extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t=s({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=s({},t,JSON.parse(this.chartjsOptionsTarget.innerHTML.trim()))),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:o,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function o(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}n.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],n.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},n.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class i extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}i.targets=["chartSourceData","chart"],i.values={eventName:{type:String,default:"update-chart"}};class l extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}l.targets=["data"],l.values={eventName:{type:String,default:"superchart:update-chart"}};const c=[[n,"superchart_controller.js"],[i,"supercharts/filterable_controller.js"],[l,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{i as FilterableController,l as FiltersController,n as SuperchartController,c as controllerDefinitions};
|
2
|
+
//# sourceMappingURL=supercharts-bullet-train.modern.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.modern.mjs","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","_extends","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@supercharts/stimulus-base"),require("d3"),require("@hotwired/stimulus")):"function"==typeof define&&define.amd?define(["exports","@supercharts/stimulus-base","d3","@hotwired/stimulus"],e):e((t||self).superchartsBulletTrain={},t.stimulusBase,t.d3,t.stimulus)}(this,function(t,e,r,a){function n(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var s=/*#__PURE__*/n(r);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:l,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function l(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}i.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],i.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class u extends a.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}u.targets=["chartSourceData","chart"],u.values={eventName:{type:String,default:"update-chart"}};class c extends a.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const d=[[i,"superchart_controller.js"],[u,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});t.FilterableController=u,t.FiltersController=c,t.SuperchartController=i,t.controllerDefinitions=d});
|
2
|
+
//# sourceMappingURL=supercharts-bullet-train.umd.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.umd.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { identifierForContextKey } from "@hotwired/stimulus-webpack-helpers"
|
2
|
+
|
3
|
+
import SuperchartController from "./superchart_controller"
|
4
|
+
import FilterableController from "./supercharts/filterable_controller"
|
5
|
+
import FiltersController from "./supercharts/filters_controller"
|
6
|
+
|
7
|
+
export const controllerDefinitions = [
|
8
|
+
[SuperchartController, "superchart_controller.js"],
|
9
|
+
[FilterableController, "supercharts/filterable_controller.js"],
|
10
|
+
[FiltersController, "supercharts/filters_controller.js"],
|
11
|
+
].map(function(d) {
|
12
|
+
const key = d[1]
|
13
|
+
const controller = d[0]
|
14
|
+
return {
|
15
|
+
identifier: identifierForContextKey(key),
|
16
|
+
controllerConstructor: controller
|
17
|
+
}
|
18
|
+
})
|
19
|
+
|
20
|
+
export {
|
21
|
+
SuperchartController,
|
22
|
+
FilterableController,
|
23
|
+
FiltersController,
|
24
|
+
}
|
@@ -0,0 +1,152 @@
|
|
1
|
+
import { SuperchartChartjsController } from '@supercharts/stimulus-base'
|
2
|
+
import * as d3 from "d3"
|
3
|
+
|
4
|
+
export default class extends SuperchartChartjsController {
|
5
|
+
static targets = [ "chartjsOptions", "chartjsData", "chartjsCanvas", "csvData" ]
|
6
|
+
static values = {
|
7
|
+
type: {
|
8
|
+
type: String,
|
9
|
+
default: "line"
|
10
|
+
},
|
11
|
+
label: {
|
12
|
+
type: String,
|
13
|
+
default: "Value"
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
static defaultCssProperties = {
|
18
|
+
'--animation-duration': 200, // milliseconds
|
19
|
+
}
|
20
|
+
|
21
|
+
connect() {
|
22
|
+
super.connect()
|
23
|
+
}
|
24
|
+
|
25
|
+
updateChart() {
|
26
|
+
super.updateChart()
|
27
|
+
}
|
28
|
+
|
29
|
+
get chartjsData() {
|
30
|
+
if (this.hasChartJsDataTarget) {
|
31
|
+
return super.chartjsData()
|
32
|
+
}
|
33
|
+
if (!this.hasCsvDataTarget) {
|
34
|
+
console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)
|
35
|
+
return []
|
36
|
+
}
|
37
|
+
|
38
|
+
const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)
|
39
|
+
return {
|
40
|
+
labels: csv.map(d => d[csv.columns[0]]),
|
41
|
+
datasets: [{
|
42
|
+
type: this.typeValue,
|
43
|
+
label: this.labelValue,
|
44
|
+
data: csv.map(d => d[csv.columns[1]])
|
45
|
+
}]
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
get chartjsOptions() {
|
50
|
+
let options = {
|
51
|
+
...this.defaultOptions
|
52
|
+
}
|
53
|
+
|
54
|
+
if (this.hasChartjsOptionsTarget) {
|
55
|
+
options = {
|
56
|
+
...options,
|
57
|
+
...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
return options
|
62
|
+
}
|
63
|
+
|
64
|
+
// You can set default options in this getter for all your charts.
|
65
|
+
get defaultOptions() {
|
66
|
+
const transparentWhite = '#ffffff66'
|
67
|
+
return {
|
68
|
+
maintainAspectRatio: false,
|
69
|
+
animation: {
|
70
|
+
x: {
|
71
|
+
type: 'number',
|
72
|
+
easing: 'linear',
|
73
|
+
duration: this.delayBetweenPoints,
|
74
|
+
from: NaN, // the point is initially skipped
|
75
|
+
delay: (ctx) => {
|
76
|
+
if (ctx.type !== 'data' || ctx.xStarted) {
|
77
|
+
return 0;
|
78
|
+
}
|
79
|
+
ctx.xStarted = true;
|
80
|
+
return ctx.index * this.delayBetweenPoints;
|
81
|
+
}
|
82
|
+
},
|
83
|
+
y: {
|
84
|
+
type: 'number',
|
85
|
+
easing: 'linear',
|
86
|
+
duration: this.delayBetweenPoints,
|
87
|
+
from: previousY,
|
88
|
+
delay: (ctx) => {
|
89
|
+
if (ctx.type !== 'data' || ctx.yStarted) {
|
90
|
+
return 0;
|
91
|
+
}
|
92
|
+
ctx.yStarted = true;
|
93
|
+
return ctx.index * this.delayBetweenPoints;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
plugins: {
|
98
|
+
legend: {
|
99
|
+
display: false,
|
100
|
+
}
|
101
|
+
},
|
102
|
+
color: transparentWhite,
|
103
|
+
borderColor: 'rgb(4, 123, 248)',
|
104
|
+
fill: false,
|
105
|
+
lineTension: 0.3,
|
106
|
+
backgroundColor: "#fff",
|
107
|
+
borderColor: "#047bf8",
|
108
|
+
borderCapStyle: "butt",
|
109
|
+
borderDash: [],
|
110
|
+
borderDashOffset: 0,
|
111
|
+
borderJoinStyle: "miter",
|
112
|
+
pointBorderColor: "rgb(50, 60, 88)",
|
113
|
+
pointBackgroundColor: "#fff",
|
114
|
+
pointBorderWidth: 4,
|
115
|
+
pointHoverRadius: 10,
|
116
|
+
pointHoverBackgroundColor: "#fff",
|
117
|
+
pointHoverBorderColor: "rgb(50, 60, 88)",
|
118
|
+
pointHoverBorderWidth: 3,
|
119
|
+
pointRadius: 6,
|
120
|
+
pointHitRadius: 10,
|
121
|
+
spanGaps: false,
|
122
|
+
scales: {
|
123
|
+
x: {
|
124
|
+
grid: {
|
125
|
+
borderColor: transparentWhite
|
126
|
+
},
|
127
|
+
ticks: {
|
128
|
+
color: transparentWhite,
|
129
|
+
tickColor: transparentWhite
|
130
|
+
}
|
131
|
+
},
|
132
|
+
y: {
|
133
|
+
grid: {
|
134
|
+
borderColor: transparentWhite,
|
135
|
+
tickColor: transparentWhite
|
136
|
+
},
|
137
|
+
ticks: {
|
138
|
+
color: transparentWhite
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
get delayBetweenPoints() {
|
146
|
+
return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
function previousY (ctx) {
|
151
|
+
return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;
|
152
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Controller } from '@hotwired/stimulus'
|
2
|
+
|
3
|
+
export default class extends Controller {
|
4
|
+
static targets = [ "chartSourceData", "chart" ]
|
5
|
+
static values = {
|
6
|
+
eventName: {
|
7
|
+
type: String,
|
8
|
+
default: "update-chart"
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
updateChart(event) {
|
13
|
+
this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML
|
14
|
+
event.detail.dataElement.remove()
|
15
|
+
this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Controller } from '@hotwired/stimulus'
|
2
|
+
|
3
|
+
export default class extends Controller {
|
4
|
+
static targets = [ "data" ]
|
5
|
+
static values = {
|
6
|
+
eventName: {
|
7
|
+
type: String,
|
8
|
+
default: "superchart:update-chart"
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
connect() {
|
13
|
+
this.element.dispatchEvent(
|
14
|
+
new CustomEvent(this.eventNameValue, {
|
15
|
+
detail: { dataElement: this.dataTarget },
|
16
|
+
bubbles: true,
|
17
|
+
cancelable: true
|
18
|
+
})
|
19
|
+
)
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './controllers'
|
data/config/routes.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module BulletTrain
|
2
|
+
module Supercharts
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
initializer "bullet_train.super_scaffolding.supercharts.templates.register_template_path" do |app|
|
5
|
+
# Register the base path of this package with the Super Scaffolding engine.
|
6
|
+
BulletTrain::SuperScaffolding.template_paths << File.expand_path('../../../..', __FILE__)
|
7
|
+
BulletTrain::SuperScaffolding.scaffolders.merge!({
|
8
|
+
"supercharts:chart" => "BulletTrain::Supercharts::Scaffolders::ChartScaffolder",
|
9
|
+
})
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "scaffolding/supercharts_chart_transformer"
|
2
|
+
|
3
|
+
module BulletTrain
|
4
|
+
module Supercharts
|
5
|
+
module Scaffolders
|
6
|
+
class ChartScaffolder < SuperScaffolding::Scaffolder
|
7
|
+
def run
|
8
|
+
unless argv.count >= 2
|
9
|
+
puts ""
|
10
|
+
puts "🚅 usage: bin/super-scaffold supercharts:chart <TargetModel> <ParentModel[s]>"
|
11
|
+
puts ""
|
12
|
+
puts "E.g. a chart on the team dashboard showing click-throughs per day"
|
13
|
+
puts "This is assuming that you've already got a ClickThrough model, capturing each campaign click-through as a separate record. The chart will default to group by day derived by the :created_at"
|
14
|
+
puts ""
|
15
|
+
puts " bin/super-scaffold supercharts:chart ClickThrough Team"
|
16
|
+
puts ""
|
17
|
+
standard_protip
|
18
|
+
puts ""
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
|
22
|
+
target_model, parent_models = argv
|
23
|
+
parent_models = parent_models.split(",")
|
24
|
+
parent_models += ["Team"]
|
25
|
+
parent_models = parent_models.map(&:classify).uniq
|
26
|
+
|
27
|
+
transformer = Scaffolding::SuperchartsChartTransformer.new(target_model, parent_models)
|
28
|
+
|
29
|
+
transformer.scaffold_supercharts
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "bullet_train/supercharts/version"
|
2
|
+
require "bullet_train/supercharts/engine"
|
3
|
+
require "scaffolding"
|
4
|
+
require "scaffolding/transformer"
|
5
|
+
require "scaffolding/block_manipulator"
|
6
|
+
require "bullet_train/supercharts/scaffolders/chart_scaffolder"
|
7
|
+
|
8
|
+
module BulletTrain
|
9
|
+
module Supercharts
|
10
|
+
# Your code goes here...
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "scaffolding/supercharts_transformer"
|
2
|
+
|
3
|
+
class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransformer
|
4
|
+
def scaffold_supercharts
|
5
|
+
super
|
6
|
+
|
7
|
+
# add children to the show page of their parent.
|
8
|
+
unless cli_options["skip-parent"] || parent == "None"
|
9
|
+
lines_to_add = <<~RUBY
|
10
|
+
<div class="mt-4">
|
11
|
+
Insert #{child} chart here
|
12
|
+
</div>
|
13
|
+
RUBY
|
14
|
+
scaffold_add_line_to_file(
|
15
|
+
parent_show_file,
|
16
|
+
lines_to_add,
|
17
|
+
"<%# 🚅 super scaffolding will insert new children above this line. %>",
|
18
|
+
prepend: true
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def parent_show_file
|
24
|
+
@target_show_file ||= "./app/views/account/scaffolding/absolutely_abstract/creative_concepts/show.html.erb"
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: supercharts-bullet_train
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pascal Laliberté
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-09-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 6.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 6.0.0
|
27
|
+
description: Supercharts for Bullet Train
|
28
|
+
email:
|
29
|
+
- pascal@hey.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- MIT-LICENSE
|
35
|
+
- README.md
|
36
|
+
- Rakefile
|
37
|
+
- app/assets/config/bullet_train_supercharts_manifest.js
|
38
|
+
- app/assets/javascripts/supercharts-bullet-train.esm.js
|
39
|
+
- app/assets/javascripts/supercharts-bullet-train.esm.js.map
|
40
|
+
- app/assets/javascripts/supercharts-bullet-train.js
|
41
|
+
- app/assets/javascripts/supercharts-bullet-train.js.map
|
42
|
+
- app/assets/javascripts/supercharts-bullet-train.modern.mjs
|
43
|
+
- app/assets/javascripts/supercharts-bullet-train.modern.mjs.map
|
44
|
+
- app/assets/javascripts/supercharts-bullet-train.umd.js
|
45
|
+
- app/assets/javascripts/supercharts-bullet-train.umd.js.map
|
46
|
+
- app/javascript/controllers/index.js
|
47
|
+
- app/javascript/controllers/superchart_controller.js
|
48
|
+
- app/javascript/controllers/supercharts/filterable_controller.js
|
49
|
+
- app/javascript/controllers/supercharts/filters_controller.js
|
50
|
+
- app/javascript/index.js
|
51
|
+
- config/routes.rb
|
52
|
+
- lib/bullet_train/supercharts.rb
|
53
|
+
- lib/bullet_train/supercharts/engine.rb
|
54
|
+
- lib/bullet_train/supercharts/scaffolders/chart_scaffolder.rb
|
55
|
+
- lib/bullet_train/supercharts/version.rb
|
56
|
+
- lib/scaffolding/supercharts_chart_transformer.rb
|
57
|
+
- lib/scaffolding/supercharts_transformer.rb
|
58
|
+
- lib/tasks/bullet_train/supercharts_tasks.rake
|
59
|
+
homepage: https://github.com/supercharts-dev/supercharts-bullet_train
|
60
|
+
licenses:
|
61
|
+
- MIT
|
62
|
+
metadata:
|
63
|
+
homepage_uri: https://github.com/supercharts-dev/supercharts-bullet_train
|
64
|
+
source_code_uri: https://github.com/supercharts-dev/supercharts-bullet_train
|
65
|
+
post_install_message:
|
66
|
+
rdoc_options: []
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
requirements: []
|
80
|
+
rubygems_version: 3.3.7
|
81
|
+
signing_key:
|
82
|
+
specification_version: 4
|
83
|
+
summary: Supercharts for Bullet Train
|
84
|
+
test_files: []
|