supercharts-bullet_train 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/supercharts-bullet-train.esm.js +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.esm.js.map +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.js +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.js.map +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.modern.mjs +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.modern.mjs.map +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.umd.js +1 -1
- data/app/assets/javascripts/supercharts-bullet-train.umd.js.map +1 -1
- data/app/controllers/account/scaffolding/completely_concrete/{charts/tangible_things_controller.rb → tangible_things/tangible_things_chart_controller.rb} +6 -4
- data/app/views/account/scaffolding/completely_concrete/{charts/tangible_things → tangible_things/tangible_things_chart}/_breadcrumbs.html.erb +0 -0
- data/app/views/account/scaffolding/completely_concrete/{charts/tangible_things/index.html.erb → tangible_things/tangible_things_chart/show.html.erb} +2 -2
- data/lib/bullet_train/supercharts/version.rb +1 -1
- data/lib/scaffolding/supercharts_chart_transformer.rb +21 -47
- data/lib/scaffolding/supercharts_transformer.rb +11 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45c0bd86dbe047792cab708063e2c7e6184ea4c17631c505c4eff8b3631bd80c
|
4
|
+
data.tar.gz: d4613278a0aca3aa0930984e91b1081342dbd9aaa7967214114e824dabbd2e38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1076e3c5d9eb36bb6c15e270a765a64391f9744ca1740e3629b94461e5a8809eee6c8c04a1d75c91a53c306b311664b535af4c79c0f2d5161f154856494164ee
|
7
|
+
data.tar.gz: 6b334f93446421ca5be46ae2dae2c574534d2433968df7fcd796fbfe4e87ec88488fc0c1d11ce3f30c825e993afe9c536adb889c3b1d1a86e306a13c807c6d1b
|
@@ -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="
|
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":"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"}
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.esm.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/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="
|
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
|
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":"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"}
|
1
|
+
{"version":3,"file":"supercharts-bullet-train.modern.mjs","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/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="
|
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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"}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'csv'
|
2
2
|
|
3
|
-
class Account::Scaffolding::CompletelyConcrete::
|
4
|
-
account_load_and_authorize_resource :tangible_thing, through: :absolutely_abstract_creative_concept, through_association: :completely_concrete_tangible_things
|
3
|
+
class Account::Scaffolding::CompletelyConcrete::TangibleThings::TangibleThingsChartController < Account::ApplicationController
|
4
|
+
account_load_and_authorize_resource :tangible_thing, through: :absolutely_abstract_creative_concept, through_association: :completely_concrete_tangible_things, collection_actions: [:show]
|
5
5
|
|
6
|
-
# GET /account/scaffolding/absolutely_abstract/creative_concepts/:absolutely_abstract_creative_concept_id/completely_concrete/
|
7
|
-
def
|
6
|
+
# GET /account/scaffolding/absolutely_abstract/creative_concepts/:absolutely_abstract_creative_concept_id/completely_concrete/tangible_things/chart
|
7
|
+
def show
|
8
|
+
@tangible_things = @absolutely_abstract_creative_concept.completely_concrete_tangible_things
|
9
|
+
|
8
10
|
@timespan = params[:timespan]
|
9
11
|
case @timespan
|
10
12
|
when "ytd"
|
File without changes
|
@@ -23,8 +23,8 @@
|
|
23
23
|
>
|
24
24
|
<div class="flex items-center justify-center">
|
25
25
|
<div class="inline-flex space-x-1" role="group">
|
26
|
-
<%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :
|
27
|
-
<%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :
|
26
|
+
<%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :tangible_things, :chart], timespan: "1m"), label: "1m", first: true %>
|
27
|
+
<%= render "shared/supercharts/filter_button", path: polymorphic_path([:account, @absolutely_abstract_creative_concept, :tangible_things, :chart], timespan: "ytd"), label: "ytd", last: true %>
|
28
28
|
</div>
|
29
29
|
</div>
|
30
30
|
<template data-supercharts--filters-target="data">
|
@@ -6,8 +6,8 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
|
|
6
6
|
|
7
7
|
# copy files over and do the appropriate string replace.
|
8
8
|
files = [
|
9
|
-
"./app/controllers/account/scaffolding/completely_concrete/
|
10
|
-
"./app/views/account/scaffolding/completely_concrete/
|
9
|
+
"./app/controllers/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart_controller.rb",
|
10
|
+
"./app/views/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart",
|
11
11
|
"./app/views/shared/supercharts",
|
12
12
|
].compact
|
13
13
|
|
@@ -23,7 +23,7 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
|
|
23
23
|
unless cli_options["skip-parent"] || parent == "None"
|
24
24
|
lines_to_add = <<~RUBY
|
25
25
|
<div class="mt-4">
|
26
|
-
<%= turbo_frame_tag :charts_tangible_things, src: polymorphic_path([:account, @creative_concept, :
|
26
|
+
<%= turbo_frame_tag :charts_tangible_things, src: polymorphic_path([:account, @creative_concept, :tangible_things, :chart], timespan: "1m") do %>
|
27
27
|
<% end %>
|
28
28
|
</div>
|
29
29
|
RUBY
|
@@ -36,50 +36,27 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# apply routes.
|
39
|
-
|
40
|
-
|
39
|
+
# TODO this is a hack and should be in its own RouteFileManipulator class
|
40
|
+
lines = File.read("config/routes.rb").lines.map(&:chomp)
|
41
|
+
account_namespace_found = false
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
lines.each_with_index do |line, index|
|
44
|
+
if line.match?("namespace :account do")
|
45
|
+
account_namespace_found = true
|
46
|
+
elsif account_namespace_found && line.match?(transform_string("resources :tangible_things"))
|
47
|
+
chart_resource_lines = transform_string("collection do\nresource :chart, only: :show, module: :tangible_things, as: :tangible_things_chart, controller: :tangible_things_chart\nend")
|
48
|
+
if line.match? /do$/
|
49
|
+
lines[index] = "#{line}\n#{chart_resource_lines}\n"
|
45
50
|
else
|
46
|
-
"
|
51
|
+
lines[index] = "#{line} do\n#{chart_resource_lines}\nend"
|
47
52
|
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
53
|
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
54
|
end
|
82
55
|
|
56
|
+
File.write("config/routes.rb", lines.join("\n"))
|
57
|
+
|
58
|
+
puts `standardrb --fix ./config/routes.rb`
|
59
|
+
|
83
60
|
restart_server unless ENV["CI"].present?
|
84
61
|
end
|
85
62
|
|
@@ -89,8 +66,7 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
|
|
89
66
|
|
90
67
|
def transform_string(string)
|
91
68
|
[
|
92
|
-
"Scaffolding::CompletelyConcrete::
|
93
|
-
"scaffolding/completely_concrete/charts/tangible_things",
|
69
|
+
"Scaffolding::CompletelyConcrete::TangibleThings::TangibleThingsChart",
|
94
70
|
].each do |needle|
|
95
71
|
# TODO There might be more to do here?
|
96
72
|
# What method is this calling?
|
@@ -103,10 +79,8 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
|
|
103
79
|
|
104
80
|
def replacement_for(string)
|
105
81
|
case string
|
106
|
-
when "Scaffolding::CompletelyConcrete::
|
107
|
-
"
|
108
|
-
when "scaffolding/completely_concrete/charts/tangible_things"
|
109
|
-
"charts/" + child.underscore.pluralize
|
82
|
+
when "Scaffolding::CompletelyConcrete::TangibleThings::TangibleThingsChart"
|
83
|
+
child.pluralize + "::" + child.pluralize + "Chart"
|
110
84
|
else
|
111
85
|
"🛑"
|
112
86
|
end
|
@@ -4,5 +4,16 @@ class Scaffolding::SuperchartsTransformer < Scaffolding::Transformer
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def scaffold_supercharts
|
7
|
+
begin
|
8
|
+
# Update the routes to add the namespace and base resource
|
9
|
+
routes_manipulator = Scaffolding::RoutesFileManipulator.new("config/routes.rb", transform_string("Scaffolding::CompletelyConcrete::TangibleThings"), transform_string("Scaffolding::AbsolutelyAbstract::CreativeConcept"))
|
10
|
+
routes_manipulator.apply(["account"])
|
11
|
+
Scaffolding::FileManipulator.write("config/routes.rb", routes_manipulator.lines)
|
12
|
+
rescue BulletTrain::SuperScaffolding::CannotFindParentResourceException => exception
|
13
|
+
# TODO It would be great if we could automatically generate whatever the structure of the route needs to be and
|
14
|
+
# tell them where to try and inject it. Obviously we can't calculate the line number, otherwise the robots would
|
15
|
+
# have already inserted the routes, but at least we can try to do some of the complicated work for them.
|
16
|
+
add_additional_step :red, "We were not able to generate the routes for your Action Model automatically because: \"#{exception.message}\" You'll need to add them manually, which admittedly can be complicated. See https://blog.bullettrain.co/nested-namespaced-rails-routing-examples/ for guidance. 🙇🏻♂️"
|
17
|
+
end
|
7
18
|
end
|
8
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supercharts-bullet_train
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pascal Laliberté
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,14 +44,14 @@ files:
|
|
44
44
|
- app/assets/javascripts/supercharts-bullet-train.modern.mjs.map
|
45
45
|
- app/assets/javascripts/supercharts-bullet-train.umd.js
|
46
46
|
- app/assets/javascripts/supercharts-bullet-train.umd.js.map
|
47
|
-
- app/controllers/account/scaffolding/completely_concrete/
|
47
|
+
- app/controllers/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart_controller.rb
|
48
48
|
- app/javascript/controllers/index.js
|
49
49
|
- app/javascript/controllers/superchart_controller.js
|
50
50
|
- app/javascript/controllers/supercharts/filterable_controller.js
|
51
51
|
- app/javascript/controllers/supercharts/filters_controller.js
|
52
52
|
- app/javascript/index.js
|
53
|
-
- app/views/account/scaffolding/completely_concrete/
|
54
|
-
- app/views/account/scaffolding/completely_concrete/
|
53
|
+
- app/views/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart/_breadcrumbs.html.erb
|
54
|
+
- app/views/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart/show.html.erb
|
55
55
|
- app/views/shared/supercharts/_filter_button.html.erb
|
56
56
|
- config/routes.rb
|
57
57
|
- lib/bullet_train/supercharts.rb
|