UNPKG

carbon-react

Version:

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

2 lines (1 loc) 2.72 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var r=require("./link-preview.style.js"),t=require("../image/image.component.js"),n=require("../preview/preview.component.js"),i=require("../icon-button/icon-button.component.js"),o=require("../icon/icon.component.js"),l=require("./__internal__/placeholder.component.js"),s=require("../../__internal__/utils/helpers/tags/tags.js");function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){c(e,r,t[r])}))}return e}const u=c=>{var{as:u,description:p,image:d,isLoading:j,onClose:b,title:f,url:y}=c,v=function(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(c,["as","description","image","isLoading","onClose","title","url"]);const O=j||!y,g=()=>({src:null==d?void 0:d.url,alt:(null==d?void 0:d.alt)||"Link preview image",height:"152px"}),m=O||"div"===u?{}:{href:y,target:"_blank",rel:"noopener noreferrer"};return e.jsxs(r.StyledLinkPreview,(w=a({as:O?"div":u,tabIndex:O||"div"===u?-1:0},m,v,s.default("link-preview",v)),x=null!=(x={children:[g().src?e.jsx(t.Image,a({},g())):e.jsx(l.default,{}),e.jsx(r.StyledPreviewWrapper,{isLoading:O,children:e.jsxs(n.Preview,{loading:O,lines:4,children:[e.jsx(r.StyledTitle,{children:f}),e.jsx(r.StyledDescription,{children:e.jsx("div",{children:p})}),e.jsx(r.StyledUrl,{children:(()=>{if(null==y?void 0:y.includes("://")){const e=y.indexOf("://")+3;return y.substring(e)}return y})()})]})}),b&&"div"===u&&e.jsx(r.StyledCloseIconWrapper,{children:e.jsx(i.default,{"aria-label":"link preview close button",onClick:()=>b(y),children:e.jsx(o.default,{type:"close"})})})]})?x:{},Object.getOwnPropertyDescriptors?Object.defineProperties(w,Object.getOwnPropertyDescriptors(x)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(x)).forEach((function(e){Object.defineProperty(w,e,Object.getOwnPropertyDescriptor(x,e))})),w));var w,x};u.displayName="LinkPreview",exports.LinkPreview=u,exports.default=u;