supercharts-bullet_train 0.1.2 → 0.1.4

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: 6753fdf7667abbfab39cfae072cc6700125ea7a728e551be8db5b34385e35de7
4
- data.tar.gz: 1d179f8527014cc41ddecc50f327ae71de2894e3a7b303b1f77521a5a9791506
3
+ metadata.gz: 0e2df38424956da302e03bd4ce4ccf361f3926e27495f38bbbdbe33da0716690
4
+ data.tar.gz: 6282792b2772504a4ca23ad76768226b09105738ea4b2a8ec1b61b190d8f3c27
5
5
  SHA512:
6
- metadata.gz: bd24f82296ceaeb1bc8e62c2c7da8999668198a441b862b430c54d802cda5823093ccfbe73c2ccb817ce42dea96c7dfa0fe224cbaddc47638325da5f3dd92119
7
- data.tar.gz: 8d992be3d5b7648fd6f2f75f37b14b03956f89364549540b77de972a7b2bb81bf11e791e2e1ca2e98b6a59145aaf368b5be208ae21a7189cb36bbce85c11e4ba
6
+ metadata.gz: 797a24c3ff61e9012f8e50d14670c0da3623e422b5ad3c2d3d4d83513e3c65251437b82dfd91ad66863f5c2c4cb5ccf5a73600877f5e162d5f775a17e47ba822
7
+ data.tar.gz: fd87d162795f35228f843e1523cdb008189ccfb7e65e6a521f5ec575cb00fca335317ea9ef1a6b2b851cc72d04cff9b79feb9e7248ef2dd2055c3fbe8b256bba
data/.bt-link ADDED
File without changes
@@ -1,2 +1,2 @@
1
- import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class s extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t="#ffffff66";return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:n,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function n(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}s.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],s.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},s.defaultCssProperties={"--animation-duration":200};class o extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}o.targets=["chartSourceData","chart"],o.values={eventName:{type:String,default:"update-chart"}};class i extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}i.targets=["data"],i.values={eventName:{type:String,default:"superchart:update-chart"}};const l=[[s,"superchart_controller.js"],[o,"supercharts/filterable_controller.js"],[i,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{o as FilterableController,i as FiltersController,s as SuperchartController,l as controllerDefinitions};
1
+ import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class s extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:n,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function n(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}s.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],s.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},s.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class o extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}o.targets=["chartSourceData","chart"],o.values={eventName:{type:String,default:"update-chart"}};class i extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}i.targets=["data"],i.values={eventName:{type:String,default:"superchart:update-chart"}};const l=[[s,"superchart_controller.js"],[o,"supercharts/filterable_controller.js"],[i,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{o as FilterableController,i as FiltersController,s as SuperchartController,l as controllerDefinitions};
2
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/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const transparentWhite = '#ffffff66'\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: transparentWhite,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: transparentWhite\n },\n ticks: {\n color: transparentWhite,\n tickColor: transparentWhite\n }\n },\n y: {\n grid: {\n borderColor: transparentWhite,\n tickColor: transparentWhite\n },\n ticks: {\n color: transparentWhite\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","transparentWhite","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","cssPropertyValue","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"8IAqBA,SAASA,EAAwBC,GAC7B,MAAMC,GAAeD,EAAIE,MAAM,2CAA6C,IAAI,GAChF,GAAID,EACA,OAAOA,EAAYE,QAAQ,KAAM,KAAKA,QAAQ,MAAO,KAE7D,CCvB6BC,MAAAA,UAAAA,EAiB3BC,UACEC,MAAMD,SACP,CAEDE,cACED,MAAMC,aACP,CAEcC,kBACb,GAAIC,KAAKC,qBACP,OAAaF,MAAAA,cAEf,IAAKC,KAAKE,iBAER,OADAC,QAAQC,KAAM,2FACP,GAGT,QAAYC,EAAGC,SAASN,KAAKO,cAAcC,UAAUC,OAAQJ,EAAGK,UAChE,MAAO,CACLC,OAAQC,EAAIC,IAAIC,GAAKA,EAAEF,EAAIG,QAAQ,KACnCC,SAAU,CAAC,CACTC,KAAMjB,KAAKkB,UACXC,MAAOnB,KAAKoB,WACZC,KAAMT,EAAIC,IAAIC,GAAKA,EAAEF,EAAIG,QAAQ,OAGtC,sBAGC,IAAIO,EAAU,IACTtB,KAAKuB,gBAUV,OAPIvB,KAAKwB,0BACPF,EAAU,IACLA,KACAG,KAAKC,MAAM1B,KAAK2B,qBAAqBnB,UAAUC,UAKvDa,CAAA,CAGiBC,qBAChB,MAAsBK,EAAG,YACzB,MAAO,CACLC,qBAAqB,EACrBC,UAAW,CACTC,EAAG,CACDd,KAAM,SACNe,OAAQ,SACRC,SAAUjC,KAAKkC,mBACfC,KAAMC,IACNC,MAAQC,GACW,SAAbA,EAAIrB,MAAmBqB,EAAIC,SAE9B,GACDD,EAAIC,UAAW,EACLD,EAACE,MAAQxC,KAAKkC,qBAG5BO,EAAG,CACDxB,KAAM,SACNe,OAAQ,SACRC,SAAUjC,KAAKkC,mBACfC,KAAMO,EACNL,MAAQC,GACW,SAAbA,EAAIrB,MAAmBqB,EAAIK,SACtB,GAETL,EAAIK,UAAW,EACRL,EAAIE,MAAQxC,KAAKkC,sBAI9BU,QAAS,CACPC,OAAQ,CACNC,SAAS,IAGbC,MAAOnB,EACPoB,YAAa,mBACbC,MAAM,EACNC,YAAa,GACbC,gBAAiB,OACjBH,YAAa,UACbI,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBC,iBAAkB,kBAClBC,qBAAsB,OACtBC,iBAAkB,EAClBC,iBAAkB,GAClBC,0BAA2B,OAC3BC,sBAAuB,kBACvBC,sBAAuB,EACvBC,YAAa,EACbC,eAAgB,GAChBC,UAAU,EACVC,OAAQ,CACNnC,EAAG,CACDoC,KAAM,CACJnB,YAAapB,GAEfwC,MAAO,CACLrB,MAAOnB,EACPyC,UAAWzC,IAGfa,EAAG,CACD0B,KAAM,CACJnB,YAAapB,EACbyC,UAAWzC,GAEbwC,MAAO,CACLrB,MAAOnB,KAKhB,CAEqBM,yBACpB,IAAAoC,EAAAC,EAAAC,EAAA,OAAYC,KAAAA,iBAAiB,yBAA0B,OAAhDH,EAAgDtE,KAAKD,cAArD,OAAgDwE,EAAAD,EAAkBtD,SAAS,KAA3B,OAAhDwD,EAAgDD,EAA+BlD,WAA/B,EAAAmD,EAAqCE,OAC7F,EAGH,SAAAhC,EAAoBJ,GAClB,OAAqB,IAAdA,EAAIE,MAAcF,EAAIqC,MAAMT,OAAOzB,EAAEmC,iBAAiB,KAAOtC,EAAIqC,MAAME,eAAevC,EAAIwC,cAAczD,KAAKiB,EAAIE,MAAQ,GAAGuC,SAAS,CAAC,MAAM,GAAMtC,CAC1J,GAnJQuC,QAAU,CAAE,iBAAkB,cAAe,gBAAiB,WAC9DC,EAAAA,OAAS,CACdhE,KAAM,CACJA,KAAMiE,OACNC,QAAS,QAEXhE,MAAO,CACLF,KAAMiE,OACNC,QAAS,UAINC,EAAAA,qBAAuB,CAC5B,uBAAwB,KCfCC,MAAAA,UAAAA,EAS3BvF,YAAYwF,GACVtF,KAAKuF,sBAAsB/E,UAAY8E,EAAME,OAAOC,YAAYjF,UAChE8E,EAAME,OAAOC,YAAYC,SACzB1F,KAAK2F,YAAYC,cAAc,IAAIC,YAAY7F,KAAK8F,gBACrD,IAZMd,QAAU,CAAE,kBAAmB,SAC/BC,EAAAA,OAAS,CACdc,UAAW,CACT9E,KAAMiE,OACNC,QAAS,iBCLA,MAAAa,UAAyBX,EAStCzF,UACEI,KAAKiG,QAAQL,cACX,IAAAC,YAAgB7F,KAAK8F,eAAgB,CACnCN,OAAQ,CAAEC,YAAazF,KAAKkG,YAC5BC,SAAS,EACTC,YAAY,IAGjB,IAhBMpB,QAAU,CAAE,UACZC,OAAS,CACdc,UAAW,CACT9E,KAAMiE,OACNC,QAAS,4BCDFkB,MAAAA,EAAwB,CACnC,CAACC,EAAsB,4BACvB,CAACC,EAAsB,wCACvB,CAACC,EAAmB,sCACpB3F,IAAI,SAASC,GACb,MACM2F,EAAa3F,EAAE,GACrB,MAAO,CACL4F,WAAYpH,EAHFwB,EAAE,IAIZ6F,sBAAuBF,EAE1B"}
1
+ {"version":3,"file":"supercharts-bullet-train.esm.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -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 n=/*#__PURE__*/a(e);function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class o extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=n.csvParse(this.csvDataTarget.innerHTML.trim(),n.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t="#ffffff66";return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:i,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function i(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}o.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],o.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},o.defaultCssProperties={"--animation-duration":200};class l extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}l.targets=["chartSourceData","chart"],l.values={eventName:{type:String,default:"update-chart"}};class c extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[o,"superchart_controller.js"],[l,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});exports.FilterableController=l,exports.FiltersController=c,exports.SuperchartController=o,exports.controllerDefinitions=u;
1
+ var t=require("@supercharts/stimulus-base"),e=require("d3"),r=require("@hotwired/stimulus");function a(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var n=/*#__PURE__*/a(e);function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class o extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=n.csvParse(this.csvDataTarget.innerHTML.trim(),n.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:i,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function i(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}o.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],o.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},o.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class l extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}l.targets=["chartSourceData","chart"],l.values={eventName:{type:String,default:"update-chart"}};class c extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[o,"superchart_controller.js"],[l,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});exports.FilterableController=l,exports.FiltersController=c,exports.SuperchartController=o,exports.controllerDefinitions=u;
2
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/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const transparentWhite = '#ffffff66'\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: transparentWhite,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: transparentWhite\n },\n ticks: {\n color: transparentWhite,\n tickColor: transparentWhite\n }\n },\n y: {\n grid: {\n borderColor: transparentWhite,\n tickColor: transparentWhite\n },\n ticks: {\n color: transparentWhite\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","transparentWhite","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","cssPropertyValue","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
1
+ {"version":3,"file":"supercharts-bullet-train.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function n(){return n=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},n.apply(this,arguments)}class s extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t=n({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=n({},t,JSON.parse(this.chartjsOptionsTarget.innerHTML.trim()))),t}get defaultOptions(){const t="#ffffff66";return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:o,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function o(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}s.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],s.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},s.defaultCssProperties={"--animation-duration":200};class i extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}i.targets=["chartSourceData","chart"],i.values={eventName:{type:String,default:"update-chart"}};class l extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}l.targets=["data"],l.values={eventName:{type:String,default:"superchart:update-chart"}};const c=[[s,"superchart_controller.js"],[i,"supercharts/filterable_controller.js"],[l,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{i as FilterableController,l as FiltersController,s as SuperchartController,c as controllerDefinitions};
1
+ import{SuperchartChartjsController as t}from"@supercharts/stimulus-base";import*as e from"d3";import{Controller as a}from"@hotwired/stimulus";function r(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function s(){return s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(t[r]=a[r])}return t},s.apply(this,arguments)}class n extends t{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=e.csvParse(this.csvDataTarget.innerHTML.trim(),e.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t=s({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=s({},t,JSON.parse(this.chartjsOptionsTarget.innerHTML.trim()))),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:o,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,a;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(a=e.data)?void 0:a.length)}}function o(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}n.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],n.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},n.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class i extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}i.targets=["chartSourceData","chart"],i.values={eventName:{type:String,default:"update-chart"}};class l extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}l.targets=["data"],l.values={eventName:{type:String,default:"superchart:update-chart"}};const c=[[n,"superchart_controller.js"],[i,"supercharts/filterable_controller.js"],[l,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:r(t[1]),controllerConstructor:e}});export{i as FilterableController,l as FiltersController,n as SuperchartController,c as controllerDefinitions};
2
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/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const transparentWhite = '#ffffff66'\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: transparentWhite,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: transparentWhite\n },\n ticks: {\n color: transparentWhite,\n tickColor: transparentWhite\n }\n },\n y: {\n grid: {\n borderColor: transparentWhite,\n tickColor: transparentWhite\n },\n ticks: {\n color: transparentWhite\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","_extends","defaultOptions","hasChartjsOptionsTarget","options","JSON","parse","chartjsOptionsTarget","transparentWhite","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","cssPropertyValue","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"8IAqBA,SAASA,EAAwBC,GAC7B,MAAMC,GAAeD,EAAIE,MAAM,2CAA6C,IAAI,GAChF,GAAID,EACA,OAAOA,EAAYE,QAAQ,KAAM,KAAKA,QAAQ,MAAO,KAE7D,qOCvB6BC,MAAAA,UAAAA,EAiB3BC,UACEC,MAAMD,SACP,CAEDE,cACED,MAAMC,aACP,CAEcC,kBACb,GAAIC,KAAKC,qBACP,OAAaF,MAAAA,cAEf,IAAKC,KAAKE,iBAER,OADAC,QAAQC,KAAM,2FACP,GAGT,QAAYC,EAAGC,SAASN,KAAKO,cAAcC,UAAUC,OAAQJ,EAAGK,UAChE,MAAO,CACLC,OAAQC,EAAIC,IAAIC,GAAKA,EAAEF,EAAIG,QAAQ,KACnCC,SAAU,CAAC,CACTC,KAAMjB,KAAKkB,UACXC,MAAOnB,KAAKoB,WACZC,KAAMT,EAAIC,IAAIC,GAAKA,EAAEF,EAAIG,QAAQ,OAGtC,CAEiBO,qBAChB,MACKC,EAAA,CAAA,EAAAvB,KAAKwB,gBAUV,OAPIxB,KAAKyB,0BACPC,EACKA,EAAAA,CAAAA,EAAAA,EACAC,KAAKC,MAAM5B,KAAK6B,qBAAqBrB,UAAUC,UAKvDiB,CAAA,CAGGF,qBACF,MAAsBM,EAAG,YACzB,MAAO,CACLC,qBAAqB,EACrBC,UAAW,CACTC,EAAG,CACDhB,KAAM,SACNiB,OAAQ,SACRC,SAAUnC,KAAKoC,mBACfC,KAAMC,IACNC,MAAQC,GACW,SAAbA,EAAIvB,MAAmBuB,EAAIC,SAE9B,GACDD,EAAIC,UAAW,EACLD,EAACE,MAAQ1C,KAAKoC,qBAG5BO,EAAG,CACD1B,KAAM,SACNiB,OAAQ,SACRC,SAAUnC,KAAKoC,mBACfC,KAAMO,EACNL,MAAQC,GACW,SAAbA,EAAIvB,MAAmBuB,EAAIK,SACtB,GAETL,EAAIK,UAAW,EACRL,EAAIE,MAAQ1C,KAAKoC,sBAI9BU,QAAS,CACPC,OAAQ,CACNC,SAAS,IAGbC,MAAOnB,EACPoB,YAAa,mBACbC,MAAM,EACNC,YAAa,GACbC,gBAAiB,OACjBH,YAAa,UACbI,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBC,iBAAkB,kBAClBC,qBAAsB,OACtBC,iBAAkB,EAClBC,iBAAkB,GAClBC,0BAA2B,OAC3BC,sBAAuB,kBACvBC,sBAAuB,EACvBC,YAAa,EACbC,eAAgB,GAChBC,UAAU,EACVC,OAAQ,CACNnC,EAAG,CACDoC,KAAM,CACJnB,YAAapB,GAEfwC,MAAO,CACLrB,MAAOnB,EACPyC,UAAWzC,IAGfa,EAAG,CACD0B,KAAM,CACJnB,YAAapB,EACbyC,UAAWzC,GAEbwC,MAAO,CACLrB,MAAOnB,KAKhB,CAEGM,yBAAqB,IAAAoC,EAAAC,EAAAC,EACvB,OAAO1E,KAAK2E,iBAAiB,yBAAtB,OAAgDH,EAAAxE,KAAKD,cAAL,OAAhD0E,EAAgDD,EAAkBxD,SAAS,KAA3E,OAAgD0D,EAAAD,EAA+BpD,WAA/E,EAAgDqD,EAAqCE,OAC7F,EAGH,SAAAhC,EAAoBJ,GAClB,OAAqB,IAAdA,EAAIE,MAAcF,EAAIqC,MAAMT,OAAOzB,EAAEmC,iBAAiB,KAAOtC,EAAIqC,MAAME,eAAevC,EAAIwC,cAAc3D,KAAKmB,EAAIE,MAAQ,GAAGuC,SAAS,CAAC,MAAM,GAAMtC,CAC1J,GAnJQuC,QAAU,CAAE,iBAAkB,cAAe,gBAAiB,aAC9DC,OAAS,CACdlE,KAAM,CACJA,KAAMmE,OACNC,QAAS,QAEXlE,MAAO,CACLF,KAAMmE,OACNC,QAAS,UAINC,EAAAA,qBAAuB,CAC5B,uBAAwB,KCfCC,MAAAA,UAAAA,EAS3BzF,YAAY0F,GACVxF,KAAKyF,sBAAsBjF,UAAYgF,EAAME,OAAOC,YAAYnF,UAChEgF,EAAME,OAAOC,YAAYC,SACzB5F,KAAK6F,YAAYC,cAAc,IAAIC,YAAY/F,KAAKgG,gBACrD,IAZMd,QAAU,CAAE,kBAAmB,SAC/BC,EAAAA,OAAS,CACdc,UAAW,CACThF,KAAMmE,OACNC,QAAS,iBCLA,MAAAa,UAAyBX,EAStC3F,UACEI,KAAKmG,QAAQL,cACX,IAAAC,YAAgB/F,KAAKgG,eAAgB,CACnCN,OAAQ,CAAEC,YAAa3F,KAAKoG,YAC5BC,SAAS,EACTC,YAAY,IAGjB,IAhBMpB,QAAU,CAAE,UACZC,OAAS,CACdc,UAAW,CACThF,KAAMmE,OACNC,QAAS,4BCDFkB,MAAAA,EAAwB,CACnC,CAACC,EAAsB,4BACvB,CAACC,EAAsB,wCACvB,CAACC,EAAmB,sCACpB7F,IAAI,SAASC,GACb,MACM6F,EAAa7F,EAAE,GACrB,MAAO,CACL8F,WAAYtH,EAHFwB,EAAE,IAIZ+F,sBAAuBF,EAE1B"}
1
+ {"version":3,"file":"supercharts-bullet-train.modern.mjs","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","_extends","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -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 n(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var s=/*#__PURE__*/n(r);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t="#ffffff66";return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:l,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function l(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}i.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],i.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},i.defaultCssProperties={"--animation-duration":200};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 c=[[i,"superchart_controller.js"],[u,"supercharts/filterable_controller.js"],[d,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});t.FilterableController=u,t.FiltersController=d,t.SuperchartController=i,t.controllerDefinitions=c});
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@supercharts/stimulus-base"),require("d3"),require("@hotwired/stimulus")):"function"==typeof define&&define.amd?define(["exports","@supercharts/stimulus-base","d3","@hotwired/stimulus"],e):e((t||self).superchartsBulletTrain={},t.stimulusBase,t.d3,t.stimulus)}(this,function(t,e,r,a){function n(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var s=/*#__PURE__*/n(r);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}get chartjsData(){if(this.hasChartJsDataTarget)return super.chartjsData();if(!this.hasCsvDataTarget)return console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[];const t=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType);return{labels:t.map(e=>e[t.columns[0]]),datasets:[{type:this.typeValue,label:this.labelValue,data:t.map(e=>e[t.columns[1]])}]}}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())}),t}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:{x:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:NaN,delay:t=>"data"!==t.type||t.xStarted?0:(t.xStarted=!0,t.index*this.delayBetweenPoints)},y:{type:"number",easing:"linear",duration:this.delayBetweenPoints,from:l,delay:t=>"data"!==t.type||t.yStarted?0:(t.yStarted=!0,t.index*this.delayBetweenPoints)}},plugins:{legend:{display:!1}},color:t,borderColor:"rgb(4, 123, 248)",fill:!1,lineTension:.3,backgroundColor:"#fff",borderColor:"#047bf8",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:"rgb(50, 60, 88)",pointBackgroundColor:"#fff",pointBorderWidth:4,pointHoverRadius:10,pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgb(50, 60, 88)",pointHoverBorderWidth:3,pointRadius:6,pointHitRadius:10,spanGaps:!1,scales:{x:{grid:{borderColor:t},ticks:{color:t,tickColor:t}},y:{grid:{borderColor:t,tickColor:t},ticks:{color:t}}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function l(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}i.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],i.values={type:{type:String,default:"line"},label:{type:String,default:"Value"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#00000066"};class u extends a.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}u.targets=["chartSourceData","chart"],u.values={eventName:{type:String,default:"update-chart"}};class c extends a.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const d=[[i,"superchart_controller.js"],[u,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});t.FilterableController=u,t.FiltersController=c,t.SuperchartController=i,t.controllerDefinitions=d});
2
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/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const transparentWhite = '#ffffff66'\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: transparentWhite,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: transparentWhite\n },\n ticks: {\n color: transparentWhite,\n tickColor: transparentWhite\n }\n },\n y: {\n grid: {\n borderColor: transparentWhite,\n tickColor: transparentWhite\n },\n ticks: {\n color: transparentWhite\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","transparentWhite","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","cssPropertyValue","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
1
+ {"version":3,"file":"supercharts-bullet-train.umd.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n },\n label: {\n type: String,\n default: \"Value\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#00000066'\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n const csv = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n return {\n labels: csv.map(d => d[csv.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: this.labelValue,\n data: csv.map(d => d[csv.columns[1]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...JSON.parse(this.chartjsOptionsTarget.innerHTML.trim())\n }\n }\n \n return options\n }\n\n // You can set default options in this getter for all your charts.\n get defaultOptions() {\n const axisColor = this.cssPropertyValue('--axis-color')\n return {\n maintainAspectRatio: false,\n animation: {\n x: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: this.delayBetweenPoints,\n from: previousY,\n delay: (ctx) => {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * this.delayBetweenPoints;\n }\n }\n },\n plugins: {\n legend: {\n display: false,\n }\n },\n color: axisColor,\n borderColor: 'rgb(4, 123, 248)',\n fill: false,\n lineTension: 0.3,\n backgroundColor: \"#fff\",\n borderColor: \"#047bf8\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"rgb(50, 60, 88)\",\n pointBackgroundColor: \"#fff\",\n pointBorderWidth: 4,\n pointHoverRadius: 10,\n pointHoverBackgroundColor: \"#fff\",\n pointHoverBorderColor: \"rgb(50, 60, 88)\",\n pointHoverBorderWidth: 3,\n pointRadius: 6,\n pointHitRadius: 10,\n spanGaps: false,\n scales: {\n x: {\n grid: {\n borderColor: axisColor\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n borderColor: axisColor,\n tickColor: axisColor\n },\n ticks: {\n color: axisColor\n }\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","SuperchartChartjsController","connect","super","updateChart","chartjsData","this","hasChartJsDataTarget","hasCsvDataTarget","console","warn","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","labels","csv","map","d","columns","datasets","type","typeValue","label","labelValue","data","chartjsOptions","options","defaultOptions","hasChartjsOptionsTarget","JSON","parse","chartjsOptionsTarget","axisColor","cssPropertyValue","maintainAspectRatio","animation","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","plugins","legend","display","color","borderColor","fill","lineTension","backgroundColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","spanGaps","scales","grid","ticks","tickColor","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","event","chartSourceDataTarget","detail","dataElement","remove","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","_class","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ require 'csv'
2
+
3
+ class Account::Scaffolding::CompletelyConcrete::Charts::TangibleThingsController < Account::ApplicationController
4
+ account_load_and_authorize_resource :tangible_thing, through: :absolutely_abstract_creative_concept, through_association: :completely_concrete_tangible_things
5
+
6
+ # GET /account/scaffolding/absolutely_abstract/creative_concepts/:absolutely_abstract_creative_concept_id/completely_concrete/charts/tangible_things
7
+ def index
8
+ @timespan = params[:timespan]
9
+ case @timespan
10
+ when "ytd"
11
+ range = Time.now.beginning_of_year..Time.now
12
+ range_days = (range.max - range.min).seconds.in_days
13
+ if range_days > 4.months.in_days
14
+ @period = :month
15
+ elsif range_days > 1.month.in_days
16
+ @period = :week
17
+ else
18
+ @period = :day
19
+ end
20
+ data = @tangible_things.group_by_period(@period, :created_at, range: range, expand_range: true).count
21
+ else
22
+ @period = :day
23
+ data = @tangible_things.group_by_period(@period, :created_at, last: 30).count
24
+ end
25
+
26
+ @total = data.values.reduce(:+)
27
+
28
+ date_format = if @period == :day
29
+ "%e"
30
+ elsif @period == :week
31
+ "%b %e"
32
+ elsif @period == :month
33
+ "%b"
34
+ end
35
+
36
+ @csv = CSV.generate(" ", headers: %w[date value], write_headers: true, encoding: "UTF-8") do |csv|
37
+ data.each do |date, value|
38
+ csv.add_row [date.strftime(date_format), value]
39
+ end
40
+ end
41
+ end
42
+ end
@@ -16,6 +16,7 @@ export default class extends SuperchartChartjsController {
16
16
 
17
17
  static defaultCssProperties = {
18
18
  '--animation-duration': 200, // milliseconds
19
+ '--axis-color': '#00000066'
19
20
  }
20
21
 
21
22
  connect() {
@@ -63,7 +64,7 @@ export default class extends SuperchartChartjsController {
63
64
 
64
65
  // You can set default options in this getter for all your charts.
65
66
  get defaultOptions() {
66
- const transparentWhite = '#ffffff66'
67
+ const axisColor = this.cssPropertyValue('--axis-color')
67
68
  return {
68
69
  maintainAspectRatio: false,
69
70
  animation: {
@@ -99,7 +100,7 @@ export default class extends SuperchartChartjsController {
99
100
  display: false,
100
101
  }
101
102
  },
102
- color: transparentWhite,
103
+ color: axisColor,
103
104
  borderColor: 'rgb(4, 123, 248)',
104
105
  fill: false,
105
106
  lineTension: 0.3,
@@ -122,20 +123,20 @@ export default class extends SuperchartChartjsController {
122
123
  scales: {
123
124
  x: {
124
125
  grid: {
125
- borderColor: transparentWhite
126
+ borderColor: axisColor
126
127
  },
127
128
  ticks: {
128
- color: transparentWhite,
129
- tickColor: transparentWhite
129
+ color: axisColor,
130
+ tickColor: axisColor
130
131
  }
131
132
  },
132
133
  y: {
133
134
  grid: {
134
- borderColor: transparentWhite,
135
- tickColor: transparentWhite
135
+ borderColor: axisColor,
136
+ tickColor: axisColor
136
137
  },
137
138
  ticks: {
138
- color: transparentWhite
139
+ color: axisColor
139
140
  }
140
141
  }
141
142
  }
@@ -0,0 +1,2 @@
1
+ <% absolutely_abstract_creative_concept ||= @absolutely_abstract_creative_concept || tangible_thing&.absolutely_abstract_creative_concept %>
2
+ <%= render 'account/scaffolding/absolutely_abstract/creative_concepts/breadcrumbs', creative_concept: absolutely_abstract_creative_concept %>
@@ -0,0 +1,50 @@
1
+ <%= turbo_frame_tag :charts_tangible_things do %>
2
+ <div class="bg-white dark:bg-sealBlue-400 p-8 rounded-md shadow"
3
+ data-controller="supercharts--filterable"
4
+ data-action="superchart:update-chart->supercharts--filterable#updateChart"
5
+ >
6
+ <%= turbo_frame_tag :charts_tangible_things_filters do %>
7
+ <div class="flex justify-start">
8
+ <div class="">
9
+ <h2 class="text-xs uppercase dark:text-white/50">
10
+ <% if @timespan == "1m" %>
11
+ Tangible Things last 31 days
12
+ <% elsif @timespan == "ytd" %>
13
+ Tangible Things since start of year
14
+ <% end %>
15
+ </h2>
16
+ <p class="font-semibold dark:text-white mt-2" style="font-size: 1.8rem;">
17
+ <%= @total %>
18
+ </p>
19
+ </div>
20
+ <div class="ml-auto">
21
+ <div
22
+ data-controller="supercharts--filters" data-supercharts--filters-event-name="superchart:update-chart"
23
+ >
24
+ <div class="flex items-center justify-center">
25
+ <div class="inline-flex space-x-1" role="group">
26
+ <%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :charts, :tangible_things], timespan: "1m"), label: "1m", first: true %>
27
+ <%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :charts, :tangible_things], timespan: "ytd"), label: "ytd", last: true %>
28
+ </div>
29
+ </div>
30
+ <template data-supercharts--filters-target="data">
31
+ <%= @csv.lstrip.html_safe %>
32
+ </template>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <% end %>
37
+
38
+ <div
39
+ class="mt-4"
40
+ data-controller="superchart"
41
+ data-superchart-type-value="line"
42
+ data-superchart-label-value="Tangible Things per <%= @period.to_s.capitalize %>"
43
+ data-supercharts--filterable-target="chart"
44
+ data-action="update-chart->superchart#updateChart"
45
+ >
46
+ <canvas data-superchart-target="chartjsCanvas" style="height: 200px"></canvas>
47
+ <template data-superchart-target="csvData" data-supercharts--filterable-target="chartSourceData" />
48
+ </div>
49
+ </div>
50
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <%
2
+ first ||= false
3
+ last ||= false
4
+ label ||= "link"
5
+ path ||= ""
6
+ button_classes = "px-5 py-1.5 dark:text-white font-small text-xs leading-tight uppercase hover:bg-blue-800/50 hover:text-white focus:bg-blue-700 focus:outline-none focus:ring-0 active:bg-blue-800 transition duration-150 ease-in-out rounded-lg"
7
+ %>
8
+
9
+ <%= link_to label, path, class: [button_classes, "bg-gray-400 dark:bg-blue-800 text-white hover:bg-blue-400 dark:hover:bg-blue-800/100": current_page?(path)] %>
@@ -1,7 +1,7 @@
1
1
  module BulletTrain
2
2
  module Supercharts
3
3
  class Engine < ::Rails::Engine
4
- initializer "bullet_train.super_scaffolding.supercharts.templates.register_template_path" do |app|
4
+ initializer "bullet_train.super_scaffolding.templates.register_template_path" do |app|
5
5
  # Register the base path of this package with the Super Scaffolding engine.
6
6
  BulletTrain::SuperScaffolding.template_paths << File.expand_path('../../../..', __FILE__)
7
7
  BulletTrain::SuperScaffolding.scaffolders.merge!({
@@ -1,4 +1,5 @@
1
1
  require "scaffolding/supercharts_chart_transformer"
2
+ require "scaffolding/supercharts_routes_file_manipulator"
2
3
 
3
4
  module BulletTrain
4
5
  module Supercharts
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module Supercharts
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
@@ -3,6 +3,7 @@ require "bullet_train/supercharts/engine"
3
3
  require "scaffolding"
4
4
  require "scaffolding/transformer"
5
5
  require "scaffolding/block_manipulator"
6
+ require "scaffolding/routes_file_manipulator"
6
7
  require "bullet_train/supercharts/scaffolders/chart_scaffolder"
7
8
 
8
9
  module BulletTrain
@@ -4,11 +4,27 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
4
4
  def scaffold_supercharts
5
5
  super
6
6
 
7
+ # copy files over and do the appropriate string replace.
8
+ files = [
9
+ "./app/controllers/account/scaffolding/completely_concrete/charts/tangible_things_controller.rb",
10
+ "./app/views/account/scaffolding/completely_concrete/charts/tangible_things",
11
+ "./app/views/shared/supercharts",
12
+ ].compact
13
+
14
+ files.each do |name|
15
+ if File.directory?(resolve_template_path(name))
16
+ scaffold_directory(name)
17
+ else
18
+ scaffold_file(name)
19
+ end
20
+ end
21
+
7
22
  # add children to the show page of their parent.
8
23
  unless cli_options["skip-parent"] || parent == "None"
9
24
  lines_to_add = <<~RUBY
10
25
  <div class="mt-4">
11
- Insert #{child} chart here
26
+ <%= turbo_frame_tag :charts_tangible_things, src: polymorphic_path([:account, @creative_concept, :charts, :tangible_things], timespan: "1m") do %>
27
+ <% end %>
12
28
  </div>
13
29
  RUBY
14
30
  scaffold_add_line_to_file(
@@ -18,9 +34,81 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
18
34
  prepend: true
19
35
  )
20
36
  end
37
+
38
+ # apply routes.
39
+ unless cli_options["skip-routes"]
40
+ routes_namespace = cli_options["namespace"] || "account"
41
+
42
+ begin
43
+ routes_path = if routes_namespace == "account"
44
+ "config/routes.rb"
45
+ else
46
+ "config/routes/#{routes_namespace}.rb"
47
+ end
48
+ routes_manipulator = Scaffolding::SuperchartsRoutesFileManipulator.new(routes_path, child, parent, cli_options)
49
+ rescue Errno::ENOENT => _
50
+ puts "Creating '#{routes_path}'.".green
51
+
52
+ unless File.directory?("config/routes")
53
+ FileUtils.mkdir_p("config/routes")
54
+ end
55
+
56
+ File.write(routes_path, <<~RUBY)
57
+ collection_actions = [:index, :new, :create]
58
+
59
+ # 🚅 Don't remove this block, it will break Super Scaffolding.
60
+ begin do
61
+ namespace :#{routes_namespace} do
62
+ shallow do
63
+ resources :teams do
64
+ end
65
+ end
66
+ end
67
+ end
68
+ RUBY
69
+
70
+ retry
71
+ end
72
+
73
+ begin
74
+ routes_manipulator.apply([routes_namespace], prepend_namespace_to_child: "charts")
75
+ rescue StandardError => e
76
+ p e
77
+ add_additional_step :yellow, "We weren't able to automatically add your `#{routes_namespace}` routes for you. In theory this should be very rare, so if you could reach out on Slack, you could probably provide context that will help us fix whatever the problem was. In the meantime, to add the routes manually, we've got a guide at https://blog.bullettrain.co/nested-namespaced-rails-routing-examples/ ."
78
+ end
79
+
80
+ Scaffolding::FileManipulator.write("config/routes.rb", routes_manipulator.lines)
81
+ end
82
+
83
+ restart_server unless ENV["CI"].present?
21
84
  end
22
85
 
23
86
  def parent_show_file
24
87
  @target_show_file ||= "./app/views/account/scaffolding/absolutely_abstract/creative_concepts/show.html.erb"
25
88
  end
89
+
90
+ def transform_string(string)
91
+ [
92
+ "Scaffolding::CompletelyConcrete::Charts::TangibleThings",
93
+ "scaffolding/completely_concrete/charts/tangible_things",
94
+ ].each do |needle|
95
+ # TODO There might be more to do here?
96
+ # What method is this calling?
97
+ string = string.gsub(needle, encode_double_replacement_fix(replacement_for(needle)))
98
+ end
99
+
100
+ string = super(string)
101
+ decode_double_replacement_fix(string)
102
+ end
103
+
104
+ def replacement_for(string)
105
+ case string
106
+ when "Scaffolding::CompletelyConcrete::Charts::TangibleThings"
107
+ "Charts::" + child.pluralize
108
+ when "scaffolding/completely_concrete/charts/tangible_things"
109
+ "charts/" + child.underscore.pluralize
110
+ else
111
+ "🛑"
112
+ end
113
+ end
26
114
  end
@@ -0,0 +1,85 @@
1
+ class Scaffolding::SuperchartsRoutesFileManipulator < Scaffolding::RoutesFileManipulator
2
+
3
+ def apply(base_namespaces, prepend_namespace_to_child: nil)
4
+ child_namespaces, child_resource, parent_namespaces, parent_resource = divergent_parts
5
+
6
+ within = find_or_create_namespaces(base_namespaces)
7
+
8
+ # e.g. Project and Projects::Deliverable
9
+ if parent_namespaces.empty? && child_namespaces.one? && parent_resource == child_namespaces.first
10
+
11
+ # resources :projects do
12
+ # scope module: 'projects' do
13
+ # resources :deliverables, only: collection_actions
14
+ # end
15
+ # end
16
+
17
+ parent_within = find_or_convert_resource_block(parent_resource, within: within)
18
+
19
+ # add the new resource within that namespace.
20
+ line = "scope module: '#{parent_resource}' do"
21
+ # TODO you haven't tested this yet.
22
+ unless (scope_within = find(/#{line}/, parent_within))
23
+ scope_within = insert([line, "end"], parent_within)
24
+ end
25
+
26
+ find_or_create_resource([child_resource], options: "only: collection_actions", within: scope_within)
27
+
28
+ # namespace :projects do
29
+ # resources :deliverables, except: collection_actions
30
+ # end
31
+
32
+ # We want to see if there are any namespaces one level above the parent itself,
33
+ # because namespaces with the same name as the resource can exist on the same level.
34
+ parent_block_start = find_block_parent(parent_within)
35
+ namespace_line_within = find_or_create_namespaces(child_namespaces, parent_block_start)
36
+
37
+ if prepend_namespace_to_child.present?
38
+ namespace_line_within = find_or_create_namespaces([prepend_namespace_to_child], namespace_line_within)
39
+ end
40
+
41
+ find_or_create_resource([child_resource], options: "except: collection_actions", within: namespace_line_within)
42
+ unless find_namespaces(child_namespaces, within)[child_namespaces.last]
43
+ raise "tried to insert `namespace :#{child_namespaces.last}` but it seems we failed"
44
+ end
45
+
46
+ # e.g. Projects::Deliverable and Objective Under It, Abstract::Concept and Concrete::Thing
47
+ elsif parent_namespaces.any?
48
+
49
+ # namespace :projects do
50
+ # resources :deliverables
51
+ # end
52
+ top_parent_namespace = find_namespaces(parent_namespaces, within)[parent_namespaces.first]
53
+
54
+ find_or_create_resource(child_namespaces + [child_resource], within: top_parent_namespace)
55
+
56
+ # resources :projects_deliverables, path: 'projects/deliverables' do
57
+ # resources :objectives
58
+ # end
59
+ block_parent_within = find_block_parent(top_parent_namespace)
60
+ parent_namespaces_and_resource = (parent_namespaces + [parent_resource]).join("_")
61
+ parent_within = find_or_create_resource_block([parent_namespaces_and_resource], options: "path: '#{parent_namespaces_and_resource.tr("_", "/")}'", within: block_parent_within)
62
+
63
+ if prepend_namespace_to_child.present?
64
+ parent_within = find_or_create_namespaces([prepend_namespace_to_child], parent_within)
65
+ end
66
+
67
+ find_or_create_resource(child_namespaces + [child_resource], within: parent_within)
68
+ else
69
+
70
+ begin
71
+ within = find_or_convert_resource_block(parent_resource, within: within)
72
+ rescue
73
+ within = find_or_convert_resource_block(parent_resource, options: "except: collection_actions", within: within)
74
+ end
75
+
76
+ if prepend_namespace_to_child.present?
77
+ within = find_or_create_namespaces([prepend_namespace_to_child], within)
78
+ end
79
+
80
+ find_or_create_resource(child_namespaces + [child_resource], options: define_concerns, within: within)
81
+
82
+ end
83
+ end
84
+
85
+ end
@@ -0,0 +1,8 @@
1
+ require "bullet_train/supercharts"
2
+
3
+ module Supercharts
4
+ module BulletTrain
5
+ # This file is loaded automatically by bundler
6
+ # It's required so we can keep the BulletTrain::Supercharts sub-module as the default structure (and inherit super scaffolding from BulletTrain)
7
+ end
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: supercharts-bullet_train
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Laliberté
@@ -31,6 +31,7 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
+ - ".bt-link"
34
35
  - MIT-LICENSE
35
36
  - README.md
36
37
  - Rakefile
@@ -43,18 +44,24 @@ files:
43
44
  - app/assets/javascripts/supercharts-bullet-train.modern.mjs.map
44
45
  - app/assets/javascripts/supercharts-bullet-train.umd.js
45
46
  - app/assets/javascripts/supercharts-bullet-train.umd.js.map
47
+ - app/controllers/account/scaffolding/completely_concrete/charts/tangible_things_controller.rb
46
48
  - app/javascript/controllers/index.js
47
49
  - app/javascript/controllers/superchart_controller.js
48
50
  - app/javascript/controllers/supercharts/filterable_controller.js
49
51
  - app/javascript/controllers/supercharts/filters_controller.js
50
52
  - app/javascript/index.js
53
+ - app/views/account/scaffolding/completely_concrete/charts/tangible_things/_breadcrumbs.html.erb
54
+ - app/views/account/scaffolding/completely_concrete/charts/tangible_things/index.html.erb
55
+ - app/views/shared/supercharts/_filter_button.html.erb
51
56
  - config/routes.rb
52
57
  - lib/bullet_train/supercharts.rb
53
58
  - lib/bullet_train/supercharts/engine.rb
54
59
  - lib/bullet_train/supercharts/scaffolders/chart_scaffolder.rb
55
60
  - lib/bullet_train/supercharts/version.rb
56
61
  - lib/scaffolding/supercharts_chart_transformer.rb
62
+ - lib/scaffolding/supercharts_routes_file_manipulator.rb
57
63
  - lib/scaffolding/supercharts_transformer.rb
64
+ - lib/supercharts/bullet_train.rb
58
65
  - lib/tasks/bullet_train/supercharts_tasks.rake
59
66
  homepage: https://github.com/supercharts-dev/supercharts-bullet_train
60
67
  licenses: