- Success Stories: full migration from old site (48/48, audited), markets n:n, quotation content block, columns content block, pretty SEO detail URLs via SuccessStoryPathRewrite middleware, list/detail split (list page 4 / story page), detailUrl/backUrl - New plugins: VITEC Locations (grid/list/map + RTE map text), VITEC Customer Logos (color/bw logic, only-show-selected), VITEC Card (one plugin for product/story/market/solution with reloading FlexForm + custom backend preview renderer) - Eventlist: layout dropdown (list/grid/teaserbar) in settings - Hero section CB: Images/Video tabs, background video + overlay - Product JSON: full category rootline (parents), fixed missing ConnectionPool import (all-products crash), category tree map - Backend preview CSS: container-query responsive (narrow columns) - Docs: ISO architecture spec, root + extension READMEs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 line
15 KiB
JavaScript
1 line
15 KiB
JavaScript
import{A as e,G as t,K as n,M as r,N as i,P as a,Q as o,T as s,W as c,X as l,Z as u,at as d,b as f,d as p,it as m,j as h,k as g,m as _,mt as v,nt as y,ot as b,p as x,r as S,rt as C,tt as w,ut as T}from"./index-CM0zIqrs.js";function E(e){return m(`MuiButton`,e)}var D=C(`MuiButton`,`root.text.textInherit.textPrimary.textSecondary.textSuccess.textError.textInfo.textWarning.outlined.outlinedInherit.outlinedPrimary.outlinedSecondary.outlinedSuccess.outlinedError.outlinedInfo.outlinedWarning.contained.containedInherit.containedPrimary.containedSecondary.containedSuccess.containedError.containedInfo.containedWarning.disableElevation.focusVisible.disabled.colorInherit.colorPrimary.colorSecondary.colorSuccess.colorError.colorInfo.colorWarning.textSizeSmall.textSizeMedium.textSizeLarge.outlinedSizeSmall.outlinedSizeMedium.outlinedSizeLarge.containedSizeSmall.containedSizeMedium.containedSizeLarge.sizeMedium.sizeSmall.sizeLarge.fullWidth.startIcon.endIcon.icon.iconSizeSmall.iconSizeMedium.iconSizeLarge.loading.loadingWrapper.loadingIconPlaceholder.loadingIndicator.loadingPositionCenter.loadingPositionStart.loadingPositionEnd`.split(`.`)),O=v(T()),k=O.createContext({}),A=O.createContext(void 0),j=b(),M=e=>{let{color:t,disableElevation:r,fullWidth:i,size:a,variant:o,loading:s,loadingPosition:c,classes:l}=e,u=w({root:[`root`,s&&`loading`,o,`${o}${n(t)}`,`size${n(a)}`,`${o}Size${n(a)}`,`color${n(t)}`,r&&`disableElevation`,i&&`fullWidth`,s&&`loadingPosition${n(c)}`],startIcon:[`icon`,`startIcon`,`iconSize${n(a)}`],endIcon:[`icon`,`endIcon`,`iconSize${n(a)}`],loadingIndicator:[`loadingIndicator`],loadingWrapper:[`loadingWrapper`]},E,l);return{...l,...u}},N=[{props:{size:`small`},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:`medium`},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:`large`},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],P=u(a,{shouldForwardProp:e=>o(e)||e===`classes`,name:`MuiButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.variant],t[`${r.variant}${n(r.color)}`],t[`size${n(r.size)}`],t[`${r.variant}Size${n(r.size)}`],r.color===`inherit`&&t.colorInherit,r.disableElevation&&t.disableElevation,r.fullWidth&&t.fullWidth,r.loading&&t.loading]}})(t(({theme:e})=>{let t=e.palette.mode===`light`?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode===`light`?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:`6px 16px`,border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`,`color`],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:`none`},[`&.${D.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:`contained`},style:{color:`var(--variant-containedColor)`,backgroundColor:`var(--variant-containedBg)`,boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${D.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${D.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:`outlined`},style:{padding:`5px 15px`,border:`1px solid currentColor`,borderColor:`var(--variant-outlinedBorder, currentColor)`,backgroundColor:`var(--variant-outlinedBg)`,color:`var(--variant-outlinedColor)`,[`&.${D.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:`text`},style:{padding:`6px 8px`,color:`var(--variant-textColor)`,backgroundColor:`var(--variant-textBg)`}},...Object.entries(e.palette).filter(i()).map(([t])=>({props:{color:t},style:{"--variant-textColor":(e.vars||e).palette[t].main,"--variant-outlinedColor":(e.vars||e).palette[t].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[t].main,.5),"--variant-containedColor":(e.vars||e).palette[t].contrastText,"--variant-containedBg":(e.vars||e).palette[t].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[t].dark,"--variant-textBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[t].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:`inherit`},style:{color:`inherit`,borderColor:`currentColor`,"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:`small`,variant:`text`},style:{padding:`4px 5px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`text`},style:{padding:`8px 11px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`outlined`},style:{padding:`3px 9px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`outlined`},style:{padding:`7px 21px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`contained`},style:{padding:`4px 10px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`contained`},style:{padding:`8px 22px`,fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:`none`,"&:hover":{boxShadow:`none`},[`&.${D.focusVisible}`]:{boxShadow:`none`},"&:active":{boxShadow:`none`},[`&.${D.disabled}`]:{boxShadow:`none`}}},{props:{fullWidth:!0},style:{width:`100%`}},{props:{loadingPosition:`center`},style:{transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`],{duration:e.transitions.duration.short}),[`&.${D.loading}`]:{color:`transparent`}}}]}})),F=u(`span`,{name:`MuiButton`,slot:`StartIcon`,overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.startIcon,r.loading&&t.startIconLoadingStart,t[`iconSize${n(r.size)}`]]}})(({theme:e})=>({display:`inherit`,marginRight:8,marginLeft:-4,variants:[{props:{size:`small`},style:{marginLeft:-2}},{props:{loadingPosition:`start`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`start`,loading:!0,fullWidth:!0},style:{marginRight:-8}},...N]})),I=u(`span`,{name:`MuiButton`,slot:`EndIcon`,overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.endIcon,r.loading&&t.endIconLoadingEnd,t[`iconSize${n(r.size)}`]]}})(({theme:e})=>({display:`inherit`,marginRight:-4,marginLeft:8,variants:[{props:{size:`small`},style:{marginRight:-2}},{props:{loadingPosition:`end`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`end`,loading:!0,fullWidth:!0},style:{marginLeft:-8}},...N]})),L=u(`span`,{name:`MuiButton`,slot:`LoadingIndicator`})(({theme:e})=>({display:`none`,position:`absolute`,visibility:`visible`,variants:[{props:{loading:!0},style:{display:`flex`}},{props:{loadingPosition:`start`},style:{left:14}},{props:{loadingPosition:`start`,size:`small`},style:{left:10}},{props:{variant:`text`,loadingPosition:`start`},style:{left:6}},{props:{loadingPosition:`center`},style:{left:`50%`,transform:`translate(-50%)`,color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:`end`},style:{right:14}},{props:{loadingPosition:`end`,size:`small`},style:{right:10}},{props:{variant:`text`,loadingPosition:`end`},style:{right:6}},{props:{loadingPosition:`start`,fullWidth:!0},style:{position:`relative`,left:-10}},{props:{loadingPosition:`end`,fullWidth:!0},style:{position:`relative`,right:-10}}]})),R=u(`span`,{name:`MuiButton`,slot:`LoadingIconPlaceholder`})({display:`inline-block`,width:`1em`,height:`1em`}),z=O.forwardRef(function(e,t){let n=O.useContext(k),i=O.useContext(A),a=l({props:y(n,e),name:`MuiButton`}),{children:o,color:s=`primary`,component:u=`button`,className:f,disabled:p=!1,disableElevation:m=!1,disableFocusRipple:h=!1,endIcon:g,focusVisibleClassName:_,fullWidth:v=!1,id:b,loading:x=null,loadingIndicator:S,loadingPosition:C=`center`,size:w=`medium`,startIcon:T,type:E,variant:D=`text`,...N}=a,z=c(b),B=S??(0,j.jsx)(r,{"aria-labelledby":z,color:`inherit`,size:16}),V={...a,color:s,component:u,disabled:p,disableElevation:m,disableFocusRipple:h,fullWidth:v,loading:x,loadingIndicator:B,loadingPosition:C,size:w,type:E,variant:D},H=M(V),U=(T||x&&C===`start`)&&(0,j.jsx)(F,{className:H.startIcon,ownerState:V,children:T||(0,j.jsx)(R,{className:H.loadingIconPlaceholder,ownerState:V})}),W=(g||x&&C===`end`)&&(0,j.jsx)(I,{className:H.endIcon,ownerState:V,children:g||(0,j.jsx)(R,{className:H.loadingIconPlaceholder,ownerState:V})}),G=i||``,K=typeof x==`boolean`?(0,j.jsx)(`span`,{className:H.loadingWrapper,style:{display:`contents`},children:x&&(0,j.jsx)(L,{className:H.loadingIndicator,ownerState:V,children:B})}):null;return(0,j.jsxs)(P,{ownerState:V,className:d(n.className,H.root,f,G),component:u,disabled:p||x,focusRipple:!h,focusVisibleClassName:d(H.focusVisible,_),ref:t,type:E,id:x?z:b,...N,classes:H,children:[U,C!==`end`&&K,o,C===`end`&&K,W]})});function B(e){return e?Array.isArray(e)?e[0]??null:e:null}function V(e){return e.url??e.publicUrl}function H(e,t){return e.alternative??e.alt??e.title??t}function U(e){if(e.srcset?.length)return e.srcset.map(e=>`${e.url} ${e.descriptor}`).join(`, `)}function W(e){let t=new Date(e);return{day:t.toLocaleString(`en-US`,{day:`numeric`}),month:t.toLocaleString(`en-US`,{month:`short`}).toUpperCase()}}function G(e,t){if(!e)return null;let n=new Date(e),r=n.toLocaleString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`});if(!t||e===t)return r;let i=new Date(t);return n.getMonth()===i.getMonth()&&n.getFullYear()===i.getFullYear()?`${n.toLocaleString(`en-US`,{month:`short`,day:`numeric`})} – ${i.toLocaleString(`en-US`,{day:`numeric`,year:`numeric`})}`:`${r} – ${i.toLocaleString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}`}function K(e){return e?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()):!1}function q({events:e,fullWidth:t=!1}){let[n,r]=(0,O.useState)(0),[i,a]=(0,O.useState)(!0),o=(0,O.useCallback)(e=>{a(!1),setTimeout(()=>{r(e),a(!0)},180)},[]),s=()=>o((n-1+e.length)%e.length),c=()=>o((n+1)%e.length),l=e[n];if(!l)return null;let u=B(l.image),d=u?V(u):void 0,f=G(l.eventstart,l.eventend),p=[l.city,l.country].filter(Boolean).join(`, `),m=K(l.meetinglink)?`mailto:${l.meetinglink.trim()}`:l.meetinglink||void 0;return(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar${t?` vitec_eventlist__teaserbar--full-width`:``}`,children:(0,j.jsxs)(`div`,{className:`vitec-content-box vitec_eventlist__teaserbar-inner`,children:[(0,j.jsxs)(`div`,{className:`vitec_eventlist__teaserbar-content`,style:{opacity:i?1:0,transition:`opacity 0.18s ease`},children:[d&&(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar-logo`,children:(0,j.jsx)(`img`,{src:d,srcSet:u?U(u):void 0,sizes:`80px`,alt:u?H(u,l.title):l.title,className:`vitec_eventlist__teaserbar-logo-img`,loading:`eager`})}),(0,j.jsxs)(`div`,{className:`vitec_eventlist__teaserbar-title`,children:[`Visit VITEC at `,(0,j.jsx)(`strong`,{children:l.title})]}),f&&(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar-sep`,"aria-hidden":!0,children:`|`}),f&&(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar-date`,children:f}),p&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar-sep`,"aria-hidden":!0,children:`|`}),(0,j.jsx)(`div`,{className:`vitec_eventlist__teaserbar-location`,children:p})]}),m&&(0,j.jsx)(z,{component:`a`,href:m,size:`small`,variant:`contained`,className:`vitec_eventlist__teaserbar-cta`,children:`Book a Meeting`})]}),e.length>1&&(0,j.jsxs)(`div`,{className:`vitec_eventlist__teaserbar-nav`,children:[(0,j.jsx)(h,{onClick:s,size:`small`,className:`vitec_eventlist__teaserbar-arrow`,"aria-label":`Previous event`,children:`‹`}),(0,j.jsx)(h,{onClick:c,size:`small`,className:`vitec_eventlist__teaserbar-arrow`,"aria-label":`Next event`,children:`›`})]})]})})}function J({element:t,className:n,nested:r,devInfoTags:i,uid:a,spaceBefore:o,spaceAfter:c}){let l=p(t),u=_(t),d=f(x(t)),m=t.content?.eventlist?.events??[];if(t.content?.eventlist?.settings?.layout===`teaserbar`){let e=(t.appearance?.frameClass??``).split(/[\s,]+/),n=(t.cssClass??``).split(/[\s,]+/);return(0,j.jsx)(S,{fullWidth:!0,nested:r,uid:a,spaceBefore:o,spaceAfter:c,devInfoTags:i,children:(0,j.jsx)(q,{events:m,fullWidth:e.includes(`vitec-full-width`)||n.includes(`vitec-full-width`)})})}return(0,j.jsx)(S,{className:[`vitec_eventlist`,n].filter(Boolean).join(` `),devInfoTags:i,nested:r,uid:a,spaceBefore:o,spaceAfter:c,children:(0,j.jsxs)(`div`,{className:`vitec_eventlist__inner`,children:[(l||u)&&(0,j.jsxs)(s,{spacing:.5,sx:{mb:2.5,textAlign:d,alignItems:d===`center`?`center`:d===`right`?`flex-end`:`flex-start`},children:[l&&(0,j.jsx)(e,{variant:`h4`,children:l}),u&&(0,j.jsx)(e,{variant:`subtitle1`,color:`text.secondary`,children:u})]}),m.length===0?(0,j.jsx)(e,{variant:`body2`,color:`text.secondary`,children:`No upcoming events.`}):(0,j.jsx)(`div`,{className:`vitec_eventlist__items`,children:m.map(t=>{let n=t.eventstart?W(t.eventstart):null,r=t.eventend&&t.eventstart!==t.eventend,i=G(t.eventstart,t.eventend),a=[t.venue,t.city,t.country].filter(Boolean).join(`, `),o=B(t.image),c=o?V(o):void 0,l=K(t.meetinglink)?`mailto:${t.meetinglink.trim()}`:t.meetinglink?t.meetinglink:void 0;return(0,j.jsxs)(`div`,{className:`vitec_eventlist__item`,children:[n&&(0,j.jsxs)(`div`,{className:`vitec_eventlist__date-badge`,"aria-label":i??void 0,children:[(0,j.jsx)(`span`,{className:`vitec_eventlist__date-day`,children:n.day}),(0,j.jsx)(`span`,{className:`vitec_eventlist__date-month`,children:n.month}),r&&(0,j.jsx)(`span`,{className:`vitec_eventlist__date-multiday`,children:`multi-day`})]}),(0,j.jsxs)(`div`,{className:`vitec_eventlist__content`,children:[(0,j.jsx)(e,{variant:`h6`,className:`vitec_eventlist__title`,children:t.title}),t.teaser&&(0,j.jsx)(e,{variant:`body2`,className:`vitec_eventlist__teaser`,children:t.teaser}),(i||a)&&(0,j.jsxs)(`div`,{className:`vitec_eventlist__meta`,children:[i&&(0,j.jsx)(`span`,{className:`vitec_eventlist__meta-date`,children:i}),i&&a&&(0,j.jsx)(`span`,{className:`vitec_eventlist__meta-sep`,"aria-hidden":!0,children:`·`}),a&&(0,j.jsx)(`span`,{className:`vitec_eventlist__meta-location`,children:a})]}),(0,j.jsxs)(s,{direction:`row`,spacing:1,flexWrap:`wrap`,useFlexGap:!0,alignItems:`center`,sx:{mt:1},children:[t.booth&&(0,j.jsx)(g,{label:t.booth,size:`small`,variant:`outlined`,className:`vitec_eventlist__chip vitec_eventlist__chip--booth`}),t.attendancemode===`online`&&(0,j.jsx)(g,{label:`Online`,size:`small`,variant:`outlined`,className:`vitec_eventlist__chip vitec_eventlist__chip--online`}),l&&(0,j.jsx)(z,{component:`a`,href:l,size:`small`,variant:`outlined`,className:`vitec_eventlist__btn vitec_eventlist__btn--contact`,children:`Contact`}),t.eventurl&&(0,j.jsx)(z,{component:`a`,href:t.eventurl,target:`_blank`,rel:`noreferrer`,size:`small`,variant:`contained`,className:`vitec_eventlist__btn vitec_eventlist__btn--more`,children:`Learn more`})]})]}),(0,j.jsx)(`div`,{className:`vitec_eventlist__logo-box${c?``:` vitec_eventlist__logo-box--empty`}`,children:c&&(0,j.jsx)(`img`,{src:c,srcSet:o?U(o):void 0,sizes:`128px`,alt:o?H(o,t.title):t.title,className:`vitec_eventlist__logo-img`,loading:`lazy`})})]},t.uid)})})]})})}export{J as VitecEventList}; |