PageSourceSearch

https://filmfestival.gr/static/js/9981.5babd5b499501198de60.js

js filmfestival.gr collected 2026-09-24 17:20:29 UTC 8,414 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"8bc9f6de7443fe48bb26e7da5595e55a525ac92f"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8da72e7c-f116-4d2c-8841-31461ec90fec",e._sentryDebugIdIdentifier="sentry-dbid-8da72e7c-f116-4d2c-8841-31461ec90fec")}catch(e){}}(),(self.webpackChunktiff=self.webpackChunktiff||[]).push([[9981],{9981:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});var a=n(2891),i=n(7363),r=n(7950),s=n(8109),o=n(7568),l=n(6910);const d=class extends a.xI{static targets=["calendar","eventCellTemplate"];static values={dataUrl:String,locale:{type:String,default:"en"}};baseConfig={timeZone:"Europe/Athens",plugins:[r.A,o.A,l.A],allDaySlot:!1,slotMinTime:"10:00:00",slotMaxTime:"36:00:00",slotEventOverlap:!0,nextDayThreshold:"00:00:00",slotLaneClassNames:["fc-timegrid-slot-lane"],slotLabelFormat:{hour:"2-digit",minute:"2-digit",hour12:!1,meridiem:"short"},eventTimeFormat:{hour:"2-digit",minute:"2-digit",hour12:!1},resourceOrder:"-type1,type2",height:"auto",headerToolbar:{left:"prev",center:"title",right:"next"},schedulerLicenseKey:"CC-Attribution-NonCommercial-NoDerivatives"};connect(){this.layoutSwitchBreakpoint=1024,this.handleResize=this.handleResize.bind(this),window.addEventListener("resize",this.handleResize),this.initializeCalendar()}disconnect(){window.removeEventListener("resize",this.handleResize),this.calendar&&this.calendar.destroy()}formatDateUTC(e){return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}getAthensTodayUTC(){try{const e=new Intl.DateTimeFormat("en-CA",{timeZone:"Europe/Athens",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date);if(/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,n,a]=e.split("-"),i=new Date(Date.UTC(parseInt(t),parseInt(n)-1,parseInt(a)));if(!isNaN(i.getTime()))return i}}catch(e){}const e=new Date;return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()))}initializeCalendar(){const e=this.localeValue||document.documentElement.lang||"en",t=this.getAthensTodayUTC(),n=t.getUTCDay(),a=0===n?6:n-1,d=new Date(t);d.setUTCDate(t.getUTCDate()-a);const c=this.formatDateUTC(d),h=new Date(d);h.setUTCDate(d.getUTCDate()+14);const p=this.formatDateUTC(h);this.weekStart=d,this.twoWeeksForward=h;const u=window.innerWidth<this.layoutSwitchBreakpoint?"list":"dayGridWeek";this.calendar=new i.Vv(this.calendarTarget,{...this.baseConfig,timeZone:"Europe/Athens",plugins:[r.A,s.A,o.A,l.A],initialView:u,initialDate:c,firstDay:1,validRange:{start:c,end:p},headerToolbar:{left:"title",right:"prev next"},locale:e,height:"auto",contentHeight:"auto",dayMaxEvents:!1,dayMaxEventRows:!1,expandRows:!1,nowIndicator:!1,nextDayThreshold:"36:59:59",dayHeaderFormat:{weekday:"short",day:"numeric"},views:{list:{duration:{weeks:2},listDayFormat:{weekday:"short",day:"numeric",month:"short"},listDaySideFormat:!1,displayEventTime:!0,displayEventEnd:!1},dayGridWeek:{}},viewDidMount:e=>{const t=(new Date).toISOString().split("T")[0];if("list"===e.view.type&&this.calendar.setOption("headerToolbar",!1),"list"===e.view.type){const e=new Date;e.setDate(e.getDate()+14);const n=e.toISOString().split("T")[0];this.calendar.setOption("validRange",{start:t,end:n})}else if("dayGridWeek"===e.view.type||"timeGridWeek"===e.view.type){const e=this.weekStart.toISOString().split("T")[0],t=this.twoWeeksForward.toISOString().split("T")[0];this.calendar.setOption("validRange",{start:e,end:t})}else{const e=this.weekStart.toISOString().split("T")[0],t=this.twoWeeksForward.toISOString().split("T")[0];this.calendar.setOption("validRange",{start:e,end:t})}this.updateNavigationButtonState()},datesSet:e=>{this.updateNavigationButtonState()},events:(e,t,n)=>{const a=new URL(this.dataUrlValue,window.location.origin);a.searchParams.set("calendar_data","1"),a.searchParams.set("start",e.startStr),a.searchParams.set("end",e.endStr),fetch(a).then((e=>e.json())).then((e=>{t(e)})).catch((e=>{console.error("Error fetching calendar data:",e),n(e)}))},eventContent:e=>{const{extendedProps:t}=e.event,{film_duration:n,programs:a=[]}=t,i=this.localeValue,r="el"===i?e.event.extendedProps.title_el:e.event.extendedProps.title_en,s="el"===i?e.event.extendedProps.screening_notes_el:e.event.extendedProps.screening_notes_en,o="el"===i?e.event.extendedProps.venue_el:e.event.extendedProps.venue_en;let l=[];
1if(a){const e="el"===i?a.category.title_el:a.category.title_en;l=`\n                        <p class="flex flex-start items-center min-w-10 max-w-[96%] leading-none | section-pill">\n                            <span\n                                class="flex items-center h-6 py-0.5 px-1.5 font-mono truncate rounded-3xl"\n                                style="background-color: ${a.category.color}">${e}\n                            </span>\n                        </p>`}const d=this.eventCellTemplateTarget.content.cloneNode(!0).firstElementChild,c=d.querySelector(".fc-event-time"),h=d.querySelector(".fc-event-title"),p=d.querySelector('[data-event-tag="venue_name"]'),u=d.querySelector(".fc-event-notes"),g=d.querySelector('[data-event-tag="programs"]');if(c&&(c.textContent=`${e.timeText.split(" - ")[0]}`),h&&(h.innerHTML=`${r} <span class="!text-neutral-400 font-grotesque text-sm leading-none">${n}&prime;</span>`),p&&(p.textContent=o),u&&s&&(u.innerHTML=s),s){console.log("Adding screening notes icon for:",r);const e=document.createElement("span");e.className="screening-notes-icon",e.style.position="absolute",e.style.right="0",e.style.top="0",e.style.zIndex="10",e.style.cursor="help",e.innerHTML='<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" style="display: inline-block; vertical-align: middle;">\n                        <circle cx="8" cy="8" r="7" stroke="currentColor" fill="none" stroke-width="1.5"/>\n                        <text x="8" y="11" text-anchor="middle" font-size="10" font-weight="bold" fill="currentColor">i</text>\n                    </svg>',e.setAttribute("data-screening-notes",s),c&&(c.style.position="relative",c.appendChild(e),console.log("Icon appended to time element"))}return g&&a&&(g.innerHTML=l,g.classList.remove("hidden")),{domNodes:[d]}},eventClick:e=>{const t=e.event.extendedProps.film_url;if(t){const e=`/${this.localeValue||document.documentElement.lang||"en"}${t.replace(/^\/(en|el)(\/|$)/,"/")}`;window.location.href=e}},eventClassNames:e=>{let t=["cursor-pointer"];const n=new Date,a=new Intl.DateTimeFormat("en-US",{timeZone:"Europe/Athens",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).formatToParts(n),i=parseInt(a.find((e=>"year"===e.type)).value),r=parseInt(a.find((e=>"month"===e.type)).value),s=parseInt(a.find((e=>"day"===e.type)).value),o=parseInt(a.find((e=>"hour"===e.type)).value),l=parseInt(a.find((e=>"minute"===e.type)).value),d=new Date(i,r-1,s,o,l);return new Date(e.event.start)<d&&t.push("past-event"),e.event.extendedProps.qa&&t.push("has-qa"),e.event.extendedProps.presentation&&t.push("has-presentation"),t},eventDidMount:e=>{const t=e.el,{screening_notes_en:n,screening_notes_el:a}=e.event.extendedProps;if(n||a){const e=t.querySelector(".screening-notes-icon");e&&e.setAttribute("data-controller","calendar-overflow-tooltip")}}}),this.calendar.render()}updateNavigationButtonState(){const e=this.calendarTarget.querySelector(".fc-prev-button"),t=this.calendarTarget.querySelector(".fc-next-button");if(!e||!t)return;const n=this.calendar.getDate(),a=this.calendar.getOption("validRange");if(!a||!a.start)return;if(n<=new Date(a.start)?(e.disabled=!0,e.style.opacity="0.5",e.style.cursor="not-allowed"):(e.disabled=!1,e.style.opacity="1",e.style.cursor="pointer"),a.end){n>=new Date(a.end)?(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed"):(t.disabled=!1,t.style.opacity="1",t.style.cursor="pointer")}}changeView(e){const t=e.currentTarget.dataset.view;this.calendar&&t&&this.calendar.changeView(t)}handleResize(){if(!this.calendar)return;const e=this.calendar.view.type,t=window.innerWidth<this.layoutSwitchBreakpoint;t&&"list"!==e?(this.calendar.changeView("list"),this.calendar.setOption("headerToolbar",!1)):t||"dayGridWeek"===e||(this.calendar.changeView("dayGridWeek"),this.calendar.setOption("headerToolbar",{left:"title",right:"prev next"}))}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.