{"version":3,"file":"App-DLfdPdxx.js","sources":["../../../app/javascript/entrypoints/components/App.tsx"],"sourcesContent":["/* eslint-disable */\nimport {\n ConfigFn,\n Point,\n PointFun,\n currentConfigFn,\n entireConfigFn,\n entirePointFn,\n} from './ChartConfig';\nimport { useEffect, useState } from 'react';\nimport ChartContainer from './ChartContainer';\nimport { Fragment } from 'react';\nimport { Options } from 'highcharts';\nimport * as React from 'react';\nimport axios from 'axios';\n\ninterface StockPriceData {\n current_year: {\n data: number[];\n x_label: string[];\n };\n entire_period: {\n data: number[];\n x_label: string[];\n };\n}\n\ninterface Props {\n code: string;\n indices: string;\n}\n\nexport const App: React.FC = ({ code, indices }): JSX.Element => {\n const [currentConfig, setCurrentConfig] = useState();\n const [entireConfig, setEntireConfig] = useState();\n const [entireMaxDefault, setEntireMaxDefault] = useState();\n\n useEffect((): void => {\n getData(code, indices).then((data: StockPriceData): void => {\n const currentData = data.current_year;\n const currentConfig = getConfig(\n currentData.data,\n currentData.x_label,\n currentConfigFn,\n undefined,\n );\n\n setCurrentConfig(currentConfig);\n\n const entireData = data.entire_period;\n const entireConfig = getConfig(\n entireData.data,\n entireData.x_label,\n entireConfigFn,\n entirePointFn,\n );\n setEntireConfig(entireConfig);\n\n if (indices === 'per') {\n const over = entireData.data.find((per: number): boolean => per > 100);\n\n if (over) {\n setEntireMaxDefault(100);\n }\n }\n });\n }, []);\n\n return (\n \n \n 年初来\n \n
\n \n 全期間\n \n \n );\n};\n\nasync function getData(code: string, indices: string): Promise {\n const url = `/stock_prices/${code}/${indices}.json`;\n const response = await axios.get(url);\n return response.data;\n}\n\nfunction getConfig(\n data: number[],\n labels: string[],\n configFn: ConfigFn,\n pointFn?: (labels: string[]) => PointFun,\n): Options {\n let points: Point[] = data || [];\n labels = labels || [];\n if (pointFn) {\n points = data.map(pointFn(labels));\n }\n return configFn(points, labels);\n}\n/* eslint-enable */\n"],"names":["App","code","indices","currentConfig","setCurrentConfig","useState","entireConfig","setEntireConfig","entireMaxDefault","setEntireMaxDefault","useEffect","getData","data","currentData","getConfig","currentConfigFn","entireData","entireConfigFn","entirePointFn","per","Fragment","jsx","ChartContainer","url","axios","labels","configFn","pointFn","points"],"mappings":"+YAgCO,MAAMA,EAAuB,CAAC,CAAE,KAAAC,EAAM,QAAAC,KAA2B,CACtE,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAc,SAAA,EAClD,CAACC,EAAcC,CAAe,EAAIF,EAAc,SAAA,EAChD,CAACG,EAAkBC,CAAmB,EAAIJ,EAAiB,SAAA,EAEjEK,OAAAA,EAAAA,UAAU,IAAY,CACpBC,EAAQV,EAAMC,CAAO,EAAE,KAAMU,GAA+B,CAC1D,MAAMC,EAAcD,EAAK,aACnBT,EAAgBW,EACpBD,EAAY,KACZA,EAAY,QACZE,EACA,MAAA,EAGFX,EAAiBD,CAAa,EAE9B,MAAMa,EAAaJ,EAAK,cAClBN,EAAeQ,EACnBE,EAAW,KACXA,EAAW,QACXC,EACAC,CAAA,EAEFX,EAAgBD,CAAY,EAExBJ,IAAY,OACDc,EAAW,KAAK,KAAMG,GAAyBA,EAAM,GAAG,GAGnEV,EAAoB,GAAG,CAE3B,CACD,CACH,EAAG,CAAE,CAAA,SAGFW,WACC,CAAA,SAAA,CAAAC,MAACC,GAAe,QAAApB,EAAkB,OAAQ,UAAW,OAAQC,EAAe,SAE5E,MAAA,EACAkB,EAAAA,IAAC,MAAI,CAAA,UAAU,UAAW,CAAA,EAC1BA,EAAA,IAACC,EAAA,CACC,QAAApB,EACA,OAAQ,SACR,OAAQI,EACR,WAAYE,EACb,SAAA,KAAA,CAED,CACF,CAAA,CAAA,CAEJ,EAEA,eAAeG,EAAQV,EAAcC,EAA0C,CAC7E,MAAMqB,EAAM,iBAAiBtB,CAAI,IAAIC,CAAO,QAE5C,OADiB,MAAMsB,EAAM,IAAID,CAAG,GACpB,IAClB,CAEA,SAAST,EACPF,EACAa,EACAC,EACAC,EACS,CACL,IAAAC,EAAkBhB,GAAQ,GAC9B,OAAAa,EAASA,GAAU,GACfE,IACFC,EAAShB,EAAK,IAAIe,EAAQF,CAAM,CAAC,GAE5BC,EAASE,EAAQH,CAAM,CAChC"}