UNPKG

@wordpress/block-editor

Version:
56 lines (54 loc) 1.83 kB
"use strict"; 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