{"version":3,"file":"ChartContainer-tVokBV0R.js","sources":["../../../app/javascript/entrypoints/pages/StockPage/StockPriceChart/ChartContainer.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { Options } from 'highcharts';\nimport * as React from 'react';\n\nimport type { Option } from '../../../components/Select';\n\nimport { Select } from '../../../components/Select';\n\nimport { Chart } from './Chart';\n\ninterface Props {\n indice: string;\n period: string;\n config: Options;\n maxDefault?: number;\n children: React.ReactNode;\n}\n\nexport const ChartContainer: React.FC = ({\n indice,\n period,\n config,\n maxDefault = undefined,\n children,\n}) => {\n const [max, setMax] = useState();\n const id = `${indice}-${period}`;\n\n useEffect((): void => {\n setMax(maxDefault);\n }, [maxDefault]);\n\n return (\n <>\n
\n
{children}
\n
\n
{indiceName(indice)}の最大値
\n {\n setMax(maxValue(e));\n }}\n className=\"mt-1.5 w-[69.5px]\"\n options={selectOptions(indice)}\n max={max}\n >\n
\n
\n \n
\n
\n \n
\n
\n
{indiceName(indice)}の最大値
\n {\n setMax(maxValue(e));\n }}\n className=\"mt-1.5 w-[69.5px]\"\n options={selectOptions(indice)}\n max={max}\n >\n
\n
\n \n );\n};\n\nfunction indiceName(indice: string): string {\n if (indice === 'fcf-ratio') {\n return 'FCF倍率';\n } else if (indice === 'operating-income-ratio') {\n return '営業利益倍率';\n } else {\n return indice.toUpperCase();\n }\n}\n\nfunction selectOptions(indice: string): Option[] {\n let values;\n\n if (indice == 'per') {\n values = [undefined, 10, 15, 20, 30, 50, 100];\n } else if (indice == 'pbr') {\n values = [undefined, 1, 2, 3, 5, 10, 20];\n } else {\n values = [undefined, 10, 15, 20, 30, 50, 100];\n }\n return values.map((v) => ({ text: v, value: v }));\n}\n\nfunction maxValue(e: React.ChangeEvent): number | undefined {\n const select = e.currentTarget;\n const val = select.options[select.selectedIndex].value; // IE 11\n return val ? parseInt(val) : undefined;\n}\n\nconst container: Record = {\n boxSizing: 'border-box',\n height: '400px',\n marginBottom: '20px',\n padding: '20px 10px 15px 10px',\n border: '1px solid #ddd',\n background: '#fff',\n boxShadow: '0 3px 10px rgba(0, 0, 0, 0.1)',\n};\n"],"names":["ChartContainer","indice","period","config","maxDefault","children","max","setMax","useState","id","useEffect","jsxs","Fragment","jsx","indiceName","Select","e","maxValue","selectOptions","container","Chart","values","v","select","val"],"mappings":"8QAmBO,MAAMA,EAAkC,CAAC,CAC9C,OAAAC,EACA,OAAAC,EACA,OAAAC,EACA,WAAAC,EAAa,OACb,SAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAKC,CAAM,EAAIC,EAA6B,SAAA,EAC7CC,EAAK,GAAGR,CAAM,IAAIC,CAAM,GAE9BQ,OAAAA,EAAAA,UAAU,IAAY,CACpBH,EAAOH,CAAU,CAAA,EAChB,CAACA,CAAU,CAAC,EAIXO,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,MAAA,CAAI,UAAU,qDACb,SAAA,CAAAE,MAAC,MAAI,SAAAR,EAAS,EACdM,EAAAA,KAAC,MAAI,CAAA,UAAU,4BACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,UAAW,SAAA,CAAAG,EAAWb,CAAM,EAAE,MAAA,EAAI,EACjDY,EAAA,IAACE,EAAA,CACC,SAAWC,GAAY,CACdT,EAAAU,EAASD,CAAC,CAAC,CACpB,EACA,UAAU,oBACV,QAASE,EAAcjB,CAAM,EAC7B,IAAAK,CAAA,CACD,CAAA,EACH,CAAA,EACF,EACCO,EAAAA,IAAA,KAAA,CAAG,UAAU,yBAA0B,SAAAR,CAAS,CAAA,EACjDM,EAAAA,KAAC,MAAI,CAAA,UAAU,mBACb,SAAA,CAAAE,EAAA,IAAC,MAAI,CAAA,UAAU,eAAe,MAAOM,EACnC,SAAAN,EAAA,IAACO,EAAM,CAAA,MAAOX,EAAI,OAAAN,EAAgB,IAAKG,GAAO,IAAM,CAAA,EACtD,EACAK,EAAAA,KAAC,MAAI,CAAA,UAAU,kBACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,UAAW,SAAA,CAAAG,EAAWb,CAAM,EAAE,MAAA,EAAI,EACjDY,EAAA,IAACE,EAAA,CACC,SAAWC,GAAY,CACdT,EAAAU,EAASD,CAAC,CAAC,CACpB,EACA,UAAU,oBACV,QAASE,EAAcjB,CAAM,EAC7B,IAAAK,CAAA,CACD,CAAA,EACH,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,EAEA,SAASQ,EAAWb,EAAwB,CAC1C,OAAIA,IAAW,YACN,QACEA,IAAW,yBACb,SAEAA,EAAO,aAElB,CAEA,SAASiB,EAAcjB,EAA0B,CAC3C,IAAAoB,EAEJ,OAAIpB,GAAU,MACZoB,EAAS,CAAC,OAAW,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,EACnCpB,GAAU,MACnBoB,EAAS,CAAC,OAAW,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EAEvCA,EAAS,CAAC,OAAW,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,EAEvCA,EAAO,IAAKC,IAAO,CAAE,KAAMA,EAAG,MAAOA,CAAI,EAAA,CAClD,CAEA,SAASL,EAAS,EAA6D,CAC7E,MAAMM,EAAS,EAAE,cACXC,EAAMD,EAAO,QAAQA,EAAO,aAAa,EAAE,MAC1C,OAAAC,EAAM,SAASA,CAAG,EAAI,MAC/B,CAEA,MAAML,EAAoC,CACxC,UAAW,aACX,OAAQ,QACR,aAAc,OACd,QAAS,sBACT,OAAQ,iBACR,WAAY,OACZ,UAAW,+BACb"}