{"version":3,"names":["SewWsEventsApi","constructor","hostRef","this","showMax","noGrid","noMargin","onLabelsChange","e","textGlobal","detail","CMS_EVENT_CALENDAR_GLOBAL","textLocal","_c","_b","_a","store","get","country","toUpperCase","CMS_EVENT_CALENDAR_LOCAL","forceUpdate","tabsElement","componentWillLoad","fetch","url","then","response","ok","Error","status","json","events","catch","console","error","getDate","startDateIso","endDateIso","options","year","month","day","Date","toLocaleDateString","window","cmsLocale","undefined","getTabItem","tabname","location","h","name","gettrackmeEventCategory","gettrackmeEventObject","class","slice","map","item","date","href","eventCalendarUrl","startmonth","title","render","key","ref","el","headline","local","global"],"sources":["src/components/website-components/sew-ws-events-api/sew-ws-events-api.tsx"],"sourcesContent":["import { Component, h, Prop, State, Listen, forceUpdate } from '@stencil/core';\nimport { gettrackmeEventCategory, gettrackmeEventObject } from '../../../utils/tracking-helpers';\nimport store from '../sew-ws-header/store/store';\n\ntype Events = {\n local: EventItem[];\n global: EventItem[];\n};\n\ntype EventItem = {\n countrycode: string;\n date: string;\n description: string;\n enddate: string;\n endday: string;\n id: string;\n location: string;\n past: boolean;\n shortdescription: string;\n startdate: string;\n startday: string;\n title: string;\n url: string;\n startmonth: string;\n startDateIso: string;\n endDateIso: string;\n};\n\n@Component({\n tag: 'sew-ws-events-api',\n shadow: false,\n})\nexport class SewWsEventsApi {\n @Prop() url: string;\n @Prop() headline: string;\n @Prop() textLocal: string;\n @Prop() textGlobal: string;\n @Prop() showMax = 3;\n @Prop() local: boolean;\n @Prop() global: boolean;\n @Prop() eventCalendarUrl: string;\n @Prop({ reflect: true }) noGrid = false;\n @Prop({ reflect: true }) noMargin = false;\n\n @State() events: Events;\n\n private tabsElement: HTMLSewWsTabsElement;\n\n @Listen('labelsChange', { target: 'window' })\n onLabelsChange(e: CustomEvent<{ [key: string]: string }>) {\n this.textGlobal = e.detail.CMS_EVENT_CALENDAR_GLOBAL;\n this.textLocal =\n e.detail['CMS_EVENT_COUNTRY_DISPLAYNAME_' + store.get('domainInfo')?.country?.toUpperCase()] ??\n e.detail.CMS_EVENT_CALENDAR_LOCAL;\n\n forceUpdate(this.tabsElement);\n }\n\n componentWillLoad(): void {\n fetch(this.url)\n .then(response => {\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n return response.json();\n })\n .then(json => {\n this.events = json;\n })\n .catch(e => {\n console.error(e);\n });\n }\n\n private getDate(startDateIso: string, endDateIso: string) {\n const options: Intl.DateTimeFormatOptions = {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit',\n };\n\n if (startDateIso === endDateIso) {\n return `${new Date(startDateIso).toLocaleDateString(\n (window as any).cmsLocale ?? undefined,\n options\n )}`;\n } else {\n return `${new Date(startDateIso).toLocaleDateString(\n (window as any).cmsLocale ?? undefined,\n options\n )} - ${new Date(endDateIso).toLocaleDateString((window as any).cmsLocale ?? undefined, options)}`;\n }\n }\n\n private getTabItem(tabname: string, events: EventItem[], location: 'local' | 'global') {\n return (\n \n \n {events.slice(0, this.showMax).map(item => {\n return (\n \n \n {item.title}\n \n \n );\n })}\n \n \n );\n }\n\n render() {\n return (\n this.events && (\n (this.tabsElement = el)}\n headline={this.headline}\n no-grid={this.noGrid}\n no-margin={this.noMargin}\n >\n {this.local && this.getTabItem(this.textLocal, this.events.local, 'local')}\n {this.global && this.getTabItem(this.textGlobal, this.events.global, 'global')}\n \n \n )\n );\n }\n}\n"],"mappings":"uIAgCaA,EAAc,MAJ3B,WAAAC,CAAAC,G,UASYC,KAAOC,QAAG,EAIOD,KAAME,OAAG,MACTF,KAAQG,SAAG,KAyGvC,CAlGG,cAAAC,CAAeC,G,UACXL,KAAKM,WAAaD,EAAEE,OAAOC,0BAC3BR,KAAKS,WACDC,EAAAL,EAAEE,OAAO,mCAAmCI,GAAAC,EAAAC,EAAMC,IAAI,iBAAa,MAAAF,SAAA,SAAAA,EAAEG,WAAO,MAAAJ,SAAA,SAAAA,EAAEK,mBAC9E,MAAAN,SAAA,EAAAA,EAAAL,EAAEE,OAAOU,yBAEbC,EAAYlB,KAAKmB,Y,CAGrB,iBAAAC,GACIC,MAAMrB,KAAKsB,KACNC,MAAKC,IACF,IAAKA,EAASC,GAAI,CACd,MAAM,IAAIC,MAAM,uBAAuBF,EAASG,S,CAGpD,OAAOH,EAASI,MAAM,IAEzBL,MAAKK,IACF5B,KAAK6B,OAASD,CAAI,IAErBE,OAAMzB,IACH0B,QAAQC,MAAM3B,EAAE,G,CAIpB,OAAA4B,CAAQC,EAAsBC,G,UAClC,MAAMC,EAAsC,CACxCC,KAAM,UACNC,MAAO,UACPC,IAAK,WAGT,GAAIL,IAAiBC,EAAY,CAC7B,MAAO,GAAG,IAAIK,KAAKN,GAAcO,oBAC7B7B,EAAC8B,OAAeC,aAAa,MAAA/B,SAAA,EAAAA,EAAAgC,UAC7BR,I,KAED,CACH,MAAO,GAAG,IAAII,KAAKN,GAAcO,oBAC7B9B,EAAC+B,OAAeC,aAAa,MAAAhC,SAAA,EAAAA,EAAAiC,UAC7BR,QACG,IAAII,KAAKL,GAAYM,oBAAmB/B,EAACgC,OAAeC,aAAa,MAAAjC,SAAA,EAAAA,EAAAkC,UAAWR,I,EAIvF,UAAAS,CAAWC,EAAiBjB,EAAqBkB,GACrD,OACIC,EAAA,oBACIC,KAAMH,EAAO,kCACoBI,EAAwB,UAC1B,gCAAAC,EAAsB,OAASL,GAChC,wCACjB,cAAAC,IAAa,QAAU,OAAS,QAE7CC,EAAA,iDAAiCI,MAAM,cAClCvB,EAAOwB,MAAM,EAAGrD,KAAKC,SAASqD,KAAIC,GAE3BP,EAAA,sBACID,SAAUQ,EAAKR,SACfS,KAAMxD,KAAKiC,QAAQsB,EAAKrB,aAAcqB,EAAKpB,aAE3Ca,EAAA,KACIS,KACIzD,KAAK0D,kBACJX,IAAa,QAAU,QAAU,SAClCQ,EAAKI,WAEwB,kCAAAT,EAAwB,SAC1B,gCAAAC,EAAsBI,EAAKK,OAC5B,yCAE7BL,EAAKK,W,CAUtC,MAAAC,GACI,OACI7D,KAAK6B,QACDmB,EAAA,eAAAc,IAAA,2CACIC,IAAKC,GAAOhE,KAAKmB,YAAc6C,EAC/BC,SAAUjE,KAAKiE,SAAQ,UACdjE,KAAKE,OACH,YAAAF,KAAKG,UAEfH,KAAKkE,OAASlE,KAAK6C,WAAW7C,KAAKS,UAAWT,KAAK6B,OAAOqC,MAAO,SACjElE,KAAKmE,QAAUnE,KAAK6C,WAAW7C,KAAKM,WAAYN,KAAK6B,OAAOsC,OAAQ,UACrEnB,EAAA,QAAAc,IAAA,2CAAMb,KAAK,W","ignoreList":[]}