@gechiui/block-editor
Version:
96 lines (85 loc) • 3.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ImageSizeControl;
var _element = require("@gechiui/element");
var _lodash = require("lodash");
var _components = require("@gechiui/components");
var _i18n = require("@gechiui/i18n");
var _useDimensionHandler = _interopRequireDefault(require("./use-dimension-handler"));
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
const IMAGE_SIZE_PRESETS = [25, 50, 75, 100];
function ImageSizeControl(_ref) {
let {
imageWidth,
imageHeight,
imageSizeOptions = [],
isResizable = true,
slug,
width,
height,
onChange,
onChangeImage = _lodash.noop
} = _ref;
const {
currentHeight,
currentWidth,
updateDimension,
updateDimensions
} = (0, _useDimensionHandler.default)(height, width, imageHeight, imageWidth, onChange);
return (0, _element.createElement)(_element.Fragment, null, !(0, _lodash.isEmpty)(imageSizeOptions) && (0, _element.createElement)(_components.SelectControl, {
label: (0, _i18n.__)('图片尺寸'),
value: slug,
options: imageSizeOptions,
onChange: onChangeImage
}), isResizable && (0, _element.createElement)("div", {
className: "block-editor-image-size-control"
}, (0, _element.createElement)("p", {
className: "block-editor-image-size-control__row"
}, (0, _i18n.__)('图片尺寸')), (0, _element.createElement)("div", {
className: "block-editor-image-size-control__row"
}, (0, _element.createElement)(_components.TextControl, {
type: "number",
className: "block-editor-image-size-control__width",
label: (0, _i18n.__)('宽度'),
value: currentWidth,
min: 1,
onChange: value => updateDimension('width', value)
}), (0, _element.createElement)(_components.TextControl, {
type: "number",
className: "block-editor-image-size-control__height",
label: (0, _i18n.__)('高度'),
value: currentHeight,
min: 1,
onChange: value => updateDimension('height', value)
})), (0, _element.createElement)("div", {
className: "block-editor-image-size-control__row"
}, (0, _element.createElement)(_components.ButtonGroup, {
"aria-label": (0, _i18n.__)('图片尺寸预设')
}, IMAGE_SIZE_PRESETS.map(scale => {
const scaledWidth = Math.round(imageWidth * (scale / 100));
const scaledHeight = Math.round(imageHeight * (scale / 100));
const isCurrent = currentWidth === scaledWidth && currentHeight === scaledHeight;
return (0, _element.createElement)(_components.Button, {
key: scale,
isSmall: true,
variant: isCurrent ? 'primary' : undefined,
isPressed: isCurrent,
onClick: () => updateDimensions(scaledHeight, scaledWidth)
}, scale, "%");
})), (0, _element.createElement)(_components.Button, {
isSmall: true,
onClick: () => updateDimensions()
}, (0, _i18n.__)('重置')))));
}
//# sourceMappingURL=index.js.map