@anoki/fse-ui
Version:
FSE UI components library
3 lines (2 loc) • 1.99 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./components/ui/DatePicker/DatePicker.css');const n=require("./index.cjs278.js"),u=require("./index.cjs3.js");;/* empty css */const h=require("./index.cjs280.js"),x=require("react"),R=({label:o,value:c,maxValue:l,minValue:m,className:b,disabled:d,onClick:a,onChange:v,error:t,required:y=!1,id:j,autoComplete:D="off"})=>{const r=x.useRef(null),e=j||`datepicker-${o.toLowerCase().replace(/\s+/g,"-")}`;x.useEffect(()=>{t&&r.current?(r.current.setAttribute("aria-invalid","true"),r.current.setAttribute("aria-describedby",`${e}-error`)):r.current&&(r.current.setAttribute("aria-invalid","false"),r.current.removeAttribute("aria-describedby"))},[t,e]);const g=i=>{i.key==="Enter"&&!d&&(a==null||a())},p=c?u.DateTime.fromJSDate(c).toFormat("yyyy-MM-dd"):"";return n.jsxRuntimeExports.jsxs("div",{className:h.clsx("datepicker-container",b),role:"group","aria-labelledby":`${e}-label`,"aria-describedby":t?`${e}-error`:void 0,children:[n.jsxRuntimeExports.jsxs("label",{id:`${e}-label`,htmlFor:e,className:"datepicker-label fs-7",children:[o,y&&n.jsxRuntimeExports.jsx("span",{className:"text-error ml-1","aria-hidden":"true",children:"*"})]}),n.jsxRuntimeExports.jsx("input",{ref:r,id:e,type:"date",className:"datepicker-input fs-6",disabled:d,value:p,max:l?u.DateTime.fromJSDate(l).toFormat("yyyy-MM-dd"):void 0,min:m?u.DateTime.fromJSDate(m).toFormat("yyyy-MM-dd"):void 0,onClick:()=>a==null?void 0:a(),onInput:i=>{const s=i.currentTarget,f=s.value.split("-")[0];f&&f.length>4&&(s.value=p)},onChange:i=>{const s=new Date(i.target.value);isNaN(s.getTime())||v(s)},onKeyDown:g,"aria-required":y,"aria-disabled":d,"aria-label":o,"aria-invalid":!!t,"aria-describedby":t?`${e}-error`:void 0,autoComplete:D}),t&&n.jsxRuntimeExports.jsx("div",{id:`${e}-error`,className:"datepicker-error",role:"alert","aria-live":"polite",children:t})]})};exports.DatePicker=R;
//# sourceMappingURL=index.cjs97.js.map