저장팝업 텍스트 색상 수정

This commit is contained in:
Macbook
2026-05-26 23:50:13 +09:00
parent 94e96b9a9b
commit fe812389cc
13 changed files with 728 additions and 62 deletions
+65
View File
@@ -1948,6 +1948,10 @@ export class ChartManager {
}
entry.config = config;
if (this._candleOnlyLayout && this._isSubPaneIndicator(entry)) {
this._hideSubPaneIndicator(entry);
}
}
/** 메인 차트(캔들) 색상 스타일 즉시 업데이트 */
@@ -2146,6 +2150,7 @@ export class ChartManager {
} catch { /* ok */ }
this.container.style.height = '';
this._resetPaneHeightsCandleFullscreen(availableHeight);
this._hideAllSubPaneIndicators();
} else {
this.restoreFromCandleFullscreen(availableHeight);
}
@@ -2166,6 +2171,8 @@ export class ChartManager {
this._resetMainPricePan();
this._restoreSubPaneIndicatorVisibility();
const H = (availableHeight && availableHeight > 0)
? availableHeight
: this.container.clientHeight;
@@ -2181,6 +2188,62 @@ export class ChartManager {
this.autoScale();
}
/** pane 2+ 하단 보조지표 여부 (pane 0 오버레이 제외) */
private _isSubPaneIndicator(entry: IndicatorEntry): boolean {
return (entry.paneIndex ?? 0) >= 2;
}
/** 캔들 전체보기 — 하단 보조지표 pane 시리즈·기준선 숨김 */
private _hideSubPaneIndicator(entry: IndicatorEntry): void {
for (const series of entry.seriesList) {
try {
series.applyOptions({
visible: false,
lastValueVisible: false,
title: '',
} as Parameters<ISeriesApi<SeriesType>['applyOptions']>[0]);
} catch { /* ok */ }
}
const first = entry.seriesList[0];
if (first) {
for (const pl of entry.hlineRefs) {
try { first.removePriceLine(pl); } catch { /* ok */ }
}
entry.hlineRefs = [];
if (entry.fillPrimitive) {
try { first.detachPrimitive(entry.fillPrimitive); } catch { /* ok */ }
}
}
if (entry.cloudPlugin) {
for (const s of entry.seriesList) {
try { s.detachPrimitive(entry.cloudPlugin); } catch { /* ok */ }
}
}
detachBbBandFill(entry);
}
private _hideAllSubPaneIndicators(): void {
for (const entry of this.indicators.values()) {
if (this._isSubPaneIndicator(entry)) {
this._hideSubPaneIndicator(entry);
}
}
}
/** 캔들 전체보기 해제 — 하단 보조지표 표시·스타일 복원 */
private _restoreSubPaneIndicatorVisibility(): void {
for (const entry of this.indicators.values()) {
if (!this._isSubPaneIndicator(entry)) continue;
if (entry.cloudPlugin) {
const host = seriesByPlotId(entry, 'plot3') ?? entry.seriesList[0];
if (host) {
try { host.attachPrimitive(entry.cloudPlugin); } catch { /* ok */ }
}
}
this.applyIndicatorStyle(entry.config);
}
}
/** 실제 보조지표가 붙어 있는 pane index 집합 (2+) */
private _activeIndicatorPaneIndices(): Set<number> {
const indices = new Set<number>();
@@ -2954,6 +3017,8 @@ export class ChartManager {
panes[i].setStretchFactor(i === 0 ? 1 : ORPHAN_STRETCH);
}
this._hideAllSubPaneIndicators();
return H;
}