UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 4.87 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),i=require("./fieldset.style.js"),n=require("../validations/validation-icon.component.js"),t=require("../../components/carbon-provider/__internal__/new-validation.context.js"),o=require("../input-behaviour/input-group-behaviour.component.js"),l=require("../../components/help/help.component.js"),s=require("../../components/typography/typography.component.js"),a=require("../../components/box/box.component.js"),d=require("../../components/textbox/textbox.style.js"),u=require("../validation-message/validation-message.component.js"),c=require("../hint-text/hint-text.component.js"),p=require("../field-help/field-help.component.js"),g=require("../utils/helpers/guid/index.js"),f=require("../../hooks/__internal__/useInputAccessibility/useInputAccessibility.js");require("../../style/utils/filter-styled-system-padding-props.js");var y=require("../../style/utils/filter-styled-system-margin-props.js");function b(e,r,i){return r in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function j(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter((function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable})))),n.forEach((function(r){b(e,r,i[r])}))}return e}function h(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);r.push.apply(r,i)}return r}(Object(r)).forEach((function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})),e}exports.default=b=>{var{legend:x,children:m,inline:v=!1,legendWidth:O,legendAlign:q,legendSpacing:w=2,error:P,warning:S,info:I,isRequired:D,blockGroupBehaviour:H,legendMargin:M={},isDisabled:_,labelHelp:B,fieldHelp:R,inputHint:k,validationMessagePositionTop:A,applyNewValidation:E=!1,id:F,size:L}=b,G=function(e,r){if(null==e)return{};var i,n,t=function(e,r){if(null==e)return{};var i,n,t={},o=Object.keys(e);for(n=0;n<o.length;n++)i=o[n],r.indexOf(i)>=0||(t[i]=e[i]);return t}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)i=o[n],r.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(t[i]=e[i])}return t}(b,["legend","children","inline","legendWidth","legendAlign","legendSpacing","error","warning","info","isRequired","blockGroupBehaviour","legendMargin","isDisabled","labelHelp","fieldHelp","inputHint","validationMessagePositionTop","applyNewValidation","id","size"]);const{validationRedesignOptIn:T}=r.useContext(t.default),W=y.default(G),[C,V]=r.useState(null),[z,N]=r.useState(!1),$=r.useRef(g.default()),J=F||$.current,K=k?`${J}-hint`:void 0;r.useEffect((()=>{C&&D&&Array.from(C.querySelectorAll("input")||[]).forEach((e=>{e.setAttribute("required","")}))}),[C,D]);const Q=()=>{if(P||S||I)return e.jsx(i.StyledIconWrapper,{"aria-hidden":"true",children:e.jsx(n.ValidationIcon,{error:P,warning:S,info:I,tooltipFlipOverrides:["top","bottom"]})});const r={onFocus:()=>N(!0),onBlur:()=>N(!1)};return B?e.jsx(i.StyledIconWrapper,h(j({},r),{children:e.jsx(l.Help,{isFocused:z,children:B})})):null};let U;U=v&&!q?"right":q||"left";const{validationId:X,fieldHelpId:Y,ariaDescribedBy:Z}=f.default({id:J,validationRedesignOptIn:!0,error:P,warning:S,info:I,fieldHelp:R}),ee=(A?[Z,K]:[K,Z]).filter(Boolean).join(" "),re=()=>P||S?e.jsxs(e.Fragment,{children:[e.jsx(u.default,{error:P,warning:S,validationId:X,validationMessagePositionTop:A,isLarge:"large"===L}),e.jsx(d.default,{warning:!(P||!S)})]}):null;return E?e.jsxs(i.StyledFieldset,h(j({ref:V,"data-component":"fieldset",id:J,"aria-describedby":ee||void 0},G,W),{children:[x&&e.jsx(i.StyledLegend,{align:U,isRequired:D,isDisabled:_,"data-element":"legend","data-role":"legend",isLarge:"large"===L,children:x}),k&&e.jsx(c.HintText,{id:K,isDisabled:_,align:U,isLarge:"large"===L,children:k}),e.jsxs(a.Box,{position:"relative",mt:1,children:[A&&re(),m,!A&&re()]})]})):e.jsx(o.InputGroupBehaviour,{blockGroupBehaviour:H,children:e.jsxs(i.StyledFieldset,h(j({ref:V,"data-component":"fieldset",id:J,"aria-describedby":Z||void 0},G,W),{children:[x&&e.jsx(o.InputGroupContext.Consumer,{children:({onMouseEnter:r,onMouseLeave:n})=>e.jsxs(i.StyledLegend,h(j({onMouseEnter:r,onMouseLeave:n,inline:v,width:O,align:U,rightPadding:w},M),{"data-element":"legend","data-role":"legend",isRequired:D,isDisabled:_,children:[x,!T&&Q()]}))}),!T&&e.jsx(s.Typography,{screenReaderOnly:!0,id:X,children:P||S||I}),e.jsxs(a.Box,{display:"flex",flexDirection:"column",mt:v?0:1,children:[m,R&&e.jsx(p.FieldHelp,{id:Y,children:R})]})]}))})};