postprocessのUIを個別ファイルに分離
Browse files- index.html +1 -32
- index.js +41 -0
index.html
CHANGED
@@ -63,38 +63,7 @@
|
|
63 |
<div class="mb-3">
|
64 |
<label class="form-label">ポストプロセス</label>
|
65 |
<div class="row g-2" id="postProcessContainer">
|
66 |
-
<!--
|
67 |
-
<div class="col-md-6 col-lg-4">
|
68 |
-
<div class="card h-100">
|
69 |
-
<div class="card-header d-flex align-items-center">
|
70 |
-
<div class="form-check mb-0">
|
71 |
-
<input type="checkbox" class="form-check-input" name="postProcess" id="postProcessDummy" value="dummy">
|
72 |
-
<label class="form-check-label" for="postProcessDummy">
|
73 |
-
ダミー
|
74 |
-
</label>
|
75 |
-
</div>
|
76 |
-
</div>
|
77 |
-
<div class="card-body">
|
78 |
-
<p class="text-muted mb-0"><small>設定はありません</small></p>
|
79 |
-
</div>
|
80 |
-
</div>
|
81 |
-
</div>
|
82 |
-
<!-- 色反転 -->
|
83 |
-
<div class="col-md-6 col-lg-4">
|
84 |
-
<div class="card h-100">
|
85 |
-
<div class="card-header d-flex align-items-center">
|
86 |
-
<div class="form-check mb-0">
|
87 |
-
<input type="checkbox" class="form-check-input" name="postProcess" id="postProcessInvert" value="invert">
|
88 |
-
<label class="form-check-label" for="postProcessInvert">
|
89 |
-
色反転
|
90 |
-
</label>
|
91 |
-
</div>
|
92 |
-
</div>
|
93 |
-
<div class="card-body">
|
94 |
-
<p class="text-muted mb-0"><small>設定はありません</small></p>
|
95 |
-
</div>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
</div>
|
99 |
</div>
|
100 |
|
|
|
63 |
<div class="mb-3">
|
64 |
<label class="form-label">ポストプロセス</label>
|
65 |
<div class="row g-2" id="postProcessContainer">
|
66 |
+
<!-- ダストプロセスのカードはJavaScriptで動的に生成されます -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
</div>
|
68 |
</div>
|
69 |
|
index.js
CHANGED
@@ -232,6 +232,44 @@ const postProcessors = {
|
|
232 |
invert: new InvertPostProcess()
|
233 |
};
|
234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
/**
|
236 |
* 選択されているポストプロセスを取得
|
237 |
*/
|
@@ -572,6 +610,9 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|
572 |
|
573 |
// 初期描画
|
574 |
await renderAllPresets();
|
|
|
|
|
|
|
575 |
});
|
576 |
|
577 |
// 縦書きモードの切り替え時の処理
|
|
|
232 |
invert: new InvertPostProcess()
|
233 |
};
|
234 |
|
235 |
+
/**
|
236 |
+
* ポストプロセスのカードを生成
|
237 |
+
*/
|
238 |
+
function createPostProcessCard(processor) {
|
239 |
+
const div = document.createElement('div');
|
240 |
+
div.className = 'col-md-6 col-lg-4';
|
241 |
+
div.innerHTML = `
|
242 |
+
<div class="card h-100">
|
243 |
+
<div class="card-header d-flex align-items-center">
|
244 |
+
<div class="form-check mb-0">
|
245 |
+
<input type="checkbox" class="form-check-input" name="postProcess" id="postProcess${processor.name}" value="${processor.name}">
|
246 |
+
<label class="form-check-label" for="postProcess${processor.name}">
|
247 |
+
${processor.label}
|
248 |
+
</label>
|
249 |
+
</div>
|
250 |
+
</div>
|
251 |
+
<div class="card-body">
|
252 |
+
${processor.ui.template}
|
253 |
+
</div>
|
254 |
+
</div>
|
255 |
+
`;
|
256 |
+
return div;
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* ポストプロセスのUIを初期化
|
261 |
+
*/
|
262 |
+
function initializePostProcessUI() {
|
263 |
+
const container = document.getElementById('postProcessContainer');
|
264 |
+
container.innerHTML = '';
|
265 |
+
|
266 |
+
// 各プロセッサのカードを生成
|
267 |
+
Object.values(postProcessors).forEach(processor => {
|
268 |
+
const card = createPostProcessCard(processor);
|
269 |
+
container.appendChild(card);
|
270 |
+
});
|
271 |
+
}
|
272 |
+
|
273 |
/**
|
274 |
* 選択されているポストプロセスを取得
|
275 |
*/
|
|
|
610 |
|
611 |
// 初期描画
|
612 |
await renderAllPresets();
|
613 |
+
|
614 |
+
// ポストプロセスのUI初期化
|
615 |
+
initializePostProcessUI();
|
616 |
});
|
617 |
|
618 |
// 縦書きモードの切り替え時の処理
|