@wordpress/components
Version:
UI components for WordPress.
60 lines (55 loc) • 1.71 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* WordPress dependencies
*/
import { useInstanceId } from '@wordpress/compose';
import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
import BaseControl from '../base-control';
import { FlexBlock, FlexItem } from '../flex';
import NumberControl from '../number-control';
import AngleCircle from './angle-circle';
import { Root } from './styles/angle-picker-control-styles';
export default function AnglePickerControl({
className,
hideLabelFromVision,
id: idProp,
label = __('Angle'),
onChange,
value,
...props
}) {
const instanceId = useInstanceId(AnglePickerControl, 'components-angle-picker-control__input');
const id = idProp || instanceId;
const handleOnNumberChange = unprocessedValue => {
const inputValue = unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;
onChange(inputValue);
};
const classes = classnames('components-angle-picker-control', className);
return createElement(BaseControl, _extends({
className: classes,
hideLabelFromVision: hideLabelFromVision,
id: id,
label: label
}, props), createElement(Root, null, createElement(FlexBlock, null, createElement(NumberControl, {
className: "components-angle-picker-control__input-field",
id: id,
max: 360,
min: 0,
onChange: handleOnNumberChange,
step: "1",
value: value
})), createElement(FlexItem, null, createElement(AngleCircle, {
"aria-hidden": "true",
value: value,
onChange: onChange
}))));
}
//# sourceMappingURL=index.js.map