supercharts-bullet_train 0.1.15 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56a1d2213a1e73cacd80d1789dfbc7ff1c28ef483b92733dff64c16b1e3bb572
4
- data.tar.gz: 9eae7acba85bd87d8b900cd9bc08ef62c5a29f131d4d0e092bebc4cb4d234bfb
3
+ metadata.gz: 1546d97243cf467e7985d42c510351729e3deabad446de6ad0b116bf2e9e127d
4
+ data.tar.gz: e8f13e7b607e146e89d09bf3a99cf43390dab54f6098236c21c75456ae6279ac
5
5
  SHA512:
6
- metadata.gz: 3844ff0121f7c43ad7d44ddaa0b857a96506e76f5ae5063fec994577cca4be734bb3b76b9c8a43d74723316e25fe5bd429000dc53c61077000fb244dac054dd8
7
- data.tar.gz: ea02a7ecb02ba9e4a291fb37064ea121c8249203cbea077f83585fe011a730975568b0156ac5b34c49f35f99c6ae3f66c2153892a28d721131ccc2384f07c334
6
+ metadata.gz: eb8c3c7b6c132cd68d029455c10ebd4cbb4822cdb910d0149cb00b98c87dae51e3cb5b35d58059fe7d41fc09346d3c04ffc8b84074f42f0de6cbc7f4bbe31283
7
+ data.tar.gz: 43db605e36179c7187f14fbdbd1de6da3048291c78771ef3c13c24dbe638dc6a4f152ac1af009ea58cd2da66a92ad57bd6a569ed0cd2d2e7edac4983fd6d86ab
data/README.md CHANGED
@@ -113,7 +113,7 @@ FactoryBot.create_list(:click_through, 450, :created_last_2_months, team_id: 1)
113
113
 
114
114
  Visit your app in `localhost:3000` and you should see your new chart.
115
115
 
