UNPKG

carbon-react

Version:

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

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