const allData = { jual: [ { x: new Date('2025-06-30'), y: 16596 }, { x: new Date('2025-07-01'), y: 16769 }, { x: new Date('2025-07-06'), y: 16921 }, { x: new Date('2025-07-08'), y: 16874 }, { x: new Date('2025-07-09'), y: 17074 }, { x: new Date('2025-07-10'), y: 17025 }, { x: new Date('2025-07-12'), y: 17203 }, { x: new Date('2025-07-14'), y: 17418 }, { x: new Date('2025-07-15'), y: 17442 }, { x: new Date('2025-07-16'), y: 17473 }, { x: new Date('2025-07-17'), y: 17439 }, { x: new Date('2025-07-18'), y: 17429 }, { x: new Date('2025-07-19'), y: 17429 }, { x: new Date('2025-07-21'), y: 17429 }, { x: new Date('2025-07-22'), y: 17605 }, { x: new Date('2025-07-23'), y: 17661 }, { x: new Date('2025-07-24'), y: 17459 }, { x: new Date('2025-07-25'), y: 17438 }, { x: new Date('2025-07-28'), y: 17306 }, { x: new Date('2025-07-29'), y: 17301 }, { x: new Date('2025-07-30'), y: 17367 }, { x: new Date('2025-07-31'), y: 17263 }, { x: new Date('2025-08-01'), y: 17371 }, { x: new Date('2025-08-02'), y: 17431 }, { x: new Date('2025-08-04'), y: 17406 }, { x: new Date('2025-08-05'), y: 17456 }, { x: new Date('2025-08-06'), y: 17554 }, { x: new Date('2025-08-07'), y: 17490 }, { x: new Date('2025-08-08'), y: 17547 }, { x: new Date('2025-08-13'), y: 17375 }, { x: new Date('2025-08-14'), y: 17387 }, { x: new Date('2025-08-15'), y: 17310 }, { x: new Date('2025-08-16'), y: 17308 }, { x: new Date('2025-08-18'), y: 17386 }, { x: new Date('2025-08-19'), y: 17364 }, { x: new Date('2025-08-20'), y: 17232 }, { x: new Date('2025-08-21'), y: 17339 }, { x: new Date('2025-08-22'), y: 17426 }, { x: new Date('2025-08-23'), y: 17436 }, { x: new Date('2025-08-25'), y: 17454 }, { x: new Date('2025-08-26'), y: 17493 }, { x: new Date('2025-08-27'), y: 17593 }, { x: new Date('2025-08-28'), y: 17605 }, { x: new Date('2025-08-29'), y: 17639 }, { x: new Date('2025-09-01'), y: 17798 }, { x: new Date('2025-09-02'), y: 18152 }, { x: new Date('2025-09-03'), y: 18499 }, { x: new Date('2025-09-04'), y: 18416 }, { x: new Date('2025-09-05'), y: 18515 }, { x: new Date('2025-09-08'), y: 18724 }, { x: new Date('2025-09-09'), y: 18913 }, { x: new Date('2025-09-10'), y: 18828 }, { x: new Date('2025-09-11'), y: 18874 }, { x: new Date('2025-09-13'), y: 18901 }, { x: new Date('2025-09-16'), y: 19117 }, { x: new Date('2025-09-17'), y: 19017 }, { x: new Date('2025-09-18'), y: 18940 }, { x: new Date('2025-09-19'), y: 18956 }, { x: new Date('2025-09-22'), y: 19290 }, { x: new Date('2025-09-24'), y: 19638 }, { x: new Date('2025-09-25'), y: 19567 }, { x: new Date('2025-09-26'), y: 19749 }, { x: new Date('2025-09-29'), y: 19941 }, { x: new Date('2025-09-30'), y: 20154 }, { x: new Date('2025-10-01'), y: 20133 }, { x: new Date('2025-10-01'), y: 20149 }, { x: new Date('2025-10-02'), y: 20008 }, { x: new Date('2025-10-03'), y: 20016 }, { x: new Date('2025-10-06'), y: 20797 }, { x: new Date('2025-10-07'), y: 21076 }, { x: new Date('2025-10-08'), y: 21507 }, { x: new Date('2025-10-09'), y: 21624 }, { x: new Date('2025-10-13'), y: 21357 }, { x: new Date('2025-10-14'), y: 22333 }, { x: new Date('2025-10-15'), y: 22249 }, { x: new Date('2025-10-16'), y: 22514 }, { x: new Date('2025-10-17'), y: 23095 }, { x: new Date('2025-10-20'), y: 22505 }, { x: new Date('2025-10-21'), y: 23179 }, { x: new Date('2025-10-22'), y: 22112 }, { x: new Date('2025-10-23'), y: 21981 }, { x: new Date('2025-10-24'), y: 22038 }, { x: new Date('2025-10-27'), y: 21955 }, { x: new Date('2025-10-28'), y: 21313 }, { x: new Date('2025-10-29'), y: 21237 }, { x: new Date('2025-10-30'), y: 21409 }, { x: new Date('2025-11-03'), y: 21750 }, { x: new Date('2025-11-04'), y: 21532 }, { x: new Date('2025-11-05'), y: 21387 }, { x: new Date('2025-11-06'), y: 21535 }, { x: new Date('2025-11-07'), y: 21636 }, { x: new Date('2025-11-10'), y: 22024 }, { x: new Date('2025-11-11'), y: 22516 }, { x: new Date('2025-11-12'), y: 22380 }, { x: new Date('2025-11-13'), y: 22955 }, { x: new Date('2025-11-14'), y: 22807 }, { x: new Date('2025-11-17'), y: 22181 }, { x: new Date('2025-11-18'), y: 21978 }, { x: new Date('2025-11-19'), y: 22314 }, { x: new Date('2025-11-20'), y: 22569 }, { x: new Date('2025-11-21'), y: 22476 }, { x: new Date('2025-11-25'), y: 22849 }, { x: new Date('2025-11-26'), y: 22849 }, { x: new Date('2025-11-27'), y: 22792 }, { x: new Date('2025-11-28'), y: 23023 }, { x: new Date('2025-12-01'), y: 23263 }, { x: new Date('2025-12-02'), y: 23164 }, { x: new Date('2025-12-03'), y: 23089 }, { x: new Date('2025-12-04'), y: 22976 }, { x: new Date('2025-12-05'), y: 22970 }, { x: new Date('2025-12-08'), y: 23000 }, { x: new Date('2025-12-09'), y: 23015 }, { x: new Date('2025-12-10'), y: 23249 }, { x: new Date('2025-12-11'), y: 23148 }, { x: new Date('2025-12-12'), y: 23437 }, { x: new Date('2025-12-15'), y: 23614 }, { x: new Date('2025-12-16'), y: 23396 }, { x: new Date('2025-12-17'), y: 23513 }, { x: new Date('2025-12-18'), y: 23764 }, { x: new Date('2025-12-19'), y: 23745 }, { x: new Date('2025-12-22'), y: 24294 }, { x: new Date('2025-12-23'), y: 24741 }, { x: new Date('2025-12-24'), y: 24840 }, { x: new Date('2025-12-25'), y: 24571 }, { x: new Date('2025-12-28'), y: 24827 }, { x: new Date('2026-01-05'), y: 24338 }, { x: new Date('2026-01-06'), y: 24495 }, { x: new Date('2026-01-07'), y: 24653 }, { x: new Date('2026-01-08'), y: 24447 }, { x: new Date('2026-01-09'), y: 24680 }, { x: new Date('2026-01-13'), y: 25618 }, { x: new Date('2026-01-14'), y: 25881 }, { x: new Date('2026-01-15'), y: 25641 }, { x: new Date('2026-01-16'), y: 25610 }, { x: new Date('2026-01-19'), y: 25911 }, { x: new Date('2026-01-20'), y: 26197 }, { x: new Date('2026-01-21'), y: 26598 }, { x: new Date('2026-01-21'), y: 26945 }, { x: new Date('2026-01-22'), y: 26824 }, { x: new Date('2026-01-23'), y: 27682 }, { x: new Date('2026-01-26'), y: 27554 }, { x: new Date('2026-01-27'), y: 27549 }, { x: new Date('2026-01-28'), y: 28101 }, { x: new Date('2026-01-29'), y: 30002 }, { x: new Date('2026-01-30'), y: 28050 }, { x: new Date('2026-02-02'), y: 24342 }, { x: new Date('2026-02-03'), y: 26747 }, { x: new Date('2026-02-04'), y: 27999 }, { x: new Date('2026-02-05'), y: 27258 }, { x: new Date('2026-02-06'), y: 27071 }, { x: new Date('2026-02-09'), y: 27649 }, { x: new Date('2026-02-10'), y: 27384 }, { x: new Date('2026-02-12'), y: 27291 }, { x: new Date('2026-02-13'), y: 26799 }, { x: new Date('2026-02-16'), y: 26949 }, { x: new Date('2026-02-17'), y: 26252 }, { x: new Date('2026-02-18'), y: 26585 }, { x: new Date('2026-02-19'), y: 27192 }, { x: new Date('2026-02-20'), y: 27223 }, { x: new Date('2026-02-24'), y: 28189 }, { x: new Date('2026-02-25'), y: 28343 }, { x: new Date('2026-02-26'), y: 28390 }, { x: new Date('2026-02-27'), y: 28333 }, { x: new Date('2026-03-02'), y: 29568 }, { x: new Date('2026-03-03'), y: 29425 }, { x: new Date('2026-03-04'), y: 28620 }, { x: new Date('2026-03-05'), y: 28529 }, { x: new Date('2026-03-06'), y: 28406 }, { x: new Date('2026-03-09'), y: 28365 }, { x: new Date('2026-03-10'), y: 28677 }, { x: new Date('2026-03-11'), y: 28952 }, { x: new Date('2026-03-12'), y: 28852 }, { x: new Date('2026-03-13'), y: 28556 }, { x: new Date('2026-03-16'), y: 28179 }, { x: new Date('2026-03-17'), y: 28142 }, { x: new Date('2026-03-18'), y: 27833 }, { x: new Date('2026-03-19'), y: 26790 }, { x: new Date('2026-03-23'), y: 24038 }, { x: new Date('2026-03-24'), y: 24420 }, { x: new Date('2026-03-25'), y: 25593 }, { x: new Date('2026-03-26'), y: 25029 }, { x: new Date('2026-03-27'), y: 25101 }, { x: new Date('2026-03-30'), y: 25198 }, { x: new Date('2026-03-31'), y: 25716 }, { x: new Date('2026-04-01'), y: 26189 } ], beli: [ { x: new Date('2025-06-30'), y: 16766 }, { x: new Date('2025-07-01'), y: 16960 }, { x: new Date('2025-07-06'), y: 17112 }, { x: new Date('2025-07-08'), y: 17066 }, { x: new Date('2025-07-09'), y: 17265 }, { x: new Date('2025-07-10'), y: 17217 }, { x: new Date('2025-07-12'), y: 17395 }, { x: new Date('2025-07-14'), y: 17609 }, { x: new Date('2025-07-15'), y: 17634 }, { x: new Date('2025-07-16'), y: 17664 }, { x: new Date('2025-07-17'), y: 17630 }, { x: new Date('2025-07-18'), y: 17620 }, { x: new Date('2025-07-19'), y: 17620 }, { x: new Date('2025-07-21'), y: 17620 }, { x: new Date('2025-07-22'), y: 17796 }, { x: new Date('2025-07-23'), y: 17853 }, { x: new Date('2025-07-24'), y: 17650 }, { x: new Date('2025-07-25'), y: 17629 }, { x: new Date('2025-07-28'), y: 17497 }, { x: new Date('2025-07-29'), y: 17493 }, { x: new Date('2025-07-30'), y: 17559 }, { x: new Date('2025-07-31'), y: 17454 }, { x: new Date('2025-08-01'), y: 17562 }, { x: new Date('2025-08-02'), y: 17623 }, { x: new Date('2025-08-04'), y: 17597 }, { x: new Date('2025-08-05'), y: 17648 }, { x: new Date('2025-08-06'), y: 17746 }, { x: new Date('2025-08-07'), y: 17682 }, { x: new Date('2025-08-08'), y: 17738 }, { x: new Date('2025-08-13'), y: 17567 }, { x: new Date('2025-08-14'), y: 17579 }, { x: new Date('2025-08-15'), y: 17501 }, { x: new Date('2025-08-16'), y: 17500 }, { x: new Date('2025-08-18'), y: 17578 }, { x: new Date('2025-08-19'), y: 17556 }, { x: new Date('2025-08-20'), y: 17424 }, { x: new Date('2025-08-21'), y: 17530 }, { x: new Date('2025-08-22'), y: 17617 }, { x: new Date('2025-08-23'), y: 17625 }, { x: new Date('2025-08-25'), y: 17646 }, { x: new Date('2025-08-26'), y: 17684 }, { x: new Date('2025-08-27'), y: 17784 }, { x: new Date('2025-08-28'), y: 17796 }, { x: new Date('2025-08-29'), y: 17831 }, { x: new Date('2025-09-01'), y: 17990 }, { x: new Date('2025-09-02'), y: 18343 }, { x: new Date('2025-09-03'), y: 18691 }, { x: new Date('2025-09-04'), y: 18607 }, { x: new Date('2025-09-05'), y: 18706 }, { x: new Date('2025-09-08'), y: 18915 }, { x: new Date('2025-09-09'), y: 19104 }, { x: new Date('2025-09-10'), y: 19020 }, { x: new Date('2025-09-11'), y: 19066 }, { x: new Date('2025-09-13'), y: 19092 }, { x: new Date('2025-09-16'), y: 19309 }, { x: new Date('2025-09-17'), y: 19209 }, { x: new Date('2025-09-18'), y: 19132 }, { x: new Date('2025-09-19'), y: 19147 }, { x: new Date('2025-09-22'), y: 19482 }, { x: new Date('2025-09-24'), y: 19829 }, { x: new Date('2025-09-25'), y: 19759 }, { x: new Date('2025-09-26'), y: 19940 }, { x: new Date('2025-09-29'), y: 20133 }, { x: new Date('2025-09-30'), y: 20345 }, { x: new Date('2025-10-01'), y: 20324 }, { x: new Date('2025-10-01'), y: 20341 }, { x: new Date('2025-10-02'), y: 20200 }, { x: new Date('2025-10-03'), y: 20208 }, { x: new Date('2025-10-06'), y: 20989 }, { x: new Date('2025-10-07'), y: 21268 }, { x: new Date('2025-10-08'), y: 21698 }, { x: new Date('2025-10-09'), y: 21816 }, { x: new Date('2025-10-13'), y: 21549 }, { x: new Date('2025-10-14'), y: 22524 }, { x: new Date('2025-10-15'), y: 22441 }, { x: new Date('2025-10-16'), y: 22706 }, { x: new Date('2025-10-17'), y: 23287 }, { x: new Date('2025-10-20'), y: 22697 }, { x: new Date('2025-10-21'), y: 23370 }, { x: new Date('2025-10-22'), y: 22303 }, { x: new Date('2025-10-23'), y: 22172 }, { x: new Date('2025-10-24'), y: 22229 }, { x: new Date('2025-10-27'), y: 22147 }, { x: new Date('2025-10-28'), y: 21505 }, { x: new Date('2025-10-29'), y: 21429 }, { x: new Date('2025-10-30'), y: 21600 }, { x: new Date('2025-11-03'), y: 21941 }, { x: new Date('2025-11-04'), y: 21723 }, { x: new Date('2025-11-05'), y: 21578 }, { x: new Date('2025-11-06'), y: 21727 }, { x: new Date('2025-11-07'), y: 21828 }, { x: new Date('2025-11-10'), y: 22215 }, { x: new Date('2025-11-11'), y: 22708 }, { x: new Date('2025-11-12'), y: 22572 }, { x: new Date('2025-11-13'), y: 23147 }, { x: new Date('2025-11-14'), y: 22998 }, { x: new Date('2025-11-17'), y: 22372 }, { x: new Date('2025-11-18'), y: 22170 }, { x: new Date('2025-11-19'), y: 22506 }, { x: new Date('2025-11-20'), y: 22761 }, { x: new Date('2025-11-21'), y: 22667 }, { x: new Date('2025-11-25'), y: 23040 }, { x: new Date('2025-11-26'), y: 23040 }, { x: new Date('2025-11-27'), y: 22984 }, { x: new Date('2025-11-28'), y: 23215 }, { x: new Date('2025-12-01'), y: 23455 }, { x: new Date('2025-12-02'), y: 23356 }, { x: new Date('2025-12-03'), y: 23281 }, { x: new Date('2025-12-04'), y: 23168 }, { x: new Date('2025-12-05'), y: 23161 }, { x: new Date('2025-12-08'), y: 23192 }, { x: new Date('2025-12-09'), y: 23206 }, { x: new Date('2025-12-10'), y: 23441 }, { x: new Date('2025-12-11'), y: 23339 }, { x: new Date('2025-12-12'), y: 23629 }, { x: new Date('2025-12-15'), y: 23806 }, { x: new Date('2025-12-16'), y: 23588 }, { x: new Date('2025-12-17'), y: 23705 }, { x: new Date('2025-12-18'), y: 23955 }, { x: new Date('2025-12-19'), y: 23937 }, { x: new Date('2025-12-22'), y: 24486 }, { x: new Date('2025-12-23'), y: 24932 }, { x: new Date('2025-12-24'), y: 25031 }, { x: new Date('2025-12-25'), y: 24763 }, { x: new Date('2025-12-28'), y: 25019 }, { x: new Date('2026-01-05'), y: 24585 }, { x: new Date('2026-01-06'), y: 24742 }, { x: new Date('2026-01-07'), y: 24899 }, { x: new Date('2026-01-08'), y: 24693 }, { x: new Date('2026-01-09'), y: 24927 }, { x: new Date('2026-01-13'), y: 25865 }, { x: new Date('2026-01-14'), y: 26128 }, { x: new Date('2026-01-15'), y: 25888 }, { x: new Date('2026-01-16'), y: 25856 }, { x: new Date('2026-01-19'), y: 26158 }, { x: new Date('2026-01-20'), y: 26444 }, { x: new Date('2026-01-21'), y: 26845 }, { x: new Date('2026-01-21'), y: 27192 }, { x: new Date('2026-01-22'), y: 27071 }, { x: new Date('2026-01-23'), y: 27929 }, { x: new Date('2026-01-26'), y: 27801 }, { x: new Date('2026-01-27'), y: 27795 }, { x: new Date('2026-01-28'), y: 28348 }, { x: new Date('2026-01-29'), y: 30248 }, { x: new Date('2026-01-30'), y: 28297 }, { x: new Date('2026-02-02'), y: 24589 }, { x: new Date('2026-02-03'), y: 26994 }, { x: new Date('2026-02-04'), y: 28245 }, { x: new Date('2026-02-05'), y: 27505 }, { x: new Date('2026-02-06'), y: 27318 }, { x: new Date('2026-02-09'), y: 27896 }, { x: new Date('2026-02-10'), y: 27729 }, { x: new Date('2026-02-12'), y: 27637 }, { x: new Date('2026-02-13'), y: 27144 }, { x: new Date('2026-02-16'), y: 27295 }, { x: new Date('2026-02-17'), y: 26598 }, { x: new Date('2026-02-18'), y: 26931 }, { x: new Date('2026-02-19'), y: 27538 }, { x: new Date('2026-02-20'), y: 27569 }, { x: new Date('2026-02-24'), y: 28535 }, { x: new Date('2026-02-25'), y: 28689 }, { x: new Date('2026-02-26'), y: 28736 }, { x: new Date('2026-02-27'), y: 28679 }, { x: new Date('2026-03-02'), y: 29914 }, { x: new Date('2026-03-03'), y: 29771 }, { x: new Date('2026-03-04'), y: 28966 }, { x: new Date('2026-03-05'), y: 28875 }, { x: new Date('2026-03-06'), y: 28751 }, { x: new Date('2026-03-09'), y: 28711 }, { x: new Date('2026-03-10'), y: 29023 }, { x: new Date('2026-03-11'), y: 29298 }, { x: new Date('2026-03-12'), y: 29198 }, { x: new Date('2026-03-13'), y: 28902 }, { x: new Date('2026-03-16'), y: 28525 }, { x: new Date('2026-03-17'), y: 28487 }, { x: new Date('2026-03-18'), y: 28178 }, { x: new Date('2026-03-19'), y: 27135 }, { x: new Date('2026-03-23'), y: 24383 }, { x: new Date('2026-03-24'), y: 24766 }, { x: new Date('2026-03-25'), y: 25939 }, { x: new Date('2026-03-26'), y: 25374 }, { x: new Date('2026-03-27'), y: 25447 }, { x: new Date('2026-03-30'), y: 25544 }, { x: new Date('2026-03-31'), y: 26062 }, { x: new Date('2026-04-01'), y: 26535 } ] }; const chartOptions = { chart: { type: 'area', height: '300', zoom: { enabled: false }, toolbar: { show: false }, offsetX: 0 }, colors: ['#008FFB', '#DFBD69'], dataLabels: { enabled: false }, stroke: { curve: 'smooth', width: 2 }, series: [], xaxis: { type: 'datetime', labels: { datetimeUTC: false, formatter: function (value) { const date = new Date(value); return `${date.getMonth() + 1}月${date.getDate()}日`; } }, min: undefined, max: undefined }, yaxis: { tickAmount: 8, labels: { style: { fontSize: '12px' }, offsetX: -15, formatter: function (value) { const text = value.toLocaleString('ja-JP'); return text.length > 5 ? text.slice(0, 6) + '' : text; } } }, grid: { padding: { left: -10, right: 0 } }, tooltip: { x: { formatter: function (value) { const date = new Date(value); return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`; } }, y: { formatter: value => new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY', maximumFractionDigits: 0 }).format(value) } }, fill: { type: 'gradient', gradient: { shadeIntensity: 1, opacityFrom: 0.4, opacityTo: 0.05, stops: [0, 90, 100] } }, legend: { position: 'top', horizontalAlign: 'right' } }; const chart = new ApexCharts(document.querySelector("#chart"), chartOptions); window.addEventListener('load', () => { chart.render().then(() => { // Panggil filterData hanya setelah render selesai filterData('1'); }); }); function padIfTooFew(data, cutoff, now) { if (data.length === 1) { return [ { x: cutoff.getTime(), y: null }, ...data, { x: now.getTime(), y: null } ]; } return data; } function filterData(months) { const now = new Date(); let cutoff; if (months === 'all') { cutoff = new Date('2000-01-01'); } else { cutoff = new Date(); cutoff.setMonth(cutoff.getMonth() - parseInt(months)); } let filteredJual = allData.jual.filter(d => d.x >= cutoff.getTime()); let filteredBeli = allData.beli.filter(d => d.x >= cutoff.getTime()); filteredJual = padIfTooFew(filteredJual, cutoff, now); filteredBeli = padIfTooFew(filteredBeli, cutoff, now); chart.updateSeries([ { name: '買値', data: filteredJual }, { name: '売値', data: filteredBeli } ]); const minX = cutoff.getTime(); const maxX = now.getTime(); chart.updateOptions({ xaxis: { type: 'datetime', min: minX, max: maxX, labels: { datetimeUTC: false, formatter: function (value) { const date = new Date(value); const bulan = date.toLocaleString('id-ID', { month: 'long' }); return `${date.getDate()} ${bulan}`; } } } }); } document.querySelectorAll(".filter-btn").forEach(btn => { btn.addEventListener("click", function () { document.querySelectorAll(".filter-btn").forEach(b => b.classList.remove("active")); this.classList.add("active"); const months = this.getAttribute("data-months"); if (months) { filterData(months); } }); }); // Initial load (1 Bulan) filterData('1');