@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 2.8 kB
JavaScript
import{jsx as e,Fragment as w,jsxs as t}from"react/jsx-runtime";import"./EntityItem.scss";import l from"classnames";import p from"../HighlightText";const q=({id:_,title:s,subtitle:n,image:c,icon:y,typeColor:f,iconClassName:v,variant:D="default",titleBadge:o,datetime:a,subtitleLabel:d,additionalInfo:N=[],bookmarked:A=!1,featured:u=!1,visited:x,current:g=!1,heatmapColor:m,accentBorderColor:r,hideUserState:E=!1,compactDetails:F,secondaryText:k,highlight:h,featuredLabel:H,hallLabel:I,levelLabel:K,onClick:b})=>{const j=!!(a?.date||a?.time),R=j||!!d||!!n;return e("div",{role:"button",className:l("efp-entity-item",{"is-featured":u,"is-visited":x,"is-current":g,"has-heatmap":!!m,"has-accent":!!r,"is-person":D==="person"}),"aria-label":s,tabIndex:0,"aria-current":g?"true":void 0,onClick:()=>b?.(_),onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),b?.(_))},style:{...f?{"--item-type-color":f}:{},...m&&{"--heatmap-color":m},...r&&{"--accent-border-color":r}},children:t("div",{className:"efp-entity-item__body",children:[t("div",{className:"efp-entity-item__left",children:[e("div",{className:"efp-entity-item__icon",children:y?e("img",{src:y,alt:s}):v?e("i",{className:v,"aria-hidden":"true"}):null}),!E&&t(w,{children:[x&&e("div",{className:"efp-entity-item__visited",children:e("i",{className:"icon-checkmark"})}),A&&e("i",{className:l("efp-entity-item__bookmarked","icon-bookmark-solid")})]})]}),t("div",{className:"efp-entity-item__right",children:[t("div",{className:l("efp-entity-item__content",{"with-image":c}),children:[t("div",{className:"efp-entity-item__header",children:[t("div",{className:"efp-entity-item__title",children:[e(p,{text:s,highlight:h}),k&&e("div",{className:"efp-entity-item__description",children:e(p,{text:k,highlight:h})}),o!==void 0&&e("span",{children:o})]}),u&&e("div",{className:"efp-entity-item__featured",children:H})]}),R&&t("div",{className:"efp-entity-item__subtitle",children:[j&&t("div",{className:"efp-entity-item__datetime",children:[a?.date&&e("strong",{children:a.date}),a?.time&&e("span",{children:a.time})]}),d&&e("span",{children:d}),n&&e("div",{children:n})]}),!!N.length&&e("ul",{className:l("efp-entity-item__details",{"compact-details":F}),children:N.map((i,S)=>t("li",{className:"efp-entity-item__details-item",children:[i.type==="location"&&t(w,{children:[i.locationName&&e("div",{className:"efp-entity-item__details-item-booth",children:e(p,{text:i.locationName,highlight:h})}),i.hall&&t("div",{children:[I,"\xA0",e("span",{children:i.hall})]}),i.level&&t("div",{children:[i.showLevelLabel&&t("span",{children:[K,"\xA0"]}),e("span",{children:i.level})]})]}),i.type==="text"&&e("span",{children:i.text})]},S))})]}),c&&e("div",{className:"efp-entity-item__image",children:e("img",{src:c,alt:s})})]})]})})};export default q;