Π€Π°ΠΉΠ»: /home/app/futures-screener/app/mini-charts.js β 6706 ΡΡΡΠΎΠΊ, 134 ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»: ~650 ΡΡΡΠΎΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ (6706 -> ~6050)
createChartInstance() ΡΡΡΠΎΠΊΠ° 1142openCoinModal() ΡΡΡΠΎΠΊΠ° 3386createSlotChart() ΡΡΡΠΎΠΊΠ° 6202Π‘ΡΡΠΎΠΊΠΈ 1152-1177, 3386-3416, 6202-6225 β ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ createChart + addMainSeries + volume. Π Π°Π·Π½ΠΈΡΠ°: fontSize (9/default/10), borderColor, minimumWidth, scaleMargins.
Π‘ΡΡΠΎΠΊΠΈ 3433-3451 (modal) ΠΈ 6233-6248 (slot) β Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠ°ΠΆΠ΄ΡΠΉ overlay ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ 3 ΡΠ°Π·Π° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ (opacity, lineWidth).
Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: applyOI() ΡΡΡΠΎΠΊΠ° 3708 β ΡΠΆΠ΅ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ chartObj.
Π‘ΡΡΠΎΠΊΠΈ 1181-1196 (mini) ΠΈ 6250-6271 (slot).
createChartInstance() Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ mousedown/touchstart ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ scroll-in ΠΠΠ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ _listenersAttached. Π§Π΅ΡΠ΅Π· 10 scroll in/out = 10 listeners. Π modal Π·Π°ΡΠΈΡΠ° Π΅ΡΡΡ (_drawHandlersAttached), Π² mini β Π½Π΅Ρ.
Π‘ΡΡΠΎΠΊΠ° 708 β ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡ volume ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ scroll-out. ΠΡΡΡΠ΅ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (Π±Π°Π³ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ gapless).
function createChartWithVolume(chartEl, { size, prec, minMove, watermark }) { ... }
// size: 'mini' | 'modal' | 'slot'
ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ 3 ΡΠΎΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ: ~60 ΡΡΡΠΎΠΊ.
function applyOverlay(chartContext, type, candleData, sym, tf) { ... }
// type: 'keltner' | 'regression' | 'trendlines' | 'levels' | 'density'
ΠΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ applyOI(). ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ 18 -> 6 ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ: ~300 ΡΡΡΠΎΠΊ.
ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ: ~20 ΡΡΡΠΎΠΊ.
ΠΠΎΠ±Π°Π²ΠΈΡΡ guard chartEl._listenersAttached Π² createChartInstance().
ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ: ~30 ΡΡΡΠΎΠΊ.
Π£Π±ΡΠ°ΡΡ ΠΈΠ· HTML. 227 ΡΡΡΠΎΠΊ ΠΌΡΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π€Π°Π·Π° 4 (fix leaks) > Π€Π°Π·Π° 1-2 (factories) > Π€Π°Π·Π° 3,5,6 (ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠ°)