koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 1.91 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),n=require("react"),F=require("classnames"),K=require("../../internal/Icons/IconClock.cjs"),p=require("../../internal/inputs/ValidationProps.cjs"),B=require("../../internal/inputs/useValidation.cjs"),D=require("../../internal/inputs/useRevalidateOnFormChange.cjs"),M=require("../../internal/inputs/useExternalValidation.cjs"),P=require("../../internal/inputs/useValidationIcon.cjs"),U=require("../../internal/hooks/useInternalRef.cjs"),c=require("./InputTime.module.css.cjs"),V=n.forwardRef(({className:f,placeholder:h="",disabled:C,value:k,onChange:r=()=>{},onFocus:q=()=>{},onBlur:y=()=>{},onKeyDown:u=()=>{},onKeyUp:d=()=>{},defaultValue:x,revalidateOnFormChange:b,validation:s,errorMessage:g,displayIcon:R=!0,...l},j)=>{const a=U.useInternalRef(j),T=!!s||typeof l.min=="string"||typeof l.max=="string",{validity:m,setValidity:t,validateTextual:I}=B.useValidation({validation:s,hasValidators:T});D.useRevalidateOnFormChange(a,I,b),M.useExternalValidation({errorMessage:g,inputRef:a,setValidity:t,validation:s});const N=P.useValidationIcon(m),v=n.useCallback(()=>{t(p.ValidationState.error)},[t]),w=n.useCallback(()=>{var e,o;(e=a.current)==null||e.focus(),(o=a.current)==null||o.showPicker()},[a]),S=n.useCallback(e=>{u(e)},[u]),O=n.useCallback(e=>{d(e)},[d]),E=n.useCallback(e=>{e.target.checkValidity()&&t(p.ValidationState.valid),r(e)},[r,t]);return i.jsxs("div",{className:F(c.default.wrapper,f),children:[i.jsx(K.IconClock,{tabIndex:-1,onClick:w,className:c.default.icon}),i.jsx("input",{...l,type:"time",placeholder:h,className:c.default.input,ref:a,disabled:C,value:k,defaultValue:x,onBlur:y,onFocus:q,onKeyUp:O,onKeyDown:S,onInvalid:v,onChange:E,onInput:I}),R&&m&&i.jsx(N,{})]})});V.displayName="InputTime";exports.InputTime=V;
//# sourceMappingURL=InputTime.cjs.map