UNPKG

@rjsf/antd

Version:

Ant Design theme, fields and widgets for react-jsonschema-form

37 lines 2.37 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { ArrowDownOutlined, ArrowUpOutlined, CopyOutlined, DeleteOutlined, PlusCircleOutlined, CloseOutlined, } from '@ant-design/icons'; import { getUiOptions, TranslatableString } from '@rjsf/utils'; import { Button } from 'antd'; export default function IconButton(props) { const { iconType = 'default', icon, onClick, uiSchema, registry, color, ...otherProps } = props; return (_jsx(Button, { onClick: onClick, // @ts-expect-error TS2322, Because even casting as `ButtonProps['type']` has issues type: iconType, icon: icon, color: color, style: { paddingTop: '4px' /* Center the button */ }, ...otherProps })); } export function AddButton(props) { const { registry: { translateString }, } = props; return (_jsx(IconButton, { title: translateString(TranslatableString.AddItemButton), iconType: 'primary', block: true, ...props, icon: _jsx(PlusCircleOutlined, {}) })); } export function CopyButton(props) { const { registry: { translateString }, } = props; return _jsx(IconButton, { title: translateString(TranslatableString.CopyButton), ...props, icon: _jsx(CopyOutlined, {}) }); } export function MoveDownButton(props) { const { registry: { translateString }, } = props; return (_jsx(IconButton, { title: translateString(TranslatableString.MoveDownButton), ...props, icon: _jsx(ArrowDownOutlined, {}) })); } export function MoveUpButton(props) { const { registry: { translateString }, } = props; return _jsx(IconButton, { title: translateString(TranslatableString.MoveUpButton), ...props, icon: _jsx(ArrowUpOutlined, {}) }); } export function RemoveButton(props) { // The `block` prop is not part of the `IconButtonProps` defined in the template, so get it from the uiSchema instead const options = getUiOptions(props.uiSchema); const { registry: { translateString }, } = props; return (_jsx(IconButton, { title: translateString(TranslatableString.RemoveButton), danger: true, block: !!options.block, iconType: 'primary', ...props, icon: _jsx(DeleteOutlined, {}) })); } export function ClearButton(props) { const { registry: { translateString }, } = props; return (_jsx(IconButton, { title: translateString(TranslatableString.ClearButton), ...props, iconType: 'link', icon: _jsx(CloseOutlined, {}) })); } //# sourceMappingURL=index.js.map