carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 3.83 kB
JavaScript
import{jsx as e,Fragment as n}from"react/jsx-runtime";import r,{useContext as i,useRef as t}from"react";import o from"../../../__internal__/utils/helpers/tags/tags.js";import l from"../../../__internal__/fieldset/fieldset.component.js";import a from"./radio-button-group.style.js";import p from"../../../__internal__/radio-button-mapper/radio-button-mapper.component.js";import d from"../../../hooks/__internal__/useIsAboveBreakpoint/useIsAboveBreakpoint.js";import"../../../style/utils/filter-styled-system-padding-props.js";import s from"../../../style/utils/filter-styled-system-margin-props.js";import{TooltipProvider as g}from"../../../__internal__/tooltip-provider/index.js";import c from"../../carbon-provider/__internal__/new-validation.context.js";import u from"../../../__internal__/utils/helpers/guid/index.js";function m(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function f(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},i=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),i.forEach((function(n){m(e,n,r[n])}))}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n}(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})),e}const y=m=>{var{children:y,id:O,name:h,legend:j,legendHelp:v,error:_,warning:w,info:P,onBlur:S,onChange:B,value:k,inline:I=!1,legendInline:x=!1,legendWidth:E,legendAlign:A="left",legendSpacing:C,labelSpacing:q=1,adaptiveLegendBreakpoint:D,adaptiveSpacingBreakpoint:R,required:H,tooltipPosition:M,validationMessagePositionTop:T=!0}=m,V=function(e,n){if(null==e)return{};var r,i,t=function(e,n){if(null==e)return{};var r,i,t={},o=Object.keys(e);for(i=0;i<o.length;i++)r=o[i],n.indexOf(r)>=0||(t[r]=e[r]);return t}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}(m,["children","id","name","legend","legendHelp","error","warning","info","onBlur","onChange","value","inline","legendInline","legendWidth","legendAlign","legendSpacing","labelSpacing","adaptiveLegendBreakpoint","adaptiveSpacingBreakpoint","required","tooltipPosition","validationMessagePositionTop"]);const{validationRedesignOptIn:W}=i(c),G=t(u()),L=O||G.current,N=s(V),z=d(D),F=d(R);let J=x;D&&(J=!!z);let K=N.ml;return R&&!F&&(K=void 0),e(n,{children:W?e(l,b(f({applyNewValidation:!0,id:L,legend:j,inputHint:v,legendAlign:A,isRequired:H,error:_,warning:w,validationMessagePositionTop:T,width:"fit-content"},o("radiogroup",V),N),{children:e(a,{"data-component":"radio-button-group",role:"radiogroup",inline:I,legendInline:J,children:e(p,{name:h,onBlur:S,onChange:B,value:k,children:r.Children.map(y,(e=>r.isValidElement(e)?r.cloneElement(e,f({inline:I,labelSpacing:q,error:!!_,warning:!!w},e.props)):e))})})})):e(g,{tooltipPosition:M,children:e(l,b(f({id:L,legend:j,error:_,warning:w,info:P,inline:J,legendWidth:E,legendAlign:A,legendSpacing:C,isRequired:H},o("radiogroup",V),N),{ml:K,blockGroupBehaviour:!(_||w||P),children:e(a,{"data-component":"radio-button-group",role:"radiogroup",inline:I,legendInline:J,children:e(p,{name:h,onBlur:S,onChange:B,value:k,children:r.Children.map(y,(e=>r.isValidElement(e)?r.cloneElement(e,f({inline:I,labelSpacing:q,error:!!_,warning:!!w,info:!!P},e.props)):e))})})}))})})};y.displayName="RadioButtonGroup";export{y as RadioButtonGroup,y as default};