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