carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 4.35 kB
JavaScript
import{jsx as e,jsxs as t}from"react/jsx-runtime";import r,{useState as n,useEffect as o,useRef as i}from"react";import c from"../../__internal__/utils/helpers/tags/tags.js";import l from"../../hooks/__internal__/useLocale/useLocale.js";import d from"../../__internal__/utils/helpers/guid/index.js";import a from"../button/button.component.js";import{Box as s}from"../box/box.component.js";import p from"./__internal__/accordion/accordion.component.js";import{StyledTileSelectContainer as u,StyledFocusWrapper as m,StyledTileSelectInput as f,StyledTileSelect as b,StyledTitleContainer as y,StyledTitle as h,StyledSubtitle as O,StyledAdornment as j,StyledDescription as g,StyledFooterWrapper as v,StyledAccordionFooterWrapper as x,StyledDeselectWrapper as _}from"./tile-select.style.js";import"../../style/utils/filter-styled-system-padding-props.js";import w from"../../style/utils/filter-styled-system-margin-props.js";function k(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function A(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){k(e,t,r[t])}))}return e}function P(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 C=e=>"string"!=typeof e,S=r.forwardRef(((r,k)=>{var{onChange:S,onBlur:B,onFocus:E,value:I,name:D,checked:F=!1,disabled:L,title:T,subtitle:$,description:z,titleAdornment:G,type:N="checkbox",id:R,customActionButton:q,actionButtonAdornment:H,footer:J,prefixAdornment:K,additionalInformation:M,accordionContent:Q,accordionControl:U,accordionExpanded:V,"data-element":W,"data-role":X}=r,Y=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}(r,["onChange","onBlur","onFocus","value","name","checked","disabled","title","subtitle","description","titleAdornment","type","id","customActionButton","actionButtonAdornment","footer","prefixAdornment","additionalInformation","accordionContent","accordionControl","accordionExpanded","data-element","data-role"]);const Z=l(),[ee,te]=n(!1),re=()=>null==S?void 0:S({target:P(A({},D&&{name:D},R&&{id:R}),{value:null,checked:!1})});o((()=>{L&&ee&&te(!1)}),[L,ee]);const ne=i(d()),oe=`AccordionContent_${ne.current}`,ie=`AccordionControl_${ne.current}`;return e(u,P(A({checked:F,disabled:L},c("tile-select",{"data-element":W,"data-role":X}),w(Y)),{children:t(m,{"data-role":"focus-wrapper",hasFocus:ee,checked:F,children:[e(f,A({onChange:S,onBlur:e=>{te(!1),null==B||B(e)},onFocus:e=>{te(!0),null==E||E(e)},checked:F,name:D,type:N,value:I,disabled:L,id:R,ref:k},Y)),e(b,{disabled:L,checked:F,children:t(s,{display:"flex",justifyContent:"space-between",flexDirection:"row-reverse",children:[(q||F)&&t(_,{"data-role":"deselect-wrapper",hasActionAdornment:!!H,children:[q&&q(re),!q&&F&&e(a,{buttonType:"tertiary",size:"small",disabled:L,onClick:re,children:Z.tileSelect.deselect()}),H]}),t(s,{flexGrow:1,children:[t(y,{children:[T&&e(h,{as:C(T)?"div":void 0,children:T}),$&&e(O,{as:C($)?"div":void 0,children:$}),G&&e(j,{hasAdditionalInformation:!!M,"data-role":"title-adornment",children:G&&e("div",{children:G})})]}),M&&e("div",{children:M}),e(g,{as:C(z)?"div":void 0,children:z}),J&&e(v,{"data-role":"tile-select-footer",children:J}),Q&&U&&e(x,{accordionExpanded:V,"data-role":"accordion-footer",children:U(ie,oe)})]}),K&&e(s,{"data-element":"prefix-adornment","data-role":"prefix-adornment",mr:3,opacity:L?"0.3":void 0,children:K})]})}),Q&&e(p,{contentId:oe,controlId:ie,expanded:V,children:Q})]})}))}));S.displayName="TileSelect";export{S as default};