@wordpress/block-editor
Version:
119 lines (113 loc) • 9.23 kB
JavaScript
import _styled from "@emotion/styled/base";
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
import { __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUnitControl as UnitControl } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
const SingleColumnToolsPanelItem = /*#__PURE__*/_styled(ToolsPanelItem, process.env.NODE_ENV === "production" ? {
target: "ef8pe3d0"
} : {
target: "ef8pe3d0",
label: "SingleColumnToolsPanelItem"
})(process.env.NODE_ENV === "production" ? {
name: "957xgf",
styles: "grid-column:span 1"
} : {
name: "957xgf",
styles: "grid-column:span 1",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvYmxvY2stZWRpdG9yL3NyYy9jb21wb25lbnRzL2RpbWVuc2lvbnMtdG9vbC93aWR0aC1oZWlnaHQtdG9vbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjMkQiLCJmaWxlIjoiQHdvcmRwcmVzcy9ibG9jay1lZGl0b3Ivc3JjL2NvbXBvbmVudHMvZGltZW5zaW9ucy10b29sL3dpZHRoLWhlaWdodC10b29sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0X19leHBlcmltZW50YWxUb29sc1BhbmVsSXRlbSBhcyBUb29sc1BhbmVsSXRlbSxcblx0X19leHBlcmltZW50YWxVbml0Q29udHJvbCBhcyBVbml0Q29udHJvbCxcbn0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuY29uc3QgU2luZ2xlQ29sdW1uVG9vbHNQYW5lbEl0ZW0gPSBzdHlsZWQoIFRvb2xzUGFuZWxJdGVtIClgXG5cdGdyaWQtY29sdW1uOiBzcGFuIDE7XG5gO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0B3b3JkcHJlc3MvY29tcG9uZW50cy9idWlsZC10eXBlcy91bml0LWNvbnRyb2wvdHlwZXMnKS5XUFVuaXRDb250cm9sVW5pdH0gV1BVbml0Q29udHJvbFVuaXRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFdpZHRoSGVpZ2h0VG9vbFZhbHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3dpZHRoXSAgV2lkdGggQ1NTIHZhbHVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtoZWlnaHRdIEhlaWdodCBDU1MgdmFsdWUuXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgV2lkdGhIZWlnaHRUb29sT25DaGFuZ2VcbiAqIEBwYXJhbSB7V2lkdGhIZWlnaHRUb29sVmFsdWV9IG5leHRWYWx1ZSBOZXh0IGRpbWVuc2lvbnMgdmFsdWUuXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gV2lkdGhIZWlnaHRUb29sUHJvcHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSAgICAgICAgICAgICAgICAgIFtwYW5lbElkXSAgICAgICAgICBJRCBvZiB0aGUgcGFuZWwgdGhhdCBjb250YWlucyB0aGUgY29udHJvbHMuXG4gKiBAcHJvcGVydHkge1dpZHRoSGVpZ2h0VG9vbFZhbHVlfSAgICBbdmFsdWVdICAgICAgICAgICAgQ3VycmVudCBkaW1lbnNpb25zIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7V2lkdGhIZWlnaHRUb29sT25DaGFuZ2V9IFtvbkNoYW5nZV0gICAgICAgICBDYWxsYmFjayB0byB1cGRhdGUgdGhlIGRpbWVuc2lvbnMgdmFsdWVzLlxuICogQHByb3BlcnR5IHtXUFVuaXRDb250cm9sVW5pdFtdfSAgICAgW3VuaXRzXSAgICAgICAgICAgIFVuaXRzIG9wdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59ICAgICAgICAgICAgICAgICBbaXNTaG93bkJ5RGVmYXVsdF0gV2hldGhlciB0aGUgcGFuZWwgaXMgc2hvd24gYnkgZGVmYXVsdC5cbiAqL1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHJlbmRlcnMgY29udHJvbHMgdG8gZWRpdCB0aGUgZGltZW5zaW9ucyBvZiBhbiBpbWFnZSBvciBjb250YWluZXIuXG4gKlxuICogQHBhcmFtIHtXaWR0aEhlaWdodFRvb2xQcm9wc30gcHJvcHMgVGhlIGNvbXBvbmVudCBwcm9wcy5cbiAqXG4gKiBAcmV0dXJuIHtpbXBvcnQoJ3JlYWN0JykuUmVhY3RFbGVtZW50fSBUaGUgd2lkdGggYW5kIGhlaWdodCB0b29sLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBXaWR0aEhlaWdodFRvb2woIHtcblx0cGFuZWxJZCxcblx0dmFsdWUgPSB7fSxcblx0b25DaGFuZ2UgPSAoKSA9PiB7fSxcblx0dW5pdHMsXG5cdGlzU2hvd25CeURlZmF1bHQgPSB0cnVlLFxufSApIHtcblx0Ly8gbnVsbCwgdW5kZWZpbmVkLCBhbmQgJ2F1dG8nIGFsbCByZXByZXNlbnQgdGhlIGRlZmF1bHQgdmFsdWUuXG5cdGNvbnN0IHdpZHRoID0gdmFsdWUud2lkdGggPT09ICdhdXRvJyA/ICcnIDogdmFsdWUud2lkdGggPz8gJyc7XG5cdGNvbnN0IGhlaWdodCA9IHZhbHVlLmhlaWdodCA9PT0gJ2F1dG8nID8gJycgOiB2YWx1ZS5oZWlnaHQgPz8gJyc7XG5cblx0Y29uc3Qgb25EaW1lbnNpb25DaGFuZ2UgPSAoIGRpbWVuc2lvbiApID0+ICggbmV4dERpbWVuc2lvbiApID0+IHtcblx0XHRjb25zdCBuZXh0VmFsdWUgPSB7IC4uLnZhbHVlIH07XG5cdFx0Ly8gRW1wdHkgc3RyaW5ncyBvciB1bmRlZmluZWQgbWF5IGJlIHBhc3NlZCBhbmQgYm90aCByZXByZXNlbnQgcmVtb3ZpbmcgdGhlIHZhbHVlLlxuXHRcdGlmICggISBuZXh0RGltZW5zaW9uICkge1xuXHRcdFx0ZGVsZXRlIG5leHRWYWx1ZVsgZGltZW5zaW9uIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5leHRWYWx1ZVsgZGltZW5zaW9uIF0gPSBuZXh0RGltZW5zaW9uO1xuXHRcdH1cblx0XHRvbkNoYW5nZSggbmV4dFZhbHVlICk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PFNpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtXG5cdFx0XHRcdGxhYmVsPXsgX18oICdXaWR0aCcgKSB9XG5cdFx0XHRcdGlzU2hvd25CeURlZmF1bHQ9eyBpc1Nob3duQnlEZWZhdWx0IH1cblx0XHRcdFx0aGFzVmFsdWU9eyAoKSA9PiB3aWR0aCAhPT0gJycgfVxuXHRcdFx0XHRvbkRlc2VsZWN0PXsgb25EaW1lbnNpb25DaGFuZ2UoICd3aWR0aCcgKSB9XG5cdFx0XHRcdHBhbmVsSWQ9eyBwYW5lbElkIH1cblx0XHRcdD5cblx0XHRcdFx0PFVuaXRDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ1dpZHRoJyApIH1cblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17IF9fKCAnQXV0bycgKSB9XG5cdFx0XHRcdFx0bGFiZWxQb3NpdGlvbj1cInRvcFwiXG5cdFx0XHRcdFx0dW5pdHM9eyB1bml0cyB9XG5cdFx0XHRcdFx0bWluPXsgMCB9XG5cdFx0XHRcdFx0dmFsdWU9eyB3aWR0aCB9XG5cdFx0XHRcdFx0b25DaGFuZ2U9eyBvbkRpbWVuc2lvbkNoYW5nZSggJ3dpZHRoJyApIH1cblx0XHRcdFx0XHRzaXplPVwiX191bnN0YWJsZS1sYXJnZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1NpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtPlxuXHRcdFx0PFNpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtXG5cdFx0XHRcdGxhYmVsPXsgX18oICdIZWlnaHQnICkgfVxuXHRcdFx0XHRpc1Nob3duQnlEZWZhdWx0PXsgaXNTaG93bkJ5RGVmYXVsdCB9XG5cdFx0XHRcdGhhc1ZhbHVlPXsgKCkgPT4gaGVpZ2h0ICE9PSAnJyB9XG5cdFx0XHRcdG9uRGVzZWxlY3Q9eyBvbkRpbWVuc2lvbkNoYW5nZSggJ2hlaWdodCcgKSB9XG5cdFx0XHRcdHBhbmVsSWQ9eyBwYW5lbElkIH1cblx0XHRcdD5cblx0XHRcdFx0PFVuaXRDb250cm9sXG5cdFx0XHRcdFx0bGFiZWw9eyBfXyggJ0hlaWdodCcgKSB9XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9eyBfXyggJ0F1dG8nICkgfVxuXHRcdFx0XHRcdGxhYmVsUG9zaXRpb249XCJ0b3BcIlxuXHRcdFx0XHRcdHVuaXRzPXsgdW5pdHMgfVxuXHRcdFx0XHRcdG1pbj17IDAgfVxuXHRcdFx0XHRcdHZhbHVlPXsgaGVpZ2h0IH1cblx0XHRcdFx0XHRvbkNoYW5nZT17IG9uRGltZW5zaW9uQ2hhbmdlKCAnaGVpZ2h0JyApIH1cblx0XHRcdFx0XHRzaXplPVwiX191bnN0YWJsZS1sYXJnZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1NpbmdsZUNvbHVtblRvb2xzUGFuZWxJdGVtPlxuXHRcdDwvPlxuXHQpO1xufVxuIl19 */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
});
/**
* @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit
*/
/**
* @typedef {Object} WidthHeightToolValue
* @property {string} [width] Width CSS value.
* @property {string} [height] Height CSS value.
*/
/**
* @callback WidthHeightToolOnChange
* @param {WidthHeightToolValue} nextValue Next dimensions value.
* @return {void}
*/
/**
* @typedef {Object} WidthHeightToolProps
* @property {string} [panelId] ID of the panel that contains the controls.
* @property {WidthHeightToolValue} [value] Current dimensions values.
* @property {WidthHeightToolOnChange} [onChange] Callback to update the dimensions values.
* @property {WPUnitControlUnit[]} [units] Units options.
* @property {boolean} [isShownByDefault] Whether the panel is shown by default.
*/
/**
* Component that renders controls to edit the dimensions of an image or container.
*
* @param {WidthHeightToolProps} props The component props.
*
* @return {import('react').ReactElement} The width and height tool.
*/
export default function WidthHeightTool({
panelId,
value = {},
onChange = () => {},
units,
isShownByDefault = true
}) {
var _value$width, _value$height;
// null, undefined, and 'auto' all represent the default value.
const width = value.width === 'auto' ? '' : (_value$width = value.width) !== null && _value$width !== void 0 ? _value$width : '';
const height = value.height === 'auto' ? '' : (_value$height = value.height) !== null && _value$height !== void 0 ? _value$height : '';
const onDimensionChange = dimension => nextDimension => {
const nextValue = {
...value
};
// Empty strings or undefined may be passed and both represent removing the value.
if (!nextDimension) {
delete nextValue[dimension];
} else {
nextValue[dimension] = nextDimension;
}
onChange(nextValue);
};
return /*#__PURE__*/_jsxs(_Fragment, {
children: [/*#__PURE__*/_jsx(SingleColumnToolsPanelItem, {
label: __('Width'),
isShownByDefault: isShownByDefault,
hasValue: () => width !== '',
onDeselect: onDimensionChange('width'),
panelId: panelId,
children: /*#__PURE__*/_jsx(UnitControl, {
label: __('Width'),
placeholder: __('Auto'),
labelPosition: "top",
units: units,
min: 0,
value: width,
onChange: onDimensionChange('width'),
size: "__unstable-large"
})
}), /*#__PURE__*/_jsx(SingleColumnToolsPanelItem, {
label: __('Height'),
isShownByDefault: isShownByDefault,
hasValue: () => height !== '',
onDeselect: onDimensionChange('height'),
panelId: panelId,
children: /*#__PURE__*/_jsx(UnitControl, {
label: __('Height'),
placeholder: __('Auto'),
labelPosition: "top",
units: units,
min: 0,
value: height,
onChange: onDimensionChange('height'),
size: "__unstable-large"
})
})]
});
}
//# sourceMappingURL=width-height-tool.js.map