116
- ![Example chart inside a Bullet Train app showing Click Throughs in the last 30 days](https://user-images.githubusercontent.com/104179/194341008-c8b9f232-4117-4c8a-b93f-e95cf1d5159f.gif)
116
+ ![Example chart inside a Bullet Train app showing Click Throughs in the last 30 days](https://user-images.githubusercontent.com/104179/198366639-cd73eba5-eeb7-4654-bb35-8b0415b964c8.gif)
117
117
 
118
118
  ## Modifying the chart
119
119
 
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module Supercharts
3
- VERSION = "0.1.15"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ 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/tangible_things/tangible_things_chart_controller.rb",
9
+ "./lib/scaffolding/app/controllers/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart_controller.rb",
10
10
  "./app/views/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart",
11
11
  "./app/views/shared/supercharts",
12
12
  ].compact
@@ -73,6 +73,7 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
73
73
  def transform_string(string)
74
74
  [
75
75
  "Scaffolding::CompletelyConcrete::TangibleThings::TangibleThingsChart",
76
+ "lib/scaffolding/app",
76
77
  ].each do |needle|
77
78
  # TODO There might be more to do here?
78
79
  # What method is this calling?
@@ -87,6 +88,8 @@ class Scaffolding::SuperchartsChartTransformer < Scaffolding::SuperchartsTransfo
87
88
  case string
88
89
  when "Scaffolding::CompletelyConcrete::TangibleThings::TangibleThingsChart"
89
90
  child.pluralize + "::" + child.pluralize + "Chart"
91
+ when "lib/scaffolding/app"
92
+ "app"
90
93
  else
91
94
  "🛑"
92
95
  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.15
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Laliberté
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-20 00:00:00.000000000 Z
11
+ date: 2022-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -36,15 +36,6 @@ files:
36
36
  - README.md
37
37
  - Rakefile
38
38
  - app/assets/config/bullet_train_supercharts_manifest.js
39
- - app/assets/javascripts/supercharts-bullet-train.esm.js
40
- - app/assets/javascripts/supercharts-bullet-train.esm.js.map
41
- - app/assets/javascripts/supercharts-bullet-train.js
42
- - app/assets/javascripts/supercharts-bullet-train.js.map
43
- - app/assets/javascripts/supercharts-bullet-train.modern.mjs
44
- - app/assets/javascripts/supercharts-bullet-train.modern.mjs.map
45
- - app/assets/javascripts/supercharts-bullet-train.umd.js
46
- - app/assets/javascripts/supercharts-bullet-train.umd.js.map
47
- - app/controllers/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart_controller.rb
48
39
  - app/javascript/controllers/index.js
49
40
  - app/javascript/controllers/superchart_controller.js
50
41
  - app/javascript/controllers/supercharts/describable_controller.js
@@ -60,6 +51,7 @@ files:
60
51
  - lib/bullet_train/supercharts/engine.rb
61
52
  - lib/bullet_train/supercharts/scaffolders/chart_scaffolder.rb
62
53
  - lib/bullet_train/supercharts/version.rb
54
+ - lib/scaffolding/app/controllers/account/scaffolding/completely_concrete/tangible_things/tangible_things_chart_controller.rb
63
55
  - lib/scaffolding/supercharts_chart_transformer.rb
64
56
  - lib/scaffolding/supercharts_routes_file_manipulator.rb
65
57
  - lib/scaffolding/supercharts_transformer.rb
@@ -1,2 +0,0 @@
1
- import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as r from"d3";import{Controller as a}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=r.csvParse(this.csvDataTarget.innerHTML.trim(),r.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e(this.chartjsOptionsTarget)}),this.parseForCssVars(t)}get animationOptions(){return!1!==this.runAnimations&&{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)}}}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:this.animationOptions,interaction:{mode:"index",intersect:!1},resizeDelay:200,onResize:this.handleResize.bind(this),plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointRadius:Number(this.cssPropertyValue("--point-radius")),pointHoverRadius:Number(this.cssPropertyValue("--point-hover-radius")),pointBorderWidth:Number(this.cssPropertyValue("--point-border-width")),pointHoverBorderWidth:Number(this.cssPropertyValue("--point-hover-border-width")),pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t},suggestedMin:0,suggestedMax:10}}}}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 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}i.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],i.values={type:{type:String,default:"line"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333","--point-radius":6,"--point-hover-radius":10,"--point-border-width":4,"--point-hover-border-width":3};class l extends a{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,i=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",i),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}l.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],l.classes=["hideOverallDescription","hideContextualDescription"];class n extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}n.targets=["chartSourceData","chart"],n.values={eventName:{type:String,default:"update-chart"}};class c extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}c.targets=["data"],c.values={eventName:{type:String,default:"superchart:update-chart"}};const h=[[i,"superchart_controller.js"],[l,"supercharts/describable_controller.js"],[n,"supercharts/filterable_controller.js"],[c,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{l as DescribableController,n as FilterableController,c as FiltersController,i as SuperchartController,h as controllerDefinitions};
2
- //# sourceMappingURL=supercharts-bullet-train.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supercharts-bullet-train.esm.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/describable_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController, parseContentsAsJSON } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n '--point-radius': 6,\n '--point-hover-radius': 10,\n '--point-border-width': 4,\n '--point-hover-border-width': 3,\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(options)\n }\n \n get animationOptions() {\n if (this.runAnimations === false) { return false }\n return {\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 }\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: this.animationOptions,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n resizeDelay: 200, // milliseconds\n onResize: this.handleResize.bind(this),\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointRadius: Number(this.cssPropertyValue('--point-radius')),\n pointHoverRadius: Number(this.cssPropertyValue('--point-hover-radius')),\n pointBorderWidth: Number(this.cssPropertyValue('--point-border-width')),\n pointHoverBorderWidth: Number(this.cssPropertyValue('--point-hover-border-width')),\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n },\n suggestedMin: 0,\n suggestedMax: 10\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","_class","connect","super","updateChart","describeDataForX","event","_event$tooltip","_event$tooltip2","tooltip","dataPoints","dataIndex","this","dispatch","detail","label","csvData","columns","value","show","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","animationOptions","runAnimations","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","cssPropertyValue","maintainAspectRatio","animation","interaction","mode","intersect","resizeDelay","onResize","handleResize","bind","plugins","legend","display","enabled","position","external","color","axisColor","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointHoverBackgroundColor","pointHoverBorderColor","pointRadius","Number","pointHoverRadius","pointBorderWidth","pointHoverBorderWidth","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","suggestedMin","suggestedMax","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var t=require("@supercharts/stimulus-base"),e=require("d3"),r=require("@hotwired/stimulus");function a(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var s=/*#__PURE__*/a(e);function o(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class i extends t.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=s.csvParse(this.csvDataTarget.innerHTML.trim(),s.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let e={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(e={...e,...t.parseContentsAsJSON(this.chartjsOptionsTarget)}),this.parseForCssVars(e)}get animationOptions(){return!1!==this.runAnimations&&{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)}}}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:this.animationOptions,interaction:{mode:"index",intersect:!1},resizeDelay:200,onResize:this.handleResize.bind(this),plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointRadius:Number(this.cssPropertyValue("--point-radius")),pointHoverRadius:Number(this.cssPropertyValue("--point-hover-radius")),pointBorderWidth:Number(this.cssPropertyValue("--point-border-width")),pointHoverBorderWidth:Number(this.cssPropertyValue("--point-hover-border-width")),pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t},suggestedMin:0,suggestedMax:10}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function l(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}i.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],i.values={type:{type:String,default:"line"}},i.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333","--point-radius":6,"--point-hover-radius":10,"--point-border-width":4,"--point-hover-border-width":3};class n extends r.Controller{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends r.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends r.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const u=[[i,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:o(t[1]),controllerConstructor:e}});exports.DescribableController=n,exports.FilterableController=c,exports.FiltersController=h,exports.SuperchartController=i,exports.controllerDefinitions=u;
2
- //# sourceMappingURL=supercharts-bullet-train.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supercharts-bullet-train.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/describable_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController, parseContentsAsJSON } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n '--point-radius': 6,\n '--point-hover-radius': 10,\n '--point-border-width': 4,\n '--point-hover-border-width': 3,\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(options)\n }\n \n get animationOptions() {\n if (this.runAnimations === false) { return false }\n return {\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 }\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: this.animationOptions,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n resizeDelay: 200, // milliseconds\n onResize: this.handleResize.bind(this),\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointRadius: Number(this.cssPropertyValue('--point-radius')),\n pointHoverRadius: Number(this.cssPropertyValue('--point-hover-radius')),\n pointBorderWidth: Number(this.cssPropertyValue('--point-border-width')),\n pointHoverBorderWidth: Number(this.cssPropertyValue('--point-hover-border-width')),\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n },\n suggestedMin: 0,\n suggestedMax: 10\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","_class","connect","super","updateChart","describeDataForX","event","_event$tooltip","_event$tooltip2","tooltip","dataPoints","dataIndex","this","dispatch","detail","label","csvData","columns","value","show","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","animationOptions","runAnimations","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","cssPropertyValue","maintainAspectRatio","animation","interaction","mode","intersect","resizeDelay","onResize","handleResize","bind","plugins","legend","display","enabled","position","external","color","axisColor","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointHoverBackgroundColor","pointHoverBorderColor","pointRadius","Number","pointHoverRadius","pointBorderWidth","pointHoverBorderWidth","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","suggestedMin","suggestedMax","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{SuperchartChartjsController as t,parseContentsAsJSON as e}from"@supercharts/stimulus-base";import*as r from"d3";import{Controller as a}from"@hotwired/stimulus";function s(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},i.apply(this,arguments)}class o extends t{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const a=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[a][this.csvData.columns[1]],value:this.csvData[a][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=r.csvParse(this.csvDataTarget.innerHTML.trim(),r.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t=i({},this.defaultOptions);return this.hasChartjsOptionsTarget&&(t=i({},t,e(this.chartjsOptionsTarget))),this.parseForCssVars(t)}get animationOptions(){return!1!==this.runAnimations&&{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)}}}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:this.animationOptions,interaction:{mode:"index",intersect:!1},resizeDelay:200,onResize:this.handleResize.bind(this),plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointRadius:Number(this.cssPropertyValue("--point-radius")),pointHoverRadius:Number(this.cssPropertyValue("--point-hover-radius")),pointBorderWidth:Number(this.cssPropertyValue("--point-border-width")),pointHoverBorderWidth:Number(this.cssPropertyValue("--point-hover-border-width")),pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t},suggestedMin:0,suggestedMax:10}}}}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}o.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],o.values={type:{type:String,default:"line"}},o.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333","--point-radius":6,"--point-hover-radius":10,"--point-border-width":4,"--point-hover-border-width":3};class n extends a{showDescriptionWith(t){var e,r,a;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const s=null==t||null==(r=t.detail)?void 0:r.value,i=null==t||null==(a=t.detail)?void 0:a.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",s).replaceAll("%label%",i),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}n.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],n.classes=["hideOverallDescription","hideContextualDescription"];class c extends a{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}c.targets=["chartSourceData","chart"],c.values={eventName:{type:String,default:"update-chart"}};class h extends a{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}h.targets=["data"],h.values={eventName:{type:String,default:"superchart:update-chart"}};const d=[[o,"superchart_controller.js"],[n,"supercharts/describable_controller.js"],[c,"supercharts/filterable_controller.js"],[h,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:s(t[1]),controllerConstructor:e}});export{n as DescribableController,c as FilterableController,h as FiltersController,o as SuperchartController,d as controllerDefinitions};
2
- //# sourceMappingURL=supercharts-bullet-train.modern.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supercharts-bullet-train.modern.mjs","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/describable_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController, parseContentsAsJSON } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n '--point-radius': 6,\n '--point-hover-radius': 10,\n '--point-border-width': 4,\n '--point-hover-border-width': 3,\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(options)\n }\n \n get animationOptions() {\n if (this.runAnimations === false) { return false }\n return {\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 }\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: this.animationOptions,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n resizeDelay: 200, // milliseconds\n onResize: this.handleResize.bind(this),\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointRadius: Number(this.cssPropertyValue('--point-radius')),\n pointHoverRadius: Number(this.cssPropertyValue('--point-hover-radius')),\n pointBorderWidth: Number(this.cssPropertyValue('--point-border-width')),\n pointHoverBorderWidth: Number(this.cssPropertyValue('--point-hover-border-width')),\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n },\n suggestedMin: 0,\n suggestedMax: 10\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","_class","connect","super","updateChart","describeDataForX","event","_event$tooltip","_event$tooltip2","tooltip","dataPoints","dataIndex","this","dispatch","detail","label","csvData","columns","value","show","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","chartjsOptions","options","_extends","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","animationOptions","runAnimations","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","axisColor","cssPropertyValue","maintainAspectRatio","animation","interaction","mode","intersect","resizeDelay","onResize","handleResize","bind","plugins","legend","display","enabled","position","external","color","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointHoverBackgroundColor","pointHoverBorderColor","pointRadius","Number","pointHoverRadius","pointBorderWidth","pointHoverBorderWidth","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","suggestedMin","suggestedMax","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}
@@ -1,2 +0,0 @@
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,s){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 s=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,s.get?s:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}var o=/*#__PURE__*/a(r);function i(t){const e=(t.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/)||[])[1];if(e)return e.replace(/_/g,"-").replace(/\//g,"--")}class l extends e.SuperchartChartjsController{connect(){super.connect()}updateChart(){super.updateChart()}describeDataForX(t){var e,r;const s=(null==t||null==(e=t.tooltip)?void 0:e.dataPoints[0]).dataIndex;this.dispatch("description-requested",{detail:{label:this.csvData[s][this.csvData.columns[1]],value:this.csvData[s][this.csvData.columns[2]],show:!(null==t||null==(r=t.tooltip)||!r.opacity)}})}parseCsvData(){this.csvData=o.csvParse(this.csvDataTarget.innerHTML.trim(),o.autoType)}get chartjsData(){return this.hasChartJsDataTarget?super.chartjsData():this.hasCsvDataTarget?(this.parseCsvData(),{labels:this.csvData.map(t=>t[this.csvData.columns[0]]),datasets:[{type:this.typeValue,label:"Value",data:this.csvData.map(t=>t[this.csvData.columns[2]])}]}):(console.warn("The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)"),[])}get chartjsOptions(){let t={...this.defaultOptions};return this.hasChartjsOptionsTarget&&(t={...t,...e.parseContentsAsJSON(this.chartjsOptionsTarget)}),this.parseForCssVars(t)}get animationOptions(){return!1!==this.runAnimations&&{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)}}}get defaultOptions(){const t=this.cssPropertyValue("--axis-color");return{maintainAspectRatio:!1,animation:this.animationOptions,interaction:{mode:"index",intersect:!1},resizeDelay:200,onResize:this.handleResize.bind(this),plugins:{legend:{display:!1},tooltip:{enabled:!1,position:"nearest",external:this.describeDataForX.bind(this)}},color:t,fill:!1,lineTension:.3,borderColor:this.cssPropertyValue("--line-color"),borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",pointBorderColor:this.cssPropertyValue("--point-stroke-color"),pointBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBackgroundColor:this.cssPropertyValue("--point-color"),pointHoverBorderColor:this.cssPropertyValue("--point-stroke-color-hover"),pointRadius:Number(this.cssPropertyValue("--point-radius")),pointHoverRadius:Number(this.cssPropertyValue("--point-hover-radius")),pointBorderWidth:Number(this.cssPropertyValue("--point-border-width")),pointHoverBorderWidth:Number(this.cssPropertyValue("--point-hover-border-width")),pointHitRadius:10,backgroundColor:this.cssPropertyValue("--bar-fill-color"),hoverBackgroundColor:this.cssPropertyValue("--bar-hover-fill-color"),spanGaps:!1,scales:{x:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t}},y:{grid:{color:this.cssPropertyValue("--grid-color"),borderColor:t,tickColor:t},ticks:{color:t,tickColor:t},suggestedMin:0,suggestedMax:10}}}}get delayBetweenPoints(){var t,e,r;return this.cssPropertyValue("--animation-duration")/(null==(t=this.chartjsData)||null==(e=t.datasets[0])||null==(r=e.data)?void 0:r.length)}}function n(t){return 0===t.index?t.chart.scales.y.getPixelForValue(100):t.chart.getDatasetMeta(t.datasetIndex).data[t.index-1].getProps(["y"],!0).y}l.targets=["chartjsOptions","chartjsData","chartjsCanvas","csvData"],l.values={type:{type:String,default:"line"}},l.defaultCssProperties={"--animation-duration":200,"--axis-color":"#999","--grid-color":"#eee","--line-color":"#aaa","--point-color":"#333","--point-stroke-color":"#fff","--point-stroke-color-hover":"#eee","--bar-fill-color":"#999","--bar-hover-fill-color":"#333","--point-radius":6,"--point-hover-radius":10,"--point-border-width":4,"--point-hover-border-width":3};class c extends s.Controller{showDescriptionWith(t){var e,r,s;if(null==t||null==(e=t.detail)||!e.show)return this.hideContextualDescription(),void this.showOverallDescription();this.hideOverallDescription();const a=null==t||null==(r=t.detail)?void 0:r.value,o=null==t||null==(s=t.detail)?void 0:s.label;this.contextualDescriptionTarget.innerHTML=this.contextualDescriptionTemplateTarget.innerHTML.replaceAll("%value%",a).replaceAll("%label%",o),this.showContextualDescription()}hideOverallDescription(){this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)}showOverallDescription(){this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)}hideContextualDescription(){this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)}showContextualDescription(){this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)}}c.targets=["overallDescription","contextualDescription","contextualDescriptionTemplate"],c.classes=["hideOverallDescription","hideContextualDescription"];class u extends s.Controller{updateChart(t){this.chartSourceDataTarget.innerHTML=t.detail.dataElement.innerHTML,t.detail.dataElement.remove(),this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))}}u.targets=["chartSourceData","chart"],u.values={eventName:{type:String,default:"update-chart"}};class d extends s.Controller{connect(){this.element.dispatchEvent(new CustomEvent(this.eventNameValue,{detail:{dataElement:this.dataTarget},bubbles:!0,cancelable:!0}))}}d.targets=["data"],d.values={eventName:{type:String,default:"superchart:update-chart"}};const h=[[l,"superchart_controller.js"],[c,"supercharts/describable_controller.js"],[u,"supercharts/filterable_controller.js"],[d,"supercharts/filters_controller.js"]].map(function(t){const e=t[0];return{identifier:i(t[1]),controllerConstructor:e}});t.DescribableController=c,t.FilterableController=u,t.FiltersController=d,t.SuperchartController=l,t.controllerDefinitions=h});
2
- //# sourceMappingURL=supercharts-bullet-train.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supercharts-bullet-train.umd.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/superchart_controller.js","../../javascript/controllers/supercharts/describable_controller.js","../../javascript/controllers/supercharts/filterable_controller.js","../../javascript/controllers/supercharts/filters_controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { SuperchartChartjsController, parseContentsAsJSON } from '@supercharts/stimulus-base'\nimport * as d3 from \"d3\"\n\nexport default class extends SuperchartChartjsController {\n static targets = [ \"chartjsOptions\", \"chartjsData\", \"chartjsCanvas\", \"csvData\" ]\n static values = {\n type: { \n type: String,\n default: \"line\"\n }\n }\n \n static defaultCssProperties = {\n '--animation-duration': 200, // milliseconds\n '--axis-color': '#999',\n '--grid-color': '#eee',\n '--line-color': '#aaa',\n '--point-color': '#333',\n '--point-stroke-color': '#fff',\n '--point-stroke-color-hover': '#eee',\n '--bar-fill-color': '#999',\n '--bar-hover-fill-color': '#333',\n '--point-radius': 6,\n '--point-hover-radius': 10,\n '--point-border-width': 4,\n '--point-hover-border-width': 3,\n }\n \n connect() {\n super.connect()\n }\n \n updateChart() {\n super.updateChart()\n }\n \n describeDataForX(event) {\n const point = event?.tooltip?.dataPoints[0]\n const dataIndex = point.dataIndex\n this.dispatch(\"description-requested\", { detail: {\n label: this.csvData[dataIndex][this.csvData.columns[1]],\n value: this.csvData[dataIndex][this.csvData.columns[2]],\n show: !!event?.tooltip?.opacity\n } })\n }\n \n parseCsvData() {\n this.csvData = d3.csvParse(this.csvDataTarget.innerHTML.trim(), d3.autoType)\n }\n \n get chartjsData() {\n if (this.hasChartJsDataTarget) {\n return super.chartjsData()\n }\n if (!this.hasCsvDataTarget) {\n console.warn(`The chart needs data in a in a csv target or in a chartjsData target (in chart.js JSON)`)\n return []\n }\n \n this.parseCsvData()\n \n return {\n labels: this.csvData.map(d => d[this.csvData.columns[0]]),\n datasets: [{\n type: this.typeValue,\n label: \"Value\",\n data: this.csvData.map(d => d[this.csvData.columns[2]])\n }]\n }\n }\n \n get chartjsOptions() {\n let options = {\n ...this.defaultOptions\n }\n \n if (this.hasChartjsOptionsTarget) {\n options = {\n ...options,\n ...parseContentsAsJSON(this.chartjsOptionsTarget)\n }\n }\n \n return this.parseForCssVars(options)\n }\n \n get animationOptions() {\n if (this.runAnimations === false) { return false }\n return {\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 }\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: this.animationOptions,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n resizeDelay: 200, // milliseconds\n onResize: this.handleResize.bind(this),\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: this.describeDataForX.bind(this)\n }\n },\n color: axisColor,\n fill: false,\n lineTension: 0.3,\n borderColor: this.cssPropertyValue('--line-color'),\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n pointBorderColor: this.cssPropertyValue('--point-stroke-color'),\n pointBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBackgroundColor: this.cssPropertyValue('--point-color'),\n pointHoverBorderColor: this.cssPropertyValue('--point-stroke-color-hover'),\n pointRadius: Number(this.cssPropertyValue('--point-radius')),\n pointHoverRadius: Number(this.cssPropertyValue('--point-hover-radius')),\n pointBorderWidth: Number(this.cssPropertyValue('--point-border-width')),\n pointHoverBorderWidth: Number(this.cssPropertyValue('--point-hover-border-width')),\n pointHitRadius: 10,\n backgroundColor: this.cssPropertyValue('--bar-fill-color'),\n hoverBackgroundColor: this.cssPropertyValue('--bar-hover-fill-color'),\n spanGaps: false,\n scales: {\n x: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n }\n },\n y: {\n grid: {\n color: this.cssPropertyValue('--grid-color'),\n borderColor: axisColor,\n tickColor: axisColor,\n },\n ticks: {\n color: axisColor,\n tickColor: axisColor\n },\n suggestedMin: 0,\n suggestedMax: 10\n }\n }\n }\n }\n \n get delayBetweenPoints() {\n return this.cssPropertyValue('--animation-duration') / this.chartjsData?.datasets[0]?.data?.length\n }\n}\n\nfunction previousY (ctx) {\n return ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"overallDescription\", \"contextualDescription\", \"contextualDescriptionTemplate\" ]\n static classes = [ \"hideOverallDescription\", \"hideContextualDescription\" ]\n \n showDescriptionWith(event) {\n if (!event?.detail?.show) {\n this.hideContextualDescription()\n this.showOverallDescription()\n return\n }\n \n this.hideOverallDescription()\n const value = event?.detail?.value\n const label = event?.detail?.label\n let newHTML = this.contextualDescriptionTemplateTarget.innerHTML\n this.contextualDescriptionTarget.innerHTML = newHTML\n .replaceAll(\"%value%\", value)\n .replaceAll(\"%label%\", label)\n this.showContextualDescription()\n }\n \n hideOverallDescription() {\n this.overallDescriptionTarget.classList.add(...this.hideOverallDescriptionClasses)\n }\n \n showOverallDescription() {\n this.overallDescriptionTarget.classList.remove(...this.hideOverallDescriptionClasses)\n }\n \n hideContextualDescription() {\n this.contextualDescriptionTarget.classList.add(...this.hideContextualDescriptionClasses)\n }\n \n showContextualDescription() {\n this.contextualDescriptionTarget.classList.remove(...this.hideContextualDescriptionClasses)\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"chartSourceData\", \"chart\" ]\n static values = {\n eventName: {\n type: String,\n default: \"update-chart\"\n }\n }\n \n updateChart(event) {\n this.chartSourceDataTarget.innerHTML = event.detail.dataElement.innerHTML\n event.detail.dataElement.remove()\n this.chartTarget.dispatchEvent(new CustomEvent(this.eventNameValue))\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [ \"data\" ]\n static values = {\n eventName: {\n type: String,\n default: \"superchart:update-chart\"\n }\n }\n \n connect() {\n this.element.dispatchEvent(\n new CustomEvent(this.eventNameValue, {\n detail: { dataElement: this.dataTarget },\n bubbles: true,\n cancelable: true\n })\n )\n }\n}","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport SuperchartController from \"./superchart_controller\"\nimport DescribableController from \"./supercharts/describable_controller\"\nimport FilterableController from \"./supercharts/filterable_controller\"\nimport FiltersController from \"./supercharts/filters_controller\"\n\nexport const controllerDefinitions = [\n [SuperchartController, \"superchart_controller.js\"],\n [DescribableController, \"supercharts/describable_controller.js\"],\n [FilterableController, \"supercharts/filterable_controller.js\"],\n [FiltersController, \"supercharts/filters_controller.js\"],\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n SuperchartController,\n DescribableController,\n FilterableController,\n FiltersController,\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","_class","connect","super","updateChart","describeDataForX","event","_event$tooltip","_event$tooltip2","tooltip","dataPoints","dataIndex","this","dispatch","detail","label","csvData","columns","value","show","opacity","parseCsvData","d3","csvParse","csvDataTarget","innerHTML","trim","autoType","chartjsData","hasChartJsDataTarget","hasCsvDataTarget","labels","map","d","datasets","type","typeValue","data","console","warn","options","defaultOptions","hasChartjsOptionsTarget","parseContentsAsJSON","chartjsOptionsTarget","parseForCssVars","animationOptions","runAnimations","x","easing","duration","delayBetweenPoints","from","NaN","delay","ctx","xStarted","index","y","previousY","yStarted","cssPropertyValue","maintainAspectRatio","animation","interaction","mode","intersect","resizeDelay","onResize","handleResize","bind","plugins","legend","display","enabled","position","external","color","axisColor","fill","lineTension","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointHoverBackgroundColor","pointHoverBorderColor","pointRadius","Number","pointHoverRadius","pointBorderWidth","pointHoverBorderWidth","pointHitRadius","backgroundColor","hoverBackgroundColor","spanGaps","scales","grid","tickColor","ticks","suggestedMin","suggestedMax","_this$chartjsData","_this$chartjsData$dat","_this$chartjsData$dat2","length","chart","getPixelForValue","getDatasetMeta","datasetIndex","getProps","targets","values","String","default","defaultCssProperties","Controller","showDescriptionWith","_event$detail","_event$detail2","_event$detail3","hideContextualDescription","showOverallDescription","hideOverallDescription","contextualDescriptionTarget","contextualDescriptionTemplateTarget","replaceAll","showContextualDescription","overallDescriptionTarget","classList","add","hideOverallDescriptionClasses","remove","hideContextualDescriptionClasses","classes","chartSourceDataTarget","dataElement","chartTarget","dispatchEvent","CustomEvent","eventNameValue","eventName","element","dataTarget","bubbles","cancelable","controllerDefinitions","SuperchartController","DescribableController","FilterableController","FiltersController","controller","identifier","controllerConstructor"],"mappings":"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"}