carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 3.5 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("invariant"),n=require("./radio-button.style.js"),l=require("../../__internal__/checkable-input/checkable-input.component.js"),i=require("./radio-button-svg.component.js");require("../../style/utils/filter-styled-system-padding-props.js");var o=require("../../style/utils/filter-styled-system-margin-props.js"),a=require("../../__internal__/tooltip-provider/index.js"),u=require("../carbon-provider/__internal__/new-validation.context.js"),s=require("../../__internal__/utils/helpers/tags/tags.js");function c(e){return e&&e.__esModule?e:{default:e}}var d=c(t),p=c(r);function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){b(e,t,r[t])}))}return e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}const g=d.default.forwardRef(((r,c)=>{var{autoFocus:d,checked:b,disabled:g,fieldHelp:j,fieldHelpInline:h,id:O,inline:v,inputWidth:m,label:_,labelHelp:P,labelSpacing:w=1,labelWidth:x,name:q,onChange:k,onBlur:H,onFocus:S,value:F,reverse:I=!1,size:W,error:B,warning:C,info:D,tooltipPosition:R,"data-element":z,"data-role":A,helpAriaLabel:E}=r,L=function(e,t){if(null==e)return{};var r,n,l=function(e,t){if(null==e)return{};var r,n,l={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}(r,["autoFocus","checked","disabled","fieldHelp","fieldHelpInline","id","inline","inputWidth","label","labelHelp","labelSpacing","labelWidth","name","onChange","onBlur","onFocus","value","reverse","size","error","warning","info","tooltipPosition","data-element","data-role","helpAriaLabel"]);const{validationRedesignOptIn:M}=t.useContext(u.default),N=o.default(L),T=t.useCallback((e=>{k&&k(e),e.target.focus()}),[k]),V=y(f({},{error:B,warning:C,info:D}),{disabled:g,inputWidth:m,fieldHelpInline:h,labelSpacing:w}),Y=y(f(y(f({},V),{autoFocus:d,checked:b,fieldHelp:j,name:q,onChange:T,onBlur:H,onFocus:S,labelInline:!0,labelWidth:x,label:_,labelHelp:P,id:O,value:F,type:"radio",reverse:!I,ref:c}),L),{"data-component":void 0});p.default(!L.children,"This component is meant to be used as a self-closing tag. You should probably use the label prop instead.");const G=e.jsx(n.default,y(f({applyNewValidation:M,inline:v,reverse:I,size:W},V,N,s.default("radio-button",{"data-element":z,"data-role":A})),{children:e.jsx(l.default,y(f({},Y),{children:e.jsx(i.default,{})}))}));return e.jsx(e.Fragment,{children:M?G:e.jsx(a.TooltipProvider,{helpAriaLabel:E,tooltipPosition:R,children:G})})}));g.displayName="RadioButton";var j=d.default.memo(g);exports.RadioButton=g,exports.default=j;