Rose debug info
---------------

InputSteppers для большого диапазона значений

Иногда прилетают аппаратные проблемы.
Например, в этом случае мы меняем диапазон значений для CPU и RAM. Проблема пришла не от пользователей, а от наших технарей, которые переписали процедуру расчета значений — это подкапотные нюансы. А раз меняется диапазон значений, то и способ их ввода тоже должен поменяться.

Раньше пользователь мог ввести любое значение CPU, используя слайдер или клавиатуру

Теперь значения CPU, которое пользователь может использовать у себя на фаззере изменились и стали более специфические [2,4,6,8,10,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96]

Значения нелинейные, поэтому теперь мы не можем позволять пользователю использовать стандартный инпут — юзер просто не знает разрешенных значений и постоянно будет натыкаться на ошибку. Плюс значений слишком много — слайдером из такой массы не выбирают.

Одним из вариантов решения проблемы стал InputStepper, но самих значений все же слишком много, степпером ты такое не нащелкаешь. Особенно, если тебе нужно значение 96. Нам нужен был какой-то симбиоз двух компонентов.

Гипотеза:
Юзер может сначала ввести цифры слайдером, потом уточнить степпером.

Главное правило:
По дефолту выводим стандартные предустановленные настройки, чтобы пользователь мог их поправить. Пока не введено значение CPU нельзя установить значение RAM — они взаимозависимы.

Механика:
Можно трогать слайдер, можно вводить степпером. Цифры в инпуте отзываются на трогание слайдера, а слайдер отзывается на ввод через степпер.

Другим вариантом был InputNumber

Но он не решал проблему элемента, в который хочется ткнуть и ручками ввести значение. Плюс элемент inputNumber предполагает, что он либо весь readOnly — и поле, и стрелки, либо оба канала — поле ввода и стрелочки можно использовать. Мы не можем выключить возможность только возможность ввода. Отмели

Еще был вариант оставить инпут, но привязать его к степперу намертво. Механика там такая — двигаешь слайдер, в инпуте меняются значения с настроенным шагом, а если ввел значение руками оно округляется до ближайшего допустимого. Пример для потыкать

Вот обсуждаем с разработчиком вариант:

По понятным, описанным в скрине причинам, отмели