UNPKG

carbon-react

Version:

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

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