From f2a664ee509cc0a5840da0ed932bfc3eadea9a74 Mon Sep 17 00:00:00 2001 From: "bozo.kopic" Date: Sun, 19 Dec 2021 03:28:00 +0100 Subject: additional calculate parameter - minimize initial panel usage --- src_js/common.js | 3 +++ src_js/states.js | 1 + src_js/vt.js | 21 +++++++++++++++++---- 3 files changed, 21 insertions(+), 4 deletions(-) (limited to 'src_js') diff --git a/src_js/common.js b/src_js/common.js index 1928624..c106f04 100644 --- a/src_js/common.js +++ b/src_js/common.js @@ -120,6 +120,8 @@ function createCalculateParams() { if (cutWidth < 0) throw 'Invalid cut width'; + const minInitialUsage = r.get('form', 'min_initial_usage'); + const panels = {}; for (const panel of r.get('form', 'panels')) { if (!panel.name) @@ -167,6 +169,7 @@ function createCalculateParams() { return { cut_width: cutWidth, + min_initial_usage: minInitialUsage, panels: panels, items: items }; diff --git a/src_js/states.js b/src_js/states.js index a696007..bf3584e 100644 --- a/src_js/states.js +++ b/src_js/states.js @@ -3,6 +3,7 @@ export const main = { form: { method: 'forward_greedy', cut_width: 0.3, + min_initial_usage: false, panels: [], items: [] }, diff --git a/src_js/vt.js b/src_js/vt.js index 8320f75..ce16d3d 100644 --- a/src_js/vt.js +++ b/src_js/vt.js @@ -68,7 +68,11 @@ function leftPanel() { ['label', 'Cut width'], numberInput(r.get('form', 'cut_width'), u.isNumber, - val => r.set(['form', 'cut_width'], val)) + val => r.set(['form', 'cut_width'], val)), + ['label'], + checkboxInput('Minimize initial panel usage', + r.get('form', 'min_initial_usage'), + val => r.set(['form', 'min_initial_usage'], val)) ], ['div.content', leftPanelPanels(), @@ -240,7 +244,8 @@ function leftPanelItems() { ], ['td.col-rotate', ['div', - checkboxInput(item.can_rotate, + checkboxInput(null, + item.can_rotate, val => r.set([itemsPath, index, 'can_rotate'], val)) ] ], @@ -473,8 +478,8 @@ function numberInput(value, validator, onChange) { } -function checkboxInput(value, onChange) { - return ['input', { +function checkboxInput(label, value, onChange) { + const input = ['input', { props: { type: 'checkbox', checked: value @@ -483,6 +488,14 @@ function checkboxInput(value, onChange) { change: evt => onChange(evt.target.checked) } }]; + + if (!label) + return input; + + return ['label', + input, + ` ${label}` + ]; } -- cgit v1.2.3-70-g09d2