@progress/kendo-react-inputs
Version:
React Inputs offer a customizable interface for users to enter and pick different information. KendoReact Input package
122 lines (121 loc) • 2.88 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import * as n from "react";
import l from "prop-types";
import { useDir as p, classNames as y } from "@progress/kendo-react-common";
const s = n.forwardRef((c, u) => {
const o = n.useRef(null), a = n.useRef(null), e = { dir: b.dir, ...c }, r = p(a, e.dir);
n.useImperativeHandle(o, () => ({
element: a.current,
props: e,
value: e.value
})), n.useImperativeHandle(u, () => o.current);
const i = n.useCallback(
(t) => {
e.onClick && e.onClick.call(void 0, {
value: e.value,
target: o.current,
syntheticEvent: t
});
},
[e.onClick, e.value]
), d = n.useCallback(
(t) => {
e.onKeyDown && e.onKeyDown.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onKeyDown]
), v = n.useCallback(
(t) => {
e.onFocus && e.onFocus.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onFocus]
), h = n.useCallback(
(t) => {
e.onBlur && e.onBlur.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onBlur]
), f = n.useCallback(
(t) => {
e.onMouseMove && e.onMouseMove.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onMouseMove]
), M = n.useCallback(
(t) => {
e.onMouseEnter && e.onMouseEnter.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onMouseEnter]
), m = n.useCallback(
(t) => {
e.onMouseLeave && e.onMouseLeave.call(void 0, {
target: o.current,
syntheticEvent: t
});
},
[e.onMouseLeave]
);
return /* @__PURE__ */ n.createElement(
"span",
{
id: e.id,
ref: a,
dir: r,
"data-half": e.half,
tabIndex: e.tabIndex,
title: e.title,
style: e.style,
className: y(
"k-rating-item",
{
"k-rtl": r === "rtl",
"k-selected": e.selected,
"k-hover": e.hovered
},
e.className
),
onClick: i,
onKeyDown: d,
onFocus: v,
onBlur: h,
onMouseEnter: M,
onMouseLeave: m,
onMouseMove: f
},
e.children
);
}), k = {
id: l.string,
icon: l.any,
dir: l.oneOf(["ltr", "rtl"]),
title: l.string,
value: l.number.isRequired,
half: l.bool,
selected: l.bool,
hovered: l.bool
}, b = {
dir: "ltr"
};
s.displayName = "KendoReactRatingItem";
s.propTypes = k;
export {
s as RatingItem
};