carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 4.46 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("../../hooks/__internal__/useLocale/useLocale.js"),r=require("../../__internal__/utils/helpers/tags/tags.js"),o=require("./pod.style.js"),i=require("../icon/icon.component.js"),l=require("../../__internal__/utils/helpers/events/events.js");function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){s(e,t,n[t])}))}return e}function u(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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}const c=a(t).default.forwardRef(((a,s)=>{var{alignTitle:c="left",border:f=!0,children:y,displayEditButtonOnHover:p,editContentFullWidth:b,footer:j,height:O,internalEditButton:h,onDelete:v,onEdit:g,onUndo:m,size:E="medium",softDelete:S,subtitle:B,title:x,triggerEditOnContent:P,variant:_="primary"}=a,w=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(a,["alignTitle","border","children","displayEditButtonOnHover","editContentFullWidth","footer","height","internalEditButton","onDelete","onEdit","onUndo","size","softDelete","subtitle","title","triggerEditOnContent","variant"]);const[D,k]=t.useState(!1),[F,M]=t.useState(!1),[C,z]=t.useState(!1),[H,q]=t.useState(!1),[T,L]=t.useState(!1),[K,U]=t.useState(!1),W=n.default(),A=t.useMemo((()=>!(!g||!P&&!p)),[p,g,P]),I=t.useMemo((()=>!!(g||v||m)),[g,v,m]),N=e=>t=>{l.default.isKeyboardEvent(t)&&l.default.isEventType(t,"keydown")&&!l.default.isEnterKey(t)||(t.preventDefault(),e(t))},R={onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1),onFocus:()=>k(!0),onBlur:()=>k(!1),onClick:g&&N(g),onKeyDown:g&&N(g)};return e.jsxs(o.StyledPod,u(d({alignTitle:c,internalEditButton:h,height:"number"==typeof O?`${O}px`:O,ref:s},w,r.default("pod",w)),{children:[e.jsxs(o.StyledBlock,u(d({"data-element":"block","data-role":"pod-block",contentTriggersEdit:A,hasButtons:I,fullWidth:b,internalEditButton:h,isFocused:D||C,isHovered:F||H,noBorder:!f,variant:_,softDelete:S},A&&u(d({},R),{tabIndex:0})),{children:[e.jsxs(o.StyledContent,{"data-element":"content",size:E,children:[x&&e.jsxs(o.StyledHeader,{"data-role":"pod-content-header",alignTitle:c,internalEditButton:h,size:E,children:["string"==typeof x?e.jsx(o.StyledTitle,{"data-element":"title",children:x}):x,"string"==typeof B?e.jsx(o.StyledSubtitle,{"data-element":"subtitle",children:B}):B]}),y]}),j&&e.jsx(o.StyledFooter,{"data-element":"footer",size:E,variant:_,softDelete:S,children:j})]})),I&&e.jsxs(o.StyledActionsContainer,{"data-element":"action-button-container","data-role":"action-button-container",internalEditButton:h,children:[S&&m&&e.jsx(o.StyledUndoButton,{"aria-label":W.pod.undo(),onMouseEnter:()=>U(!0),onMouseLeave:()=>U(!1),onFocus:()=>L(!0),onBlur:()=>L(!1),"data-element":"undo",internalEditButton:h,isFocused:T,isHovered:K,noBorder:!f,size:E,variant:_,onClick:N(m),children:e.jsx(i.default,{type:"undo"})}),!S&&g&&e.jsx(o.StyledEditAction,u(d({},R),{"aria-label":W.actions.edit(),"data-element":"edit",displayOnlyOnHover:p,internalEditButton:h,isFocused:D,isHovered:F,noBorder:!f,size:E,variant:_,children:e.jsx(i.default,{type:"edit"})})),!S&&v&&e.jsx(o.StyledDeleteButton,{"aria-label":W.actions.delete(),"data-element":"delete",onMouseEnter:()=>q(!0),onMouseLeave:()=>q(!1),onFocus:()=>z(!0),onBlur:()=>z(!1),internalEditButton:h,isFocused:C,isHovered:H,noBorder:!f,size:E,variant:_,onClick:N(v),children:e.jsx(i.default,{type:"delete"})})]})]}))}));c.displayName="Pod",exports.default=c;