carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 1.22 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var a=require("./character-count.style.js"),r=require("../../hooks/__internal__/useLocale/useLocale.js");exports.default=({ariaLive:t="off",value:i,debouncedValue:c=i,limit:l,isDebouncedOverLimit:n,isOverLimit:u,visuallyHiddenHintId:d,isLarge:o})=>{const s=+l-+i,h=+i-+l,v=+l-+c,y=c-+l,C=r.default(),m=(e,a)=>new Intl.NumberFormat(a).format(e);return e.jsxs(a.StyledCharacterCountWrapper,{children:[e.jsx(a.VisuallyHiddenHint,{"data-element":"visually-hidden-hint","data-role":"visually-hidden-hint",id:d,children:C.characterCount.visuallyHiddenHint(m(l,C.locale()))}),e.jsx(a.StyledCharacterCount,{"aria-hidden":"true",isOverLimit:u,"data-element":"character-count","data-role":"character-count",isLarge:o,children:u?C.characterCount.tooManyCharacters(h,m(h,C.locale())):C.characterCount.charactersLeft(s,m(s,C.locale()))}),e.jsx(a.VisuallyHiddenCharacterCount,{"data-element":"visually-hidden-character-count","data-role":"visually-hidden-character-count","aria-live":t,children:n?C.characterCount.tooManyCharacters(y,m(y,C.locale())):C.characterCount.charactersLeft(v,m(v,C.locale()))})]})};