supercharts-bullet_train 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ccbb6f14b547f76aca5280feadf624e38d431ff2bb7ef02ac25ad5c5f6bc6d01
4
- data.tar.gz: 4d9b1283c5c269ceb9bb8f3ed81bee6cd91ee466ed0e12349fe270896a9caee0
3
+ metadata.gz: 7f4f819b9d3111cce3c7637ddabe7d3cd95357b6abd7df00a3faa9b9836d4f70
4
+ data.tar.gz: 7dd01fb510cbe02dbca128932d3985e9bb0c3781e3d3e7ea72ebea3afb7a776b
5
5
  SHA512:
6
- metadata.gz: 2142b4b2a98043da078170a8571917e2e71b9a57a0766231c497ff6c9042f3d0aa8057fb9278cb6b22f66294873011cd005e8155d2e54367a5dbaf7fd0e89c91
7
- data.tar.gz: fabab436ce65fc506383b7333e9d54efdf6756e795847c56981eb79be318daff64eef0a85cc3ba299f3a9bf5de95bafbb6c23929ed5ad39cbe47f560806f0e1a
6
+ metadata.gz: '076290464adeb48e2d95eaa245d7f54e744996539a45ad5fae42a3bfe054fe851b562dce76abb2c6ed6d89e80252102c03610c4381c2b5425b78743856767202'
7
+ data.tar.gz: 6de4b6961bddd9f2c703bce071716506247dbf5a339f6c4a60e0b06dc26cff58b402bc3694ea517d29b5d91afd79fe2caf68e1005ad43fdaf00f29e0af243734
data/README.md CHANGED
@@ -111,6 +111,8 @@ FactoryBot.create_list(:click_through, 450, :created_last_2_months, team_id: 1)
111
111
 
112
112
  Visit your app in `localhost:3000` and you should see your new chart.
113
113
 
