@@ -145,6 +145,58 @@ settings: {
145145
146146` type: "divider" ` 는 설정 UI에 구분선만 추가하며 ` default ` 나 ` label ` 이 필요하지 않습니다.
147147
148+ ### 조건부 표시 (visible)
149+
150+ 설정 항목에 ` visible ` 속성을 추가하면 다른 설정값에 따라 동적으로 표시/숨김할 수 있습니다.
151+ ` visible ` 이 없는 설정은 항상 표시됩니다 (기존 동작과 동일).
152+
153+ ``` javascript
154+ settings: {
155+ // 모드 선택
156+ showGraph: {
157+ type: " boolean" ,
158+ default: true ,
159+ label: " 그래프 표시" ,
160+ },
161+
162+ // 정적 boolean — 항상 숨김
163+ hiddenOption: {
164+ type: " number" ,
165+ default: 5 ,
166+ label: " 숨겨진 옵션" ,
167+ visible: false ,
168+ },
169+
170+ // 함수 — 다른 설정값에 따라 동적으로 표시/숨김
171+ graphDivider: {
172+ type: " divider" ,
173+ visible : (settings ) => settings .showGraph ,
174+ },
175+ graphColor: {
176+ type: " color" ,
177+ default: " #86EFAC" ,
178+ label: " 그래프 색상" ,
179+ visible : (settings ) => settings .showGraph ,
180+ },
181+ graphSpeed: {
182+ type: " number" ,
183+ default: 1000 ,
184+ label: " 그래프 속도 (ms)" ,
185+ visible : (settings ) => settings .showGraph ,
186+ },
187+ },
188+ ```
189+
190+ <Callout type = " info" >
191+ 숨겨진 설정의 저장값은 유지됩니다 — 표시만 제어하며 데이터 손실은 없습니다.
192+ </Callout >
193+
194+ ` visible ` 시그니처는 컨텍스트 메뉴의 ` PluginMenuItem.visible ` 과 동일한 패턴입니다:
195+
196+ ``` typescript
197+ visible ?: boolean | ((settings : Record <string , any >) => boolean );
198+ ```
199+
148200### 설정 접근
149201
150202``` javascript
@@ -522,7 +574,13 @@ dmn.plugin.defineElement({
522574 settings: {
523575 showGraph: { type: "boolean", default: true, label: "그래프 표시" },
524576 textColor: { type: "color", default: "#FFFFFF", label: "텍스트 색상" },
525- graphColor: { type: "color", default: "#86EFAC", label: "그래프 색상" },
577+ graphDivider: { type: "divider", visible: (s) => s.showGraph },
578+ graphColor: {
579+ type: "color",
580+ default: "#86EFAC",
581+ label: "그래프 색상",
582+ visible: (s) => s.showGraph,
583+ },
526584 },
527585
528586 previewState: {
0 commit comments