@aokiapp/rjsf-mantine-theme
Version:
Mantine theme, fields and widgets for react-jsonschema-form
79 lines (74 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var utils = require('@rjsf/utils');
var react = require('react');
var createErrors = require('../utils/createErrors.cjs');
var FieldTemplate = require('../templates/FieldTemplate.cjs');
function UpDownWidget(props) {
const {
id,
placeholder,
label,
hideLabel,
value,
required,
readonly,
disabled,
onChange,
onChangeOverride,
onBlur,
onFocus,
autofocus,
options,
schema,
rawErrors,
className,
hideError
} = props;
if (!id) {
console.log("No id for", props);
throw new Error(`no id for props ${JSON.stringify(props)}`);
}
const overrideProps = typeof options["props"] === "object" ? options["props"] : {};
const _onChange = react.useCallback(
(e) => {
const callTarget = onChangeOverride || onChange;
callTarget(e);
},
[onChangeOverride, onChange]
);
const _onBlur = react.useCallback(({ target: { value: value2 } }) => onBlur(id, value2), [onBlur, id]);
const _onFocus = react.useCallback(
({ target: { value: value2 } }) => onFocus(id, value2),
[onFocus, id]
);
const { description } = FieldTemplate.useFieldContext();
const inputValue = value || value === 0 ? value : "";
return /* @__PURE__ */ jsxRuntime.jsx(
core.NumberInput,
{
id,
placeholder,
description,
max: schema.maximum,
min: schema.minimum,
label: utils.labelValue(label, hideLabel, void 0),
required,
autoFocus: autofocus,
disabled: disabled || readonly,
value: inputValue,
error: createErrors.createErrors(rawErrors, hideError),
onChange: _onChange,
onBlur: _onBlur,
onFocus: _onFocus,
"aria-describedby": utils.ariaDescribedByIds(id, !!schema.examples),
className: `armt-widget-updown ${className || ""}`,
...overrideProps
},
id
);
}
exports.default = UpDownWidget;
//# sourceMappingURL=UpDownWidget.cjs.map