114
+ ![Example chart inside a Bullet Train app showing Click Throughs in the last 30 days](https://user-images.githubusercontent.com/104179/194341008-c8b9f232-4117-4c8a-b93f-e95cf1d5159f.gif)
115
+
114
116
  ## Modifying the chart
115
117
 
116
118
  Coming soon...
@@ -121,4 +123,4 @@ Contribution directions go here.
121
123
  ## License
122
124
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
123
125
 
124
- [bullet-train]: https://bullettrain.co
126
+ [bullet-train]: https://bullettrain.co
@@ -1,2 +1,2 @@
1
- import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as a from"d3";import{Controller as r}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class o extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,a;const r=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[r][this.csvData.columns[1]],value:this.csvData[r][this.csvData.columns[2]],show:!(null==t||null==(a=t.tooltip)||!a.opacity)}})}parseCsvData(){this.csvData=a.csvParse(this.csvDataTarget.innerHTML.trim(),a.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e(this.chartjsOptionsTarget)}),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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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"}},o.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class l extends r{showDescriptionWith(t){var e,a,r;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(a=t.detail)?void 0:a.value,o=null==t||null==(r=t.detail)?void 0:r.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}l.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],l.classes=["hideOverallDescription","hideContextualDescription"];class n extends r{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}n.targets=["chartSourceData","chart"],n.values={eventName:{type:String,default:"update-chart"}};class c extends r{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 h=[[o,"superchart_controller.js"],[l,"supercharts/describable_controller.js"],[n,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{l as DescribableController,n as FilterableController,c as FiltersController,o as SuperchartController,h as controllerDefinitions};
1
+ import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as a from"d3";import{Controller as r}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class o extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,a;const r=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[r][this.csvData.columns[1]],value:this.csvData[r][this.csvData.columns[2]],show:!(null==t||null==(a=t.tooltip)||!a.opacity)}})}parseCsvData(){this.csvData=a.csvParse(this.csvDataTarget.innerHTML.trim(),a.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e(this.chartjsOptionsTarget)}),this.parseForCssVars(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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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"}},o.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class l extends r{showDescriptionWith(t){var e,a,r;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(a=t.detail)?void 0:a.value,o=null==t||null==(r=t.detail)?void 0:r.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}l.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],l.classes=["hideOverallDescription","hideContextualDescription"];class n extends r{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}n.targets=["chartSourceData","chart"],n.values={eventName:{type:String,default:"update-chart"}};class c extends r{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 h=[[o,"superchart_controller.js"],[l,"supercharts/describable_controller.js"],[n,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{l as DescribableController,n as FilterableController,c as FiltersController,o as SuperchartController,h as controllerDefinitions};
2
2
  //# sourceMappingURL=supercharts-bullet-train.esm.js.map
@@ -1 +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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","axisColor","fill","lineTension","backgroundColor","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +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 s=/*#__PURE__*/a(e);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let e={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(e={...e,...t.parseContentsAsJSON(this.chartjsOptionsTarget)}),e}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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class n extends r.Controller{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[i,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});exports.DescribableController=n,exports.FilterableController=c,exports.FiltersController=h,exports.SuperchartController=i,exports.controllerDefinitions=u;
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 s=/*#__PURE__*/a(e);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let e={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(e={...e,...t.parseContentsAsJSON(this.chartjsOptionsTarget)}),this.parseForCssVars(e)}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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class n extends r.Controller{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[i,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});exports.DescribableController=n,exports.FilterableController=c,exports.FiltersController=h,exports.SuperchartController=i,exports.controllerDefinitions=u;
2
2
  //# sourceMappingURL=supercharts-bullet-train.js.map
@@ -1 +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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","axisColor","fill","lineTension","backgroundColor","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as a from"d3";import{Controller as r}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function o(){return o=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},o.apply(this,arguments)}class i extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,a;const r=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[r][this.csvData.columns[1]],value:this.csvData[r][this.csvData.columns[2]],show:!(null==t||null==(a=t.tooltip)||!a.opacity)}})}parseCsvData(){this.csvData=a.csvParse(this.csvDataTarget.innerHTML.trim(),a.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t=o({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=o({},t,e(this.chartjsOptionsTarget))),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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class n extends r{showDescriptionWith(t){var e,a,r;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(a=t.detail)?void 0:a.value,o=null==t||null==(r=t.detail)?void 0:r.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends r{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends r{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const d=[[i,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{n as DescribableController,c as FilterableController,h as FiltersController,i as SuperchartController,d as controllerDefinitions};
1
+ import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as a from"d3";import{Controller as r}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function o(){return o=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},o.apply(this,arguments)}class i extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,a;const r=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[r][this.csvData.columns[1]],value:this.csvData[r][this.csvData.columns[2]],show:!(null==t||null==(a=t.tooltip)||!a.opacity)}})}parseCsvData(){this.csvData=a.csvParse(this.csvDataTarget.innerHTML.trim(),a.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t=o({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=o({},t,e(this.chartjsOptionsTarget))),this.parseForCssVars(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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class n extends r{showDescriptionWith(t){var e,a,r;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(a=t.detail)?void 0:a.value,o=null==t||null==(r=t.detail)?void 0:r.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends r{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends r{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const d=[[i,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{n as DescribableController,c as FilterableController,h as FiltersController,i as SuperchartController,d as controllerDefinitions};
2
2
  //# sourceMappingURL=supercharts-bullet-train.modern.mjs.map
@@ -1 +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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","hasChartJsDataTarget","chartjsData","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","_extends","parseContentsAsJSON","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","fill","lineTension","backgroundColor","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","hasChartJsDataTarget","chartjsData","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","_extends","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","axisColor","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +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 s(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 o=/*#__PURE__*/s(r);function i(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class l extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=o.csvParse(this.csvDataTarget.innerHTML.trim(),o.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e.parseContentsAsJSON(this.chartjsOptionsTarget)}),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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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}l.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],l.values={type:{type:String,default:"line"}},l.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class c extends a.Controller{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}c.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],c.classes=["hideOverallDescription","hideContextualDescription"];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 d extends a.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}d.targets=["data"],d.values={eventName:{type:String,default:"superchart:update-chart"}};const h=[[l,"superchart_controller.js"],[c,"supercharts/describable_controller.js"],[u,"supercharts/filterable_controller.js"],[d,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:i(t[1]),controllerConstructor:e}});t.DescribableController=c,t.FilterableController=u,t.FiltersController=d,t.SuperchartController=l,t.controllerDefinitions=h});
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 s(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 o=/*#__PURE__*/s(r);function i(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class l extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=o.csvParse(this.csvDataTarget.innerHTML.trim(),o.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e.parseContentsAsJSON(this.chartjsOptionsTarget)}),this.parseForCssVars(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)}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor: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 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}l.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],l.values={type:{type:String,default:"line"}},l.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333"};class c extends a.Controller{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}c.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],c.classes=["hideOverallDescription","hideContextualDescription"];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 d extends a.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}d.targets=["data"],d.values={eventName:{type:String,default:"superchart:update-chart"}};const h=[[l,"superchart_controller.js"],[c,"supercharts/describable_controller.js"],[u,"supercharts/filterable_controller.js"],[d,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:i(t[1]),controllerConstructor:e}});t.DescribableController=c,t.FilterableController=u,t.FiltersController=d,t.SuperchartController=l,t.controllerDefinitions=h});
2
2
  //# sourceMappingURL=supercharts-bullet-train.umd.js.map
@@ -1 +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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","axisColor","fill","lineTension","backgroundColor","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
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/describable_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, parseContentsAsJSON } 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 }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\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 this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(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 interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: 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 = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\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 DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_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 DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","describeDataForX","event","dataIndex","_event$tooltip","tooltip","dataPoints","this","dispatch","detail","label","csvData","columns","value","show","_event$tooltip2","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","interaction","mode","intersect","plugins","legend","display","enabled","position","external","bind","color","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -77,7 +77,7 @@ export default class extends SuperchartChartjsController {
77
77
  }
78
78
  }
79
79
 
80
- return options
80
+ return this.parseForCssVars(options)
81
81
  }
82
82
 
83
83
  // You can set default options in this getter for all your charts.
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module Supercharts
3
- VERSION = "0.1.10"
3
+ VERSION = "0.1.11"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: supercharts-bullet_train
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Laliberté
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-06 00:00:00.000000000 Z
11
+ date: 2022-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails