@wordpress/block-editor
Version:
56 lines (54 loc) • 1.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = SeparatedInputControls;
var _spacingInputControl = _interopRequireDefault(require("./spacing-input-control"));
var _utils = require("../utils");
var _jsxRuntime = require("react/jsx-runtime");
/**
* Internal dependencies
*/
function SeparatedInputControls({
minimumCustomValue,
onChange,
onMouseOut,
onMouseOver,
sides,
spacingSizes,
type,
values
}) {
// Filter sides if custom configuration provided, maintaining default order.
const filteredSides = sides?.length ? _utils.ALL_SIDES.filter(side => sides.includes(side)) : _utils.ALL_SIDES;
const createHandleOnChange = side => next => {
// Encode the existing value into the preset value if the passed in value matches the value of one of the spacingSizes.
const nextValues = {
...Object.keys(values).reduce((acc, key) => {
acc[key] = (0, _utils.getPresetValueFromCustomValue)(values[key], spacingSizes);
return acc;
}, {})
};
nextValues[side] = next;
onChange(nextValues);
};
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: filteredSides.map(side => {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_spacingInputControl.default, {
icon: _utils.ICONS[side],
label: _utils.LABELS[side],
minimumCustomValue: minimumCustomValue,
onChange: createHandleOnChange(side),
onMouseOut: onMouseOut,
onMouseOver: onMouseOver,
side: side,
spacingSizes: spacingSizes,
type: type,
value: values[side],
withInputField: false
}, `spacing-sizes-control-${side}`);
})
});
}
//# sourceMappingURL=separated.js.map