UNPKG

carbon-react

Version:

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

2 lines (1 loc) 2.94 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("invariant"),o=require("./button-toggle.style.js"),r=require("../../__internal__/utils/helpers/guid/index.js"),u=require("./button-toggle-group/__internal__/button-toggle-group.context.js"),l=require("./button-toggle-icon.component.js"),a=require("../../__internal__/input-behaviour/input-group-behaviour.component.js"),i=require("../../__internal__/utils/logger/index.js");function s(e){return e&&e.__esModule?e:{default:e}}var c=s(n);function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){d(e,t,n[t])}))}return e}let p=!1;const g=({"aria-label":n,"aria-labelledby":s,buttonIcon:d,buttonIconSize:g="small",children:f,"data-component":y,"data-element":j,"data-role":O,disabled:h,onBlur:m,onFocus:_,onClick:v,pressed:x,size:w="medium",value:B})=>{c.default(!(!f&&!d),"Either prop `buttonIcon` must be defined, or this node must have children"),x&&!p&&(i.default.deprecate("The `pressed` prop is deprecated."),p=!0);const I=t.useRef(null),{onMouseEnter:P,onMouseLeave:q,onBlur:C,onFocus:D}=t.useContext(a.InputGroupContext),{onButtonClick:S,handleKeyDown:T,pressedButtonValue:k,onChange:M,allowDeselect:z,isInGroup:E,isDisabled:F,firstButton:G,childButtonCallbackRef:R,hintTextId:K}=u.useButtonToggleGroupContext(),L=t.useRef(r.default()),N=E?k&&k===B:x,V=I.current===G,W=!E||N||!k&&V;return e.jsx(o.StyledButtonToggleWrapper,{"data-component":y||"button-toggle","data-element":j,"data-role":O,children:e.jsxs(o.StyledButtonToggle,(A=b({"aria-label":n,"aria-labelledby":s,"aria-describedby":K,"aria-pressed":!!N,buttonIcon:d,buttonIconSize:g,"data-element":"button-toggle-button",disabled:h||F,id:L.current,onMouseEnter:P,onMouseLeave:q,size:w,value:B,onFocus:function(e){null==_||_(e),null==D||D()},onBlur:function(e){null==m||m(e),null==C||C()},onClick:function(e){v&&v(e),null==M||M(e,z&&k&&k===B?void 0:B),B&&S(B)},onKeyDown:T},W?{tabIndex:0}:{tabIndex:-1}),H={allowDeselect:z,ref:e=>{I.current=e,null==R||R(e)},children:[d&&e.jsx(l.default,{buttonIcon:d,buttonIconSize:g,disabled:h,hasContent:!!f}),f]},H=null!=H?H:{},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(H)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(H)).forEach((function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(H,e))})),A))});var A,H};g.displayName="ButtonToggle",exports.ButtonToggle=g,exports.default=g;