tweak-tools
Version:
Tweak your React projects until awesomeness
26 lines (25 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeKeyedNumberSettings = void 0;
const number_plugin_1 = require("../Number/number-plugin");
const normalizeKeyedNumberSettings = (value, settings) => {
const _settings = {};
let maxStep = 0;
let minPad = Infinity;
Object.entries(value).forEach(([key, v]) => {
_settings[key] = (0, number_plugin_1.normalize)(Object.assign({ value: v }, settings[key])).settings;
maxStep = Math.max(maxStep, _settings[key].step);
minPad = Math.min(minPad, _settings[key].pad);
});
// makes sure we get a consistent step and pad on all vector components when
// step is not specified in settings.
for (let key in _settings) {
const { step, min, max } = settings[key] || {};
if (!isFinite(step) && (!isFinite(min) || !isFinite(max))) {
_settings[key].step = maxStep;
_settings[key].pad = minPad;
}
}
return _settings;
};
exports.normalizeKeyedNumberSettings = normalizeKeyedNumberSettings;