{"version":3,"file":"index-DSFvk0C2.js","sources":["../../../app/javascript/entrypoints/pages/StockPage/StockPriceChart/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Options } from 'highcharts';\n\nimport type {\n GetStockPricesIndiceEnum,\n GetStockPricesRequest,\n} from '../../../output/apis/StockPricesApi';\n\nimport { CircularProgress } from '../../../components/CircularProgress';\n\nimport { config } from '../../../config';\nimport { StockPricesApi } from '../../../output/apis/StockPricesApi';\n\nimport {\n ConfigFn,\n Point,\n PointFun,\n currentConfigFn,\n entireConfigFn,\n entirePointFn,\n} from './ChartConfig';\nimport { ChartContainer } from './ChartContainer';\n\ninterface Props {\n code: string;\n indice: string;\n}\n\nexport const StockPriceChart: React.FC = ({ code, indice }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [currentConfig, setCurrentConfig] = useState();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [entireConfig, setEntireConfig] = useState();\n const [entireMaxDefault, setEntireMaxDefault] = useState();\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n const req: GetStockPricesRequest = { code, indice: indice as GetStockPricesIndiceEnum };\n\n new StockPricesApi(config)\n .getStockPrices(req)\n .then((data) => {\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 (indice === 'per') {\n const over = entireData.data.find((per: number): boolean => per > 100);\n\n if (over) {\n setEntireMaxDefault(100);\n }\n }\n\n setInitialized(true);\n })\n .catch((e) => {\n console.log(e);\n });\n }, [code, indice]);\n\n return (\n
\n {!initialized && }\n\n \n 年初来\n \n \n 全期間\n \n {indice === 'pbr' && (\n \n *PBRは 株主資本 /(期末発行済株式数 -\n 期末自己株式数)で算出しており、Yahooファイナンス等の値と一致しない場合があります。\n \n )}\n
\n );\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"],"names":["StockPriceChart","code","indice","currentConfig","setCurrentConfig","useState","entireConfig","setEntireConfig","entireMaxDefault","setEntireMaxDefault","initialized","setInitialized","useEffect","req","StockPricesApi","config","data","currentData","getConfig","currentConfigFn","entireData","entireConfigFn","entirePointFn","per","e","jsxs","jsx","CircularProgress","ChartContainer","labels","configFn","pointFn","points"],"mappings":"wuBA6BO,MAAMA,EAAmC,CAAC,CAAE,KAAAC,EAAM,OAAAC,KAAa,CAEpE,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAc,SAAA,EAElD,CAACC,EAAcC,CAAe,EAAIF,EAAc,SAAA,EAChD,CAACG,EAAkBC,CAAmB,EAAIJ,EAAiB,SAAA,EAC3D,CAACK,EAAaC,CAAc,EAAIN,WAAkB,EAAK,EAE7DO,OAAAA,EAAAA,UAAU,IAAM,CACR,MAAAC,EAA6B,CAAE,KAAAZ,EAAM,OAAAC,GAEvC,IAAAY,EAAeC,CAAM,EACtB,eAAeF,CAAG,EAClB,KAAMG,GAAS,CACd,MAAMC,EAAcD,EAAK,aACnBb,EAAgBe,EACpBD,EAAY,KACZA,EAAY,QACZE,EACA,MAAA,EAGFf,EAAiBD,CAAa,EAE9B,MAAMiB,EAAaJ,EAAK,cAClBV,EAAeY,EACnBE,EAAW,KACXA,EAAW,QACXC,EACAC,CAAA,EAEFf,EAAgBD,CAAY,EAExBJ,IAAW,OACAkB,EAAW,KAAK,KAAMG,GAAyBA,EAAM,GAAG,GAGnEd,EAAoB,GAAG,EAI3BE,EAAe,EAAI,CAAA,CACpB,EACA,MAAOa,GAAM,CACZ,QAAQ,IAAIA,CAAC,CAAA,CACd,CAAA,EACF,CAACvB,EAAMC,CAAM,CAAC,EAGfuB,EAAA,KAAC,MAAI,CAAA,UAAU,WACZ,SAAA,CAAA,CAACf,GAAegB,EAAAA,IAACC,EAAiB,CAAA,QAAS,MAAQ,CAAA,EAEnDD,EAAA,IAAAE,EAAA,CAAe,OAAA1B,EAAgB,OAAQ,UAAW,OAAQC,EACzD,SAAAuB,EAAAA,IAAC,OAAK,CAAA,UAAU,0BAA0B,SAAA,KAAG,CAAA,EAC/C,EACAA,EAAA,IAACE,EAAA,CACC,OAAA1B,EACA,OAAQ,SACR,OAAQI,EACR,WAAYE,EAEZ,SAACkB,EAAA,IAAA,OAAA,CAAK,UAAU,UAAU,SAAG,MAAA,CAAA,CAC/B,EACCxB,IAAW,OACVwB,EAAAA,IAAC,OAAK,CAAA,UAAU,0BAA0B,SAG1C,uEAAA,CAEJ,CAAA,CAAA,CAEJ,EAEA,SAASR,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"}